基于机器学习的侧信道分析研究及RSA算法的应用示例

2021-02-27 07:37王洁
网络安全技术与应用 2021年2期
关键词:密钥信道机器

◆王洁

基于机器学习的侧信道分析研究及RSA算法的应用示例

◆王洁

(北京银联金卡科技有限公司 北京 100041)

基于机器学习的密码算法侧信道分析是一个较新的研究领域,自首个分析结果发表以来,大量的研究结果表明机器学习算法相比传统方法在侧信道分析中具有很大的性能优势。因此,基于机器学习的侧信道分析应在相关的安全检测技术领域得到充分的应用。本文针对目前侧信道攻击中常用的机器学习算法进行介绍,并针对密码算法RSA进行分析,设计了基于机器学习的侧信道攻击实验并对比实验结果。

机器学习;侧信道;RSA算法

机器学习是一种实现人工智能的方法,使用算法来解析数据,从中学习,然后对未知事件做出决策和预测。机器学习分监督学习和无监督学习,其中监督学习通过对带标签数据进行学习,获得对未知标签数据进行正确分类的能力。

密码算法的侧信道分析是一种从设备执行密码算法过程中的能耗、电磁等侧信息中恢复密钥等敏感信息的攻击方法,它基于这样一个事实——密码设备的瞬时能耗、电磁等侧信息依赖于设备所处理的数据和所执行的操作,对智能芯片等设备的实际安全造成极大威胁。

基于机器学习的侧信道分析与传统侧信道分析中的模板攻击方法有相同的攻击场景,即攻击者能够首先在自主操控密钥的场景下获取设备运行密码算法时的侧信息曲线,进行相应操作,然后对未知密钥的侧信息曲线进行分析,得到密钥等敏感信息。传统的模板攻击对已知密钥曲线进行的操作是构造不同敏感信息下的多元高斯分布模板,然后计算未知密钥曲线符合各模板的概率。基于机器学习的侧信道分析则根据曲线和作为标签的已知敏感信息通过学习得到一种方法,然后将方法应用于新的曲线得到敏感信息。

1 机器学习侧信道背景

大量的研究结果表明机器学习算法相比传统方法在侧信道分析中具有很强的性能优势,尤其可以克服掩码、随机延时等给传统侧信道分析带来极大困扰的防护手段。

1.1 机器学习侧信道的优势体现:

(1)具有更小的人为假设。使用中间值作为标签直接训练,避免传统分析方法下从中间值到侧信息数据的模型假设。

(2)可以获取更高的学习维度。传统侧信道分析方法需要通过统计方法定位特征点以获取更好的攻击效果。机器学习方法使用更多的采样点参与学习,避免特征点的选取。

(3)天然高阶分析。传统侧信道分析方法需要对采样点进行预处理获取高阶特征,机器学习通过学习完成采样点的组合,自动实现高阶分析。

(4)直接学习非对齐曲线。无需对曲线进行对齐预处理,克服随机延时和时钟抖动等防护。

1.2 深度学习模型的建立

深度学习是一种实现机器学习的技术,建立类似神经网络的结构模型,在输入层之后包含多个隐含层,每个神经网络层由若干神经元节点构成,每个节点以上一层的输出作为输入,经过计算产生输出,继续传递直到输出层,输出层对应于各个标签。神经元节点的计算涉及参数,对模型训练的过程就是不断调节参数使分类错误率不断降低的过程。

多层感知机模型(MLP)和卷积神经网络模型(CNN)是两种在侧信道分析中常用的模型。多层感知机模型由全连接层构成,全连接层中每一个节点的输入都包含了上一层全部节点的输出,每个节点上进行线性运算;卷积神经网络模型的核心是卷积神经网络层,通过若干卷积核在相应步长下滑动对输入数据进行线性运算。为了提高模型的泛化能力,池化层、标准化层、随机断连等方法常穿插在网络层中,防止出现仅在训练集上有较高正确率的过拟合现象。

基于机器学习侧信道的研究目前主要集中在对称算法,比如国际算法DES、AES等,国内SM4算法。非对称算法RSA、ECC相关研究比较少。本文主要针对RSA算法进行机器学习侧信道分析,并设计相关实验进行分析,对比不同深度学习模型算法得到的结果。

2 RSA算法机器学习侧信道分析

RSA 是目前使用最广泛的公钥密码体制之一。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。侧信道攻击技术就是对RSA算法的解密密钥进行分析和攻击。RSA算法的签名流程如下:

M = Cdmod N,C为明文消息,M为密文签名数据,d为签名密钥。

从左到右的实现方式如下所示:

M = 1

for each bit di

M = (M * M) mod N

if (di == 1) M = (M * C) mod N

return M

签名密钥d为我们需要分析的对象,从RSA算法的签名流程可以看到运算中d的每一位决定需要做的运算,当d的数据位为0时,进行平方运算;当d的数据为1时,进行模平方和模乘运算。所以我们通过传统侧信道的方式,采集算法运算的功耗和电磁信号,分析每一个模乘和模平方运算。

通常密码设备的大数运算的算子都是由硬件实现,硬件实现的模乘和模平方运算的功耗或者电磁曲线是无法通过观察分辨出来的。但是由于模乘和模平方运算有操作或者数据导致的细微差别,可以通过采用基于机器学习的侧信道的方法进行分析攻击。

采集几条已知密钥的RSA算法运算的功耗或者电磁曲线,将运算过程中的模乘和模平方曲线截取出来,并对应到密钥位来判定运算为模乘或者模平方运算,对这些数据采用深度学习模型进行训练,然后使用训练后的模型进行评估和预测。

3 RSA的机器学习侧信道实验分析

本节将利用上一节提出的方法,对RSA算法做基于机器学习的侧信道攻击实验,以验证方法的有效性。本节我们主要采用MLP、CNN、VGG三种深度学习算法模型进行侧信道分析和攻击。

实验数据是通过Riscure的Power Tracer给一张支持RSA算法的智能卡下发签名指令,执行10次RSA签名指令,使用Lecroy示波器对加密过程采集能量消耗数据。示波器的采样率设置为250M/s,采样点数是15000000,可以包含RSA签名运算的全部运算。采集的能量曲线中间较高的一段就是在进行模幂运算即由多个模乘和模平方运算组成。放大模幂运算的部分结果为每个幅值较高的运算为模平方或者模乘运算,从图中观察很难找到规律来分辨模平方和模乘运算。使用基于机器学习的侧信道分析,首先要先进行数据收集。包括单个的模乘或者模平方运算,以及每个运算的对应的标签数据。曲线截取采用模板相关性匹配的方法。选取一个运算850个样本点作为模板进行相关性匹配,每个运算的相关性最高的点作为起始点,截取850个点作为一个运算元素,对以上截取得到的模乘模平方运算进行运算类型打标,根据已知密钥推算出运算的类型,并记录。本次实验采用的数据集一共为16000,训练集和验证集数据为15000比例为95:5,测试集数据为1000。对以上数据分别使用MLP算法模型、CNN算法模型和VGG算法模型进行模型训练和验证。

3.1 MLP模型训练验证

本小节介绍所采用MLP模型及训练验证结果,实验使用的MLP模型为4层神经网络,激活函数为ReLu,Softmax为全连接层。

利用以上MLP模型进行训练和验证,训练次数设置为40结果训练集准确率达到91%,验证集准确率达到88%。对于RSA算法的分析来说准确率不够,无法完全恢复密钥。

3.2 CNN模型训练验证

本小节介绍所采用CNN网络模型及训练验证结果,实验使用的CNN网络模型为5层神经网络,卷积核大小通过设置为5-8进行效果对比,最后选定为6。池化层选用最大化池化。

利用以上CNN模型进行训练和验证,训练次数设置为100,结果如图1所示。

图1 CNN模型训练验证结果

CNN模型训练和验证结果数据如图1所示,训练集准确率达到91%,验证集准确率达到92%。对于RSA算法的分析来说准确率不够,无法完全恢复密钥。

3.3 VGG 模型训练验证

本小节介绍所采用VGG网络模型及训练验证结果,实验使用2014年提出的经典深层卷积神经网络,由10层卷积层和3层全连接层组成。卷积核大小通过设置为3。池化层选用最大化池化。

利用以上VGG模型进行训练和验证,训练次数设置为40,结果如图2所示。

图2 VGG模型训练验证结果

VGG模型训练和验证结果数据如图6所示,训练集准确率达到99.6%,验证集准确率达到100%。对于RSA算法的分析来说准确率基本达到100%,可以有效恢复密钥。

3.4 实验结论

本小节对比三种不同的机器学习算法模型的参数及准确率,如表1所示。

表1 三种机器算法模型参数及准确率对比

通过尝试不同的算法模型及算法参数,找到了RSA算法中模平方和模乘算法的有效区分模型,可以准确有效恢复出RSA的私钥。

[1]Martinasek Z,Zeman V. Innovative Method of the Power Analysis. Radio engineering,2013,22(2):586-594.

[2]Martinasek Z,Hajny J,Malina L. Optimization of power analysis using neural network. CARDIS 2013.

[3]Maghrebi H,Portigliatti T,Prouff E. Breaking cryptographic implementations using deep learning techniques. SPACE 2016.

[4]Cagli E,Dumas C,Prouff E. Convolutional Neural Networks with Data Augmentation Against Jitter-Based Countermeasures. CHES 2017

[5]Benadjila R,Prouff E,Strullu R,et al,Study of Deep Learning Techniques for Side-Channel Analysis and Introduction to ASCAD Database.

[6]Qi Lei,Chao Li,Kexin Qiao.VGG-based side channel attack on RSA implementation.

猜你喜欢
密钥信道机器
机器狗
机器狗
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
TPM 2.0密钥迁移协议研究
未来机器城
一种对称密钥的密钥管理方法及系统
FRFT在水声信道时延频移联合估计中的应用
基于导频的OFDM信道估计技术
一种基于GPU的数字信道化处理方法