1、密码学报ISSN 2095-7025 CN 10-1195/TNJournal of Cryptologic Research,2023,10(1):209218密码学报编辑部版权所有.E-mail:http:/Tel/Fax:+86-10-82789618一种基于乘法掩码的 AES 防护方案*郭 筝1,杨正文2,张效林2,卢 岩3,原义栋41.智巡密码(上海)检测技术有限公司,上海 2016012.上海交通大学 电子信息与电气工程学院,上海 2002403.国网辽宁省电力有限公司电力科学研究院,沈阳 1100064.北京智芯微电子科技有限公司,北京 100094通信作者:郭筝,E-mail:
2、摘要:AES 通常采用掩码方法来抵御旁路攻击,其中乘法掩码方案因适用于非线性操作而备受青睐,但其也由于零值问题使得应用场景受限.本文提出了一种结合乘法掩码和伪轮防护的方案,通过设计相应的组合电路将零值映射成非零值,使得进入求逆操作的数据非零,基于有限域的同构特征优化了求逆运算.不仅能够克服零值问题,而且相比于传统乘法掩码方案,大大减少了所需的求逆操作,可以抵御二阶 DPA攻击.在 FPGA 上对其实现并进行电路优化,对采集的功耗曲线进行了 DPA 攻击,在 100 万条曲线下无发现明显泄露,可验证本掩码方案具备一定的安全性.关键词:AES;侧信道分析;DPA;乘法掩码中图分类号:TP309.7
3、文献标识码:ADOI:10.13868/ki.jcr.000590中文引用格式:郭筝,杨正文,张效林,卢岩,原义栋.一种基于乘法掩码的 AES 防护方案J.密码学报,2023,10(1):209218.DOI:10.13868/ki.jcr.000590英文引用格式:GUO Z,YANG Z W,ZHANG X L,LU Y,YUAN Y D.A side-channel countermeasurefor AES based on multiplication maskJ.Journal of Cryptologic Research,2023,10(1):209218.DOI:10.138
4、68/ki.jcr.000590A Side-channel Countermeasure for AES Based on MultiplicationMaskGUO Zheng1,YANG Zheng-Wen2,ZHANG Xiao-Lin2,LU Yan3,YUAN Yi-Dong41.Zhixun Crypto Testing and Evaluation Technology Co.Ltd.,Shanghai 201601,China2.School of Electronic Information and Electrical Engineering,Shanghai Jiao
5、Tong University,Shanghai200240,China3.Electric Power Research Institute,State Grid Liaoning Electric Power Co.Ltd.,Shenyang 110006,China4.Beijing Smart-chip Microelectronics Technology Co.Ltd.,Beijing 100094,ChinaCorresponding author:GUO Zheng,E-mail:Abstract:Masking techniques are often applied to
6、AES to resist side-channel attacks,amongwhich multiplicative mask schemes are favored because of their applicability to nonlinear operations.However,their application scenarios are limited due to the zero-value problem.This paper proposes*基金项目:国家电网有限公司总部科技项目(5100-201941446A-0-0-00)Foundation:Science
7、 and Technology Project of State Grid Corporation of China(5100-201941446A-0-0-00)收稿日期:2022-02-23定稿日期:2022-09-05210Journal of Cryptologic Research 密码学报 Vol.10,No.1,Feb.2023a scheme combining multiplication mask and pseudoround protection.The proposed scheme uses acombinatorial circuit that converts
8、zero value to non-zero to overcome the zero-value problem.Thefinite field homomorphism is used to optimize the inverse operations.This scheme requires less modularinverse operations than the traditional schemes and can resist the second-order DPA attack.It hasbeen implemented on an FPGA with optimiz
9、ation,and DPA attacks have been tested on the collectedpower traces.In the experiments,no observable leakage was found in 1 million traces,which showsthat the proposed scheme is sufficiently secure against DPA attacks.Key words:AES;side-channel analysis;DPA;multiplication mask1引言AES 算法是国际加密标准,其因高效性和
10、高安全性而得到了广泛的关注,大量攻击以及防护掩码都针对该算法展开1,其中以 Kocher 等 1999 年提出的 DPA(differential power analysis)攻击2威胁性最大.与传统攻击不同,此类攻击针对的不是加密算法本身,而是加密算法的硬件实现方式.通过采集硬件加密过程中产生的物理信息(电磁信号、功耗等),利用统计学方法恢复密钥.随着该类分析方法的提出,有学者开始研究防护方法,攻防技术相互促进发展.随后,一些高阶 DPA 攻击方法被提出3,攻击者利用功耗曲线同一时刻的 n 个中间变量的联合泄露来进行攻击.由于攻击难度随着阶数 n 的增长呈现指数变化,所以实际中大多考虑 n
11、=1 和 n=2 的情况,目前对于实际电路的高阶分析也主要针对 n=2 的情况.旁路攻击的本质是寻找物理信息与算法过程中的中间值之间的相关性,各种防护方法的根本思路是破坏泄露信息与泄露中间值的相关性.一些防护方案,如插入伪轮计算、随机化执行时间、设计互补电路等,都能在一定程度上抵抗 DPA 攻击.但是随着攻击样本的增加和预处理操作的运用,这些方案的防护效果大大降低,甚至失效.1999 年 Chari 等4第一次提出掩码方案,其思路是将目标变量拆分成多个子分量,使得功耗与目标变量无关,而与每个子分量相关.之后一些改进方案和相应攻击方法都随之产生,Mangard 等5指出,一旦电路中出现由于组合逻
12、辑电路、路径延时、路径不平衡等导致的毛刺(glitch),则算法过程的中间值都将被探测到,这会使得掩码方案失效.后来 Prouff 等在文献 6 中和 Nikova 等在文献 7 中分别提出了基于秘密共享和基于门限电路的防护方案,并证明了这些方案可有效抵御 glitch.Bilgin 等将这些方法扩展到了高阶分析和防护技术上8.基于共享随机数的布尔掩码方案是当前的热点研究方向之一,该类研究的目标是降低布尔掩码方案的资源使用量或提升掩码方案的执行效率9,10.以上这些方案大多涉及的是布尔掩码,但是布尔掩码不适合 S 盒等非线性操作,因此有人考虑将布尔掩码和乘法掩码的方法结合起来.Akkar 和
13、Girau 在 CHES 2001 中第一次在 AES 上实现布尔掩码与乘法掩码之间的转换11,但这一方法在 CHES 2002 上就被指出存在漏洞12,Goli 和 Tymen 发现了该方法在零值攻击下是不安全的,因为零值的乘法掩码操作与非零值的乘法掩码操作在功耗特征上有明显区别,根据这个特性可以攻击密码算法的实现.后来很多防护方案提出将零值映射成非零值,以避免出现零值问题,文献 1315 中 Genelle 深入研究了将布尔掩码和乘法掩码之间的安全转换,并将其推广到高阶方案上,但是这些都是针对密码电路软件实现的方式.结合布尔掩码和乘法掩码来进行综合防护可在一定程度上弥补乘法掩码的不足16.
14、本文基于 FPGA 平台实现了抗二阶 DPA 攻击的 AES 算法,防护方法基于乘法掩码实现,设计了专门的电路结构解决了零值问题,同时添加了伪轮计算,增大了 AES 算法抵御高阶 DPA 的能力.通过 FPGA 功耗实验平台,采集了 100 万条曲线,对其进行了二阶 DPA 攻击,没有明显泄露,证明了防护方案的有效性.2预备知识2.1AES 算法AES 算法的明文长度为 128 比特,密钥长度支持 128、192、256 比特,不同的密钥长度对应不同的加密轮数.本次的研究对象是 AES-128,即密钥长度为 128 比特,对应的是 10 轮加密.其中前 9 轮的迭代过程是相同的,运算步骤包括字
15、节代换(SubBytes)、行移位(ShiftRows)、列混淆(Mixcolumns)和轮密钥异或(AddRoundKey).最后一轮包括字节代换、行移位和轮密钥异或.AES 运算结构如图1所示.郭筝 等:一种基于乘法掩码的 AES 防护方案211图 1 AES 运算结构Figure 1 Overall procedure of AES2.2针对 AES 的 DPA 攻击DPA,即差分功耗分析,是能量侧信道分析的重要组成部分,这一攻击方法由 Kocher 等在 1999 年首次提出2.DPA 攻击利用目标设备在运行特定密码算法时泄露功耗间的均值差,来推断所用的密钥比特.DPA 攻击能验证密码
16、算法中密钥与差分功耗信息间的关系.CPA(correlation power analysis)则是基于DPA 攻击的思想,借助皮尔森相关性系数(Pearsons correlation coefficient)等统计分析技术恢复完整的密钥字节.针对 AES 的一般 DPA 攻击步骤如下:步骤 1:选取攻击的中间值,通常选择字节代换的输入和输出.步骤 2:采集硬件实现加密算法执行过程中的功耗曲线,将功耗曲线映射为功耗矩阵.步骤 3:穷举参与单个 S 盒计算的密钥,用猜测的密钥和明文进行计算,将字节代换前后的值进行异或,再根据功耗模型,映射成中间值矩阵.步骤 4:将功耗矩阵和中间值矩阵做相关性分析,相关性最大的猜测密钥即判定为真实密钥.DPA 攻击可从包含过多噪声的测量中提取秘密信息,但缺点是需要使用大量的功耗曲线.攻击者需要已知被攻击算法的明密文以对算法的特定步骤进行密钥字节的猜解.即使功耗曲线的有效泄露较少,DPA 依然可以有效识别,即 DPA 具有天然的纠错与抗干扰属性.在实际中,攻击者可以对那些易受攻击的智能卡或其他设备反复执行加密算法来实施 DPA 分析并获取密钥.2.3乘法掩