CN101006677B - 用于实施加密运算的方法和装置 - Google Patents

用于实施加密运算的方法和装置 Download PDF

Info

Publication number
CN101006677B
CN101006677B CN2005800201508A CN200580020150A CN101006677B CN 101006677 B CN101006677 B CN 101006677B CN 2005800201508 A CN2005800201508 A CN 2005800201508A CN 200580020150 A CN200580020150 A CN 200580020150A CN 101006677 B CN101006677 B CN 101006677B
Authority
CN
China
Prior art keywords
mask
data block
bit
algorithm
permutation table
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
CN2005800201508A
Other languages
English (en)
Other versions
CN101006677A (zh
Inventor
埃马纽埃勒·多塔克斯
埃尔韦·夏巴纳
樊尚·卡利耶
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.)
Orange SA
Original Assignee
Morpho 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 Morpho SA filed Critical Morpho SA
Publication of CN101006677A publication Critical patent/CN101006677A/zh
Application granted granted Critical
Publication of CN101006677B publication Critical patent/CN101006677B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

一种根据包括至少一个定义于k比特的数据块上的非线性操作的特定的加密算法的、在一个电子器件上运行的加密运算,k是大于2的所有数字,由一个k比特的初始数据块(a)生成多个j比特的掩码中间数据块
Figure D05820150820070706A000011
j是小于k的所有数字。然后,在具有2j个输入的置换表(106)的协助下,对所述多个j比特的掩码中间数据块中的至少一个
Figure D05820150820070706A000012
执行非线性操作(S),生成一个j比特的已修改的数据块
Figure D05820150820070706A000013
通过包括已定义的非线性操作的变换的方式,将已修改的j比特的数据块和至少多个j比特的掩码中间数据块合并,以形成一个相应于该k比特的初始数据块的k比特的结果数据块(a’)。

Description

用于实施加密运算的方法和装置
技术领域
本发明涉及加密领域,尤其涉及对加密算法所使用的密钥的机密性进行保护的领域。如下将描述其在加密或解密功能上的非限制性应用。
背景技术
用于加密的算法,对应地用于解密,或者再次用于译码密码,这些算法都针对数据进行加密或解密。这些算法通常包括一系列紧密相关的多个操作或计算,该等多个操作或计算连续应用于一个待加密数据项以获得一个被加密的数据项。这些算法都使用加密密钥。
这些加密算法可能遭到以破坏所使用的密钥的机密性为目标的“攻击(attacks)”。目前,我们知悉多种类型的攻击。
某些攻击基于在上述加密算法的执行过程中被检测到的多个信息漏洞(information leaks)。这些攻击通常建立在使用上述加密算法处理数据项以及一个或多个密钥的过程中被检测到的多个信息漏洞之间的相互关系上(通过分析电流消耗、电磁散发(emanation)、计算机时间(time)等进行攻击)。
用于防止这些攻击的程序也是众所公知的。通常所使用的保护程序之一对使用加密或解密算法处理的中间数据进行随机掩码处理。在这种类型的保护程序中,输入数据被使用随机数值进行掩码处理。于是,在所述算法中执行的操作所得到的所述中间数据可能与所用的一个或多个密钥去相关。
所述以破坏一个加密算法的密钥机密性为目标的攻击与破坏解密算法的密钥机密性为目标的攻击相类似。在下述部分中所描述的与加密算法有关的特征也与解密算法有关。
一个加密算法通常包括多个线性和/或非线性操作。对于一个待加密初始数据项,该加密算法的每一个操作完成后将获得一个中间数据项。当处理一个掩码中间数据项时,则在每个操作都完成后将获得一个掩码中间数据项。于是,加密算法就被保护了。
但是,通过解掩码(demasking)在完成上述每个操作后获得非掩码中间数据项还是有用的。对一个根据线性操作获得的中间数据项进行解掩码操作是非常容易的。特别地,一个应用于通过与随机掩码m的异或(exclusive or)运算被执行掩码操作的一个数据项x的线性操作可能被写成如下形式:
于是,在知道m的情况下,很容易就可以对
Figure G05820150820070706D000022
进行解掩码从而获得L(x)。
对于非线性操作,则完全是另一回事。特别地,对于被应用于通过与一个随机掩码m的异或(exclusive or)运算被执行掩码操作的数据项x的一个非线性操作,其通常可以被写为:
为了对一个经加密算法处理的中间数据项进行解掩码,有必要基于希望被保护的加密算法执行一系列计算,该等计算可能是复杂且代价高昂的。
众所周知,加密算法使用非线性操作,例如DES(数据加密标准,dataencryption standard)算法或者其他AES(高级加密算法,advancedencryption standard)算法。通过AES算法进行掩码的几种保护方法已经被提出。
在这样的算法中,非线性操作通常以置换表的形式来实现。于是,与一个置换表tab[i]相对应的被应用于数据项x的一个非线性操作可能被写成如下的形式:
y=tab[x]
在这样的情况下通过掩码进行的保护需要在算法执行过程中生成随机掩码表。于是,与一个掩码置换表tab’[i]相对应的被应用于数据项x的一个非线性操作可能被写成如下的形式:
为了能够对上述获得的数据项y’进行解掩码,一个解决方案为存储所述掩码置换表。这种类型的针对DES加密算法的保护程序在LouisGoubin和Jacques Patarin所著的文档“DES and Differential Power Analysis-The“Duplication”Method”,Cetin Kaya 和Christof Paar所编辑的CHES 第99次会议出版的“Lecture Notes in Computer Science”(Springer-Verlag出版,2000)的第1717卷、第158-172页,以及在发明名称“Dispositif mattant en oeuvre un algorigthme de chiffrage par bloc àrépétition de roundes(device implementing a blockwise encryption algorithmwith repetition of rounds)”的法国专利FR2802741中被阐述。
但是,由于其所需要的存储空间,这样的解决方案可能被证明成本非常高,尤其是当所述置换表相对比较大的时候。
例如,AES的非线性操作可以使用一个256字节的置换表来实现。对一个消息的16字节同时进行加密需要存储16个掩码置换表,而每个掩码置换表的大小均为256字节。从而使得实现对所述非线性操作进行掩码所需要的存储器大小为4k字节。
因此,这种类型的保护方法的缺点是需要相对应的存储空间。
而文献“Provably Secure Masking of AES”(Johannes Guarjardo Merchan及Volker Krummel著,2004.4.30日发表)以及文献“Secure and Efficient Masking of AES-A Mission Impossible”第1版(E.Oswald,Stephan Mangard及Norbert Pramstaller,2004.6.4日发表)提出了在有限域GF(4)执行的AES算法的非线性操作。
后一篇文献提出一个用于对AES算法的操作执行掩码操作的程序,其中通过从一个有限域(GF(28))到另一个有限域(GF(4))的变换将一个中间掩码数据项的非线性操作转换为线性操作。
但是,这样的对AES执行掩码操作的方法指出所述非线性操作在GF(4)内执行,从而比特以2个接着2个(2by 2)的方式被操作。
通常,在大小与微处理器同时处理的比特数严格相等的比特块上要比在大小与微处理器同时处理的比特数严格不等的比特块上更容易有效实现所述操作。
于是,在8位、16位、32位甚至64位微处理器上以2个接着2个(2by 2)的方式有效实现处理比特的加密算法并不容易。
发明内容
本发明的目的是提出一种解决方案来解决这些缺陷。
根据本发明的一方面,提供了一种用于在电子器件中,根据一个确定的加密算法,实施加密运算的方法,该加密算法包括至少一个定义于(specified on)k比特的数据块的非线性操作,其中,k是大于2的整数,该方法包括以下步骤:
-由一个k比特的初始数据块(a)生成多个j比特的掩码中间数据块,其中,j是小于k的整数;
-通过一个具有2j个输入的置换表,对该多个j比特的掩码中间数据块中的至少一个执行非线性操作S,生成一个j比特的已修改的数据块;
-通过一个包括所述已定义的非线性操作的变换,将j比特的已修改的数据块和所述多个j比特的掩码中间数据块中的至少某个(certain)合并为一个对应于该k比特的初始数据块的k比特的结果数据块。
因此,就可以通过从长度为k的数据块生成多个长度为j的中间数据块,来对长度为j数据块执行定义于长度为k的数据块上的非线性操作,这些长度以比特计。在处理了这些中间数据块之后,特别是应用一个非线性操作后,这样获得的数据块被合并以恢复相应于初始数据块转换的长度为k的数据块。该转换包括已定义的非线性操作,其还可以包括该算法的其它操作。特别地,在合并这些数据块以再次获得k比特的数据块之前,优选地对j比特的数据块而不是k比特的数据块执行该算法的其它操作。
从一个初始数据块生成多个中间数据块的步骤可以包括如下详述的多个步骤。于是,优选地,大小小于该算法需加密的初始数据块的数据块被处理。随后,包括在加密算法内的已定义的非线性操作可以用于长度更小的中间数据块,于是,相应于应用于中间数据块的非线性操作的置换表的大小就严格地小于相应于应用于初始数据块的已定义的非线性操作的置换表。
由于所述的这些优点,通过掩码操作对包含非线性操作的加密算法的加密运算进行保护成为可能,特别是在该非线性操作相应于相对大的置换表的情况下。
优选地,掩码操作可以在生成中间数据块的步骤之前对初始数据块执行,或者对中间数据块执行。
在本发明的一个实施例中,该生成步骤包括一个分解操作(T),该分解操作包括将一个k比特的数据块分解为j个数据块(b,c),该合并步骤包括一个逆分解操作(T-1),该逆分解操作包括将多个j比特数据块(B,C)合成一个k比特数据块(a’)。
在本发明的一个实施例中,该加密运算进一步包括至少一个线性操作,并且,所述掩码线性操作在分解操作(T)之前或逆分解操作(T-1)之后被执行。在此情形中,当该加密算法在非线性操作之前包括线性操作时,在该线性操作之后执行分解操作T。当该加密算法在非线性操作之后包括线性操作时,在该线性操作之前执行逆分解操作T-1
在本发明的另一个实施例中,在加密运算包括多个线性操作时,这些掩码线性操作在分解操作T之后和逆分解操作T-1之前被执行,因而,当一个加密算法是具有重复循环(repetition of rounds)的算法的时候,每个循环包括至少一个线性操作和至少一个非线性操作,每个循环在分解操作T之后和逆分解操作T-1之前执行。
还可以在加密算法起始时执行分解操作T,在加密算法结束时执行逆分解操作T-1,因而,当这样的加密算法是具有重复循环的算法的时候,通过处理长度严格地小于初始数据块的数据块来执行该算法的所有循环的所有操作。
图2描述了一个应用于一个AES类型的算法的实施例。于是,大小为k的一个待加密数据块201通过分解操作T被分解为大小为j的多个待加密中间数据块(202)。被掩码操作保护的操作203被应用于该等大小为j的多个中间数据块,该操作相当于那些为长度为k的多个数据块定义的AES类型算法的操作。于是,获得了已加密的中间数据快204。接下来,逆分解操作T-1被应用来获得长度为k的被加密数据块205。这样的实施例需要对该算法的操作进行修改以便这些操作可以应用于所述中间数据块。
该生成掩码中间数据块的步骤包括掩码加法和掩码乘法,该掩码乘法根据一个掩码乘法算法来实现,将大小为j的掩码数据块和一个随机掩码作为输入,并得到两个未掩码数据块的一个掩码乘积。
所述将中间数据块和已修改的数据块合并的步骤可以类似地包括掩码加法和掩码乘法,该掩码乘法根据一个掩码乘法算法来实现,将大小为j的掩码数据块和一个随机掩码作为输入,并得到两个未掩码数据块的一个掩码乘积。
下述章节将详细描述,在初始数据块的大小为一个字节的时候,当已定义的非线性操作可以通过大小为256字节的置换表来实现时,如在AES类型的算法中一样,优选地可以采用具有长度为8字节的置换表来对中间数据块执行非线性操作。
在本发明的另一个实施例中,非线性操作是双射的,对非空元素而言,该非线性操作是在有限域中的乘法逆运算。优选地,按照惯例,该操作将元素0映射到元素0。
在本发明的另一个实施例中,加密算法将包括确定数量个大小为k的初始数据块的消息作为输入,该加密算法顺序地处理每个初始数据块。这样,为每个初始数据块生成一个置换表并将该置换表存储起来,然后一个接着一个处理每个数据块。
在本发明的另一个实施例中,加密算法同时处理输入信息的所有数据块,这样,同时为消息的每个初始数据块生成一个置换表并将其存储起来,然后同时处理消息的所述多个数据块。数据块的这种同时处理比所述对数据块的串行处理需要更大的存储空间,在本说明书中,如本发明所提出并如以下章节所详细描述的那样,减小对应于非线性操作的置换表的大小是非常有利的。
在本发明的另一个实施例中,每次执行加密算法的非线性操作的时候,采用在加密算法起始时生成的一个置换表来处理一个初始数据模块。这样,加密算法在处理初始数据块的整个过程中采用相同的置换表。
可以在每个掩码非线性操作之前各生成并存储一个置换表。在这样的实施例中,在每个非线性操作应用之前使用一个新的置换表。
这样的算法传统上包括多个循环,每个循环包括线性操作和至少一个非线性操作,对该算法中的运算操作的最频繁的攻击基于在第一循环和最后循环的执行期间对信息漏洞的检测,因为,正是这些循环处理接近于将被加密的数据块以及已加密数据块的数据块。因此,为了保护该算法免受这些攻击,可以对开始的一个或多个循环和/或最后的一个或多个循环中处理的数据块进行掩码操作,然后,优选地为至少第一个循环和至少最后一个循环生成并存储置换表。
根据本发明的第二个方面,提供了一种用于根据包括至少一个定义于k比特的数据块的非线性操作的确定的加密算法来执行加密运算的电子器件,其中k是大于2的整数,该器件包括:
-用于由一个k比特的初始数据块生成多个j比特的掩码块的装置,其中,j是小于k的整数;
-用于通过一个具有2j个输入的置换表,对该多个j比特的掩码块中的至少一个执行非线性操作以产生一个j比特的已修改的数据块的装置;
-用于通过一个包括所述已定义的非线性操作的变换,将该j比特的已修改的数据块与所述该多个j比特的掩码块中的至少某个合并为相应于该k比特的初始数据块的k比特结果数据块的装置。
根据本发明的这些优点,可以保护一种采用AES类型的加密算法的电子器件免受信息漏洞检测的攻击,该加密算法包括通过处理掩码数据块以及使用长度为8字节的掩码置换表而不是长度为256字节的掩码置换表的非线性操作。
这样的一种保护加密算法的方法需要相对小的存储空间,因此,其可以用于具有相对小的存储空间的电子加密器件
而且,在本发明的另一个实施例中,处理大小为4的中间数据块,这样的大小使有效的实现成为可能,这比在处理更小的数据块时更加易于实现。
本发明的其他方面、目的和优点将通过阅读对本发明的实施例之一的描述而变得显而易见。
附图说明
借助下述附图的帮助,本发明也将更容易地被理解。
图1描述了根据本发明的一个实施例的保护一个加密算法的方法;
图2描述了根据本发明的一个实施例的保护一个AES类型的加密算法的方法。
具体实施方式
在本发明的一个实施例中,采用了著名的有限域(或伽罗华域(Galoisfields(GF)))数学理论以便根据长度为k的一个初始数据块生成长度严格小于k的多个数据块。本发明的一个实施例用于通过掩码保护一个AES类型的加密算法,该算法将一个16字节的消息作为输入,其中每个字节被一个循环处理,且每个循环包括一系列线性操作和至少一个非线性操作。本发明涵盖其他包括至少一个非线性操作的加密算法,而不论是否存在循环处理。
在一个AES类型的算法中,在有限域GF(28)内,对于非空元素,非线性操作对应于一个乘法逆运算(multiplicative inversion)。于是,在本发明的一个实施例中,为了根据一个数据块生成大小严格小于该数据块的多个中间数据块,提出了从该域GF(28)转换至域((24)2)的所述非线性操作。
Tsing-Fu Ling、Chih-Pin Su、Chih-Tsun Huang以及Cheng-Wen Wu所著的文献“高吞吐量低成本AES密码芯片(A high-throughput low-costAES cipher chip)”,以及Vincent Rijmen所著的文献“Efficientimplementation of the Rijndael S-box”,以及Atri Kumar、Josyula R.Rao以及Pankaj Rohatgi所著的文献“Efficient Rijndael EncryptionImplementation with Composite Field Arithmetic”,以及R.W.Ward以及T.C.A Molteno所著的文献“Efficient hardware calculation of inversion inGF(28)”均阐述了AES算法的非线性操作可以如何被转换至复合(compound)域GF((24)2),并阐述了这样一个转换可以提高加密算法的性能。
通常地,AES将一个由16字节组成的消息作为输入。多个循环处理应用于所述每个字节,且每个循环使用从主密钥衍生出的一个子密钥(subkey)。AES通常包括如下操作:
-与一个8比特至8比特的置换表对应的一个非线性操作,通常称为子字节(SubBytes)操作,该置换表被应用于所述输入消息的16个字节中的每一个字节;
-一个线性异或(exclusive or)操作,通常被称为增加循环密匙(AddRoundKey)操作,被应用于所述子密钥的16个字节和所述输入消息的16个字节之间;
-与一个被应用于所述16个字节的置换(permutation)相对应的一个线性操作,通常被称为换行(ShifiRows)操作;
-一个被应用于所述16个字节线性操作,通常被称为混合栏(mixedcolumns)。
所述AES算法的子字节操作包括一个非线性操作,在所述有限域GF(28)内,对于所述非空元素,该操作与乘法逆运算相对应。这样一个操作可以被转换至所述复合域GF((24)2),以便在对处理字节的其他操作执行所述逆分解操作T-1之前,长度为4比特的数据块被处理。
我们选择一个GF(24)表达式,且所述域多项式(field polynomial)如下所示:
P(x)=x2+Dx+E
其中,D和E是该有限域GF(24)的元素。
于是,可以得到:
GF(28)≌GF(24)[x]/P(X)
图1描述了本发明的一个实施例。
我们构建一个可以表示为如下所示的分解操作T 102:
T(a)=bx+c,其中,a是GF(28)的一个元素,(bx+c)是GF(24)的一个元素,且b和c是该有限域GF(24))的元素。
这个分解操作T根据长度等于1字节的数据块a生成长度为4比特的中间数据块b和c。
这个分解操作可以以一个具有8×8矩阵的乘法的形式实现。
在分解操作后,被处理的数据块是多个4比特的中间数据块,其长度严格小于所述初始的8比特数据块。
这样一个分解操作T可以减小被处理的数据块的大小,从而以这种方式可以减小与该第一非线性操作相对应的置换表的大小。于是,在执行该非线性操作之前该分解操作被执行。但是,其也可以在所述加密算法的各个不同步骤执行。于是,在输入消息的16字节中的每一个,该分解操作可以在算法起始时,或每个算法循环起始时,或应用每个非线性操作之前被执行。
本发明覆盖该分解操作在任何算法步骤被执行的实施例。
然后,在执行采用置换表的非线性操作之后,可以进行逆分解操作T-1以返回有限域GF(28),并再次处理字节。
本发明覆盖该逆分解操作在任何算法步骤被执行的实施例。
根据执行分解操作T和逆分解操作T-1的步骤,GF(28)中的算法的其他确定操作被修改以适应于有限域GF((24)2)。
因此,如果分解操作T在非线性操作之前执行,然后如果逆分解操作T-1在非线性操作之后执行,那么就不必修改本算法的其它操作使该等操作适应于有限域GF((24)2)。另一方面,在分解操作T执行于算法起始和逆分解操作T-1执行于加密算法结束的情形下,该算法的所有操作被修改以适应于有限域GF((24)2)。该加密算法的操作就被其在有限域GF((24)2)中的等价操作所替代。
在本发明的一个实施例中,如以下部分详细描述,我们至少对多个中间数据块进行掩码操作103,该等中间数据在对AES算法的至少第一次循环和最后一次循环进行非线性操作时被处理。本发明还覆盖在进行非线性操作时中间数据块被进行掩码操作以用于算法的所有循环的实施例,或者覆盖在算法执行的过程中被处理的全部或部分中间数据块被进行掩码操作的实施例,不论这些数据块是GF(28)还是GF((24)2)中的元素。
在本发明的一个实施例中,该非线性操作是GF((24)2)中用于非空元素的乘法逆运算。
在有限域GF((24)2)中,元素(bx+c)的逆可以写成如下形式:
(bx+c)-1=bΔ-1x+(c+bD)Δ-1,其中,Δ=b2E+bcD+c2
这样,被转换到有限域GF((24)2)的有限域GF(28)的乘法逆运算的第一非线性操作对应于乘法逆运算的乘法、加法及非线性操作,该在有限域GF((24)2)中的非线性操作可以通过8字节长的4比特至4比特的置换表来实现。
如上所述,我们希望对被处理数据块进行掩码操作。对该加法的掩码操作是公知的。
为了对乘法进行掩码,提出一个掩码的乘法算法M(x,y,z))104,如下所示,元素m1,m2,m3,n,n’,n1,n2是随机掩码数,一个算法可以将以下所列作为输入:
-GF(24)的掩码元素,
Figure G05820150820070706D000111
Figure G05820150820070706D000112
-一个掩码m3。
这样的算法以这样的形式输出掩码结果:
可以得到如下步骤:
在本发明的一个实施例中,第一中间数据块被进行掩码处理,于是得到第一掩码分解,该第一掩码分解可以写为如下形式:
然后,我们采用如下所示形式的掩码乘法算法来计算掩码乘法:
然后,以同样的方式,根据步骤105,我们计算以下结果以获得掩码数据块Δ:
这样,我们得到如下等式:
所以,在有限域GF(24)中,通过加法和乘法,我们得到掩码数据块,对该掩码数据块将进行乘法逆运算的非线性操作。
在本发明的一个实施例中,根据步骤106,采用掩码置换表tab[x]来执行对该掩码数据块的该非线性操作,该表符合如下等式:
于是,该掩码置换表使得获得掩码数据块的逆表达式(inversion)成为可能,即
Figure G05820150820070706D000122
通过应用该掩码乘法算法,我们计算:
通过将该掩码数据块
Figure G05820150820070706D000125
Figure G05820150820070706D000126
Figure G05820150820070706D000127
进行混合(步骤108),我们得到Bx+c。
于是,我们就得到了掩码值(bx+c)-1,而不用为执行该非线性操作而处理非掩码的数据b,c及Δ。
然后,执行逆分解操作T-1(步骤109)以获得元素110:
a’=T-1(Bx+C).
在本发明的一个实施例中,D被设定为1以减少将要执行的乘法的数量。
优选地,非线性操作就被从有限域GF(28)转换到GF((24)2),在GF((24)2)中,该非线性操作对应于一个对加法、乘法以及在具有较少元素的域中等价的非线性操作的合并操作。
这样,通过对长度被减小的数据块执行与非线性操作等价的操作,就可以保护电子器件免于遭到通过包括非线性操作的加密计算期间的信息而进行的攻击,因而使得执行对该等掩码数据块进行计算成为为可能,因为减小了相应的置换表的大小。

Claims (22)

1.一种用于在电子器件中,根据一个确定的加密算法,实施加密运算的方法,该加密算法包括至少一个定义于k比特的数据块的非线性操作,其中,k是大于2的整数,该方法包括以下步骤:
-由一个k比特的初始数据块生成多个j比特的掩码中间数据块,j是小于k的整数;
-通过一个具有2j个输入的置换表(106),对所述多个j比特的掩码中间数据块中的至少一个执行一个相应于所述已定义的非线性操作的非线性操作S,生成一个j比特的已修改的数据块;
-通过一个包括所述已定义的非线性操作的变换,将该j比特的已修改的数据块和所述多个j比特的掩码中间数据块中的至少某个合并为一个对应于该k比特的初始数据块的k比特的结果数据块。
2.根据权利要求1所述的方法,所述初始数据块在所述生成中间数据块的步骤之前被进行掩码操作。
3.根据权利要求1所述的方法,所述中间数据块在执行所述非线性操作前被进行掩码操作(103)。
4.根据前述任一项权利要求所述的方法,所述生成步骤包括一个分解操作,该分解操作包括将一个k比特的数据块分解为j个数据块,所述合并步骤包括一个逆分解操作,该逆分解操作包括将一个k比特数据块由多个j比特的数据块合成为k比特数据块。
5.根据权利要求4所述的方法,其中,所述加密运算进一步包括至少一个线性操作,且其中,所述线性操作根据一种掩码的方式在该分解操作之前或该逆分解操作之后被执行。
6.根据权利要求4所述的方法,其中,所述加密运算进一步包括一个线性操作,且其中,所述线性操作根据一种掩码的方式在该分解操作之后和该逆分解操作之前被执行。
7.根据权利要求4所述的方法,在所述加密算法起始时执行该分解操作,在所述加密算法结束时执行该逆分解操作。
8.根据权利要求1至3中的任一项所述的方法,所述生成掩码中间数据块的步骤包括掩码加法和掩码乘法,该掩码乘法根据一个掩码乘法算法实现,将长度为j的掩码数据块和一个随机掩码作为输入,并得到两个非掩码数据块的一个掩码乘积。
9.根据权利要求1至3中的任一项所述的方法,所述将该j比特的已修改的数据块和所述多个j比特的掩码中间数据块中的至少某个合并的步骤包括掩码加法和掩码乘法,该掩码乘法根据一个掩码乘法算法实现,将长度为j的掩码数据块和一个随机掩码作为输入,并得到两个非掩码数据块的一个掩码乘积。
10.根据权利要求1至3中的任一项所述的方法,其中,一个数据块的大小为一个字节,所述置换表的大小为8字节;且其中,所述非线性操作是双射的,且对非空元素而言,该非线性操作是在有限域中的乘法逆运算。
11.根据权利要求1至3中的任一项所述的方法,通过执行一个数据块与一个随机掩码之间的异或运算对该数据块进行掩码操作。
12.根据权利要求1至3中的任一项所述的方法,其中,所述加密算法将包括确定数量个大小为k的初始数据块的消息作为输入,且其中,顺序地为所述消息的每个初始数据块生成一个置换表并存储该置换表然后处理所述数据块。
13.根据权利要求1至3中任一项所述的方法,其中,所述加密算法将包括确定数量个大小为k的初始数据块的消息作为输入,同时为该消息的每个初始数据块生成置换表并存储该置换表,然后同时处理该消息的所述多个数据块。
14.根据权利要求12所述的方法,采用用于该加密算法的所有操作的、在加密算法起始时生成的一个置换表,对一个数据块进行加密。
15.根据权利要求12所述的方法,在每次对所述多个j比特的掩码中间数据块中的至少一个执行的非线性操作之前生成一个置换表。
16.根据权利要求12所述的方法,其中,所述算法包括一个确定数量的循环,且其中,生成用于至少第一个循环和至少最后一个循环的一个置换表并存储该置换表。
17.根据权利要求13所述的方法,采用用于该加密算法的所有操作的、在加密算法起始时生成的一个置换表,对一个数据块进行加密。
18.根据权利要求13所述的方法,在每次对所述多个j比特的掩码中间数据块中的至少一个执行的非线性操作之前生成一个置换表。
19.根据权利要求13所述的方法,其中,所述算法包括一个确定数量的循环,且其中,生成用于至少第一个循环和至少最后一个循环的一个置换表并存储该置换表。
20.根据权利要求1至3中的任一项所述的方法,所述加密算法是高级加密标准。
21.一种用于根据包括至少一个定义于k比特的数据块的非线性操作的确定的加密算法来执行加密运算的电子器件,其中,k是大于2的整数,该器件包括:
-用于由一个k比特的初始数据块生成多个j比特的掩码中间数据块的装置,其中,j是小于k的整数;
-用于通过一个具有2j个输入的置换表,对所述多个j比特的掩码中间数据块中的至少一个执行一个相应于所述已定义的非线性操作的非线性操作S,生成一个j比特的已修改的数据块的装置;
-用于通过一个包括所述已定义的非线性操作的变换,将该j比特的已修改的数据块与所述多个j比特的掩码中间数据块中的至少某个合并为相应于该k比特的初始数据块的k比特结果数据块的装置。
22.根据权利要求21的电子器件,所述加密算法是高级加密标准。
CN2005800201508A 2004-06-18 2005-06-06 用于实施加密运算的方法和装置 Expired - Fee Related CN101006677B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0406678 2004-06-18
FR0406678A FR2871969B1 (fr) 2004-06-18 2004-06-18 Procede et dispositif d'execution d'un calcul cryptographique
PCT/FR2005/001376 WO2006008355A1 (fr) 2004-06-18 2005-06-06 Procede et dispositif d'execution d'un calcul cryptographique

Publications (2)

Publication Number Publication Date
CN101006677A CN101006677A (zh) 2007-07-25
CN101006677B true CN101006677B (zh) 2011-09-28

Family

ID=34947876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800201508A Expired - Fee Related CN101006677B (zh) 2004-06-18 2005-06-06 用于实施加密运算的方法和装置

Country Status (9)

Country Link
US (1) US8199909B2 (zh)
EP (1) EP1757009B1 (zh)
JP (1) JP4828526B2 (zh)
CN (1) CN101006677B (zh)
AU (1) AU2005263805B2 (zh)
CA (1) CA2570617C (zh)
FR (1) FR2871969B1 (zh)
RU (1) RU2357365C2 (zh)
WO (1) WO2006008355A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2899751B1 (fr) * 2006-04-10 2008-07-04 Oberthur Card Syst Sa Procede de traitement cryptographique de donnees, dispositif et programme associes
US7860240B2 (en) * 2007-06-29 2010-12-28 Intel Corporation Native composite-field AES encryption/decryption accelerator circuit
ES2366753T3 (es) * 2007-12-13 2011-10-25 Oberthur Technologies Método de procesamiento criptográfico de datos, en particular con la ayuda de una caja s, dispositivo y programas asociados.
FR2935503A1 (fr) * 2008-08-28 2010-03-05 St Microelectronics Rousset Protection d'un algorithme de chiffrement
FR2948792B1 (fr) * 2009-07-30 2011-08-26 Oberthur Technologies Procede de traitement de donnees protege contre les attaques par faute et dispositif associe
EP2293487A1 (en) * 2009-09-08 2011-03-09 Thomson Licensing A method of diversification of a round function of an encryption algorithm
JP5822757B2 (ja) * 2012-02-28 2015-11-24 Kddi株式会社 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
US9143325B2 (en) * 2012-12-14 2015-09-22 Microsoft Technology Licensing, Llc Masking with shared random bits
CN104219045B (zh) * 2013-06-03 2018-11-09 中国科学院上海高等研究院 Rc4 流密码生成器
RU2580018C2 (ru) * 2014-05-26 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Способ определения маски зашифрованной области диска
FR3040513B1 (fr) * 2015-09-02 2018-11-16 Stmicroelectronics (Rousset) Sas Protection d'un algorithme de rijndael
FR3040514B1 (fr) * 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
FR3040515B1 (fr) 2015-09-02 2018-07-27 St Microelectronics Rousset Verification de la resistance d'un circuit electronique a des attaques par canaux caches
NL2015599B1 (en) 2015-10-12 2017-05-02 Koninklijke Philips Nv A cryptographic device and an encoding device.
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
WO2017223509A1 (en) * 2016-06-23 2017-12-28 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
CN107689863A (zh) * 2017-09-05 2018-02-13 成都三零嘉微电子有限公司 一种算术加法掩码转布尔异或掩码的防护电路
US11227065B2 (en) * 2018-11-06 2022-01-18 Microsoft Technology Licensing, Llc Static data masking
US10922494B2 (en) * 2018-12-11 2021-02-16 Mitel Networks Corporation Electronic communication system with drafting assistant and method of using same
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
CN115001728B (zh) * 2021-06-28 2024-01-23 河南科家创新科技集团有限公司 一种计算机前端处理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1164912A (zh) * 1995-09-05 1997-11-12 三菱电机株式会社 数据变换装置及数据变换方法
CN1312630A (zh) * 2000-03-06 2001-09-12 株式会社东芝 基于分块加密方式的加密装置与方法及译码装置与方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3992742B2 (ja) * 1996-05-20 2007-10-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データブロックおよび鍵を非線形的に結合する暗号方法および装置
WO2004014016A1 (en) * 2002-08-06 2004-02-12 Discretix Technologies Ltd. Method and device of manipulating data in finite fields
EP1595357A4 (en) 2003-02-06 2006-03-01 Discretix Technologies Ltd DEVICE AND METHOD FOR HANDLING MASKED DATA
KR100594265B1 (ko) * 2004-03-16 2006-06-30 삼성전자주식회사 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1164912A (zh) * 1995-09-05 1997-11-12 三菱电机株式会社 数据变换装置及数据变换方法
CN1312630A (zh) * 2000-03-06 2001-09-12 株式会社东芝 基于分块加密方式的加密装置与方法及译码装置与方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Elisabeth Oswald,Stefan Mangard and Norbert Pramstaller.Secure and Efficient Masking of AES-A Mission Impossible?.SCA-Lab Technical Report Series.2004,6-14. *
TSUNG-FU LIN et al.A high-throughput low-cost AES cipher chip.2002 IEEE ASIA-PACIFIC CONFERENCE ON ASIC. PROCESSING..2002,200285-88. *

