2. 湖南科技大学 信息与电气工程学院, 湖南 湘潭 411201;
3. 知识处理与网络化制造湖南省普通高等学校重点实验室, 湖南 湘潭 411201
2. School of Information and Electrical Engineering, Hunan University of Science and Technology, Xiangtan, Hunan 411201, China;
3. Key Laboratory of Knowledge Processing and Networked Manufacturing, College of Hunan Province, Xiangtan, Hunan 411201, China
开放科学(资源服务)标志码(OSID):
随着信息技术的不断发展,人工智能、大数据、云计算等技术以及智能设备得到广泛应用,它们在给人们工作和生活带来便利的同时也使得信息安全问题日益突出,采用新的技术手段和工具应对这些安全威胁刻不容缓。在信息安全领域,首要考虑的是通过加密方法降低信息泄露的可能,从而保证数据安全。从第一代DES的诞生到如今流行的AES,每一种加密算法都经过了大量严格的软硬件安全性能评估以确保算法的安全性能。1999年,KOCHER[1]提出功耗侧信道攻击,其在密码攻击研究中提供了除数学分析之外的另一种加密攻击方法,这种方法揭示了加密硬件和加密数据之间的关系,通过这种关系可以利用硬件数据加密过程中产生的物理信息,如功耗、电磁辐射和时间等数据来破解加密算法[1-3]。
近年来,随着机器学习特别是深度学习的迅速发展[4],有越来越多的研究人员将机器学习应用于侧信道攻击,且其效果远优于传统分析方法。BACKS等[5]将机器学习应用于打印机的声音侧信道攻击,HOSPODAR等[6]将最小二乘支持向量机对模板攻击中的中间值进行分类,LERMAN等[7]使用随机森林、支持向量机、自组织映射等算法分析侧信道信息,HEUSER等[8]用多类支持向量机攻击多位值(汉明重量模型),BARTKEWITZ等[9]进一步完善上述工作,根据类别的顺序提出新的多类别分类策略,MARTINASEK等[10]提出基于神经网络的AES侧信道攻击方法,并对AES密钥进行分类。
本文从一块加密设备上提取无掩码AES-128加密算法实现过程中的功耗迹线数据集,对功耗迹线不做任何处理而直接保存原始数据。在实验阶段利用相关功耗分析(Correlation Power Analysis,CPA)[11]对整个数据集进行分析,从分析结果中获取每个字节操作所对应的敏感点,即每条迹线1 600个数据点中除噪声外每95个点对应AES一个字节的S盒替换操作。在确定每个字节的操作敏感点后,研究LSTM模型在侧信道分析领域的性能表现,验证LSTM网络解决长时间依赖问题以及处理侧信道功耗序列中时序关系的能力。
1 侧信道分析 1.1 AES-128加密算法AES是一种基于有限域运算的分组密码算法,可以使用一个长度为128位、192位或256位的密钥加密一个分组长度为128位的数据,对应的加密算法分别为AES-128、AES-192和AES-256。AES-128算法能够满足大多数的应用场景,是目前应用最为广泛的一种分组密码算法,因此,本文的侧信道攻击基于AES-128密码实现。AES-128加密过程建立在4×4的字节矩阵上,初值是一个明文区块(矩阵中的一个元素就是明文区块中的一个字节)和密钥区块,加密过程中共需进行10轮迭代,加密时AES的每轮变换包含4个基本步骤,依次为字节替换、行移位、列混淆和轮密钥加,最后一轮只有字节替换、行移位和轮密钥加,不包含列混淆。
AES算法中S盒替换对状态中的每个字节执行非线性替换,将S盒中相应的值替换为原来矩阵中的每个字节值,并对状态中的每个元素独立地进行替换操作。S盒替换是AES算法中唯一的非线性变换,是算法加密安全的关键,同时S盒替换是与密钥密切相关的操作,可以通过中间值(即S盒中取出的值)倒推出密钥,并且S盒替换在加密设备上的操作次数比较多,该操作产生的功耗也比一般操作更明显,便于在功耗迹线中找到该操作的位置以提高功耗侧信道分析的效率。因此,一般侧信道攻击尤其是功耗侧信道攻击,都选择AES算法的第一轮S盒替换或最后一轮S盒替换作为攻击点。
1.2 密码设备的侧信道能量分析攻击密码算法的实现依赖于物理设备平台,即密码芯片,侧信道分析利用加密算法在硬件实现过程中密码芯片泄露的各种侧信道信息进行密码分析,侧信道攻击方法主要有功耗攻击(Power Attack,PA)、电磁攻击(Electro Magnetic Attack,EMA)、时间攻击(Timing Attack,TA)和一些组合式攻击。其中,功耗攻击又称能量分析攻击,其通过分析密码设备的能量消耗获得密钥。加密芯片的能量消耗主要来源于数据的转换过程,当密码芯片在加解密时,加密数据发生变化,数据计算会产生能量消耗。密码芯片的功耗P和数据逻辑值D相关,其数学模型可表述为:
$ P=f\left(D\right)+n $ | (1) |
其中:n为噪声;f为密码芯片功耗P和数据逻辑值D之间的关系函数。加密芯片由数量巨大的逻辑门以及各层材料不同的导线构成,同一时刻参与运算的逻辑门几乎无法统计,因此,式(1)中的f是一个非常复杂的函数,无法运用数学推导的方法进行解析。
传统的能量分析攻击包括简单能量分析攻击(SPA)、差分能量分析攻击(DPA)、相关能量分析攻击(CPA)、模板攻击等多种方式,它们均利用假设的加密中间值与能量泄露点的相关性来验证所猜测密钥的正确性,因此,需要足够多的功耗迹线才能破解出密钥,并且每次攻击不同的设备都是一次全新的任务,每次都需要大量的功耗迹线。
能量分析攻击的本质是对式(1)进行建模和模式识别。机器学习技术可以构建有效的模式识别和特征提取算法[12],因此,多种机器学习模型被研究人员应用于AES的能量分析攻击[13-15]。
1.3 数据采集如图 1所示,本文使用8位ATMEL微控制器ATXMEGA128D4进行加密操作,利用chipwhisperer提取所有加密过程中产生的功耗迹线组成实验数据集,加密模式为AES-128的电码本(ECB)模式。
![]() |
Download:
|
图 1 数据采集装置 Fig. 1 Data acquisition device |
首先生成一条16个字节的固定密钥,将其与随机产生的5万条明文在chipwhisperer上执行加密,利用捕获装置收集加密过程中产生的5万条功耗数据;然后随机产生15万对密钥不同的密钥明文对,在相同的平台上对每对明文密钥执行加密操作,利用功耗采集设备提取15万条执行加密操作的功耗迹线,其示例如图 2所示,每条迹线均包含1 600个数据点。
![]() |
Download:
|
图 2 功耗迹线 Fig. 2 Power trace |
本文攻击方法分为CPA寻找兴趣点和搭建网络模型2个部分。首先,将CPA算法执行在相同密钥的数据集上,以密钥第二个字节作为攻击目标,确定每条功耗数据第二个字节的兴趣区间位置;然后,在不同密钥数据集上利用上述确定的区间对功耗踪迹进行特征选取,将区间范围内的数据作为特征向量以搭建网络模型。
2.1 CPA算法将采集到的相同密钥的功耗迹线执行标准CPA攻击,利用Pearson相关系数方法查找迹线中与S盒输出相关性最高的点,点的周围数据则是深度学习模型的输入。CPA攻击过程步骤如下:
1) 构造功耗迹线矩阵。假设有
2) 建立中间值矩阵。对于任意一个字节,其密钥值的取值范围为0~255,共256种可能,根据相应明文字节结合假设密钥构造中价值矩阵
3) 计算假设功率矩阵。将矩阵
4) 计算矩阵
LSTM是一种在经典循环神经网络的基础上进行改进的模型[16],其非常适合从经验中学习分类以及处理在重要事件之间存在未知时长延迟的时间序列。
LSTM网络包含一些称为记忆模块的子网络,用于替代RNN中的隐含节点,其记忆模块结构如图 3所示。其中,
$ {\boldsymbol{f}}_{t}=\sigma \left({\boldsymbol{w}}_{f}\cdot \left[{\boldsymbol{h}}_{t-1}, {\boldsymbol{x}}_{t}\right]+{\boldsymbol{b}}_{f}\right) $ | (2) |
$ {\boldsymbol{i}}_{t}=\sigma \left({\boldsymbol{w}}_{i}\cdot \left[{\boldsymbol{h}}_{t-1}, {\boldsymbol{x}}_{t}\right]+{\boldsymbol{b}}_{i}\right) $ | (3) |
$ {\stackrel{-}{\boldsymbol{c}}}_{t}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({\boldsymbol{w}}_{c}\cdot \left[{\boldsymbol{h}}_{t-1}, {\boldsymbol{x}}_{t}\right]+{\boldsymbol{b}}_{c}\right) $ | (4) |
$ {\boldsymbol{c}}_{t}={\boldsymbol{f}}_{t}{\boldsymbol{c}}_{t-1}+{\boldsymbol{i}}_{t}{\stackrel{-}{\boldsymbol{c}}}_{t} $ | (5) |
$ {\boldsymbol{o}}_{t}=\sigma \left({\boldsymbol{w}}_{o}\cdot \left[{\boldsymbol{h}}_{t-1}, {\boldsymbol{x}}_{t}\right]+{\boldsymbol{b}}_{o}\right) $ | (6) |
$ {\boldsymbol{h}}_{t}={\boldsymbol{o}}_{t}\cdot \mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({\boldsymbol{c}}_{t}\right) $ | (7) |
![]() |
Download:
|
图 3 LSTM单元结构 Fig. 3 LSTM cell structure |
LSTM的外部结构与传统RNN相同,只对其隐藏节点做了改进,具备可以长期记忆历史重要信息的功能,因此,当梯度进行反向时间传播时,不会出现梯度消失的问题。此外,在LSTM网络中,单元状态ct代表长期记忆,随着时间的变化,ct会传递下去,在整个序列的运算过程中只有少量的线性交互,使得LSTM能有效保存过去较长时间的信息。
3 深度学习与侧信道攻击 3.1 基于深度学习的侧信道攻击步骤将深度学习应用于侧信道攻击,需要满足以下3个要求:
1) 攻击者有一块可以自行设置加密程序的加密设备和能够采集加密过程中功耗信息的捕获设备。
2) 在加密硬件上,攻击者必须可以选择任意明文和密钥,并且能够执行任意次数的加密过程。
3) 攻击者在攻击阶段至少能够采集到一条加密设备在加密过程中的功耗数据。
基于深度学习的侧信道攻击按如下步骤进行:
1) 攻击者在加密设备上获取足够的功耗迹线后,对每条迹线确定一个合适的标签用来拟合密钥和物理泄露之间的关系,然后选择合适的模型对迹线进行训练。
2) 在模型训练好之后,将任意明文搭配任意密钥在加密设备上执行加密操作,用采集设备采集加密过程中的功耗信息,再将获取到的功耗迹线输入已训练好的模型中进行分析,以破解本次加密过程中使用的密钥。
3.2 数据标签选择在深度学习中,标签不同通常会导致模型学习效果不同。本文认为硬件处理单元的活动状态与处理的数据值成比例,在众多数值中本文选择S盒输出值作为标签,原因是在AES加密中进行S盒替换时,其值需要从内存加载到数据总线上,所耗能量明显,因此,将处理过程中的数值作为标签具有合理性。
在AES-128中,S盒的输出可能有256个不同的值,将256个不同的值当作256种不同的情况,则S盒数值分类模型的分类总量为
本文选择攻击AES-128的第3个字节,即
$ S {}_{\mathrm{s}\mathrm{t}\mathrm{a}\mathrm{t}\mathrm{e}}=\mathrm{S}\mathrm{B}\mathrm{o}\mathrm{x}\left[p\left[2\right]\oplus k\left[2\right]\right] $ | (9) |
其中:“
![]() |
Download:
|
图 4 密钥第3个字节的皮尔逊相关系数 Fig. 4 Pearson correlation coefficient of the third byte of the key |
本文密钥第3个字节相关性突出的数据点在249~344之间,因此,输入网络的特征向量就是这95个数据。
4 实验结果及分析 4.1 实验步骤本文实验步骤如下:
1) 在搭建好加密硬件设备后进行数据采集,并对捕获到的数据执行CPA分析,选则兴趣区间的数据作为特征向量。
2) 对特征向量进行标签匹配,标签为第3个字节的S盒输出,确定输入输出之后搭建分类模型。与传统机器学习方法相比,深度学习模型具有全局多样性好、准确性高的特点[17]。对于卷积神经网络等前馈神经网络而言,一般只能提取较少的重要特征,而LSTM网络具备对序列信息融合的能力,并且加密设备处理加密数据时根据前面所有时刻的数据决定当下工作单元状态,运用LSTM网络训练时序数据能够利用功耗数据中的时序性,将其所有的特征进行融合,抽取更深层次、表现能力更强的特征。因此,选择LSTM神经网络在侧信道功耗数据上搭建模型能得到更准确的结果。
3) 将上述采集到的随机密钥数据集按照6∶2∶2的比例划分为训练集、验证集和测试集。
4) 将训练集用于网络模型训练,验证集用以观察模型训练效果,测试集用来测试网络的泛化能力。
4.2 LSTM分类模型实验LSTM神经网络各层参数如表 1所示。在本文实验中,LSTM网络仅需一层就可以清晰地表达出数据间的关系,太多的LSTM层会使得网络训练时间过长。在LSTM层后连接的第一个全连接层使用ReLU激活函数,分类层使用Softmax激活函数。
![]() |
下载CSV 表 1 LSTM各层参数 Table 1 Parameters of each layer of LSTM |
本文所用数据集由功耗时序数据组成,而LSTM网络具有长时间记忆功能,处理时序数据相比MLP、CNN网络更加有效,其强大的表达能力使得验证集上的训练表现比训练集更好,训练结果如图 5、图 6所示。从图 5、图 6可以看出,LSTM网络波动性小,收敛速度快,泛化能力强,网络训练准确率从35.75%提高到90.53%仅用了188 s,并且网络训练过程中准确率始终没有大的波动,网络性能非常稳定。在验证集上,最终训练集准确率为99.78%,验证集准确率为99.69%,网络损失在训练过程中也只用了4个epoch就从2.57降到0.289 1,最后训练集损失为0.006 7,验证集损失为0.009 9。
![]() |
Download:
|
图 5 LSTM模型的攻击准确率 Fig. 5 Attack accuracy of LSTM model |
![]() |
Download:
|
图 6 LSTM在训练过程中的损失值 Fig. 6 Loss values of LSTM during training |
在搭建LSTM神经网络的过程中,除了学习率、激活函数和epoch外,时间步[18-19]和不同优化器对网络精度[20]的影响如图 7和图 8所示。
![]() |
Download:
|
图 7 时间步对LSTM网络准确率的影响 Fig. 7 Influence of time step on accuracy of LSTM network |
![]() |
Download:
|
图 8 不同优化器对LSTM网络准确率的影响 Fig. 8 Influence of different optimizers on accuracy of LSTM network |
实验中测试时间步分别为1、5、10、20、50时对网络性能的影响,由于只有95个有效特征,当数据点不满足时间步划分时,通过在数据末尾添加0的方式以满足网络需要。从图 7可以看出,当时间步为5时,网络波动性最小,收敛速度最快,在第9个epoch时网络准确率达到96.51%,训练速度高于其他所有时间步,且网络在20个epoch后一直非常稳定。在使用其他时间步时,如时间步为1,此时网络有非常大的波动,网络震荡幅度超过40%。因此,本文中LSTM网络的时间步设为5。
实验中还分别使用5种不同的优化器,从图 8可以看出,Adam优化器效果较好,不仅能够快速收敛而且还具有很强的稳定性,在验证集中的准确率保持平稳。因此,本文LSTM网络使用Adam作为优化器。
4.3 结果对比分析将文献[21]中使用的CNN网络模型、MLP网络模型与本文LSTM网络进行对比实验。
针对密钥的第3个字节进行实验,从时间、精度和泛化能力3个方面综合分析3种网络的性能。3种网络均在同一实验环境下训练100个epoch,结果如表 2所示。从表 2可以看出,MLP神经网络训练所需时间最少,用时11分25秒,但是模型在泛化能力方面不佳,测试准确率仅有94.36%;CNN网络的验证准确率和泛化能力都有较好的表现,泛化准确率高达99.29%,但是模型训练耗时最长,达到15时44分30秒,这将浪费大量的计算资源和时间,模型构建成本太大;本文建立的LSTM模型训练时间为1时17分08秒,多于MLP网络,但是明显少于CNN网络,在准确率方面,LSTM网络的泛化能力强于MLP网络和CNN网络,高达99.56%。
![]() |
下载CSV 表 2 相同epoch时模型准确率对比结果 Table 2 Comparison results of model accuracy under the same epoch |
本文将3种网络在相同耗时(10 min)下的准确率进行对比,结果如表 3所示。从表 3可以看出,在相同的训练时间内,LSTM准确率最高,达到98.39%,CNN因参数较多导致训练时间最长,LSTM的准确率稍优于MLP,远高于CNN,是投入成本较小、收益最高的网络。
![]() |
下载CSV 表 3 相同训练时间下模型准确率对比结果 Table 3 Comparison results of model accuracy under the same training time |
本文从到达相同准确率所用时间的角度对网络性能进行评估,记录网络测试准确率稳定在90.00%时网络验证准确率以及所用的训练时间,结果如表 4所示。
![]() |
下载CSV 表 4 到达相同准确率时所用时间对比结果 Table 4 Comparison results of time taken to reach the same accuracy |
本文将3种模型在恢复完整密钥时所需时间以及综合准确率进行对比,结果如图 9所示,其中,图 9(a)表示训练3种模型时每种模型所需的时间,图 9(b)代表 3种模型在恢复完整密钥时的准确率。
![]() |
Download:
|
图 9 3种网络在恢复完整密钥时的性能对比结果 Fig. 9 Performance comparison results of three networks in recovering full key |
分析目前已有的深度学习密钥推测手段可知,每一条完整密钥的攻击都需要从密钥的每一个字节开始,即AES-128需要16个网络同时作用才能获取完整密钥。在3种网络的训练过程中,MLP虽然用时最少,但是其综合准确率不足50%,CNN所需时间最多,共需要251.86 h,LSTM需要20.56 h,但LSTM比CNN的密钥破解准确率高2.1%,高达91.70%。综上,LSTM网络在目前基于深度学习的完整密钥破解模型中效率较高[21]。
5 结束语本文针对基于深度学习的侧信道攻击中CNN、MLP模型效率不高的问题,提出一种基于深度学习LSTM的侧信道攻击方法,并在chipwhisperer设备上采集数据进行实验验证,结果表明,适当微调后的LSTM能够充分学习侧信道功耗数据的时序关系,当进行完整密钥破解时LSTM可以提高破解效率。由于本文实验数据集是在chipwhisperer设备上所采集的,不存在复杂的干扰情况,因此LSTM模型的破解效率高于CNN和MLP模型。下一步将设置多变的物理干扰,仿真现实的安全测试环境,同时改进LSTM模型,提高其在现实情况下的鲁棒性。此外,研究基于深度学习的侧信道攻击规律以提高硬件加密设备的安全性,也是今后的研究方向。
[1] |
KOCHER P, JAFFE J, JUN B. Differential power analysis[C]//Proceedings of Annual International Cryptology Conference. Berlin, Germany: Springer, 1999: 388-397.
|
[2] |
QUISQUATER J J, SAMYDE D. Electromagnetic analysis (ema): measures and counter-measures for smart cards[C]//Proceedings of International Conference on Research in Smart Cards. Berlin, Germany: Springer, 2001: 200-210.
|
[3] |
KOCHER P C. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems[C]//Proceedings of Annual International Cryptology Conference. Berlin, Germany: Springer, 1996: 104-113.
|
[4] |
GOODFELLOW I, BENGIO Y, COURVILLE A, et al. Deep learning[M]. Cambridge, USA: MIT Press, 2016.
|
[5] |
BACKES M, DÜRMUTH M, GERLING S, et al. Acoustic side-channel attacks on printers[EB/OL]. [2020-07-05]. https://www.usenix.net/legacy/events/sec10/tech/full_papers/Backes.pdf.
|
[6] |
HOSPODAR G, GIERLICHS B, DE MULDER E, et al. Machine learning in side-channel analysis: a first study[J]. Journal of Cryptographic Engineering, 2011, 1(4): 293-302. DOI:10.1007/s13389-011-0023-x |
[7] |
LERMAN L, BONTEMPI G, MARKOWITCH O. Side channel attack: an approach based on machine learning[J]. Center for Advanced Security Research Darmstadt, 2011, 5: 29-41. |
[8] |
HEUSER A, ZOHNER M. Intelligent machine homicide[C]//Proceedings of International Workshop on Constructive Side-Channel Analysis and Secure Design. Berlin, Germany: Springer, 2012: 249-264.
|
[9] |
BARTKEWITZ T, LEMKE-RUST K. Efficient template attacks based on probabilistic multi-class support vector machines[C]//Proceedings of International Conference on Smart Card Research and Advanced Applications. Berlin, Germany: Springer, 2012: 263-276.
|
[10] |
MARTINASEK Z, ZEMAN V. Innovative method of the power analysis[J]. Radioengineering, 2013, 22(2): 586-594. |
[11] |
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.
|
[12] |
PICEK S, HEUSER A, GUILLEY S. Template attack versus Bayes classifier[J]. Journal of Cryptographic Engineering, 2017, 7(4): 1-9. |
[13] |
GAOMING D, DI X, XIAOQIN L, et al. Identify random delays from side channel traces with HMM[C]//Proceedings of 2013 International Conference on Instrumentation, Measurement, Computer, Communication and Control. Washington D.C., USA: IEEE Press, 2013: 1093-1096.
|
[14] |
KONG Y, SAEEDI E. The investigation of neural networks performance in side-channel attacks[J]. Artificial Intelligence Review, 2019, 52(1): 607-623. |
[15] |
LIU B, FENG H, YUAN Z, et al. Learning to attack from electromagnetic emanation[C]//Proceedings of 2012 Asia-Pacific Conference on Environmental Electromagnetics (CEEM). Washington D.C., USA: IEEE Press, 2012: 202-205.
|
[16] |
HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780. DOI:10.1162/neco.1997.9.8.1735 |
[17] |
LECUN Y, BENGIO Y, HINTON G. Deep learning[J]. Nature, 2015, 521(7553): 436-444. DOI:10.1038/nature14539 |
[18] |
HOWARD J, RUDER S. Universal language model fine-tuning for text classification[C]//Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics. San Diego, USA: Association for Computational Linguistics, 2018: 328-339.
|
[19] |
HUA J, YAN K, LU H J, et al. Air conditioner fault diagnosis based on deep learning LSTM[J]. Journal of China University of Metrology, 2019, 30(2): 197-202. (in Chinese) 花君, 严珂, 陆慧娟, 等. 基于深度学习LSTM的空调故障诊断[J]. 中国计量大学学报, 2019, 30(2): 197-202. DOI:10.3969/j.issn.2096-2835.2019.02.012 |
[20] |
HU T, DIAN S Y, JIANG R H. Hardware trojan detection based on long short-term memory neural network[J]. Computer Engineering, 2020, 46(7): 110-115. (in Chinese) 胡涛, 佃松宜, 蒋荣华. 基于长短时记忆神经网络的硬件木马检测[J]. 计算机工程, 2020, 46(7): 110-115. |
[21] |
WANG H, BRISFORS M, FORSMARK S, et al. How diversity affects deep-learning side-channel attacks[C]//Proceedings of 2019 IEEE Nordic Circuits and Systems Conference(NORCAS): NORCHIP and International Symposium of System-on-Chip(SoC). Washington D.C., USA: IEEE Press, 2019: 1-7.
|