基于改进残差网络和数据增强技术的能量分析攻击研究*

2020-09-12 10:08严迎建郭朋飞朱春生蔡爵嵩
密码学报 2020年4期
关键词:密钥卷积噪声

王 恺, 严迎建, 郭朋飞, 朱春生, 蔡爵嵩

战略支援部队信息工程大学, 郑州450001

1 引言

随着嵌入式密码设备的广泛应用, 侧信道攻击(Side Channel Analysis/Attack, SCA) 成为其主要安全威胁之一, 攻击者通过对密码算法物理实现过程中的泄漏信息进行分析, 进而恢复密钥信息. Kocher 于1996 年首次提出侧信道攻击[1], 通过对时间序列分析进而恢复密钥, 随后于1999 年提出了更强大和更通用的攻击形式, 称为差分能量分析(DPA)[2], de Mulder 等人于2006 年提出了差分电磁攻击(DEMA)技术[3]. 除了简单和差分分析攻击外, 模板攻击[4]被认为是最有效的攻击方式, 它假设攻击者在分析阶段可以获得一个相同的目标设备, 并对目标设备完全可控, 利用泄漏信号对随机变量统计特性进行建模, 在攻击阶段用判别分析的方法获取目标设备泄漏信息中所隐藏的秘密信息, 因此, 相应的抗能量攻击技术也成为当前的研究热点[5].

近年来, 密码学界探索了基于机器学习和深度学习的能量分析攻击新方法, 这对加密算法实现的安全性造成了威胁. 深度学习使用深度神经网络从复杂数据中学习特征, 并对另一组数据分析做出决策, 具有良好的特征提取和分类功能, 深度神经网络在图像识别、自然语言处理等方面取得了很好的效果[6]. 基于深度学习的能量分析攻击方法主要应用于模板型的攻击场景, 刘飚等人[7,8]使用支持向量机(SVM) 方法对电磁泄漏信息进行分析, 从而实现密钥的恢复. Lerman 等人[9]通过实验验证了SVM 算法可以对加掩码防护的AES 算法实现攻击. Maghrebi 等人[10]最早研究了深度学习在密码算法实现中的应用, 将多层感知器(MLP) 和卷积神经网络(CNN) 等深度学习模型应用于SCA. Benadjila 等人[11]通过实验给出了MLP 模型和CNN 模型的超参数选择的方案, 进一步证明了深度学习在模板型SCA 中的强大功能, 他们的另一成果是发布了ASCAD 公开数据库, 该数据库可以对基于机器学习或深度学习的SCA 进行效率和准确性评估.

深度学习技术也可以用于非模板型攻击和非对称密码体制的攻击. Timon 等人[12]提出了的利用深度学习进行侧信道信息泄漏检测, 针对非模板型攻击的场景, 使用MLP 和CNN 进行敏感性分析实现泄漏检测, 并将其作为神经网络是否学习的新指标. Carbone 等人[13]提出了一种基于CNN 的模板型SCA, 通过深度学习技术对安全实现的RSA 算法实施攻击, 使用CNN 模型对寄存器的地址或值进行分类, 实验结果表明CNN 也可以攻击非对称密码体制.

在典型的能量分析攻击方法和上述基于深度学习的能量分析攻击方法中, 都是假设在攻击阶段已知明文、密文或中间值信息, 但是在实际攻击场景中, 很难满足这个假设, 为此, 罗漫[14]等人提出了使用“分而治之” 的方法, 直接以密钥的最后2 个比特为攻击目标, 在完全未知密文、明文及泄漏中间值的情况下,对电磁泄漏进行了攻击, 该模型使用典型的残差网络[15]进行训练和测试, 但是该模型的不足是将一维电磁信号扩展到二维后, 可能损失有效信息, 同时存在模型参数过多、恢复完整密钥需要模型数量较多、建模过程需要的能量迹较多的缺点. 宋治[16]使用Inception ResNet V2 对电磁泄漏信号进行分类, 对AES密钥进行4 分类、8 分类、16 分类等一系列实验.

