首页 / 专利库 / 电脑编程 / 算法 / 一种基于模板攻击的混沌分组加密分析方法

一种基于模板攻击的混沌分组加密分析方法

阅读:370发布:2023-12-30

专利汇可以提供一种基于模板攻击的混沌分组加密分析方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于模板攻击的混沌分组加密分析方法,其特征是,包括如下步骤:a)实现混沌分组加密过程:b)模板攻击分析混沌分组加密。这种方法能完成混沌分 块 加密 算法 的攻击,且进行攻击需要的痕迹数量会比CPA攻击少。,下面是一种基于模板攻击的混沌分组加密分析方法专利的具体信息内容。

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个字节的th
明文ci和第i 个字节轮密钥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)计算假设能量消耗:产生假设能量矩阵片的第ith列的过程为:pd,i是第dth个明文的th th th
第i 字节,并且kd,i是第d 个轮密钥的第i 字节,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条痕迹在兴趣点的值标记为 第fth条痕迹所有兴趣点表示为一个向量如
公式(16)所示:
是汉明重量 对应多元高斯概率,可以计算为公式(17)所示:
,在矩阵G的第fth行对应的矩阵Ui的汉明
重量为 矩阵Pi的计算如公式(18)所示:
结合所有的 值,具体描述如公式(19)所示:
如果可能轮密钥等于十六进制数0xFF,并且在三条痕迹中的多元高斯概率为(0.85,
0.9,0.86),那么总的结果计算为0.6579,如果一条痕迹不能匹配到模板,那么 被迫很快下降,并且错误的轮密钥猜测会被排除,最终, 的最大值被找出,意味着猜测密钥是最有可能适合模板,计算 如公式(20)所示:

说明书全文

一种基于模板攻击的混沌分组加密分析方法

技术领域

[0001] 本发明涉及信息安全领域,具体是一种基于模板攻击的混沌分组加密分析方法。

背景技术

[0002] 信息安全已经成为一个活跃的研究领域,其中基于混沌的密码学已成为近二十年来设计新型加密算法最常用的技术之一。混沌系统是一个具有长期不可预测性的非线性系统,混沌系统被描述为伪随机性和遍历性,对初始条件极为敏感。由于密码学与混沌的内在联系,研究人员研究了将混沌系统应用于密码学的可能性,提出了许多混沌密码系统。对于混沌密码系统,输入(如明文)的细微差别会导致输出(密文)的显著变化。研究表明,这些密码系统是高度安全的,此外,传统的基于数学的方法被用于混沌密码系统的安全分析,其中大多数采用已知明文攻击,以及通过使用明文、密文和密码系统的性质来执行攻击。
[0003] 当密码算法在硬件平台上运行时,例如微控制器、专用集成电路(ASIC)和现场可编程阵列(FPGAs),不同类型的侧信道信息(如功耗,时间和电磁等)可能泄露。侧信道分析(Side Channel Analysis,简称SCA)攻击利用来自目标设备的泄漏信息来分析密码系统的密钥。利用处理时间、电磁辐射和功耗旁路信息,提出了不同的攻击方案。第一次SCA攻击方案是在1996年中提出的,其中估计了执行密钥所需的时间,并利用定时攻击来破坏非对称加密算法。作为另一种类型的SCA攻击方案,由于密码系统的操作与电磁辐射之间存在相关性,可以利用电磁分析攻击数据加密标准或高级加密标准等密码算法,在1999年提出并分析了简单和差分能量分析(SPA,DPA)攻击,在过去的20年中,能量分析攻击由于易于实现和成本相对较低而得到了广泛的应用。SPA攻击用于从给定的痕迹中揭示密钥,与SPA攻击相比,DPA攻击是另一种流行的能量分析方法,它需要大量的痕迹来攻击密钥,作为DPA的一个变体,相关能量分析(CPA)是在2003年中提出的,利用中间数据与硬件设备能量消耗之间的相关性,利用CPA攻击获取重要的信息,它比DPA攻击更强大更有。模板攻击(TA)也属于能量分析攻击,从信息理论的度来看,它被认为是一种高效的功率分析攻击,它的一个优点是,拥有和目标设备相同的设备,大量的能量痕迹可以用来描述设备上的多元正态分布,然后,可以通过记录目标设备上相对较少的能量痕迹来恢复每个密钥,这小于DPA攻击需要的痕迹,它作为一种概率攻击,克服了传统CPA攻击算法的缺点,例如加密算法中嵌入的保护对策和只能捕获线性依赖关系。

