在电子组件中使用密钥加密算法的对抗方法

文档序号:7586720阅读:192来源:国知局
专利名称:在电子组件中使用密钥加密算法的对抗方法
技术领域
本发明涉及在电子组件中使用密钥加密算法的对抗方法。这些电子组件使用在对服务或数据的访问受到严格控制的应用中。它们具有形成在微处理器及存储器周围的结构,其中一个程序存储器包含密钥。
这些组件主要使用在芯片卡中,用于它们的一些应用。例如,它们为访问某些数据库的应用;银行业务的应用;远程付费的应用,如用于电视,配给汽油,或通过高速公路的交费站。
因此这些组件或这些卡要使用密钥加密算法,其中最著名的是DES算法(英语Data Encryption Standard的缩写)也具有另外的密钥密码,如RC5算法或COMP128算法。当然,这种列举没有穷尽。
总地并简要地,这些算法的功能是根据由主系统(服务器,银行自动取款机…)在输入端(对卡)提供的信息及根据包含在卡中的密钥计算加密信息,及将该加密信息送回到主系统,由此,允许譬如主系统认证该组件或卡,允许交换数据…。
但是,显然这些组件或卡易于受到侵袭,这种侵袭在于对消耗电流的差分分析并使心怀叵测的第三者能找出密钥。这种侵袭被称为DPA侵袭,为英语Differential Power Analysis的缩写。
该DPA侵袭的原理是基于这样的事实,即微处理器执行指令的电流损耗将根据被操作数据而变化。
尤其是,操作一个数据位的微处理器的指令将根据该位为值“1”还是“0”产生出两种电流幅值。典型地,如果指令操作“0”,则在执行时刻得到消耗电流的第一幅值,及如果指令操作“1”,则得到不同于第一幅值消耗电流的第二幅值。
密码算法的特征是公知的执行计算,及使用参数。唯一未知的是包含在程序存储器中的密钥。密钥不能仅从知道施加在输入端的信息及返回的编码信息来推导出。
但是,在密码算法中,某些计算数据项仅依赖于以明码施加在卡输入端的信息及卡中所包含的密钥。在程序中计算的其它数据也可仅根据编码信息(通常以明码在卡的输出端向主系统提供)及包含在卡中的密钥来重计算。更确切地,这些具体数据的每个位可根据输入端或输出端的信息及密钥有限的具体位数来确定。
因此,具体数据的每个位相应于由密钥位的具体组形成的子密钥。
这些具体数据的位可被预计及在以下被称为“目标比特”。
DPA侵袭的基本思想是,使用依赖其操作的是“1”还是“0”的指令所消耗电流幅值的差别,及使用根据已知输入及输出信息及对相应子密钥的假定由算法指令计算目标比特的可能性。
因此,DPA侵袭的原理是,通过对大量电流测量曲线应用选择布尔函数来捡验给出的子密钥假定,每个电流测量曲线相应于侵袭者已知的输入数据,其选择布尔函数为子密钥假定函数并对于每个曲线由对目标比特的预计值来确定。
在对相关的子密钥作出假定时,实际上对于一个给定的输入或输出信息可以预计目标比特将取得的值“0”或“1”。
作为选择布尔函数,可应用对于相关子密钥的假定由目标比特取得的值“0”或“1”来将这些曲线分为两个包第一包将观察到目标比特操作在“0”上的曲线集中起来,及第二包将观察到根据子密钥假定目标比特的操作在“1”上的曲线集中起来。通过对每个包中的消耗电流取平均值,可获得第一包的平均耗电曲线M0(t)及第二包的平均耗电曲线M1(t)。
如果子密钥的假定是正确的,则第一包正确地将N个曲线中观察到目标比特操作在“0”上的所有曲线集中起来,及第二包正确地将N个曲线中观察到目标比特的操作在“1”上的曲线集中起来。第一包的平均耗电曲线M0(t)在任何地方均具有平均耗电值,但在执行关键指令(les instructions critiques)的时刻除外,此时具有目标比特操作在“0”上的特征(profile0)的耗电。换言之,对于所有曲线,所有被操作位具有值为“0”与值为“1”的相同机会,但总是为“0”值的目标比特除外。这可写成下式M0(t)=[(profile0+profile1)/2]t≠tci+[profile0]tci即M0(t)=[Vmt]t≠tci+[profile0]tci式中tci表示执行关键指令的关键时刻。
类似地,第二包的平均耗电曲线M1(t)在任何地方均相应于平均耗电,但在执行关键指令的时刻除外,此时具有目标比特操作在“1”上的特征(profile1)的耗电。这可写成下式M1(t)=[(profile0+profile1)/2]t≠tci+[profile1]tci即M0(t)=[Vmt]t≠tci+[profile1]tci可以看到,这两个幅值profile0及profile1不相等。曲线M0(t)及M1(t)的差则给出一个信号DPA(t),它的幅值在执行操作该位的关键指令的关键时刻、即在

图1所示的例子中的点tc0至tc6上等于profile0-profile1,而在关键时刻以外的地方其幅值等于零。
如果子密钥的假定不正确,则分组也是不真实的。从统计上看,这时在每个包中,观察到目标比特操作在“0”上的曲线真正与观察到目标比特的操作在“1”上的曲线同样多。这时所产生的平均曲线M0(t)位于由(profile0+profile1)/2=Vm给出的平均值周围,因为对于每个曲线所有被操作位、包括目标比特在内具有值为“0”与值为“1”的相同机会。
同样的原因使第二包导致为平均耗电曲线M1(t),它的幅值位于由(profile0+profile1)/2=Vm给出的平均值周围。
在此情况下,被差值M0(t)-M1(t)提供的信号DPA(t)实质上等于零。在子密钥假定不正确的情况下的信号DPA(t)表示在图2中。
因此,DPA侵袭使用了当根据被操作位的值执行指令时消耗电流幅值的差,以基于给定子密钥的选择布尔函数执行消耗电流曲线的分组。通过产生的两个曲线包之间的平均耗电的差分分析,可以获得信息信号DPA(t)。
因而侵袭DPA的全部过程在于a-抽取N个随机信息(例如N等于1000);b-对于N个随机信息的每个由卡执行算法,并每次记录电流消耗曲线(在组件的电源端子上测量);c-对子密钥作出假定;d-对于每个随机信息预计由一个目标比特取得的值,其值仅依赖于(输入或输出)信息的位及作为假定所取的子密钥,以便获得布尔选择函数;
e-根据该布尔选择函数(即对于每个曲线在子密钥假定下根据对目标比特预计的值“0”或“1”)对曲线分组;f-在每个包中计算由平均消耗电流产生的曲线;g-确定这些平均曲线的差值,以获得信号DPA(t)。
如果子密钥的假定正确,该布尔选择函数则正确,及第一包的曲线将真正对应于在卡中在输入端或输出端上提供的信息所给出的目标比特为“0”的曲线,以及第二包的曲线将真正对应于在卡中在输入端或输出端上提供的信息所给出的目标比特为“1”的曲线。
这是在图1中所示的情况信号DPA(t)于是在相应于执行关键指令(即操作目标比特的指令)的时刻tc0至tc6上不为零。
应指出,侵袭者并不需要精确知道这些关键时刻。对侵袭者只要有测量周期中的至少一个关键时刻就够了。
如果子密钥的假定不正确,则分组不符合实际情况,及在每个包中实际上相应于目标比特为“0”的曲线与相应于目标比特为“1”的曲线同样地多。DPA(t)信号实质上到处为零(图2中所示的情况)。这时必需返回到步骤c及对子密钥作出新的假定。
如果假定被证明是正确的,将可以继续进行其它子密钥的假定,直到最大限度地重组密钥为止。例如,对于DES算法使用64位密钥,其中仅有56位是有效的。对于DPA侵袭,可以至少重组这56个有效位中的48位。
本发明的目的是在电子组件中使用一种对抗方法,该方法甚至在子密钥的假定正确时也导致信号DPA(t)为零。
以此方式,就根本不可能将子密钥假定正确的情况与子密钥假定不正确的情况区别开来。借助该对抗策略,电子组件受到保护以免DPA侵袭。
根据本发明,该对抗方法可以使目标比特、即由关键指令操作的数据变为不可预计的。
实际上,因为该对抗方法对于施加在输入端的每个信息由关键指令操作的目标比特以相等的几率取值“0”或“1”。在每个在给定子密钥假定情况下借助侵袭者已计算的布尔选择函数侵袭者作出的曲线包中,实际将具有同样地多的以目标比特“0”操作的曲线与以目标比特“1”操作的曲线。信号DPA(t)总是为零,而不管子密钥的假定正确还是不正确。
因此,作为其特征,本发明涉及一种在电子组件中使用密钥加密算法的对抗方法,算法的实施包括使用第一装置,以根据输入数据、输出数据和/或由关键指令操作得到的数据提供输出数据。根据本发明,该对抗方法还考虑使用其它装置,以使得输出数据及推导出的数据是不可预计的。
根据本发明,使用的不同装置将根据二分之一概率统计法则来管理。
在以下的说明中以非限制说明的方式并借助附图来详细地描述本发明的其它特征及优点,附图为图1及2(已被描述),表示根据DPA侵袭作为密钥K的子密钥假定的函数获得的信号DPA(t);图3及4是执行第一循环及最后一循环DES算法的流程图;图5是用于DES算法中的SBOX操作的框图;图6表示用于SB0X操作的具有输入及输出的基本常数表;图7及8表示根据本发明对抗方法一个实施方式的执行第一循环及最后一循环DES算法的流程图的例子;图9及10分别表示本发明的第二及第三基本常数表;图11表示根据本发明对抗方法一个实施方式的执行DES算法的总流程图;及图12表示包括使用了根据本发明的对抗方法的电子组件的一个芯片卡的简化框图。
下面将以DES密码算法的一个应用例子来解释本发明。本发明并不限制在该一个例子上,它可使用在一般的密钥加密算法中。
DES密码算法(以下简称为DES或DES算法)包括16循环计算,表示为T1至T16,如图3及4中所示。
DES开始于对输入信息M的初始排列(图3)。输入信息是一个64位的字f。在排列后,获得一个64位的字e,它被切成两部分,以形成第一循环(T1)的输入参数L0至R0。L0是包括字e的32个最高位的32位字d。R0是包括字e的32个最低位的32位字h。
密钥K是一个64位的字q,它本身受到排列及压缩,以提供一个56位的字r。
第一循环包括对参数R0的操作EXP PERM,该操作包括一次扩展及一次排列,以提供48位的字1。
该字1在一个表示为XOR的异或(OU EXCLUSIF)型操作中与参数K1组合,以提供一个48位的字b。参数K1是一个48位的字m,它由字r移位一个位置(图3及4中表示为SHIFT的操作)接着一次排列及一次压缩(表示为COMP PERM)的操作。
字b被施加称为SBOX的操作,在其输出上获得一个32位的字a。对于该特殊操作还要参照附图5及6更详细地说明。
字a受到一次排列P PERM,在其输出上得到一个32位的字c。
该字c在一个表示为XOR的异或(OU EXCLUSIF)型操作中与第一循环T1的输入参数L0组合,作为输出提供一个32位的字g。
第一循环的字h(=R0)提供下一循环(T2)的输入参数L1,及第一循环的字g提供下一循环的输入参数R1。第一循环的字p提供下一循环的输入参数r。
另外的循环T2至T16以类似方式进行,但涉及移位的操作SHIFT除外,它将根据相关的循环在一个或两个位置上进行。
于是每循环Ti作为输入接收参数Li-1,Ri-1,及r及作为输出提供参数Li,Ri及r,用于下一循环Ti+1。
在DES算法结束时(图4),将根据最后一循环T16提供的参数L16及R16计算编码信息。
实际上,编码信息C包括以下操作-通过使字L16及R16位置的倒置及然后连接形成64位字e’;及-执行排列IP-1,它为DES开始时排列的倒置,以便获得形成编码信息C的64位字f。
SBOX操作被详细地表示在图5及6中。它包括一个常数表TC0,用于提供作为输入数据b函数的输出数据a。
实际上,该常数表TC0以8个基本常数表TC01至TC08的形式表示,每个表作为输入仅接收字b的6位,以便在输出上仅提供字a的4位。
因此,图6上所示的基本常数表TC01作为输入数据接收字b的位b1至b6及作为输出数据提供字a的位a1至a6。
实际上,这8个基本常数表被存储在电子组件的程序存储器中。
在第一循环T1的SBOX操作中,常数表TC0的输出数据a的具体位仅取决于在输入上施加的数据b的6个位,即仅是密钥K及输入信息(M)的6位。
在最后一循环T16的SBOX操作中,常数表TC0的输出数据a的具体位可根据密钥K及编码信息(C)的仅6位再计算。
但如果回顾DPA侵袭的原理,假如目标比特被选择为输出数据a的一个位,对于给定输入信息(M)或输出信息(C)预计一个目标比特的值来说,在密钥K的6位上作出假定就够了。换言之,对于DPA,在6位子密钥上作出假定就够了。
在对于一个给定目标比特基于这种算法的DPA侵袭中,必需在64个可能性中鉴别出一个正确的子密钥假定。
因此,通过在字a中仅取8位作为目标比特(每个基本常数表TC01至TC08一个输出位),并在这些目标比特的每个作出DPA侵袭,就可以一直发现到密钥的6×8=48位。
在DES中,在该算法的开始及结束时由此可找出关于DPA侵袭的关键指令。
在DES算法开始时,根据输入信息M及子密钥假定可被预计的数据是在第一循环(T1)中计算的数据a及g。
第一循环T1中的数据(图3)是相关循环中SBOX操作的输出数据。数据g是根据数据a通过排列(P PERM)及与输入参数的异或(OUEXCLUSIF)操作被计算的。
而第一循环的数据c是由第一循环的数据a导出的数据。导出的数据c相应于数据a的位的简单重排列。
第二循环的数据1是由第一循环的数据g导出的数据,因为它相应于字g的位的重排列,字g的某些位还是被复制了。
已知了a及g,就可以知道这些可导出的数据。
该算法开始时的关键指令是操作可预计的数据、如第一循环的数据或导出的数据的关键指令。
于是操作第一循环T1的数据a或导出的数据c的关键指令是SBOX操作结束时的指令、P PERM操作的指令及第一循环T1的XOR操作开始时的指令。
操作数据g或导出的数据的关键指令是从第一循环T1结束时的操作XOR结束的指令到第二循环T2的SBOX操作开始的指令中的所有指令,及第三循环T3结束时的操作XOR开始的指令(L2=h(T2)=g(T1))。
在DES算法结束时,根据编码信息及子密钥假定可被预计的数据是第16循环T16的数据a及等于第14循环T14的字h的数据L15。
操作第16循环T16的数据a或导出的数据的关键指令是用于第16循环操作SBOX结束、排列操作P PERM及XOR操作开始的指令。
对于数据L15,操作该数据或导出的数据的关键指令是从第14循环T14的操作XOR结束的指令到第15循环T15的SBOX操作开始的指令中的所有指令,及第16循环T16结束时的操作XOR开始的指令。
根据本发明应用于该DES算法的对抗方法在于,对于操作一个数据的每个关键指令具有与操作其补数的关键指令相同的几率。因此,不管在其上可作出DPA侵袭的目标比特如何,操作该位、即操作“1”或“0”的关键指令具有相同机会。
实际上,这应该适合每个可能的目标比特换言之,侵袭者具有多个可能的侵袭选择,即具有多个布尔选择函数的选择,以便对于给定的子密钥假定执行其曲线分组,根据本发明的对抗方法的使用应该致力于被每个关键指令操作的数据将随机地每隔一次取一个数值或它的补数。当本发明的对抗方法应用于DES算法时,因此需对DES开始时的关键指令及对DES结束时的关键指令施加对抗措施,以便完全受到保护。
在DES中,被关键指令操作的所有数据为输出数据或从SBOX操作的输出数据中导出的数据。
在DES开始时,可被预计的数据是第一循环T1的数据a及g。数据a是第一循环SBOX操作的输出数据。数据g是根据数据a计算的数据,因为g=P PERM(a)XOR L0。因此g是从第一循环的SBOX操作的输出数据a导出的数据。于是,被DES开始的关键指令操作的所有数据将直接或间接地由第一循环的SBOX操作的输出数据来产生。
对于DES结束时,可被预计的数据是第16循环T16的数据a及第14循环T14的数据g,g等于L15。
数据a是第16循环T16的SBOX操作的输出数据。
对于数据L15,在DES算法常规执行时,可根据第14循环T14的SBOX操作的数据a来计算。
如果具体SBOX操作的输出数据a变得不可预计,所有导出的数据也变得不可预计因此由DES算法的关键指令操作的所有数据变得不可预计。
因而SBOX操作相应于由常数表TC0组成的第一装置,它被使用在每一循环中,以便根据输入数据S提供输出数据。
施加于DES算法的对抗方法的一个实施形式在于,使用至少另一常数表作为使得输出数据a变得不可预计的另一装置,以使得所有这些输出数据和/或由关键指令操作的导出数据被变得不可预计的。
在执行该算法时,使用各个装置,即在该例中,使用了根据二分之一概率统计规律管理的各个常数表。
另外一个或一些常数表时这样的,即使得第一常数表TC0的输入数据d及输出数据的一个和/或另一个相应于其补数数据。
图7及8表示根据本发明施加于DES算法的对抗方法的一个应用图7表示该算法的开始。根据本发明的对抗方法中未有变化的数据操作具有与上述图3中相同的标记。
在DES算法开始时,在第一循环T1的SBOX操作中设置了第二常数表TC1。这些图中所有受第二常数表TC1影响的数据被标有标记’或标记。可以看到,DES开始时的关键指令操作由该对抗方法影响的所有数据。
可以看出,第一常数表实际是由8个第一常数表组成的,第二常数表也是由8个第二常数表组成的。
在所示的实施例中第一常数表TC0及第二常数表TC1是这样的,即对于相同的输入数据E,第二常数表在其输出提供的数据是由第一常数表提供的输出数据的补数。
图9表示这样一个第二基本表TC11,它提供的输出是图6中所示的第一基本表TC01输出的补数。
借助该第二常数表TC1,在第一循环T1的SBOX操作的输出上获得了被第一常数表TC0获得的数据a的补数/a。类似地,在第一循环T1中获得补数数据/g,及在第二循环T2中获得补数数据/h,/L2,/1及/b。
通过根据二分之一概率统计规律提供输出数据的第一表或第二表,在DES开始时由关键指令操作的所有可能的目标比特具有取值“1”与取值“0”相同的机会。
在DES算法结束时,根据本发明的对抗方法的实施形式需要使用与第一表不同的多个常数表,因为必需同时考虑在第14循环T14中计算的输出数据a及在第16循环T16中计算的输出数据a,以便使由该DES技术时的关键指令所操作的所有数据变得不可预计。
该对抗方法用于该DES算法结束的一个实施例被表示在图8上。
考虑使用两个常数表TC1及TC2。
在第14循环T14中计算的SBOX操作中,使用已在DES开始时用过的第二常数表TC1。
在第15循环及第16循环的SBOX操作中,使用第三常数表TC2。
该第三常数表TC2是这样的,即它对第一常数表TC0的输入数据E的补数/E提供输出数据s的补数/s。相应的第三基本常数表的一个例子TC21表示在图10上,它是根据第一基本常数表确定的。
通过使用这些常数表,显然在图8中所有关键指令将操作补数数据。
本发明并不被限制在这些常数表TC1及TC2的例子上。亦存在另外的可能性。例如,对于在DES结束时使用的对抗方法,可以将常数表TC1及另外的常数表组合使用,后者是相对第一常数表确定的,如它对输入数据的补数/E提供输出数据S。
一般地,DES的结束需要使用根据相关循环的不同的常数表,以便使由DES结束时关键指令操作的所有数据将是不可预计的。
但是,参照图7及8所述的实施形式具有一个缺点在DES输入时所使用的对抗方法将产生中间计算的结果L3’及R3’,它们是不正确的。因此所有随后的中间结果也将是不正确的。
类似地,在DES结束时所使用的对抗方法将产生中间计算的结果L16’及R16’,它们亦是不正确的。
在所有情况下,编码信息均不正确。
在本发明的该实施形式中,因此,必需考虑能重新使后面的算法每次-一旦发出关键指令的话-有正确的中间结果。
实际上,因为DES开始的关键指令处于头三循环中,这头三循环将被拆分为二。换言之,考虑执行两个序列,每个至少包括头三循环T1,T2,T3。第一序列SEQA在每循环中使用第一常数表TC0。另一序列SEQB在至少第一循环T1中使用第二常数表TC1。在所示例中,在两个随后的循环T2及T3中使用第一常数表。
可看出,根据本发明的对抗方法使用了各个装置,即在该例中使用了各个常数表,它们根据二分之一概率统计规律被管理。这时该二分之一概率统计规律将被具体地应用在各个装置使用的次序上,即在该例中,应用在两个序列SEQA及SEQB的执行次序上。
同样地,为了在产生编码信息C的DES结束时具有正确的参数L16及R16,也使包含DES结束的关键指令三循环T14,T15及T16(图7)拆分为二。于是执行两个序列,其中每个序列至少包括最后三循环T14,T15,T16。第一序列SEQA’在每循环中使用第一常数表TC0。另一序列SEQB’使用另外的常数表TC1及TC2。如上所述,二分之一概率统计规律应用在这两个序列SEQA’及SEQB’的执行次序上。
这时关键指令被执行两次,每个序列中一次。但是在一个或另一序列中无论哪个关键指令的执行时刻,操作一个数据的概率等于操作其补数的概率。
因此使用在电子组件中的DES计算程序应该被修改,以包括根据本发明的对抗方法。根据本发明并使用参照图7及8所述实施形式中在DES开始及结束时的对抗方法的一个执行流程例表示在图11中。在该例中,每个序列SEQA及SEQB包括头三循环及每个序列SEQA’及SEQB’包括最后三循环。
计算程序则主要在于,将标记为DATAIN及KEY的输入数据存储在标记为CONTEXTO的暂存区中,这些参数相应于L0,R0及r。
在该计算程序中,接着将第一环形计数器FR置成0,及随机地抽取一个等于0或1的值RND1。
在该例中,如果RND1等于1,则首先执行T1,T2,T3的序列SEQB,在该序列中在T1循环中使用第二常数表TC1,及对于T2及T3循环使用第一常数表TC0。输出参数L3’,R3’(它们具有不正确值)被存储在标记为CONTEXT2的暂存区中。
如果FR不等于1,它被置于0,则从CONTEXTO中捡索出输入数据,及使RND1的值取补数。在该例中,得到RND1等于0。这时将执行T1,T2,T3的另一序列SEQA,其中在这三循环T1,T2及T3中使用第一常数表。将输出参数(正确值)存储在标记为CONTEXT1的暂存区中。
如果FR为1,两个序列均被执行。这时捡索出CONTEXT1,以便在下一循环中提供具有正确值的中间结果。
如果FR等于0,则程序开始于T1(TC0),T2(TC0),T3(TC0)及结束于T1(TC1),T2(TC0),T3(TC0)。
在达到循环T13结束时,由该循环T13提供的参数L13,R13B被存储在暂存区CONTEXTO中,及以与第一循环相似的方式进行剩余的循环T14,T15及T16。
在所有情况下,指令的数目必需精确地相同,而不管计算路径如何。这就是为什么,尤其在所述应用例中要考虑也将不正确的值(L3’,R3’,或L16’,R16’)存储在暂存区CONTEXT2中。
实际上,如果在两个可能路径之间存在任何差别,就具有DPA侵袭成功的可能性。
根据本发明的对抗方法不限制在参照DES算法描述的具体实施例上。它可以应用于任何密钥加密算法。一般地,对于包括使用第一装置根据输入数据提供输出数据、由关键指令操作输出数据和/或导出的数据的任何算法的实施,根据本发明的对抗方法还包括使用使用另外的装置,以使得输出数据及导出的数据成为不可被预计的。
使用的各个装置,例如使用的第一装置及使用的另外装置,是根据二分之一概率统计规律进行管理的。
另外装置可包括多个不同的装置。它们是这样的,即它们使其数据的补数与第一装置的输入及输出数据中的一个或另一个相对应,在以上具体描述的用于DES的对抗方法实施形式中,第一装置由第一常数表TC0组成。另外的装置在DES开始时由第二常数表TC1组成。在DES结束时,在此例中它们由两个不同的常数表TC1及TC2组成。
为了将根据本发明的对抗方法用于一个给定的密钥加密算法,因此必需首先确定该算法所有可被预计的数据,及操作这些数据或导出的数据的所有在DPA侵袭的意义上关键的指令。然后应该在该算法中鉴别在本发明意义上的第一装置及另外装置,以使得由关键指令操作的所有数据不可被预计。对于DES算法,第一装置是常数表TC0。另外的装置譬如为另外的常数表。这些装置对于另外的算法可能有不同的操作。对于同一算法,这些装置可根据鉴别的关键指令由不同的操作组成。
在一种密钥加密算法中使用这种对抗方法的电子组件1典型地包括一个微处理器μP,一个程序存储器2及一个工作存储器3,如图12中所示。为了能管理根据本发明的各个装置的使用,在所述例中这些装置是存储在程序存储器中的各个常数表,设置了装置4,用于产生随机数值0或1,参照图11,当DES每次执行时它提供RND1的值。这种组件可具体地用在芯片卡中改善其防侵袭性能。
权利要求
1.在电子组件中使用具有密钥(K)的密码算法的对抗方法,使用的算法包括使用第一装置(TC0),以便根据输入数据(E)提供输出数据(S),由关键指令操作该输出数据和/或导出的数据,其特征在于所述对抗方法规定使用另外装置(TC1),以使得输出数据及导出的数据不能被预计。
2.根据权利要求1的对抗方法,其特征在于使用的各个装置(TC0,TC1)受到二分之一概率规律的管理。
3.根据权利要求2的对抗方法,其特征在于使用的算法包括16循环(T1,…,T16)计算,其特征在于所述对抗方法包括执行第一序列(SEQA)及第二序列(SEQB),每个序列至少由头三循环(T1,T2,T3)组成,这些序列被执行的次序是二分之一概率统计规律的函数,第一序列(SEQA)在每循环中使用第一装置(TC0),及第二序列(SEQB)在至少第一循环(T1)中使用另一装置(TC1)。
4.根据权利要求3的对抗方法,其特征在于第一及第二序列中的每个序列是由头三循环(T1,T2,T3)组成。
5.根据权利要求3或4的对抗方法,其特征在于另外的装置由第二装置(TC1)组成,以便对于相同的输入数据(E),它提供第一装置(TC0)的输出数据(S)的补数(/S)作为输出。
6.根据权利要求2的对抗方法,使用的算法包括16循环(T1,…,T16)计算,其特征在于所述对抗方法包括执行第一序列(SEQA’)及第二序列(SEQB’),每个序列至少由最后三循环(T14,T15,T16)组成,这些序列被执行的次序是二分之一概率统计规律的函数,第一序列(SEQA’)在每循环中使用第一装置(TC0),及第二序列(SEQB’)使用另外的装置(TC1,TC2)。
7.根据权利要求2的对抗方法,其特征在于第一及第二序列中的每个序列是由最后三循环组成;及在第二序列中使用的另外装置包括第二装置(TC1)及第三装置(TC2)。
8.根据权利要求6或7的对抗方法,其特征在于第二装置(TC1)是这样的,即对于相同的输入数据(E),它提供第一装置(TC0)的输出数据(S)的补数(/S)作为输出;及在第二序列(SEQB’)中对于第14循环(T14)使用第二装置。
9.根据权利要求8的对抗方法,其特征在于第三装置(TC2)是这样的,即对于输入数据(E)的补数,它提供第一装置(TC0)的输出数据(S)的补数(/S)作为输出及它被使用在第二序列中用于第15循环及第16循环(T15,T16)。
10.根据以上权利要求中任一项的对抗方法,其特征在于各个装置是常数表。
11.使用根据以上权利要求中任一项的对抗方法的电子组件,其特征在于在所述组件的程序存储器中固定有各个装置(TC0,TC1,TC2),用于根据输入数据提供输出数据;及所述组件包括产生0或1的随机值(RND1)的装置,用于管理所述各个装置的使用。
12.包括根据权利要求11的电子组件的芯片卡。
全文摘要
在电子组件中使用具有密钥(K)的密码算法,使用的算法包括使用第一装置(TC
文档编号H04L9/10GK1323476SQ9981224
公开日2001年11月21日 申请日期1999年9月13日 优先权日1998年10月16日
发明者C·克拉维尔, O·贝诺伊特 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1