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

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

Info

Publication number
CN1302635C
CN1302635C CNB008072302A CN00807230A CN1302635C CN 1302635 C CN1302635 C CN 1302635C CN B008072302 A CNB008072302 A CN B008072302A CN 00807230 A CN00807230 A CN 00807230A CN 1302635 C CN1302635 C CN 1302635C
Authority
CN
China
Prior art keywords
calculation element
random value
key
data
computation cycles
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.)
Expired - Fee Related
Application number
CNB008072302A
Other languages
English (en)
Other versions
CN1358376A (zh
Inventor
O·伯努瓦
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 CN1358376A publication Critical patent/CN1358376A/zh
Application granted granted Critical
Publication of CN1302635C publication Critical patent/CN1302635C/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/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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Measurement Of Resistance Or Impedance (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Supply And Installment Of Electrical Components (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

在使用一种密钥加密算法K的电子元件中,操作包括若干连续的计算循环T1、T16以便由在第一循环提供的初始输入数据L0,R0提供在最后循环的最后输出数据L16,R16,该方法在于将第一随机值u施加到为每个循环设计的计算装置(TCM)以在输出获得不可预测的数据(au)。本发明的特征在于进一步将第二随机值加到所述在输入第一循环T1时施加的初始输入数据L0和R0。

Description

在实现密钥加密算法的电子元件中的对抗方法
技术领域
本发明涉及一种在实现密钥加密算法的电子元件中的对抗方法。它们被用于对服务或数据的访问被严格控制的情况下。它们具有在微处理器和存储器周围形成的结构,其中一个是含有密钥的程序存储器。
背景技术
这些元件尤其被用于某种用途的智能卡中。所述的用途例如有访问某个数据库,银行应用或者远方支付应用,例如电视费,汽油费或者高速公路的通行费。
因此这些元件或这些卡执行密钥加密算法,最常用的一种算法是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)=〔Vmtt≠tci+〔曲线0〕tci
其中tci代表关键指令被执行时的关键时刻。
类似地,第二束的平均消耗曲线M1(t)相应于除去在执行关键指令的时刻的任何时间的平均消耗,具有以“1”为目标位被处理的电流消耗曲线特征(曲线1)。可以写成下式:
M1(t)=〔(曲线0+曲线1)/2〕t≠tci+〔曲线1〕tci,即
M1(t)=〔Vmtt≠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按照布尔选择函数(即按照对在子密钥假设下的每个曲线的这个目标位预测的值“0”或“1”)对分类进行分类;
f在每束中计算最终的平均电流消耗曲线;
g计算这些平均曲线的差,从而获得信号DPA(t)。
如果假设的子密钥是正确的,则布尔选择函数是正确的,并且在第一束中的曲线实际上相应于在输入或输出提供的信息在卡中在“0”给出目标位的曲线,以及在第二束中的实际上相应于在输入或输出提供的信息在卡中在“1”给出目标位的曲线。
这是图1的情况:因此信号DPA(t)在相应于执行关键指令(处理那些目标位的指令)的时刻tc0-tc6不为0。
应当注意,攻击者不需要精确地知道关键时刻。只知道在获取时间间隔内的至少一个关键时刻便足够了。
如果子密钥假设不正确,则分类和实际情况不符,此时在每束中具有和相应于在“0”的目标位的曲线的数量一样多的实际上相应于在“1”的目标位的曲线。信号DPA(t)在任何时刻基本上是0(图2所示的情况)。需要返回步骤c,并假设新的子密钥。
如果所作假设被证明是正确的,则程序可以进入判断其它的子密钥,直到所述密钥尽可能被重构。例如,利用DES算法,利用64位密钥,只有56位是有用的。利用DPA攻击,至少可以重构56个有用的位中的48位。
下面引用两个有关背景技术的文件。这两个文件是,D1:NAKAO YET AL:THE SECURITY OF AN TDES CTYPTOSYSTEM AGAINSTLINEAT CRYPTANALYSIS IEICE TRANSACTIONS ONFUNDAMENTALS OF ELECTRONICS,COMMUNICATIONS ANDCOMPUTER SCIENCES,JP,INSTITUTE OF ELECTRONICSINFORMATION AND COMM,ENG.TOKYO,vol.E79-A,no.1,page 12-19XP000558714 ISSN:0916-8508,以及D2:WO 0027068。
文件D1涉及一种使用DES的用于确保安全的密码系统。
文件D2涉及一种实现密钥算法的电子元件;所述算法的实施包括使用来自输入数据项(E)的第一装置,以便提供输出数据项。
发明内容
本发明的目的在于在电子元件中实现一种防止借助于差动分析进行攻击的对抗方法,其使得即使在子密钥假设是正确的情况下,也能实现0信号的DPA(t)。
用这种方式,不可能识别正确的子密钥假设的情况和错误的子密钥假设的情况。借助于所述对抗方法,可以确保电子元件能够对付DPA攻击。
由GEMPLUS公司在2000,5,5申请的法国专利申请FR 2785477可知,相对于给定的目标位,设置信号DPA(t)是0是不够的,该专利的全部内容作为本说明的一部分。
这是因为,如果考虑由关键指令处理的相同数据项的若干个目标位取的值,曲线不需不再被分为两束,而被分为若干束。其不再是二进制选择函数。可以看出,借助于接着把这些束以一种方式或另一种方式归类在一起,可以获得在正确的子密钥假设的情况下不为0的信号DPA(t),而如果按照关于一个目标位的二进制选择函数进行分类,将为0。
例如,假如取相同数据项的两个目标位。这两个目标位可以取下面的22的值:“00”,“01”,“10”和“11”。
通过对N=1000个测量的电流消耗曲线应用选择函数,获得4束曲线。如果分类正确,大约250条第一束曲线相应于“00”,大约250条第二束曲线相应于“01”,大约250条第三束曲线相应于“10”,大约250条第四束曲线相应于“11”。
如果把第一和第四束归类于第一组,并把第二和第三束归类于第二组,则获得不相等的两组。
在第一组中,两位具有取值“00”的机会和具有取值“11”的机会一样多。在该组中的所有的消耗曲线的关键时刻的平均值可以被写为:
M1(tci)=〔消耗(“00”)+消耗(“11”)〕/2
在第二组中,两位具有取值“01”的机会和具有取值“10”的机会一样多。在该组中的所有的消耗曲线的关键时刻的平均值可以被写为:
M2(tci)=〔消耗(“01”)+消耗(“10”)〕/2
如果计算这两个平均值之间的差,则获得非0的信号DPA(t)。换句话说,其平均消耗被比较的两组没有相同的内容。
在上述的法国专利申请中,试图阻止在DPA攻击检测中获得任何重要的信号。不论所取的目标位的数量是多少,不论为比较平均信号而进行的束的组合如何,信号DPA(t)始终是0。为此,需要获得相等的束,不论被考虑的目标位的数量如何。
作为这些不同技术问题的解决办法,上述的法国专利申请提出在利用在算法中使用的计算的平均值的至少一些输出数据进行的异或操作中使用随机值。
由于使用所述的随机值,由关键指令处理的数据成为不可预测的,虽然在算法的输出具有正确的结果。
然而,在本发明中,在算法被执行中的明确确定的位置,尤其是在算法的输入和输出,确定攻击可能仍然被继续进行。
本发明的目的在于提供一种对抗方法,利用所述方法,也使得这些攻击是不可能的。按照本发明,在异或操作中使用被提供给加密算法的输入参数的第二随机值。所述第二随机值通过整个算法传播,因而使得不能被第一随机值保护的数据由第二随机值保护。
因而,按照本发明,根据算法中的位置,数据或者被第一随机值保护,或者由第二随机值保护,或者由两个随机值的组合保护。
因此,作为特征,本发明涉及一种在执行密钥加密算法的电子元件中防止借助于差动分析进行攻击的对抗方法,其中所述密钥加密算法的执行包括多个连续的计算循环,以完成从提供第一循环的第一输入数据开始到提供最后循环的输出中的最后数据,从而产生加密信息,每个计算循环取即时进行的循环的输出数据作为其输入数据,并且使用第一计算装置以便由第一计算装置的输入数据项提供第一计算装置的输出数据项,其特征在于,所述方法包括以下步骤:获取第一随机值和第二随机值;从第一计算装置得到至少另一个计算装置,其中将第一随机值加到第一计算装置的至少输出数据项上,而第二随机值加到第一计算装置的输入数据项上,在计算循环中利用所述至少另一个计算装置以代替第一计算装置;应用第二随机值,按照异或操作将其施加于所述第一输入数据,以使该第二随机值通过各计算循环传播;以及通过另一次异或操作将第二随机值加到最后循环的输出中的最后数据上;以便得到与使用密钥加密算法获得的加密信息相同的加密信息而不用对抗方法。
按照本发明,还提供了实施上述方法的电子安全元件和包括该元件的智能卡,其中包括:程序存储器,用于存储执行所述第一计算装置的查寻表,以及执行密钥加密算法的程序;工作存储器;以及微处理器,用于执行所述密钥加密算法;其特征在于,所述电子安全元件用来以密钥加密算法执行上述对抗方法,所述电子安全元件还包括:随机值产生装置,用于在每次执行密钥加密算法时产生第一和第二随机值;并且其中程序存储器用于存储执行包含对抗方法的密钥加密算法的程序,以及其中微处理器用于执行该程序,而工作存储器用于在执行该程序期间存储按照该程序执行每个所述至少另一个计算装置的查寻表。
附图说明
本发明的其它的特征和优点在下面给出的参照附图进行的非限制的说明中说明了,其中:
已经说明的图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包括微处理器μP,程序存储器2和工作存储器3。各个计算装置TC0和TCM实际上是被分别存储在程序存储器2和工作存储器3中的常数表。为了能够管理这些装置的使用,提供产生随机值的装置4,参看图7和图11的程序流程图可知,所述产生随机值的装置4在每次执行DES时提供随机值u和v。这种元件尤其适用于智能卡5中,以便改进其不可侵犯性。

Claims (4)

1.一种在电子元件中防止借助于差动分析进行攻击而使密钥(K)加密算法更为安全的对抗方法,其中所述密钥(K)加密算法包括:
从有待加密的信息(M)中获取输入数据(L0,R0);
把输入数据(L0,R0)加到多个连续的计算循环(T1,T2,......,T16)的第一计算循环(T1)上,以便在最后的计算循环(T16)的输出上获取最后数据(L16,R16),其中每个计算循环(T1,T2,......,T15)将它的输入数据(L0,R0;L2,R2;......L15,R15)加以变换,以产生它的输出数据(L1,R1;L2,R2;......L16,R16),每个计算循环的输出数据就用作下一个计算循环的输入数据;
从最后数据(L16,R16)中获取加密信息(C),
其中,每个计算循环(T1,T2,......,T16)包括具有多个第一输入值(E)和多个相应的第一输出值(S)的第一计算装置(TC0),在每个计算循环上输入数据变换为输出数据的期间,把第一计算装置(TC0)用作查寻表,使在该处接收的第一数据项(b)转换,以产生第二数据项(a),
其特征在于,所述方法还包括:
获取第一随机值(u)和第二随机值(v);
从第一计算装置(TC0)得到至少另一个计算装置(TCM,TCM′),所述至少另一个计算装置(TCM,TCM′)具有多个第二输入值和多个相应的第二输出值,其中在第一随机值(u)和第一计算装置(TC0)的至少所述相应的第一输出值(S)上所进行的运算中获取各第二输出值,而其中每个第二输入值包括在第二随机值(v)和第一计算装置(TC0)的所述相应的第一输入值(E)上所进行的运算;
按照异或操作将第二随机值(v)施加于所述第一输入数据(L0,R0),以使该第二随机值(v)通过各计算循环传播;
在密钥(K)加密算法的计算循环的每个循环中用所述至少另一个计算装置(TCM,TCM′)之一代替第一计算装置(TC0);
通过另一次异或操作将第二随机值(v)加到最后循环(T16)的输出中的最后数据上,以获得相同的最后数据(L16,R16),从而获得与先前只使用密钥(K)加密算法时所获得的相同的加密信息(C)。
2.如权利要求1所述的对抗方法,其特征在于,所述方法还包括:
在每个计算循环的结束,都执行附加的操作,以消除每个计算循环的输出中的所述第一随机值(u);以及
所述至少另一个计算装置(TCM,TCM′)包含从第一计算装置(TC0)得到的单独一个计算装置(TCM),而且,仅在第一随机值(u)和所述第一计算装置(TC0)的输出值(S)上所进行的操作中获取所述单独一个计算装置(TCM)的各个第二输出值。
3.一种电子安全元件(1),它实施权利要求1中所述的防止借助于差动分析进行攻击而使密钥(K)加密算法更为安全的对抗方法,该电子安全元件包括:
程序存储器(2),用于存储所述第一计算装置(TC0),和用于密钥(K)加密算法的第一程序;
工作存储器(3);以及
微处理器(μP),用于执行所述第一程序;
其特征在于,所述电子安全元件还包括:
用于在每次执行所述的对抗方法时产生第一和第二随机值(u,v)的装置(4);并且
所述程序存储器(2)存储用于该对抗方法的第二程序,以及
所述微处理器(μP)执行该第二程序,而所述工作存储器(3)用于在执行该第二程序期间存储在所述对抗方法中使用的所述至少另一个计算装置(TCM,TCM′)。
4.一种包括权利要求3所述电子安全元件的智能卡。
CNB008072302A 1999-03-08 2000-02-07 在实现密钥加密算法的电子元件中的对抗方法 Expired - Fee Related CN1302635C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR99/02834 1999-03-08
FR9902834A FR2790890B1 (fr) 1999-03-08 1999-03-08 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete

Publications (2)

Publication Number Publication Date
CN1358376A CN1358376A (zh) 2002-07-10
CN1302635C true CN1302635C (zh) 2007-02-28

Family

ID=9542934

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008072302A Expired - Fee Related CN1302635C (zh) 1999-03-08 2000-02-07 在实现密钥加密算法的电子元件中的对抗方法

Country Status (11)

Country Link
US (1) US6820814B1 (zh)
EP (1) EP1159797B1 (zh)
JP (1) JP3733027B2 (zh)
CN (1) CN1302635C (zh)
AT (1) ATE377307T1 (zh)
AU (1) AU2553000A (zh)
DE (1) DE60036928T2 (zh)
ES (1) ES2295007T3 (zh)
FR (1) FR2790890B1 (zh)
MX (1) MXPA01009055A (zh)
WO (1) WO2000054454A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820576B1 (fr) * 2001-02-08 2003-06-20 St Microelectronics Sa Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage
FR2820577B1 (fr) 2001-02-08 2003-06-13 St Microelectronics Sa Procede securise de calcul cryptographique a cle secrete et composant mettant en oeuvre un tel procede
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US20050084097A1 (en) * 2003-10-16 2005-04-21 Tien-Shin Ho Apparatus and method for calculatingtkip sbox value
US20050235150A1 (en) * 2004-04-19 2005-10-20 Kaler Christopher G Bi-directionally verifying measurable aspects associated with modules, pre-computing solutions to configuration challenges, and using configuration challenges along with other authentication mechanisms
CN1957384B (zh) * 2004-07-07 2011-04-06 三菱电机株式会社 电子元件和数据处理方法
FR2875318A1 (fr) * 2004-09-15 2006-03-17 St Microelectronics Sa Protection d'un algorithme des
EP1646174A1 (en) * 2004-10-07 2006-04-12 Axalto SA Method and apparatus for generating cryptographic sets of instructions automatically and code generation
KR100861841B1 (ko) 2006-12-08 2008-10-07 미쓰비시덴키 가부시키가이샤 전자 소자 및 데이터 처리 방법
FR2949633B1 (fr) * 2009-08-27 2011-10-21 St Microelectronics Rousset Procede et dispositif de contremesure pour proteger des donnees circulant dans un composant electronique
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
CN104616054A (zh) * 2015-02-05 2015-05-13 成都市宏山科技有限公司 安全性能高的智能卡
US10771235B2 (en) * 2016-09-01 2020-09-08 Cryptography Research Inc. Protecting block cipher computation operations from external monitoring attacks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5825886A (en) * 1995-12-08 1998-10-20 Entrust Technologies Ltd. Construction symmetric ciphers using the cast design procedure

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2177622A1 (en) * 1996-05-29 1997-11-30 Thierry Moreau Cryptographic data integrity apparatus and method based on pseudo-random bit generators
AU2085199A (en) * 1997-11-19 1999-06-07 Security Dynamics Technologies, Inc. Digital coin tracing using trustee tokens
ATE325478T1 (de) * 1998-01-02 2006-06-15 Cryptography Res Inc Leckresistentes kryptographisches verfahren und vorrichtung

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5825886A (en) * 1995-12-08 1998-10-20 Entrust Technologies Ltd. Construction symmetric ciphers using the cast design procedure

Also Published As

Publication number Publication date
ES2295007T3 (es) 2008-04-16
ATE377307T1 (de) 2007-11-15
MXPA01009055A (es) 2002-04-24
US6820814B1 (en) 2004-11-23
FR2790890A1 (fr) 2000-09-15
DE60036928D1 (de) 2007-12-13
JP2002539488A (ja) 2002-11-19
JP3733027B2 (ja) 2006-01-11
DE60036928T2 (de) 2008-08-07
AU2553000A (en) 2000-09-28
WO2000054454A1 (fr) 2000-09-14
EP1159797A1 (fr) 2001-12-05
FR2790890B1 (fr) 2001-04-27
EP1159797B1 (fr) 2007-10-31
CN1358376A (zh) 2002-07-10

Similar Documents

Publication Publication Date Title
CN1302635C (zh) 在实现密钥加密算法的电子元件中的对抗方法
CN1707999A (zh) 证书撤销列表的分布管理
CN1182460C (zh) 信息处理装置与ic卡
CN1165849C (zh) 保护软件的计算机系统及一种保护软件的方法
CN1758178A (zh) 非法分析/伪造预防系统
WO2013038698A1 (ja) 検索システム、検索方法、およびプログラム
CN1258057A (zh) 信息处理装置
CN107078899A (zh) 混淆数据的方法
CN1601578A (zh) 密码处理装置、密码处理方法以及计算机程序
CN1258359A (zh) 给对象签名和签章的方法和设备
CN1921395A (zh) 提高网络软件安全性的方法和系统
CN1902560A (zh) 内容分发系统,许可证分发方法和终端设备
WO2018031514A1 (en) Protected indexing and querying of large sets of textual data
CN1906622A (zh) 机密信息处理方法、机密信息处理装置及内容数据再现装置
WO2017030630A1 (en) Devices and methods for facilitating generation of cryptographic keys from a biometric
CN1921387A (zh) 认证处理方法以及认证处理装置
CN101030852A (zh) 含有人体信息的高度安全的加密解密方法
CN1806224A (zh) 用于防御微分功率分析攻击的方法
Sun et al. Deep neural networks for efficient steganographic payload location
CN1822020A (zh) 传输数据的方法、数据提供和接收设备以及通信系统
CN1702690A (zh) 密码电路
CN1571952A (zh) 用于椭圆曲线上的点的通用计算方法
CN1177430C (zh) 采用密钥加密算法的对抗方法及采用所述对抗方法的电子元件和智能卡
CN1166111C (zh) 在电子组件中使用密钥加密算法的对抗方法及其装置
CN110990829A (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备

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: 20070228

Termination date: 20120207