在使用一种密钥动态加密算法的电子元件中的对抗方法

文档序号:6512808阅读:214来源:国知局
专利名称:在使用一种密钥动态加密算法的电子元件中的对抗方法
技术领域
本发明涉及在一个使用一种密钥加密算法的电子元件中的一种对抗方法。这种元件在严格控制对服务或数据的访问的应用中使用。它们具有一个在微处理器和存储器附近形成的、包含一个具有密钥的程序存储器的体系结构。
这些元件特别使用在智能卡中,用于其中的某些应用。举例来说,涉及访问某些数据库的应用、金融应用、或例如用于电视、汽油分配或高速公路通行费的远程支付应用。
这些元件或卡因此使用一种密钥加密算法,其中最公知的一种算法是DES(在英国和美国文献中,意思是数据加密标准)算法。还存在其它的密钥算法,诸如RC5算法或COMP128算法。当然这个列表没有穷举。
概括和简洁地来说,这些算法的作用是从用作一主机系统(服务器、银行分配器等等)的一个(到该卡的)输入的一个信息和包含在该卡中的密钥计算一个加密信息,并接下来将这个加密信息提供给该主机系统,例如该加密信息使得该主机系统能够验证该元件或卡、交换数据等等。
然而,很清楚这些元件或卡容易受到包含对电流消耗的一个差值分析的攻击,这使有不良企图的第三方能够发现该密钥。这些攻击被称为DPA攻击,是差值能力分析的英语缩写。
这些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)除了在执行关键性指令时之外将处处具有一个平均消耗,和一个在“0”上对该目标位进行操作的电流消耗分布特性曲线(profile0)。换句话说,就所有这些曲线来说,除了总有值为“0”的该目标位之外,所有这些操作的位等于“1”的机会与等于“0”的机会相同。这能够被写为M0(t)=[(profile0+profile1)/2]ttci1+[profile0]tci]]>即M0(t)=[Vmt]ttci1=[profile0]tci]]>其中tci表示关键时刻,在此时已经执行了一条关键性指令。
同样地,第二个信息包的平均消耗曲线M1(t)除了在执行关键性指令时之外将处处对应于一个平均消耗,和一个在“1”上对该目标位进行操作的电流消耗分布特性曲线(profile1)。它可能被写为M1(t)=[(profile0+profile1)/2]ttci1+[profile1]tci]]>即M1(t)=[Vmt]ttci1+[profile1]tci]]>可以看出两个分布图profile0和profile1不相等。然后,在曲线M0(t)和M1(t)之间的差值给出一个其数值等于在执行这些操作该位的关键性指令的关键时刻tci的profile0-profile1的信号DPA(t),即在