发明内容

[0004] 本发明的目的是针对现有技术不足,而提供一种基于模板攻击的混沌分组加密分析方法。这种方法能完成混沌分加密算法的攻击,且进行攻击需要的痕迹会CPA攻击少。
[0005] 实现本发明目的的技术方案是:
[0006] 一种基于模板攻击的混沌分组加密分析方法,与现有技术不同的是,包括如下步骤:
[0007] a)实现混沌分组加密过程:
[0008] (1)生成轮密钥:该混沌密码算法的轮密钥是基于帐篷映射生成的,帐篷映射可以表示为:
[0009]
[0010] 其中参数βi是混沌系统的参数,并且由主密钥Ki生成,主密钥的每个字节都通过以下方法转换到0到1之间相应的βi:
[0011]
[0012] 其中主密钥的第ith个字节记为Ki,i∈[1,16],x0是在0和1之间的十进制数,这里随机的设置为0.587,并且将x0和β1作为帐篷映射的初始参数,结果x1是通过迭代f(x0,β1)20次,剩下的参数计算为公式(3)所示:
[0013] x(i)=f20(x(i-1),βi)     (3),
[0014] 其中,f20表示迭代帐篷映射20次,i∈[2,16],最后x16和β16作为帐篷映射的初始值,并且迭代100+16R次产生伪随机序列,最后的16R个伪随机数字表示为xi(i∈[101,16R]),并且轮密钥ki可以表示为:
[0015] ki=floor(xi×255)     (4),
[0016] 其中floor(x)函数返回不大于x的最大整数;
[0017] (2)轮密钥同明文相加:在第一轮加密过程中,中间值的第ith个字节可由第ith个字节的明文ci和第ith个字节轮密钥ki相异或得到:
[0018]
[0019] 其中1≤i≤16;
[0020] (3)字节替换操作:S-box查找表进行替换轮密钥和上一轮中间值的异或操作值,有许多方法可以产生S-box,例如使用混沌系统,人工构造和数学构造等等;
[0021] (4)扩散操作:一轮混淆操作包括两个阶段,第一阶段,中间值的第一个字节保持不变,后面字节可以通过一下方式得到:
[0022]
[0023] 其中1≤i≤15,在第二阶段,上一阶段产生的中间值的最后一个字节保持不变,前一个字节通过一下方式得到:
[0024]
[0025] (5)猫映射:上一步骤产生的16个字节的中间值存储在一个4×4的矩阵中,中间值的初始坐标(xn,yn)通过以下的猫映射转换成新的坐标(xn+1,yn+1):
[0026]
[0027] 其中N表示矩阵的大小,xn表示矩阵的列索引,yn表示矩阵的行索引;
[0028] (6)重复步骤(2)至步骤(5)共R次,(R=10)混沌分组加密系统通过步骤(1)-(6)完成加密,该加密系统将使用常用的统计方法分析安全性,如SP 800-22测试,字节频率测试,崩测试以及严格雪崩测试;
[0029] b)模板攻击分析混沌分组加密:
[0030] 1)立模板过程:采用多元高数模型建模,先产生随机明文和随机主密钥,明文和主密钥作为加密系统的输入,并且在加密过程中收集相应的功耗痕迹,每种可能的汉明重量功耗痕迹用于多元高数模型去建模,包括:
[0031] 1-1)产生随机明文和计算第一轮加密的轮密钥:随机产生D组明文和轮密钥,将明文和轮密钥存储在矩阵P和K中,P和K的尺寸均是D×I,符号I是每组明文和密钥字节数,在第dth组明文的第ith字节定义为pd,i,并且在第dth组轮密钥的第ith字节表示为ka,i;
[0032] 1-2)收集能量消耗数据:D组明文和主密钥作为加密系统的输入,在加密的过程中,D条功耗痕迹存储在矩阵T中,每条痕迹有J个采样点,矩阵T的尺寸是D×J,在痕迹d的采样点j可以表示为td,j;
[0033] 1-3)计算假设能量消耗:产生假设能量矩阵H的第ith列的过程为:pd,i是第dth个明文的第ith字节,并且kd,i是第dth个轮密钥的第ith字节,pd,i的每个值和kd,i进行异或运算,然后对异或运算的值进行替代盒操作,对替代盒后的结果计算其汉明重量,产生假设能量消耗为公式(9)所示:
[0034]
[0035] 相似的,计算剩下的明文和轮密钥可以得到假设能量消耗矩阵;
[0036] 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;
[0037] 1-5)计算平均痕迹:根据矩阵H的第ith列,计算在矩阵T1中每种汉明重量的平均痕迹,矩阵T1转换成矩阵T2,T2的尺寸为W×J,其中J是每条痕迹总采样点数,W是可能汉明重量的总数;
[0038] 1-6)找到痕迹兴趣点:找到在执行不同操作时,表现出巨大差异的兴趣点,每个可能汉明重量操作w范围从8到0,并且每个采样点(j,Aw,j)定义为平均能量,如果存在Nw,j条痕迹,当执行汉明重量操作w,计算平均能量为公式(10)所示:
[0039]
[0040] 当获得每种汉明重量痕迹的均值时,计算两种汉明重量痕迹均值之差再求和,计算过程如公式(11)所示:
[0041]
[0042] 获得一个带有尖峰的痕迹Dj,选择尖峰点的步骤如下:第一步,在Dj中选择最高的尖峰点,保存j的值为兴趣点;第二步,丢弃j附近的N个点,N是这个尖峰点的最小空间;第三步,重复前面两步,直到所有的兴趣点都找出来,当选择兴趣点时候,兴趣点之间应该至少一个时钟周期,兴趣点的最小高度,应该高于噪声平面,n个兴趣点被选择出来;
[0043] 1-7)计算协方差矩阵C和均值向量m:每条痕迹采样点之间都是正态分布,相应的参数m和σ估计为 和 每条痕迹t建模为多元正态分布,由协方差矩阵C和均值向量m描述,其中协方差矩阵C为公式(12)所示:
[0044]
[0045] 在兴趣点之间的均值向量m如公式(13)所示:
[0046] m=(m1,m2,m3…mn)T      (13),
[0047] 多元正态分布概率密度函数如公式(14)所示:
[0048]
[0049] 其中,det(C)表示矩阵C的行列式,C-1表示C的逆矩阵;
[0050] 2)恢复密钥过程:一个128位的二进制固定主密钥,分为16个8位的密钥,对第一轮的加密的轮密钥的第一个8位进行攻击,选择加密算法的替代盒输出为攻击点,收集相对较少的痕迹,计算每个可能密钥的概率,最大的多元正态分布概率对应的密钥就是最可能的正确的轮密钥,
[0051] 2-1)产生随机明文和固定主密钥:随机产生F组明文,存储在矩阵B中,矩阵B的大th th小是F×I,其中I是每组明文中字节数量,第f 组明文的第i 个字节定义为bf,i;
[0052] 2-2)收集能量消耗数据:将F组随机明文和固定主密钥输入到加密系统里面,在加密过程中,收集F条能量痕迹,存储在矩阵G中,矩阵G的大小为F×J,J表示采样点数量,并且gf,j表示在第fth条痕迹中的第j个采样点;
[0053] 2-3)计算假设能量消耗:计算假设能量消耗矩阵Ui的第fth行的过程:每一个可能密钥值s和bf,i进行异或操作,其中s∈[0,255]是一个8位轮密钥的可能值,然后计算上一步结果的替代盒操作,最后计算替代盒操作后的汉明重量值,类似的,计算其他组明文和可能的轮密钥进行操作产生的假设能量消耗矩阵Ui,矩阵Ui中的每个元素如公式(15)所示:
[0054]
[0055] 其中,矩阵Ui中的第(f,s)个元素表示假设能量消耗,相对应于第fth组明文的第ith个字节和可能的密钥s;
[0056] 2-4)计算每个可能密钥的概率:第fth条痕迹的采样值表示为矩阵G的第fth行,其中第fth条痕迹在兴趣点的值标记为 第fth条痕迹所有兴趣点表示为一个向量如公式(16)所示:
[0057]
[0058] 是汉明重量 对应多元高斯概率,可以计算为公式(17)所示:
[0059]
[0060] ,在矩阵G的第fth行对应的矩阵Ui的汉明重量为 矩阵Pi的计算如公式(18)所示:
[0061]
[0062] 结合所有的 值,具体描述如公式(19)所示:
[0063]
[0064] 如果可能轮密钥等于十六进制数0xFF,并且在三条痕迹中的多元高斯概率为(0.85,0.9,0.86),那么总的结果计算为0.6579,如果一条痕迹不能匹配到模板,那么 被迫很快下降,并且错误的轮密钥猜测会被排除,最终, 的最大值被找出,意味着猜测密钥是最有可能适合模板,计算 如公式(20)所示:
[0065]
[0066] 这种方法能完成混沌分块加密算法的攻击,且进行攻击需要的痕迹会CPA攻击少。附图说明
[0067] 图1为实施例中混沌分组密码的工作流程示意图;
[0068] 图2为实施例中加密算法前三个步骤的流程示意图;
[0069] 图3为实施例中在构建模板阶段计算假设能量消耗的流程示意图;
[0070] 图4为实施例中计算假设能量消耗矩阵H和分类矩阵T1的流程示意图;
[0071] 图5为实施例中在密钥恢复阶段计算假设能量消耗流程示意图;
[0072] 图6为实施例中计算概率矩阵Pi的流程示意图。

