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

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

Info

Publication number
CN1360715A
CN1360715A CN00810258A CN00810258A CN1360715A CN 1360715 A CN1360715 A CN 1360715A CN 00810258 A CN00810258 A CN 00810258A CN 00810258 A CN00810258 A CN 00810258A CN 1360715 A CN1360715 A CN 1360715A
Authority
CN
China
Prior art keywords
key
electronic component
countercheck
algorithm
byte
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN00810258A
Other languages
English (en)
Other versions
CN1231871C (zh
Inventor
D·纳卡彻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jin Yatuo
Gemalto Oy
Original Assignee
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus SA filed Critical Gemplus SA
Publication of CN1360715A publication Critical patent/CN1360715A/zh
Application granted granted Critical
Publication of CN1231871C publication Critical patent/CN1231871C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Finance (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及在一个使用一个尺寸为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]。

Description

在使用一种密钥动态加密算法 的电子元件中的对抗方法
本发明涉及在一个使用一种密钥加密算法的电子元件中的一种对抗方法。这种元件在严格控制对服务或数据的访问的应用中使用。它们具有一个在微处理器和存储器附近形成的、包含一个具有密钥的程序存储器的体系结构。
这些元件特别使用在智能卡中,用于其中的某些应用。举例来说,涉及访问某些数据库的应用、金融应用、或例如用于电视、汽油分配或高速公路通行费的远程支付应用。
这些元件或卡因此使用一种密钥加密算法,其中最公知的一种算法是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^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[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

Claims (15)

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^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中的任何一个。
CNB008102589A 1999-05-11 2000-05-11 在使用一种密钥动态加密算法的电子元件中的对抗方法 Expired - Fee Related CN1231871C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR99/06264 1999-05-11
FR9906264A FR2793571B1 (fr) 1999-05-11 1999-05-11 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete et dynamique

Publications (2)

Publication Number Publication Date
CN1360715A true CN1360715A (zh) 2002-07-24
CN1231871C CN1231871C (zh) 2005-12-14

Family

ID=9545691

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008102589A Expired - Fee Related CN1231871C (zh) 1999-05-11 2000-05-11 在使用一种密钥动态加密算法的电子元件中的对抗方法

Country Status (8)

Country Link
US (1) US7206408B1 (zh)
EP (1) EP1180260B1 (zh)
CN (1) CN1231871C (zh)
AU (1) AU4415900A (zh)
DE (1) DE60034944T2 (zh)
ES (1) ES2287013T3 (zh)
FR (1) FR2793571B1 (zh)
WO (1) WO2000068901A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999077A (zh) * 2012-12-03 2013-03-27 哈尔滨工业大学(威海) 一种高线性补偿的电流平整电路
CN107104783A (zh) * 2016-02-22 2017-08-29 埃沙尔公司 使电路免受侧信道分析的方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4810098B2 (ja) * 2005-01-19 2011-11-09 株式会社東芝 紙葉類処理装置における処理データ転送方法および紙葉類処理装置
DE602006020010D1 (de) * 2005-12-19 2011-03-24 St Microelectronics Sa Schutz der Ausführung eines DES-Algorithmus
EP2677327A1 (en) * 2012-06-21 2013-12-25 Gemalto SA Method for producing an electronic device with a disabled sensitive mode, and method for transforming such an electronic device to re-activate its sensitive mode
CN110414276B (zh) * 2018-04-27 2021-05-18 联华电子股份有限公司 电子元件的加密方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2638869B1 (fr) * 1988-11-10 1990-12-21 Sgs Thomson Microelectronics Dispositif de securite contre la detection non autorisee de donnees protegees
DE4223258C3 (de) * 1992-07-15 2001-03-15 Telefunken Microelectron Verfahren zur verifizierbaren Übertragung von Daten
DE69327644T2 (de) * 1993-01-07 2000-09-07 Ford Motor Co Ferngesteuertes Sicherheitssystem
US5347581A (en) * 1993-09-15 1994-09-13 Gemplus Developpement Verification process for a communication system
BE1008699A3 (fr) * 1994-09-09 1996-07-02 Banksys Procede et agencement pour donner selectivement un acces dans un systeme de securite.
FR2733379B1 (fr) * 1995-04-20 1997-06-20 Gemplus Card Int Procede de generation de signatures electroniques, notamment pour cartes a puces
FR2739469B1 (fr) * 1995-10-03 1997-12-26 Gemplus Card Int Procede de cryptographie a cle publique base sur le logarithme discret
FR2745135B1 (fr) * 1996-02-15 1998-09-18 Cedric Colnot Procede pour faire autoriser par un serveur l'acces a un service a partir de dispositifs portatifs a microcircuits electroniques du type carte a memoire par exemple
FR2745924B1 (fr) * 1996-03-07 1998-12-11 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
DK0891611T3 (da) * 1996-03-22 2006-10-30 Actividentity Europ Sa Adgangskontrolsystem til en funktion, hvori krypteringen kræver flere dynamiske variabler

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999077A (zh) * 2012-12-03 2013-03-27 哈尔滨工业大学(威海) 一种高线性补偿的电流平整电路
CN102999077B (zh) * 2012-12-03 2014-08-13 哈尔滨工业大学(威海) 一种高线性补偿的电流平整电路
CN107104783A (zh) * 2016-02-22 2017-08-29 埃沙尔公司 使电路免受侧信道分析的方法

Also Published As

Publication number Publication date
EP1180260A1 (fr) 2002-02-20
FR2793571A1 (fr) 2000-11-17
CN1231871C (zh) 2005-12-14
DE60034944D1 (de) 2007-07-05
EP1180260B1 (fr) 2007-05-23
AU4415900A (en) 2000-11-21
DE60034944T2 (de) 2008-01-24
US7206408B1 (en) 2007-04-17
WO2000068901A1 (fr) 2000-11-16
ES2287013T3 (es) 2007-12-16
FR2793571B1 (fr) 2003-10-31

Similar Documents

Publication Publication Date Title
CN1054245C (zh) 数据加密的装置和方法
EP3189618B1 (en) Cryptographic system arranged for key sharing
CN1255692A (zh) 信息处理装置与ic卡
CN1207867C (zh) 一种安全的数字签名系统及其数字签名方法
US20170155510A1 (en) Device for determining a shared key
CN1483271A (zh) 安全通信包处理装置及其方法
CN1528068A (zh) 用于计算机网络中分布式数据处理的集成式保护的方法与系统
KR20110069103A (ko) 네트워크에서 보안 통신을 위한 방법, 통신 디바이스, 네트워크 및 그를 위한 컴퓨터 프로그램
CN108718231A (zh) 一种全同态加密方法、装置和计算机可读存储介质
CN111355589B (zh) 一种可重构环形振荡器物理不可克隆函数电路及其激励生成方法
CN1795638A (zh) 用于加密和解密数据块的设备和方法
CN100338906C (zh) 共享密钥生成装置、密钥交换装置以及密钥交换方法
CN1231871C (zh) 在使用一种密钥动态加密算法的电子元件中的对抗方法
CN1906622A (zh) 机密信息处理方法、机密信息处理装置及内容数据再现装置
CN1358376A (zh) 在实现密钥加密算法的电子元件中的对抗方法
WO2021217231A1 (en) Using cryptographic co-processors in a supersingular isogeny-based cryptosystem
CN1178619A (zh) 非对称密码通信过程与相关的便携装置
CN1543725A (zh) 使用离散对数函数产生不对称加密系统的加密单元的方法
CN1177430C (zh) 采用密钥加密算法的对抗方法及采用所述对抗方法的电子元件和智能卡
CN1166111C (zh) 在电子组件中使用密钥加密算法的对抗方法及其装置
WO2016195551A1 (en) Method and encryption node for encrypting message
CN109923829A (zh) 对秘密值达成一致
CN1635731A (zh) 可重构密码协处理器电路
CN1331873A (zh) 在电子组件中使用密钥密码算法的对抗方法
CN1411201A (zh) 一种安全的数字签名系统与方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: JIN YATUO

Free format text: FORMER OWNER: GEMPLUS CO.

Effective date: 20120827

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: SETEC OY

Free format text: FORMER NAME: JIN YATUO

CP01 Change in the name or title of a patent holder

Address after: East France

Patentee after: GEMALTO OY

Address before: East France

Patentee before: Jin Yatuo

TR01 Transfer of patent right

Effective date of registration: 20120827

Address after: East France

Patentee after: Jin Yatuo

Address before: French gemenos

Patentee before: GEMPLUS

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20051214

Termination date: 20140511