集成电路及用于集成电路的功能锁定与解锁方法与流程

文档序号:19745577发布日期:2020-01-21 18:20阅读:366来源:国知局
集成电路及用于集成电路的功能锁定与解锁方法与流程

本发明涉及一种种集成电路及用于集成电路的功能锁定与解锁方法,特别涉及一种具有增强安全性以防止集成电路被仿造的集成电路的功能锁定与解锁方法。



背景技术:

随着技术的进步,集成电路(integratedcircuit)设计是许多制造商竞争的一种项目。通常,集成电路设计涉及电子组件的制程,例如如何将晶体管、电阻,电容器等电子组件互连于一块半导体上的设计制程或是布局优化。对于集成电路设计人员而言,集成电路设计的目的是能提供具有微型体积,高性能以及高操作效率的集成电路。由于集成电路设计在近年来很流行,因此一些非法破解者或黑客常常暗地尝试反向制程,并企图仿造正版的集成电路,以执行正版集成电路的所有功能。

仿造集成电路的技术是一种非法的技术。但不幸地,破解者常常利用仿造集成电路的技术,非法仿造诸如微控制器(microcontrollerunit,mcu)或是处理器等等的高价值装置。这原因在于,破解者或是黑客(集成电路的仿造者)相要获取更便宜的电子设备,但他们想要用投机的方式,在没有大量设计投资的状况下增加公司的销售额。因此,正版集成电路的供货商每年都会因为集成电路的仿造品在市场流通,而遭受巨大损失。不幸的是,传统集成电路缺乏抵抗仿造的功能。因此,当传统集成电路的硬件完全被非法破解者仿造时,集成电路的仿造品可以执行所有集成电路的功能。换句话说,当非法破解者仿造集成电路的技术非常高超时,集成电路的仿造品与”原版”集成电路的功能是一样的。因此,发展一种具有抵抗仿造功能的集成电路,是一个重要的课题。



技术实现要素:

本发明实施例提出一种用于集成电路的功能锁定与解锁方法,包括由集成电路的随机数源提供随机数码,根据随机数码及由内存中检索的初始数据,将集成电路进入锁定状态,利用指令信号致能集成电路,以根据随机数码产生解锁码,及根据随机数码及解锁码,将集成电路进入解锁状态。

本发明另一个实施例提出一种增强安全性的集成电路。集成电路包括核心电路及功能锁定电路。核心电路包括至少一个功能区块电路。功能锁定电路耦接于核心电路。功能锁定电路包括随机数源、纠结电路及内存。随机数源用以产生随机数码。纠结电路耦接于随机数源及核心电路,用以根据随机数码及指令信号产生解锁码。内存耦接于纠结电路,用以储存解锁码。解锁码的存在性,用于决定将核心电路的至少一个功能区块电路锁定或是解锁。

附图说明

图1是传统集成电路的方块图。

图2是本发明的集成电路的实施例的方块图。

图3是图2的集成电路在锁定状态下的示意图。

图4是图2的集成电路中,产生解锁码的示意图。

图5是图2的集成电路中,执行解锁功能的示意图。

图6是图2的集成电路中,当集成电路是人工智能特殊应用集成电路时,执行锁定功能的示意图。

图7是图2的集成电路中,当集成电路是人工智能特殊应用集成电路时,产生解锁码的示意图。

图8是图2的集成电路中,当集成电路是人工智能特殊应用集成电路时,执行解锁功能的示意图。

图9是图2的集成电路将其功能锁定与解锁方法的流程图。

其中,附图标记说明如下:

50传统集成电路

10核心电路

10a功能区块电路

a及a’第一数据

100及200集成电路

11及21功能锁定电路

11a及21a纠结电路

11b及21b随机数源

11c及21c内存

b及b’第二数据

r及r’随机数码

k及k’初始数据

c及c’解锁码

cs及cs’指定信号

d及d’第三数据

20人工智能核心电路

out1及out2推论结果

s901至s904步骤

具体实施方式

图1是传统集成电路50的方块图。传统集成电路50包括核心电路10,核心电路10可包括至少一个功能区块电路10a以输出传统集成电路50的所有功能的数据。例如,核心电路10可包括n个功能区块电路10a,n为正整数。在图1中,输出数据a(后文称为第一数据a)可对应传统集成电路50的所有功能。然而,一旦传统集成电路50被仿造,其仿造品(仿造的集成电路)也可以执行原本传统集成电路50的所有功能。因此,没有抵抗仿造能力的传统集成电路50的制造商,将会承受传统集成电路50被非法盗版的风险。

