专利名称:集成电路的锁定方法
技术领域:
本发明总的来讲涉及的是集成电路,特别是集成电路的制造保护。
本发明用在任意一种集成电路上,而不管该电路是封装在什么种类的电子器件还是电子设备中。
背景技术:
为了保护集成电路,通常会提供一种或多种机制来调整具有授权密钥(数字字)的用户对进入该电路的判定函数。这种保护技术就是一种所谓的下游技术,因为实际的制造过程并不受保护。事实上,该电路的应用都是那些通过密钥进行保护的应用,这些密钥通常是由该应用的提供商输入到非易失存储器中再分配给各个用户。
已知解决方案的缺点是,这些方案均不能避免仿造。更为特别的是,这些方案不能避免人们在获知了电路布图设计后做出集成电路,也不能避免人们复原电路制造模具。现在,通过反向工程就能复原出不同的、能用来制造出同一种集成电路的模具。获得了一组模具(一个模具就代表着一个或多个电路),制造商就能确定出不同的沉积、蚀刻、植入、金属化等区域,同时还能确定,对于一块包括有多个复制同一模具的集成电路的整块芯片来说,不同的沉积、蚀刻、植入、金属化等区域。即使在集成电路芯片结构中隐藏有一个标识符,但其通常通过这些模具,因此通过复制这些模具,制造商就能制造出具有正确标识符的仿制品。在应用提供商引入密钥的情况下,所生成的仿制电路也能正常工作。
此外,同一个转包商现在也有可能同时为多个设计者制造电路,这些设计者给转包商提供合适的模具组。此时,该负责人不能保护自己免于不道德转包商将自己的模具组用于未授权的制造。
发明内容
本发明的目的在于提高集成电路防仿制的保护能力。
更为特别的是,本发明的目的在于防止那些利用电路设计、模具组等仿制出来的集成电路的使用。
为了实现上述及其它的目的,本发明提供一种集成电路的保护方法,其由以下步骤构成将所有或部分电路的启动条件设定为一密钥的存在,该密钥在电路制造后以非易失方式记录在电路中,同时该密钥取决于电路制造最后以非易失方式记录在电路中的至少一个第一参数。
根据本发明的一个实施例,该方法包括以下步骤将集成到电路中的一个计算函数至少应用到所述密钥上;以及核对该计算的结果是否与一预定数值相符合。
根据本发明的一个实施例,如果将密钥应用于所述函数能符合于所述的数值,那么集成电路中所述密钥的记录只能由所述电路进行。
根据本发明的一个实施例,所述函数至少将所述密钥和所述第一参数用作操作数,其中的第一参数由电路的标识数形成。
根据本发明的一个实施例,所述密钥基于所述参数以及函数在电路的外部生成从而与所述数值相符合的根据本发明的一个实施例,这些函数要考虑第二个参数,该第二参数是在电路制造的最后以非易失形式存在于电路中的。
根据本发明的一个实施例,所述第二参数取决于其中包含有集成电路的芯片在芯片中的位置,其中的芯片支持有多个芯片。
根据本发明的一个实施例,所述参数从一个集成电路芯片到另一个集成电路芯片是不同的,或者是从一组芯片到另一组芯片是不同的。
本发明还提供一种个性化集成电路的方法,其中的电路包括一个计算函数,至少一个在电路制造的最后以非易失方式存在于电路中的第一参数以及一个部件,该部件用来计算该函数并能将该结果相对于一预定数值进行核对,该方法由以下步骤构成在电路的外部并基于所述参数和函数计算一密钥,由此将该函数应用于该密钥并提供一个与一预定特性相符合的结果;将计算出来的密钥传送到电路;在电路中将所述计算函数应用于所计算出来的密钥;以及只有在该结果符合于所述特性时才将密钥以非易失方式记录在集成电路中。
本发明还提供一种制造集成电路芯片的方法,其由以下步骤构成在能够形成多个电路的同一组模具内改变一计算函数,该计算函数取决于一个用来实施保护方法的参数。
本发明还提供一种集成电路,其包括一个部件,其用来将一密钥以非易失方式保存起来;一个部件,其用来从芯片保存或提取至少一个参数;一装置,其用来将所有或部分电路的启动条件设定为一密钥的存在,该密钥取决于所述的参数。
参照附图并结合本发明下面特定实施例的非限定性说明,本发明的前述和其它目的、特征和优点将会更加清楚。
图1以方块图的形式示意性地展示了本发明一个用来设定一集成电路启动条件的单元的实施例;图2以方块图的形式示意性地展示了本发明一优选实施例集成电路的简化结构;图3A以一种简化流程图的形式展示了本发明一集成电路中密钥形成阶段的一个实施例;图3B以一种简化流程图的形式展示了本发明方法所保护一集成电路启动阶段的一个实施例。
具体实施例方式
为了清楚起见这里展示出来的仅仅是那些对本发明的理解有用的步骤和部件。特别是,这里没有展示本发明所保护集成电路中用来连接电路应用(其目标)的不同部件,无论集成电路中所包含的部件如何,同时也无论其目标如何,本发明均能兼容。
根据本发明的一个特征,在电路每一次启动时(如,在每一次接上电源或者是在每一次复位时),一硬件或软件进程就设定为以计算的结果作为该启动的条件,该计算将集成电路的至少一个参数以及至少一个密钥作为操作数,其中的参数是在电路制造的最后设置上的并能以非易失方式出现,其中的密钥是在制造之后才输入到电路中的。
作为计算函数的一个标识符或者是一个参数,其优选是集成电路本身带有的。该参数可由敏感于部件制造技术偏差的物性参数的网络获得,也可由制造模具设置,还可由制造中任意一种装置引入。作为优选,本标识符从一个芯片到另一个芯片或者是从一批一芯片到另一个批芯片具有一给定的偏差(变化)。
下面将结合一优选实施例来描述本发明,在该实施例中,要提供两个与制造相联系的参数(一个标识数和计算函数的一个参数)。然而需要注意的是,更为通常应用情况是,将一个与制造相联系的参数与一个密钥(通过一种逻辑或数学计算)组合起来,其中的参数取决于该密钥,并且其中的密钥是在制造之后计算得到(并保存在电路中)。像优选实施例那样将该参数分成多个的情况在功能上等同于将其作为数字参数的时候。例如,注意fA,这个用来计算与制造相联系的参数A的函数;ID,与制造相联系的电路标识符;以及KEY,即密钥;表述结果R=fA(ID,KEY)就等同于表述结果R=h(A,ID)(KEY),这里h是一个依赖于A和ID的计算函数。唯一有可能出现的不同来自于参数A和ID的来源,其中参数A和ID可以是分开的,具有不同的来源(例如,特性参数网络和一ROM区域)。
根据本发明的另一个特征,这个必须与该本性参数相结合从而允许或禁止电路操作的密钥取决于该参数。在优选实施例中,该密钥的选取是根据标识符以及用来将该标识符与该密钥结合起来的计算函数进行的。因此,与本发明所称的“参数”其对应的数值特性于芯片本身(其不能从外部修改或者被环境所改变)相反的是,该密钥是在制造后计算出来的。
图1以方块图的形式示意性地展示了本发明保护方法的一个实施例。该图展示了一电路的实施例,其能通过本发明的实施来启动该电路。
在本示例中,集成电路芯片的标识数(块1,ID)优选从一个芯片到另一个芯片或者是从一组芯片到另一组芯片而不同,其本征的出现在集成电路中。标识符ID,例如通过一易熔网络(最简单的情况)保存起来,并在一个敏感于技术偏差的特性参数网络进行读取的每一次查询时提取出来(这里假定该标识符从一次提取到下一次提取的过程保持不变),或者是由其它任意一种用来生成一集成电路芯片标识符的方法来获得。然而,该标识符,其优选是一个二进制数,并非从集成电路的外部引入。
所要保护的集成电路芯片还包含有一个组件2,其用来非易失地保存密钥KEY,函数fA(块3)用来将密钥KEY与标识符ID结合起来。密钥KEY在起始阶段(电路第一次使用时或测试时)就保存在电路中。然而,根据本发明,该密钥取决于芯片的本征参数(函数fA的参数A和/或标识符ID)。
将合并函数3的结果R与一预定数值R0(其优选为常数)进行比较(块4,=)从而允许或禁止电路的启动(信号OK)。用来与结果R进行比较的数值R0对于所有的集成电路芯片来说既可以是相同的,也可以是不同的,无论同与不同其始终是在制造时进行设置(优选是以布线逻辑)。这就是密钥KEY在本发明中必须根据芯片的标识符ID和计算函数fA(以及,如果能够获得,所希望数值R0A的计算函数)计算得到的原因。如果对数值R0进行区分,其取决于计算函数的参数A,由此就有可能是所提到的R0A。
在第一实施例中,个性化工具包括参数A与芯片所希望结果R0A之间关系的一张表格。然后将该结果与当前的结果进行比较,从而,例如对启动标签的状态进行调整。
在第二实施例中,结果R0直接就是一标签类型,并且该结果R0对于所有的芯片均一样。
作为优选,函数fA是一个双射函数从而能基于参数ID和A从电路的外部计算出密钥KEY,这一点将在后面看到。例如,函数fA属于A*ID+KEY(或A*KEY+ID)的类型。
对于标识符ID来讲,用来调整计算函数fA的参数A可由本征保存在集成电路芯片中的任意一种通常的装置来设定。
根据实施例的一个特定示例,可利用相同标线的模具区分技术来对函数fA(参数A)以及可能的话参数ID进行区分。该技术包括对多个可选电路进行组合从而形成这个用来形成模具组的标线。例如,在对电路布图设计进行复制从而形成多个电路的制造模具组的时候,可为该标线的每一个电路选择性地植入一保存组件的掺杂剂,其不同于选择性地植入其它电路存储组件的掺杂剂。这种技术在本申请人的美国专利US6780716中有描述。然后就可获得二进制代码,尽管所有这些电路均处自于同一块芯片,但这些二进制代码从一个电路到另一个电路均不相同。
根据另一示例,金属连接的编码从一个电路到另一个电路要经过修改。
通过模具来对集成电路区分的技术具有以下的优点为每一个无法看察到的特别是以光学模式无法观察到的集成电路芯片提供一个(或者是至少区分的)参数。这就确保了所制造芯片的安全,特别是该参数后续使用的安全。
在同样的标线内对合并函数(更为通常的是密钥所依赖的所有或部分参数)进行区分的优点是这样通过对模具的保护而保护了集成电路的制造。实际上,为了能够制造出有用的产品,未授权的制造商必须通过反向工程来检查由一组模具所获得的所有产品从而知道所有不同的功能从而获得一组可复制的模具。如果不这样,其仅检查一个产品,那么就不能确定所涉及产品的哪个函数fA是对其它产品无效的。
图2以方块图的形式示意性地展示了用来实施本发明的一个集成电路中所包含的组件。在图2中,仅展示了本发明使用到的那些构成电路10的组件。因此该电路还可进一步包括其它的许多电路或组件,这些均取决其应用的情况。
电路10包括一个生成、提取或者是存放标识数ID的区域1。图中示意性展示的区域1在初始提取之后可对应于一个包含有数字的非易失寄存器,在芯片例如每一次接通电源时对应于一个基于物性参数提取数字的电路等。电路10还包括一个或多个寄存器12(REG),这些寄存器用来在密钥计算后临时存放从电路外部(实际上是从个性化工具PERSO)引入的密钥KEY。寄存器12的输出被送到一组件15上,组件15是位到位的XOR型,其与组件16(OTP)的输出进行逻辑组合,其中的组件16用来在其有效性经核实后以非易失形式包含密钥KEY,这一点在下面参见图3A可以看出。组合组件15的输出给块3(A*ID+KEY)提供了一个密钥KEY,块3基于函数fA(例如,其在选择上对应于一条直线)计算出结果。
作为优选,逻辑或算法函数是在电路制造时以布线逻辑电路的形式获得。其目的是在与结果不匹配时阻止电路的运行。在所示示例中,块3提供一个信号R,其对应于图1中的确认信号OK,从而释放中央单元17的一个复位输入RESET,该中央单元17包含在集成电路10中。这里考虑的情况是集成电路10带有更先进的计算装置(中央处理单元),并且该中央处理单元通过一条或多条总线18与不同外围设备和存储器通讯的情况,其中的存储器16(OTP)和存储器19(ROM)包含有集成电路的应用程序。此外,该集成电路还可带有其它的组件如易失存储器(RAM)和输入/输出电路,尽管这些组件未展示在电路10中。
作为选择,密钥KEY在生成时就直接输入到非易失存储器中(然后将门15省掉)。然而图2的实施例是一个优选实施例,因为其在对电路进行参数化时能核对密钥是否正确生成,这一点将结合图3A和3B看出来。
图3A是一流程图,其展示的是将密钥记录到图中电路10中的情况。该流程图实际上对应的是在电路制造的最后或者是在电路的第一次使用时进行的个性化阶段PERSO MODE(例如,初始化模式或测试模式)。
由于密钥KEY取决于芯片的本征参数,因此该个性化工具必须能够识别出这些参数才能计算出该密钥。例如,这些参数,其在实际使用中是数字字,均由电路提供从而个性化成个性化电路。
在另一示例中,设计者直接将该组标线提供给制造商(铸造机),集成电路芯片在芯片上的位置能够通过例如其在芯片上的位置识别出来。该位置可由个性化工具检测出来,在这种情况下个性化操作(至少是计算阶段和密钥KEY的记录阶段)是通过整个芯片进行的。该个性化工具进一步包含芯片位置与函数参数之间关系的一张表格,其中的函数参数已植入在这里,然后就能计算集成电路中保存的这个密钥。此时,该电路只是将其标识符ID提供给该个性化工具。
作为优选,该个性化操作并非由电路制造商(铸造机)来完成,而是由设计者或者是负责组装电路的组装人员(通常来讲,其是设计者的客户)来完成。该个性化操作通常是在一个安全的环境中完成的。
第一步(块21,READ ID,A)包括读取芯片的标识符ID和函数的参数A,其由电路10提供给个性化工具从而能使其计算出密钥KEY。实际上,个性化工具是一个计算机数字系统,其带有计算装置以及能通过总线18连接到电路10的接口。
密钥的计算由个性化工具(块22,COMPUTE TKEY)来完成。为了完成密的计算,个性化工具不仅要知道电路所希望的结果R0,还要知道函数f(更为特别的是其逆函数),从而能够基于电路特定的参数A和函数fA进行复原。在线性函数(R=A*ID+KEY)的示例中,该工具使用的实际上是公式TKEY=R-A*ID。
然后由个性化工具将所计算出来的密钥KEY发送到电路10(块23,SENT TKEY)。该密钥达到寄存器12(图2)并通过XOR门15与存储器16中保存的一字进行组合。由于是第一次初始化,存储器16的各位均在状态0,因此门15所提供的密钥KEY对应于外部所输入的密钥TKEY。
电路10(块3)将密钥与标识符组合起来并提供一个结果(块24,R=fA(ID,TKEY))。
将该结果与所希望的结果R0进行比较(块25,R=R0?),其中的R0对应于以非易失方式包含在电路10中的常数。如果该结果不正确(测试25输出N),那么电路就不启动,或者是设定到一个无限的循环中,还或者是启动其它某一个合适的错误处理程序(ERROR),其例如根据应用进行选择。
在结果正确的情况下(测试25的输出为Y),由外部输入的密钥TKEY的数值就保存在非易失存储器16中(块26,OTP=KEY),并且允许启动电路(RUN)。
在存储器16包含的字节非零时(这意味着存储器存在缺陷,或者是有仿制企图),初始的密钥KEY就是错的,电路不能启动。
图3B展示的是根据本发明核实电路真实性的方法的简化流程图。在密钥按照图3A的实施模式输入进来之后,图3B展示的情况是电路的第二次启动(或者是后续启动)的情况,其通常对应于用户使用模式的情况。
第一个步骤(块31,READ KEY)包括从电路10的存储器16读取密钥。然后,或者是与之同时,从芯片提取或读取标识符(块32,READ/EXTRACT ID)。这两个操作符由电路3组合从而计算出一个结果R(块24,R=fA(ID,KEY))。上述操作与图3A中进行的操作相同从而核对所计算出来的密钥TKEY。
然后将结果R与所希望的常数R0进行比较(块25),从而允许或不允许电路启动。
一旦启动起来,该电路就执行与其应用相连接的处理,该应用不是本发明的对象。
在一实施例中,计算出来的结果R可由CPU 17直接使用从而将该结果与ROM 19中包含的一个希望的结果进行比较。此时,该希望值可从一个芯片到另一个芯片均不同,或者是在制造时根据所实现的植入随着芯片组的不同而不同,从而对该函数进行区分。
这种实施例能够抑制布线逻辑电路从而计算出该函数和/或带来另一种阻止模式。
本发明的优点在于,其能保护集成电路的结构被仿制,特别是能防止利用一组有效模具来制造仿制电路。
当然,本发明有可能具有一些对本领域技术人员来说显而易见的变化、修改和改进。特别是,可选择不同的计算或合并函数(例如,当前在密码系统中使用的对称型函数),条件是无论芯片参数如何变化,都至少存在一个密钥,在函数将其与标识符组合时,提供一个常数。
同样,根据上面给出的说明,本发明的实施,特别是使用已知技术来对参数进行区分(例如,美国专利US6780716中描述的技术)本身均在本领域技术人员的能力之内。
此外,本发明与密钥KEY和标识符ID的后续使用兼容。更为特别的是,本发明与集成电路的其它后续个性化操作(例如由应用提供商提供)相兼容,该操作包括使密钥KEY多样化从而使该电路专用于特定的应用或功能。由本发明提供的个性化阶段旨在无论其目的如何均禁止使用仿制电路从而对制造进行保护(由应用提供商----运输、银行等个性化的目标应用)。
权利要求
1.一种集成电路(10)的保护方法,其特征在于由以下步骤构成将所有或部分电路的启动条件设定为一密钥(KEY)的存在,所述密钥在所述电路的外部生成并在电路制造后以非易失方式记录下来,同时所述密钥取决于电路制造最后以非易失方式记录在电路中的至少一参数(A,ID)。
2.如权利要求1的方法,其包括以下步骤将集成到电路(10)中的一个计算函数(fA)至少应用到所述密钥上;以及核对该计算的结果(R)是否与一预定数值(R0)相符合。
3.如权利要求2的方法,其中如果所述函数(fA)应用于密钥能符合于所述的数值,那么集成电路(10)中所述密钥(KEY)的记录只能由所述电路进行。
4.如权利要求2的方法,其中所述函数(fA)至少将所述密钥(KEY)和所述第一参数用作操作数,其中的第一参数由电路(10)的标识数(ID)形成。
5.如权利要求2的方法,其中所述密钥(KEY)基于所述参数(ID)以及函数(fA)在电路的外部生成从而与所述数值相符合。
6.如权利要求2的方法,其中的函数(fA)要考虑第二个参数,该第二参数是在电路制造的最后以非易失形式存在于电路(10)中的。
7.如权利要求6的方法,其中所述第二参数(A)取决于其中包含有集成电路(10)的芯片在芯片中的位置,其中的芯片支持有多个芯片。
8.如权利要求1的方法,其中所述参数(A,ID)从一个集成电路芯片到另一个集成电路芯片是不同的,或者是从一组芯片到另一组芯片是不同的。
9.一种个性化集成电路(10)的方法,其中的电路包括一个计算函数(fA),至少一个在电路制造的最后以非易失方式存在于电路中的第一参数(A,ID)以及一个组件(3),该组件用来计算该函数(fA)并能将该结果相对于一预定数值进行核对,其特征在于该方法由以下步骤构成在电路的外部并基于所述参数和函数计算(22)一密钥(TKEY),由此将该函数应用于该密钥并提供一个与一预定特性相符合的的结果;将计算出来的密钥传送(23)到电路;在电路中将所述计算函数应用(24)于所计算出来的密钥;以及只有在该结果符合于所述特性时才允许(25)将密钥以非易失方式记录(26)在集成电路中。
10.用来保护如权利要求1的集成电路的方法,其中所述电路(10)由权利要求9的方法来个性化。
11.一种制造集成电路芯片的方法,其由以下步骤构成在能够形成多个电路的同一组模具内改变一计算函数(fA),该计算函数取决于一个用来实施权利要求8保护方法的参数。
12.一种集成电路(10),其包括一个部件(2,16),其用来将一密钥(KEY)以非易失方式保存起来;一个部件(1),其用来从电路(A,ID)保存或提取至少一个参数;一装置,其用来将所有或部分电路的启动条件设定为电路中密钥的存在,该密钥取决于所述的参数已在电路的外部生成。
13.如权利要求12的电路,其包括一装置,其用来实施权利要求1的保护方法。
全文摘要
本发明涉及一种集成电路的保护方法。根据所述方法,所有或部分电路的启动取决于一密钥(KEY)的存在,所述密钥在电路制造后以非易失方式记录下来,同时所述密钥取决于电路制造最后以非易失方式记录在电路中的至少一参数(A,ID)。
文档编号G06K19/073GK101031931SQ200580032904
公开日2007年9月5日 申请日期2005年9月27日 优先权日2004年9月28日
发明者吕克·维达尔, 法布莱斯·马里内特 申请人:意法半导体有限公司