图1描绘的实例中,在点tc0到tc6,除了这些关键时刻外其数值近似等于零。
如果该子密钥假设是错误的,则该分类未对应于实际。从统计上来说,在每个信息包中实际上已经知道在“0”上对该目标位进行操作的曲线与已经知道在“1”上对该目标位进行操作的曲线同样多。由于对每一曲线来说,所有操作的位、包括该目标位其等于“0”的机会和等于“1”的机会相同,因此结果的平均曲线M0(t)位于由(profile0+profile1)/2=Vm给出的一个平均值附近。
相同的原因导致在第二个信息包上的一个平均电流消费曲线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—依据这个布尔选择函数(即依据在该子密钥假设下分别为每一曲线推算的,用于这个目标位的值“1”或“0”)将这些曲线进行分类;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)的对抗方法。这通过动态地改变该密钥来实现。
本发明假定在相互通信的两个电子元件之间共享一个公共的秘密。在下文中这些元件将在图7和8中用标记C(一个卡)和T(一个终端)表示,但是显然对专家来说它们能够采用其它不同的形式。在这两个元件当中,假定C可能易遭受DPA。通过本发明的对抗,电子元件C被保护以防DPA攻击。
依据本发明,该对抗方法允许T和C以一种同步方式计算不为外界所知的一个会话密钥,并在一个加密、验证或MAC密码协议或其它任何要求一种密钥算法的加密函数中使用这个密钥。
为了使在C和T之间共享的秘密数据项暴露最小,这个秘密数据项将仅仅间接地暴露,并将随时间变化,在会话i使用的密钥是前一会话的密钥(在会话i-1中使用的)的一个函数。每个会话密钥用K[i]表示,将最多被操作两次-当它从该密钥ki-1创造时;-当它在应用中使用时。
在本发明中,将关心一种DES类型的算法。这个DES算法包含十六个同样的计算循环;在这个算法中,已经表明了能够由一个攻击者推算的数据位于第一个循环和最后一个循环,而就DPA攻击而言那些关键性指令位于最初的三个循环和最后的三个循环中。
因此,本发明的一个目的是通过确保这些数据从该算法的应用到另一应用改变而使由关键性指令操作的数据不可见。作为特征,本发明因此涉及在一个使用一个具有长度k的密钥k
的加密算法A的电子元件C中的一种对抗方法,以便从一个输入信息中计算一个加密信息。依据本发明,当以一种非机密方式提供给终端T该索引i时,一个会话密钥k[i]由前一会话密钥k[i-1]形成。具有k
和I,该终端T能够计算k[i]而不必计算所有中间密钥k[1]、k[2]、……、K[i-1]。
实现该对抗方法的特征在于在A的连续使用之间在K[i]方面的变化使用以下规则进行计算,其中i是算法A的执行次数K[i]=f(K[i-1]),f是取一个密钥用作一个输入并返回一个密钥作为一个输出的函数。
在一个实施例中,密钥k[i]是由密钥k[i-1]的平方对一个质数求模形成的,其中该质数的长度为该密钥的长度。
函数f(x)如下所示,其中x为一个变量f(x)=x^2 mod z,其中z为一个常数以便使由T使用的计算简化是通过公式K[i]=K
^(2^i)mod z计算得到,其中数2^i是计算的模phi(z)。应当注意到除了2之外的一个整数幂(数字e)能够被用在本发明的方法中;举例来说,也可能定义为f(x)=x^3 mod z然后相应的计算简化是K[i]=K
^(3^i)mod z。其中数3^i是计算的模phi(z)。
在另一个实施例中,密钥k[i]是由密钥k[i-1]乘以一个常数c后对一个质数求模形成的,其中该质数的长度为该密钥的长度。
函数f(x)如下所示,其中x为一个变量f(x)=x*c mod z,其中z和c是常数,从而使由T使用的计算简化为K[i]=K
*c^imod z。
优先地,z为小于2^k的最大质数。
依据本发明的另一个实施例,后者也涉及在和第二个电子元件(T)进行通信、并使用一个加密算法B的第一个电子元件(C)中的一种对抗方法,其中该加密算法B使用如上所述的方法,在该方法中密钥包含一连串的字节,本发明的方法将这些字节用一个小质数进行求模,密钥K[i-1]包含一连串的L字节,使用在连续使用B[i-1]之间的K[i-1]的对抗方法使用如下规则进行计算,其中i为该算法B的执行次数K[i-1]={B[1,i-1],……,B[L,i-1]},上述规则通过对范围从1到L的t进行变换变成K[i]B[t,i]=B[t,i-1]^2 mod U其中U为一个字节的质数,例如251,密钥K[i]使用对范围从1到L的t计算简化进行计算;B[t,i]=B[t,i-1]^(2^i)mod U其中数2^i为计算的模phi(U)。
优先地,这个第二实施例涉及的一种对抗方法中,密钥K[i-1]包含一连串的字节,本发明的方法将这些字节对一个小质数求模,其特征在于该密钥K[i-1]包含一连串的L字节K[i-1]={B[1,i-1],……,B[L,i-1]},然后通过对范围从1到L的t进行变换变成K[i]B[t,i]=B[t,i-1]*c[t]mod U其中U为一个字节的质数,例如251,然后密钥K[i]使用对范围从1到L的t计算简化进行计算B[t,i]=B[t,i-1]*c[t]^i mod U。
就这个特定实施例来说,还有更可取的是该终端和卡在多于密钥加密算法所必需的字节数目上执行会话密钥K[i]的计算,在该密钥加密算法中应该使用这个密钥,然后将所产生的密钥中断,以便获得为该密钥加密算法所必需的字节数。这是为了补偿在由使用小于数字256的模U所引起的平均信息量中的损失。
优先地,该数U为一、二、三、四、五或六个字节。
当然,本发明也涉及用于这个最后特定实施例的一种智能卡和一种电子终端。
本发明的其它特性和优点将在下面作为指示而决不是限制、并结合附图所给出的描述中进行更加详细地描述,其中-图1和2,已经描述过了,说明了能够依据一个DPA攻击,根据在该密钥K的一个子密钥上的一个假设获得的信号DPA(t);-图3和4是表示该DES算法的第一个循环和最后一个循环的流程图;-图5是在该DES算法中使用的操作SBOX的方框图;-图6显示了在该操作SBOX中使用的一个输入一个输出的一个基本常数表的实例;-图7说明了用于执行具有根据本发明的一种对抗方法的DES的一个流程图的第一实例;-图8说明了用于执行具有根据本发明的一种对抗方法的DES的一个流程图的第二实例。
尽管以下的描述选择了DES,但是本发明的对抗不特指DES,而且能够同样地应用到其它密钥算法(诸如DES、IDEA、AES、FEAL、三元DES、BlowFish、SAFER、SHA-MAC、RIPEMD、DFC、RC5、RC6或SEAL)中;在本公开的剩余部分中,通常情况将因此被视为一种算法A(M,K)(最初易受DPA影响的),其中K是一个具有长度k的密钥,M为该信息。
该DES密钥加密算法(在下文中术语DES将更简单地用于表示DES算法)包含16个计算循环,用T1到T16表示,如图3和4中所示。
该DES从在该输入信息M上的一个初始置换IP开始(图3)。输入信息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与一个参数K1在一个表示XOR的异或类型的操作中结合,以便提供一个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。
除有关根据所讨论的这些循环在一个或两个位置上进行的转移操作SHIFT之外,其它循环T2到T16以相似的方式进行。
这样每一循环Ti接受参数Li-1、Ri-1和r作为一个输入,并提供参数Li、Ri和r作为一个输出用于随后的循环Ti+1。
在DES算法的末端(图4),加密信息从由最后一个循环T16提供的参数L16和R16计算出来。
该加密信息C的这个计算实际上包含以下操作-通过将字L16和r16的位置反向、然后连接它们形成一个64位字e’;-应用与该DES开始置换可逆的置换IP-1,以便获得形成该加密信息C的64位字f’。
在图5和6中详细介绍了操作SBOX。它包含一个常数表TC0以便提供一个输出数据项a作为一个输入数据项b的函数。
实际上,这个常数表TCo是基本常数TC01到TC08的八个表形式,其中每个仅接收该字b的6位作为一个输入,以便仅仅提供该字a的4位作为一个输出。
因此在图6中描绘的基本常数TC01的表接收字b的位b1到b6作为一个输入数据项,并提供字a的位a1到a4作为一个输出数据项。
实际上,基本常数TC01到TC08的这八个表被保存在该电子元件的程序存储器中。
在第一个循环T1的操作SBOX中,从该常数表TC0输出的数据项a的一个特定位仅仅取决于用作一个输入数据项b的6位,即仅仅取决于该密钥K的6位和输入信息(M)。
在最后一个循环T16的操作SBOX中,从常数表TC0输出的数据项a的一个特定位能够仅仅从该密钥K的6位和该加密信息(C)中重新计算。
然而,如果该DPA攻击的原则被再次接受时,如果该输出数据项a的一位被选择用作一个目标位,则它足以在该密钥K的6位上形成一个假设,以便推算用于一个给定输入信息(M)或输出信息(C)的一个目标位的值。换句话说,就DES来说,它足以形成在一个6位子密钥上的一个假设。
在一个DPA攻击中就这样一个用于一个给定目标位的算法来说,因此在64个可能的子密钥当中仅仅需要判定一个子密钥假设。
因此,通过使用仅仅字a的八位作为目标位(基本常数TC01到TC08的每个表一个输出位),就有可能通过在这些目标位中的每一个上进行DPA攻击发现该密钥的高达6×8=48位。
在DES中,因此可在该算法开始和结束时发现在DPA攻击环境内关键性的指令。
在该DES算法开始时,能够从一个输入信息M和一个子密钥假设中推算的数据是在第一个循环(T1)中计算的数据a和g。
第一个循环T1(图3)的数据项a是所讨论循环的操作SBOX的输出数据项。数据项g是通过置换(P PERM)以及和输入参数L0的异或操作从数据项a中计算得到的。
事实上,第一个循环的数据项c是从第一个循环的数据项a导出的一个数据项。导出的数据项c相当于数据项a的位的一个简单置换。
第二个循环的数据项1是从第一个循环的数据项g导出的一个数据项,是由于它相当于g的位的一个置换,字g的某些位也被复制了。
已知a和g,就也可能已知这些导出的数据了。
该算法开始的关键性指令是操作能够被推算的数据项、诸如第一个循环的数据项a或是一个导出的数据项等的那些关键性指令。
操作第一个循环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个循环的数据项a或导出数据的关键性指令是SBOX操作、置换操作P PERM的结尾处和XOR操作开始处的第16个循环的指令。
就数据项L15来说,操作这个数据项或导出数据的关键性指令是所有在第14个循环T14的XOR操作结尾处指令之后、直至第15个循环T15的SBOX操作开始处的指令,加上用于开始第16个循环T16XOR操作的指令。
应用于这个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操作的输出数据项a。
就DES的结尾来说,能够被推算的数据是第16个循环T16的数据项a和第14个循环T14的数据项g,其中g等于L15。
数据项a是第16个循环T16中SBOX操作的输出数据项。
就数据项L15而论,这是在DES算法正常执行中从第14个循环T14中SBOX操作的输出数据项a计算得到的L15=P PERM(a)XOR L14。
如果这些特定操作SBOX的输出数据a是不可推算的,则所有导出的数据也是不可推算的所有由该DES算法的关键性指令操作的数据因此也是不可推算的。如果认为这些SBOX操作构成了用于从一个输入数据项E=b提供一个输出数据项S=a的第一装置,则应用于DES算法的对抗方法包含了使用其它用于使输出数据项不可推算的装置,从而使由关键性指令操作的这个输出数据项和/或导出的数据都是不可推算的。
依据本发明,形成了由至少最初3个循环形成的一组和由至少最后3个循环形成的另一组。这些组因此包含了所有包含关键性指令的循环。
在所有循环中使用第一装置的第一序列和在至少某些循环中使用其它装置的第二序列与这两个组有关。
在其它不在这些组中的循环中,有可能继续使用第一装置。
这样使用这些其它装置以使输出的结果即加密信息保持正确。
这些其它装置能够包含几个不同的装置。它们是使反码的数据项相应于在第一装置的输入和输出数据当中的一个或其它数据项的那些装置。
因此,考虑到大数量的执行,这些组将平均在两次中一次使用第一序列,一次使用另一个序列,其中第一序列是该算法的正常序列。对应于某些中间结果,由这些组中的关键性指令操作的数据因此将平均在两次中有一次是反码。因此就大量曲线从统计上来说一个给定目标位为1或0有同样多的可能性。
依据图7,它描绘了用于执行利用依据本发明的对抗方法的DES的流程图的第一实例,元件T(终端)和C(卡)的通信取决于依据如下所述的步骤1到6的信号交换1.C在它的非易失性存储器(例如EEPROM)中递增i;2.C产生会话密钥K[i]=K[i-1]^2 mod z;3.C从它的非易失性存储器(例如EEPROM)中清除密钥K[i-1],并在它的位置输入K[i];4.C传递i到T;5.T计算K[i]=K
^(2^i)mod z,其中数2^i是计算的模phi(z);6.C和T使用K[i]开始一个加密计算。
或者是,依据图8,它描绘了用于执行利用依据本发明的一种对抗方法的DES的流程图的第二实例,在C和T之间的通信取决于依据如下所述的步骤1到6的信号交换1.C在它的非易失性存储器(例如EEPROM)中递增i;2.C产生会话密钥K[i]=K[i-1]*c mod z;3.C从它的非易失性存储器(例如EEPROM)中清除密钥K[i-1],并在它的位置输入K[i];4.C传递i到T;5.T计算K[i]=K
*(c^i)mod z;6.C和T使用K[i]开始一个加密计算。
用于数z的最优选择是具有长度k的最小质数。尤其是
权利要求
1.在和第二电子元件(T)进行通信、并使用具有长度k的密钥K
一种加密算法A的第一电子元件(C)中的一种对抗方法,使用该对抗方法的特征在于在A的连续使用之间K[i]中的变化使用以下规则,其中i是算法A的执行次数K[i]=f[(k[i-1]),其中f是取一个密钥用作一个输入并返回一个密钥作为一个输出的函数。
2.如权利要求1所述的对抗方法,其特征在于i由所述第二电子元件(C)提供给所述第一电子元件(T)。
3.如权利要求2所述的对抗方法,其特征在于所述电子元件(T)具有一个计算简化使它从K
计算K[i]而不必在K
和K[i]之间产生i-1个密钥K[1]、……K[i-1]。
4.如在前权利要求中任何一个所述的对抗方法,其特征在于函数f(x)如下所示,其中x为一个变量f(x)=x^e mod z,其中z是一个常数从而使由T使用的该计算简化为公式K[i]=K
^(e^i)mod z,其中e是一个整数,e^i的计算被理解为模phi(z)。
5.如在前权利要求中任何一个所述的对抗方法,其特征在于函数f(x)如下所示,其中x为一个变量f(x)=x*c mod z其中z和c是常数,从而使由T使用的计算简化为K[i]=K
*c^imod z。
6.如权利要求4或5所述的对抗方法,其特征在于z为小于2^k的最大质数。
7.如在前权利要求中任何一个所述的对抗方法,其中算法A是DES、IDEA、AES、FEAL、三元DES、BlowFish、SAFER、SHA-MAC、RIPEMD、DFC、RC5、RC6或SEAL。
8.一种智能卡,其特征在于它构成了第一电子元件(C),并实现了权利要求1到7中的任何一个。
9.一种电子终端,其特征在于它构成了第二电子元件(T),并实现了权利要求1到7中的任何一个。
10.如权利要求1到7的、在和第二电子元件(T)通信并使用一种加密算法B的第一电子元件(C)中的对抗方法,其中密钥包含一连串的字节,本发明的方法将这些字节对一个小的质数求模,密钥K[i-1]包含一连串的L字节,实现该对抗方法的特征在于在连续使用B[i-1]之间的K[i-1]中的变化使用如下规则,其中i是该算法B的执行次数K[i-1]={B[1,i-1],……,B[L,i-1]},上述规则通过对范围从1到L的t进行变换变成K[i]B[t,i]=B[t,i-1]^2 mod U,其中U为一个字节的质数,例如251,密钥K[i]使用对范围从1到L的t计算简化进行计算B[t,i]=B[t,i-1]^(2^i)mod U,其中数2^i是计算的模phi(U)。
11.如权利要求1到9中的一个所述的对抗方法,其中密钥K[i-1]包含一连串的字节,本发明的方法将这些字节对一个小的质数求模,其特征在于该密钥K[i-1]包含一连串的L字节K[i-1]={B[1,i-1],……,B[L,i-1]},然后通过对范围从1到L的t进行变换变成K[i]B[t,i]=B[t,i-1]*c[t]mod U,其中U为一个字节的质数,例如251,然后密钥K[i]使用对范围从1到L的t计算简化进行计算B[t,i]=B[t,i-1]*c[t]^i mod U。
12.如权利要求10或11所述的对抗方法,其中终端和卡在多于密码加密算法所必需的字节数上执行会话密钥K[i]的计算,在该密钥加密算法中使用这个密钥,然后将产生的密钥中断,以便获得该密钥加密算法所必需的字节数,从而补偿在由使用小于数256的模U引起的平均信息量中的损失。
13.如权利要求12所述的对抗方法,其中数U为一、二、三、四、五或六个字节。
14.一种智能卡,它构成了第一电子元件(C),其特征在于其实现了权利要求10到13中的任何一个。
15.一种电子终端,它构成了第二电子元件(T),其特征在于其实现了权利要求10到13中的任何一个。
全文摘要
本发明涉及在一个使用一个尺寸为k的密钥K
加密算法A,并和一个第二电子元件(T)通信的第一电子元件(C)中的一种对抗方法。该对抗方法的特征在于:通过一个函数K[i]=f[(k[i-1])、传输i到元件(T)、以及允许元件(T)从K
计算K[i]而不用产生在K
到K[i]之间从k[1]到k[i-1]这i-1个密钥的计算简化来系统化和有规则地计算K[i]。
文档编号G06F21/55GK1360715SQ00810258
公开日2002年7月24日 申请日期2000年5月11日 优先权日1999年5月11日
发明者D·纳卡彻 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1