图2是本发明的集成电路100的实施例的方块图。集成电路100包括核心电路10及功能锁定电路11。核心电路10包括至少n个功能区块电路10a,用以传送第一数据a(可视为核心电路10的所有功能的数据)。举例而言,核心电路10可用以传送功率控制数据、电压控制数据、人工智能的类神经网络数据及/或集成电路100中任何一种设计功能的数据等等。功能锁定电路11耦接于核心电路10,用于处理第一数据a。于此,功能锁定电路11可视为一种能增加安全性的电路,具有抵抗仿造的能力。换句话说,当集成电路100引入功能锁定电路11时,即使集成电路100被仿造,仿造品的集成电路功能也将无法正确地执行。

功能锁定电路11包括纠结电路(entanglementcircuit)11a、随机数源11b以及内存11c。随机数源11b用以产生随机数码。于此,随机数源11b可为反熔丝(anti-fuse)随机数源,但不限于此。反熔丝随机数源可提供几乎无规则性的随机数码。然而,集成电路100也可以使用任何形式的随机数码产生器或是伪随机数码(pseudorandomcode)产生器。纠结电路11a可执行扰乱算法(mess-upalgorithm),并耦接于随机数源11b及核心电路10,用以将第一数据a(可视为核心电路10的所有功能的数据)锁定或是解锁。于此,第一数据a锁定的方式可将其位配置混码(scrambling)、将其一部分或是全部的输出信号电压进行调整、或是产生无法辨识的数据序列。因此,由于第一数据a被锁定,故非法破解者仿造的集成电路并无法输出正确的信息与功能。内存11c耦接于纠结电路11a,用于储存后文提及的解锁码。内存11c可为非挥发性内存(non-volatilememory,nvm)。

集成电路100的预设状态是锁定状态。只有当集成电路100接收到指令信号时,集成电路100才会被致能以执行解锁功能。集成电路100执行锁定功能以及执行解锁功能的细节将于后文详述。

图3是集成电路100在锁定状态下的示意图。集成电路100在出厂时即进入锁定状态。在集成电路100中,核心电路10可传送第一数据a至功能锁定电路11。第一数据a可视为集成电路100的复数个原始功能的数据。随机数源11b可提供随机数池。随机数码r可由随机数池中选出,并可被传送至纠结电路11a。内存11c可将初始数据k传送至纠结电路11a。由于此时内存11c并无解锁码c的存在,所以此时的集成电路100是锁定状态。纠结电路11a可利用锁定函数,将第一数据a锁定以产生第二数据b。举例而言,纠结电路11a可利用锁定函数flock(),以flock(a,r,k)的形式产生第二数据b。换句话说,纠结电路11a可根据随机数码r及初始数据k,将第一数据a转换为第二数据b。内存11c所提供的初始数据k可为默认值或是固定值。举例而言,锁定函数可以使用「互斥或(exclusive-or)」的逻辑运算符进行数据处理。第二数据b可表示为:

第一数据a、第二数据b以及初始数据k可为三个数据向量。符号「⊕」表示位对位的「互斥或」的逻辑运算符。由于当集成电路100进入锁定状态时,纠结电路11a根据随机数码r及初始数据k,将集成电路100的多个原始功能对应的第一数据a扰乱,因此,产生的第二数据b与第一数据a不同,且无法直接辨识。换句话说,集成电路100可输出复数个异动功能对应的第二数据b(非原始功能的错误数据),且第二数据b对应集成电路100的锁定数据。因此,就算非法破解者仿造驱动集成电路100,由于集成电路100出厂时就处于锁定状态,第一数据a已经被扰乱,故他们仅能获取集成电路100所输出的”错误”数据。也因如此,即使集成电路100被仿造,仿造品的集成电路功能也将无法正确地执行。

如前述提及,集成电路100的预设状态是锁定状态。除非执行集成电路100的解锁功能,否则集成电路100会一直维持锁定状态。并且,假设制造商生产了许多集成电路100,每一个集成电路100都有其独立的随机数源11b。这意味着每一个集成电路100都可由其独立的随机数源11b中,产生或是选择一个独一无二的随机数码r。换句话说,许多集成电路100在锁定状态时所输出的第二数据b(非原始功能的错误数据),全部都是不一样的,这也更增加了集成电路100被仿造的难度。

图4是集成电路100中,产生解锁码c的示意图。集成电路100可执行解锁程序以产生解锁码c,说明如下。对于集成电路的制造商而言,为了将集成电路100的至少一部分功能或是全部功能解锁,可以利用一个必要的指令信号cs致能集成电路100,以输出解锁数据。换句话说,当集成电路100接收指令信号cs时,纠结电路11a将被触发以产生解锁码c。纠结电路11a可根据随机数码r及指令信号cs产生解锁码c。

在集成电路100中,当解锁码c尚未被产生时,如前述图3提及,根据随机数码r及初始数据k,第一数据a会被扰乱以产生第二数据b(非原始功能的错误数据)。由于第二数据b无法辨识,故集成电路100进入锁定状态。在利用指令信号cs产生解锁码c后,解锁码c可用于控制集成电路100进入解锁状态。解锁码c可储存于集成电路100的内存11c中。因此,当指令信号cs缺失时,由于解锁码c不存在,故即使集成电路100被仿造,仿造品的集成电路功能也将无法正确地执行。

图5是集成电路100中,执行解锁功能的示意图。集成电路100执行解锁功能后,集成电路100即进入解锁状态。如前述提及,在集成电路100利用指令信号cs致能后,纠结电路11a可产生解锁码c,并可将解锁码c存至内存11c中。接着,解锁码c可由内存11c传至纠结电路11a中。随后,纠结电路11a可以利用解锁功能,根据第一数据a、随机数码r及解锁码c,产生第三数据d。第一数据a可视为集成电路100的多个原始功能的初始数据。纠结电路11a可利用解锁函数funlock(),以funlock(a,r,c)的形式产生第三数据d。举例而言,解锁函数可以使用「互斥或(exclusive-or)」的逻辑运算符进行数据处理。第三数据d可表示为:

于此,纠结电路11a所产生的解锁码c可设定与随机数码r相同,意即c=r。在此设定下,第三数据d可被推导为:

换句话说,当集成电路100采用适当的解锁码c以成功地执行解锁功能时,第三数据d可以转换为第一数据a,且对应第一数据a。简单而言,解锁码c的存在性,可用于决定将集成电路100的核心电路10的至少一个功能区块电路10a所输出的数据进行锁定或是解锁。当集成电路100被锁定时(如图3),集成电路100输出复数个异动功能对应第二数据b,且第二数据b对应集成电路100的锁定数据。当集成电路100被解锁时,集成电路100输出对应至少一部分功能的第三数据d,且第三数据d对应集成电路100的解锁数据。

在集成电路100中,任何合理的硬件变更或是技术变换都属于本发明所揭露的范畴。举例而言,锁定函数flock()及解锁函数funlock()可为两线性或是非线性函数。并且,第三数据d可视为集成电路100的至少一部分功能或是全部的功能。举例而言,集成电路100可被设计为执行n个功能。然而,利用锁定函数flock(),可以将集成电路100的n个功能锁定。在集成电路100利用解锁码c执行解锁函数funlock()后,集成电路100的n个功能中的m个功能可被解锁。n与m为两正整数且m≤n。在集成电路100中,在纠结电路11a被指令信号cs触发后,由于第三数据d可利用纠结电路11a所产生的解锁码c对应至第一数据a,故解锁码c也可以视为将集成电路100的至少一部分功能或是全部的功能进行解锁所需的密钥。并且,假设制造商生产了许多集成电路100,每一个集成电路100都有其独立的随机数源11b。这意味着每一个集成电路100都可由其独立的随机数源11b中,产生或是选择一个独一无二的随机数码r。也因如此,由于解锁所需的密钥需要根据随机数码r产生,故每一个集成电路100都有其独特的密钥(解锁码c)。这也更增加了集成电路100被仿造的难度。

图6是集成电路100中,当集成电路100是人工智能(artificialintelligence,ai)特殊应用集成电路(application-specificintegratedcircuit,asic)时,执行锁定功能的示意图。为了避免混淆,后文将人工智能特殊应用集成电路表示为集成电路200。集成电路200包括人工智能核心电路20及功能锁定电路21。人工智能核心电路20耦接于功能锁定电路21。然而,集成电路200与集成电路100的硬件配置类似,因此其硬件配置的细节将不再赘述。

