«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (6): 139-145,153  DOI: 10.19678/j.issn.1000-3428.0061797
0

引用本文  

赵秉宇, 王柳生, 张美玲, 等. 针对重用掩码AES算法的随机明文碰撞攻击[J]. 计算机工程, 2022, 48(6), 139-145,153. DOI: 10.19678/j.issn.1000-3428.0061797.
ZHAO Bingyu, WANG Liusheng, ZHANG Meiling, et al. Random Plaintext Collision Attack Against AES Algorithm with Reused Masks[J]. Computer Engineering, 2022, 48(6), 139-145,153. DOI: 10.19678/j.issn.1000-3428.0061797.

基金项目

国家重点研发计划项目(2017YFB0802000);陕西省重点研发计划项目(2020ZDLGY08-04)

作者简介

赵秉宇(1996—),男,硕士研究生,主研方向为侧信道攻击;
王柳生,硕士研究生;
张美玲,讲师;
郑东,教授

文章历史

收稿日期:2021-05-31
修回日期:2021-08-10
针对重用掩码AES算法的随机明文碰撞攻击
赵秉宇1 , 王柳生1 , 张美玲1,2 , 郑东1,2     
1. 西安邮电大学 网络空间安全学院, 西安 710121;
2. 西安邮电大学 无线网络安全技术国家工程实验室, 西安 710121
摘要:侧信道攻击是密码学研究的热点方向,碰撞攻击作为侧信道攻击的重要分支,可从泄露能量中有效提取中间值信息,根据中间值信息检测不同S盒之间的碰撞,并利用碰撞建立不同密钥字节之间的线性关系,缩小密钥候选值的空间。针对使用重用掩码的高级加密标准(AES)算法,自适应选择明文碰撞攻击方法需要预先建立攻击模板,并且实施攻击所需的前提条件较多。提出一种高效的随机明文碰撞攻击方法,基于2个不同S盒输入值的汉明距离及其对应能量迹的欧氏距离之间的关系,从256个密钥异或值中找出正确的密钥异或值。通过理论分析得出该方法无需预先确定碰撞阈值及建立攻击模板,即可有效利用能量迹中未发生碰撞的信息,并且所加密的明文是随机的,能在没有目标设备的情况下实施攻击。实验结果表明,与自适应选择明文碰撞攻击、改进型相关性碰撞攻击等方法相比,该方法减少了实现碰撞攻击所需的前提条件,并且扩大了攻击范围。
关键词侧信道攻击    碰撞攻击    汉明距离    欧氏距离    高级加密标准    
Random Plaintext Collision Attack Against AES Algorithm with Reused Masks
ZHAO Bingyu1 , WANG Liusheng1 , ZHANG Meiling1,2 , ZHENG Dong1,2     
1. School of Cyberspace Security, Xi'an University of Posts & Communications, Xi'an 710121, China;
2. National Engineering Laboratory for Wireless Security, Xi'an University of Posts & Telecommunications, Xi'an 710121, China
Abstract: The topic of side-channel attacks is popular in cryptographic research. As an important branch of side-channel attacks, collision attacks can effectively extract information related to intermediate values from energy leakage. The attacker can detect collisions between two different S-boxes through an analysis of intermediate-value information, whereby a linear relationship between the different key bytes can be established through the collisions. These linear relationships can reduce the key candidate space. For the Advanced Encryption Standard(AES) algorithm with reused masks, an adaptive chosen-plaintext collision attack is proposed, requiring a pre-established attack template and high conditions to launch the attack. To address this problem, this study proposes an efficient random plaintext collision attack method. Based on the relationship between the Hamming distance of two different S-box input values and the Euclidean distance of the corresponding energy trace, the method determines the correct key XOR value from 256 key XOR values. Theoretical analysis is offered to prove that the method utilizes the information in power traces that do not collide while requiring neither a pre-established template nor a pre-determined suitable collision threshold in advance. In addition, this method is a known plaintext attack; therefore, it can be implemented when the attacker is unable to operate the target devices. The experimental results show that, compared with the adaptive chosen-plaintext collision attack, the Improved Collision-Correlation Attack(ICCA), and other methods, this method reduces the conditions to launch the attack, expanding the attack ranges.
Key words: side-channel attack    collision attack    Hamming distance    Euclidean distance    Advanced Encryption Standard(AES)    

开放科学(资源服务)标志码(OSID):

0 概述

