[发明专利]一种基于模板攻击的混沌分组加密分析方法有效
申请号: | 201911016102.1 | 申请日: | 2019-10-24 |
公开(公告)号: | CN110730062B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 罗玉玲;张顺生;刘俊秀;丘森辉;岑明灿;蔡超波 | 申请(专利权)人: | 广西师范大学 |
主分类号: | H04L9/00 | 分类号: | H04L9/00 |
代理公司: | 桂林市华杰专利商标事务所有限责任公司 45112 | 代理人: | 刘梅芳 |
地址: | 541004 广西壮*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 模板 攻击 混沌 分组 加密 分析 方法 | ||
1.一种基于模板攻击的混沌分组加密分析方法,其特征是,包括如下步骤:
a)实现混沌分组加密过程:
(1)生成轮密钥:混沌密码算法的轮密钥是基于帐篷映射生成的,帐篷映射表示为:
其中参数βi是混沌系统的参数,并且由主密钥Ki生成,主密钥的每个字节都通过以下方法转换到0到1之间相应的βi:
其中主密钥的第ith个字节记为Ki,i∈[1,16],x0是在0和1之间的十进制数,并且将x0和β1作为帐篷映射的初始参数,结果x1是通过迭代f(x0,β1)20次,剩下的参数计算为公式(3)所示:
x(i)=f20(x(i-1),βi), (3),
其中,f20表示迭代帐篷映射20次,i∈[2,16],最后x16和β16作为帐篷映射的初始值,并且迭代100+16R次产生伪随机序列,最后的16R个伪随机数字表示为xi,i∈[101,16R],并且轮密钥ki表示为:
ki=floor(xi×255), (4),
其中floor(x)函数返回不大于x的最大整数;
(2)轮密钥同明文相加:在第一轮加密过程中,中间值的第ith个字节由第ith个字节的明文ci和第ith个字节轮密钥ki相异或得到:
其中1≤i≤16;
(3)字节替换操作:S-box查找表进行替换轮密钥和上一轮中间值的异或操作值,使用AES算法中的S-box,它通过数学方式产生;
(4)扩散操作:一轮混淆操作包括两个阶段,第一阶段,中间值的第一个字节保持不变,后面字节通过以下方式得到:
其中1≤i≤15,在第二阶段,上一阶段产生的中间值的最后一个字节保持不变,前一个字节通过以下方式得到:
(5)猫映射:上一步骤产生的16个字节的中间值存储在一个4×4的矩阵中,中间值的初始坐标(xn,yn)通过以下的猫映射转换成新的坐标(xn+1,yn+1):
其中N表示矩阵的大小,xn表示矩阵的列索引,yn表示矩阵的行索引;
(6)重复步骤(2)至步骤(5)共R次;
b)模板攻击分析混沌分组加密:
1)建立模板过程:采用多元高数模型建模,先产生随机明文和随机主密钥,明文和主密钥作为加密系统的输入,并且在加密过程中收集相应的功耗痕迹,每种可能的汉明重量功耗痕迹用于多元高数模型去建模,包括:
1-1)产生随机明文和计算第一轮加密的轮密钥:随机产生D组明文和轮密钥,将明文和轮密钥存储在矩阵P和K中,P和K的尺寸均是D×I,符号I是每组明文和密钥字节数,在第dth组明文的第ith字节定义为pd,i,并且在第dth组轮密钥的第ith字节表示为kd,i;
1-2)收集能量消耗数据:D组明文和主密钥作为加密系统的输入,在加密的过程中,D条功耗痕迹存储在矩阵T中,每条痕迹有J个采样点,矩阵T的尺寸是D×J,在痕迹d的采样点j表示为td,j;
1-3)计算假设能量消耗:产生假设能量矩阵H的第ith列的过程为:pd,i是第dth个明文的第ith字节,并且kd,i是第dth个轮密钥的第ith字节,pd,i的每个值和kd,i进行异或运算,然后对异或运算的值进行替代盒操作,对替代盒后的结果计算其汉明重量,产生假设能量消耗为公式(9)所示:
相似的,计算剩下的明文和轮密钥可以得到假设能量消耗矩阵;
1-4)分类痕迹:8位二进制数的汉明重量的范围是从0到8,从加密设备收集到的痕迹根据相应的汉明重量分类为9组,h1,i和h2,i假设为痕迹t1和t2的汉明重量,其为0,随后hD-1,i和hD,i假设为tD-1和tD的汉明重量,其为8,汉明重量为0的痕迹分为第一组,汉明重量为8的痕迹分为最后一组,在这种情况下,矩阵T被转换为相应的矩阵T1;
1-5)计算平均痕迹:根据矩阵H的第ith列,计算在矩阵T1中每种汉明重量的平均痕迹,矩阵T1转换成矩阵T2,T2的尺寸为W×J,其中J是每条痕迹总采样点数,W是可能汉明重量的总数;
1-6)找到痕迹兴趣点:找到在执行不同操作时,表现出巨大差异的兴趣点,每个可能汉明重量操作w范围从8到0,并且每个采样点(j,Aw,j)定义为平均能量,如果存在Nw,j条痕迹,当执行汉明重量操作w,计算平均能量为公式(10)所示:
当获得每种汉明重量痕迹的均值时,计算两种汉明重量痕迹均值之差再求和,计算过程如公式(11)所示:
获得一个带有尖峰的痕迹Dj,选择尖峰点的步骤如下:第一步,在Dj中选择最高的尖峰点,保存j的值为兴趣点;第二步,丢弃j附近的N个点,N是这个尖峰点的最小空间;第三步,重复前面两步,直到所有的兴趣点都找出来,当选择兴趣点时候,兴趣点之间应该至少一个时钟周期,兴趣点的最小高度,应该高于噪声平面,n个兴趣点被选择出来;
1-7)计算协方差矩阵C和均值向量m:每条痕迹采样点之间都是正态分布,相应的参数m和σ估计为和每条痕迹t建模为多元正态分布,由协方差矩阵C和均值向量m描述,其中协方差矩阵C为公式(12)所示:
在兴趣点之间的均值向量m如公式(13)所示:
m=(m1,m2,m3…mn)T. (13),
多元正态分布概率密度函数如公式(14)所示:
其中,det(C)表示矩阵C的行列式,C-1表示C的逆矩阵;
2)恢复密钥过程:一个128位的二进制固定主密钥,分为16个8位的密钥;对第一轮的加密的轮密钥的第一个8位进行攻击,选择加密算法的替代盒输出为攻击点,收集相对较少的痕迹,计算每个可能密钥的概率,最大的多元正态分布概率对应的密钥就是最可能的正确的轮密钥,
2-1)产生随机明文和固定主密钥:随机产生F组明文,存储在矩阵B中,矩阵B的大小是F×I,其中I是每组明文中字节数量,第fth组明文的第ith个字节定义为bf,i;
2-2)收集能量消耗数据:将F组随机明文和固定主密钥输入到加密系统里面,在加密过程中,收集F条能量痕迹,存储在矩阵G中,矩阵G的大小为F×J,J表示采样点数量,并且gf,j表示在第fth条痕迹中的第j个采样点;
2-3)计算假设能量消耗:计算假设能量消耗矩阵Ui的第fth行的过程:每一个可能密钥值s和bf,i进行异或操作,其中s∈[0,255]是一个8位轮密钥的可能值,然后计算上一步结果的替代盒操作,最后计算替代盒操作后的汉明重量值,类似的,计算其他组明文和可能的轮密钥进行操作产生的假设能量消耗矩阵Ui,矩阵Ui中的每个元素如公式(15)所示:
其中,矩阵Ui中的第(f,s)个元素表示假设能量消耗,相对应于第fth组明文的第ith个字节和可能的密钥s;
2-4)计算每个可能密钥的概率:第fth条痕迹的采样值表示为矩阵G的第fth行,其中第fth条痕迹在兴趣点的值标记为0≤i≤n,第fth条痕迹所有兴趣点表示为一个向量如公式(16)所示:
是汉明重量对应多元高斯概率,计算为公式(17)所示:
在矩阵G的第fth行对应的矩阵Ui的汉明重量为矩阵Pi的计算如公式(18)所示:
结合所有的值,具体描述如公式(19)所示:
如果可能轮密钥等于十六进制数0xFF,并且在三条痕迹中的多元高斯概率为(0.85,0.9,0.86),那么总的结果计算为0.6579,如果一条痕迹不能匹配到模板,那么被迫很快下降,并且错误的轮密钥猜测会被排除,最终,的最大值被找出,意味着猜测密钥是最有可能适合模板,计算如公式(20)所示:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广西师范大学,未经广西师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911016102.1/1.html,转载请声明来源钻瓜专利网。