CN115549892A - 由加密算法处理的数据的保护 - Google Patents

由加密算法处理的数据的保护 Download PDF

Info

Publication number
CN115549892A
CN115549892A CN202210764728.6A CN202210764728A CN115549892A CN 115549892 A CN115549892 A CN 115549892A CN 202210764728 A CN202210764728 A CN 202210764728A CN 115549892 A CN115549892 A CN 115549892A
Authority
CN
China
Prior art keywords
register
contents
round
mask
cryptographic
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.)
Pending
Application number
CN202210764728.6A
Other languages
English (en)
Inventor
S·兰德里
Y·林格
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.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
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 STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Publication of CN115549892A publication Critical patent/CN115549892A/zh
Pending 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/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
    • 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
    • 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/72Protecting 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 cryptographic circuits
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本公开的实施例涉及由加密算法处理的数据的保护。本公开涉及一种由处理器执行的用于保护应用于加密算法的第一数据项的方法,其中所述算法是每轮次算法,每个轮次处理第一,第二和第三寄存器的内容,第二寄存器的内容在第一奇偶校验轮次期间由第四寄存器的内容掩蔽,并且第三寄存器的内容在第二奇偶校验轮次期间由第五寄存器的内容掩蔽。

Description

由加密算法处理的数据的保护
技术领域
本公开一般涉及数据保护,更具体地,涉及通过块加密算法的数据加密处理。
背景技术
以连续的轮次执行块加密算法。在每个轮次中,对要加密的数据块执行密码操作。密码操作还取决于加密密钥,加密密钥本身取决于其在轮次中的位置。
然而,块加密算法对侧信道攻击敏感。这些攻击包括利用诸如处理器的算法计算或执行时间,其中执行算法的电子装置的功耗的信息。然后攻击者推导出算法所使用的至少部分数据的值(例如加密密钥)。这种类型的攻击的对策包括掩蔽由算法处理的输入数据。
发明内容
在一个实施例中,一种方法包括:使用密码电路装置执行密码操作;以及使用所述密码电路装置来保护在所述执行期间应用于所述密码操作的第一数据项。执行和保护包括:执行多个轮次中的密码操作,每个轮次处理第一、第二和第三寄存器的内容;在所述多个轮次的第一奇偶校验轮次期间使用第四寄存器的内容掩蔽所述第二寄存器的内容;以及在所述多个轮次的第二奇偶校验轮次期间使用第五寄存器的内容来掩蔽所述第三寄存器的内容。
在一个实施例中,一种装置包括:多个寄存器;以及密码电路装置,耦合到所述多个寄存器,其中所述密码电路装置在操作中:执行密码操作;以及在执行密码操作期间保护第一数据项。执行和保护包括:在多个轮次中执行所述密码操作,每个轮次处理所述多个寄存器中的第一寄存器、第二寄存器和第三寄存器的内容;在所述多个轮次的第一奇偶校验轮次期间使用所述多个寄存器的第四寄存器的内容掩蔽所述第二寄存器的内容;以及在所述多个轮次的第二奇偶校验轮次期间使用所述多个寄存器的第五寄存器的内容来掩蔽所述第三寄存器的内容。
在一个实施例中,一种系统包括:存储器;以及密码电路装置,耦合到所述存储器并且包括多个寄存器,其中所述密码电路装置在操作中:执行密码操作;以及在执行密码操作期间保护第一数据项。执行和保护包括:在多个轮次中执行所述密码操作,每个轮次处理所述多个寄存器中的第一、第二和第三寄存器的内容;在所述多个轮次的第一奇偶校验轮次期间使用所述多个寄存器的第四寄存器的内容掩蔽所述第二寄存器的内容;以及在所述多个轮次的第二奇偶校验轮次期间使用所述多个寄存器的第五寄存器的内容来掩蔽所述第三寄存器的内容。
在一个实施例中,一种非暂态计算机可读介质具有使密码电路装置执行方法的内容,该方法包括:执行密码操作;以及在所述密码操作的执行期间保护第一数据项,其中执行和保护包括:执行多个轮次中的密码操作,每个轮次处理第一、第二和第三寄存器的内容;在所述多个轮次的第一奇偶校验轮次期间使用第四寄存器的内容掩蔽所述第二寄存器的内容;以及在所述多个轮次的第二奇偶校验轮次期间使用第五寄存器的内容来掩蔽所述第三寄存器的内容。
附图说明
前述特征和优点以及其他特征和优点将在以下具体实施例的描述中参考附图以说明而非限制的方式给出,在附图中:
图1示出了所述实施例可以应用的类型的电子装置的示例;
图2A示出了示意性地并以框图形式示出所述方法的一个实施例的示例;
图2B以框图形式示出了示意性描述的方法的一个实施例的另一示例;
图3是示出所述方法的一个实施例的步骤的流程图;
图4是示出所描述的实施例可以应用的类型的加密算法的一个示例的框图;以及
图5是示出通过图4所示的算法应用所述实施例的一个示例的框图。
具体实施方式
在各个附图中相同的特征由相同的附图标记表示。特别地,在各个实施例中共同的结构和/或功能特征可以具有相同的附图标记并且可以设置相同的结构,尺寸和材料特性。
为了清楚起见,仅对可用于理解本文所述实施例的操作和元件进行了详细说明和描述。具体地,没有详细描述适用于该实施例的电子电路(处理器,存储器或状态机)。所描述的实施例与通常的电子电路的使用兼容。
除非另有说明,当提及连接在一起的两个元件时,这表示除了导体之外没有任何中间元件的直接连接,并且当提及耦合在一起的两个元件时,这表示这两个元件可以被连接或者它们可以经由一个或多个其它元件被耦合。
在以下公开中,除非另有说明,当提及绝对位置限定词时,例如术语“前”,“后”,“顶”,“底”,“左”,“右”等,或提及相对位置限定词时,例如术语“上”,“下”,“较高”,“较低”等,或提及取向限定词时,例如“水平”,“垂直”等,是指图中所示的取向。
除非另有说明,否则表述“约”,“大约”,“基本上”和“以…量级”表示在10%以内和在5%以内。
图1示出了所述实施例可以应用的类型的示例电子装置10。
电子装置10包括集成电路11。
电路11包括处理器12(CPU),其例如经由一个或多个地址、数据和/或命令总线18耦合到一个或多个易失性或非易失性存储器、例如易失性存储器14(RAM)和非易失性存储器13(NVM)、例如闪存。处理器12还操作其它存储部件,特别是寄存器(块17,REGISTERS)。在预期的应用中,总线18还将电路11的内部电路连接到输入/输出接口15(I/O INTERFACE)和一个或多个随机数生成器16(RN GENERATOR)。由电路11可以实现其它功能(未示出)。
处理器12被配置成执行例如由存储在非易失性存储器13中的指令代码描述的加密算法。
随机数生成器16是伪随机数生成器,例如线性同余生成器,其使用具有无序行为并且具有足够长的周期以表现为随机的递归算术序列。这种生成器的质量尤其取决于所使用的算术参数。根据另一实施例,生成器16是使用随机物理源的随机数生成器,该随机物理源例如基于其上实现该生成器的材料的固有性质。
根据所描述的实施例,存储在易失性存储器14中的数据例如旨在由加密算法来加密。该算法是块对称加密算法,诸如高级加密标准(AES)类型的算法,或从SMS4算法导出的SM4类型的算法(来自中文shangyèMima的首字母SM,用英语含义为“商业密码”)。
当使用块算法加密时,要加密的数据被划分为相同大小的比特块,用于AES或SM4的128比特块。然后,该算法使用置换盒(SBOX)执行一系列轮次,每个轮次应用所谓的混淆步骤。置换盒由一个求逆操作和至少一个线性操作组成。然后该算法执行由线性操作组成的扩散步骤。在每个算法轮次中,使用例如存储在电路11的非易失性存储器13中的从单个加密密钥导出的子密钥。由于算法是对称的,所以单个加密密钥使得加密和解密数据成为可能。
块加密对侧信道攻击敏感。侧信道攻击通过接口15从电路11提取数据,例如通过解释诸如功耗、计算时间或电磁辐射的信息。作为示例,这种攻击可以包括将执行该算法的集成电路的功耗与涉及该算法所使用的加密密钥的计算结果相关联。
对这种类型的攻击的对策可以包括通过将待加密的数据与例如由随机数生成器16生成的随机数据(掩码)相加或相乘来掩蔽该数据。因此,数据从不单独由加密算法处理。然而,如果攻击者执行二阶攻击,例如组合在密码算法执行期间在电路上观察到的两个电流消耗测量,则攻击者可以恢复经掩蔽的数据以及掩码。然后,他可以“去除”敏感数据(不希望使其可见)。此外,如果不被控制,则电路的转换状态可以包含由算法进行的数据处理的中间状态,使得攻击者可以推导出所述数据的值。这种现象被称为“假信号”。
所描述的实施例针对二阶侧信道攻击提供了新的对策。
图2A、图2B和图3示出了表示电路11的寄存器的框,在寄存器内容上发生的每个步骤中,其内容被覆写并且由新内容替换。
图2A示意性地并且以方框的形式示出了说明所述方法的实施例的示例。
图2A示出了根据一个实施例的一轮加密算法的一部分的示例。构成要加密的数据或明文的字或代码x由算法处理用于加密。字或代码x包含给定数目的比特,例如在AES型算法的情况下为128比特。
为了防止明文在侧信道攻击期间被恢复,在执行算法之前,明文被第一掩码R1掩蔽。例如,第一掩码R1是由生成器16生成的128位随机值。
对应于字x乘以第一掩码R1的模不可约多项式P的算法的第一输入数据项x.R1存储在第一寄存器20中。作为示例,当所执行的算法是AES类型时,所考虑的多项式P是所谓的Rijndael多项式,并且由下式定义
数学1
P[X]=X8+X4+X3+X+1
以这种方式,算法从不单独处理字x。然而,如果该算法处理第一掩码R1,则对第一输入数据x.R1和第一掩码R1的二阶攻击使得攻击者能够恢复字x。
根据一个实施例,存储在第二寄存器21中的第二输入数据项表示第二掩码R2。第三输入数据项R1.R3存储在第三寄存器22中,第三输入数据项R1.R3示出了由第三掩码R3掩蔽的第一掩码R1。第二和第三输入是例如由算法执行上游的生成器16生成的128位随机值。第三掩码R3存储在寄存器23中。
因此,该算法不“单独”处理第一掩码R1。
作为示例,第一掩码R1的值在由生成器16生成之后经由总线18被直接发送到处理器12,以对明文x进行掩蔽而不存储在电路11的任何存储器中。这避免了在电路11中携带掩码R1。
为了恢复明文x,攻击者必须组合第一输入数据x.R1和第三输入数据R1.R3以及第三掩码R3。二阶攻击则不足以恢复明文x。
一旦第一、第二和第三输入数据项x.R1、R2和R1.R3被提供给算法,算法轮次的步骤28(INV)包括将第一输入数据项x.R1对所考虑的多项式求模、求逆为幂2n的有限域,其中n表示多项式P的幂。通过应用步骤28,第一输入数据项x.R1的逆构成数据项(x.R1)-1=x 1.R1-1,并且被存储在寄存器20中,覆写第一输入数据项x.R1,其然后不再出现在电路11中。
在另一步骤中,生成器16生成存储在寄存器24中的第四掩码R4。根据一个实施例,数据项R2.R4是通过用第四掩码R4对第二输入数据R2进行掩蔽而获得的,并且被存储在寄存器21中,覆写第二输入数据R2。
在步骤28和获得数据R2.R4之后,通过用数据R2.R4和数据R1.R3掩蔽数据x-1.R1-1来获得第一中间数据项x-1.R2.R3.R4。第一中间数据项x-1.R2.R3.R4存储在寄存器20中,覆写数据x-1.R1-1
包含在寄存器21中的数据R2.R4构成第二中间数据。寄存器22和23的内容(因此第三输入数据R1,R3和第三掩码R3)不被修改。第三中间数据项对应于第三输入数据R1.R3。
第一中间数据项x-1.R2.R3.R4构成将在图4和5中详细描述的其它加密算法步骤的输入数据。例如,第二中间数据项R2.R4和第三中间数据项R1.R3以及掩码R3保持存储在寄存器21、22和23中,用于随后对加密文本解除掩码。
图2B示意性地并且以框图形式示出了说明所描述的方法的实施例的另一示例。
图2B所示的实施例类似于图2A的实施例,除了第四掩码R4由存储在寄存器25中的第五掩码R5代替。第五掩码R5被施加到第三输入数据R1.R3而不再施加到第二输入数据R2。然后获得数据项R1.R3.R5并且将其存储在寄存器22中,覆写第三输入数据R1.R3。第一中间数据项x-1.R2.R3.R5是通过用第二输入数据R2和数据R1.R3.R5对包含在寄存器20中的数据x-1R1-1掩蔽而获得的。第一中间数据项x-1.R2.R3.R5存储在寄存器20中,覆写数据x 1.R1-1
在该实施例中,寄存器21的内容(因此第二输入数据R2)不被修改,第二数据R2构成第二中间数据项。数据R1.R3.R5构成第三中间数据项。
如图2B所示,第一中间数据x-1.R2.R3.R5构成用于将在图4和5中详细描述的其它加密算法步骤的输入数据。第二和第三中间数据R2和R1.R3.R5以及第三掩码R3保持存储在相应的寄存器中,用于随后对加密文本解除掩码。
作为示例,第一算法轮次按照惯例被排序为1(或者更一般地,排序为奇数),然后在通过轮次执行加密算法期间,在排序为奇数的轮次期间应用图2A所示的实施例,并且在那些排序为偶数的轮次期间应用图2B所示的实施例。对于每个奇数排序的轮次,由生成器16生成掩码R4,并且将其存储在例如寄存器24中,然后用于对该轮次的第二输入数据进行掩蔽。对于每个偶数排序的轮次,由生成器16生成另一掩码R5,并且将其存储在寄存器25中,然后用于对该轮次的第三输入数据进行掩蔽。
在算法的第一轮按照惯例排序为0(或更一般地,排序为偶数)的情况下,图2A所示的实施例在偶数排序的轮次期间应用,而图2B所示的实施例在奇数排序的轮次期间应用。
图3是示出所述方法的一个实施例的步骤的流程图。
图3描述了按照惯例排列奇数的算法的第一轮。
例如,加密算法的第一轮次(ROUND1)开始于步骤30。步骤30遵循图2A所示的关于寄存器20,21和22的内容的实施例。寄存器20包含数据项x.R1。寄存器21包含数据项R2。寄存器22包含数据项R1.R3。在第一轮期间,由生成器16生成掩码R4并将其存储在寄存器24中。按照图2A所示的实施例,寄存器20,21和22(图3中块30的右列)分别包含数据x 1.R2.R3.R4,R2.R4和R1.R3。
在步骤31(其它密码操作)中,在步骤30之后,将所使用的加密算法专用的密码操作应用于寄存器20的内容,然后用数据项y.R2.R3.R4来覆写内容。
算法的第二轮次(ROUND2)在步骤32开始,例如在步骤31之后。步骤32遵循图2B所示的实施例。然而,该轮的输入数据对应于寄存器20,21,22和23的当前内容,即量y.R2.R3.R4,R2.R4,R1.R3和R3。
然后,在步骤28的一个实施例中,求逆数据y.R2.R3.R4,并且将数据项(y.R2.R3.R4)-1存储在寄存器20中,覆写数据y.R2.R3.R4。
第五掩码R5由随机数生成器16生成并且存储在寄存器25中。第五掩码R5用于对寄存器22(R1.R3)的内容进行掩蔽,以获得数据项R1.R3.R5。数据R1.R3.R5存储在寄存器22中,覆写已经存储在那里的数据R1.R3。
寄存器21和22的内容然后被用于掩蔽寄存器20的内容((y.R2.R3.R4)-1)。由此获得数据项y-1.R1.R5并将其存储在寄存器20中,覆写数据(y.R2.R3.R4)-1。寄存器20的内容不再依赖于在算法的第一轮次期间生成的第四掩码R4。
算法的第二轮次继续执行步骤31,例如再次对寄存器20的内容执行。
在发生第三算法轮次的情况下,由生成器16生成的掩码R4的新值被存储在寄存器24中,其覆写先前的值。该新值用于例如以结合图2A或块30描述的方式掩蔽寄存器21的内容。
根据一个实施例,由生成器16生成的值被用在交替轮次中以掩蔽寄存器21的内容或寄存器22的内容。
根据一个实施例,寄存器23的内容(R3)在算法的整个过程中保持相同。
根据实施例,算法执行多个轮次,并且在最后轮次之后寄存器20配备掩蔽结果y。掩码取决于最后轮次的奇偶校验并且是寄存器21的内容与掩码R3的乘法组合或寄存器22的内容与掩码R3的逆值的乘法组合。为了获得结果y的值,寄存器20的内容被取消掩蔽。取消掩蔽通过寄存器20的内容与寄存器21和23的内容的逆值的乘法组合执行、或是通过寄存器20的内容与寄存器22和23的内容的逆值的乘法组合执行。允许取消掩蔽的乘法组合取决于最后轮次的奇偶校验。
图4是示出所描述的实施例应用的类型的加密算法的示例的框图。
更具体地,图4通过简化的流程图示出AES型算法的主要步骤。将仅描述加密,以及使用逆变换的解密。对于更多的细节,可以参考由Springer-Verlag(ISBN3-540-42580-2)出版的由Joan Daemen以及Vincent Rijmen的书“the design of Rijndael”和AES标准(FIPS PUB 197)。
该算法将确定比特数(128比特)的明文S0加密为相同大小的加密文本Sn。加密和解密基于其长度(128,192或256比特)确定算法轮次数(分别为10,12或14轮次)的秘密密钥。
根据一个实施例,AES类型算法被应用于被截断为字节的128比特明文,这对应于最常见的情况。
实际上,AES类型的算法的每个步骤处理表示字的四行和四列的阵列,其中每个元素是字节。为了简化下面的描述,对于每个步骤,将参考被认为是阵列的状态。
为了实现加密或解密算法,根据128,192或256位密钥,生成n个子密钥,包括128位,其中n等于11,13或15,这取决于密钥的大小。每个子密钥旨在由算法在一轮次期间使用。
该方法开始于明文的初始状态(方框40,STATE INIT)S0
加密方法的第一阶段是包括使初始状态S0与第一子密钥K0进行异或(XOR)组合的操作(块41,ADDROUNDKEY)。获得第一中间状态S1。
加密方法的第二阶段包括执行数个轮次相同的变换T,在每个轮次涉及在前一轮次中获得的状态Si-1和当前子密钥Ki。变换轮数T对应于n-1,被减少2的导出子密钥的数目n+1。
每轮变换T由四个操作组成,依次应用。
轮次变换T的第一操作(框42,SUBBYTES)构成非线性变换,其中构成当前状态的阵列的每个字节由其图像代替,该图像通常取自替换框(SBOX),预先计算或动态计算。例如,通过两个组合变换来获得替代框SBOX。第一变换(图2A和2B的框28,INV)包括将28次幂的有限域中考虑的字节取模不可约多项式P,其中字节00构成其自身的映像。例如,该求逆之后是仿射变换。
第二操作(框43,SHIFTROWS)包括旋转最后三个阵列行。第一阵列行保持不变。第二行经历一个字节的旋转。第三行经历两字节旋转。第四行经历三字节旋转。
根据一些实施例,第二操作可以在第一操作之前执行。
轮次变换T的第三运算(块44,MIXCOLUMNS)包括将来自第一和第二运算的每个阵列列视为四项多项式,并且将这些多项式中的每项乘以多项式M,以另一多项式Q为模。
位置i的轮次变换T的第四和最后操作(块45,ADDROUNDKEY)包括将子密钥Ki应用于由先前操作生成的阵列。每个阵列字节通过异或与子密钥Ki组合。该操作45与第一加密阶段的操作41相同,但是用不同的子密钥来执行。
在操作45结束时,对于位置i轮获得状态Si+1=T(Ki+1,Si)。轮次变换T的四个操作被重复n-1次,在操作45之后,我们返回到操作42以利用下一子密钥再次执行轮次。
AES加密算法的第三阶段包括重复除第三阶段之外的轮次变换操作(块44,MIXCOLUMNS)。在图4中,后一轮由重复先前描述的块42,43和45的操作的块46,47和48示出,其中最后一个子密钥Kn作为用于操作48的密钥。
然后获得状态Sn=T'(Kn,Sn-1)。如果需要,该结果被格式化(框49,RESULT FORM)以供以后使用。
图5是示出由图4所示的算法描述的实施例的应用的示例的框图。
图5描述的算法的第一轮的排序通常是奇数。
具体地,图5示出了图2A、2B和3中描述的方法在AES类型的算法中的实现方式。
该方法开始于初始状态(框50,MASKED STATE INIT),其中寄存器20的内容是掩蔽明文,例如数据项x.R1。例如,寄存器21,22和23分别包含数据R2,R1.R3和R3。举例来说,包含在寄存器20,21,22和23中的数据是128位。
根据一个实施例,寄存器20,21,22和23的内容被划分为构成四行和四列的阵列的字节。为了简化下面的描述,对于每个步骤,将参考被认为是阵列的状态。
加密方法的第一阶段是对寄存器20的内容(例如第一输入数据x.R1)与第一子密钥K0进行异或(XOR)组合的操作(框41,ADDROUND_KEY)。这个新数据被存储在寄存器20中,覆盖先前的内容。
当执行结合图4所描述的通常的AES类型的算法时,第一轮以第二非线性操作开始(块51,SUBBYTES),其中当前状态阵列的每个字节由通常从替换盒(SBOX)中获取的其映像替换。替代框SBOX通常可以通过组合两个变换来获得。对于AES类型的算法,第一变换28(INV)包括取逆在28的幂的有限域中取模Rijndael多项式P所考虑的字节(包含在寄存器20中的当前状态的阵列的元素)。该求逆之后是仿射变换(框53,AFFINE)。
根据这里描述的实施例,在操作28之后并且在仿射变换之前执行中间步骤52。步骤52包括生成器16生成掩码(R4或R5),例如在该第一轮期间存储在寄存器24中,并且该掩码掩蔽寄存器21的内容。然后步骤52包括用寄存器21和22的内容掩蔽包含在寄存器20中的先前求逆的字节。在第一轮的这个阶段,寄存器20然后包含例如数据项x-1.R2.R3.R4。然后对寄存器20的内容执行仿射变换53。
用于一轮AES类型算法的通常方法在寄存器20的内容上恢复。换句话说,变换43,44和45以此顺序应用于寄存器20的内容,以便例如获得数据项y.R2.R3.R4。
举例来说,当第一算法轮次结束时,寄存器20含有数据y.R2.R3.R4,寄存器21含有数据R2.R4且寄存器22含有数据R1.R3。寄存器23和24分别包含掩码R3和R4。
该算法在步骤51重新开始。当执行第二轮次步骤52时,由生成器16生成的新掩码被存储在例如寄存器25中,并且用于对寄存器22的内容进行掩蔽。
该算法在包括操作51,43,44和45的一连串n-1轮次中按该顺序继续。每次在轮次排序的奇数期间执行步骤52时,由生成器16生成的新的随机值被存储在寄存器24中,并被用于掩蔽寄存器21的内容。每次在轮次排序的偶数期间执行步骤52时,由生成器16生成的新的随机值被存储在寄存器25中,并被用于掩蔽寄存器22的内容。
一旦第(n-1)轮已经完成,算法在操作54(SUBBYTES)中继续,在操作方面与操作51相同。操作47和48跟随操作54。
然后,寄存器20包含掩蔽的最终状态(块55,MASKED RESULT STATE)。为了获得未掩蔽的加密字,必须知道寄存器20和23(R3)的内容,以及寄存器21或22中至少一个的内容。实际上,当执行的轮数为偶数时,通过将寄存器20的内容与寄存器23的内容相乘并与寄存器22的内容的倒数相乘来获得未掩蔽的加密字。当执行的轮次数是奇数时,通过将寄存器20的内容乘以寄存器22和23的内容的倒数来获得未掩蔽的加密字。
所描述的实施例的一个优点是它们使算法抵抗二阶侧信道攻击。
所描述的实施例的另一个优点是它们不依赖于字节相乘的多项式P模。
所描述的实施例的另一个优点来自于以下事实:在每个轮次生成单个随机值,这减少了在算法执行期间使用的寄存器的数目。
所描述的实施例的另一个优点是保护了求逆操作。
已经描述了各种实施例和变型。本领域技术人员将理解,这些实施例的某些特征可以组合,并且本领域技术人员将容易想到其它变型。
最后,这里描述的实施例和变体的实际实现是在本领域技术人员基于上文提供的功能描述的能力内,特别是关于所使用的块加密算法类型以及加密算法专用的密码操作的实现。
一个实施例提供了一种用于保护应用于由处理器执行的加密算法的第一数据项的方法,其中所述算法是每轮算法,每轮处理第一,第二和第三寄存器的内容,第二寄存器的内容在第一奇偶校验轮次期间由第四寄存器内容掩蔽,并且第三寄存器的内容在第二奇偶校验轮次期间由第五寄存器内容掩蔽。
一个实施例提供一种实施经配置以保护第一数据项的每个轮次加密算法的处理器,其中每个轮次处理第一,第二和第三寄存器的内容,第二寄存器的内容在第一奇偶校验轮次期间由第四寄存器内容掩蔽,且第三寄存器内容在第二奇偶校验轮次期间由第五寄存器内容掩蔽。
根据一个实施例,第一轮次的第一,第二和第三寄存器的内容分别是:
所述第一数据项,由第一掩码掩蔽;
第二掩码;以及
第一掩码,被第三掩码掩蔽。
根据一个实施例,在执行最后轮次之后的第一寄存器内容提供将算法应用于第一数据项的结果。
根据一个实施例,对于每个第一奇偶校验轮次,由随机生成器生成第四掩码并将其存储在第四寄存器中,并且对于每个第二奇偶校验轮次,由生成器生成第五掩码并将其存储在第五寄存器中。
根据一个实施例,对于每个轮次,
a)将第一寄存器内容求逆模素数多项式;则
b)第一寄存器内容被第二和第三寄存器的内容掩蔽。
根据一个实施例,对于每个轮次,在步骤a)和b)之后,对第一寄存器的内容执行密码操作。
根据一个实施例,对于每个轮次,第一寄存器内容的求逆由盒通过阈值实现来实现。
根据一个实施例,计算第一寄存器内容的逆的素数多项式模取决于所实现的算法。
根据一个实施例,第一奇偶校验轮次是排序为奇数的轮次,第二奇偶校验轮次是排序为偶数的轮次。
根据一个实施例,第一奇偶校验轮次是排序为偶数的轮次,第二奇偶校验轮次是排序为奇数的轮次。
根据一个实施例,在最后轮次的输出处,第一寄存器包含由第六掩码掩蔽的第二数据项。
根据一个实施例,第二数据项对应于第一加密数据。
根据一个实施例,第六掩码是第三掩码乘以第二寄存器的内容或第三掩码与第三寄存器的内容的逆的组合,这取决于最后轮次是第一还是第二奇偶校验。
根据一个实施例,所使用的加密算法是AES。
根据一个实施例,所使用的加密算法是SM4。
在一个实施例中,一种方法包括:使用密码电路装置执行密码操作;以及使用所述密码电路装置来保护在所述执行期间应用于所述密码操作的第一数据项。执行和保护包括:执行多个轮次中的密码操作,每个轮次处理第一,第二和第三寄存器的内容;在所述多个轮次的第一奇偶校验轮次期间使用第四寄存器的内容掩蔽所述第二寄存器的内容;以及在所述多个轮次的第二奇偶校验轮次期间使用第五寄存器的内容来掩蔽所述第三寄存器的内容。在一个实施例中,第一轮的第一,第二和第三寄存器的内容分别是:所述第一数据,由第一掩码进行掩蔽;第二掩码;以及由第三掩码掩蔽的第一掩码。在一个实施例中,在执行最后轮次之后,第一寄存器的内容提供对第一数据项应用密码操作的结果。在一个实施例中,对于每个第一奇偶校验轮次,生成随机的第四掩码并将其存储在第四寄存器中;并且对于每个第二奇偶校验轮次,生成随机第五掩码并将其存储在第五寄存器中。
在实施例中,对于每个轮次,
a)对所述第一寄存器内容求逆模素数多项式,并将所述逆内容存储在所述第一寄存器中;则
b)第一寄存器的内容被第二和第三寄存器的内容掩蔽。在一个实施例中,对于每个轮次,在步骤a)和b)之后,对第一寄存器的内容执行密码操作。在一个实施例中,对于每个轮次,使用阈值S盒实现来执行第一寄存器的内容的反相。在一个实施例中,素数多项式模取决于要执行的密码操作。
在一个实施例中,第一奇偶校验轮次是排序为奇数的轮次,而第二奇偶校验轮次是排序为偶数的轮次。在一个实施例中,第一奇偶校验轮次是排序为偶数的轮次,而第二奇偶校验轮次是排序为奇数的轮次。
在一个实施例中,在最后轮次的输出处,第一寄存器包含由第六掩码掩蔽的第二数据项。在一个实施例中,第二数据项对应于第一加密数据。
在一个实施例中,在最后轮次的输出处,第一寄存器包含由第六掩码掩蔽的第二数据项;第六掩码是第三掩码与第二寄存器的内容相乘的组合,或者是第三掩码的逆与第三寄存器的内容相乘的组合,这取决于最后轮次是第一奇偶校验还是第二奇偶校验。
在一个实施例中,密码操作采用AES加密。在一个实施例中,密码操作采用SM4加密。
在一个实施例中,一种装置包括:多个寄存器;以及密码电路装置,其耦合到所述多个寄存器,其中所述密码电路装置在操作中:执行密码操作;以及在执行密码操作期间保护第一数据项。执行和保护包括:在多个轮次中执行所述密码操作,每个轮次处理所述多个寄存器中的第一,第二和第三寄存器的内容;在所述多个轮次的第一奇偶校验轮次期间使用所述多个寄存器的第四寄存器的内容掩蔽所述第二寄存器的内容;以及在所述多个轮次的第二奇偶校验轮次期间使用所述多个寄存器的第五寄存器的内容来掩蔽所述第三寄存器的内容。
在一个实施例中,多个轮次的第一轮次的第一,第二和第三寄存器的内容分别是:所述第一数据,由第一掩码进行掩蔽;第二掩码;以及由第三掩码掩蔽的第一掩码。在一个实施例中,在执行多轮中的最后轮次之后,第一寄存器的内容提供对第一数据项应用密码操作的结果。在一个实施例中,密码电路装置包括随机数生成器,其在操作中对于每个第一奇偶校验轮次生成第四掩码,密码电路装置将该第四掩码存储在第四寄存器中;并且对于每个第二奇偶校验轮次,生成第五掩码,所述密码电路装置将所述第五掩码存储在所述第五寄存器中。
在实施例中,对于每个轮次,
a)对所述第一寄存器内容求逆素数多项式,并将所述逆内容存储在所述第一寄存器中;则
b)第一寄存器的内容被第二和第三寄存器的内容掩蔽。在一个实施例中,对于每个轮次,在步骤a)和b)之后,密码电路装置对第一寄存器的内容执行密码操作。在一个实施例中,密码电路装置在每个轮次中使用阈值S盒实现来执行第一寄存器的内容的反相。在一个实施例中,密码电路装置在操作中基于要执行的密码操作来选择素数多项式模。
在一个实施例中,第一奇偶校验轮次是排序为奇数的轮次,而第二奇偶校验轮次是排序为偶数的轮次。在一个实施例中,在多轮的最后轮次的输出处,第一寄存器包含由第六掩码掩蔽的第二数据项。在一个实施例中,第二数据项对应于第一加密数据。
在一个实施例中,一个系统包括:一个存储器;以及密码电路装置,其耦合到所述存储器且包括多个寄存器,其中所述密码电路装置在操作中:执行密码操作;以及在执行密码操作期间保护第一数据项。执行和保护包括:在多个轮次中执行所述密码操作,每个轮次处理所述多个寄存器中的第一,第二和第三寄存器的内容;在所述多个轮次的第一奇偶校验轮次期间使用所述多个寄存器的第四寄存器的内容掩蔽所述第二寄存器的内容;以及在所述多个轮次的第二奇偶校验轮次期间使用所述多个寄存器的第五寄存器的内容来掩蔽所述第三寄存器的内容。在一个实施例中,密码操作采用AES加密。在一个实施例中,密码操作采用SM4加密。在一个实施例中,该系统包括耦合到密码电路装置的接口,其中该接口在操作中接收和发送数据。
在一个实施例中,一种非暂态计算机可读介质具有使密码电路装置执行一种方法的内容,该方法包括:执行密码操作;以及在所述密码操作的执行期间保护第一数据项,其中所述执行和保护包括:执行多个轮次中的密码操作,每个轮次处理第一,第二和第三寄存器的内容;在所述多个轮次的第一奇偶校验轮次期间使用第四寄存器的内容掩蔽所述第二寄存器的内容;以及在所述多个轮次的第二奇偶校验轮次期间使用第五寄存器的内容来掩蔽所述第三寄存器的内容。在一个实施例中,第一轮的第一,第二和第三寄存器的内容分别是:所述第一数据,由第一掩码进行掩蔽;第二掩码;以及由第三掩码掩蔽的第一掩码。在一个实施例中,在执行最后轮次之后,第一寄存器的内容提供对第一数据项应用密码操作的结果。在一个实施例中,非暂态计算机可读介质的内容包括由密码电路装置执行的指令。
一些实施例可以采用计算机程序产品的形式或包括计算机程序产品。例如,根据一个实施例,提供了一种计算机可读介质,其包括适于执行上述方法或功能中的一个或多个的计算机程序。该介质可以是物理存储介质,例如只读存储器(ROM)芯片,或盘,例如数字多功能盘(DVD-ROM),光盘(CD-ROM),硬盘,存储器,网络,或将由适当的驱动器或经由适当的连接读取的便携式介质制品,包括编码在存储在一个或多个这样的计算机可读介质上并可由适当的读取器装置读取的一个或多个条形码或其他相关代码。
此外,在一些实施例中,这些方法和/或功能中的一些或全部可以以其他方式来实现或提供,例如至少部分地以固件和/或硬件来实现或提供,这些固件和/或硬件包括但不限于一个或多个专用集成电路(ASIC),数字信号处理器,分立电路,安全引擎,逻辑门,标准集成电路,控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器),现场可编程门阵列(FPGA),复杂可编程逻辑器件(CPLD)等,以及采用RFID技术的器件及其各种组合。
上述各种实施例可以组合以提供另外的实施例。如果需要,可以修改实施例的各方面以采用各种专利,申请和出版物的概念来提供另外的实施例。
根据上述详细描述,可以对实施例进行这些和其它改变。通常,在下面的权利要求中,所使用的术语不应该被解释为将权利要求限制到在说明书和权利要求中公开的特定实施例,而是应该被解释为包括所有可能的实施例以及这些权利要求被授权的等同物的全部范围。因此,权利要求不受本公开的限制。

Claims (34)

1.一种方法,包括:
使用密码电路装置执行密码操作;以及
使用所述密码电路装置来保护在所述执行期间应用于所述密码操作的第一数据项,其中所述执行和所述保护包括:
执行多个轮次中的所述密码操作,每个轮次处理第一寄存器、第二寄存器和第三寄存器的内容;
在所述多个轮次的第一奇偶校验轮次期间使用第四寄存器的内容来掩蔽所述第二寄存器的内容;以及
在多个轮次的第二奇偶校验轮次期间使用第五寄存器的内容来掩蔽所述第三寄存器的内容。
2.根据权利要求1所述的方法,其中针对第一轮次的所述第一寄存器、所述第二寄存器和所述第三寄存器的内容分别为:
所述第一数据,由第一掩码掩蔽;
第二掩码;以及
所述第一掩码,由第三掩码掩蔽。
3.根据权利要求1所述的方法,其中在最后轮次的执行之后,所述第一寄存器的内容提供对所述第一数据项应用所述密码操作的结果。
4.根据权利要求2所述的方法,其中,
对于每个第一奇偶校验轮次,随机第四掩码被生成并且被存储在所述第四寄存器中;以及
对于每个第二奇偶校验轮次,随机第五掩码被生成并且被存储在所述第五寄存器中。
5.根据权利要求1所述的方法,其中对于每个轮次,
a)对所述第一寄存器内容求逆模素数多项式,并且求逆的内容被存储在所述第一寄存器中;然后
b)所述第一寄存器的内容由所述第二寄存器和所述第三寄存器的内容掩蔽。
6.根据权利要求5所述的方法,其中对于每个轮次,在步骤a)和b)之后,对所述第一寄存器的内容执行密码操作。
7.根据权利要求5所述的方法,其中对于每个轮次,阈值S盒实现方式被使用来执行所述第一寄存器的内容的所述求逆。
8.根据权利要求5所述的方法,其中所述素数多项式模取决于要被执行的所述密码操作。
9.根据权利要求1所述的方法,其中所述第一奇偶校验轮次是排序为奇数的轮次,而所述第二奇偶校验轮次是排序为偶数的轮次。
10.根据权利要求1所述的方法,其中所述第一奇偶校验轮次是排序为偶数的轮次,而所述第二奇偶校验轮次是排序为奇数的轮次。
11.根据权利要求1所述的方法,其中在最后轮次的输出处,所述第一寄存器包含由第六掩码所掩蔽的第二数据项。
12.根据权利要求11所述的方法,其中所述第二数据项对应于所述第一加密数据。
13.根据权利要求4所述的方法,其中,
在最后轮次的输出处,所述第一寄存器包含由第六掩码掩蔽的第二数据项;以及
取决于所述最后轮次是否是所述第一奇偶校验或是所述第二奇偶校验,所述第六掩码是与所述第二寄存器的内容相乘的所述第三掩码的组合,或者是与所述第三寄存器的内容相乘的所述第三掩码的逆的组合。
14.根据权利要求1所述的方法,其中所述密码操作采用AES加密。
15.根据权利要求1所述的方法,其中所述密码操作采用SM4加密。
16.一种装置,包括:
多个寄存器;以及
密码电路装置,耦合到所述多个寄存器,其中所述密码电路装置在操作中:
执行密码操作;以及
在所述密码操作的所述执行期间保护第一数据项,其中所述执行和所述保护包括:
在多个轮次中执行所述密码操作,每个轮次处理所述多个寄存器中的第一寄存器、第二寄存器和第三寄存器的内容;
在所述多个轮次的第一奇偶校验轮次期间使用所述多个寄存器中的第四寄存器的内容掩蔽所述第二寄存器的内容;以及
在所述多个轮次的第二奇偶校验轮次期间使用所述多个寄存器中的第五寄存器的内容掩蔽所述第三寄存器的内容。
17.根据权利要求16所述的装置,其中针对所述多个轮次中的第一轮次的所述第一寄存器、所述第二寄存器和所述第三寄存器的内容分别为:
所述第一数据,由第一掩码掩蔽;
第二掩码;以及
所述第一掩码,由第三掩码掩蔽。
18.根据权利要求16所述的装置,其中在所述多个轮次中的最后轮次的执行之后,所述第一寄存器的内容提供对所述第一数据项应用所述密码操作的结果。
19.根据权利要求17所述的装置,其中所述密码电路装置包括随机数生成器,所述随机数生成器在操作中:
对于每个第一奇偶校验轮次生成第四掩码,所述密码电路装置将所述第四掩码存储在所述第四寄存器中;以及
对于每个第二奇偶校验轮次生成第五掩码,所述密码电路装置将所述第五掩码存储在所述第五寄存器中。
20.根据权利要求16所述的装置,其中,对于每个轮次,
a)对所述第一寄存器内容求逆模素数多项式,并且求逆的内容被存储在所述第一寄存器中;然后
b)所述第一寄存器的内容由所述第二寄存器和所述第三寄存器的内容掩蔽。
21.根据权利要求20所述的装置,其中对于每个轮次,在步骤a)和b)之后,所述密码电路装置对所述第一寄存器的内容执行密码操作。
22.根据权利要求20所述的装置,其中所述密码电路装置在每个轮次中使用阈值S盒实现方式来执行所述第一寄存器的内容的所述求逆。
23.根据权利要求20所述的装置,其中所述密码电路装置在操作中基于要被执行的所述密码操作来选择所述素数多项式模。
24.根据权利要求16所述的装置,其中所述第一奇偶校验轮次是排序为奇数的轮次,而所述第二奇偶校验轮次是排序为偶数的轮次。
25.根据权利要求1所述的装置,其中在所述多个轮次的最后轮次的输出处,所述第一寄存器包含由第六掩码所掩蔽的第二数据项。
26.根据权利要求25所述的装置,其中所述第二数据项对应于所述第一加密数据。
27.一种系统,包括:
存储器;以及
密码电路装置,耦合到所述存储器并且包括多个寄存器,其中所述密码电路装置在操作中:
执行密码操作;以及
在所述密码操作的所述执行期间保护第一数据项,其中所述执行和所述保护包括:
在多个轮次中执行所述密码操作,每个轮次处理所述多个寄存器中的第一寄存器、第二寄存器和第三寄存器的内容;
在所述多个轮次的第一奇偶校验轮次期间使用所述多个寄存器中的第四寄存器的内容掩蔽所述第二寄存器的内容;以及
在所述多个轮次的第二奇偶校验轮次期间使用所述多个寄存器中的第五寄存器的内容掩蔽所述第三寄存器的内容。
28.根据权利要求27所述的系统,其中所述密码操作采用AES加密。
29.根据权利要求27所述的系统,其中所述密码操作采用SM4加密。
30.根据权利要求27所述的系统,包括耦合到所述密码电路装置的接口,其中所述接口在操作中接收和发射数据。
31.一种非暂态计算机可读介质,具有使密码电路装置执行方法的内容,所述方法包括:
执行密码操作;以及
在所述密码操作的所述执行期间保护第一数据项,其中所述执行和所述保护包括:
执行多个轮次中的所述密码操作,每个轮次处理第一寄存器、第二寄存器和第三寄存器的内容;
在所述多个轮次的第一奇偶校验轮次期间使用第四寄存器的内容掩蔽所述第二寄存器的内容;以及
在所述多个轮次的第二奇偶校验轮次期间使用第五寄存器的内容来掩蔽所述第三寄存器的内容。
32.根据权利要求31所述的非暂态计算机可读介质,其中针对第一轮次的所述第一寄存器、所述第二寄存器和所述第三寄存器的内容分别为:
所述第一数据,由第一掩码掩蔽;
第二掩码;以及
所述第一掩码,由第三掩码掩蔽。
33.根据权利要求31所述的非暂态计算机可读介质,其中在最后轮次的执行之后,所述第一寄存器的内容提供对所述第一数据项应用所述密码操作的结果。
34.根据权利要求31所述的非暂态计算机可读介质,其中所述非暂态计算机可读介质的内容包括由所述密码电路装置执行的指令。
CN202210764728.6A 2021-06-29 2022-06-29 由加密算法处理的数据的保护 Pending CN115549892A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR2106977 2021-06-29
FR2106977A FR3124670A1 (fr) 2021-06-29 2021-06-29 Protection de données traitées par un algorithme de chiffrement
US17/850,497 US20220414268A1 (en) 2021-06-29 2022-06-27 Protection of data processed by an encryption algorithm
US17/850,497 2022-06-27