密码算法在加密设备上进行实现,加密设备在执行算法的过程中不可避免地会泄露不同形式的物理信息,例如能量消耗、电磁辐射、声音等,这些信息统称为侧信道信息。侧信道攻击是密码学研究的热点方向,自从KOCHER在1996年提出计时攻击思想以来[1],研究人员提出了大量侧信道攻击方法,例如差分能量分析攻击[2]、碰撞攻击[3]、相关能量分析攻击[4]、模板攻击[5]等。随着侧信道攻击方法的出现,与其相关的能量迹定位方法[6]和侧信道信息泄露评估方法[7-8]也陆续被提出。侧信道分析攻击能够从物理信道泄露的能量消耗等物理信息中获取密码设备运算时与密钥相关的中间值信息,并且能够分段恢复较长的密钥,对加密设备造成了很大的安全威胁。

碰撞攻击是侧信道攻击中的一种,关注的是加密设备在加密或解密过程中算法中间值是否存在碰撞,即是否出现相同的中间值,可以从泄露能量中有效地提取密钥相关信息。2003年,SCHRAMM等[3]提出针对数据加密标准(Data Encryption Standard,DES)的侧信道碰撞攻击。2004年,SCHRAMM等[9]又提出针对高级加密标准(Advanced Encryption Standard,AES)的列混合变换输入字节的碰撞检测攻击方法。2007年,BOGDANOV[10]提出针对AES的线性碰撞攻击,该方法改进了SCHRAMM等提出的针对AES的碰撞检测攻击。在实际应用中,为了抵抗侧信道攻击[11-12],加密设备[13-14]一般会采取一系列的对策,掩码技术[15-16]就是其中一种。2010年,MORADI等[17]提出一种能够识别使用掩码技术的AES算法S盒间碰撞的方法。2011年,CLAVIER等[18]利用重用掩码的特点,建立不同的S盒间带掩码数据的碰撞关系。2012年,BOGDANOV等[19]提出一种将DPA和侧信道碰撞攻击相结合的攻击方法,大幅提高了碰撞攻击效率。2019年,NIU等[20]提出一种能抵抗3种典型掩码方案的碰撞攻击思路,利用掩码和被掩码数据处理方式相同的特点,选择AES的列混合变换作为攻击点并实现了很好的攻击效果;DING等[21]提出自适应选择明文碰撞攻击,通过建立能量迹欧氏距离与中间值汉明距离的联系,用能量迹泄露的距离信息减小密钥候选值空间;ZHENG等[22]提出基于假设检测的侧信道碰撞攻击,利用假设检测方法确定一个合理的碰撞阈值,该方法提高了碰撞检测的成功率。

文献[18]提出的改进型相关性碰撞攻击需要预先确定1个碰撞阈值,通过比较2段能量迹之间的相关系数和碰撞阈值之间的大小关系来确定是否发生碰撞,阈值的准确性会影响碰撞检测的成功率,进而影响攻击的成功率。该攻击方法只能利用能量迹中发生碰撞的信息,未发生碰撞的信息会被忽略。文献[21]提出的自适应选择明文碰撞攻击在攻击之前需要攻击者拥有一个和目标设备相同的设备用于建立攻击模板,实施复杂且具有一定的局限性。由以上分析可知:文献[18, 21]中提出的方法都需要控制每次加密的明文,在攻击者不能操作和目标设备相同的设备并且只能获得一定数量的随机明文和对应能量迹的情况下,这2种方法均会失效。

本文基于重用掩码AES算法任意2个S盒之间输入的汉明距离和欧式距离之间的关系[21],提出一种高效的随机明文碰撞攻击方法。该方法无需预先确定碰撞阈值及建立攻击模板,即可有效利用能量迹中未发生碰撞的信息。此外,该方法属于随机明文攻击方法,因此当攻击者不能对目标设备进行操作时也可实施攻击。

1 相关工作 1.1 汉明重量模型

汉明重量模型[5]是指设备泄露的能量与被处理数据的汉明重量相关,计算公式如下:

$ {t}_{q}={s}_{q}\mathrm{H}\mathrm{W}\left(x\right)+{r}_{q} $ (1)

其中:$ q $表示能量迹采样点的序号;$ {t}_{q} $表示对数据$ x $进行处理时在采样点$ q $处泄露的能量消耗值;$ {s}_{q} $表示采样点$ q $处的系数;$ {r}_{q} $表示对应能量迹在采样点$ q $处的噪声,并且服从正态分布;$ \mathrm{H}\mathrm{W}\left(x\right) $表示求$ x $的汉明重量。

1.2 重用掩码方案

