CN109617667B - 一种针对aes算法线性部分的高效掩码防护方法 - Google Patents
一种针对aes算法线性部分的高效掩码防护方法 Download PDFInfo
- Publication number
- CN109617667B CN109617667B CN201811300731.2A CN201811300731A CN109617667B CN 109617667 B CN109617667 B CN 109617667B CN 201811300731 A CN201811300731 A CN 201811300731A CN 109617667 B CN109617667 B CN 109617667B
- Authority
- CN
- China
- Prior art keywords
- matrix
- mask
- aes
- column
- algorithm
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Respiratory Apparatuses And Protective Means (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种针对AES算法线性部分的高效掩码防护方法。本方法为:1)生成掩码矩阵M′、M;然后利用M对待保护的中间值矩阵Q进行保护,即Q⊕M;2)对Q⊕M进行非线性运算,结果记为S;利用M’对S进行保护,即S⊕M′;3)对S⊕M′进行行移位变换,得到矩阵S';4)利用S'对AES加密算法进行列混淆运算,得到矩阵T;5)更新M,进行正常的轮密钥加,更新前后的掩码矩阵M均为斜线上的掩码相同;6)重复步骤2)~5)多轮;当执行到最后一轮的线性运算时,只进行行移位变换和正常的轮密钥加,然后将变换后的S'与M’异或后作为AES的运算结果输出。
Description
技术领域
本发明提出了一种针对AES算法线性部分的快速掩码防护方法,该方法可对AES算法线性运算部分提供抗一阶侧信道攻击能力。软硬件设计人员可利用该方法与已有的针对非线性运算的掩码方案相结合,高效安全地实现完整AES算法,抵抗一阶侧信道攻击,保证敏感数据的安全。属于信息安全技术领域,主要用于保证加密硬件的侧信道安全。
背景技术
加密模块是保密通信、认证、电子签名等***中必不可少的部分。随着侧信道攻击手段的愈发先进,硬件加密设备受到日益严重的侧信道攻击威胁,绝大多数密码算法的直接实现都可被侧信道攻击轻易破解,因此,保证加密模块的侧信道安全至关重要。与此同时,随着物联网应用的飞速发展,对加密模块快速高效运行的应用需求愈发强烈,因此,保证加密模块的快速运算具有十分重要的意义。综上,设计安全且快速高效的加密模块成为亟待解决的问题。
为保证算法实现的侧信道安全性,需要在实现过程中加入抗侧信道技术。在对称密码算法的众多侧信道攻击防御对策中,掩码方案由于具有理论上的可证明安全性和设备独立性,是目前研究最广泛的防御对策。掩码方案通过在运算中引入随机数,令泄漏信息与计算过程中的敏感中间值的相关性随机化,从而保护秘密信息。现有主流的掩码防护方案有ISW(Ishai-Sahai-Wagner)方案、RSM(Rotating S-boxes Masking)方案等。
然而,掩码方案通过引入随机数将每一个实现过程中的中间值x拆分为d+1个共享因子以抵抗d阶侧信道攻击,这样拆分带来实现代价的大幅提高,因此面临着难以实用化的难题。研究掩码技术的高效实现对于解决掩码实用化问题具有重要意义。然而,现有发明多关注于掩码方案的非线性运算部件(如S盒)的快速高效实现,对于掩码方案的线性运算部分(包括行移位变换ShiftRows、列混淆变换Mixcolumn)的安全性和效率研究尚未得到关注。
理想情况下,掩码方案实现的受保护AES算法代价应当尽可能地接近无保护AES算法。目前,在无保护的AES实现方面,线性部分运算效率几乎达到瓶颈。已有的关于无防护AES算法线性部分的快速实现的研究,集中在列混淆部分。列混淆变换可以写作两个矩阵的乘积形式,由一个确定的4×4矩阵与16个8-bit状态寄存器数据相乘,此处的矩阵运算是定义在GF(28)上的,可用如下公式表达。下列公式矩阵中的每个元素大小均为1字节8-bit,每个矩阵4×4个数据共计128bit,下文表示同上。
列混淆变换目前较好的优化方式是文献(参考Nikita Veshchikov,SylvainGuilley.Implementation flaws in the masking scheme of DPA Contest v4.IETInformation Security11(6):356-362(2017)),具体地,将每列运算的公共部分单独提出,以减少重复的运算过程。优化后列混淆变换的每一列运算过程如下(0≤i≤3):
此公式中的乘法和加法都是定义在GF(28)上的。
但是,目前已有的一阶掩码方案均需要至少两个共享因子,每一轮需要将这两个共享因子分别进行线性运算,导致线性运算的代价相比于无保护AES的线性部分运算代价成倍提高。
本发明提出了针对AES算法线性部分的高效掩码防护方法,同时给出了快速线性掩码防护方法与RSM防护方案相结合的完整AES高效一阶掩码防护方案。
发明内容
现有AES掩码方案的优化设计关注非线性部分,对掩码方案线性部分的安全性和实现效率未特别关注。文献“Nikita Veshchikov,Sylvain Guilley.Implementationflaws in the masking scheme of DPA Contest v4.IET Information Security 11(6):356-362(2017)”的防护方案线性部分效率仍有待提高,文献“Kai Schramm,ChristofPaar.Higher Order Masking of the AES.CT-RSA 2006:208-225”的防护方案更是在线性部分存在安全隐患。本发明提供一种针对AES线性部分的安全、高效一阶掩码防护方案,此方案可以应用在AES多种一阶掩码方案的线性部分,在不降低方案整体安全性的情况下,减少随机数的使用个数提高运行效率。
本发明的技术方案为:
一种针对AES算法线性部分的高效掩码防护方法,其中每一轮其步骤为:
1)生成4个随机8bit掩码m′0,m′1,m′2,m′3,并用这4个掩码循环排列组成4×4的掩码矩阵M′;以及生成4个随机8bit掩码m0,m1,m2,m3,并用这4个掩码循环排列组成4×4的掩码矩阵M;然后利用掩码矩阵M对一阶掩码方案中待保护的中间值矩阵Q进行保护,即生成新的中间值矩阵
4)利用该矩阵S′对AES加密算法进行列混淆运算,得到矩阵T;其中,列混淆运算过程中引入一随机数r对该矩阵T中每一元素进行保护;
5)在对AES加密算法进行列混淆运算后,对掩码矩阵M进行更新,更新后的掩码矩阵M斜线上的掩码与更新前的掩码矩阵M斜线上的掩码相同,在掩码刷新之后,正常执行轮密钥加过程(此过程与其它的一阶掩码轮密钥加模块相同);
6)重复步骤2)~5)多轮;当执行到最后一轮的线性运算时,只进行步骤3)的行移位变换,然后将变换后的S′与掩码矩阵M’异或后作为AES的运算结果输出。
进一步的,更新掩码矩阵M的方法为:先将矩阵T异或新的掩码矩阵N,再去异或更新前的掩码矩阵M;其中,生成4个8bit随机数n0,n1,n2,n3并用这4个掩码循环排列组成4×4的掩码矩阵N。
进一步的,得到矩阵T的方法为:
其中,t4*i+j为矩阵T内第4*i+j个元素,位于矩阵T的第i行第j列;s′4*i+j为矩阵S′内第4*i+j个元素,位于矩阵S′的第i行第j列。
进一步的,r为8bit随机数。
进一步的,对列混淆运算后的AES算法进行解密时,对该AES算法解密的列混淆方法为:
其中,矩阵T内的每个元素t4*i+j受掩码m‘i保护。
方法描述:对AES的线性掩码防护方法
1.掩码生成;
一阶掩码方案中,所有敏感中间值被拆分成两个共享因子,敌手只有获取一个共享因子的能力,因此无法恢复中间值。具体地,生成4个随机8-bit掩码m0,m1,m2,m3,并用这4个掩码循环排列组成4×4的掩码矩阵M。然后利用掩码矩阵M对中间值矩阵Q(Q表示原16字节中间值)进行保护,生成新的中间值矩阵此过程可用如下公式表达:
生成4个随机8-bit掩码m′0,m′1,m′2,m′3,并用这4个掩码循环排列组成4×4的掩码矩阵M′;然后将中间值矩阵输入S盒进行运算(即进行非线性运算),输出结果记为S,从而得到两个共享因子share:掩码矩阵M’和受掩码保护的矩阵本方案的非线性运算需保持新的掩码矩阵M′在矩阵的对角线上掩码相同这一特性。S盒输出结果为:
2.受保护的行移位模块设计;
线性运算首先是行移位运算,目的是将矩阵的第i行循环左移i-1个字节。具体如下:
将输出结果S′输入到受保护的列混淆模块中。
3.受保护的列混淆模块设计;
基于原列混淆算法,我们提出了优化的受保护列混淆模块设计方案。和上文背景技术部分对列混淆算法描述方式类似,此处引入随机数r对受保护的列混淆模块输出的每个值t4*i+j计算过程中的值进行保护,将上一步的S′作为输入,得出t4*i+j,i、j取值为0~3,仅给出每一列的列混淆运算过程,第i列的列混淆算法如下(0≤i≤3):
其中,s′为行移位部分的输出结果,r为新生成的8-bit随机数,tmp仅存储计算过程值,矩阵T表示输出结果。在各数据互相异或后,相同的掩码会被相互抵消。而新生成的随机数r可对这些中间值提供保护,确保列混淆运算的安全性。而在每个ti计算过程中,计算到后,随机数r带来的影响已被抵消掉,计算可知矩阵T内的每个元素,如第4*i+j个元素t4*i+j仍受掩码m′i保护。
AES解密算法的优化方案设计与加密类似,区别在于AES解密的列混淆部分,与之相乘的矩阵不同。优化的解密部分列混淆算法如下:
4.掩码刷新模块设计;
列混淆结束后,对下一轮输入数据提供保护的掩码必须仍具有M的特性,即斜线上的掩码相同,才能让下一轮能够同样正确地执行此线性算法,才能令AES算法得到正确的输出结果。因此,需要执行掩码刷新操作,将原有的掩码替换为新的掩码。新生成的掩码用N表示,其内部元素同样按照M中的排列方式构造,即只需新生成4个8-bit随机数n0,n1,n2,n3。
在掩码刷新时,必须先将T异或新的掩码N,再去异或原掩码。否则原掩码mi会被抵消掉,使得计算中间值未受到保护。由于矩阵T中每一列原掩码相同,因此同样每列单独执行刷新过程,第i列的刷新操作如下:
AES其他模块(S盒操作和轮密钥加操作)与其他一阶掩码方案相同即可。
按照上述步骤进行AES的多轮(AES128为10轮、AES192为12轮、AES256为14轮)运算,直到最后一轮。最后一轮的线性运算,只需要进行行移位变换即可,没有列混淆操作。因此,最后一轮只需要将引入的掩码消去,不需要引入新的掩码,然后将变换后的S′与掩码矩阵M’异或后作为AES的运算结果输出,即可得到正确的输出值。
与现有技术相比,本发明的积极效果为:
首先创新性地提出了一种AES算法的快速线性掩码防护方法,该方法给出了掩码方案线性部分的快速高效运算方案,在使用较少随机数和运算代价的同时依然具有一阶侧信道分析防御能力;其次,本发明给出了快速线性掩码防护方法与RSM防护方案相结合的完整AES高效一阶侧信道安全实现方案,该方案可以抵抗一阶侧信道攻击,保证敏感数据的安全,较原始RSM方案的线性部分实现效率提升20%。
附图说明
图1为原始的Mixcolumn计算图;
图2为改进后AES快速线性掩码防护方法。
具体实施方式
下面基于本发明的具体方案,结合图2,对AES的线性掩码防护方法进行软硬件实现的具体描述。此处用share1和share2表示一阶掩码方案的两个共享因子,用Q表示每轮S盒输入前的中间值。
一、输入初始掩码M后,两个共享因子share1和share2为:
二、经过非线性变换部分(S盒)后:
这里的非线性部分的掩码方案选取的时文献“Shivam Bhasin,Nicolas Bruneau,Jean-Luc Danger,Sylvain Guilley,Zakaria Najm.Analysis and Improvements of theDPA Contest v4Implementation.SPACE 2014:201-218”中提出的改进版RSM方案,输出的掩码改变,但是仍保持斜向的掩码相同这一特性,用M′表示经过S盒后的掩码,输出的结果为:
三、经过行移位变换后
四、经过受保护的列混淆变换之后
将第三步中的S′作为列混淆变换的输入,输出t4*i+j,计算方法是发明内容中相应的公式,经过受保护的列混淆变换后,掩码M1保持不变。两个共享因子变为如下公式:
share1中的每个元素t4*i+j都受到M1中相应位置元素的保护。
五、在掩码刷新中
对share1和share2同时异或新生成的掩码N和原掩码M1,完成对掩码的刷新操作,即:
计算得出
在掩码刷新之后,正常执行轮密钥加过程(此过程与其它的一阶掩码轮密钥加模块相同)。
之后每轮从步骤二开始循环,进行AES的多轮运算,直到最后一轮。最后一轮的线性运算,只需要进行行移位变换即可。在之后,只需要将引入的掩码消去,不需要引入新的掩码,然后将变换后的S′与掩码矩阵M’异或后作为AES的运算结果输出,即可得到正确的输出值。
Claims (7)
1.一种针对AES算法线性部分的高效掩码防护方法,其特征在于,每一轮的步骤为:
1)生成4个随机8bit掩码m′0,m′1,m′2,m′3,并用这4个掩码循环排列组成4×4的掩码矩阵M′;以及生成4个随机8bit掩码m0,m1,m2,m3,并用这4个掩码循环排列组成4×4的掩码矩阵M;然后利用掩码矩阵M对一阶掩码方案中待保护的中间值矩阵Q进行保护,即生成新的中间值矩阵
4)利用该矩阵S'对AES加密算法进行列混淆运算,得到矩阵T;其中,列混淆运算过程中引入一随机数r对该矩阵T中每一元素进行保护;
5)在对AES加密算法进行列混淆运算后,对掩码矩阵M进行更新,更新后的掩码矩阵M斜线上的掩码与更新前的掩码矩阵M斜线上的掩码相同,在掩码刷新之后,正常执行轮密钥加过程;
6)重复步骤2)~5)多轮;当执行到最后一轮的线性运算时,只进行步骤3)的行移位变换和轮密钥加操作,然后将变换后的S'与掩码矩阵M’异或后作为AES的运算结果输出。
2.如权利要求1所述的方法,其特征在于,更新掩码矩阵M的方法为:先将矩阵T异或新的掩码矩阵N,再去异或更新前的掩码矩阵M;其中,生成4个8bit随机掩码n0,n1,n2,n3并用这4个掩码循环排列组成4×4的掩码矩阵N。
4.如权利要求1或3所述的方法,其特征在于,r为8bit随机数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811080898 | 2018-09-17 | ||
CN2018110808982 | 2018-09-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109617667A CN109617667A (zh) | 2019-04-12 |
CN109617667B true CN109617667B (zh) | 2020-09-29 |
Family
ID=66001818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811300731.2A Active CN109617667B (zh) | 2018-09-17 | 2018-11-02 | 一种针对aes算法线性部分的高效掩码防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109617667B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071794B (zh) * | 2019-04-28 | 2022-06-07 | 苏州国芯科技股份有限公司 | 一种基于aes算法的信息加密方法、***及相关组件 |
CN111385290A (zh) * | 2020-03-02 | 2020-07-07 | 杭州电子科技大学 | 一种基于fpga的抗dpa攻击的aes加密方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059746A (zh) * | 2016-07-22 | 2016-10-26 | 武汉大学 | 一种抗任意阶侧信道攻击的掩码防护方法及*** |
CN107070630A (zh) * | 2017-01-17 | 2017-08-18 | 中国科学院信息工程研究所 | 一种aes算法的快速安全硬件结构 |
CN107872317A (zh) * | 2016-09-28 | 2018-04-03 | 北京同方微电子有限公司 | 一种用于aes密钥扩展的随机掩码方法及其装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2967322B1 (fr) * | 2010-11-08 | 2012-12-28 | Morpho | Protection contre les ecoutes passives |
US9281941B2 (en) * | 2012-02-17 | 2016-03-08 | International Business Machines Corporation | Homomorphic evaluation including key switching, modulus switching, and dynamic noise management |
US9143325B2 (en) * | 2012-12-14 | 2015-09-22 | Microsoft Technology Licensing, Llc | Masking with shared random bits |
US9485088B2 (en) * | 2014-10-31 | 2016-11-01 | Combined Conditional Access Development And Support, Llc | Systems and methods for dynamic data masking |
-
2018
- 2018-11-02 CN CN201811300731.2A patent/CN109617667B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059746A (zh) * | 2016-07-22 | 2016-10-26 | 武汉大学 | 一种抗任意阶侧信道攻击的掩码防护方法及*** |
CN107872317A (zh) * | 2016-09-28 | 2018-04-03 | 北京同方微电子有限公司 | 一种用于aes密钥扩展的随机掩码方法及其装置 |
CN107070630A (zh) * | 2017-01-17 | 2017-08-18 | 中国科学院信息工程研究所 | 一种aes算法的快速安全硬件结构 |
Non-Patent Citations (2)
Title |
---|
《Combined Fault and Side-Channel Attacks on the AES Key Schedule》;Alexandre Venelli;《2012 Workshop on Fault Diagnosis and Tolerance in Cryptography》;20120909;全文 * |
《同阶掩码防护的设计实现安全性研究》;李延斌;《计算机学报》;20170519;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109617667A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9954676B2 (en) | Protecting a white-box implementation against attacks | |
US10097342B2 (en) | Encoding values by pseudo-random mask | |
US8971526B2 (en) | Method of counter-measuring against side-channel attacks | |
EP2924677B1 (en) | Splitting s-boxes in a white-box implementation to resist attacks | |
US20120170739A1 (en) | Method of diversification of a round function of an encryption algorithm | |
US9455833B2 (en) | Behavioral fingerprint in a white-box implementation | |
US8504845B2 (en) | Protecting states of a cryptographic process using group automorphisms | |
AU2011292312B2 (en) | Apparatus and method for block cipher process for insecure environments | |
EP3169017B1 (en) | Split-and-merge approach to protect against dfa attacks | |
US8605894B2 (en) | Cryptographic process execution protecting an input value against attacks | |
US9485226B2 (en) | Method for including an implicit integrity or authenticity check into a white-box implementation | |
US8675866B2 (en) | Multiplicative splits to protect cipher keys | |
US9363244B2 (en) | Realizing authorization via incorrect functional behavior of a white-box implementation | |
CN111555862A (zh) | 基于掩码保护的随机冗余轮函数的白盒aes实现方法 | |
CN109617667B (zh) | 一种针对aes算法线性部分的高效掩码防护方法 | |
KR102327771B1 (ko) | 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법 | |
EP2940917B1 (en) | Behavioral fingerprint in a white-box implementation | |
EP3413509B1 (en) | Cmac computation using white-box implementations with external encodings | |
CN116192364A (zh) | 抗侧信道的aes白盒加密方法及相关设备 | |
US10341089B2 (en) | High-speed AES with transformed keys | |
EP2940677A1 (en) | Method for including an implicit integrity or authenticity check into a white-box implementation | |
EP2940919B1 (en) | Realizing authorization via incorrect functional behavior of a white-box implementation | |
EP2940918B1 (en) | Interface compatible approach for gluing white-box implementation to surrounding program | |
CN114640439A (zh) | 一种针对高级加密标准aes算法的掩码防护方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |