器件和用于制造集成电路防护的方法 本发明涉及一种集成电路器件,其包含一个存储区,该存储区一方面包括一个数据存储器和一个程序存储器,另一方面包括一个具有n个代码块Bi(i=1,……N)的程序。本发明还涉及一种用来制造这种器件防护的方法。
这类集成电路器件广泛用在必须进行保密信息的存储和必须具有处理的安全性的应用场合中。这些应用例如可以是涉及卫生方面的应用,移动电话或银行应用的具有电子元件的卡。
这些卡包括一集成电路,此集成电路通常包括一个用于通过总线处理和分配存储在该卡的存储区内的数据和地址信息的控制器(例如一个中心处理单元即CPU)。这个具有总线的集成电路特别是在这些总线传送逻辑1信息时要消耗电功率。
另外,被一个具有电子元件的卡使用的电流强度随着时间改变,具体地说,是因为在该卡的总线上传送数据或地址的不同的值。电流随着时间的改变是卡的活动地电特征图形(electrical signature)电特征图形,所以对所述特征图形的分析是对所述活动的表征。因此伪造者借助对电特征图形进行分析,例如可以容易跟踪在该卡的程序中的不同代码块中的一系列操作,从而可以访问包含在该卡中的秘密信息。
为了使伪造者对电特征图形的分析变得更复杂,现有技术建议提供一些辅助器件,这些辅助器件产生一些假的信号,这些假信号附加在该具有电子元件的卡活动的电特征图形特征图形上。虽然这些辅助器件能使对电特征图形的分析变得更加困难,但是这些元件使卡的操作速度减慢,因为它们独占了卡的一些资源,这些资源已经用于执行卡的专用操作,并且消耗的电流比较多,因为它们包括在操作时需要消耗电功率的电子元件。
这样,本发明要解决的一个技术问题是:提供一种包括一个存储区的集成电路器件,该存储区一方面包括一个数据存储器和一个程序存储器,而另一方面包括一个具有N个代码块Bi(i=1,…,N)程序,还提供一种制造这种器件防护装置(device secure)的方法,以便获得一个电特征图形:使对所述的电特征图形的分析更加困难,并且其需要很小的电功率和时间消耗,例如由于辅助器件专用器件本身的资源。
按照本发明的第一个目的,一个解决所提出的技术问题的方案的特征在于:所述的集成电路器件的所述的存储区包括具有x个程序代码块Bi(x=1…,N)的M个拷贝Cj(j=1,…,M),其中所述拷贝驻留在所述存储区内的不同的地址上,其特征还在于:所述器件包括一选择组件,该组件用于随机选择在x个块Bi中的至少一个的一个拷贝Cj,作为在执行所述程序时使用的一个块拷贝。
按照本发明的第二个目的,此解决方案的特征在于:所述提供防护的方法包括下述步骤:
在所述存储区内产生x个程序代码块Bi(x=1,…,N)的M个拷贝Cj(j=1,…,M),其中所述拷贝驻留在所述存储区内的不同地址中,以及
随机选择x个块Bi中的至少一个的一个拷贝Cj,作为在执行所述程序时使用的一个块拷贝。
因此,如下面将详细描述那样,按照本发明的器件,尤其是利用所述的电特征图形随着在所述器件总线上传送的值的改变的事实,使伪造者对电特征图形进行分析变得非常困难,从而防止伪造。
从下面的结合附图对本发明的优选的实施例的描述,可以使本发明的其它特征和优点变得更加清楚,这些实施例是作为非限定的例子提供的。附图中:
图1示出了一个集成电路器件,例如一个具有电子元件的卡。
图2示出了图1中的卡上的存储区。
图3示出了图1中的卡上的总线。
图4示出了限定代码块Bi的图2的存储区。
图5示出了在图1的卡内部的代码块和它的拷贝的地址。
图6示出了代码块和它的拷贝在图2的存储区内的分布。
图7示出了另一代码块和它的拷贝在图2的存储区内的分布。
图1示出了一个集成电路器件10,例如一个具有电子元件的卡。
卡10包括一个控制器(例如中央处理单元即CPU),一个包括数据存储器14和一个程序存储器15的存储区域12以及一个用于与例如一个卡阅读连接器相连的终端组件13。
图2中示出了一个存储器12,它包括一个程序P,程序P包括N个代码块Bi(i=1,…,N),其构成代表在执行所述程序P时要完成的步骤或操作的代码块,所述程序P能完成例如从卡10中读出或选择数据的操作,并且其中所述块Bi处理数据和地址信息。
在执行程序P时,在存储器14、15和控制器11之间通过在所述集成电路内部的总线进行信息交换,这些信息交换由所述卡10中的控制器11控制。这些总线或者是用于传送地址信息的总线,或者是用于传送地址信息的总线。如图3所示,数据总线D1,D2,…,D8和地址总线A1,A2…,A16与在每个存储区12内的每个数据存储器14和程序存储器15相连,并且还与控制器11(CPU)相连。
为了搅乱在执行程序P时对电特征图形的分析,在此,程序P的执行是卡10的活动的表征,根据本发明的器件包括在所述的存储区12内的一个或几个块Bi的M个拷贝Cj(j=1,……,M)、和选择组件Ms,用于随机选择一个块Bi的拷贝Cj中的一个,作为后者必须在所述程序中执行时有待执行的一个块拷贝。在执行程序P时,将执行几个代码块Bi。图4例举一个给定的块Bi的例子。对于每次在程序P之内执行有待执行的此块Bi,包括执行在存储区12之内的拷贝Cj,选择组件Ms随机地选择块Bi或者它的拷贝Cj中的一个,供在程序P中执行。由于各个拷贝Cj以及块Bi驻留在不同的地址值中,所以对于每个在程序P内执行块Bi的新的请求,这些总线不承载相同的地址值,这就使对电特征图形的分析变得更加困难,在此,根据在卡10上的总线上传送的值,电特征图形改变。这个器件包括的拷贝块Bi越多,对这个电特征图形的分析就越困难。这就是本发明提供x个块Bi(x=1,…,N)的多个拷贝Cj的理由。
特别是,电特征图形随着如图3所示的在地址总线上传送的值二改变,更具体地说,只要在一条总线上出现信息1,该信息就需要一定的电流。然而如果上述的拷贝Cj和所述的块Bi的地址值在电功率消耗上是相等的(例如所述的地址值1111100000000000和0000111011000000引起相同的功率消耗,因为它们各具有相同位数的1和0),那么,电特征图形变化不很大。因此应按照下述方式选择这些地址,使被拷贝块Bi和它的M个拷贝Cj的地址集合中的至少两个地址的位值之和是不同的。在实践上,业已发现,一般说来,在这些和中有1比特的差就足以能区分这些地址值的电功率消耗量的改变,从而使这个电特征图形的分析变得更加复杂。在图5中示出的那个例子中示出一个块Bi和它的三个拷贝C1、C2和C3,以及它们的相应的地址Ab,Ac1,Ac2和Ac3。在这个例子中,不难发现,地址值Ab,Ac1和Ac3的位值之和是不同的,因此这些地址值在电功率消耗上是不同的,而地址值Ab和Ac2的位值之和是相等的(它们的和都等于7),因此它们的地址值在电功率消耗方面是相等的。
正象电特征图形随着在地址总线上传送的数值的改变一样,电特征图形也随着在图3中所示的数据总线上的数值改变。
因此,按照本发明,在被拷贝块Bi和它的M个拷贝的地址集合中(其中块Bi包括用于管理给定数目的数据的操作),一个地址驻留在程序存储器15中,而另一个地址驻留在数据存储器14中,如图6和7中的例子所示。在此,驻留在程序存储器15中的某一操作,例如读或写操作的执行所消耗的电流量不同于此操作驻留在数据存储器时消耗的电流量。被拷贝的块Bi的操作从卡控制器11来看为在数据总线上传输的数据信息。
因此在块被拷贝到不同的存储器内的上述系统能搅乱电特征图形,并且可以理解,这个系统与到目前为止已描述的系统相结合可以使对电特征图形的分析变得更加困难。
最后,除了由于在本发明的器件内部提供不同系统而使电特征图形的随机改变外,如前面所述,本发明还提供所述特征图形的随机时间改变。更具体地说,本发明提供一种器件,其包括用于随机编制块Bi的执行的控制组件。每个块包括一组与具有电子元件的卡有关的操作。当执行这些操作时产生一些受卡的控制器11控制的功能。为了实现这些功能,控制器要花费时间。一般说来,对于每一组功能,所花费的时间也不同;对于每一组操作也是一样。因此当使用用于块的随机执行块的控制器时,在每次重新执行程序P时,因代码块不按照相同的次序执行,所以电特征图形随次数改变,因此,例如伪造者将不能重复起动执行所述程序P和分析电特征图形,以达到他要竭力找到在各种处理操作与包含在该电特征图形内的每个信号或一系列信号间的默契关系的目的。可以注意到,为了对付伪造,没有加入辅助装置。