在集成电路200中,人工智能核心电路20可传送第一数据a’至功能锁定电路21。第一数据a’可视为集成电路200(aiasic)的复数个原始功能的数据。举例而言,第一数据a’可包括人工智能特殊应用集成电路中,类神经网络的权重数据。随机数源21b可提供随机数池。随机数码r’可由随机数池中选出,并可被传送至纠结电路21a。内存21c可将初始数据k’传送至纠结电路21a。在纠结电路21a接收第一数据a’后,纠结电路21a可以利用锁定功能,将第一数据a’锁定并产生第二数据b’。举例而言,纠结电路21a可利用锁定函数fai-lock(),以fai-lock(a',r',k')的形式产生第二数据b’。换句话说,纠结电路21a可根据随机数码r’及初始数据k’,将第一数据a’转换为第二数据b’。初始数据k’可为默认值或是固定值。举例而言,锁定函数可以使用乘法的运算符进行数据处理。第二数据b’可表示为:

b'=fai-lock(a',r',k')

=a'×r'×k'

第一数据a’、第二数据b’以及初始数据k’可为三个数据向量。乘法的运算符可为位对位的乘法运算符。由于当集成电路200进入锁定状态时,纠结电路21a根据随机数码r’及初始数据k’,将集成电路200的多个原始功能对应的第一数据a’扰乱,因此,产生的第二数据b’与第一数据a’不同,且无法直接辨识。换句话说,在集成电路200中,第二数据b’与第一数据a’可视为两个不同的人工智能推论结果(aiinferenceresults),其原因在于第二数据b’包括错误的权重数据(第一数据a’的原始值已经被扰乱)。因此,由于人工智能核心电路20接收了错误的权重数据(第二数据b’),故集成电路200最终会输出有误的推论结果out1。因此,当非法破解者驱动集成电路200时,由于集成电路200的原始功能的输出数据已经被扰乱,故他们仅能撷取「有误的」推论结果out1。也因如此,图6中的集成电路200可提供锁定功能。即使集成电路200被仿造,仿造品的集成电路功能也会失灵。

图7是集成电路200中,当集成电路200是人工智能特殊应用集成电路时,产生解锁码c’的示意图。集成电路200可执行解锁程序以产生解锁码c’,说明如下。对于集成电路的制造商而言,为了将集成电路200的至少一部分功能或是全部功能解锁,可以利用一个必要的指令信号cs’致能集成电路200,以输出解锁数据。于此,指令信号cs’对于集成电路200而言是独一无二的。当集成电路200接收指令信号cs’时,纠结电路21a将被触发以产生解锁码c’。纠结电路21a可根据随机数码r’及指令信号cs’产生解锁码c’。在集成电路200中,当解锁码c’尚未被产生时,根据随机数码r’及初始数据k’,第一数据a’会被扰乱以产生第二数据b’。由于第二数据b’无法辨识,故集成电路200进入锁定状态,并输出有误的推论结果out1。在利用指令信号cs’产生解锁码c’后,解锁码c’可用于控制集成电路200进入解锁状态。因此,集成电路200将可输出正确的推论结果out2(如图8所示)。解锁码c’可储存于集成电路200的内存21c中。因此,当指令信号cs’缺失时,由于解锁码c’不存在,故即使集成电路200被仿造,仿造品的集成电路功能也会失灵。

图8是集成电路200中,当集成电路200是人工智能特殊应用集成电路时,执行解锁功能的示意图。在集成电路200利用指令信号cs’使纠结电路21a产生解锁码c’后,解锁码c’可存至内存21c中。随后,储存于内存21c的解锁码c’可被传送至纠结电路21a。接着,纠结电路21a可以利用解锁功能,根据第一数据a’、随机数码r’及解锁码c’,产生第三数据d’。纠结电路21a可利用解锁函数fai-unlock(),以fai-unlock(a',r',c')的形式产生第三数据d’。举例而言,解锁函数可以使用乘法的运算符进行数据处理。第三数据d’可表示为:

d'=fai-unlock(a',r',c')

=a'×r'×c'

于此,纠结电路21a所产生的解锁码c’可设定为随机数码r’的倒数,意即c’=1/r’。在此设定下,第三数据d’可被推导为:

d'=a'×r'×c'

=a'×r'×(1/r')

=a'

换句话说,当集成电路200采用适当的解锁码c’以成功地执行解锁功能时,第三数据d’可以转换为第一数据a’,且对应第一数据a’。因此,当集成电路200是人工智能特殊应用集成电路时,在解锁状态下,集成电路200可以输出正确的推论结果out2。

在集成电路200中,任何合理的硬件变更或是技术变换都属于本发明所揭露的范畴。举例而言,锁定函数fai-lock()及解锁函数fai-unlock()可为两线性或是非线性函数。并且,第三数据d’可视为集成电路200的至少一部分功能或是全部的功能的数据。举例而言,集成电路200可被设计为执行n’个功能。然而,利用锁定函数fai-lock(),可以将集成电路200的n’个功能锁定。在集成电路200利用解锁码c’以执行解锁函数fai-unlock()后,集成电路200的n’个功能中的m’个功能可被解锁。n’与m’为两正整数且m’≤n’。在集成电路200中,纠结电路21a被指令信号cs’触发后,由于第三数据d’可利用纠结电路21a所产生的解锁码c’对应至第一数据a’,故解锁码c’也可以视为将集成电路200的至少一部分功能或是全部的功能进行解锁所需的密钥。

图9是集成电路100将其功能锁定与解锁方法的流程图。集成电路100将其功能锁定与解锁方法的流程可包括步骤s901至步骤s904。任何合理的硬件变更或是技术更动都属于本发明所揭露的范畴。步骤s901至步骤s904描述于下。步骤s901:由集成电路100的随机数源11b提供随机数码r;

步骤s902:根据随机数码r及由内存11c中检索的初始数据k,将集成电路100进入锁定状态;

步骤s903:利用指令信号cs致能集成电路100,以根据随机数码r产生解锁码c,并将解锁码c储存于内存11c中;

步骤s904:根据随机数码r及解锁码c,将集成电路100进入解锁状态。

于此,每一个独立的集成电路100包括功能锁定电路11,且功能锁定电路11包括纠结电路11a、随机数源11b及内存11c。

在步骤s901中,随机数源11b提供随机数码r至纠结电路11a,以利于执行后续程序。在步骤s902中,由于集成电路100尚未被致能(保持锁定状态),纠结电路11a可根据随机数码r及由内存11c传送而来的初始数据k,将集成电路100的多个原始功能对应的第一数据a扰乱。接着,第二数据b(非原始功能的错误数据)将会被输出。此刻,集成电路100处于锁定状态。

在步骤s903中,集成电路100利用指令信号cs致能。随后,纠结电路11a将会被触发以根据随机数码r产生解锁码c,并将解锁码c储存于内存11c中。在步骤s904中,纠结电路11a可根据随机数码r及解锁码c,输出第三数据d。由于解锁码c可视为将集成电路100的至少一部分功能或是全部的功能进行解锁所需的密钥,故第三数据d可对应第一数据a,或实质上相同于第一数据a。换句话说,步骤s904中的集成电路100进入解锁状态。

在集成电路100中,当解锁码c不存在时,第二数据b将无法辨识。因此,当集成电路100进入锁定状态时,即使集成电路100被仿造,仿造品的集成电路功能也会失灵。然而,在利用指令信号cs产生解锁码c后,解锁码c可用于控制集成电路100进入解锁状态。随后,集成电路100即可被使用。

应当理解的是,集成电路100内的核心电路10可包括至少一个功能区块电路10a,例如包括n个功能区块电路10a。在集成电路100被致能以执行解锁功能后,可以产生解锁码c。核心电路10内n个功能区块电路10a可以根据解锁码c进行解锁。然而,设计者也可以经由适当的设计,让集成电路100运作于其他的致能程序,以产生其他的解锁码c’。集成电路100可以根据其他的解锁码c’,仅解锁n个功能区块电路10a中的一部分。换句话说,集成电路100可以逐步地解锁。意即,集成电路100可以设计为具有不同的解锁状态或条件。并且,集成电路100可以根据不同的解锁码c’进行多次触发,以解锁不同的功能。

综上所述,本发明描述了一种具有功能锁定电路的集成电路以及集成电路的功能锁定与解锁方法。集成电路可以利用纠结电路将其功能的输出数据进行锁定。并且,当解锁码不存在时,集成电路的输出数据将无法辨识。因此,即使集成电路被仿造,仿造品的集成电路功能也会失灵。换句话说,本发明的集成电路具有抵抗仿造的功能,因此很难被非法破解者盗用。并且,数据拥有者或是合法授权人员可利用指令信号致能集成电路,以使纠结电路产生合适的解锁码。解锁码可视为将集成电路的至少一部分功能或是全部的功能进行解锁所需的密钥。集成电路可以利用解锁码,产生对应正确功能的输出数据。并且,由于解锁码对于集成电路而言是独一无二的。因此,非法破解者无法利用共同密钥或是万用密钥将集成电路解锁以辨识正确的输出数据。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1