八月瓜首页 > 专利查询 > >正文

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

基本信息

  • 申请号 CN00810258.9 
  • 公开号 CN1360715A 
  • 申请日 2000/05/11 
  • 公开日 2002/07/24 
  • 申请人 格姆普拉斯公司  
  • 优先权日期  
  • 发明人 D·纳卡彻  
  • 主分类号  
  • 申请人地址 法国热姆诺 
  • 分类号  
  • 专利代理机构 中国专利代理(香港)有限公司 
  • 当前专利状态 发明专利申请公布 
  • 代理人 王勇 
  • 有效性 发明公开 
  • 法律状态
  •  

摘要

本发明涉及在一个使用一个尺寸为k的密钥K[0]加密算法A,并和一个第二电子元件(T)通信的第一电子元件(C)中的一种对抗方法。
该对抗方法的特征在于:通过一个函数K[i]=f[(k[i-1])、传输i到元件(T)、以及允许元件(T)从K[0]计算K[i]而不用产生在K[0]到K[i]之间从k[1]到k[i-1]这i-1个密钥的计算简化来系统化和有规则地计算K[i]。
展开

权利要求书


1.在和第二电子元件(T)进行通信、并使用具有长度k的密钥 K[0]一种加密算法A的第一电子元件(C)中的一种对抗方法,使用该 对抗方法的特征在于:在A的连续使用之间K[i]中的变化使用以下规 则,其中i是算法A的执行次数: K[i]=f[(k[i-1]), 其中f是取一个密钥用作一个输入并返回一个密钥作为一个输出 的函数。

2.如权利要求1所述的对抗方法,其特征在于:i由所述第二电 子元件(C)提供给所述第一电子元件(T)。

3.如权利要求2所述的对抗方法,其特征在于:所述电子元件 (T)具有一个计算简化使它从K[0]计算K[i]而不必在K[0]和K[i]之 间产生i-1个密钥K[1]、……K[i-1]。

4.如在前权利要求中任何一个所述的对抗方法,其特征在于: 函数f(x)如下所示,其中x为一个变量: f(x)=x^e mod z, 其中z是一个常数从而使由T使用的该计算简化为公式K[i]= K[0]^(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[0]*c^i mod 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中的任何一个。
展开

说明书

本发明涉及在一个使用一种密钥加密算法的电子元件中的一种对 抗方法。
这种元件在严格控制对服务或数据的访问的应用中使用。
它 们具有一个在微处理器和存储器附近形成的、包含一个具有密钥的程 序存储器的体系结构。
这些元件特别使用在智能卡中,用于其中的某些应用。
举例来说, 涉及访问某些数据库的应用、金融应用、或例如用于电视、汽油分配 或高速公路通行费的远程支付应用。
这些元件或卡因此使用一种密钥加密算法,其中最公知的一种算 法是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”的机会 相同。
这能够被写为: M 0 ( t ) = [ ( profil e 0 + profile 1 ) / 2 ] ttci 1 + [ profile 0 ] tci ]]>即: M 0 ( t ) = [ V m t ] ttci 1 = [ profil e 0 ] tci ]]>其中tci表示关键时刻,在此时已经执行了一条关键性指令。
同样地,第二个信息包的平均消耗曲线M1(t)除了在执行关键性指 令时之外将处处对应于一个平均消耗,和一个在“1”上对该目标位进 行操作的电流消耗分布特性曲线(profile1)。
它可能被写为: M 1 ( t ) = [ ( profile 0 + profile 1 ) / 2 ] ttci 1 + [ profile 1 ] tci ]]>即: M 1 ( t ) = [ Vm t ] ttci 1 + [ profile 1 ] 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[0]的加密算法A的电子 元件C中的一种对抗方法,以便从一个输入信息中计算一个加密信息。
依据本发明,当以一种非机密方式提供给终端T该索引i时,一个会 话密钥k[i]由前一会话密钥k[i-1]形成。
具有k[0]和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[0]^(2^i)mod z计算得到,其中数2^i是计算的模phi(z)。
应当注 意到:除了2之外的一个整数幂(数字e)能够被用在本发明的方法中; 举例来说,也可能定义为: f(x)=x^3 mod z 然后相应的计算简化是K[i]=K[0]^(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[0]*c^i mod 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[0]^(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[0]*(c^i)mod z; 6.C和T使用K[i]开始一个加密计算。
用于数z的最优选择是具有长度k的最小质数。
尤其是: k=K的位长度
 z值
 56
 2^k-5
 64
 2^k-59
 80
 2^k-65
 96
 2^k-17
 128
 2^k-159
 256
 2^k-189
展开

查看更多专利详情信息请先登录或注册会员

相关专利类别推荐

获取手机验证码,即可注册成为会员

专利详情咨询

咨询内容

姓名

手机

验证码

用户登录

手机号

手机验证码

提示

不能再减了!!!

提交成功

八月瓜客服中心已经收到您的信息,正在为您派遣知识产权顾问。知识产权顾问会携带贴心的服务以闪电搬的速度与您联系。

扫一扫关注八月瓜微信 创业一手掌握