本文的主要工作: 基于罗漫[14]等人的研究成果, 继续对直接恢复密钥的能量分析攻击方法进行深入研究, 针对FPGA 实现的AES 分组密码算法进行攻击, 在建模和攻击阶段中, 采用“分而治之” 的策略,将分块大小设置为8 比特, 分别对每个字节进行建模和恢复, 只需要16 个模型即可完成128 比特密钥的恢复, 有效减少了恢复完整密钥所需的模型数量. 本文的创新点是使用数据增强技术对改进的深度残差网络进行训练, 对原始能量迹增加高斯噪声和随机相位抖动, 减少了训练阶段过拟合现象的发生, 可以在较小的原始数据集条件下取得良好的训练和测试效果; 同时针对能量分析攻击中的泄漏信息为一维时间序列的特点, 使用一维卷积核代替二维卷积核进行计算, 并且减少了全连接层节点的数量, 设计了1D-ResNet模型, 有效减少了模型的参数和训练时间, 节约了计算资源. 该模型在明文和密文完全未知的情况下对密钥的1 个字节进行恢复, 平均测试精度达到65.48%, 相比于CNN 神经网络和MLP 神经网络模型分别提高了16.63% 和54.27%, 达到同样的训练精度该模型的训练时间约为CNN 模型的一半. 通过在ASCAD公开数据库上进行测试和评估, 该模型要优于文献[11] 提出的MLP_best 和CNN_best 神经网络模型.

本文结构安排如下: 第2 节简要介绍残差网络的原理; 第3 节介绍了改进残差网络的模型设计和攻击流程; 第4 节介绍实验流程并分析实验结果, 验证了本文提出的1D-ResNet 模型的有效性; 第5 节对全文进行总结.

2 残差网络

残差网络(Residual Network, ResNet) 是由何恺明博士于2015 年提出的[15], 在图像识别与分类领域有广泛应用[17], 在ImageNet 比赛Classification 任务上获得第一名. 当前, 随着高性能GPU 的发展,计算能力极大提高, 神经网络的层数可以非常深, 具有相当大的潜在学习能力. 从理论上来说, 越深的神经网络越能提取出复杂的特征, 越能取得良好的分类效果, 但是深层神经网络的缺点需要训练的参数非常多,导致需要大量的计算资源, 并且在实际计算中, 随着网络层数的加深, 梯度大小会急剧下降, 存在梯度消失的现象, 这会导致学习速率非常缓慢. 在极少数情况下也会出现梯度急剧上升, 即梯度爆炸现象, 具体表现为在训练阶段的精度比浅层网络有所下降. 深度残差网络模型由于引入了残差结构, 很好的解决了深层次网络下梯度消失以及网络难以训练的问题. 残差结构如图1所示.

残差块通过引入x 的恒等映射连接,在网络层数过深时,通过将Y =F(x)+x 中F(x)拟合为0 来实现网络恒等映射, 解决了网络退化问题, 并且由于x 的引入使得反向传播过程中导数值总是大于1, 防止了梯度消失. 文献[15] 提出的残差网络包含了恒等块(Identity Block) 和卷积块(Convolutional Block)两种结构, 如图2 所示, 恒等块的输入与卷积层的输出相连, 共同作为激活函数的输入, 卷积块将输入经过多层卷积和单层卷积结果相连后作为激活函数的输入, 在每个卷积层后都使用批量归一化层(Batch Normalization), 其作用是使输出规范化为均值为0、方差为1 的正态分布, 保证所有训练数据为相同数量级, 使用以上这两种模块为基本单位, 搭建的ResNet-18 结构如图3 所示.

图3 ResNet-18 结构图Figure 3 ResNet-18 structure

3 模型设计和攻击流程

3.1 用于能量分析攻击的模型设计

ResNet-18 由于面向上千种图像分类任务, 输入数据为图像, 输出为上千种分类结果, 使用二维的卷积核进行运算, 模型参数量较大, 降低了训练与识别速度, 考虑到用于能量分析攻击的输入数据为一维时间序列, 并且分类结果是由所选择密钥的位数决定的, 当选择N 位密钥时, 分类结果最多为2N 种, 因此本文设计并提出了一维卷积残差网络(one-Dimensional Convolution Residual Network, 1D-ResNet) 模型, 有效减少了模型参数和训练时间, 具体结构如图4 所示.

图4(a) 是残差块结构, 由恒等块和卷积块组成, 层间使用ReLu 作为激活函数, 输入经过短路连接后通过最大值池化层输出, 使用一维卷积核, 卷积核大小为N; 图4(b) 是1D-ResNet 主体结构, 各残差块的卷积核个数分别为64、128、256、512, 全连接层的单元个数为512, 选择8 比特密钥为攻击目标时, 模型输出维度为28=256, 分别对应256 种可能的密钥(0x00、0x01、0x02、···、0xFE、0xFF).

表1 列出了1D-ResNet 与原始ResNet-18 的主要结构及其参数量, 从对比结果可以看出, 当卷积核大小N =3 时, 1D-ResNet 的参数量约为ResNet-18 参数量的60%, 可以有效减少训练时间和计算资源.

3.2 数据增强

数据增强(Data Augmentation) 是通过合成或者转换的方式, 从有限的数据中生成新的数据的技术,数据增强技术是一种克服数据不足和提高模型泛化能力的有效手段[18]. 在深度学习中, 一般要求样本的数量要充足. 样本数量越多, 训练出来的模型效果越好, 模型的泛化能力越强. 通常在图像分类任务中, 对于输入的图像进行一些简单的平移、缩放、颜色变换、对比度变换、增加噪声等, 不会影响图像的类别. 在小规模数据集上训练的神经网络很容易出现过拟合的问题, 因此针对这一难题, 在能量分析攻击中, 为了训练后的神经网络模型具有更强的范化能力, 确保在较小的数据集条件下可以取得较好的训练效果, 本文使用了3 种数据增强技术, 对采集到的原始能量迹增加高斯噪声和进行随机相位抖动, 有效解决了训练数据集不足、深度神经网络模型过拟合和对原始能量迹过度记忆的问题, 提高了模型的鲁棒性.

模型 1D-ResNet 模型 ResNet-18 模型输入层 1×N, 64, stride2 7×7, 64, stride2[ 1×N,64 1×N,64]]×2[ 3×3,64 3×3,64×2[ 1×N,128 1×N,128]×2[ 3×3,128 3×3,128]×2主体结构[ 1×N,256 1×N,256]×2[ 3×3,256 3×3,256]×2[ 1×N,512 1×N,512]×2[ 3×3,512 3×3,512]×2参数个数 2.05×107(N = 3) 3.4×107

3.2.1 增加高斯噪声

噪声通常是由外界干扰、仪器误差、设备故障等原因引起, 常见的噪声有随机噪声、高斯噪声和泊松噪声等. 使用高斯噪声更能有效模拟能量迹的噪声, 在原始能量迹采集完毕后, 使用以下步骤完成噪声插入.

步骤1: 计算整条能量迹的均值M 和方差V;

步骤2: 选取合适的噪声阈值T, 设置随机噪声点的个数为n=T ×N, 其中N 为曲线样本点个数;

步骤3: 在N 个样本点中随机选取n 个点, 将其值更新为随机值Urandom, 其取值范围服从均值为M和方差为V 的正态分布.

采集到的原始能量迹如图5(a) 所示, 当噪声阈值T 选择0.1 时, 增加高斯噪声后的曲线如图5(b) 所示, 可以看出噪声点较多, 整条曲线的轮廓越变得不明显.

3.2.2 随机相位抖动

由于在波形采集过程中触发信号存在误差, 或者被测设备使用随机延时、随机时钟频率等防护对策,导致所采集的波形不能严格对齐, 因此在典型的相关能量分析、差分能量分析和模板攻击的过程中, 首先需要对原始信号进行对齐处理, 才能进行后续的实验和分析. 根据经验, 未对齐波形的误差主要包括相位误差和振幅误差, 处理振幅误差相对容易, 但是处理相位误差具有一定的难度. 因此, 为了提高神经网络对非对齐能量迹的处理能力, 在本实验中将采集到的原始信号添加随机相位抖动Doffset, 其中Doffset 的取值范围是[−d,d], d 为抖动范围的最大值. 使用10 条原始能量迹进行绘图, 如图6(a) 所示, 当随机抖动范围d 为50 时, 10 条能量迹如图6(b) 所示, 可以看出波形相位移动较明显.

3.2.3 同时增加高斯噪声和随机相位抖动

该方法是上述两种方法的组合, 首先对能量迹数据增加高斯噪声, 然后对数据进行随机相位抖动, 旨在进一步提高所训练模型的泛化能力, 以解决深度学习小样本训练的难题. 如图7 所示, 使用10 条能量迹增加高斯噪声, 噪声阈值T 选择为0.1, 然后进行随机相位抖动, 随机抖动范围d 为50, 可以看出各曲线完全错乱.

图7 同时增加高斯噪声和随机相位抖动后的能量迹Figure 7 Power traces with Gaussian noise and random phase jitter

3.3 攻击流程设计

3.3.1 数据采集

使用实验平台对能量迹进行采集, 并且完成能量迹相位和振幅进行对齐. 以128 比特密钥的最后8 比特作为建模和攻击目标, 因此分别选取256 种固定密钥, 使用随机明文进行加密, 每种密钥采集100 条能量迹, 共计25 600 条能量迹. 最终随机选取22 000 条能量迹构建数据集, 其中20 000 条曲线为训练集,2000 条曲线为测试集, 单条能量迹的有效样本点为2000 个.

3.3.2 数据预处理

使用3.2 节提出的三种数据增强方法, 对原始能量迹增加高斯噪声和随机相位抖动, 因此共得到4个数据集用于后续实验: 数据集A 为原始能量迹; 数据集B 为增加高斯噪声后的能量迹, 噪声阈值T = 0.10; 数据集C 为随机相位抖动后的能量迹, 抖动范围取值d = 50; 数据集D 为同时增加高斯噪声和随机相位抖动的能量迹, 噪声阈值T =0.10, 抖动范围取值d=50.

3.3.3 模型参数选择

将ResNet-18 网络中二维卷积核改进为一维卷积核后, 为了训练出最优的1D-ResNet 模型, 使用数据集A 对激活函数类型、卷积核大小、训练批量大小设置等参数进行选择, 通过实验选取用于能量分析攻击的最优参数. 同时对多层感知器神经网络(MLP 模型) 和卷积神经网络(CNN 模型) 进行参数选择,使用数据集A 对MLP 模型的全连接层数、各层节点数、各层激活函数和学习率进行选择; 对CNN 模型的卷积核大小、个数和卷积步长、卷积层数、池化层数、全连接层数进行选择, 确保各模型在数据集A 上达到最佳训练精度.

3.3.4 模型训练和测试

完成数据采集、预处理和模型参数选择后, 分别对4 个数据集进行训练和测试. 使用20000 条训练集数据进行训练, 训练批量大小设置为200, 为了对比各种模型的预测精度并节约训练时间, 迭代次数epoch统一设置为100. 每次训练完毕后, 记录训练精度和训练损失曲线, 并保存模型用于测试. 在测试阶段, 使用2000 条测试集数据进行测试, 记录测试精度, 对模型的有效性进行评价, 攻击流程如图8 所示.

4 实验与分析

4.1 采集平台搭建

本文实验使用SAKURA-G 开发板, FPGA 芯片为XILINX SPARTAN-6 系列芯片, 控制芯片型号为XC6SLX9, AES 加密算法芯片为XC6SLX75, 示波器采样率设置为250 MSa/s. 实验中使用的AES算法由SAKURA 官方网站提供[19]. 使用Python 语言为编程环境, 使用TensorFlow 框架进行神经网络的训练和测试.

本文实验所使用的能量迹采集平台如图9 所示, 主要包括数字示波器、PC、FPGA 开发板和外接电源, 采集流程如下:

(1) PC 将AES 算法加密所需要的明文、密钥发送至FPGA 开发板;

(2) FPGA 开发板中控制芯片接收PC 输入, 并控制加密芯片开始工作, 同时向示波器发出触发信号;

(3) 示波器收到触发信号后开始采集能量迹数据, 并将数据储存;

(4) PC 收到FPGA 返回的加密信息, 并从示波器中读取能量迹, 记录明文、密钥、密文信息, 完成一次能量迹采集;

(5) 重量上述(1)–(4) 步骤, 完成实验所需要的大批量数据.

图9 能量迹采集平台示意图Figure 9 Schematic diagram of power traces acquisition platform

4.2 模型最优参数选择

4.2.1 噪声阈值和抖动范围值选择

通过设置不同的噪声阈值和抖动范围值生成训练数据, 并使用1D-ResNet 模型对数据进行训练, 训练精度和训练损失如图10 所示. 图10(a) 和图10(b) 分别为噪声阈值T = 0、0.05、0.10 和0.15 时的训练精度和训练损失曲线, 其中T = 0 为原始能量迹, 可以看出噪声阈值越大, 训练精度的上升和训练损失的下降越慢; 图10(c) 和图10(d) 分别为抖动范围值d = 0、50、100 和150 时的训练精度和训练损失曲线,其中d = 0 为原始能量迹, 可以看出抖动范围值越大, 训练精度的上升和训练损失的下降越慢. 从图10 中可以看出, 除原始能量迹外, 当T = 0.10 和d = 50 时训练效果最好, 因此在生成数据集B、C、D 时将噪声阈值T 设置为0.10, 抖动范围值d 设置为50.

4.2.2 激活函数类型选择

使用数据集A 分别对ReLu 激活函数、tanh 激活函数和线性激活函数进行实验, 训练批量大小设置为200, 共进行50 次迭代, 训练精度和训练损失曲线如图11所示, 可以看出ReLu 激活函数性能最好, 进行15 次迭代后训练精度达到90%, 线性激活函数性能最差. 模型训练完毕后使用测试集对模型进行测试,测试精度分别为81.3%、81.2%、44.8%, 未发生过拟合现象, 因此1D-ResNet 模型使用ReLu 函数为激活函数.

4.2.3 卷积核大小选择

使用数据集A 进行实验, 使用ReLu 激活函数, 训练批量大小设置为200, 共进行50 次迭代, 一维卷积核大小分别设置为3、5、7、9、11, 卷积步长设置为1. 训练精度和训练损失如图12 所示, 测试结果对比如表2 所示, 可以看出当一维卷积核大小设置为9 或11 时, 训练精度上升较快, 当卷积核大小为11 时,测试精度并没有提高, 相反训练时间变长, 因此在本文实验中卷积核大小选取为9.

卷积核大小 3 5 7 9 11训练精度 99.98% 99.99% 99.78% 99.98% 99.93%测试精度 81.25% 82.50% 83.05% 84.35% 83.50%

4.3 模型训练

4.3.1 不同模型性能对比

使用数据集A 对1D-ResNet 模型、CNN 模型和MLP 模型进行训练和测试并寻找最优参数. CNN模型的卷积核大小为11、卷积步长为2、使用ReLu 激活函数, 共有12 个卷积层、6 个池化层和2 个全连接层; MLP 模型的全连接层数为8 层、各层节点数为300、各层间使用ReLu 激活函数、学习率为0.000 06. 数据集A 的训练精度曲线和训练损失曲线如图13 所示, 可以看出1D-ResNet 模型经过20 次迭代后训练精度达到90% 以上, MLP 模型和CNN 模型训练精度增长较慢.

4.3.2 1D-ResNet 模型性能对比

分别使用4 个数据集, 对1D-ResNet 模型进行训练, 训练精度曲线和训练损失曲线如图13 所示. 可以看出使用训练集A 进行训练时, 训练精度提升很快, 训练损失下降也很快, 经过30 次迭代, 训练精度接近100%. 使用数据增强后的的3 个训练集进行训练时, 训练精度上升较慢, 尤其是使用原始数据进行随机相位偏后生成的训练集C 进行训练时, 在迭代60 次左右时训练精度才接近100%.

4.3.3 使用ASCAD 数据库训练

ASCAD 数据库是由Benadjila 等人在文献[11] 中提出的, 该数据库可以对基于机器学习或深度学习的SCA 进行效率和准确性评估. ASCAD 数据库由50 000 条训练曲线和10 000 条测试曲线构成, 单条曲线样本点个数为700 个. 文献[11] 对比了MLP 模型和CNN 模型不同参数对模型性能的影响, 最终通过实验训练出MLP_best 和CNN_best 两个最优模型. 本实验中使用1D-ResNet 模型对ASCAD 数据库进行训练和测试, 根据文献[11] 中相关结论, 训练批量大小设置为200, 共进行75 次迭代, 训练完毕后使用文献[11] 中提出的方法对最优模型进行性能测试和评估.

4.4 结果与分析

4.4.1 测试结果分析

为了对比实验效果, 同时使用4 个数据集分别对1D-ResNet 模型、CNN 模型、MLP 模型进行训练,并记录实验结果. 使用数据集A 对各模型的最优参数进行选择, 使用数据集B、C、D 对模型进行测试和对比, 训练精度和测试精度对比如表3所示.

模型名称 模型 数据集A 数据集B 数据集C 数据集D 平均值1D-ResNet 训练精度 99.98% 99.99% 99.78% 99.98% 99.93%测试精度 83.45% 56.00% 73.35% 49.10% 65.48%CNN 训练精度 64.89% 58.45% 67.09% 59.60% 62.51%测试精度 56.10% 43.45% 52.65% 43.20% 48.85%MLP 训练精度 37.62% 55.71% 23.62% 66.34% 45.82%测试精度 21.10% 3.40% 19.05% 1.30% 11.21%

从表3 可以看出, 经过100 次迭代后, 各个数据集上1D-ResNet 模型的训练精度都接近于100%,CNN 模型和MLP 模型的训练精度分别比1D-ResNet 模型低37.42% 和54.11%, 说明1D-ResNet 模型对能量迹数据有很强的特征提取能力. MLP 模型使用数据集B 和数据集D 进行训练和测试时, 训练精度要远大于测试精度, 说明在训练期间使用数据增强时模型发生了过拟合和过度记忆训练数据的问题, 所以在模型测试时表现极差, 错误率很高, 因此增加高斯噪声对MLP 模型影响较大, 通过噪声进行数据增强不适用于MLP 模型. 1D-ResNet 模型的平均测试精度分别比CNN 模型和MLP 模型高16.63% 和54.27%, 平均测试精度为65.48%.

不同模型性能对比如表4 所示, 1D-ResNet 模型相比于其它两种神经网络模型, 训练精度和测试精度都比较高, 在相同硬件配置的条件下, 训练时间为CNN 模型的1.8 倍, 参数个数是CNN 模型的1.4 倍.引入噪声和随机相位抖动后, 训练精度为60% 时, 所需迭代次数只需要CNN 模型的十分之一. 该模型相比于文献[14] 中使用的4 分类模型预测精度要低26.32%, 主要原因是256 分类任务相比于4 分类任务,所使用的训练集所包含的有效信息变少, 导致分类精度下降.

对比内容 1D-ResNet 模型 CNN 模型 MLP 模型单个epoch 时间 36.55 s 20.38 s 2.73 s模型参数个数 2.89×108 2.02×108 1.22×107激活函数类型 Relu Relu Relu模型层数 18 20 8训练精度达30% 时epoch 数 2 15 73

4.4.2 ASCAD 数据库测试结果分析

使用ASCAD 数据库经过75 次迭代后完成1D-ResNet 模型训练, 训练精度为98.00%, 训练消耗总时间与文献[11] 中CNN_best 模型基本相同. 使用文献[11] 中提出的rank 函数对模型性能进行测试和评估, rank 函数是侧信道攻击中用于评估攻击性能的常用指标. 使用3000 条测试曲线对模型进行测试, 结果如图15所示, 其横坐标为曲线数量, 纵坐标为rank 值, 当rank 值为0 时代表当前密钥恢复正确.图15(a) 为曲线最大抖动值Nmax=50 时测试结果, 可以看出当曲线数量为350 时, 红色曲线rank 值降低为0, 可以恢复出正确密钥; 图15(b) 为曲线最大抖动值Nmax= 100 时测试结果, 当曲线数量为2400时, 可以恢复出正确密钥. 因此, 1D-ResNet 模型性能要优于文献[11] 中的MLP_best 和CNN_best 两个最优模型.

5 结论

本文使用改进的残差网络对FPGA 实现的AES 密码算法进行了能量分析攻击, 以密钥字节为攻击目标, 采用“分而治之” 的策略逐个进行恢复. 针对经典残差网络在能量分析攻击中的不足, 提出一种改进的一维卷积残差网络1D-ResNet 模型, 该模型将二维卷积核替换为适用于处理能量迹的一维卷积核, 有效减少了模型参数和训练时间. 在训练过程中, 为了避免模型在小样本数据集难以训练和出现过拟合的问题, 使用数据增强技术, 通过引入高斯噪声和随机相位抖动, 提升了模型的性能, 确保模型在较小的数据集下能取得较好的训练和测试效果. 在攻击阶段对明文和密文完全未知的情况下, 直接对8 比特密钥进行256 分类的预测, 平均测试精度可以达到65.48%. 同时为了验证1D-ResNet 模型的有效性, 在ASCAD公开数据上进行测试和评估, 结果表明该模型要优于MLP_best 模型和CNN_best 模型, 通过实验验证了该模型的可行性和有效性, 为能量分析攻击提供了一种新的思路. 但本文实验仅对128 比特密钥中的最后8 比特进行了恢复, 如果使用该方法完成全部128 比特密钥建模需要的曲线数量较多, 因此如何使用有限数量的曲线进行建模和恢复完整密钥, 并将深度学习技术应用于非模板型能量分析攻击, 是下一步的研究方向.

猜你喜欢
密钥卷积噪声
幻中邂逅之金色密钥
基于3D-Winograd的快速卷积算法设计及FPGA实现
密码系统中密钥的状态与保护*
噪声可退化且依赖于状态和分布的平均场博弈
卷积神经网络的分析与设计
从滤波器理解卷积
TPM 2.0密钥迁移协议研究
基于傅里叶域卷积表示的目标跟踪算法
一种对称密钥的密钥管理方法及系统
控制噪声有妙法