重用掩码方案在AES算法加密的每一轮中仅产生2个随机掩码值,在同一轮中16个S盒的输入用同一掩码,16个S盒的输出用同一掩码,也就是在一轮中只需要预计算1个新的S盒置换表$ {S}^{\text{'}} $。新的S盒置换表与普通的置换表之间的关系为$ {S}^{\text{'}}\left({x}_{i}\mathrm{⊕}\mathrm{m}\mathrm{a}\mathrm{s}{\mathrm{k}}_{1}\right)= $$ S\left({x}_{i}\right)\mathrm{⊕}\mathrm{m}\mathrm{a}\mathrm{s}{\mathrm{k}}_{2} $,其中,$ i\in \left[\mathrm{1, 16}\right] $,mask1是S盒的输入掩码,mask2是S盒的输出掩码,重用掩码方案的框图如图 1所示。

Download:
图 1 重用掩码方案框图 Fig. 1 Block diagram of reused mask scheme
1.3 汉明距离和欧式距离

汉明距离是指使用重用掩码的AES算法同一轮加密中2个S盒的输入之间的汉明距离。如图 2所示,2个不同的S盒$ {S}_{1}^{\text{'}} $$ {S}_{2}^{\text{'}} $的输入分别为$ {x}_{1}\mathrm{⊕}\mathrm{m}\mathrm{a}\mathrm{s}{\mathrm{k}}_{1} $$ {x}_{2}\mathrm{⊕}\mathrm{m}\mathrm{a}\mathrm{s}{\mathrm{k}}_{1} $,那么它们之间的汉明距离就是$ {x}_{1}={p}_{1}\mathrm{⊕}{k}_{1} $$ {x}_{2}={p}_{2}\mathrm{⊕}{k}_{2} $之间的汉明距离,即$ \mathrm{H}\mathrm{D}({x}_{1}, {x}_{2}) $,其中$ \mathrm{H}\mathrm{D}({x}_{1}, {x}_{2}) $表示求$ {x}_{1} $$ {x}_{2} $之间的汉明距离。

Download:
图 2 汉明距离示意图 Fig. 2 Schematic diagram of Hamming distance

欧氏距离计算以前2个S盒为例,对1个明文加密,采集其对应的能量迹,将能量迹中对应于图 2中处理数据$ {x}_{1}\mathrm{⊕}\mathrm{m}\mathrm{a}\mathrm{s}{\mathrm{k}}_{1} $$ {x}_{2}\mathrm{⊕}\mathrm{m}\mathrm{a}\mathrm{s}{\mathrm{k}}_{1} $的2段能量迹分别截取出来并对齐,然后根据式(2)计算欧氏距离$ \mathrm{E}\mathrm{D}({x}_{1}, {x}_{2}) $

$ \mathrm{E}\mathrm{D}({x}_{1}, {x}_{2})=\sum\limits _{q=1}^{l}({t}_{1, q}-{t}_{2, q}{)}^{2} $ (2)

其中:$ {t}_{i, q} $是第i个S盒所对应的能量迹中的第q个采样点的采样值,l是第i个S盒所对应的能量迹中的采样点的个数。通过式(2)可以看出,欧氏距离本质上就是采用最小二乘法计算同一轮加密中2段能量迹之间的累积距离。

在本文中,如果没有特殊说明,则汉明距离均指使用重用掩码的AES算法同一轮加密中2个不同S盒的输入之间的汉明距离,欧氏距离均指同一轮加密中2个不同S盒的输入位置所对应2段能量迹间的累积距离。

1.4 汉明距离和欧式距离之间的关系

在使用重用掩码的AES算法中,对于2个不同的S盒$ {S}_{1}^{\text{'}} $$ {S}_{2}^{\text{'}} $,假设它们的输入分别为$ {x}_{1}^{\text{'}}={p}_{1}\mathrm{⊕} $ $ {k}_{1}\mathrm{⊕}\mathrm{m}\mathrm{a}\mathrm{s}{\mathrm{k}}_{1} $$ {x}_{2}^{\text{'}}={p}_{2}\mathrm{⊕}{k}_{2}\mathrm{⊕}\mathrm{m}\mathrm{a}\mathrm{s}{\mathrm{k}}_{1} $,其中,$ {p}_{1} $$ {p}_{2} $分别是第1个明文字节和第2个明文字节,$ {k}_{1} $$ {k}_{2} $$ {p}_{1} $$ {p}_{2} $对应的密钥字节,mask1是第1轮加密对应的输入掩码,则这2个S盒的输入之间的汉明距离为$ {{\mathit{\Delta}} }_{\mathrm{h}\mathrm{d}}=\mathrm{H}\mathrm{D}({p}_{1}\mathrm{⊕}{k}_{1}, {p}_{2}\mathrm{⊕}{k}_{2}) $,与该汉明距离对应的欧氏距离为$ \mathrm{E}\mathrm{D}({x}_{1}, {x}_{2})=\sum\limits_{q=1}^{l}({t}_{1, q}-{t}_{2, q}{)}^{2} $

对同一$ {{\mathit{\Delta}} }_{\mathrm{h}\mathrm{d}} $下的N个明文进行加密,分别求每个$ {{\mathit{\Delta}} }_{\mathrm{h}\mathrm{d}} $对应的欧氏距离的均值,计算公式如下:

$ {\xi }_{{{\mathit{\Delta}} }_{\mathrm{h}\mathrm{d}}}=\frac{1}{N}\sum\limits_{j=1}^{N}\sum\limits_{q=1}^{l}({t}_{1, q}^{\left(j\right)}-{t}_{2, q}^{\left(j\right)}{)}^{2} $ (3)

其中:$ {t}_{i, q}^{\left(j\right)} $表示同一$ {{\mathit{\Delta}} }_{\mathrm{h}\mathrm{d}} $下第j个明文加密时对应于第i个S盒的能量迹段的第q个采样点的能量值;$ {\xi }_{{{\mathit{\Delta}} }_{\mathrm{h}\mathrm{d}}} $表示汉明距离为$ {{\mathit{\Delta}} }_{\mathrm{h}\mathrm{d}} $时的欧式距离的均值。汉明距离和欧氏距离之间的关系如下[19]

$ {\xi }_{{{\mathit{\Delta}} }_{\mathrm{h}\mathrm{d}}}=2{\sigma }^{2}l+{{\mathit{\Delta}} }_{\mathrm{h}\mathrm{d}}\cdot \sum\limits_{q=1}^{l}{s}_{q}^{2} $ (4)

其中:$ {s}_{q} $是汉明重量模型中的系数;$ {\sigma }^{2} $是加密设备的噪声方差,该值对所有的采样点都是近似相等的。

由此可见,欧氏距离的均值和汉明距离之间满足线性关系。

2 攻击原理 2.1 欧式距离归类

使用猜测的汉明距离将欧氏距离进行归类,通过某个明文分别与256个密钥异或值求得256个猜测的汉明距离,利用这256个猜测的汉明距离分别与该明文对应的欧氏距离进行归类。

假设某个随机明文的前2个字节分别为$ {p}_{1}=143 $$ {p}_{2}=59 $,其对应欧氏距离为$ \mathrm{E}\mathrm{D}({p}_{1}, {p}_{2}) $。如表 1所示,通过$ {p}_{1} $$ {p}_{2} $以及猜测的密钥异或值$ {\mathit{\Delta}} $求得汉明距离$ \mathrm{H}\mathrm{D} $,然后将$ \mathrm{H}\mathrm{D} $$ {\mathit{\Delta}} $分别作为行号和列号对欧氏距离进行归类。对于明文$ {p}_{1} $$ {p}_{2} $,通过$ {\mathit{\Delta}} =\mathrm{0, 1}, \cdots , 255 $分别可以求得汉明距离HD=4,5,…,4,假设第i行第j列位置处原来的累积欧氏距离为$ \mathrm{e}{\mathrm{d}}_{i, j} $,则这次加密后对2个S盒之间的欧氏距离归类的结果如表 1所示,其中灰色位置为欧氏距离归类时的位置。从表 1可以看出,每个位置所存放的是累积欧氏距离,也就是在已经确定一个欧氏距离的位置之后,需要将该欧氏距离与这个位置原来的值相加,得到该位置处新的累积值。

下载CSV 表 1 明文字节p1p2对应欧氏距离归类后的结果 Table 1 Results of Euclidean distance classification of plaintext bytes p1 and p2
2.2 归类结果分析

为方便归类结果的分析,使用式(5)来描述式(4)中汉明距离和欧式距离均值之间的线性关系。

$ y=ax+b $ (5)

其中:x表示实际的汉明距离;y表示x对应的欧氏距离的均值;$ a=\sum\limits_{q=1}^{l}{s}_{q}^{2} $$ b=2{\sigma }^{2}l $是2个常系数。由式(5)可以得到表 2中的欧氏距离的均值和实际汉明距离的关系。

下载CSV 表 2 汉明距离和欧氏距离均值的对应关系 Table 2 Relationship between Hamming distance and the mean of Euclidean distance

2个明文字节的异或值是1个8 bit数据,对于1个8 bit的数据,共有$ {2}^{8} $个可能值,这256个值出现的概率相等且均为$ 1/256 $。考虑所有256个值,根据表 2描述的关系进行欧氏距离归类,令$ d $表示猜测密钥异或值和正确密钥异或值之间的汉明距离。在归类后,首先计算表 1中每个位置累计欧氏距离的均值,然后计算表 1中第1列数据与后面256列数据的均值之间的相关系数$ \rho $,得到表 3所示的结果。

下载CSV 表 3 不同的d所求得的相关系数 Table 3 Correlation coefficients obtained for different values of d

通过式(6)计算2个长度为n的向量XY之间的相关系数:

$ \rho =\frac{\sum\limits_{i=1}^{n}({x}_{i}-\stackrel{-}{x})\cdot ({y}_{i}-\stackrel{-}{y})}{\sqrt{\sum\limits_{i=1}^{n}({x}_{i}{-\stackrel{-}{x})}^{2}}\cdot \sqrt{\sum\limits_{i=1}^{n}({y}_{i}{-\stackrel{-}{y})}^{2}}} $ (6)

其中:$ {x}_{i} $$ {y}_{i} $分别表示向量XY的第i个元素;$ \stackrel{-}{x} $$ \stackrel{-}{y} $分别表示向量XY中所有元素的均值。

表 3中可以看出,在理论情况下,只有$ d=4 $时的相关系数为0,其他情况下相关系数为1或-1。表 3中的结果是理论情况下的相关系数,本文在实验仿真中发现,通过上述归类法处理数据后,不同的$ d $会造成归类时欧氏距离分布的不均匀,从而影响欧氏距离的均值的准确性,最终影响相关系数的求取。相比于直接归类分析,将随机明文分成多组后归类可以得到更好的分析结果,分组归类的原理如图 3所示,首先将明文分成N组进行欧氏距离归类,然后将归类结果拼接在一起,最后求矩阵A中每个位置的均值,计算V和求均值后的A中每一列的相关系数。

Download:
图 3 欧氏距离的分组归类 Fig. 3 Grouping and classification of Euclidean distance

为验证在实际情况下由于d的不同对相关系数的影响,在噪声标准差$ \sigma =0.002\mathrm{ }9 $的情况下,加密10组随机明文,每组包含50 000个明文,设置密钥异或值$ {\mathit{\Delta}} =85 $,通过仿真实验归类分析后进行排名。

表 4给出了排名前8的猜测密钥异或值,可以看出这些值对应的d都很小。图 4给出了所有猜测密钥异或值对应求得的相关系数,可以看出:排名前93个密钥异或值对应相关系数接近于1且递减,对应于d为0、1、2、3的情况;从排名93开始相关系数突然变小,排名93到164对应于d为4的情况,相关系数接近于0;排名164到256的相关系数接近于-1,对应于d为5、6、7、8的情况。图 5给出了这256个排序后的密钥异或值所对应的d,可以看出:排名前10的密钥异或值所对应的d比较小,为0、1、2;当$ d=3 $时所对应的猜测密钥异或值位于排名36到93;93后为$ d\ge 4 $所对应的猜测密钥异或值。

下载CSV 表 4 排名前8的猜测密钥异或值所对应的相关系数 Table 4 Correlation coefficients corresponding to the top 8 guessed key XOR value
Download:
图 4 归类分析后不同排名对应的相关系数 Fig. 4 Correlation coefficients corresponding to different rankings after classification analysis
Download:
图 5 归类分析后不同排名对应的d Fig. 5 d values corresponding to different rankings after classification analysis

以上结果验证了在实际情况中,d的不同会对相关系数造成影响,且根据相关系数对猜测密钥异或值排序后的前10个值所对应的d比较小,正确的密钥异或值排名会比较靠前。基于以上结论,可以首先通过归类分析法将正确密钥异或值所在范围缩小,然后本文攻击方法利用排名靠前的密钥异或值所对应的d比较小的特点提出投票法,从中进一步得到正确异或值。

3 攻击方法设计 3.1 实验平台介绍

采用ChipWhisperer[23]平台作为实验平台,所有实验均使用该平台采集的能量迹,然后用MATLAB对能量迹进行分析。ChipWhisperer是一个开源平台,用于对硬件设备的安全性进行研究。如图 6所示,该平台包含主控板(左)和目标板(右)2个模块。主控板用于采集和传输能量消耗,同时用来实现PC和实验板的数据传输以及密码算法的下载。目标板实现对数据的加密。该平台对于研究人员而言具有低成本、易操作的优点。

Download:
图 6 ChipWhisperer实验平台示意图 Fig. 6 Schematic diagram of the ChipWhisperer experimental platform

实验板主要有2个对应的开源软件配合使用,分别是Capture和Analyzer,前者用于加载加密算法、控制明密文以及捕获能量迹,后者提供了一些分析能量迹的脚本。图 7给出了Capture软件能量迹采集示意图。

Download:
图 7 Capture软件能量迹采集示意图 Fig. 7 Schematic diagram of Capture software energy trace acquisition

