1、密码学报 ISSN 2095-7025 CN 10-1195/TN E-mail: Journal of Cryptologic Research,2016,3(1):7990 http:/ 密码学报编辑部版权所有. Tel/Fax: +86-10-81033101 一种 SM4 掩码方法和抗 DPA 攻击分析*裴 超 北京华大信安科技有限公司, 北京 100015 通讯作者: 裴超, E-mail: 摘 要 : SM4算法在2012年3月被作为密码行业标准公开以后, 已经得到了广泛的应用. 但与此同时, 由于侧信道攻击的出现及利用, SM4算法在被用于智能卡等密码设备时, 也面临着严重威
2、胁. 针对差分功耗分析攻击(DPA), 虽然已经有部分掩码防御方案提出, 但是均是使用有限域上的乘法及求逆运算代替S盒查表法, 导致计算量比较大, 设计复杂. 一些掩码方案由于主要针对S盒变换进行设计, 对算法的整体运算覆盖程度不足, 也使得SM4算法并未得到全面的防护. 本文提出的一种基于S盒查表方法的随机掩码方案, 在无需知道和分析SM4算法的S盒的代数结构的情况下, 通过对S盒进行一个随机的线性变换, 同时结合多路径乘法掩码的特点, 达到对算法运行中所有数据掩码的目的, 从而抵御DPA攻击. 最后本文分别从理论和实际进行攻击实验, 得到了针对指定攻击点的具体分析结果. 实验结果显示, 相
3、比于已有的掩码方案, 本文的掩码方法资源消耗少, 实现简单方便, 代价小, 能够有效消除运算时密钥或敏感数据与能量消耗之间的相关性, 增强算法的安全性, 抵御DPA攻击. 关键词 : SM4算法; 侧信道攻击; 差分功耗分析攻击 中图法分类号 : TP309.7 文献标识码 : A DOI: 10.13868/ki.jcr.000111 中文引用格式: 裴超. 一种SM4掩码方法和抗DPA攻击分析J. 密码学报, 2016, 3(1): 7990. 英文引用格式: PEI C. A method of masking SM4 and analysis against DPA attacksJ.
4、 Journal of Cryptologic Research, 2016, 3(1): 7990. A Method of Masking SM4 and Analysis against DPA Attacks PEI Chao Beijing HuaDa Infosec Tech. Co., Ltd., Beijing 100015, China Corresponding author: PEI Chao, E-mail: Abstract: As an industrial cryptographic standard published in March 2012, SM4 h
5、as been widely used. However, in cryptographic devices such as smart cards, it is also under severe threat with the emergence and the utilization of the SCA(Side-Channel Attack). Although several countermeasures have been proposed to resist the attack of differential power analysis (DPA), they all u
6、se multiplication and inversion over a finite field instead of S-box look-up tables, leading to complex computational cost and complicated design. As some masking countermeasures are mainly aimed at transformation of S-Boxes, SM4 is not under full protection because of the insufficient coverage of t
7、hese schemes. Without knowing and analyzing the algebraic structure of SM4s S-Box, this paper proposes a random masking scheme based on the S-box look-up table implementation by using a method of linear transformation to S-box with a random number. The scheme could make all routines and all intermed
8、iate data of SM4 being masked to resist the attack of DPA, combined with the characteristics of * 收稿日期: 2015-10-11 定稿日期: 2016-01-05 80 Journal of Cryptologic Research 密码学报 Vol.3, No.1, Feb. 2016 multi-path multiplicative masking method. Finally, the paper utilizes attack experiments both in theory a
9、nd practice, and gets the analysis results in detail. The experiment results show that, compared with the existing masking schemes, the proposed scheme reduces the consumption of resource and the implementation is easy and costless. The proposed scheme could effectively eliminate the correlation bet
10、ween the key or sensitive data and the energy consumption, increase the algorithms security and the resistance against the DPA attack. Key words: SM4 algorithm; side channel attack; DPA 1 引言 SM4算法作为我国第一个公布的商用分组密码算法, 随着在2012年3月被作为行业标准公布后, 已经得到了更为广泛的应用. 与此同时, 侧信道攻击的兴起, 也使得该算法在智能卡等密码设备中的使用面临着严重威胁. 先前已经
11、有针对SM4算法的侧信道攻击研究1,2的提出, 说明了DPA攻击对SM4算法的有效性, 而后WangST和QiuS分别提出了选择明文方式的DPA攻击, 进一步表明SM4算法对DPA攻击的脆弱性3,4. 针对SM4算法的侧信道攻击, BaiXF等人于2008年就算法的S盒的代数表达式进行分析, 提出了相应的运用有限域乘法及求逆进行掩码和去掩码的方案5, 该方案能够使得加密过程中所有的中间结果都被随机掩码, 达到防护DPA攻击的效果, 但缺少对密钥扩展运算时的掩码保护, 且加密掩码方法容易受零值攻击6. 2013年TanRN等人在BaiXF等人的研究成果上, 通过对AES抵御侧信道攻击的双路径掩码
12、方法7的分析, 进行了二者的结合, 并提出了一种针对SM4的多路径乘法掩码的方法8. 该方法能同时保证密钥扩展运算和加密过程中所有中间数据均被随机掩码, 从而抵御DPA攻击. 但多路径掩码的方法需要设计时, 显示的存在多条并行的运算路径, 这将进一步增加算法和电路设计的复杂度. 上述针对SM4算法的掩码防护方案, 均是基于对S盒的代数表达式分析的基础上, 运用有限域运算进行掩码和去掩码的操作. 尽管HaoL等人针对BaiXF等人提出的掩码的方案, 进行了优化设计, 使求逆运算从域 8GF 2转到域 222GF 2 ,简化了计算和设计的复杂度9, 但对于使用查表方式实现的SM4算法来说, 改动依
13、然较大. 本文提出了一种掩码方案, 能够仍然基于查表操作的方式, 简化了算法和电路设计开销, 并达到掩码整个SM4运算中所有数据的目的, 从而防御侧信道攻击. 该方法中对S盒的掩码思想, 也可用于其他算法的防护设计, 对我国其他商用密码算法的防护设计也有一定的参考意义. 2 SM4 算法介绍 SM4是一种分组长度和密钥长度均为128比特的对称密码算法, 加密算法与密钥扩展算法都采用了32轮的非线性迭代结构, 解密算法与加密算法结构相同, 只是轮密钥的使用顺序相反. 其中, 轮函数主要由异或运算, S盒查表以及循环左移构成. 2.1 加解密算法 用2eZ表示e比特的向量集. 设明文输入为4320
14、123 2, ,XXXX Z密文输出为4320123 2, ,YYYY Z轮密钥为322rk ,iZ 0,1, ,31.i 则加密变换为: 4123 123, , , ,rk rkiiiiiiiiiiiX FXXXX XTX X X (1) 0 1 2 3 32 33 34 35 35 34 33 32, , , , , , ,YYYY RX X X X X X X X (2) 其中, F为轮函数, T为合成变换, R为反序变换. 合成变换T是一个可逆变换, 由一个非线性变换和裴 超 等: 一种SM4掩码方法和抗DPA攻击分析 81 线性变换L计算组成, 也就是 .TL 非线性变换由4个并行的
15、8比特输入输出的S盒组成, 用 Sbox 表示. 设输入为480123 2, ,Aaaaa Z输出为480123 2, ,Bbbbb Z则 0123 0 1 2 3, , , Sbox ,Sbox ,Sbox ,Sboxbbbb A a a a a (3)非线性变换的输出是线性变换L的输入. 设输入322B Z , 输出为322CZ , 则 2101824CLB B B B B B (4) 其中, Bi表示将B循环左移i位. SM4算法的加密流程如图1所示: 图1 SM4加密流程图 Figure 1 SM4 encryption flowchart 82 Journal of Cryptolo
16、gic Research 密码学报 Vol.3, No.1, Feb. 2016 2.2 密钥扩展算法 SM4加解密的轮密钥由密钥扩展算法生成. 设密钥4320123 2MK ,MK ,MK ,MK ,Z令322,iK Z0,1, ,35,i 轮密钥322rk ,iZ 0,1, ,31,i 则轮密钥生成方法为: 首先, 0123 0 0 1 1 2 2 3 3, , , MK FK ,MK FK ,MK FK ,MK FKKKKK (5) 然后, 对0,1, ,31:i 4123rk CKii i i i i iKKTKKK (6) T变换与加密算法轮函数中的T基本相同, 只是将其中的线性变换
17、修改为 13 23LB B B B (7) 其中FKi为系统参数, CKi为固定参数, 均为算法本身定义的常量. 3 侧信道攻击 3.1 差分功耗分析攻击 密码算法在硬件系统中运行时, 会产生除输入输出信息之外的其他侧信道信息10,11,12, 如功耗, 电磁辐射等. 产生的原因在于数据处理时, 寄存器中数据变化导致硬件系统中负载电容的充放电的发生9, 表现在操作数上就是指令执行前后数据的汉明距离的变化. 因此功耗函数可以表示成: ca HD cbWIO (8) W表示功耗, HD表示汉明距离的计算函数, I和O表示寄存器或指令执行前后的输入和输出数据, ca和cb是两个常量参数. 差分功耗分
18、析攻击即是通过利用这些侧信道中的功耗信息与运算数据之间的相关性, 分析获取密码运算中的密钥信息, 其攻击过程10,13如下: 1. 随机选择M组明文 ,1,mXm M使用相同的密钥MK进行加密操作, 并对应采集功耗迹 1,mTk每条功耗迹包含k个采样点. 2. 设轮密钥rki为N比特, 可将其分为长度为032n 的小比特段, 1, ,bNn表示轮密钥的段号. 定义二值选择函数 ,rk ,misDX b ,rk 0,2 1nis为第i轮密钥rk第b段的猜测值. 对所有的,rkis的取值和相应的选择函数D的结果, 计算k个采样点处的平均值的差, 得到差分功耗迹: 10,11, 1 ,rk,1,rk
19、 1 ,rkDmmmisi misiiimis misjjjDX brk T j DX b T jj kDX b DX b (9) 3. 当,rkis猜测错误时, 根据选择函数D的结果, 在差分功耗迹 Dj处将会与实际硬件设备的计算存在弱相关或无相关性, 表现为相应的差分功耗迹变得平坦, 此时理论上会有 lim 0;Dmj否则, 若,rkis猜测正确, 则相应的 Dj将会与计算存在极大的相关性, 表现为采样点上存在一个明显的尖峰. 裴 超 等: 一种SM4掩码方法和抗DPA攻击分析 83 4. 重复若干次, 得到完整的轮密钥rk ,i并进而推算出主密钥. 根据密码算法和硬件实现方式的不同, 选
20、择函数D的定义也可能不同, 可以定义为根据数据的汉明重或汉明距离进行判别. 3.2 SM4算法差分功耗分析攻击 SM4算法由32轮运算构成, DPA攻击可选择对前4轮或最后4轮进行攻击, 潜在的攻击存在各轮运算中的以下几个点: 图2 SM4潜在攻击点 Figure 2 The potential attack point of SM4 在攻击点AP1和AP2中, 密钥数据在中间结果中并没有扩散, 因此可以使用字节攻击的方式. 而在攻击点AP3和AP4, 由于经过了线性变换L的移位操作, 密钥数据已经在中间结果中发生了很大的扩散, 只能使用字攻击的方式, 需要至少322次数据猜测尝试, 造成攻击
21、难度增加. 虽然文献3提出了针对AP4的一种选择明文攻击的方法, 可降低攻击的复杂度, 但此攻击方法中仍需要额外对一个字节常量进行猜测, 相比对AP1和AP2处进行攻击, 仍需要至少162次猜测尝试, 复杂度依然很大. 如果对前4轮进行攻击, 利用已知数据和功耗迹, 在分别计算得到0123rk ,rk ,rk ,rk后, 根据密钥扩展算法, 由式(6)可得到 33 0 1 2 3rk rk rk rk CKKT (10) 依次可推算出0123,KKKK , 并根据式(5)可得到密钥 0123 0 01 12 23 3MK MK ,MK ,MK ,MK FK , FK , FK , FKKKKK
22、 (11) 如果对最后4轮进行攻击, 则需推算出所有的轮密钥, 然后根据式(9)和(10)推算MK. 4 掩码方法 为防止各种侧信道攻击, 对分组密码算法使用随机数掩盖运算过程中的敏感数据的措施是一种常用方法. 根据不同的运算操作, 可采用不同的掩码方法, 线性操作可以使用布尔异或进行掩码和恢复, 而对于非线性操作, 如针对AES的S盒运算, 分别有乘法掩码6, 随机掩码14和固定值掩码15的方法. 84 Journal of Cryptologic Research 密码学报 Vol.3, No.1, Feb. 2016 文献5针对SM4算法的S盒代数表达式, 提出了相应的运用有限域乘法及求
23、逆进而掩码和恢复的乘法掩码方案, 文献8在此基础上, 结合针对AES抵御侧信道攻击的双路径掩码方法7, 提出了一种针对SM4的多路径乘法掩码的方法. 乘法掩码的方法由于需要知道S盒的代数表达式, 硬件实现需要增加额外的乘法电路计算中间数据以便去掩码处理, 如果原方案使用的是查表的实现方式, 则使用乘法掩码实现时改动会较大. 多路径的掩码方法设计时由于需要存在多条并行的运算路径, 将增加设计的复杂度. 本文提出了一种随机掩码的方法, 在不需要知道算法S盒代数表达式的情况下, 通过对S盒实施一个随机的线性变化, 并结合多路径乘法掩码方法的特点, 达到同等的防护效果. 对于一些不知道S盒代数构造原理
24、的算法, 该随机掩码方法同样适用. 已知S盒是一个16 16的矩阵, 记为Sbox , 设RT,CT,MS是三个16 16的矩阵, RT是随机的行变换矩阵, CT是随机的列变换矩阵, MS是用于掩码S盒的随机数矩阵, 则有以下S盒变换: Sbox RT Sbox CT MS Sbox MS (12) RT,CT的构造可通过 4GF 2上的加法运算计算所得, 即如果初始单位矩阵为16 16,E有随机数 4rh,rl GF 2 ,则RT上第irow行的元素等于16 16E上第irow rh行的元素. 同理, CT上第icol列的元素等于16 16E上第icol rl列的元素. 设82,rZ令4rh
25、 2 rl,r S盒输入和输出数据为82,ab Z有查表操作 Sbox ,ba则: Sbox Sbox MSSbox MSMSar ar araarbar (13) 可见, 修改后的S盒Sbox ,输入数据a被随机数r掩码, 输出结果b被随机数MS中的元素掩码. 修改后的S盒运算过程等同于开辟了两条路径, 一条路径为Sbox ( ), 一条路径为 MS . MS用于构造多路径运算掩码, 当引入更多的随机数矩阵MS时, 则可实现更多的路径掩码. 但更多的路径掩码并不会造成输出结果掩码的增强, 而且增加了运算成本和设计开销, 因此可以用式(12)预计算出Sbox作为后续查表操作使用, 而不需要设计
26、实现时, 显示地出现两个或多个并行的运算路径, 从而简化了设计, 并掩码了输入和输出的数据, 达到了与多路径掩码的相同目的. 对于SM4算法中的非线性变换,当随机生成四个不同的RT ,CT ,MS ,ii i0,1,2,3i 时, 由式(12)预计算四个不同的Sbox ,记为Sbox ,i 0,1,2,3.i 设随机数480123 2, ,Rrrrr Zir决定RTi和CTi的构造, 则由式(3)可得新的非线性变换: 00 0 11 1 22 2 33 30000111122223333Sbox ,Sbox ,Sbox ,SboxMS , MS , MS , MSAR a r a r a r
27、a rbarbarbarbar (14) 此时, 输出结果B被随机数 00 0 11 1 22 2 33 33 MS ,MS ,MS ,MSR ar ar ar ar 掩码, 在SM4算法线性变换之后对结果进行去掩码时, 只需对3R进行一次相应的线性L变换, 并将中间数据与所得的结果异或即可. 取随机数3221, 2 ,R RZ 12RR R 时, 使用2R对明文数据进行掩码, 加密掩码时, 算法流程不变, 轮函数中增加去掩码的处理, 使用的是线性变换L对随机数3R计算求的值. 改进后的掩码加密方法流程如图3所示: 裴 超 等: 一种SM4掩码方法和抗DPA攻击分析 85 图3 掩码的SM4加
28、密算法流程图 Figure 3 The masked SM4 encryption flowchart 密钥扩展时的掩码方法与加密掩码方法类似, 只是使用随机数1R对密钥数据掩码, 轮函数中增加去掩码的处理使用的是线性变换L对随机数3R计算求的值, 且需修改轮密钥的计算为: 4123rk 2 CKii i i i i iKKTRKKK (15) 在该掩码方法下, 密钥在被随机数1R掩盖后, 并使用式(15)的轮密钥函数, 能够保证密钥扩展变换中的所有中间数据均被随机数1R掩盖. 同样, 使用掩盖后的轮密钥数据, 明文数据在被数据2R掩盖后, 根据图3的执行流程, 所有的加密过程中的中间数据也将
29、被随机数2R掩盖, 从而保证算法运行过程中, 不会存在侧信道攻击的攻击点. 32轮的加密运算完成后, 通过异或运算去掩码, 恢复出真正的密文. 特别的, 取随机数821, 2, 3 ,rr r Z且有12,rr r当 1 1,1,1,1,Rrrrr 2 2,2,2,2,Rrrrr且使用的MSi是由同一个随机数3r构成时, 式(14)只需要预计算一个Sbox即可, 能够占用更少的存储空间. SM486 Journal of Cryptologic Research 密码学报 Vol.3, No.1, Feb. 2016 算法中非线性变换的计算过程变为 03132333,A R b rb rb r
30、b r 去掩码时使用的3 3,3,3,3.R rrrr 通过分析, 该方法在不需知道S盒代数构原理的情况下, 通过对S盒进行随机线性变换, 依旧能够使用查表的方法, 使得整个加密过程中所有中间数据都被随机掩盖. 实施过程中, 不需要增加额外的乘法电路去计算恢复掩码的中间数据, 仅通过直接对随机数进行线性变换的方法即可, 节省了设计和计算开销. 5 实验结果及分析 本文通过使用特殊的1, 2, MSiRR形式, 即分别由一个字节的随机数构成时进行实验分析. 同时为便于数据统计和分析, 我们首先使用软件模拟攻击的形式. 实验使用C+实现SM4算法, 加密算法描述如下: SM4:Encrypt: 输
31、入明文为 0123,XXXX 输入轮密钥为rk rk 1r 输出为0123,YYYY S1: 使用2r对明文进行掩码 S2: 0i S3: 123rkiiitX X X S4: tt S5: tLt S6: itt X S7: 4iXt S8: ,i 当32i 跳转至S3 S9: 对32 33 34 35,XXXX使用2r去掩码处理 S10: 输出 0 1 2 3 35 34 33 32, , , ,YYYY X X X X 其中算法步骤S3, S4, S5, S6分别对应攻击点AP1, AP2, AP3, AP4, 使用变量t作为攻击对象. 根据式(8), 由于攻击对象的汉明距离与功耗为线性
32、关系, 因此可以直接使用S3S6各步骤前后t的汉明距离作为模拟采样数据. 攻击实验选择针对SM4算法的第一轮运算中的攻击点AP1实施, 使用随机明文攻击. 取攻击点处汉明距离的期望值4为判别标准, 则选择函数定义为: ,0, HD 4,rk1, HD 4mistDX bt (16) 当实验使用10组随机明文进行模拟攻击AP1处时, 使用正确的密钥进行加密处理, 无掩码和使用随机数10x4,ra 20x36,r 30x2rd掩码的结果如下. 裴 超 等: 一种SM4掩码方法和抗DPA攻击分析 87 表1 攻击点AP1处的随机明文差分功耗分析 Table 1 Differential power
33、analysis using random plaintext in attack point AP1 编号 明文 无掩码的SM4 AP1处汉明距离 掩码的SM4 AP1处汉明距离 1 5eb56815700fba3f1db24ab7d9093a6e 3 6 2 d2e727f4a21fe9f0a26dd70aa31ba7a6 3 2 3 ed21f71929a69b36b868d71bec5e0522 3 4 4 08993784251346450626a94c6facf0ba 6 5 5 d847cd39cdd450d5111c2f4cf454a4ad 5 4 6 f82fcd98e9ed
34、cdeaf0636fce5f9bc6a0 6 3 7 e804adfa65ab376fac92842fed9b3f4c 5 4 8 e6d64e9a4de823230d549562f50d6bb8 2 5 9 576de93be15bea1f86dc00228602eecf 1 2 10 02ab4acb10a220b067ed86f9a9060bab 5 6 根据表1的实验数据, 未使用掩码的SM4算法在攻击点AP1处的模拟差分功耗为: unmask 1 03.000,而掩码的算法在攻击点的模拟差分功耗为:mask 1 00.600. 当实验样本数增加时, 无掩码的SM4算法和使用掩码的算法
35、在攻击点AP1处的模拟差分功耗对比 如下: 表2 随机明文差分功耗分析比较 Table 2 The comparison of differential power analysis using random plaintext 样本数 无掩码 掩码 82 3.02344 0.19531122 2.99707 0.75391 162 3.01398 0.73425 根据表2的结果, 使用本文的掩码方法实现的SM4算法, 在攻击点AP1处, 与未使用掩码实现的SM4算法相比, 其差分功耗已发生明显变化. 即使猜测的密钥与实际密钥存在相关性, 由于随机掩码的作用, 当样本容量变得越来越大时, 使得
36、攻击点处的差分功耗接近于平坦, 从而在此处不足以形成尖峰的情形. 在HHNEC 0.13m CMOS工艺下, 针对普通SM4算法和使用本文掩码方法实现的SM4算法分别进行了逻辑综合和电路设计. 二者相比, 在相同频率等条件下, 掩码实现的SM4面积上增加约15%, 存储空间增加259字节用于存放掩码的随机数和新的S盒. 使用的随机数在每次计算都更新的情况下, 性能损耗约13%, 如果随机数仅更新一次, 则性能损耗基本可不计. 具体电路性能指标如表3所示. 表3 算法电路设计比较 Table 3 The comparison of algorithm circuit designs 指标 普通的
37、SM4算法 本文掩码方法的SM4算法 频率(MHz)50 50门数(gates)14 K 16 K 性能(Mbps)200 175 (每次掩码更新) 200 (仅更新一次掩码) 88 Journal of Cryptologic Research 密码学报 Vol.3, No.1, Feb. 2016 本文的掩码方法, 与现有其他掩码方法实现的电路比较, 见表4. 表4 与现有方案比较 Table 4 The comparison with existing schemes 指标 掩码方法15 掩码方法28本文掩码方法 工艺SIMC 0.18 m SIMC 0.18 m HHNEC 0.13
38、m 频率(MHz)50 50 50门数(gates)25 K 36 K 16 K 性能(Mbps)200 200 175(每次掩码更新) 200(仅更新一次掩码) 同时, 使用本文3.1节中描述的攻击方法, 针对普通SM4算法和使用本文掩码方法实现的SM4算法, 利用Riscure公司的Inspector 4.7侧信道分析平台, 对3.2节中所述的攻击点AP1的第一轮运算数据, 进行了50万组随机明文测试, 差分结果如图4和图5所示. 图4 未掩码的SM4算法的差分功耗分析 Figure 4 The DPA of unmasked SM4 图5 掩码的SM4算法的差分功耗分析 Figure 5
39、 The DPA of masked SM4 裴 超 等: 一种SM4掩码方法和抗DPA攻击分析 89 攻击实验使用的密钥为(0x01234567,0x89abcdef,0xfedcba98,0x76543210), 轮密钥0rk的第一字节为0xF1. 当0,rks猜测正确时, 此时如图4中所示, 未掩码的SM4算法将在此处的运算出现明显的尖峰, 实验采集约5000组曲线进行分析, 可成功推导出完整的密钥. 而使用了掩码的SM4算法, 即使0,srk猜测是正确的, 但是由于算法运行时数据的随机处理, 相同攻击点上, 将导致差分功耗上没有明显的尖峰出现, 如图5所示, 从而不能获得有用的信息,
40、50万组的实验结果显示攻击未成功. 图4和图5的实际攻击结果也表明了掩码方法的有效性是与前文中的理论分析一致的. 6 总结 本文通过对SM4算法的乘法掩码分析, 同时结合多路径掩码的特点, 提出了一种随机掩码的方法, 将密钥扩展和加解密过程中的所有数据都进行掩盖, 数据与操作的相关性被消除, 从而达到了抵御侧信道攻击的目的. 实验首先使用了理论模拟攻击的方法, 对攻击对象的汉明距离直接进行攻击分析, 得出理论的数值结果, 并使用攻击设备进行实际攻击分析, 将二者所得到的结果进行比对, 得出一致性结论. 另外, 由于不需要对算法的S盒的代数表达式进行分析, 仅通过对S盒进行随机的行列变换, 因而
41、仍然能够通过查表的方式进行实现, 去掩码处理也十分简单, 软硬件实现代价低, 性能影响也很小. 该掩码方法对于一些未知S盒代数结构的密码算法来说, 尤其适用. 本文提出的掩码方法, 引入了多个随机数, 理论上能够抵御二阶及三阶的DPA攻击14,16,17,18. 针对高阶的DPA攻击, Schramm和Paar在对AES掩码的高阶防护方法中进行了相关描述与评估, 仿真认为至少需要约5410条攻击曲线16, 实际中可能更多. 但WangFY等人提出了一种CSDCA19的组合攻击方法, 实验数据显示可将攻击所需的曲线条数极大降低, 对二阶掩码防护设计提出了挑战. 本文的掩码防护方法, 对二阶或高阶
42、的攻击的抵御能力, 将是下一步的研究内容. References 1 BAI X F, GUO L, XU Y H, et al. Research on Differential power analysis attack on SMS4 algorithmJ. Journal of Chinese Computer Systems, 2009, 30(3): 541544. 2 LI L, LI R F, LI J, et al. Differential power analysis attacks on SMS4J. Computer Science, 2010, 37(7): 394
43、1. 3 WANG S T, GU D W, LIU J R, et al. A Power Analysis on SMS4 Using the Chosen Plaintext MethodC. In: 2013 9th International Conference on Computational Intelligence and Security (CIS). IEEE, 2013: 748752. 4 QIU S, BAI G Q. Power analysis of a FPGA implementation of SM4C. In: 2014 International Co
44、nference on Computing, Communication and Networking Technologies (ICCCNT). IEEE, 2014: 16. 5 BAI X F, XU Y, GUO L. Securing SMS4 Cipher against differential power analysis and its VLSI implementationC. In: 11th IEEE Singapore International Conference on Communication SystemsICCS 2008. IEEE, 2008: 16
45、7172. 6 GOLI J D, TYMEN C. Multiplicative masking and power analysis of AESC. In: Cryptographic Hardware and Embedded SystemsCHES 2002. Springer Berlin Heidelberg, 2003: 198212. 7 ZHANG Y W, GONG B B, LIU L E, et al. AES dual-path masking method for resisting side-channel analysisJ. Computer Enginee
46、ring, 2012, 38(13): 108111. 8 TAN R N, LU Y Y, TIAN J L. SM4 muti-path multiplicative masking method agaist side-channel attackJ. Computer Engineering, 2014, 40(5): 130108. 9 LIANG H, WU L, ZHANG X, et al. Design of a masked S-Box for SM4 based on composite fieldC. In: 2014 Tenth International Conference on Computational Intelligence and Security (CIS). IEEE, 2014: 387391. 10 KOCHER P, JAFFE J, JUN B. Differential power analysisC. In: Advances in CryptologyCRYPTO 1999. Springer Berlin Heidelberg, 1