基于MLP 神经网络的分组密码算法能量分析研究

2021-04-24 14:20:32
网络安全技术与应用 2021年4期
关键词:感知器密钥密码

(北京信息职业技术学院 北京 100081)

目前针对现代密码算法研究内容较多,形式多样的密码算法满足了不同场景需求。在实际应用中针对多种密码算法需求,如果进行每一个密码算法的单独设计则需要消耗大量的资源,因为各种类型的密码算法本质上是存在着一定的相同点的,所以为满足多密码算法需求,可以通过采用重构的思维,来设计出一种高性价比的密码算法。根据密码算法中密钥具有的不同特征,通常可以将密码算法细分为对称密码算法与分组密码算法,其中分组密码算法是指通过对加密信息按照一定的顺序,基于函数进行相应的逻辑运算,进而达到信息加密效果。分组加密算法在进行数据加密的过程中,能够有效地确保经过加密处理后形成的密文和原来初始明文间数据量保持不变。

1 密码算法能量分析和MLP 神经网络

1.1 密码算法能量分析

在进行模板型能量分析前,首先需要进行以下假设:对手拥有两个密码设置一致的终端设备,分别为建模设备与目标设备。对于建模设备而言,分析者可以对其输入、输出进行控制,且可以采用一定的方式来准确地获取建模设备运行时所具有的能量信息;对于目标设备而言,在工作的过程中采用的是分析者不知晓的某种加密算法。因此模板型的侧信道分析包含了建模阶段与分析阶段。其中在建模阶段主要是基于建模曲线,来获取建模设备和密钥的关联性,并根据采集到的信息数据建立一个泄露模型。分析阶段是指,分析者基于能量曲线,结合信息分类对所采集到的泄露按照一定的特征进行划分,并通过测试集来将目标设备的密钥进行预测与恢复。由此可以看出,分析者在建立分析模型时,需要精确地将概率分布函数值进行预估,进而实现对每一个可能密钥的似然估计。非模板型能量分析是指通过采用特定的统计分析方法对获取到的泄露信息与敏感变量所具有的关联性进行表征。主要包括简单能量分析法、相关能量分析法以及差分能量分析法等。上述类型的分析方法仅仅可以实现对目标设备物理参数等信息的泄露进行获取,用来进行密钥的恢复。

1.2 MLP 神经网络

MLP 是由多个感知器构建而成的神经网络。如图1 所示为具有3 个隐藏层的MLP 神经网络。从图1 中我们可以看出,多层感知器中的每一层感知器和下一层的感知器是互相连接的。MLP 主要由三部分组成,分别为输入、输出层以及隐藏层,多层感知器的每一层中至少存在一个感知器单元。在实际应用中,MLP 权重值与偏差值是按照梯度的变化而更新的。MLP 神经网络是由多个非线性以及线性激活函数组成的混合函数相联系。函数的求解速度快,且由于其存在边界,因此求导过程较为简单。MLP 可以用式(1)表示。

式中:λn——全连接层;

σi——激活函数;

S——Softmax函数。

因为MLP 神经网络是一个网状形式,被分成一个个相互连接的层状,神经元值可以用式(2)表示。

式中:w——相邻层之间神经元连接权重值;

b——该神经元的偏置值;

f——激活函数。

式中:w——相邻层之间神经元连接权重值;

f——激活函数。

b——该神经元的偏置值;

将向前传播计算求解的误差反向传播,完成对权重值的优化与修正,得出最优化的模型是MLP 网络模型算法的核心思想。在进行误差反向传播时,我们一般采用的是随机梯度下降法来实现对w 值的修正与优化。内部变量值一般作为权重值,并基于损失函数跨越曲面斜率最大的方向进行修正。

图1 具有3 个隐藏层的MLP 神经网络

2 基于MLP 神经网络的能量分析流程

如图2 所示为基于MLP 神经网络模型能量分析流程图。