不同的实验设备所对应的能量迹具有不同的噪声标准差,本文使用的平台噪声标准差$ \sigma $为0.002 9,通过在能量迹上加入噪声来合理增加标准差。

3.2 攻击流程

本文方法的攻击过程包括线上能量迹采集阶段和线下数据分析阶段,具体攻击流程如下:

步骤1    加密M个随机明文,采集对应的M条能量迹,并记录这M个随机明文。

步骤2    将M个明文和M条能量迹分成N组,每组包含$ M/N $个明文和$ M/N $条能量迹。

步骤3    将每条能量迹中对应于处理16个S盒输入的部分截取出来并对齐。

步骤4    对每条能量迹求第1个S盒和第2个S盒之间的欧氏距离,然后进行归类,并将归类后的矩阵拼接,得到如图 3所示的结果。

步骤5    求矩阵A中每个位置的均值,计算向量V和求均值后的矩阵A中每一列的相关系数,根据相关系数将猜测密钥异或值进行降序排序。

步骤6    用投票法将排序后排名前n的密钥异或值进行投票,筛选出票数最少的密钥异或值,该值是前2个密钥字节$ {k}_{1} $$ {k}_{2} $的异或值$ {{\mathit{\Delta}} }_{\mathrm{1, 2}}={k}_{1}\mathrm{⊕}{k}_{2} $

步骤7    重复步骤4到步骤6,对第1个S盒和另外14个S盒进行归类分析,最终得到如等式(7)所示的第1个密钥字节和其他15个密钥字节之间的线性关系,从而将密钥空间从$ {2}^{128} $缩小到$ {2}^{8} $

