CN106487499B - Rijndael算法的保护 - Google Patents

Rijndael算法的保护 Download PDF

Info

Publication number
CN106487499B
CN106487499B CN201610114598.6A CN201610114598A CN106487499B CN 106487499 B CN106487499 B CN 106487499B CN 201610114598 A CN201610114598 A CN 201610114598A CN 106487499 B CN106487499 B CN 106487499B
Authority
CN
China
Prior art keywords
block
rank
box
mask
substitution
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.)
Active
Application number
CN201610114598.6A
Other languages
English (en)
Other versions
CN106487499A (zh
Inventor
N·布吕诺
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.)
Italian Semiconductor (russell) Co
Original Assignee
Italian Semiconductor (russell) Co
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 Italian Semiconductor (russell) Co filed Critical Italian Semiconductor (russell) Co
Publication of CN106487499A publication Critical patent/CN106487499A/zh
Application granted granted Critical
Publication of CN106487499B publication Critical patent/CN106487499B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined 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/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]
    • 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/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • 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

Abstract

本发明的各个实施例涉及Rijndael算法的保护。一种保护由电子电路执行的Rijndael型算法免受边信道攻击的方法,其中:在应用根据第一代换盒的非线性块代换运算之前,用第一掩码来掩码被加密或解密的数据的每个块,并且然后在代换之后通过第二掩码去掩码每个块;在应用非线性运算之前,逐块地再计算代换盒,代换盒的块的处理顺序经受随机置换;并且代换盒的再计算使用第二掩码以及第三掩码和第四掩码,第三掩码和第四掩码的和等于第一掩码。

Description

Rijndael算法的保护
技术领域
本公开总体上涉及电子电路,并且更具体地涉及执行通常称作Rijndael算法的加密算法,其对被加密数据的不同部分实施相同的变换。本公开更具体地涉及对通过这种算法而对计算进行保护,使其免受差分功耗分析(DPA)的攻击。
背景技术
在许多应用中,电子电路实施加密、验证、签名的算法,并且更普遍地实施对称作秘密数据的数据进行操作的算法,即,期望将对该数据的访问保留给特定的用户或电路。在Rijindael算法之中,AES算法(通常称作AES(高级加密标准,FIPS PUB 197))对具有设置为128比特的大小的数据块进行处理、并且是一种特别常用的加密算法。
AES对划分为块的字或信息,基于源自相同密钥的不同的子密钥,在行中多次应用相同的变换。
存在许多称为攻击的方法,试图破译或者复制秘密数据。在这种攻击中,所谓的边信道攻击包括分析由电子电路执行的计算对参数的影响,诸如,其功率消耗、其电磁辐射等。一种特别常用的边信道攻击,是通常称作DPA(差分功耗分析)的攻击。这种攻击包括,建立执行算法的集成电路的功率消耗与涉及在加密或解密期间使用的秘密密钥的计算结果之间的关联。实践中,基于被加密的信息、并且基于涉及秘密密钥的假设,绘制在用于对信息的加密的电路功率消耗与由电路计算的中间值之间的统计关联随时间推移的曲线。这种功率分析攻击在文献中被广泛描述(例如参见由Paul Kocher、Joshua Jaffe和BenjaminJun所著的发表于Springer-Verlag LNCS 1666的文章“Differential Power Analysis”)。
发明内容
本发明的实施例可能有助于克服保护免受边信道攻击的通常方法和电路的所有或部分缺点。
一个实施例提供了一种计算AES算法的方法,其可以有助于克服通常的方法的所有或部分缺点。
一个实施例提供了一种验证执行AES算法的电子电路对于边信道攻击的敏感度的方法。
一个实施例提供了一种保护由电子电路执行的Rijndael型算法免受边信道攻击的方法,其中:
被加密或解密的数据的每个块在执行基于第一代换盒的非线性块代换运算之前用第一掩码进行掩码,并且然后在代换之后用第二掩码去掩码;
在应用非线性运算之前,逐块地再计算代换盒,代换盒的块的处理顺序经受随机置换;并且
代换盒的再计算使用第二掩码以及第三掩码和第四掩码,第三掩码和第四掩码的和等于第一掩码。
根据一个实施例:
对于在第一盒中的每个块,接续地:
将当前块的秩提交至置换,并且将结果与第三掩码组合;
将第二盒的当前块用第二掩码与第一盒的通过置换的结果识别的块的组合代替;
对于在第二盒中的每个块,接续地:
将当前块的秩提交至置换,并且将结果与第四掩码组合;
将第一盒的当前块用第二盒的通过置换的结果识别的块代替。
根据一个实施例,该方法包括如下步骤:
对于在第一盒中的每个块,接续地:
在第一步骤中,将置换应用于当前块的秩,将结果与第一掩码组合,并且将结果存储在第一变量中;
在第二步骤中,将第二掩码与第一盒的具有应用于当前块的秩的置换的结果的秩的块的组合存储在第二变量中;以及
将第二步骤的结果存储在第二盒的通过第一步骤的结果识别的块中;
对于在第二盒中的每个块,接续地:
在第三步骤中,将置换应用于当前块的秩,将结果与第二掩码组合,并且将结果存储在第一变量中;
在第四步骤中,将第二盒的具有被应用于当前块的置换的结果的秩的块存储在第二变量中;以及
将第四步骤的结果存储在第一盒的通过第三步骤的结果识别的块中。
根据一个实施例,第一盒形成再计算的代换盒。
根据一个实施例:
将第一盒的块拷贝到第二盒中;
对于在第二盒中的每个块,接续地:
将当前块的秩提交至置换,并且将结果与第三掩码组合;
将第一盒的当前块用第二掩码与第二盒的通过置换的结果识别的块的组合代替;
对于在第一盒中的每个块,接续地:
将当前块的秩提交至置换,并且将结果与第四掩码组合;
将第二盒的当前块用第一盒的通过置换的结果识别的块代替。
根据一个实施例,该方法包括如下步骤:
将第一盒的块拷贝到第二盒中;
对于第二盒中的每个块,接续地:
在第一步骤中,将置换应用于当前块的秩,将结果与第一掩码组合,并且将结果存储在第一变量中;
在第二步骤中,将第二掩码与第二盒的具有应用于当前块的秩的置换的结果的秩的块的组合的结果存储在第二变量中;以及
将第二步骤的结果存储在第一盒的通过第一步骤的结果识别的块中;以及
对于在第一盒中的每个块,接续地:
在第三步骤中,将置换应用于当前块的秩,将结果与第二掩码组合,并且将结果存储在第一变量中;
在第四步骤中,将第一盒的具有应用于当前块的置换的结果的秩的块存储在第二变量中;以及
将第四步骤的结果存储在第二盒的通过第三步骤的结果识别的块中。
根据一个实施例,第二盒形成再计算的代换盒。
根据一个实施例,掩码是随机数。
根据一个实施例,所有掩码具有与块相同的大小。
根据一个实施例,组合是XOR型的。
根据一个实施例,该方法应用于AES。
一个实施例提供了一种电子电路,该电子电路在操作时实施本文公开的一个或多个方法。
上述内容将在特定实施例的非线性说明中参照附图详细描述。
在一个实施例中,一种方法包括:通过如下步骤,在电子电路处理数据期间保护电子电路免受边信道攻击:将被处理的数据的每个块用第一掩码进行掩码;将基于第一代换盒的非线性块代换运算应用于掩码的数据;以及用第二掩码将非线性块代换运算的应用的结果进行去掩码,其中在应用非线性代换运算之前逐块地再计算代换盒,代换盒的块的处理的顺序经受随机置换,并且代换盒的再计算使用第二掩码以及第三掩码和第四掩码,第三掩码和第四掩码的组合等于第一掩码。在一个实施例中,该方法包括:对于在第一代换盒中的每个块,接续地:将当前块的秩提交至置换,并且将当前块的秩的置换的结果与第三掩码组合;以及将第二盒的当前块用第二掩码与第一盒的通过当前块的秩的置换的结果识别的块的组合代替;以及对于在第二代换盒中的每个块,接续地:将当前块的秩提交至置换,并且将当前块的秩的置换的结果与第四掩码组合;以及将第一代换盒的当前块用第二盒的通过当前块的秩的置换的结果识别的块代替。在一个实施例中,该方法包括:对于在第一盒中的每个块,接续地:在第一步骤中,将置换应用于当前块的秩,将当前块的秩的置换的结果与第一掩码组合,并且将组合的结果存储在第一变量中;在第二步骤中,将第二掩码与第一盒的具有应用于当前块的秩的置换的结果的秩的块的组合的结果存储在第二变量中;以及将第二变量存储在第二盒的具有第一变量的秩的块中;以及对于在第二盒中的每个块,接续地:在第三步骤中,将置换应用于当前块的秩,将当前块的秩的置换的结果与第二掩码组合,并且将组合的结果存储在第一变量中;在第四步骤中,将第二盒的具有被应用于当前块的秩的置换的结果的秩的块存储在第二变量中;以及将第二变量存储在第一盒的具有第一变量的秩的块中。在一个实施例中,第一盒是再计算的代换盒。在一个实施例中,该方法包括:将第一盒的块拷贝到第二盒中;对于在第二盒中的每个块,接续地:将当前块的秩提交至置换,并且将秩的置换的结果与第三掩码组合;以及将第一盒的当前块用第二掩码与第二盒的通过秩的置换的结果识别的块的组合代替;对于在第一盒中的每个块,接续地:将当前块的秩提交至置换,并且将秩的置换的结果与第四掩码组合;以及将第二盒的当前块用第一盒的具有当前块的秩的置换的结果的秩的块代替。在一个实施例中,该方法包括:将第一盒的块拷贝到第二盒中;对于第二盒中的每个块,接续地:在第一步骤中,将置换应用于当前块的秩,将秩的置换的结果与第一掩码组合,并且将组合存储在第一变量中;在第二步骤中,将第二掩码与第二盒的具有当前块的秩的置换的结果的秩的块的组合的结果存储在第二变量中;以及将第二变量存储在第一盒的具有第一变量的秩的块中;以及对于在第一盒中的每个块,接续地:在第三步骤中,将置换应用于当前块的秩,将秩的置换的结果与第二掩码组合,并且将组合存储在第一变量中;在第四步骤中,将第一盒的具有当前秩的置换的结果的秩的块存储在第二变量中;以及将第二变量存储在第二盒的具有第一变量的秩的块中。在一个实施例中,第二盒是再计算的代换盒。在一个实施例中,掩码是随机数。在一个实施例中,掩码具有与块相同的大小。在一个实施例中,组合是XOR型的。在一个实施例中,处理包括应用高级加密标准(AES)算法。在一个实施例中,处理包括将Rijndael型算法应用于数据。
在一个实施例中,一种装置,包括:一个或多个寄存器;以及电路装置,耦合至一个或多个寄存器,电路装置在操作时通过如下步骤,在装置处理数据期间保护装置免受边信道攻击:将被处理的数据的每个块用第一掩码进行掩码;将基于第一代换盒的非线性块代换运算应用于掩码的数据;以及用第二掩码将非线性块代换运算的应用的结果进行去掩码,其中在应用非线性代换运算之前逐块地再计算代换盒,代换盒的块的处理的顺序经受随机置换,并且代换盒的再计算使用第二掩码以及第三掩码和第四掩码,第三掩码和第四掩码的组合等于第一掩码。在一个实施例中,保护装置免受边信道攻击包括:对于在第一代换盒中的每个块,接续地:将当前块的秩提交至置换,并且将当前块的秩的置换的结果与第三掩码组合;以及将第二盒的当前块用第二掩码与第一盒的通过当前块的秩的置换的结果识别的块的组合代替;对于在第二代换盒中的每个块,接续地:将当前块的秩提交至置换,并且将当前块的秩的置换的结果与第四掩码组合;以及将第一盒的当前块用第二盒的通过当前块的秩的置换的结果识别的块代替。在一个实施例中,保护装置免受边信道攻击包括:对于在第一盒中的每个块,接续地:将置换应用于当前块的秩,将当前块的秩的置换的结果与第一掩码组合,并且将组合的结果作为第一变量的值存储在一个或多个寄存器中;将第二掩码与第一盒的具有应用于当前块的秩的置换的结果的秩的块的组合的结果作为第二变量的值存储在一个或多个寄存器中;以及将第二变量的值存储在第二盒的具有第一变量的值的秩的块中;以及对于在第二盒中的每个块,接续地:将置换应用于当前块的秩,将当前块的秩的置换的结果与第二掩码组合,并且将组合的结果作为第一变量的值存储在一个或多个寄存器中;将第二盒的具有应用于当前块的秩的置换的结果的秩的块作为第二变量的值存储在一个或多个寄存器中;以及将第二变量的值存储在第一盒的具有第一变量的值的秩的块中。在一个实施例中,再计算的代换盒是第一盒。在一个实施例中,保护装置免受边信道攻击包括:将第一盒的块拷贝到第二盒中;对于在第二盒中的每个块,接续地:将当前块的秩提交至置换,并且将秩的置换的结果与第三掩码组合;以及将第一盒的当前块用第二掩码与第二盒的通过秩的置换的结果识别的块的组合代替;对于在第一盒中的每个块,接续地:将当前块的秩提交至置换,并且将秩的置换的结果与第四掩码组合;以及将第二盒的当前块用第一盒的具有当前块的秩的置换的结果的秩的块代替。在一个实施例中,保护装置免受边信道攻击包括:将第一盒的块拷贝到第二盒中;对于第二盒中的每个块,接续地:将置换应用于当前块的秩,将秩的置换的结果与第一掩码组合,并且将组合作为第一变量的值存储在一个或多个寄存器中;将第二掩码与第二盒的具有当前块的秩的置换的结果的秩的块的组合的结果作为第二变量的值存储在一个或多个寄存器中;以及将第二变量的值存储在第一盒的具有第一变量的值的秩的块中;以及对于在第一盒中的每个块,接续地:将置换应用于当前块的秩,将秩的置换的结果与第二掩码组合,并且将组合作为第一变量的值存储在一个或多个寄存器中;将第一盒的具有秩的置换的结果的秩的块作为第二变量的值存储在一个或多个寄存器中;以及将第二变量的值存储在第二盒的具有第一变量的值的秩的块中。在一个实施例中,第二盒是再计算的代换盒。在一个实施例中,掩码是具有与块相同的大小的随机数,并且组合是XOR型的。在一个实施例中,该装置包括集成电路,集成电路包括电路装置和一个或多个寄存器。
在一个实施例中,一种系统,包括:总线系统;以及电路装置,耦合至总线系统,电路装置在操作时通过如下步骤,保护免受边信道攻击:将被处理的数据的每个块用第一掩码进行掩码;将基于第一代换盒的非线性块代换运算应用于掩码的数据;以及用第二掩码将非线性块代换运算的应用的结果进行去掩码,其中在应用非线性代换运算之前将代换盒逐块地再计算,代换盒的块的处理的顺序经受随机置换,并且代换盒的再计算基于第二掩码以及第三掩码和第四掩码,第三掩码和第四掩码的组合等于第一掩码。根据一个实施例,该系统包括集成电路,集成电路包括电路装置。根据一个实施例,集成电路包括多个寄存器,并且保护免受边信道攻击包括将变量存储到多个寄存器中。
附图说明
图1图示了AES型算法的简化图;
图2以框图的形式图示了对块加密的这种代换盒的掩码的一个示例;
图3示以框图的形式例性地示出了对利用随机顺序对再计算的代换盒进行掩码的示例;
图4以框图的形式图示了用于保护AES算法的执行的方法的一个实施例;
图5以框图的形式图示了用于保护AES算法的执行的方法的另一实施例;
图6以框图的形式图示了用于保护AES算法的执行的方法的又一实施例;以及
图7示出了实施所描述的方法的的电子电路的一个示例。
具体实施方式
在不同的附图中相同的要素用相同的附图标记标识,除非上下文另有指示。具体地,对于不同实施例的相同的结构和/或功能要素可以指定有相同的附图标记,并且可以具有相同的结构、尺寸和材料性质。为简明起见,仅仅示出并且详述了那些有助于理解所描述的实施例的步骤和元件。具体地,执行的加密/解密的应用、或者执行加密/解密的电子电路的应用,没有被详述,所描述的实施例符合通常的应用。
下文将通过AES的应用的示例来描述各个实施例。然而,下文所有的描述更普遍地应用于涉及非线性代换运算的任何块算法,诸如Rijndael型算法。
AES通常由集成电路通过有线逻辑状态机或者通过执行在存储器(通常是ROM)中的程序的微处理器来执行。该算法使用对于集成电路或者对于用户特定的秘密密钥,对这些秘密密钥进行处理以对数据进行加密。例如,AES对划分为块的字或数据代码,基于不同的加密子密钥(形成密钥的二进制字的部分),在行中多次应用相同的变换。
AES通常用于微电路卡、解码器、手机等的电子装置中。
图1图示了AES型算法的简化图。将仅仅描述加密,而解密涉及其逆变换。更多细节参见Joan Daemen和Vincent Rijmen所著的公开于Springer-Verlag Eds(ISBN 3-540-42580-2)的“The Design of Rijndael”,以及参见AES标准(FIPS PUB 197)。
该算法将确定数目的比特的字或代码T0加密成相同大小的另一字或代码Tn。被处理的数据(信息)被划分为多个具有相同大小(对于AES为128比特)的字或代码。加密和解密依赖秘密密钥,该秘密密钥的长度(对于AES为128、192或256比特)决定了加密的安全性。
实践中,AES的每个步骤处理表示1个字的4行4列的矩阵,该矩阵的每个元素是被处理的128比特代码的1个字节或块。为了简化下文的描述,对于每个步骤,将提及被视作矩阵的状态。举出最常用的被应用于被划分成字节的32比特字的AES算法,作为一个示例。
该算法始于:基于超过128、192或256比特的秘密密钥,分别生成11、13或15个子密钥,每个子密钥也包括128比特。这些子密钥将用于参照图1描述的算法。
该算法始于待加密的代码或数据字的初始状态T0(框10,STATE INIT)。
AES的第一阶段是这样的操作(框11,ADDROUNDKEY):其包括执行初始状态T0与第一子密钥K0的XOR型组合,在附图中表示为+。获得了第一中间状态T1。实践中,逐字节地执行该操作。
第二阶段包括执行相同变换M的多个轮(round)或循环,对于每个轮i,该变换M涉及上一轮获得的状态Ti-1与当前子密钥Ki。变换M的轮数对应于n-1,即,所得的子密钥数n+1减去2。每轮变换M由4个接续进行的操作组成。
第一操作(框12,SHIFTROWS)包括对矩阵的最后3行执行轮换。具体地,矩阵的第一行保持不变,第二行轮换1字节,第三行轮换2字节,并且第四行轮换3字节。
变换M轮的第二操作(框13,SUBBYTES)是非线性变换,其中形成当前状态的矩阵的每个字节被来自代换盒(通常称作SBOX)的其镜像替代。该代换盒可以由两个组合的变换得到。第一变换包括按序列28的有限主体(finite body of order 28)(对应于字节),将所考虑的字节(矩阵的元素)反转。该反转之后是仿射变换。
变换M轮的第三操作(框14,MIXCOLUMNS)包括,将从前步骤得到的矩阵的每个列考虑作为关于序列28的有限主体的多项式,并且将这些多项式中的每一个乘以对一个多项式取模的组合的另一个多项式。
变换M轮的第四操作也是最后的操作(框15,ADDROUNDKEY)包括,将子密钥Ki应用至从前状态得到的矩阵,以获得如下这样的矩阵,其中从前状态得到的矩阵的每个字节已经字节对字节地通过XOR而与子密钥Ki的Ki(j,1)或者字节k被组合,j表示在矩阵中的行的在0与3之间的秩,而l表示在矩阵中的列的在0与3之间的秩。运算15与该编码的第一阶段的运算11相同,然而采用不同的子密钥来执行。
在运算15的结尾,对于秩i的轮,获得了状态Ti=M(Ki,Ti-1)。变换轮的4个操作重复了n-1次,即,在运算15之后,返回至运算12,以采用下一子密钥来执行新的轮。
AES的第三阶段包括最后轮,该最后轮包括有轮变换M的除了第三运算(MIXCOLUMNS)之外的运算12、13和15,其中最后子密钥Kn-1作为运算15的密钥。
然后获得了状态Tn=M’(Kn,Tn-1)。该结果可以被成形(shaped)(框16,RESULTFORM),以便随后的使用。
在变换M轮中的运算12、13、14和15的顺序可以改变。例如,子密钥的引入(步骤15)可以在代换运算13之前进行。
已经提供了不同的对策以减少AES型算法处理对于边信道攻击的敏感度,并且特别是通过对执行该算法的电路的当前消耗的分析进行的攻击。
通常,这种对策通过在被认为敏感的特定步骤处引入随机数,来对计算进行掩码。具体的,代换盒由于其执行的操作的非线性特性而被认为是对于攻击敏感的步骤。代换盒通常对应于256阵列的阵列,其必须被预计算,并且然后,对于AES算法的每轮,被从存储器中读出16次。在特定情况下,盒中存储有代换盒(也称为SBOX)的结果以及列变换MIXCOLUMS的结果,存储的盒以及这两个变化的结果被应用到每个状态的字节。
为了将代换盒掩码,再计算在变换轮中使用的所掩码的代换盒。将代换盒掩码,使得对于其的计算必须考虑将用于将编码的结果进行去掩码的掩码。
图2以框图的形式图示了对块加密的代换盒的掩码的一个示例。
在图2的示例中,代换(步骤13,图1)被假设在步骤15之后执行,其中使用了轮密钥。进一步地,步骤14(MIXCOLUMNS)被考虑为被合并在代换运算中,即,代换盒执行运算13和14。出于简化考虑,运算12(SHIFTROWS)未被考虑。
该示例通过限定两个相应的掩码和去掩码的掩码(随机数),开始(框20,m=random)、(框21,m’=random)。数m和m’对应于字节。
然后,对代换盒S的秩ω的每个字节S[ω],接续地执行对字节的秩ω与掩码m的XOR组合(其被表示为位对位的加法运算+),其结果被置入临时变量z中。然后(框23,z’=S[ω]+m’),将字节S[ω]与掩码m’组合,其结果被置入临时变量z’中。然后(框24,S’[z]=z’),将被包含在变量z’中的值赋值到掩码的代换盒S’的秩z的字节S’[z]。
例如,计数器ω被初始化至0(框27,ω=0),并且只要没有处理所有的字节(框29,ω=n-1?输出N),就对于对盒S的字节S[ω]的每次处理,累加1(框28,ω=ω+1)。
一旦已经处理了代换盒S的n个字节S[ω](框29输出Y),那么掩码的代换盒S’就被用于逐字节地(逐块地)处理信息。
因此,信息的每个字节t通过XOR与m组合(框31,t=t+m),其结果被置入变量t(通过覆写字节t),并且然后通过覆写在变量t中的字节t,通过XOR与子密钥的字节k组合(框32,t=t+k),并且由其在掩码的代换盒S’中的镜像S’[t]代换(框33,t=S'[t])。然后通过XOR与掩码m’组合,将包含镜像S’[t]的变量t去掩码(框34,t=t+m’)。然后返回变量t的内容。
对于信息的所有字节t重复步骤31至35。
图2所图示的计算也可以表达如下:
m<-random number(框20)
m’<-random number(框21)
Forω=0to n-1(框27,框29输出N,框28):
z<-ω+m(框22)
z’<-S[ω]+m’(框23)
S’[z]=z’(框24)
End of loop(框29输出Y)
t<-t+m(框31)
t<-t+k(框32)
t<-S’[t](框33)
t<-t+m’(框34)
Return t(框35)
被称作是第二级或更高级的DPA攻击,使得AES算法仍然太易受攻击,包括在其使用随机掩码的情况下。第二级的DPA攻击包括在相同的当前路线(trace)中隔离掩码的签名以及掩码的数据(在AES的示例中,是盒)的签名。通过将签名组合、并且在AES的情况下通过多次重复该攻击,可以直接地或间接地破译掩码(随机数)。
为了改进对代换盒的针对这些类型的攻击的保护,在该级下代换盒S被再计算的顺序可以被混合,以获得掩码的盒S’。
例如,使用了随机置换其被用于限定代换盒的字节S[ω]被通过数m和m’掩码的顺序。
图3示以框图的形式例性地示出了对利用随机顺序对再计算的代换盒进行掩码的示例。
与关于图2描述的方法相比,其效果是选择了适用于所有行ω的随机置换(框25,),并且将在步骤22和23中的采用代换盒的字节的秩ω,替换为采用将置换函数应用于秩ω而得的(框22’,以及框23’,)。这相当于修改了代换盒的字节被再计算的顺序,并且从而被掩码。如图所示,没有修改关于图2描述的其他步骤。
图3所图示的计算也可以表达如下:
m<-random number(框20)
m’<-random number(框21)
(框25)
Forω=0to n-1(框27,框29输出N,框28):
(框22’)
(框23’)
S’[z]=z’(框24)
End of loop(框29输出Y)
t<-t+m(框31)
t<-t+k(框32)
t<-S’[t](框33)
t<-t+m’(框34)
Return t(框35)
然而,本发明人注意到了一处缺陷,该缺陷使得该对策易受还更高级的DPA的攻击。
这种缺陷源自对代换盒的实际掩码。事实上,对于未知的随机置换具有如下优点:在循环(框22’、23’、24)中的秩ω的值对于可能的攻击者保持未知。然而,在每个循环(步骤22’和23’)中,秩ω被操作两次。因此,攻击者能够漏洞发掘到:与对于每个循环的对当前秩ω的两次操作相关的安全性“泄漏”。具体地,步骤23’的结果是,函数表现于全部代换盒之上,即,实践中存在256次,其表现为许多泄露。通过组合步骤22’和23’的结果,函数的贡献被消除。对于步骤32的攻击,虽然比图2更复杂,但是又变得有效了。
实际上,图3的实施例使得容易解决对于对秩m的值的第二级攻击的问题。然而,第三级攻击使得能够从如下时刻破译秘密:此时攻击者能够在当前路线中识别出步骤22’和23’,并且从而识别出泄漏点。
在一个实施例中,期望对电子电路对于诸如上述攻击的抵抗进行评价。出于这一目的,执行攻击并且检测其是否有效。
一个实施例使得容易改进Rijndael型块加密算法对于边信道攻击的抵抗。
在一个实施例中,步骤22’的操作(图3)不出现在盒的再计算中。
在一个实施例中,随机数m被划分为两部分,并且对代换盒的掩码按两个步骤执行。图4以框图的形式图示了一个示例实施例。
该实施例通过这样限定两个掩码(随机数)m1和m2、使得它们的XOR组合对应于随机数m(该数将用于步骤31),而开始(框41,m1=random)、(框42,m2=random(m=m1+m2))。如上文,然后限定在所有n个秩ω中可应用的随机去掩码值m’(框21,m’=random)和随机置换(框25,)。掩码m1、m2、m和m’对应于字节。掩码的代换盒S’也采用去掩码的代换盒S的值初始化(框43,S’=S)。步骤21和43(或者步骤43和21)相对于步骤41和42的顺序不重要。
然后,代换盒的再计算被分为两个循环,第一次对盒S’使用随机数m1。第二次对得自第一循环的盒S使用随机数m2。
从而,对于代换盒S’的秩ω的每个字节S’[ω],接续地,将置换函数应用于秩ω,并且执行结果与掩码m1的XOR组合,其结果被置入临时变量z。然后(框45,),字节S’[ω]与秩m’组合,其结果被置入临时变量z’中。然后(框46,S[z]=z’),被包含在变量z’中的值被赋值给去掩码的代换盒S的秩z的字节S[z]。
例如,计数器ω被初始化为0(框27,ω=0),并且只要没有处理所有的字节(框29,ω=n-1?输出N),就对于对盒S’的字节的每次处理,累加1(框28,ω=ω+1)。
一旦已经用数m的部分m1处理了代换盒S’的n个字节S’[ω](框29输出Y),那么得自第一循环的代换盒S的字节就被重获(recover)为用部分m2掩码的。
从而,对于代换盒S的秩ω的每个字节S[ω],接续地,对秩ω应用置换函数并且执行结果与秩m2的组合(框47,),其结果置入变量z。然后(框48,),得自第一循环的代换盒S的字节置入变量z’。然后(框24,S’[z]=z’),被包含在变量z’中的值被赋值给掩码的代换盒S’的秩z的字节S’[z]。
例如,对于循环计算,计数器ω再次被初始化为0(框27’,ω=0),并且只要没有处理所有的字节(框29’ω=n-1?输出N),就对于对得自第一循环的盒S的字节S[ω]的每次处理,累加1(框28’,ω=ω+1)。
一旦已经用数m的部分m2处理了得自第一循环的代换盒S的n个字节(框29’输出Y),那么所得的掩码的代换盒S’就用于逐字节(逐块)地处理信息,并且如图2和图3描述地执行步骤31至35。
图4所图示的计算也可以表达如下:
m1<-random number(框41)
m2<-random number(框42)
m’<-random number(框21)
S’<-S(框43)
(框25)
Forω=0to n-1(框27,框29输出N,框28):
(框44)
(框45)
S[z]=z’(框46)
End of loop(框29输出Y)
Forω=0to n-1(框27’,框29’输出N,框28’):
(框47)
(框48)
S’[z]=z’(框24)
End of loop(框29’输出Y)
t<-t+m(框31,图3)
t<-t+k(框32,图3)
t<-S’[t](框33,图3)
t<-t+m’(框34,图3)
Return t(框35,图3)
图5以框图的形式图示了电子系统的一个实施例。
该实施例通过限定两个掩码(随机数)m1和m2、从而使得m1和m2的XOR组合对应于随机数m(数m将用于步骤31),来开始(框41,m1=random)、(框42,m2=random(m=m1+m2))。如上所述,限定了在所有n个秩ω中可应用的随机去掩码值m’(框21,m’=random)和随机置换(框25,)。标记m1、m2、m和m’对应于字节。步骤21和43(或者步骤43和21)相对于步骤41和42的顺序不重要。
代换盒的再计算被分为两个循环,第一次对盒S使用随机数m1。第二次对得自第一循环的盒S’使用随机数m2。
从而,对于代换盒S’的秩ω的每个字节S’[ω],接续地,将置换函数应用于秩ω,并且执行结果与秩m1的XOR组合,其结果被置入临时变量z。然后(框23’,),字节S’[ω]与秩m’组合,其结果被置入临时变量z’中。然后(框24,S’[z]=z’),被包含在变量z’中的值被赋值给去掩码的代换盒S’的秩z的字节S’[z]。
例如,计数器ω被初始化为0(框27,ω=0),并且只要没有处理所有的字节(框29,ω=n-1?输出N),就对于对盒S的字节的每次处理,累加1(框28,ω=ω+1)。
一旦已经用数m的部分m1处理了代换盒S的n个字节S[ω](框29输出Y),那么得自第一循环的代换盒S’的字节就被重获为用部分m2掩码的。
从而,对于代换盒S’的秩ω的每个字节S’[ω],接续地,对秩ω应用置换函数并且执行结果与秩m2的组合(框47,),其结果置入变量z。然后(框48,),然后得自第一循环的代换盒S’的字节置入变量z’。然后(框49,S[z]=z’),被包含在变量z’中的值被赋值给代换盒S的秩z的字节S[z]。
例如,对于循环计算,计数器ω再次被初始化为0(框27’,ω=0),并且只要没有处理所有的字节(框29’ω=n-1?输出N),就对于对得自第一循环的盒S’的字节S’[ω]的每次处理,累加1(框28’,ω=ω+1)。
一旦已经用数m的部分m2处理了得自第一循环的代换盒S’的n个字节(框29’输出Y),那么所得的代换盒S就用于逐字节(逐块)地处理信息。从而,参照图2和图3描述的步骤33采用盒S的字节,而不是盒S’的字节(框33’,t=S[t])。如图所示,步骤31、32、34和35相对于图2和图3的实施例没有改变。
如与图4的实施例相比的,盒S’的初始化是多余的(框43,图4)。
图5所图示的计算也可以表达如下:
m1<-random number(框41)
m2<-random number(框42)
m’<-random number(框21)
(框25)
Forω=0to n-1(框27,框29输出N,框28):
(框44)
(框23’)
S’[z]=z’(框24)
End of loop(框29输出Y)
Forω=0to n-1(框27’,框29’输出N,框28’):
(框47)
(框48’)
S[z]=z’(框49)
End of loop(框29’输出Y)
t<-t+m(框31,图3)
t<-t+k(框32,图3)
t<-S[t](框33’)
t<-t+m’(框34,图3)
Return t(框35,图3)
将掩码划分为部分m1和m2并且将对代换盒的计算执行两次这一事实,使得攻击更加困难。
在一个实施例中,在对代换盒的再计算期间,实施与代换运算的可交换置换的函数。图6以框图的形式图示了一个示例实施例。
该实施例通过限定两个相应的掩码和去掩码的掩码(随机数)m和m’,如图2所示地开始(框20,m=random)、(框21,m’=random)。
然后(框25’,γ=random permutation,γoS=Soγ),选择了与代换盒可交换的随机置换。
然后,对于代换盒S的秩ω的每个字节S[ω],接续地,对秩ω应用置换函数γ,并且执行其结果γ(ω)与秩m的XOR组合(框51,z=γ(ω)+m),其结果置入临时变量z。然后(框52,z’=γ(S[ω])+m’),将函数γ应用至字节S[(ω)]的结果与秩m’组合,其结果置入临时变量z’。然后(框24,S’[z]=z’),被包含在变量z’中的值被赋值给掩码的代换盒S’的秩z的字节S’[z]。如上述实施例的,计数器ω例如被初始化为0(框27,ω=0),并且只要没有处理所有的字节(框29,ω=n-1?输出N),就对于对盒S的字节S[ω]的每次处理,累加1(框28,ω=ω+1)。
一旦已经处理了代换盒S的n个字节S[ω](框29输出Y),那么所得的掩码的代换盒S’就被用于逐字节地(逐块地)处理信息,并且如图2和图3所述地执行步骤31至35。
与图3相比,值γ(ω)每次循环仅仅出现一次。因此不能够将其与循环组合以对当前路线进行漏洞发掘。然而,由于函数γ与代换运算S可交换,所以步骤52的结果与图3的步骤23’的结果相同,这就使得可以去掩码。
图6所图示的计算也可以表达如下:
m<-random number(框20)
m'<-random number(框21)
γ<-random permutation commutative with substitution operation S(框25’)
Forω=0to n-1(框27,框29输出N,框28):
z<-γ(ω)+m(框51)
z'<-γ(S[ω])+m'(框52)
S'[z]=z'(框24)
End of loop(框29输出Y)
t<-t+m(框31)
t<-t+k(框32)
t<-S'[t](框33)
t<-t+m'(框34)
Return t(框35)
在一个实施例中,可能是随机的、对于代换盒的任何幂的升高,可以用作与代换运算可交换的函数γ。
验证对攻击的敏感度的方法的实施例的实施,有助于验证参照图4至图6描述的对抗手段中的一个的实施例是否被电子电路实施。
在实践中,不同的值、字节、变量等,物理地存储在多个电子电路中的一个的寄存器中,并且这些寄存器的内容可以根据取决于方法步骤的控制信号来被读出和/或写入。电子电路例如是用于执行具有输入、输出寄存器并且被配置用于操作该不同值的上述算法。计算和代换步骤例如有在集成至处理器的有线逻辑中的元件执行。
图7很示意地示出了实施将描述的实施例的类型的电子电路6的一个示例。
电路6包括:
计算单元61(UC),例如,状态机、微处理器、可编程逻辑电路等,包括或使用包含有用于计算的不同值的寄存器62,该寄存器62在图7中任意地示出为在单元61之外;
一个或多个易失性和/或非易失性存储区63(MEM),用于存储所有或部分数据和密钥;
一个或多个数据、地址和/或控制总线65,位于在电路6内部的不同的元件以及用于与电路6的外部进行通信的输入-输出接口67(I/O)之间。
电路6可以包括根据应用的各种其他电路,在图7中由块69(FCT)标识。例如,块69可以包括被配置用于使计算电路61经受边信道攻击的电路装置(例如,控制器等)。块69可以在电路6外部。
一些实施例可以采用计算机程序产品的形式或者包括计算机程序产品。例如,根据一个实施例,设置了包括有始于执行上述方法或函数中的一个或多个的计算机程序的计算机可读介质。该介质可以是物理存储介质,诸如例如,只读存储器(ROM)芯片、或者光盘诸如数字多用光盘(DVD-ROM)、压缩光盘(CD-ROM)、硬盘、存储器、网络、或者由适当的驱动或者通过适当的连接而读出的便携介质,包括如存储在一个或多个这种计算机可读介质中的编码为一个或多个条形码或者其他相关编码,并且可以适当的读出设备而读出。
进一步地,在一些实施例中,一些或所有的方法和/或功能性可以以其他方式来实施或提供,诸如至少部分地以固件和/或硬件的形式,包括但不限于一个或多个专用集成电路(ASIC)、数字信号处理器、分立电路装置、逻辑门、标准集成电路、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等、以及采用RFID技术的器件、及其各种组合。
已经描述了各种实施例。本领域技术人员将能想到各种更改例和修改例。具体地,基于以上说明,本领域技术人员有能力将上述步骤合并在AES算法的轮处理中。最后,基于上述功能指示,本领域技术人员有能力进行上述各个实施例的实践实施。
这种更改例、修改例和改进例意在作为本公开的一部分,并且意在被包括在本公开的精神和范围之内。因此,以上说明仅仅是示例性的,而非意在是限制性的。
上述各个实施例可以被组合,以提供另外的实施例。如果需要采用各种专利、应用和出版物的概念,实施例的各个方面可以被修改,以提供另外的实施例。
可以基于上述详细说明,对各个实施例进行这些以及其他改变。总体上,在所附权利要求书中,所使用的术语不应被解释为是将权利要求书限制于在说明书和权利要求书中公开的具体实施方式,而应被解释为包括要求权利的这种权利要求的等同物的完整范围的所有可能的实施例。因此,权利要求书并不被本公开限制。

Claims (24)

1.一种保护加密算法的方法,包括:
通过如下步骤,在电子电路处理数据期间保护所述电子电路免受边信道攻击:
将被处理的数据的每个块用第一掩码进行掩码;
将基于第一代换盒的非线性块代换运算应用于掩码的所述数据;以及
用第二掩码将所述非线性块代换运算的所述应用的结果进行去掩码,其中在应用所述非线性代换运算之前逐块地再计算所述代换盒,所述代换盒的所述块的处理的顺序经受随机置换,并且所述代换盒的所述再计算使用所述第二掩码以及第三掩码和第四掩码,所述第三掩码和所述第四掩码的组合等于所述第一掩码。
2.根据权利要求1所述的方法,包括:
对于在所述第一代换盒中的每个块,接续地:
将当前块的秩提交至所述置换,并且将所述当前块的所述秩的所述置换的结果与所述第三掩码组合;以及
将第二代换盒的所述当前块用所述第二掩码与所述第一代换盒的通过所述当前块的所述秩的所述置换的结果识别的块的组合代替;以及
对于在所述第二代换盒中的每个块,接续地:
将当前块的秩提交至所述置换,并且将所述当前块的所述秩的所述置换的结果与所述第四掩码组合;以及
将第一代换盒的所述当前块用所述第二代换盒的通过所述当前块的所述秩的所述置换的结果识别的块代替。
3.根据权利要求1所述的方法,包括:
对于在所述第一代换盒中的每个块,接续地:
在第一步骤中,将所述置换应用于当前块的秩,将所述当前块的所述秩的所述置换的结果与所述第一掩码组合,并且将所述组合的结果存储在第一变量中;
在第二步骤中,将所述第二掩码与所述第一代换盒的具有应用于所述当前块的所述秩的所述置换的结果的秩的块的组合的结果存储在第二变量中;以及
将所述第二变量存储在第二代换盒的具有所述第一变量的秩的块中;以及
对于在所述第二代换盒中的每个块,接续地:
在第三步骤中,将所述置换应用于当前块的秩,将所述当前块的所述秩的所述置换的结果与所述第二掩码组合,并且将所述组合的结果存储在所述第一变量中;
在第四步骤中,将所述第二代换盒的具有被应用于所述当前块的所述秩的所述置换的结果的秩的所述块存储在所述第二变量中;以及
将所述第二变量存储在所述第一代换盒的具有所述第一变量的秩的块中。
4.根据权利要求2所述的方法,其中所述第一代换盒是再计算的所述代换盒。
5.根据权利要求1所述的方法,包括:
将所述第一代换盒的所述块拷贝到第二代换盒中;
对于在所述第二代换盒中的每个块,接续地:
将当前块的秩提交至所述置换,并且将所述秩的所述置换的结果与所述第三掩码组合;以及
将所述第一代换盒的所述当前块用所述第二掩码与所述第二代换盒的通过所述秩的所述置换的结果识别的块的组合代替;以及
对于在所述第一代换盒中的每个块,接续地:
将当前块的秩提交至所述置换,并且将所述秩的所述置换的结果与所述第四掩码组合;以及
将所述第二代换盒的所述当前块用所述第一代换盒的具有所述当前块的所述秩的所述置换的结果的秩的块代替。
6.根据权利要求1所述的方法,包括:
将所述第一代换盒的所述块拷贝到第二代换盒中;
对于所述第二代换盒中的每个块,接续地:
在第一步骤中,将所述置换应用于当前块的秩,将所述秩的所述置换的结果与所述第一掩码组合,并且将所述组合存储在第一变量中;
在第二步骤中,将所述第二掩码与第二代换盒的具有所述当前块的所述秩的所述置换的结果的秩的块的组合的结果存储在第二变量中;以及
将所述第二变量存储在第一代换盒的具有所述第一变量的秩的块中;以及
对于在所述第一代换盒中的每个块,接续地:
在第三步骤中,将所述置换应用于当前块的秩,将所述当前秩的所述置换的结果与所述第二掩码组合,并且将所述组合存储在所述第一变量中;
在第四步骤中,将所述第一代换盒的具有所述当前秩的所述置换的结果的秩的所述块存储在所述第二变量中;以及
将所述第二变量存储在所述第二代换盒的具有所述第一变量的秩的块中。
7.根据权利要求5所述的方法,其中所述第二代换盒是再计算的所述代换盒。
8.根据权利要求1所述的方法,其中所述掩码是随机数。
9.根据权利要求1所述的方法,其中所述掩码具有与块相同的大小。
10.根据权利要求1所述的方法,其中所述组合是XOR型的。
11.根据权利要求1所述的方法,其中所述处理包括应用高级加密标准(AES)算法。
12.根据权利要求1所述的方法,其中所述处理包括将Rijndael型算法应用于所述数据。
13.一种用于保护加密算法的装置,包括:
一个或多个寄存器;以及
电路装置,耦合至所述一个或多个寄存器,所述电路装置在操作时通过如下步骤,在所述装置处理数据期间保护所述装置免受边信道攻击:
将被处理的数据的每个块用第一掩码进行掩码;
将基于第一代换盒的非线性块代换运算应用于掩码的所述数据;以及
用第二掩码将所述非线性块代换运算的所述应用的结果进行去掩码,其中在应用所述非线性代换运算之前将所述代换盒逐块地再计算,所述代换盒的所述块的处理的顺序经受随机置换,并且所述代换盒的所述再计算使用所述第二掩码以及第三掩码和第四掩码,所述第三掩码和所述第四掩码的组合等于所述第一掩码。
14.根据权利要求13所述的装置,其中保护所述装置免受边信道攻击包括:
对于在所述第一代换盒中的每个块,接续地:
将当前块的秩提交至所述置换,并且将所述当前块的所述秩的所述置换的结果与所述第三掩码组合;以及
将第二代换盒的所述当前块用所述第二掩码与所述第一代换盒的通过所述当前块的所述秩的所述置换的结果识别的块的组合代替;以及
对于在所述第二代换盒中的每个块,接续地:
将当前块的秩提交至所述置换,并且将所述当前块的所述秩的所述置换的结果与所述第四掩码组合;以及
将所述第一代换盒的所述当前块用所述第二代换盒的通过所述当前块的所述秩的所述置换的结果识别的块代替。
15.根据权利要求13所述的装置,其中保护所述装置免受边信道攻击包括:
对于在所述第一代换盒中的每个块,接续地:
将所述置换应用于当前块的秩,将所述当前块的所述秩的所述置换的结果与所述第一掩码组合,并且将所述组合的结果作为第一变量的值存储在所述一个或多个寄存器中;
将所述第二掩码与所述第一代换盒的具有应用于所述当前块的所述秩的所述置换的结果的秩的块的组合的结果作为第二变量的值存储在所述一个或多个寄存器中;以及
将所述第二变量的值存储在第二代换盒的具有所述第一变量的值的秩的块中;以及
对于在所述第二代换盒中的每个块,接续地:
将所述置换应用于当前块的秩,将所述当前块的所述秩的所述置换的结果与所述第二掩码组合,并且将所述组合的结果作为所述第一变量的值存储在所述一个或多个寄存器中;
将所述第二代换盒的具有应用于所述当前块的所述秩的所述置换的结果的秩的所述块作为所述第二变量的值存储在所述一个或多个寄存器中;以及
将所述第二变量的值存储在所述第一代换盒的具有所述第一变量的值的秩的块中。
16.根据权利要求14所述的装置,其中再计算的所述代换盒是所述第一代换盒。
17.根据权利要求13所述的装置,其中保护所述装置免受边信道攻击包括:
将所述第一代换盒的所述块拷贝到第二代换盒中;
对于在所述第二代换盒中的每个块,接续地:
将当前块的秩提交至所述置换,并且将所述秩的所述置换的结果与所述第三掩码组合;以及
将所述第一代换盒的所述当前块用所述第二掩码与所述第二代换盒的通过所述秩的所述置换的结果识别的块的组合代替;以及
对于在所述第一代换盒中的每个块,接续地:
将当前块的秩提交至所述置换,并且将所述秩的所述置换的结果与所述第四掩码组合;以及
将所述第二代换盒的所述当前块用所述第一代换盒的具有所述当前块的所述秩的所述置换的结果的秩的块代替。
18.根据权利要求13所述的装置,其中保护所述装置免受边信道攻击包括:
将所述第一代换盒的所述块拷贝到第二代换盒中;
对于所述第二代换盒中的每个块,接续地:
将所述置换应用于当前块的秩,将所述秩的所述置换的结果与所述第一掩码组合,并且将所述组合作为第一变量的值存储在所述一个或多个寄存器中;
将所述第二掩码与所述第二代换盒的具有所述当前块的所述秩的所述置换的结果的秩的块的组合的结果作为第二变量的值存储在所述一个或多个寄存器中;以及
将所述第二变量的值存储在所述第一代换盒的具有所述第一变量的值的秩的块中;以及
对于在所述第一代换盒中的每个块,接续地:
将所述置换应用于当前块的秩,将所述秩的所述置换的结果与所述第二掩码组合,并且将所述组合作为所述第一变量的值存储在所述一个或多个寄存器中;
将所述第一代换盒的具有所述秩的所述置换的结果的秩的所述块作为所述第二变量的值存储在所述一个或多个寄存器中;以及
将所述第二变量的值存储在所述第二代换盒的具有所述第一变量的值的秩的块中。
19.根据权利要求17所述的装置,其中所述第二代换盒是再计算的所述代换盒。
20.根据权利要求13所述的装置,其中所述掩码是具有与块相同的大小的随机数,并且所述组合是XOR型的。
21.根据权利要求13所述的装置,包括集成电路,所述集成电路包括所述电路装置和所述一个或多个寄存器。
22.一种用于保护加密算法的系统,包括:
总线系统;以及
电路装置,耦合至所述总线系统,所述电路装置在操作时通过如下步骤,保护免受边信道攻击:
将被处理的数据的每个块用第一掩码进行掩码;
将基于第一代换盒的非线性块代换运算应用于掩码的所述数据;以及
用第二掩码将所述非线性块代换运算的所述应用的结果进行去掩码,其中在应用所述非线性代换运算之前将所述代换盒逐块地再计算,所述代换盒的所述块的处理的顺序经受随机置换,并且所述代换盒的所述再计算基于所述第二掩码以及第三掩码和第四掩码,所述第三掩码和所述第四掩码的组合等于所述第一掩码。
23.根据权利要求22所述的系统,包括集成电路,所述集成电路包括所述电路装置。
24.根据权利要求23所述的系统,其中所述集成电路包括多个寄存器,并且保护免受边信道攻击包括:将变量存储到所述多个寄存器中。
CN201610114598.6A 2015-09-02 2016-02-29 Rijndael算法的保护 Active CN106487499B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1558114 2015-09-02
FR1558114A FR3040513B1 (fr) 2015-09-02 2015-09-02 Protection d'un algorithme de rijndael

Publications (2)

Publication Number Publication Date
CN106487499A CN106487499A (zh) 2017-03-08
CN106487499B true CN106487499B (zh) 2019-12-17

Family

ID=55135271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610114598.6A Active CN106487499B (zh) 2015-09-02 2016-02-29 Rijndael算法的保护

Country Status (4)

Country Link
US (1) US10187198B2 (zh)
EP (1) EP3139363B1 (zh)
CN (1) CN106487499B (zh)
FR (1) FR3040513B1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547190A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 用于保护使用替换表的替换运算免受侧信道分析的方法
EP3422176A1 (en) * 2017-06-28 2019-01-02 Gemalto Sa Method for securing a cryptographic process with sbox against high-order side-channel attacks
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
US11190336B2 (en) * 2019-05-10 2021-11-30 Sap Se Privacy-preserving benchmarking with interval statistics reducing leakage
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1761185A (zh) * 2005-11-18 2006-04-19 清华大学 乱序执行的数据流aes加密电路结构

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US7403620B2 (en) * 2002-07-02 2008-07-22 Stmicroelectronics S.A. Cyphering/decyphering performed by an integrated circuit
JP4357815B2 (ja) * 2002-09-11 2009-11-04 株式会社東芝 暗号演算回路
FR2871969B1 (fr) * 2004-06-18 2006-12-01 Sagem Procede et dispositif d'execution d'un calcul cryptographique
CN101542558A (zh) * 2007-05-30 2009-09-23 松下电器产业株式会社 加密装置、解密装置、加密方法及集成电路
JPWO2009072547A1 (ja) * 2007-12-05 2011-04-28 日本電気株式会社 サイドチャネル攻撃耐性評価装置、方法及びプログラム
FR2941342B1 (fr) * 2009-01-20 2011-05-20 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve.
EP2509252B1 (fr) * 2011-04-08 2016-08-10 STMicroelectronics (Rousset) SAS Procédé de calcul cryptographique sécurisé, en particulier contre des attaques du type DFA et unidirectionnelles, et composant correspondant
FR2974693B1 (fr) * 2011-04-26 2013-04-26 Cassidian Sas Procede pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit integre logique mettant en oeuvre un tel procede.
FR2985624B1 (fr) * 2012-01-11 2014-11-21 Inside Secure Procede de chiffrement protege contre des attaques par canaux auxiliaires
US9118441B2 (en) 2013-01-25 2015-08-25 Freescale Semiconductor, Inc. Layout-optimized random mask distribution system and method
US20160105276A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Rotation-based cipher

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1761185A (zh) * 2005-11-18 2006-04-19 清华大学 乱序执行的数据流aes加密电路结构

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Multi-Variate High-Order Attacks of Shuffled Tables Recomputation》;Nicolas BRUNEAU;《TELECOM-ParisTech, Crypto Group》;20150828;1,4,5.1节 *
《功耗攻击防御技术在分组密码中的应用研究》;袁征;《中国优秀硕士学位论文全文数据库》;20130630;第5.3.1节 *

Also Published As

Publication number Publication date
CN106487499A (zh) 2017-03-08
EP3139363A1 (fr) 2017-03-08
EP3139363B1 (fr) 2019-04-17
US20170063524A1 (en) 2017-03-02
FR3040513B1 (fr) 2018-11-16
FR3040513A1 (fr) 2017-03-03
US10187198B2 (en) 2019-01-22

Similar Documents

Publication Publication Date Title
CN106487499B (zh) Rijndael算法的保护
CN106487497B (zh) 对rijndael算法的dpa保护
CN106487498B (zh) 电子电路对边信道攻击的抵抗的检验
US11733966B2 (en) Protection system and method
US11362802B2 (en) Cryptographic device arranged to compute a target block cipher
JP5892887B2 (ja) サイドチャネル攻撃に対抗する方法
US8094816B2 (en) System and method for stream/block cipher with internal random states
KR20180002065A (ko) 부채널 분석에 대응한 보호 방법 및 장치
US9898623B2 (en) Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product
US9418246B2 (en) Decryption systems and related methods for on-the-fly decryption within integrated circuits
JP7076482B2 (ja) Sboxを有する暗号プロセスを高次サイドチャネル攻撃からセキュアにする方法
US9760737B2 (en) Techniques for integrated circuit data path confidentiality and extensions thereof
CN108141352B (zh) 密码设备、方法、装置和计算机可读介质和编码设备、方法、装置和计算机可读介质
US8582757B2 (en) Protection of a ciphering algorithm
CN113273131A (zh) 使用共享的份额的计算设备
US11775691B2 (en) Data processing device and method for processing secret data
EP3286869B1 (en) High-speed aes with transformed keys
KR101203474B1 (ko) 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법
EP3484095A1 (en) Computer-implemented cryptographic method and device for implementing this method
US20220414268A1 (en) Protection of data processed by an encryption algorithm
US20230017265A1 (en) Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product
US10678709B2 (en) Apparatus and method for memory address encryption

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant