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

文档序号:2394381阅读:184来源:国知局
专利名称:在电子组件中使用密钥密码算法的对抗方法
技术领域
本发明涉及在电子组件中使用密钥密码算法的对抗方法。这些电子组件使用在对服务或数据的访问受到严格控制的应用中。它们具有形成在微处理器及存储器周围的结构,其中一个程序存储器包含密钥。
这些组件主要使用在芯片卡中,用于它们的一些应用。例如,它们为访问某些数据库的应用;银行业务的应用;远程付费的应用,如用于电视,配给汽油,或通过高速公路的交费站。
因此这些组件或这些卡要使用密钥密码算法,其中最著名的是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)在任何地方均具有平均耗电值,但在执行关键指令(critical instruction)的时刻除外,以及具有目标位操作在“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即M1(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侵袭。
但是在本发明中理解到,采取步骤使信号DPA(t)相对给定目标位为零是不够的。
这是因为,如果考虑由相同数据项的多个目标位取得的值由关键指令操作,将需要将曲线不是分成两个分组,而是分成多个分组。它将不是二进制选择函数。可以看出,接着将这些分组以一种或另一种方式再分组时,可能在正确子钥假定的情况下获得非零的信号DPA(t),而如果根据基于单个目标位的二进制选择函数分类时它应为零。
举一个相同数据项的两目标位的例子,这两个目标位可取以下22的值“00”,“01”,“10”及“11”。
通过对检测的N=1000个电流消耗曲线施加选择函数,获得了四个曲线分组。如果分类正确,接近有250个曲线的第一分组相应于值“00”,接近有250个曲线的第二分组相应于值“01”,接近有250个曲线的第三分组相应于值“10”及接近有250个曲线的第四分组相应于值“11”。
如果将第一及第四分组分在第一组中及将第二及第三分组分在第二组中,则获得了不相同的两个组。
在第一组中,两个位具有等于“00”与等于“11”相同的机会。在该组所有耗电曲线的临界情况下的平均值可被写为M1(tci)=[耗电(“00”)+耗电(“11”)]/2在第二组中,两个位具有等于“01”与等于“10”相同的机会。在该组所有耗电曲线的临界情况下的平均值可被写为M2(tci)=[耗电(“01”)+耗电(“10”)]/2如果在这两个平均值之间产生了差别,则获得了非零信号DPA(t)。换言之,其平均耗电可比较的两个组不具有相同的内容。
在本发明中,因此力求阻止获得DPA侵袭意义上的任何重要信号。不管所取的目标位数目如何,不管用作进行平均耗电比较的分组的组合如何,该信号DPA(t)将总是零。因此必需获得等效的分组,而不管所考虑的目标位数目如何。
这些不同技术问题的一个解决方案被发现在于,用在该算法中使用的装置的输入及输出中的一个或另一个或两者进行的异或操作中使用一个随机值。
通过使用根据本发明的该随机值,由关键指令操作的数据变为不可被预料,而在该算法的输出上具有正确结果。
因此,作为其特征,本发明涉及一种在电子组件中使用密钥密码算法的对抗方法,算法的实施包括使用第一装置,以根据输入数据、输出数据和/或由关键指令操作得到的数据项提供输出数据项。根据本发明,该对抗方法还考虑使用其它装置,以使得输出数据项及推导出的数据是不可预计的,这些其它装置由所述第一装置通过与一个随机值或与由所述第一装置的输入及输出数据中的一个或另一个或两者得到的随机值的异或(exclusive OR)操作来获得。
在以下的说明中以非限制说明的方式并借助附图来详细地描述本发明的其它特征及优点,附图为-图1及2已被描述,表示根据DPA侵袭作为密钥K的子钥假定的函数获得的信号DPA(t);-图3及4是执行第一轮及最后一轮DES算法的流程图;一图5是用于DES算法中的SBOX操作的框图;-图6表示用于SBOX操作的具有输入及输出的基本常数表的一个例子;-图7表示使用根据本发明对抗方法执行DES算法的流程图的第一例子;-图8是相应的DES算法第一轮的流程图;-图9及10分另表示根据本发明的对抗方法的第二实施方式中执行DES算法的流程图及及第一轮的详细流程图;-图11及12相应于根据本发明对抗方法的第三实施方式;-图13表示第三实施方式的一个变型中执行DES算法的流程图;-图14表示包括使用了根据本发明的对抗方法的电子组件的一个芯片卡的简化框图。
DES密码算法(以下简称为DES或DES算法)包括16轮计算,表示为T1至T16,如图3及4中所示。
DES开始于对输入信息M的初始排列IP(图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的异或型操作中与参数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的异或型操作中与第一轮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至a4。
实际上,这8个基本常数表TC01至TC08被存储在电子组件的程序存储器中。
在第一轮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个可能性中鉴别出一个正确的子钥假定。
因此,由8个基本常数表TC01至TC08的输出位通过对相应目标位作出DPA侵袭,就可以一直发现到密钥的6×8=48位。
在DES中,在该算法的开始及结束时由此可找出关于DPA侵袭的关键指令。
在DES算法开始时,根据输入信息M及子钥假定可被预计的数据是在第一轮(T1)中计算的数据a及g。
第一轮T1中的数据(图3)是相关轮中SBOX操作的输出数据。数据g是根据数据a通过排列(P PERM)及与输入参数LO的异或(OUEXCLUSIF)操作被计算的。
事实上,而第一轮的数据c是由第一轮的数据a导出的数据。导出的数据c相应于数据a的位的简单重排列。
第一轮的数据1是由第一轮的数据g导出的数据,因为它相应于字g的位的重排列,字g的某些位还是被复制了。
已知了a及g,就可以知道这些可导出的数据。
该算法开始时的关键指令是操作可预计的数据、如第一轮的数据或导出的数据a或数据g的关键指令。
于是操作第一轮T1的数据a或导出的数据c的关键指令是SBOX操作结束时的指令,P PERM操作的指令及第一轮T1的XOR操作开始时的指令。
操作数据g或导出的数据的关键指令是从第一轮T1结束时的操作XOR结束的指令到第二轮T2的SBOX操作开始的指令中的所有指令,及第三轮T3结束时的操作XOR开始的指令(L2=h(T2)=g(T1))。
在DES算法结束时,根据编码信息C及子钥假定可被预计的数据是第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(t)将总为零。
当本发明的对抗方法应用于DES算法时,因此必需对DES开始时的关键指令及对DES结束时的关键指令施加对抗措施,以便完全受到保护。
在DES中,被关键指令操作的所有数据为输出数据或从SBOX操作的输出数据中导出的数据。
实际上,在DES开始时,可被预计的数据是第一轮T1的数据a及g。数据a是第一轮SBOX操作的输出数据。数据g是根据数据a计算的数据,因为g=P PERM(a)XORLO。因此g是从第一轮的SBOX操作的输出数据a导出的数据。于是,被DES开始的关键指令操作的所有数据将直接或间接地由第一轮的SBOX操作的输出数据来产生。
对于DES结束时,可被预计的数据是第16轮T16的数据a及第14轮T14的数据g,g等于L15。
数据a是第16轮116的SBOX操作的输出数据。
对于数据L15,在DES算法常规执行时,可根据第14轮T14的SBOX操作的数据a来计算L15=P PERM(a)XOR L14。
如果具体SBOX操作的输出数据a变得不可预计,所有导出的数据也变得不可预计因此由DES算法的关键指令操作的所有数据变得不可预计。如果考虑这些SBOX操作组成第一装置,以根据输入数据E=b提供输出数据S=a,该施加于DES算法的对抗方法还在于使用使输出数据变得不可预料的另外装置,以使得这些输出数据和/或由关键指令操作的导出数据被全部变得不可预计的。
这些另外装置可包括不同的装置。它们由所述第一装置通过与一个随机值或与由所述第一装置的输入及输出数据中的一个或另一个或两者得到的随机值的异或操作来获得。
该随机值的使用是这样的所产生的输出、即编码信息保持正确。
图7表示本发明的第一实施例。在该实施例中,DES算法的16轮被分为每组4个相继轮的四个组G1至G4。因此组G1包括轮T1至T4,组G2分组括轮T5至T8,组G3分组括轮T9至T12及组G4分组括轮T13至T16。
在DES算法的传统执行时,可以看到,每轮分组括在SBOX操作中使用第一装置TC0。
在该对抗方法的第一应用方式中,另外装置是通过与一个随机值u和/或与由所述第一装置TC0的输入及输出数据中的一个或另一个或两者推导出的值e(p(u))的异或(OU EXCLUSIF)操作来计算的。然后将一个相同的执行序列SEQA施加给每个组,该序列在于使用这些另外的计算出的装置。
根据本发明,使用了一个随机值u,它是一个32位的数据。例如可以抽取一个32位的随机值,或抽取一个4位的随机值并复制它8次以获得一个32位的随机值u。
然后计算等于e(p(u))的要导出的变量,其中p(u)相应于给值u施加P PERM操作的结果,及e(p(u))是给值p(u)施加EXP PERM操作的结果。
然后可以计算在本发明中使用的另外装置。
在参照图7所述的例中,这些另外装置包括第二装置TC2及第三装置TC1。
第二装置TC2被使用在每组的第二轮及倒第二轮中;即使用在G1的T2,T3;G2的T6,T7;G3的T10,T11及G4的T14,T15中。
第二装置TC2是通过用求得的随机变量e(p(u))对第一装置TC0的输入数据E施加异或操作及通过用随机值u对第一装置TC0的输出数据S施加异或操作来计算,它可被写为TC2=(Ee(p(u)),Su)。
第三装置TC1被使用在每组的第一轮及最后一轮中;即使用在G1的T1,T4;G2的T5,T8;G3的T9,T12及G4的T13,T16中。
第三装置TC1是通过用随机值u对第一装置TC0的输出数据S施加异或(OU EXCLUSIF)操作来计算,它可被写为TC1=(E,Su)。
计算程序则在于在算法执行开始时,抽取一个随机值u,在该例中为4位,计算导出的随机变量e(p(u)),及然后计算在执行序列SEQA中使用的不同装置。在该例中必需计算第二及第三装置TC2及TC1。
在每组的输出上获得了输出参数的正确结果。于是,第一组G1的输出参数L4及R4,第二组G2的输出参数L8及R8,第三组G3的输出参数L12及R12,第四组G4的输出参数L16及R16均是正确的,而不管抽取的随机变量是怎样的。
当所有轮被执行时,获得了正确参数L16及R16,它们允许计算正确的编码信息C。
另一方面,在各组中,根据所使用的序列某些中间结果不具有相同值,但具有与用随机值u或用导出的随机值e(p(u))执行异或操作相应的值,正如参照图3及8可看到的。
图8表示在根据本发明的执行序列SEQA中第一组G1的四轮T1,T2,T3及T4的详细流程图。
在该序列中,轮T1使用了第三装置TC1。在操作SBOX的输出上,由此获得了随机修改数据au(图8),而不是根据DES的常规序列的数据,即没有对抗措施的数据(图3)。
借助根据本发明的执行序列SEQA,作为简单排列的第一轮的PPERM操作也将提供作为输出的一个随机修改数据,它等于cp(u)。
通过数据cp(u)及数据L0之间的XOR操作获得的数据也将提供作为输出的一个随机修改数据gp(u)。施加给EXP PERM操作的该数据将提供作为输出的一个随机修改数据1p(u)。
因此,借助轮T1的第三装置TC1获得了以下所有的随机修改数据-在轮T1中au,cp(u),gp(u);-在轮T2中R1p(u),hp(u),le(p(u),be(p(u);-在轮T3中L2p(u)。
然后获得在轮T2中使用的第二装置TC2。根据它的定义Ee(p(u)),Su,通过在其输入施加随机修改数据be(p(u),在其输出上得到随机修改数据au。通过将该推导一直进行到轮T4的结束,及通过注出p(u)p(u)=0,在轮T4的输出上获得了非修改数据L4,R4。
此外发现,对于所有用于DES开始的关键指令,这些关键指令将操作以随机方式修改的数据。
对于该对抗方法,在DES开始时必需提供抽取的随机值u及用于执行序列SEQA的装置计算。这些在DES每个执行时计算的装置在执行时间中被存储工作存储器中,用于计算的第一装置TC0其本身则存储在程序存储器中。
再回到图7,可以看出,在中间组G2及G3不需要对抗措施,因为它们不包括在DPA侵袭的意义上的关键指令。因此可以将该对抗方法的执行序列SEQA仅施加给第一仅最后组G1及G4。然后在组G2及G3中使用第一装置(TC0)就够了。
但是,将该对抗方法施加给使用组可达到整体的连贯性。
因此将序列SEQA施加给组G1至G4中的每个。该对抗方法的第二实施方式被描述在图9上。实际上该第二实施方式是第一实施方式的变型。
该变型的一个优点在于,作为在序列SEQA中的另外装置仅使用第二装置TC2。这是因为,可以看出实际上各个装置TC0,TC1,TC2相应于各分组括8个基本常数表的常数表,在DES每次新执行时对装置TC1,TC2必需重新计算,并保存在工作存储器中。
因此该变型在于在序列SEQA中仅使用第二装置TC2。为此,在计算每组第一及第二轮的程序中,设置了用导出的随机变量e(p(u))的附加异或(OU EXCLUSIF)操作CP,以便在第二装置的输入上获得数据be(p(u))。该操作在附图中被记为CP(e(p(u))。如果参照图10,该图表示执行第一组G1的四轮T1至T4的序列SEQA的详细流程图,因此它涉及在轮T1及T4的SBOX操作的输入上施加一个变量be(p(u))。附加操作CP加上第二装置TC2等同于在本发明第一实施方式中使用的第三装置TC1。
这里节省了计算时间,因为在一个组中操作CP仅被执行两次,这就是说,对于四个组的一个完整的SEQA序列为8次,而一个表的计算需要对该表的所有输入数据作出该操作be(p(u))。
应该指出,用变量e(p(u))的附加异或操作可被置于第一及最后轮的各个位置上,即可在EXP PERM操作及XOR操作之间或XOR操作及SBOX操作之间。
还应该指出,可使用导出的随机变量p(u)的附加异或操作,即将该附加操作CP(p(u)置于EXP PERM前面。在输出上获得le(p(u)),因此下一个将是be(p(u))。
在所有这些图示情况下,在SBOX操作的输入上将获得数据be(p(u))。
图11表示根据本发明的对抗方法的第三实施方式。
在该实施方式中,第一组G1由头三轮T1,T2,T3组成,及另一组G4由最后三轮T14,T15,T16组成。在至少某些轮上使用另外装置对该每组施加执行序列SEQA。
对于未包括在这些组中的另外轮,即对于轮T4至T13使用第一装置TC0。
在每组G1,G4的输出上,在输出L3,R3及L16,R16上获得了正确的结果,而不管抽取的随机变量是怎样的。
在该例中,另外装置是参照第一实施方式已看到的第三装置TC1及第四装置TC3。
该第四装置相对第一装置TC0是用导出的随机变量e(p(u))对输出装置E施加异或(OU EXCLUSIF)操作计算出的。
因此,在抽取随机变量u及计算了导出的随机变量后,将计算用于执行序列SEQA中的各个装置。然后将该执行序列SEQA施加给第一组。作为输出获得了参数L3,R3。用第一装置TC0执行所有随后的轮T4至T13。在轮T13结束时将序列SEQA施加给组G4。将获得参数L16,R16,它们用于计算编码信息C。
图12是相应的详细流程图。
在该流程图中可清楚地看到,对于这些轮的所有关键指令获得了随机修改的数据。第三轮输出的数据L3及R3是不能修改的,它允许继续执行该算法,将其进行到T4,在该轮上将根据该算法的常规执行使用第一装置TC0。
在该图中可以看到,在第三轮T3的SBOX操作中,通过在SBOX操作的输出上设置附加异或操作CP,将可以使用第一装置TC0来代替第三计算装置TC1,以便用随机变量u执行输出的异或操作,并在XOR操作的输出上获得数据au。这是一个等效的方案。
图13表示使用该变型的执行流程图。对于两个组G1及G4中的第三轮,在执行序列SEQA中在使用变量u的附加异或指令输出的随后使用第一装置TC0,它被记为T3(TC0,CP(U))。
一般地,在根据本发明的对抗方法中,在执行序列SEQA中及对于一个或多个轮,因此可在根据情况使用变量u或导出的随机变量p(u)或e(p(u))的装置的输入或输出上设置一个附加的异或指令CP。
本发明应用于DES密钥密码算法,对于它已描述了多个非限制性的实施例。它可普遍地应用于具有16个计算轮的密钥密码算法,它们的关键指令应位于头三轮或最后三轮的指令中。
在DES密钥密码算法中实施根据本发明的对抗方法的电子组件1典型地包括一个微处理器μP,一个程序存储器2及一个工作存储器3,如图10中所示。为了能管理根据本发明的各个装置TC0,TC1,TC2的使用,实际上这些装置是存储在程序存储器中的各个常数表,设置了装置4,用于产生随机数值0或1,如果参照图7及11的流程图,当DES每次执行时它提供随机值u。这种组件可具体地用在芯片卡5中,用来改善其防侵袭性能。
权利要求
1.在电子组件中使用具有密钥(K)的密码算法的对抗方法,使用的算法包括使用第一装置(TC0),以便根据输入数据(E)提供输出数据项(S),由关键指令操作该输出数据项和/或导出的数据,其特征在于该对抗方法规定使用另外装置(TC1),以使得输出数据项及导出的数据不能被预计,这些其它装置由所述第一装置通过与一个随机值(u)或与用所述第一装置的输入及输出数据中的一个或另一个或两者得到的随机值e(p(u))的异或(exclusive OR)操作来获得。
2.根据权利要求1的对抗方法,其特征在于使用的算法包括16轮(T1,…,T16)计算,每轮使用第一装置(TC0),用于根据输入数据项提供输出数据项,在头三轮(T1,T2,T3)及最后三轮(T14,T15,T16)中由关键指令操作该输出数据项和/或导出的数据,其特征在于形成一个至少包括头三轮的组(G1)及另一个至少包括最后三轮的组(G4);一个执行序列(SEQA)与第一组(G1)及最后组(G4)相关,该执行序列在至少某些轮中使用另外装置(TC1,TC2)。
3.根据权利要求2的对抗方法,其特征在于四个组(G1,…G4)各由四个相继的轮(T1,…T4)组成;及所述执行序列(SEQA)至少施加给第一组(G1)及最后组(G4)。
4.根据权利要求3的对抗方法,其特征在于在每个组(G1,…G4)中执行所述序列(SEQA)。
5.根据权利要求2的对抗方法,其特征在于所述执行序列(SEQA)施加给由头三轮(T1,T2,T3)组成的第一组(G1)及由最后三轮(T14,T15,T16)组成的最后组(G4)。
6.根据以上权利要求中任一项的对抗方法,其特征在于算法的每次执行包括抽取随机值(u),及计算另外装置。
7.根据以上权利要求中任一项的对抗方法,其特征在于各个装置为常数表。
8.根据以上权利要求中任一项的对抗方法,其特征在于各个装置用于与使用随机值或导出值(p(u),e(p(u)))的附加异或操作(CP)相组合。
9.使用根据以上权利要求中任一项的对抗方法的电子保安组件,其特征在于用于根据输入数据提供输出数据的第一装置(TC0)被固定在所述组件的程序存储器(1)中,另外装置(TC1,TC2),在该算法每次新执行时被计算及存储在工作存储器(3)中;及它包括产生随机值(u)的装置,用于计算所述另外装置。
10.包括根据权利要求9的电子保安组件的芯片卡。
全文摘要
在电子组件中使用具有密钥K的密码算法,该算法操作包括使用第一装置(TC
文档编号G09C1/00GK1331873SQ99814758
公开日2002年1月16日 申请日期1999年10月29日 优先权日1998年10月29日
发明者C·克拉维尔, J·-S·科伦 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1