版权说明 操作指南
首页 > 成果 > 详情

基于深度学习的侧信道分析方法

认领
导出
Link by 万方专利
反馈
分享
QQ微信 微博
成果类型:
专利
发明/设计人:
李浪;欧雨
申请/专利权人:
衡阳师范学院
专利类型:
发明专利
语种:
中文
申请时间:
2020-04-30
申请/专利号:
CN202010368459.2
公开时间:
2020-08-21
公开号:
CN111565189A
主申请人地址:
421002 湖南省衡阳市珠晖区衡花路16号
申请地区:
中国湖南
代理人:
欧阳迪奇
机构署名:
本校为其他完成单位
主权项:
1.一种基于深度学习的侧信道分析方法,其特征在于,包括如下步骤: 一、建模: 1)功耗采集与数据预处理: 从密码设备上采集功耗泄露信息并进行主成分分析与数据降维,形成原始数据; 2)构建数据集: 将原始数据分为建模集与攻击集,并将建模集划分为训练集与测试集; 3)建立侧信道分析深度学习模型: 构建由功耗信息特征提取子网络作为F层、深度学习子网络作为D层、分类子网络作为C层的三层子网络组成的深度学习网络PAFDCnet,其中F层的网络参数预先训练并加载至网络,初始化D层与C层的网络参数; 4)训练PAFDCnet: 4a)对PAFDCnet中F层进行非监督预训练,取训练集和测试集中的样本,采用K-Fold交叉验证的方法进行对F层进行训练,采用梯度下降方法对F层中的权重参数进行更新,取其中平均损失最小的F层网络模型,保存其权重参数; 4b)对整个PAFDCnet进行监督训练,取所有训练集与测试集,采用K-Fold交叉验证的方法进行训练,取其中平均损失最小的网络模型,保存模型; 二、分析,实施攻击集上的侧信道攻击: 5)建立对模型输出结果的三种评估准则:rank、acc和汉明重量; 6)使用保存的模型基于攻击集进行侧信道分析,并基于评估准则评估结果,当结果满足要求时,采用所保存的模型进行实际侧信道分析,否则返回步骤一。 2.根据权利要求1所述的基于深度学习的侧信道分析方法,其特征在于:步骤1)中从密码设备上采集功耗泄露信息包括如下步骤: 1)、指定密钥和掩码并循环产生随机明文,同时对明文、密钥和掩码分别按顺序进行编号,向密码设备发送随机明文、密钥与掩码,密码设备运行算法得到密文,并同时采集功耗信息,且赋予密文和功耗信息与对应明文相同的编号; 2)、重复步骤1,直到获得预设数量的功耗泄露信息; 3)、对所有功耗泄露信息使用主成份分析方法进行降维,降维后每一条功耗维度为700;步骤1)中形成原始数据包括如下步骤: 从降维后的功耗泄露信息中提取功耗信息和控制信息,并将功耗信息保存为二维数组,二维维度分别为条目总数和单条信息的维度,再将控制信息保存为三维数组,三维维度分别为条目总数、控制信息种类数和每条信息的字节数,其中控制信息种类包括明文、密钥、密文与掩码信息4种。 3.根据权利要求1所述的基于深度学习的侧信道分析方法,其特征在于:步骤2)中将原始数据分为建模集与攻击集包括以下步骤: 将原始数据按5:1的比例划分为建模集与攻击集,同时对攻击集从0开始重新编号; 步骤2)中训练集与测试集构建方法如下: 以建模集中原始数据的功耗信息作为功耗样本,然后基于对应的控制信息来计算每个功耗样本的标签值label={labeli}: 其中,Sbox表示AES密码算法的S盒替换操作,plaintexti[2]表编号为i的明文中第三个字节,keyi[2]表示编号为i的密钥中第三个字节,N为建模集中原始数据的数量; 将功耗样本与相应的label一一对应,然后按9:1的比例对数据进行划分来构成训练集Dtrain和测试集Dtest,并对测试集从0开始重新编号; 步骤2)中攻击集的构建方法如下: 从被划分为攻击集的原始数据中选取相应的功耗信息以及控制信息中的密钥信息,作为攻击集。 4.根据权利要求1所述的基于深度学习的侧信道分析方法,其特征在于:步骤3)所述网络模型PAFDCnet的设计如下: 所述功耗信息特征提取子网络F层设计的层次结构依次为: 第一卷积层的卷积种类为一维卷积,输入维度为1,输出维度为36,卷积核大小为11,步长为7,填充长度为5;第一激活层,激活函数为ReLU函数;第二卷积层的卷积种类为一维卷积,输入维度为36,输出维度为13,卷积核大小为11,步长为3,填充长度为5;第三卷积层的卷积种类为一维转置矩阵,输入维度为13,输出维度为36,卷积核大小为11,步长为3,填充长度为5;第二激活层,激活函数为ReLU函数;第四卷积层,卷积种类为一维转置矩阵,输入维度为36,输出维度为1,卷积核大小为11,步长为7,填充长度为2; 所述深度学习子网络D层结构依次如下: 第一卷积层种类为一维卷积,输入维度13,输出维度64,卷积核大小11,步长为2,填充长度5;第一规范层种类为一维BatchNorm,维度为64;第一激活层,激活函数为ReLU;第一池化层,种类为最大值池化层,核心大小为3,步长为2,填充长度为1;接下来为第一子块;第一过渡层;第二子块;第二过渡层;第三子块;第二规范层,种类为一维BatchNorm,维度为448; 所述第一子块包含六个子层,且每个子层结构类似,依次为:规范层A,激活层A,卷积层A,规范层B,激活层B和卷积层B;其中,激活层A与激活层B的参数为ReLU函数;每个子层的规范层B的参数一致,种类为一维BatchNorm,维度为32;每个子层的卷积层B的参数也一致,种类为一维卷积,输入为32维,输出为32维,卷积核大小为3,步长为1,填充长度为1;第一个子层的规范层A种类为一维BatchNorm,维度为64;卷积层A的种类为一维卷积,输入维度为64,输出维度为32,卷积核大小为1,步长为1,填充长度为0;第二个子层的规范层A种类为一维BatchNorm,维度为96;卷积层A的种类为一维卷积,输入维度为96,输出维度为32,卷积核大小为1,步长为1,填充长度为0;第三个子层的规范层A种类为一维BatchNorm,维度为128;卷积层A的种类为一维卷积,输入维度为128,输出维度为32,卷积核大小为1,步长为1,填充长度为0;第四个子层的规范层A种类为一维BatchNorm,维度为160;卷积层A的种类为一维卷积,输入维度为160,输出维度为32,卷积核大小为1,步长为1,填充长度为0;第五个子层的规范层A种类为一维BatchNorm,维度为192;卷积层A的种类为一维卷积,输入维度为196,输出维度为32,卷积核大小为1,步长为1,填充长度为0;第六个子层的规范层A种类为一维BatchNorm,维度为224;卷积层A的种类为一维卷积,输入维度为224,输出维度为32,卷积核大小为1,步长为1,填充长度为0; 所述第一过渡层的结构依次为:规范层C、激活层C、卷积层C和池化层C;其中规范层C的种类为一维BatchNorm,维度为256;激活层C的激活函数为ReLU;卷积层C的种类为一维卷积,输入维度为256,输出维度为128,卷积核大小为1,步长为1,填充长度为0;池化层种类为平均值池化,核心大小为2,步长为2,填充长度为0; 所述第二子块结构包含12个子层,每个子层结构与第一子块的子层结构一致,其中规范层A的维度与卷积层A的输入维度均为128、160、192、224、256、288、320、352、384、416、448、480,其他参数与第一子块相同; 所述第二过渡层结构与第一过渡层一致,参数变化如下:规范层C的种类为一维BatchNorm,维度为512;卷积层C的种类为一维卷积,输入维度为512,输出维度为256,卷积核大小为1,步长为1,填充长度为0;其他相同; 所述第三子块与第一子块结构一致,子层数为6,其中规范层A的维度与卷积层A的输入维度均为256、288、320、352、384、416,其他参数与第一子块相同; 步骤3)中所述C层分类子网络结构如下: 第一规范层,种类为一维BatchNorm,维度为448;第二池化层,种类为一维自适应平均值池化层,维度为(1,448,1);第三线性层,维度为(448,256); 将F、D、C三层依次连接起来,得到PAFDCnet网络,其中F层加载预训练参数,并锁定参数不变。 5.根据权利要求1所述的基于深度学习的侧信道分析方法,其特征在于:步骤4)中,所述的步骤4a)包括: 对F层进行非监督训练: 1)取训练集中α条功耗样本做为非监督训练集,取测试集中β条明文做为非监督测试集; 2)初始化F层的权重参数,参数满足高斯分布:即权重参数均值为0方差为1,设定迭代次数epoch和学习速率lr; 3)将非监督训练集均分为任意组,每组为bs个,然后取其中一组功耗样本的功耗信息,输入到F层子网络中,同时以该输入作为label与F层的输出进行损失计算; 4)利用下述损失函数计算公式,计算该组样本的损失; 其中,lossk表示第k组样本中所选取的bs个样本的损失平均值,i表示所选样本的序号,i=1,2,3,...,bs;f(xi,w)表示F层子网络权重参数为w时的输出,xi表示选取的样本; 5)按照下式进行权重更新: 其中,wj*表示F层网络权重本次迭代后的更新值,表示本次迭代中第k组样本损失对权重的偏导,w表示当前权重,j表示当前epoch的序号,j=1,2,3,...,epoch; 6)重复步骤3、4、5,直到非监督训练集中样本全部参与损失计算与权重更新操作,即完成一次非监督训练迭代,并记录网络的权重为同时计算第j个非监督训练迭代中所有样本的平均损失lossjm: 7)从非监督测试集中任选cs个样本,输入到F层子网络中,并将F层的权重参数设置为 8)计算损失其中i表示所选样本序号,i=1,2,3,...,csf(xi,w)表示F层子网络权重参数为wj*时的输出,j为epoch的序号; 9)重复步骤7、8,直到非监督测试集中所有样本全部参与损失计算与权重更新操作,即完成一次非监督测试迭代,同时计算第j个非监督测试迭代中所有样本的平均损失lossjm': 10)返回步骤3重新执行,直到达到迭代次数epoch;记录训练集平均损失lossjm中最小损失lossjm_min与该损失所对应的权重与网络;记录测试集最小平均损失lossjm',保存与之对应的网络;最终得到一个权重矩阵,两个网络; 完成上述步骤后,即得到功耗信息特征提取子网络F层的权重参数并保存。 6.根据权利要求5所述的基于深度学习的侧信道分析方法,其特征在于:步骤4)中,所述的步骤4b)包括: 1)、修改PAFDCnet网络F层的连接,将F层中第一卷积层与第二卷积层直接与D层相连,其他结构不变。设置权重参数为步骤4a)训练出来的 2)、进行监督训练,取训练集中除去非监督训练集之外的γ条功耗样本为监督训练集,取测试集中除去非监督测试集之外的δ条明文为监督测试集;设定迭代次数epoch和学习速率lr; 3)将监督训练集均分为任意组,每组为bs个,然后取其中一组样本的功耗信息,输入到PAFDCnet网络中,同时以该输入作为label与F层的输出进行损失计算; 4)利用下述损失函数计算公式,计算该组样本的损失; 5)更新权重: 6)重复步骤3、4、5,直到监督训练集中所有样本全部参与损失计算与权重更新操作,即完成一次监督训练迭代,并记录网络的权重为同时计算第j个监督训练迭代中所有样本的平均损失lossjm: 7)从监督测试集中任选cs个样本,输入到PAFDCnet网络中,并将权重参数设置为 8)计算损失其中i表示所选样本序号,i=1,2,3,...,csf(xi,w)表示F层子网络权重参数为wj*时的输出,j为epoch的序号; 9)重复步骤7、8,直到监督测试集中全部个样本全部参与损失计算与权重更新操作,即完成一次监督测试迭代,同时计算第j个监督测试迭代中所有样本的平均损失lossjm': 10)返回步骤3重新执行,直到达到迭代次数epoch;记录监督训练集平均损失lossjm中最小损失lossjm_min与该损失所对应的权重与网络;记录监督测试集最小平均损失lossjm',保存与之对应的网络。 7.根据权利要求6所述的基于深度学习的侧信道分析方法,其特征在于:步骤(5)建立对模型输出结果的三种评估准则为: 建立rank评估准则: 1)设PAFDCnet的输入集为Dattact={power,key},输出结果为f(Dattact,wj*),其中Dattact表示攻击集,评估准则为: 设中间值其中f表示PAFDCnet模型,w*为训练好的权重参数,表示AES算法中第一个S盒输出中的第4个字节,由明文中第4个字节和候选密钥k计算得出,Sbox表示盒,plaintext表示明文; 对key_proba进行从大到小排序,排序后为sorted_proba,利用numpy数组的where函数,计算key_proba与控制信息集中密钥的平均rank值: 其中np.where表示输出满足括号内条件的元素的坐标,即如果sorted_proba中有一个元素与key_proba[key]相等,则输出它在sorted_proba中的坐标; 2)建立acc即准确率评估准则: 其中arg max表示最大值函数的反函数,将f(poweri,w*)的结果沿x轴坐标0-255绘制曲线,以该曲线的最高值所对应的坐标x即为keyi; 3)建立汉明重量评估准则: 计算结果与标签的汉明重量,并将其分为两大类:汉明重量大于等于4和小于4;汉明重量的计算方式为统计该值的二进制中1的个数,即: Hanmingweight=count1(bin(argmax(f(poweri,w*)))) 其中count1表示统计1的个数,bin表示将数字二进制化。
摘要:
本发明公开了一种基于深度学习的侧信道分析方法,整体分为两个阶段:一、建模阶段;二、分析阶段。其中,建模阶段又分为四个步骤:步骤一、功耗采集与数据预处理;步骤二、功耗数据集的构建;步骤三、深度学习模型设计;步骤四、模型训练。分析阶段则主要分为两个步骤:步骤五、建立模型与分析结果评估准则;步骤六、在攻击集上利用阶段一训练的模型进行侧信道分析与评估。本发明结合侧信道分析技术中的模板攻击技术,将传统分析中的数理统计技术转化为深度学习模型,并且结合功耗特性进行网络模型设计,同时结合监督训练与非监督训练,既降低了模板攻击的实施难度,又提高了攻击的效率。

反馈

验证码:
看不清楚,换一个
确定
取消

成果认领

标题:
用户 作者 通讯作者
请选择
请选择
确定
取消

提示

该栏目需要登录且有访问权限才可以访问

如果您有访问权限,请直接 登录访问

如果您没有访问权限,请联系管理员申请开通

管理员联系邮箱:yun@hnwdkj.com