Publications (1)

Publication Number Publication Date
CN115549892A true CN115549892A (zh) 2022-12-30

Family

ID=78212175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210764728.6A Pending CN115549892A (zh) 2021-06-29 2022-06-29 由加密算法处理的数据的保护

Country Status (4)

Country Link
US (1) US20220414268A1 (zh)
EP (1) EP4113895A1 (zh)
CN (1) CN115549892A (zh)
FR (1) FR3124670A1 (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5711681B2 (ja) * 2012-03-06 2015-05-07 株式会社東芝 暗号処理装置
US11599680B2 (en) * 2019-11-20 2023-03-07 Meta Platforms Technologies, Llc Encryption and decryption engines with hybrid masking to prevent side channel attacks

Also Published As

Publication number Publication date
US20220414268A1 (en) 2022-12-29
FR3124670A1 (fr) 2022-12-30
EP4113895A1 (fr) 2023-01-04

Similar Documents

Publication Publication Date Title
US7403620B2 (en) Cyphering/decyphering performed by an integrated circuit
CN106487497B (zh) 对rijndael算法的dpa保护
US8094816B2 (en) System and method for stream/block cipher with internal random states
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
CN101006677B (zh) 用于实施加密运算的方法和装置
US8553877B2 (en) Substitution table masking for cryptographic processes
CN106487498B (zh) 电子电路对边信道攻击的抵抗的检验
US11546135B2 (en) Key sequence generation for cryptographic operations
US9898623B2 (en) Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product
US10187198B2 (en) Protection of a rijndael algorithm
US8724804B2 (en) Encryption processing apparatus
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
US11606189B2 (en) Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm
KR100834096B1 (ko) 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법
US8582757B2 (en) Protection of a ciphering algorithm
EP1629626B1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
CN115549892A (zh) 由加密算法处理的数据的保护
CN110071927B (zh) 一种信息加密方法、系统及相关组件
Zigiotto et al. A low-cost FPGA implementation of the Advanced Encryption Standard algorithm
CN116866038B (zh) 动态掩码加密方法及动态掩码加密装置
US7464130B2 (en) Logic circuit and method for performing AES MixColumn transform
KR20240046850A (ko) 암호화 처리 장치, 암호화 처리 장치의 암호화 처리 방법, 및 저장 매체
ManjulaRani et al. An Efficient FPGA Implementation of Advanced Encryption Standard Algorithm on Virtex-5 FPGA’s

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination