欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2020103684592
申请人: 衡阳师范学院
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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)使用保存的模型基于攻击集进行侧信道分析,并基于评估准则评估结果,当结果满足要求时,采用所保存的模型进行实际侧信道分析,否则返回步骤一;

步骤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层加载预训练参数,并锁定参数不变。

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所述的基于深度学习的侧信道分析方法,其特征在于:步骤4)中,所述的步骤4a)包括:对F层进行非监督训练:

1)取训练集中α条功耗样本做为非监督训练集,取测试集中β条明文做为非监督测试集;

2)初始化F层的权重参数,参数满足高斯分布:即权重参数均值为0方差为1,设定迭代次数epoch和学习速率lr;

3)将非监督训练集均分为任意组,每组为bs个,然后取其中一组功耗样本的功耗信息,输入到F层子网络中,同时以该输入作为label与F层的输出进行损失计算;

4)利用下述损失函数计算公式,计算该组样本的损失;

其中,lossk表示第k组样本中所选取的bs个样本的损失平均值,i表示所选样本的序号,i ii=1,2,3,...,bs;f(x ,w)表示F层子网络权重参数为w时的输出,x表示选取的样本;

5)按照下式进行权重更新:

*

其中,wj表示F层网络权重本次迭代后的更新值, 表示本次迭代中第k组样本损失对权重的偏导,w表示当前权重,j表示当前epoch的序号,j=1,2,3,...,epoch;

6)重复步骤3、4、5,直到非监督训练集中样本全部参与损失计算与权重更新操作,即完成一次非监督训练迭代,并记录网络的权重为 同时计算第j个非监督训练迭代中所有样m本的平均损失lossj:

7)从非监督测试集中任选cs个样本,输入到F层子网络中,并将F层的权重参数设置为

8)计算损失 其中i表示所选样本序号,i=1,2,3,...,cs fi *

(x ,w)表示F层子网络权重参数为wj时的输出,j为epoch的序号;

9)重复步骤7、8,直到非监督测试集中所有样本全部参与损失计算与权重更新操作,即完成一次非监督测试迭代,同时计算第j个非监督测试迭代中所有样本的平均损失m

10)返回步骤3重新执行,直到达到迭代次数epoch;记录训练集平均损失lossj中最小m m损失lossj_min与该损失所对应的权重 与网络;记录测试集最小平均损失lossj ',保存与之对应的网络;最终得到一个权重矩阵,两个网络;

完成上述步骤后,即得到功耗信息特征提取子网络F层的权重参数并保存。

5.根据权利要求4所述的基于深度学习的侧信道分析方法,其特征在于:步骤4)中,所述的步骤4b)包括:

1)、修改PAFDCnet网络F层的连接,将F层中第一卷积层与第二卷积层直接与D层相连,其他结构不变, 设置权重参数为步骤4a)训练出来的

2)、进行监督训练,取训练集中除去非监督训练集之外的γ条功耗样本为监督训练集,取测试集中除去非监督测试集之外的δ条明文为监督测试集;设定迭代次数epoch和学习速率lr;

3)将监督训练集均分为任意组,每组为bs个,然后取其中一组样本的功耗信息,输入到PAFDCnet网络中,同时以该输入作为label与F层的输出进行损失计算;

4)利用下述损失函数计算公式,计算该组样本的损失;

5)更新权重:

6)重复步骤3、4、5,直到监督训练集中所有样本全部参与损失计算与权重更新操作,即完成一次监督训练迭代,并记录网络的权重为 同时计算第j个监督训练迭代中所有样本m的平均损失lossj:

7)从监督测试集中任选cs个样本,输入到PAFDCnet网络中,并将权重参数设置为

8)计算损失 其中i表示所选样本序号,i=1,2,3,...,cs fi *

(x ,w)表示F层子网络权重参数为wj时的输出,j为epoch的序号;

9)重复步骤7、8,直到监督测试集中全部个样本全部参与损失计算与权重更新操作,即m完成一次监督测试迭代,同时计算第j个监督测试迭代中所有样本的平均损失lossj ':m

10)返回步骤3重新执行,直到达到迭代次数epoch;记录监督训练集平均损失lossj中m最小损失lossj _min与该损失所对应的权重 与网络;记录监督测试集最小平均损失mlossj ',保存与之对应的网络。

6.根据权利要求5所述的基于深度学习的侧信道分析方法,其特征在于:步骤(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表示将数字二进制化。