一种针对仿射掩码防护方案的混合侧信道攻击方法

文档序号:34056452发布日期:2023-05-05 17:11阅读:102来源:国知局
一种针对仿射掩码防护方案的混合侧信道攻击方法

本发明涉及信息安全领域,具体是一种针对仿射掩码防护方案的混合侧信道攻击方法。


背景技术:

1、侧信道攻击通过对设备实际加密过程中泄漏的侧信息(如时间信息、能量信息、电磁信息)进行采集,并对采集的侧信息进行分析,从而恢复密钥信息。经典的侧信道攻击方法包括差分功耗分析(dpa)、相关功耗分析(cpa)、模板攻击(ta)等。为提高侧信道攻击的效率,深度学习也被引入到侧信道攻击中。

2、为了抵抗侧信道攻击,隐藏和掩码等技术被提出。掩码技术利用随机数随机化中间结果进行防护。掩码技术主要有:isw掩码、布尔掩码、门限掩码和仿射掩码等。仿射掩码是一种便于软件实施的掩码方案,与其他技术结合可有效抵抗一阶侧信道攻击。而实施针对掩码防护的密码算法,通常需要实施更加高阶的侧信道攻击。

3、secaes是法国国家网络安全局(anssi)reassure项目的成果,是benadjila等人针对aes算法在2020年提出的一种结合了多种侧信道防护技术的掩码方案,该方案主要由仿射变换和乱序技术实现。目前对secaes仿射掩码方案的侧信道攻击方法[1],需要先定位乘法掩码字节与明文进行乘法运算时产生的16个泄漏点,在汉明重量模型下使用模板攻击恢复产生乘法掩码字节的2个随机字节;再定位乘法掩码字节与密钥进行乘法计算的泄漏点进行密钥恢复。该方法存在计算复杂度高,定位泄露点困难等问题,特别是其需要在每条能量迹中定位16个泄露点,这对攻击者提出了很高的技术要求;同时,若设备存在时钟抖动或其他问题,会导致每条能量迹16个泄漏点不在固定的位置上,定位泄露点的操作就会变得无比困难。

4、针对这种仿射掩码的防护方案,为降低攻击的难度,提高攻击成功率,本发明提出一种混合侧信道攻击方法,首先利用深度学习恢复每组明文加密所使用的乘法掩码,再在已恢复乘法掩码的情况下采用scatter方法恢复密钥。

5、参考文献[1]balli f,caforio a,banik s.some applications of hammingweight correlations[eb/ol].cryptology eprint archive,2021。


技术实现思路

1、本发明的目的是针对实现了仿射掩码防护的密码算法,提出一种针对仿射掩码防护方案的混合侧信道攻击方法,通过深度学习联合仿射掩码中对明文进行乘法变换时产生的泄露,恢复每个明文分组所使用的乘法掩码字节,将二阶功耗攻击降为一阶功耗攻击;针对防护方案中的乱序问题,结合恢复的乘法掩码字节,使用scatter方法进行攻击完成密钥恢复。

2、实现本发明目的的技术方案是:

3、一种针对仿射掩码防护方案的混合侧信道攻击方法,包括以下步骤:

4、(1)能量迹数据获取;

5、获取实现了仿射掩码防护方案的密码算法在设备运行过程中的能量迹数据,将数据分为训练集和测试集,训练集用来训练网络模型,测试集用来恢复乘法掩码和密钥;

6、(2)对训练集能量迹进行数据标签;

7、按照仿射掩码方案计算训练集中每个明文分组加密时使用的掩码字节,将该掩码字节作为该明文分组加密时产生的该条能量迹的标签,完成对训练集中所有能量迹的标签;

8、(3)建立并训练稠密卷积神经网络模型;

9、搭建稠密卷积神经网络模型,选择合适的超参数,使用训练集进行模型训练;

10、(4)基于稠密卷积神经网络恢复乘法掩码字节;

11、使用训练好的稠密卷积神经网络模型对测试集中每条能量迹进行分类,完成对测试集中每条能量迹所对应的乘法掩码字节的恢复;

12、(5)基于scatter方法恢复密钥;

13、在恢复了测试集每条能量迹使用的乘法掩码字节后,使用scatter攻击方法以s盒的输出值作为目标进行攻击,使用汉明重量泄露模型,进行密钥恢复攻击。

14、进一步地,步骤(1)所述能量迹数据获取,具体步骤如下:

15、(1.1)在建模设备上实现仿射掩码保护的分组密码算法,产生多组随机的明文分组,将明文分组发送至建模设备进行加密运算;

16、(1.2)使用采集装置采集建模设备加密每个分组过程中,乘法掩码字节与所有明文进行初次乘法运算时的泄露,即能量迹数据,并将每个明文分组、加密结果、掩码方案所使用的随机分组一并记录,这些数据一起构成训练集;

17、(1.3)在目标设备上运行同样的以仿射掩码防护方案的分组密码算法,产生多组随机的明文分组,将明文分组发送至目标设备进行加密运算;

18、(1.4)使用采集装置采集在目标设备加密每个分组过程中,乘法掩码字节与所有明文进行初次乘法运算时和第一次s盒运算时的泄露,即能量迹数据,并将每个明文分组、加密结果一并记录,这些数据一起构成测试集;

19、(1.5)将测试集的每条能量迹中按照乘法掩码字节与所有明文进行初次乘法运算时的部分截取,作为掩码字节测试集;将能量迹中第一次s盒运算部分截取,作为密钥攻击测试集。

20、进一步地,步骤(2)所述对训练集能量迹进行数据标签,具体步骤如下:

21、(2.1)取训练集中每条能量迹所对应的随机分组,按照仿射掩码方案中乘法掩码的生成方式,使用随机分组生成每条能量迹对应的乘法掩码字节;

22、(2.2)训练集中每条能量迹的标签设置为该能量迹所对应的随机分组计算出来的乘法掩码字节,完成对训练集所有能量迹的标签。

23、进一步地,步骤(3)所述建立并训练稠密卷积神经网络模型,具体步骤如下:

24、(3.1)搭建稠密卷积神经网络模型densenet-121:

25、从输入到输出依次包括输入层、卷积层、最大池化层、4个标准的稠密块以及稠密块间的3个过渡层、输出层;

26、输入层不对数据进行任何处理,只负责将数据导入模型;

27、卷积层的卷积核大小为7×7,步长为2;

28、最大池化层的窗口大小为3×3,步长为2;

29、在4个稠密块中,每个稠密块都有数量和大小不一的bn-relu-conv结构,即批处理归一化单元(batch normalization,bn)、修正线性单元(rectified linear unit,relu)和卷积(convolution,conv)单元;

30、稠密块之间的过渡层由1个bn-relu-conv结构和1个步长为2的池化层组成;

31、输出层包括一个展平(flatten)层、一个rate为0.5的随机失活(dropout)层、2个4096个节点的全连接层和一个归一化指数(softmax)层;

32、(3.2)由于学习率对数据集很敏感,因此需要在一个较大范围搜索学习率,并选择一个较优的学习率,在此设置选择的范围为[0.00001,0.001];

33、(3.3)模型的其他训练参数,设置epoch为40、batch大小为64,优化器使用rmsprop,使用交叉熵作为损失函数;交叉熵主要用于度量两个概率分布间的差异性信息,交叉熵h(·)的公式为:

34、

35、其中,xi为离散变量,k为离散变量xi的长度,p、q是xi的概率分布,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵用作损失函数可以衡量p与q的相似性;

36、(3.4)因为densenet卷积网络是为了进行图像分类而设计,在此为了使能量迹的数据符合模型特征,更好地使用卷积操作提取能量迹的特征信息,需要将训练集中一维结构的所有能量迹数据进行形状变化,转化成三维的图像数据形式,如将具有10000个点的能量迹转化为100×100×1大小的三维数据;

37、(3.5)为减轻训练成本,在神经网络训练中,没有使用验证集进行超参数调整,网络训练达到最大的迭代次数即设置的epoch次数则终止训练。

38、进一步地,步骤(4)所述基于稠密卷积神经网络恢复乘法掩码字节,具体步骤如下:

39、(4.1)完成网络模型训练后,使用训练好的网络模型对掩码字节测试集中的每条能量迹进行分类,网络模型对每条能量迹都会计算出所有标签种类的概率;

40、(4.2)对掩码字节测试集中每条能量迹的分类结果,取所有标签种类中概率最高的标签结果作为该条能量迹所使用的乘法掩码字节,即恢复出掩码字节。

41、进一步地,步骤(5)所述基于scatter方法恢复密钥,具体步骤如下:

42、(5.1)读入所有能量迹、明文,对数据预处理,得到数据集s:

43、设密钥攻击测试集中能量迹数量为n,将第i条能量迹表示为si,0≤i<n,将密钥攻击测试集进行绝对值处理,将负值全部转化为正值,将经过预处理后的测试集标记为s,设u为s中所有泄漏点的样本空间;

44、(5.2)统计泄露点分布,得到数据集d:

45、遍历s中所有能量迹,统计每条能量迹中所有点出现的次数,每条能量迹的统计结果都是一个分布;将第j条能量迹的统计结果分布表示为dj,0≤j<n,则统计完所有s的能量迹得到所有能量迹的分布集合为d;

46、(5.3)选择攻击目标s盒对应的密钥:

47、假设密码算法有y个s盒,先攻击算法中某一个s盒对应的密钥,设该s盒为m比特大小,则该m比特密钥猜测空间g的大小为2m,汉明重量空间h大小为m+1;设中间值计算公式为f(z,v,g),其中z为明文或密文信息,v为恢复的乘法掩码字节,猜测密钥g∈g;

48、(5.4)根据明文和猜测密钥g计算中间值:

49、遍历分布d中每一个分布dj,在汉明重量泄露模型下,使用dj对应的明文z、步骤(4)恢复的该组明文使用的乘法掩码字节v和猜测密钥g计算中间值的汉明重量h=hw(f(z,v,g)),将dj以g、h作为横纵下标累加到具有g×h个分布的累加器acc中,则针对该能量迹的累加的计算公式为:

50、acc(g)(h)[u] += dj[u],  u∈u (2)

51、(5.5)计算概率密度pdf:

52、遍历acc中所有分布,计算每一个分布的概率密度pdf,计算公式为:

53、

54、(5.6)计算卡方系数:

55、对pdf使用皮尔逊卡方χ2作为scatter攻击的区分器,卡方系数计算公式为:

56、

57、(5.7)完成皮尔逊卡方计算后,使用最大似然估计获得概率最高的猜测密钥g,完成对一个s盒m比特密钥的恢复,最大似然估计计算公式为:

58、

59、(5.8)重复步骤(5.3)到步骤(5.7),完成对剩下y-1个s盒密钥的scatter攻击,完成密钥恢复。

60、本发明的有益效果是:

61、(1)本发明方法通过深度学习结合scatter攻击方法,先将针对掩码防护的密码算法的二阶功耗攻击降为一阶功耗攻击,再采用scatter方法完成攻击,使得本发明方法针对被掩码防护密码算法的攻击复杂度大大降低,并降低了的攻击难度,提高了攻击的成功率;

62、(2)本发明攻击方法可以有效地完成对增加了仿射掩码防护方案密码算法的攻击。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1