数据的采集与预处理狭义上来说实质是一种降维处理过程,采集获取到的原始数据存在着噪声影响大、纬度高的特征,而数据的采集与预处理正是将采集到的原始数据进行降噪处理,降低原始数据的复杂程度。采用深度学习SCA 时可以不再对原始数据进行降维处理,而直接对原始数据进行预处理即可。一般来说可以将获取的能量曲线划分为两部分:训练数据与测试数据,其中训练数据主要是为了用来对模型进行训练,以此确保构建模型的精确性,测试数据则主要用来对模型的效果进行评价,同时用来恢复密钥。在模型的训练过程,一般使用交叉验证,能够最大限度地提升模型训练效果,提升模型的准确度。文章中主要使用的是SVM 对比法。模型的评价主要是指,通过各种形式的参数优化、不同的评价策略对模型的精度、训练时间、密钥猜测熵等性能进行评估。文章中主要采用的是分而治之的策略进行密钥的恢复。通过对重量的预测,求解出潜在的密钥值,并基于多条曲线所对应的明文数据,以交集的形式进一步缩窄密钥的预估区间,最终达到求解子密钥的目的。

图2 基于MLP 神经网络分析流程示意图

3 密码算法重构模型设计

和传统形式中常用的DPA、CPA 一样,基于深度学习能量分析同样也对泄露模型进行定义。因为基于MLP 神经网络模型的分析是在相关的监督环境下开展的,所以在进行模型训练与测试时同样要基于泄露模型所确定的指标进行,不同指标值下,最终所形成的分类数量是存在差异的。在进行分组密码算法分析时,一般是将S 盒的输出点作为分析点,如图3 所示为采用S 盒输出值构建的分析模型。

图3 采用S 盒输出值结构分析模型

文章中所使用的模型是基于MLP 神经网络建立的。为便于分析简称为ID-MLP 模型。因为获取到的单条能量曲线是以时间序列表示的,所以输出层节点的数量就是能量曲线的采样点个数,即输出层共有256 个节点。输出层所使用的是Softmax 激活函数,为确保模型测试精度,采用tanh 函数。模型训练时,标签值就是S 盒的输出值。

4 实验分析

基于ChipWhispererLite 平台进行实验分析。使用ID-MLP 模型恢复密钥字节,如图4 所示为实验结果对比。

图4 ID-MLP 模型与Benadjila-MLP 模型训练结果对比

从图4 中可以看出,当字节为0 时,ID-MLP 模型的最终训练精度接近98%,模型的平均训练精度为98.93%,明显高于Benadjila-MLP 模型训练结果。对恢复完整的密钥再进行1000 次实验,实验结果表明1496 条曲线就能够实现对密钥的恢复,且其中的491 次实验只需1 条曲线就可以恢复密钥。实验结果表明,该模型具有较强的预测性,具有训练次数少、时间短的优点,且迭代次数增加时,模型的预测精度显著提升。

5 结论

基于MLP 神经网络的分组密码算法,充分发挥了MLP 神经网络对特征信息数据提取的能力,能够深入地挖掘出泄漏信息与将要处理的敏感信息之间的关联性,为能量分析提供了新思路。实验表明,本文所提出的ID-MLP 模型与Benadjila-MLP 模型相比降减少了近85%的训练参数与30%的训练时间,与Benadjila-MLP 模型相比测试精度得到明显提升。此外,经过神经网络结构优化,有效地降低了密钥恢复所需的能量曲线条数,具有训练次数少、时间短的优点,且迭代次数增加时,模型的预测精度显著提升。同时,该模型同样也能用来对DES、SM4 等侧信道能量分析。

猜你喜欢
感知器密钥密码
探索企业创新密钥
密码里的爱
保健医苑(2022年4期)2022-05-05 06:11:30
火箭贮箱喷涂机器人直接示教运动感知器设计与分析
密码系统中密钥的状态与保护*
密码疲劳
英语文摘(2020年3期)2020-08-13 07:27:02
感知器在矿井突水水源识别中的应用
中国矿业(2019年7期)2019-07-26 05:37:30
AI超市
环球时报(2019-04-26)2019-04-26 06:17:15
尿湿感知器
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
电信科学(2017年6期)2017-07-01 15:45:06