Also Published As

Publication number Publication date
RU2357365C2 (ru) 2009-05-27
RU2007101704A (ru) 2008-07-27
US20080253557A1 (en) 2008-10-16
CA2570617A1 (fr) 2006-01-26
FR2871969A1 (fr) 2005-12-23
AU2005263805A1 (en) 2006-01-26
CN101006677A (zh) 2007-07-25
EP1757009A1 (fr) 2007-02-28
AU2005263805B2 (en) 2009-11-19
WO2006008355A1 (fr) 2006-01-26
US8199909B2 (en) 2012-06-12
JP4828526B2 (ja) 2011-11-30
JP2008502931A (ja) 2008-01-31
EP1757009B1 (fr) 2017-05-10
CA2570617C (fr) 2015-08-04
FR2871969B1 (fr) 2006-12-01

Similar Documents

Publication Publication Date Title
CN101006677B (zh) 用于实施加密运算的方法和装置
US8638944B2 (en) Security countermeasures for power analysis attacks
JP3600454B2 (ja) 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
EP3503460A1 (en) System and method for boolean masked arithmetic addition
US8515057B2 (en) Method and device for executing crytographic calculation
US9515820B2 (en) Protection against side channels
US8094816B2 (en) System and method for stream/block cipher with internal random states
EP3334083A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
US10210776B2 (en) DPA protection of a rijndael algorithm
US10243728B2 (en) Verification of the resistance of an electronic circuit to side-channel attacks
US10187198B2 (en) Protection of a rijndael algorithm
Moon et al. IoT application protection against power analysis attack
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
Abdeldaym et al. Modified RSA algorithm using two public key and Chinese remainder theorem
US20060153372A1 (en) Smart card and method protecting secret key
EP3664359A1 (en) A computation device using shared shares
EP1587237B1 (en) Security countermeasures for power analysis attacks
Tayal et al. Analysis of various cryptography techniques: a survey
EP1606685B1 (en) Security process for an electronic unit including a cryptoprocessor
JP2006025366A (ja) 暗号化装置及び半導体集積回路
Hasija et al. A Performance Analysis of Root-Converging Methods for Developing Post Quantum Cryptography Algorithms to Mitigate Key-Size-Based Attacks
CN116614217A (zh) 数据处理方法、密钥扩展方法、装置、设备及存储介质
CN115549892A (zh) 由加密算法处理的数据的保护
Andraşiu et al. Evaluation Of Cryptographic Algorithms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SARAM SAFE CO.,LTD.

Free format text: FORMER OWNER: SALLEMURT PROTECTION SAFE CO.,LTD.

Effective date: 20090605

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20090605

Address after: France

Applicant after: France Telecom

Address before: France

Applicant before: Sagem

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110928

Termination date: 20190606

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