一种基于粒子群混合退火算法的侧信道攻击方法转让专利

申请号 : CN202011170078.X

文献号 : CN112511290B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何利文国海轮安聪赵金城包跃王强

申请人 : 南京邮电大学

摘要 :

本发明公开了一种基于粒子群混合模拟退火算法的侧信道攻击方法,在微控制器上运行密码算法,发送随机明文,对加密过程中产生的功率消耗曲线进行采集;选择DES密码算法中S盒作为攻击点,将DES密码算法8个S盒视为一个整体,叠加计算8个S盒的仿真功率消耗,一次性恢复DES算法S盒的秘钥;将轮密钥定义成猜测轮密钥,初始化后采用粒子群和模拟退火的混合优化算法对猜测密钥进行优化,得到最优个体从而减少所需实测功耗曲线。提高了攻击效率;通过混合模拟退火算法并实时调整粒子群算法的学习因子,保证了群体的多样性,并赋予搜索过程中的概率突跳性,防止算法早熟,改善了算法的全局优化能力,提高了秘钥猜测的准确性。

权利要求 :

1.一种基于粒子群混合模拟退火算法的侧信道攻击方法,其特征在于所述方法包括如下步骤:(1)采集功耗曲线;(2)明确攻击点;(3)对轮秘钥进行编码;(4)对粒子群进行初始化;(5)初始化相关初始参数;(6)确定适应度函数;(7)计算每个粒子的适应度,并根据粒子适应度更新历史最佳位置pbest和全局最佳位置gbest;(8)调整粒子群算法的学习因子c1和c2;(9)根据速度和位置更新方程更新每个粒子的速度和位置;(10)根据退火算法的Metropolis准则判断是否接受新位置,如果满足条件,则接受新位置,然后进行退温操作,如果不满足,则重新进行步骤(7);(11)当满足停止条件时,输出gbest,恢复正确秘钥,否则返回步骤(7)进行下一轮迭代;

所述步骤(1)具体包括:在微控制器上运行DES密码算法,发送随机明文,对加密过程中产生的功率消耗曲线进行采集;

所述步骤(2)中攻击点为DES算法中的全部S盒;

所述步骤(3)中轮密钥的编码方式为:将DES中48位秘钥分成8份,编码为二进制字符串,每份有6位秘钥;

所述步骤(6)中的适应度函数为将实际能量数据与经过S盒加密后产生的汉明重量之间的相关系数,即其中,corr为相关系数, 为8个S盒输入输出值的汉明重量之和,Trace为实测功耗曲线。

2.根据权利要求1所述的基于粒子群混合模拟退火算法的侧信道攻击方法,其特征在于所述步骤(8)中学习因子为:其中,通常c1、c2最小值为1,最大值为2,c1min、c1max为c1的取值范围,c2min、c2max为c2的取值范围。

3.根据权利要求1所述的基于粒子群混合模拟退火算法的侧信道攻击方法,其特征在于所述步骤(11)中迭代停止条件为:达到预设的最大迭代数kmax。

说明书 :

一种基于粒子群混合退火算法的侧信道攻击方法

技术领域

[0001] 本发明涉及一种侧信道攻击方法,尤其涉及一种基于粒子群混合退火算法的侧信道攻击方法。

背景技术

[0002] 随着信息和分析电路技术的发展,对电子设备密码的破解不再单纯的停留在协议和算法上,而可以从其处理数据的过程中泄露的信息入手进行破解。侧信道攻击是利用硬件密码电子设备在加密过程中存在的能量、电磁、时间和声音等泄露的信息来对其进行攻击的攻击方法,可分为能量分析攻击、电磁攻击和故障攻击等。1999年,Kocher等人提出了功耗分析的理念,该攻击方式是非入侵式,在攻击过程中通过采集硬件电路加、解密或签名等操作释放出的功耗特征,利用密码学和统计学原理获取与秘钥有关的信息来分析和破解秘钥信息的一种攻击方式。该技术简单而有效,是侧信道分析技术里发展最迅速的。
[0003] 相关性能量分析(correlation power analysis,CPA)选择未知但恒定的参考态,建立具有数据相关性的汉明模型,利用功耗样点与被处理数据的汉明权重之间的相关性因子进行分析。攻击者已知明文,并可变化明文并采集相应的功耗曲线。攻击者猜测安全芯片的秘钥,根据明文和秘钥计算出某中间变量。以中间变量的汉明权重和功耗相关系数做分析,相关系数最高的即对应猜测正确的秘钥。相比于其他秘钥恢复技术,该技术具有更强的攻击型和解密效率。
[0004] 数据加密标准(data encryption standard,DES)是一种使用密钥加密的分组密码算法,在非密级政府通信中使用,适用范围广且其加密安全性较高。它基于使用56位秘钥的对称算法。S盒是DES算法中唯一的非线性部分,具有混淆的作用,其密码强度决定了整个密码算法的安全强度。因此,对于采用DES算法的系统进行攻击时,常通过攻击S盒来分析密钥。传统的侧信道功耗分析方法针对单一S盒攻击来分析出秘钥,对能量曲线的区分仅仅依靠单个S盒的比特信息进行,这种分析方式,浪费了其他S盒的可利用信息。导致能量曲线和秘钥的相关性较差,所需实测功耗曲线数量达上千条,影响了破解秘钥的效率和准确率,现有技术中基于粒子群算法对S盒进行功耗分析的方法有着易于陷入局部极值点、收敛精度低,后期收敛慢的缺点。

发明内容

[0005] 发明目的:针对上述现有技术的缺陷,本发明提供一种基于模拟退火的粒子群算法的侧信道攻击方法,解决DES算法泄露的功耗信息利用率不足问题。
[0006] 技术方案:本发明的基于模拟退火的粒子群算法的侧信道攻击方法包括如下步骤:
[0007] (1)采集功耗曲线;(2)明确攻击点;(3)对轮秘钥进行编码;(4)对粒子群进行初始化;(5)初始化相关初始参数;(6)确定适应度函数(7)计算每个粒子的适应度,并根据粒子适应度更新历史最佳位置(pbest)和全局最佳位置(gbest);(8)调整粒子群算法的学习因子c1和c2;(9)根据速度和位置更新方程更新每个粒子的速度和位置;(10)根据退火算法的Metropolis准则判断是否接受新位置;(11)当满足停止条件(达到预设的最大迭代数kmax)时,输出gbest,即恢复了正确秘钥,否则,返回步骤7进行下一轮迭代。
[0008] 步骤(1)具体包括:在微控制器上运行DES密码算法,发送随机明文,对加密过程中产生的功率消耗曲线进行采集。
[0009] 步骤(2)中攻击点为DES算法中的全部S盒。
[0010] 步骤(3)中轮密钥的编码方法为将DES中48位秘钥分成8份,编码为二进制字符串,每份有6位秘钥。
[0011] 步骤(6)中的适应度函数为将实际能量数据与经过S盒加密后产生的汉明重量之间的相关系数,即
[0012]
[0013] 其中,corr为相关系数, 为8个S盒输入输出值的汉明重量之和,Trace为实测功耗曲线。
[0014] 步骤(8)中学习因子为:
[0015]
[0016]
[0017] 其中,c1、c2最小值为1,最大值为2(具体参数可能受实验环境有所影响)。
[0018] 步骤(11)中迭代的停止条件为:达到预设的最大迭代数kmax
[0019] 有益效果:与现有技术相比,本发明具有如下显著优点:通过利用多S盒的功耗叠加,提高了功耗曲线的利用率,增强功耗信息的信噪比。从而减少所需实测功耗曲线,提高了攻击效率;通过混合模拟退火算法并实时调整粒子群算法的学习因子,保证了群体的多样性,并赋予搜索过程中的概率突跳性,防止算法早熟,改善了算法的全局优化能力,提高了秘钥猜测的准确性。

附图说明

[0020] 图1为本发明的侧信道攻击方法的流程图。

具体实施方式

[0021] 下面结合附图对本发明的技术方案作进一步说明。
[0022] 采集功耗曲线,在微控制器上运行DES密码算法,发送N条随机明文,对加密过程中产生的功率消耗曲线进行采集。
[0023] 选择DES算法中S盒作为攻击点。
[0024] 其中,DES算法中存在8个S盒,将DES算法S盒视为一个整体,对8个S盒的仿真功率消耗进行叠加计算,进行并行攻击,将真实秘钥进行一次性恢复。
[0025] 对轮秘钥进行编码,将DES中48位秘钥分成8份,编码为二进制字符串,每份有6位秘钥。
[0026] 对粒子群进行初始化,确定初始粒子群的规模并随机初始化粒子群中粒子的位置,初始粒子群中的每个个体相当于随机猜测的秘钥。
[0027] 初始化相关初始参数;设置粒子群算法初始参数w、c1、c2,以及退火算法的初始温度T的初值。
[0028] 确定适应度函数,适应度函数是评判粒子群中个体优先级大小的唯一标准,负责挑选优秀个体,对粒子群中的个体位置进行优化,将实际能量数据与经过S盒加密后产生的汉明重量之间的相关系数定义为适应度函数。
[0029]
[0030] 其中,corr为相关系数, 为8个S盒输入输出值的汉明重量之和,Trace为实测功耗曲线,F值越大,说明当前猜测秘钥能够更好的向正确秘钥的位置移动。
[0031] 计算每个粒子的适应度。并根据粒子适应度更新历史最佳位置(pbest)和全局最佳位置(gbest)。
[0032] 调整粒子群算法的学习因子c1和c2:
[0033]
[0034]
[0035] 式中,k为当前迭代次数,kmax为最大迭代次数,c1min、c1max为c1的取值范围,c2min、c2max为c2的取值范围。通常c1、c2最小值为1,最大值为2(具体参数可能受实验环境有所影响)。
[0036] 根据速度和位置更新方程更新每个粒子的速度和位置。
[0037] 根据退火算法的Metropolis准则判断是否接受新位置。如果满足条件,则接受新位置,然后进行退温操作,如果不满足,则重新更新每个粒子的速度和位置。
[0038] 当满足停止条件(有足够好的适应度值或达到预设的最大迭代数kmax)时,输出gbest,也就恢复了正确秘钥。否则,返回步骤5进行下一轮迭代。