$ \left\{\begin{array}{c}{k}_{1}\mathrm{⊕}{k}_{2}={{\mathit{\Delta}} }_{\mathrm{1, 2}}\\ {k}_{1}\mathrm{⊕}{k}_{3}={{\mathit{\Delta}} }_{\mathrm{1, 3}}\\ \vdots \\ {k}_{1}\mathrm{⊕}{k}_{16}={{\mathit{\Delta}} }_{\mathrm{1, 16}}\end{array}\right. $ (7)

步骤8    遍历第1个密钥字节,从剩下的候选密钥中得到正确密钥。

3.3 针对前2个S盒的攻击

为验证本文方法的可行性,将对使用重用掩码方法的AES-128算法进行攻击,攻击的目标点是第1轮加密中前2个S盒的输入位置。在对采集的能量迹进行统计分析之前,需要将每条能量迹所对应16个S盒操作部分截取出来,如图 8所示。由于第1轮中的16个S盒操作的实现方式相同且依次执行,因此通过方差检测可以清晰地区分出16个S盒操作在能量迹中的位置。在确定16个S盒的位置后,对区间内的点进行攻击尝试,最终找到合适的8个采样点。不失一般性,在噪声标准差$ \sigma $为0.002 9的情况下,设置前2个密钥字节分别为$ {k}_{1}=43 $$ {k}_{2}=126 $,共加密30组随机明文,每组包含100个猜测密钥异或值,选择排名1到排名8的猜测密钥异或值作为投票对象。

Download:
图 8 AES加密的第1轮方差检测结果 Fig. 8 Results of the first round variance test of AES encryption

表 5给出了实施欧氏距离归类分析并根据相关系数排序后排名1到排名8的结果,可以看出这8个猜测密钥异或值$ {\mathit{\Delta}} $与正确密钥异或值的距离d均较小,并且距离为0时的正确密钥异或值也包含在其中。在密钥异或值候选空间被缩小后,用投票法筛选出正确密钥异或值。从第1个值93开始分别与另外7个值求汉明距离,对于每个值将求得的7个汉明距离相加作为该值的投票结果。因为排名靠前的猜测密钥异或值与正确密钥异或值的距离均很小,所以通过投票后得到的投票值最小的猜测密钥异或值就是正确密钥异或值。如图 9所示,对前8个猜测密钥异或值分别进行投票,然后统计总票数。从图 9可看出,正确密钥异或值的票数是9,在前8个猜测密钥异或值中最小。

下载CSV 表 5 前2个S盒归类分析排序后的结果 Table 5 Results of classification analysis and sorting of the first two S-boxes
Download:
图 9 排名前8的猜测密钥异或值投票结果 Fig. 9 Results of the voting for the top 8 guessed key XOR value
3.4 攻击成功率统计与对比

为分析本文方法的效率,实验针对重用掩码AES-128算法加密的第1轮实施大量攻击后,统计成功率随着加密次数的变化曲线。在实际攻击中,控制明文分组为30,通过改变每个分组中随机明文的个数来统计成功率。为与其他方法进行对比,在相同的实验环境下实施另外3种攻击方法并统计其成功率。

图 10图 11分别给出了本文方法与文献[18, 21]方法在不同的噪声环境下的攻击成功率对比。文献[18]中提出针对重用掩码AES算法的改进型相关性碰撞攻击(Improved Collision-Correlation Attack,ICCA),该攻击方法的成功率曲线对应图 10图 11中的ICCA方法。文献[21]提出自适应选择明文碰撞攻击,使用最小二乘法(Least Square Method,LSM)和中心矩积法(Central Moment Product,CMP)这2种方法来计算2段能量迹的差,并利用自修正(Self-Correction,SC)错误机制,大幅提升了成功率,该攻击方法的成功率曲线对应图 10图 11中的SC_LSM和SC_CMP方法。

Download:
图 10 针对重用掩码方案的攻击成功率对比($\mathit{\sigma }=0.0029 $ Fig. 10 Comparison of attack success rate for reused mask scheme ($ \mathit{\sigma }=0.0029 $)
Download:
图 11 针对重用掩码方案的攻击成功率对比($ \mathit{\sigma }=0.006 $ Fig. 11 Comparison of attack success rate for reused mask scheme ($ \mathit{\sigma }=0.006 $)

图 10图 11可以看出:在噪声标准差σ为0.002 9时,若要达到95%的成功率,则本文方法需要约1 600条能量迹,其他3种方法中成功率最高的SC_CMP方法也需要约1 600条能量迹;在噪声标准差σ为0.006时,若要达到95%的成功率,则本文方法需要约4 000条能量迹,其他3种方法中成功率最高的SC_CMP方法需要约5 000条能量迹。

由此可见,本文方法相比于SC_CMP方法,成功率的优势并不明显,但相比于其他3种方法,除了不需要预先确定碰撞阈值及预先计算攻击模板外,最大的优势在于明文的随机性。当不允许攻击者操作与目标设备相同的设备且只可获得一定数量的随机明文和其对应能量迹时,其他3种方法就无法实施攻击,因为文献[18, 21]方法需要对选择明文进行加密,在攻击过程中需要对明文进行一定的控制,本文方法只需要获得一定数量的随机明文和其对应能量迹就可实施攻击,不需要攻击者主动控制明文,所以不会受到此因素的影响。

表 6从无需碰撞阈值、无需攻击模板、攻击过程简单、对重用掩码方案具有高效性、可利用未发生碰撞的信息、攻击者能够不操作目标设备等6个方面对本文方法和文献[18, 21-22]方法进行对比,其中,√表示具备该性能优势,×表示不具备该性能优势。由表 6可以看出,本文方法相比于已有方法具有一定的优势。

下载CSV 表 6 4种攻击方法的性能对比 Table 6 Performance comparison of four attack methods
4 结束语

本文针对使用重用掩码技术的AES算法,提出一种高效的随机明文碰撞攻击方法。利用能量迹中未发生碰撞的信息,采用重用掩码AES算法S盒输入的汉明距离和欧式距离的关系,从256个密钥异或值中找出正确的密钥异或值。实验结果表明,与改进型相关性碰撞攻击、自适应选择明文碰撞攻击和基于假设检测的侧信道碰撞攻击方法相比,本文方法无需建立攻击模板及计算碰撞阈值,并且加密的是随机明文,实施简单。由于笔者通过分析发现采用多组明文进行实验可有效减少所需的明文总数,因此在后续工作中将研究明文组数对所需明文总数和成功率的具体影响,从而寻找到最优的明文组数。

参考文献
[1]
KOCHER P C. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems[C]//Proceedings of International Cryptology Conference on Advances in Cryptology. Berlin, Germany: Springer, 1996: 104-113.
[2]
KOCHER P, JAFFE J, JUN B. Differential power analysis[C]//Proceedings of International Cryptology Conference on Advances in Cryptology. Berlin, Germany: Springer, 1999: 388-397.
[3]
SCHRAMM K, WOLLINGER T, PAAR C. A new class of collision attacks and its application to DES[M]. Berlin, Germany: Springer, 2003.
[4]
BRIER E, CLAVIER C, OLIVIER F. Correlation power analysis with a leakage model[C]//Proceedings of International Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Germany: Springer, 2004: 16-29.
[5]
CHARI S, RAO J R, ROHATGI P. Template attacks[C]//Proceedings of International Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Germany: Springer, 2002: 13-28.
[6]
戴立, 胡红钢. 免触发信号的侧信道加解密区间定位方法[J]. 信息网络安全, 2019, 19(3): 43-51.
DAI L, HU H G. Encryption and decryption interval locating method for non-trigger side-channel analysis[J]. Netinfo Security, 2019, 19(3): 43-51. (in Chinese) DOI:10.3969/j.issn.1671-1122.2019.03.006
[7]
王恺, 郭朋飞, 周聪, 等. 基于t检验的侧信道信息泄漏评估方法研究[J]. 信息网络安全, 2020, 20(10): 57-66.
WANG K, GUO P F, ZHOU C, et al. Research on the assessment method of side channel information leakage based on t-test[J]. Netinfo Security, 2020, 20(10): 57-66. (in Chinese) DOI:10.3969/j.issn.1671-1122.2020.10.008
[8]
凌杭, 吴震, 杜之波, 等. 基于汉明重的EPCBC代数侧信道攻击[J]. 计算机工程, 2017, 43(8): 156-160, 168.
LING H, WU Z, DU Z B, et al. Algebraic side channel attack against EPCBC based on hamming weight[J]. Computer Engineering, 2017, 43(8): 156-160, 168. (in Chinese) DOI:10.3969/j.issn.1000-3428.2017.08.026
[9]
SCHRAMM K, LEANDER G, FELKE P, et al. A collision-attack on AES[C]//Proceedings of International Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Germany: Springer, 2004: 163-175.
[10]
BOGDANOV A. Improved side-channel collision attacks on AES[C]//Proceedings of International Workshop on Selected Areas in Cryptography. Berlin, Germany: Springer, 2007: 84-95.
[11]
MESSERGES T S. Securing the AES finalists against power analysis attacks[C]//Proceedings of International Workshop on Fast Software Encryption. Berlin, Germany: Springer, 2000: 150-164.
[12]
HERBST C, OSWALD E, MANGARD S. An AES smart card implementation resistant to power analysis attacks[C]//Proceedings of International Conference on Applied Cryptography and Network Security. Berlin, Germany: Springer, 2006: 239-252.
[13]
AKKAR M L, GIRAUD C. An implementation of DES and AES, secure against some attacks[C]//Proceedings of International Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Germany: Springer, 2001: 309-318.
[14]
HUANG H, LIU L B, HUANG Q H, et al. Low area-overhead Low-Entropy Masking Scheme(LEMS) against correlation power analysis attack[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2019, 38(2): 208-219. DOI:10.1109/TCAD.2018.2802867
[15]
谭锐能, 卢元元, 田椒陵. 抗侧信道攻击的SM4多路径乘法掩码方法[J]. 计算机工程, 2014, 40(5): 103-108, 114.
TAN R N, LU Y Y, TIAN J L. SM4 multi-path multiplicative masking method against side-channel attack[J]. Computer Engineering, 2014, 40(5): 103-108, 114. (in Chinese) DOI:10.3969/j.issn.1000-3428.2014.05.022
[16]
张翌维, 龚冰冰, 刘烈恩, 等. 抵御侧信道分析的AES双路径掩码方法[J]. 计算机工程, 2012, 38(13): 108-111.
ZHANG Y W, GONG B B, LIU L E, et al. AES dual-path masking method for resisting side-channel analysis[J]. Computer Engineering, 2012, 38(13): 108-111. (in Chinese)
[17]
MORADI A, MISCHKE O, EISENBARTH T. Correlation-enhanced power analysis collision attack[C]//Proceedings of International Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Germany: Springer, 2010: 125-139.
[18]
CLAVIER C, FEIX B, GAGNEROT G, et al. Improved collision-correlation power analysis on first order protected AES[C]//Proceedings of International Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Germany: Springer, 2011: 49-62.
[19]
BOGDANOV A, KIZHVATOV I. Beyond the limits of DPA: combined side-channel collision attacks[J]. IEEE Transactions on Computers, 2012, 61(8): 1153-1164. DOI:10.1109/TC.2011.140
[20]
NIU Y C, ZHANG J W, WANG A, et al. An efficient collision power attack on AES encryption in edge computing[J]. IEEE Access, 2019, 7: 18734-18748. DOI:10.1109/ACCESS.2019.2896256
[21]
DING Y L, SHI Y, WANG A, et al. Adaptive chosen-plaintext collision attack on masked AES in edge computing[J]. IEEE Access, 2019, 7: 63217-63229. DOI:10.1109/ACCESS.2019.2916553
[22]
ZHENG D, JIA X, ZHANG M L. Hypothesis testing based side-channel collision analysis[J]. IEEE Access, 2019, 7: 104218-104227. DOI:10.1109/ACCESS.2019.2932036
[23]
O'FLYNN C, CHEN Z. ChipWhisperer: an open-source platform for hardware embedded security research[C]//Proceedings of International Workshop on Constructive Side-Channel Analysis and Secure Design. Berlin, Germany: Springer, 2014: 243-260.