在实现密钥加密算法的电子元件中的对抗方法

文档序号:2394957阅读:225来源:国知局
专利名称:在实现密钥加密算法的电子元件中的对抗方法
技术领域
本发明涉及一种在实现密钥加密算法的电子元件中的对抗方法。它们被用于对服务或数据的访问被严格控制的情况下。它们具有在微处理器和存储器周围形成的结构,其中一个是含有密钥的程序存储器。
这些元件尤其被用于某种用途的智能卡中。所述的用途例如有访问某个数据库,银行应用或者远方支付应用,例如电视费,汽油费或者高速公路的通行费。
因此这些元件或这些卡执行密钥加密算法,最常用的一种算法是DES(数据加密标准)算法。其它的加密算法例如有RC5算法或COMP128算法。上面列出的当然并非穷举。
简短并且一般地说,这些算法的功能是由主系统(服务器,自动柜员机等)和包含在卡中的密钥由输入(对于卡的输入)提供的信息计算加密信息,并然后对主系统提供所述加密信息,这例如使得主系统准许所述元件或卡交换数据等。
然而,已经发现,这些元件或这些卡易于受到攻击,其中包括差动电流消耗分析,这使得具有不良企图的第三方能够求出密钥。这些攻击被称为DPA攻击(差动功率分析)。
DPA攻击的原理基于这样的事实,即执行指令的微处理器的电流消耗按照被处理的数据而改变。
尤其是,处理数据位的微处理器的指令根据所述数据位的值是“1”或者是“0”产生两个不同的电流曲线。一般地说,如果指令正在处理“0”,则在执行该指令的时刻具有一个第一消耗电流幅值,如果指令正在处理“1”,则具有和第一个不同的第二消耗电流幅值。
加密算法的特征是公知的进行的计算和使用的参数是公知的。唯一未知的是含在程序存储器中的密钥。这不能从在输入提供的唯一的已知信息和接着提供的加密信息导出。
不过,在加密算法中,某个计算的数据只取决于在卡的输入明确提供的信息和在卡中包含的密钥。在所述算法中计算的其它数据也可以由加密信息(一般在卡对主系统的输出被明确地提供)和卡中包含的密钥被唯一地再次计算。更精确地说,这些特定数据项的每一位可以由输入或输出信息和密钥的特定位的有限的数量确定。
因而,特定数据项的每一位具有和其相应的由密钥的位的特定的组构成的子密钥。
这些可以被预测的特定数据项的位在本文的其余部分被称为目标位。
因而DPA攻击的基本思想是根据指令正在处理“1”或者“0”使用指令的电流消耗曲线(Current consumption Profile)的差别,并且能够通过来自已知的输入或输出信息的算法的指令和假设相应的子密钥计算目标位。
因此DPA攻击的原理是通过对大量的电流测量曲线(Currentmeasurement curves),每个曲线和攻击者已知的输入信息相关,应用布尔选择函数,子密钥假设的函数,以及利用对目标位预测的值对于每个曲线规定的函数检测一个已知的子密钥假设。
作出有关的子密钥假设事实上使得能够预测对于给定的输入或输出这个目标位应当取“0”或者取“1”的值。
然后,作为布尔选择函数,可以应用对于所考虑的子密钥假设预测的目标位的值“0”或者“1”,以便按照子密钥假设把这些曲线分成两束第一束把目标位作为“0”被处理的曲线收集在一起,第二束以目标位作为“1”被处理的曲线收集在一起。
通过计算每束中的电流消耗平均值,获得用于第一束的平均消耗曲线M0(t)和用于第二束的平均消耗曲线M1(t)。
如果子密钥的假设是正确的,则第一束实际上收集了在N个曲线当中所有目标位以“0”被处理的曲线,第二束实际上收集了N个曲线当中目标位以“1”被处理的曲线。此时第一束的平均消耗曲线M0(t),除去在关键的指令被执行的时刻之外,将任何时刻具有平均消耗,具有以“0”为目标位被处理的电流消耗曲线特征(曲线0)。换句话说,对于所有这些曲线,所有被处理的位具有“0”值的机会和具有“1”值的机会一样多,除去总是具有“0”值的目标位之外。这可以被写成M0(t)=〔(曲线0+曲线1)/2〕t≠tci+〔曲线0〕tci,即M(t)=〔Vmt〕t≠tci+〔曲线0〕tci其中tci代表关键指令被执行时的关键时刻。
类似地,第二束的平均消耗曲线M1(t)相应于除去在执行关键指令的时刻的任何时间的平均消耗,具有以“1”为目标位被处理的电流消耗曲线特征(曲线1)。可以写成下式M1(t)=〔(曲线0+曲线1)/2〕t≠tci+〔曲线1〕tci,即M1(t)=〔Vmt〕t≠tci+〔曲线1〕tci可以看出,两个曲线即曲线0和曲线1不相等。此时曲线M0(t)和M1(t)之间的差给出信号DPA(t),在处理这一位的关键指令被执行的关键时刻tci,在

图1表示的例子中,在位置tc0到tc6,其幅值等于曲线0-曲线1,除去所述关键时刻之外,其幅值近似等于0。
如果子密钥的假设不正确,则所作的分类和实际不符。在统计上说,此时在每束中目标位实际上以“0”被处理的位的曲线的数量和目标位以“1”被处理的曲线的数量一样多。此时合成的平均曲线M0(t)位于由(曲线0+曲线1)/2=Vm给出的平均值附近,因为,对于每个曲线,包括目标位在内的所有位,具有为“0”值的机会和具有为“1”值的机会一样多。
对第二束进行同样的推理得到平均电流消耗曲线M1(t),其幅值位于由(曲线0+曲线1)/2=Vm给出的平均值附近。
在这种情况下,由差M0(t)-M1(t)提供的信号DPA(t)基本上等于0。图2说明在假的子密钥假设的情况下的信号DPA(t)。
因而,DPA攻击使用在按照被处理的位执行指令期间电流消耗曲线的差值,以便按照对于给定的子密钥假设的布尔选择函数进行电流消耗曲线分类。通过进行在所获得的两束曲线之间的平均电流消耗的差动分析,获得信息信号DPA(t)。
总之,DPA攻击的步骤包括a取N个随机信息(例如N等于1000);b使卡对于N个随机信息的每个信息执行算法,绘制每次的电流消耗(在元件的电源端测量的)曲线;c假设一个子密钥;d对于每个随机信息,预测由一个目标位取的值,所述的值仅仅和信息的位(输入或输出)以及假设的子密钥有关,以便获得布尔选择函数;e按照布尔选择函数(即按照对在子密钥假设下的每个曲线的这个目标位预测的值※§或※§)对分类进行分类;f在每束中计算最终的平均电流消耗曲线;g计算这些平均曲线的差,从而获得信号DPA(t)。
如果假设的子密钥是正确的,则布尔选择函数是正确的,并且在第一束中的曲线实际上相应于在输入或输出提供的信息在卡中在※§给出目标位的曲线,以及在第二束中的实际上相应于在输入或输出提供的信息在卡中在※§给出目标位的曲线。
这是图1的情况因此信号DPA(t)在相应于执行关键指令(处理那些目标位的指令)的时刻tc0-tc6不为0。
应当注意,攻击者不需要精确地知道关键时刻。只知道在获取时间间隔内的至少一个关键时刻便足够了。
如果子密钥假设不正确,则分类和实际情况不符,此时在每束中具有和相应于在※§的目标位的曲线的数量一样多的实际上相应于在※§的目标位的曲线。信号DPA(t)在任何时刻基本上是0(图2所示的情况)。需要返回步骤c,并假设新的子密钥。
如果所作假设被证明是正确的,则程序可以进入判断其它的子密钥,直到所述密钥尽可能被重构。例如,利用DES算法,利用64位密钥,只有56位是有用的。利用DPA攻击,至少可以重构56个有用的位中的48位。
本发明的目的在于在电子元件中实现一种实现0信号的DPA(t)的对抗方法,即使在子密钥假设是正确的情况下。
用这种方式,不可能识别正确的子密钥假设的情况和错误的子密钥假设的情况。借助于所述对抗方法,可以确保电子元件能够对付DPA攻击。
由GEMPLUS公司在1998,10,29申请的法国专利申请FR 98 13605可知,对于给定的目标位,设置信号DPA(t)是0是不够的。
这是因为,如果考虑由关键指令处理的相同数据项的若干个目标位取的值,曲线不需不再被分为两束,而被分为若干束。其不再是二进制选择函数。可以看出,借助于接着把这些束以一种方式或另一种方式归类在一起,可以获得在正确的子密钥假设的情况下不为0的信号DPA(t),而如果按照关于一个目标位的二进制选择函数进行分类,将为0。
例如,假如取相同数据项的两个目标位。这两个目标位可以取下面的22的值※§0※§1※§0※§1。
通过对N=1000个测量的电流消耗曲线应用选择函数,获得4束曲线。如果分类正确,大约250条第一束曲线相应于※§0,大约250条第二束曲线相应于※§1,大约250条第三束曲线相应于※§0,大约250条第四束曲线相应于※§1。
如果把第一和第四束归类于第一组,并把第二和第三束归类于第二组,则获得不相等的两组。
在第一组中,两位具有取值※§0的机会和具有取值※§1的机会一样多。在该组中的所有的消耗曲线的关键时刻的平均值可以被写为M1(tci)=〔消耗(※§0)+消耗(※§1)〕/2在第二组中,两位具有取值※§1的机会和具有取值※§0的机会一样多。在该组中的所有的消耗曲线的关键时刻的平均值可以被写为M1(tci)=〔消耗(※§1)+消耗(※§0)〕/2如果计算这两个平均值之间的差,则获得非0的信号DPA(t)。换句话说,其平均消耗被比较的两组没有相同的内容。
在上述的法国专利申请中,试图阻止在DPA攻击检测中获得任何重要的信号。不论所取的目标位的数量是多少,不论为比较平均信号而进行的束的组合如何,信号DPA(t)始终是0。为此,需要获得相等的束,不论被考虑的目标位的数量如何。
作为这些不同技术问题的解决办法,上述的法国专利申请提出在利用在算法中使用的计算的平均值的至少一些输出数据进行的异或操作中使用随机值。
由于使用所述的随机值,由关键指令处理的数据成为不可预测的,虽然在算法的输出具有正确的结果。
然而,在本发明中,在算法被执行中的明确确定的位置,尤其是在算法的输入和输出,确定攻击可能仍然被继续进行。
本发明的目的在于提供一种对抗方法,利用所述方法,也使得这些攻击是不可能的。按照本发明,在异或操作中使用被提供给加密算法的输入参数的第二随机值。所述第二随机值通过整个算法传播,因而使得不能被第一随机值保护的数据由第二随机值保护。
因而,按照本发明,根据算法中的位置,数据或者被第一随机值保护,或者由第二随机值保护,或者由两个随机值的组合保护。
因此,作为特征,本发明涉及一种在实行密钥加密算法的电子元件中的对抗方法,所述算法的实施包括多个连续的计算循环,以便由提供给第一循环的第一输入数据提供在允许产生加密信息的最后循环的输出的最后数据,每个计算循环使用用于由输入数据项提供输出数据项的计算装置,所述计算装置包括应用第一随机值(u),以便在输出获得一个不可预测的数据项,其特征在于,所述方法包括使用按照异或操作对所述第一输入数据提供第二随机值的装置。
本发明的其它的特征和优点在下面给出的参照附图进行的非限制的说明中说明了,其中已经说明的图1和图2表示信号DPA(t),所述信号可以按照DPA攻击按照假设的密钥K的子密钥获得;图3和图4是按照现有技术的DES的第一循环和最后循环的详细流程图;图5是在图3和图4中表示的DES算法中使用的操作SBOX的方块图;图6表示一个示例的常数表,其具有在图5中说明的操作SBOX使用的一个输入和一个输出;图7和图8分别说明DES的执行流程图和第一循环的详细流程图,其相应于按照现有技术的对抗方法的一个示例的应用;图9说明按照本发明的DES算法的执行流程图;以及图10说明具有电子元件的智能卡的简化的方块图,在所述电子元件中实施按照本发明的对抗方法。
为了更好地理解本发明,首先说明没有对抗方法的常规的DES密钥加密算法。这种DES算法具有16个计算循环,用T1-T16表示,如图3和图4所示。
DES从对输入信息M的初始排列IP开始。输入信息M是一个64位的字f。在排列之后,获得64位的字e,其被分成两个,以便形成第一循环(T1)的输入参数L0和R0。L0是一个32位的字d,含有字e的32位的最高有效位。R0是是一个32位的字h,含有字e的32位的最低有效位。
密钥K是一个64位的字q,其本身被排列和压缩,以便提供一个56位的字r。
第一循环包括对参数R0进行由扩展和排列构成的操作EXP PERM,以便在输出提供一个48位的字1。
字1在用XOR表示的异或类型的操作中和参数K1组合,以便提供48位的字b。作为48位的字m的参数K1由字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。
除去移动操作SHIFT根据考虑的循环在一个或两个位置上进行之外,其它的循环T2-T6以类似的方式进行。
因而,每个循环Ti在输入接收参数Li-1,Ri-2和r,并在输出提供用于下一个循环Ti+1的参数Li.,Ri和r。
在DES算法结束时(图4),由最后循环T16提供的参数L16和R16计算加密信息。
所述加密信息C的计算实际上包括以下的操作通过颠倒字L16和R16的位置,并然后将它们串联,形成64位的字e*;开始应用排列IP-1,颠倒DES的排列,以便获得形成加密信息C的64位字f*。
图5和图6详细示出了操作SBOX。其包括一个常数表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),为了预测一个目标位或几个目标位的值,只需假设6位的密钥K便足够了。换句话说,对于DES,进行6位的子密钥的假设便足够了。
因此,在对于从给定的基本常数表产生的一组给定的目标位按照这种算法进行的DPA攻击中,正确的子密钥假设必须从64个可能的假设当中辨别出来。
因而,从8个基本常数表TC01-TC08,通过对相应的目标位进行DPA攻击,可以发现多达8×6=48位的密钥。
因此在DES中,在算法的开始和结束时,在DPA攻击检测中的关键的指令被发现。这些指令在法国专利申请FR 9813605中详细说明了,该专利在此列为参考。
并且,显然,由关键指令处理的数据是从DES开始和结束SBOX操作的输出数据项导出的输出数据项或数据。
在适用于DES算法的上述的法国专利申请中所述的对抗方法包括使由关键指令处理的每个数据项成为不可预测的。因而,不论使用的一个目标位或几个目标位如何,信号DPA(t)将总是0。这种对抗方法适用于DES开始关键指令和DES结束关键指令。
通过取SBOX操作作为第一计算装置用于从输入数据项E=b提供输出数据项S=a,上述适用于DES算法的法国专利申请的对抗方法在于使用其它计算装置代替第一个计算装置,以便使输出数据项成为不可预测的,因而使所述输出数据项与/或由关键指令处理的导出数据都成为不可预测的。
所述其它装置可以包括各种装置。它们从第一装置被计算,其中对第一装置的输入和输出数据的一个与/或另一个利用随机值u(或一个导出的随机值)实行异或运算。
所述随机值u被这样使用,使得在算法的输出结果,即加密的信息C,保持正确。
图7和图8说明这种对抗方法的一种示例的应用,其相应于上述法国专利申请的图10。
在DES算法的常规的执行中,已经看到每个循环包括使用在操作SBOX中的第一装置TC0。
在本例中,如图7所示,通过利用随机值u对第一装置TC0的输出数据进行异或操作,并通过利用一个导出值e(p(u))对第一装置TC0的输入数据进行异或操作,计算其它装置。然后,对每一组应用相同的执行序列SEQA,其中使用这些其它的计算装置。
因此,在这种方法中,利用随机值u,其是一个32位的数据项。例如,可以取一个32位的随机值,或者取一个4位的随机值,并且复制8次,从而获得32位的随机值。
然后计算等于e(p(u))的导出的变量,其中p(u)相应于施加于u的操作P PERM的结果,并且其中e(p(u))是对值p(u)应用操作EXP PERM的结果。
然后,可以计算由这一对抗方法使用的其它装置。
在参照图7说明的例子中,所述其它装置包括第二装置TC2和由CP表示的附加的异或操作。
第二装置TC2被在每个循环中使用。
它们通过利用导出的随机变量e(p(u))对输入数据E进行异或操作并通过对第一装置TC0的输出数据S利用随机值u进行异或操作被计算,这可以表示如下TC2=(Ee(p(u)),Su)。
利用导出的随机变量e(p(u))进行的附加的异或操作CP使得可以在第二装置TC2的输入获得数据be(p(u))。这个操作在图7和图8中用CP(e(p(u)))表示。
这个利用变量e(p(u))进行的附加的异或操作在第一和第二循环中可被置于不同位置,或者被置于操作EXP PERM和操作XOR之间,或者被置于操作XOR和操作SBOX之间。通过把这个附加的操作CP(p(u))置于操作EXP PERM之前,其可以用利用导出的随机变量p(u)进行的附加的异或操作代替。1e(p(u))在输出被获得,因此这将给出be(p(u))。
在所有这些情况下,数据be(p(u))在操作SBOX的输入被获得。
然后,在算法执行的开始,计算程序取计算导出的随机变量e(p(u))并然后计算在执行序列SEQA中使用的各个装置,即计算第二装置TC2的随机值u,在本例中是一个4位的值。
在每组的输出,获得作为输出参数的正确的结果。因而,不论所取的随机变量如何,第一组G1的输出参数L4和R4,第二组G2的L8和R8,第三组G3的L12和R12,第四组G4的L16和R16是正确的。
当所有循环都被进行过时,获得正确的参数L16和R16,其将使得能够计算正确的加密信息C。
在另一方面,在这些组内,按照使用的序列,某个中间结果没有相同的值,但是具有相应于利用随机值u或利用导出的随机值e(p(u))进行异或操作的值,这使得能够获得保护免遭DPA攻击。
图8表示在序列SEQA中的第一组G1的4个循环T1,T2,T3和T4的详细流程图,其使得能够揭示在每个循环中使用的第二装置TC2的作用。按照它们的定义TC2=Ee(p(u)),Su;通过借助于附加的操作CP在输入应用随机修改的数据be(p(u)),在输出获得随机修改的数据au。从循环T1到循环T4结束都使用这样的推理,并且注意到p(u)p(u)=0,在循环T4的输出获得未被修改的数据L4,R4。
利用这种对抗方法,必须取随机值u并在DES开始时提供在执行序列SEQA中使用的装置的计算。这些在DES的每次执行时计算的装置在执行时被存储在工作存储器中,用于计算的第一装置TC0本身被存储在程序存储器中。
因此,一般地说,按照现有技术的这种对抗方法在于至少对在算法的每个循环中使用的计算装置的输出应用随机值u,留下某个明确的数据。在图7和图8中可以看出,输入数据L0,R0以及其后的第一循环的数据h,l和b被明确地使用。
类似地,数据R3,L4,R4,R7,L8,R8,R11,L12,R12,R15,L16和R16被明确地使用。
一般地说,不论刚刚说明的现有技术的对抗方法的应用方式如何,在算法中至少输入数据L0和R0以及输出数据L16和R16被明确地使用。其它中间数据可以和前述的情况中那样,其尤其取决于所考虑的现有技术的对抗方法的应用方式,图7和图8只表示一个示例的应用。
因此,实际上,根据这些被明确使用的数据,仍然可以对算法进行攻击。
因此,本发明提供一种对前述的对抗方法的改进,其借助于第一随机值u或者借助于第二随机值v,或者借助于两者的组合,可以使在算法中使用的所有数据成为不可预测的。
图9所示是实施这种方法的一个例子。
按照本发明,使用第二随机值v,借助于异或操作将其施加于输入数据L0和R0。
因而,在算法的计算中实际使用的输入数据是等于L0v和R0v的不可预测的数据。
这第二随机值通过算法的每个循环传播。因此在第16个循环T16的输出,获得等于L16v和R16v的不可预测的数据作为输出数据。
为了再次求得使得可以获得加密信息C的真实的输出数据L16和R16,对这些数据项L16v和R16v的每一个应用利用第二随机值进行的异或操作。
两个随机值u和v组合使用使得可以获得一种改进的对抗方法,使得能够得到一种不受攻击影响的DES算法。
图9表示实施按照本发明的对抗方法的一个实际例子的细节。
如果取第一循环T1,则在输入具有数据项L0v和R0V,对其连续地进行EXP PERM操作和XOR操作(利用密钥K1)。因此,在下一个操作SBOX的输入是数据bv。
如同现有技术的对抗方法那样,和这个操作SBOX相关的计算装置TCM由从DES算法的原始常数表TC0导出的常数表。
结合图6可见,如果把这个原始常数表表示为TC0=(E,S),则新的计算装置TCM被计算如下TCM=(Ee(v),Su)。
用这种方式,按照现有技术的方法,考虑在每个循环的输入应用于数据的第二随机值,在操作SBOX的输出仍然从第一随机值u获得利益。
因而,使用计算装置TCM,在操作SBOX的输出获得数据ap(u),对其应用操作P PERM,给出数据cp(u)。
下面的利用输入数据L0v进行的XOR操作在输出提供数据gp(u)v。
应当注意,在所述的现有技术中(图8),在这一级获得在第二循环T2的输入使用的数据gp(u)。
利用按照本发明的方法,第二循环的其它输入是数据L1v=R0v,如图9所示。
因此,第二随机值v通过算法的所有循环传播。
如果随机值u不被从第一循环的输出数据(R1(v)p(u))中消除,则需要为利用由TCM=Ee(v)e(p(u)),Su定义的在第二循环T2中的其它计算装置TCM*作好准备。
本发明的这种实施没有大的好处,因为其需要计算两个新的常数表TCM和TCM*,随机值u不仅在输出而且还在输入被施加于常数表TCM*中。
此外,按照本发明,如图9所示,为了通过减少为实施本发明所需的计算来帮助利用两个随机变量u和v,并为了在每个循环中重复相同的操作,在每个循环结束时提供一个由CP(p(u))表示的附加的异或操作。因而,在第二循环T1的输入,获得数据R1v=(gp(u)v)p(u),即R1v=gv。
然后每个循环跟随前一个循环,执行相同的计算操作序列,因此,在第16个循环的输出,获得L16v和R16v作为输出数据。通过利用第二随机值v对这两个数据项的每一个实行异或操作,获得能够产生加密信息C的数据L16和R16。
通过应用按照本发明的对抗方法,所述方法组合使用在每个循环中提供的计算装置中的第一随机值u和在执行第一循环之前在输入提供的第二随机值,使得在算法中使用的所有数据都成为不可预测的。根据在算法中的位置,或者借助于第一随机值u,或者借助于第二随机值v,或者借助于二者的组合,提供按照本发明的对抗保护。
实际上,按照图9所示的例子,在正确地执行DES算法之前,需要执行以下的操作取随机值u和v,计算用于CP(p(u))操作的p(u),计算e(v),计算TCM=Ee(v),Su。
随机值v是具有和数据项L0,R0相同位数的数据项,在所示的例子中是32位。因此在所述方法中,利用为32位的数据项的随机值v。例如,可以取一个32位的随机值,或者取一个4位的随机值然后复制8次,以便获得32位的随机值(随机值u)。
可以举出其它例子的应用,其中尤其是可以提供不同的循环。所有这些按照所述的一般原理使用两个随机值的变型都落在本发明的范围内。
如图10所示,一种利用DES密钥加密算法实施按照本发明的对抗方法的电子元件1包括微处理器mP,程序存储器2和工作存储器3。各个计算装置TC0和TCM实际上是被分别存储在程序存储器1和工作存储器3中的常数表。为了能够管理这些装置的使用,提供产生随机值的装置4,参看图7和图11的程序流程图可知,所述产生随机值的装置4在每次执行DES时提供随机值u和v。这种元件尤其适用7于智能卡5中,以便改进其不可侵犯性。
权利要求
1.一种在执行密钥(K)加密算法的电子元件中的对抗方法,所述算法的实施包括多个连续的计算循环(T1......T16),以便由提供给第一循环的第一输入数据(L0,R0)提供在允许产生加密信息(C)的最后循环(T16)的输出的最后数据(L16,R16),每个计算循环使用用于由输入数据项(E)提供输出数据项(S)的计算装置(TC),所述计算装置包括应用第一随机值(u),以便在输出获得一个不可预测的数据项(Su),其特征在于,所述方法包括使用按照异或操作对所述第一输入数据(L0,R0)提供第二随机值(v)的装置。
2.如权利要求1所述的对抗方法,其特征在于,其还包括使用按照异或操作对由最后循环(T16)提供的最后数据提供第二随机值(v)的装置。
3.如前述任何一个权利要求所述的对抗方法,其特征在于,在每个循环的结束,其包括执行附加的操作(CP(p(u))),以便消除每个循环的输出中的所述第一随机值(u)。
4.如前述任何一个权利要求所述的对抗方法,其特征在于,其包括取第一和第二随机值(u,v),并计算在算法的每次新的执行的每个循环中使用的计算装置(TCM)。
5.如权利要求4所述的对抗方法,其特征在于,通过对所述输入数据(Ee(v))提供第二随机值(v),并至少对第一计算装置的所述输出数据(Su)提供第一随机值(u),从第一计算装置(TC0)计算所述计算装置(TCM),所述第一计算装置对于输入数据(E)确定相应的输出数据(S)。
6.如权利要求5所述的对抗方法,其特征在于,所述计算装置(TC0,TCM)是常数表。
7.一种实施按照权利要求5或6所述的任何一个对抗方法的电子安全元件,其特征在于,所述第一计算装置(TC0)被固定在所述元件的程序存储器(1)中,所述在每个循环中使用的计算装置(TCM)在算法的每次新的执行时被计算,并被存储在工作存储器(3)中,以及其包括用于产生用于计算所述计算装置(TCM)的第一和第二随机值(u,v)的装置。
8.一种包括按照权利要求7所述的电子安全元件的智能卡。
全文摘要
在使用一种密钥加密算法K的电子元件中,操作包括若干连续的计算循环T1、T16以便由在第一循环提供的初始输入数据L0,R0提供在最后循环的最后输出数据L16,R16,该方法在于将第一随机值u施加到为每个循环设计的计算装置(TC
文档编号G09C1/00GK1358376SQ00807230
公开日2002年7月10日 申请日期2000年2月7日 优先权日1999年3月8日
发明者O·伯努瓦 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1