具体实施方式

[0073] 下面结合附图和实施例对本发明内容作进一步的阐述,但不是对本发明的限定。
[0074] 实施例:
[0075] 一种基于模板攻击的混沌分组加密分析方法,包括如下步骤:
[0076] a)实现混沌分组加密过程:如图1所示,
[0077] (1)成轮密钥:该混沌密码算法的轮密钥是基于帐篷映射生成的,帐篷映射可以表示为:
[0078]
[0079] 其中参数βi是混沌系统的参数,并且由主密钥Ki生成,主密钥的每个字节都通过以下方法转换到0到1之间相应的βi:
[0080]
[0081] 其中主密钥的第ith个字节记为Ki,i∈[1,16],x0是在0和1之间的十进制数,本例随机的设置为0.587,并且将x0和β1作为帐篷映射的初始参数,结果x1是通过迭代f(x0,β1)20次,剩下的参数计算如下所示:
[0082] x(i)=f20(x(i-1),βi)     (3),
[0083] 其中,f20表示迭代帐篷映射20次,i∈[2,16],最后x16和β16作为帐篷映射的初始值,并且迭代100+16R次产生伪随机序列,最后的16R个伪随机数字表示为xi(i∈[101,16R]),并且轮密钥ki可以表示为:
[0084] ki=floor(xi×255)     (4),
[0085] 其中floor(x)函数返回不大于x的最大整数;
[0086] (2)密钥同明文相加:在第一轮加密过程中,中间值的第ith个字节可由第ith个字节的明文ci和第ith个字节轮密钥ki相异或得到:
[0087]
[0088] 其中1≤i≤16;
[0089] (3)节替换操作:S-box查找表进行替换轮密钥和上一轮中间值的异或操作值,有许多方法可以产生S-box,例如使用混沌系统,人工构造和数学构造等等,本例S-box使用AES算法中的S-box,它通过数学方式产生;
[0090] (4)散操作:一轮混淆操作包括两个阶段,第一阶段,中间值的第一个字节保持不变,后面字节可以通过一下方式得到:
[0091]
[0092] 其中1≤i≤15,在第二阶段,上一阶段产生的中间值的最后一个字节保持不变,前一个字节通过一下方式得到:
[0093]
[0094] (5)映射:上一步骤产生的16个字节的中间值存储在一个4×4的矩阵中,中间值的初始坐标(xn,yn)通过以下的猫映射转换成新的坐标(xn+1,yn+1):
[0095]
[0096] 其中N表示矩阵的大小,xn表示矩阵的列索引,yn表示矩阵的行索引;
[0097] (6)复步骤(2)步骤(5)次,混沌分组加密系统通过步骤(1)-(6)完成加密,该加密系统将使用常用的统计方法分析安全性,如SP 800-22测试,字节频率测试,雪崩测试以及严格雪崩测试;
[0098] b)模板攻击分析混沌分组加密:
[0099] 1)建立模板过程:采用多元高数模型建模,在执行模板攻击之前,产生随机明文和主密钥,并且明文和主密钥用于为每个可能的汉明重量建立模板,这些明文和密钥作为加密系统的输入,并且在加密过程中收集相应的功耗痕迹,每种可能的汉明重量功耗痕迹用于多元高数模型去建模,包括:
[0100] 1-1)产生随机明文和和计算第一轮加密的轮密钥:随机产生D组明文,根据主密钥计算轮密钥(参见图1),将明文和轮密钥存储在矩阵P和K中,P和K的尺寸均是D×I,符号I是每组明文和轮密钥字节数,在第dth组明文的第ith字节定义为pa,i,并且在第dth组轮密钥的第ith字节表示为ka,i;
[0101] 1-2)收集能量消耗数据:D组明文和主密钥作为加密系统的输入,在加密的过程中,D条功耗痕迹存储在矩阵T中,每条痕迹有J个采样点,矩阵T的尺寸是D×J,在痕迹d的采样点j可以表示为td,j;
[0102] 1-3)计算假设能量消耗:产生假设能量矩阵H(参见图4)的第ith列的过程如图3所示,为:pa,i是第dth个明文的第ith字节,并且ka,i是dth个轮密钥的第ith字节,选择替代盒的输出为攻击点(参见图2),pa,i的每个值和kd,i进行异或运算,然后对异或运算的值进行替代盒操作,对替代盒后的结果计算其汉明重量,产生假设能量消耗为公式(9)所示:
[0103]
[0104] 相似的,计算剩下的明文和密钥可以得到假设能量消耗矩阵;
[0105] 1-4)分类痕迹:8位二进制数的汉明重量的范围是从0到8,意味着在8位二进制数的汉明重量存在9种情况,从加密设备收集到的痕迹可以根据相应的汉明重量分类为9组,如h1,i和h2,i假设为痕迹t1和t2的汉明重量,其为0,随后hD-1,i和hD,i假设为tD-1和tD的汉明重量,其为8,汉明重量为0的痕迹分为第一组,汉明重量为8的痕迹分为最后一组,在这种情况下,矩阵T被转换为相应的矩阵T1,如图4所示;
[0106] 1-5)计算平均痕迹:根据矩阵H的第ith列,计算在矩阵T1中每种汉明重量的平均痕迹,因此,矩阵T1转换成矩阵T2,T2的尺寸为W×J,其中J是每条痕迹总采样点数,W是可能汉明重量的总数;
[0107] 1-6)找到痕迹兴趣点:为了充分挖掘参考设备的能量泄露,应该考虑在不同兴趣点的能量泄露,模板攻击的效率会被直接使用的兴趣点数量所影响,因此,一个可行的想法是找到在不同操作时,表现出巨大差异的兴趣点,相关的方法用于选择兴趣点的是“差之和”方法,每个可能汉明重量操作w范围从8到0,并且每个采样点(j,Aw,j)定义为平均能量,如果存在Nw,j条痕迹,当执行汉明重量操作w,计算平均能量为公式(10)所示:
[0108]
[0109] 当获得每种汉明重量痕迹的均值时,计算两种汉明重量痕迹均值之差再求和,计算过程如公式(11)所示:
[0110]
[0111] 这时候,获得一个带有尖峰的痕迹Dj,每个采样点会有不同表现,尽管痕迹Dj会表现出最重要的点,但是一些尖峰点不应该靠的很近,选择尖峰点的步骤如下:第一步,在Dj中选择最高的尖峰点,保存j的值为兴趣点;第二步,丢弃j附近的N个点,N是这个尖峰点的最小空间;第三步,重复前面两步,直到所有的兴趣点都找出来,当选择兴趣点时候,兴趣点之间应该至少一个时钟周期,因为在相同的时钟周期里面其他的采样点不会存在额外的信息,此外,兴趣点的最小高度,应该高于噪声平面,n个兴趣点被选择出来;
[0112] 1-7)计算协方差矩阵C和均值向量m:每条痕迹采样点之间都是正态分布,相应的参数m和σ估计为 和 低维的正态分布不能考虑相邻兴趣点之间的关系,为了考虑相邻兴趣点之间的关系,每条痕迹t建模为多元正态分布,多元正态分布是低维正态分布的推广,它可以由协方差矩阵C和均值向量m描述,其中协方差矩阵C为公式(12)所示:
[0113]
[0114] 此外,注意到在兴趣点之间的均值向量m如公式(13)所示:
[0115] m=(m1,m2,m3…mn)T     (13),
[0116] 那么可以给出多元正态分布概率密度函数如公式(14)所示:
[0117]
[0118] 其中,det(C)表示矩阵C的行列式,C-1表示C的逆矩阵;
[0119] 2)恢复密钥过程:为了实现模板攻击,随机产生明文,往加密系统输入明文和和固定密钥时,收集相应的攻击痕迹,为了减少计算复杂度,一个128位的二进制固定密钥,分为8位的密钥,分别对每个8位的密钥进行攻击,选择加密算法的替代盒输出为攻击点,收集相对较少的痕迹,计算每个可能密钥的概率矩阵,最大的多元正态分布概率对应的密钥就是最可能的正确密钥,
[0120] 2-1)产生明文和固定密钥:随机产生F组明文,存储在矩阵B中,矩阵B的大小是F×th thI,其中I是每组明文中字节数量,第f 组明文的第i 个字节定义为bf,i;
[0121] 2-2)收集能量消耗数据:将F组随机明文和固定密钥输入到加密系统里面,在加密过程中,收集F条能量痕迹,存储在矩阵G中,矩阵G的大小为F×J,如图6所示,J表示采样点数量,并且gf,j表示在第fth条痕迹中的第的j个采样点;
[0122] 2-3)计算假设能量消耗:计算假设能量消耗矩阵Ui的第fth行的过程如图5所示:每一个可能密钥值s和bf,i进行异或操作,其中s∈[0,255]是一个8位轮密钥的可能值,然后计算上一步结果的替代盒操作,最后计算替代盒操作后的汉明重量值,如图6所示,类似的,计算其他组明文和可能的密钥进行操作产生的假设能量消耗矩阵Ui,矩阵Ui中的每个元素如公式(15)所示:
[0123]
[0124] 其中,矩阵Ui中的第(f,s)个元素表示假设能量消耗,相对应于第fth组明文的第ith个字节和可能的密钥s;
[0125] 2-4)计算每个可能密钥的概率:第fth条痕迹的采样值表示为矩阵G的第fth行,其中第fth条痕迹在兴趣点的值标记为 为了找出兴趣点,第fth条痕迹所有兴趣点表示为一个向量如公式(16)所示:
[0126]
[0127] 是汉明重量 对应多元高斯概率,可以计算为公式(17)所示:
[0128]
[0129] 计算概率矩阵Pi的过程如图6所示,在矩阵G的第fth行对应的矩阵Ui的汉明重量为矩阵Pi的计算如公式(18)所示:
[0130]
[0131] 为了判断出哪个假设密钥是最有可能的密钥,应该结合所有的 值,具体描述如公式(19)所示:
[0132]
[0133] 如果可能的轮密钥等于十六进制数0xFF,并且在三条痕迹中的多元高斯概率为(0.85,0.9,0.86),那么总的结果计算为0.6579,如果一条痕迹不能匹配到模板,那么 被迫很快下降,并且错误的轮密钥猜测会被排除,最终, 的最大值被找出,意味着猜测密钥是最有可能适合模板,然而,公式(19)的算法会带来精度问题,因为许多很大或者很小的数相乘在一起,因此,一个替代算法,计算 如公式(20)所示:
[0134]
[0135] 如图1所示为混沌分组密码的工作流程,其中每组明文、密文和密钥均包含16个字节,16字节的主密钥作为帐篷映射的参数,迭代帐篷映射多次并映射到整数域内生成轮密钥,该混沌加密过程包含R轮迭代以确保安全性,每轮迭代包含了轮密钥加,使用S-box查找表进行字节替换,执行有限域GF(28)加法,有限域GF(28)乘法,以及猫映射。
[0136] 图2描绘了第一轮加密中的前三个步骤:当该加密过程在硬件上运行时,会产生一些中间值例如,ei,e′i,它们与明文和和轮密钥有关,当它们被加密设备处理时,相应的能量消耗就会被泄露,假设功能量消耗是通过使用(这比e′i更好)产生的,因为S-box中两个输入值之间的细微差异会导致巨大的不同输出,这些中间值可以转化为汉明重量值,本例选择S盒的输出作为攻击点,并通过以下方法计算出假设的功耗:
[0137] H=HW(Sbox(x))      (21),
[0138] 其中S-box表示字节替换表,并且替换后的值作为汉明重量函数的输入。
[0139] 图3是在构建模板阶段,产生假设能量矩阵H,参考图4的第ith列的过程。每组随机th th明文的第i 个字节和每组随机密钥的第i 个字节相异或,然后异或后的结果作为S-box的输入,S-box的输出作为汉明重量函数的输入,汉明重量函数的输出作为假设能量消耗。
[0140] 图4是根据图3计算一个字节的明文和密钥产生假设能量消耗的方法,计算出所有字节的明文和密钥产生的假设能量消耗矩阵片,然后根据矩阵片的第ith列的汉明重量值,将采集到的痕迹矩阵T进行分类,这样矩阵T就转换成矩阵T1。
[0141] 图5是在密钥恢复阶段,每组明文的第ith个字节和每个可能密钥值s产生的假设能量消耗的过程。
[0142] 图6是根据图5计算出每组明文和所有可能密钥的产生的假设能量消耗矩阵Ui,根据矩阵Ui中的汉明重量 值,将对应的在矩阵Gi的第ith行痕迹值代入多元高斯概率密度函数式(19)中,这样就可以计算得到的可能密钥的概率矩阵Pi。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