一种基于遗传算法的相关强化碰撞能量攻击方法技术

技术编号:33202056 阅读:18 留言:0更新日期:2022-04-24 00:40
本发明专利技术涉及一种基于遗传算法的相关强化碰撞能量攻击方法,属于密码学和侧信道分析技术领域。首先对一组明文段与其它各组明文段分别做相关强化碰撞分析,使用遗传算法搜索明文段之间最优差分,推导获得各密钥段中相同位置字节之间的异或关系。然后对一组明文段与其他任意一组明文段做相关强化碰撞分析,使用遗传算法搜索两个明文段循环错位一字节后的最优差分,推导获得密钥段内部字节之间异或关系。推导获得一字节密钥与其他各字节的异或关系,遍历该字节密钥的所有可能取值并计算出对应的主密钥候选值,使用一对明密文验证并得到正确密钥。本方法实现了对多字节并行计算加密设备中带一阶掩码分组密码的能量攻击,同时提升了密钥恢复效率。了密钥恢复效率。了密钥恢复效率。

【技术实现步骤摘要】
一种基于遗传算法的相关强化碰撞能量攻击方法


[0001]本专利技术涉及一种基于遗传算法的相关强化碰撞能量攻击方法,属于密码学和侧信道分析


技术介绍

[0002]随着现代密码学研究的不断深入,密码分析技术也在不断拓展,从算法设计层面大幅提升了密码算法安全性。目前,传统的密码分析手段很难实现实际的密钥恢复攻击。1996年,Kocher等人提出了侧信道分析技术,通过采集密码设备加密过程中产生的时间、声音、能量、电磁等物理信号波动,推测中间值信息,结合统计分析方法,能够以极低的计算复杂度恢复密钥。
[0003]近年来,人工智能作为模拟、延伸人类智能的工具,广泛应用于诸多领域。与人工智能技术相结合的侧信道攻击,也成为本领域的研究热点。基于人工智能算法的侧信道技术,对于带防护的密码硬件分析成效显著,为改进侧信道防护措施提供了更加全面的参考。
[0004]碰撞攻击,是Bogdanov于2007年提出的一种侧信道分析方法。该方法通过检测AES算法(Advanced Encryption Standard,高级加密标准)首轮任意两个S

box的碰撞来建立等式,确立密钥字节之间的关系,可将AES密钥的信息量从128比特降低为8比特,但是,该方法并未给出高效的碰撞检测模型。2010年,Moradi等人提出相关强化碰撞攻击方法,利用相关系数给出了汉明重量模型下中间值碰撞的检测模型,同时还发现了掩码硬件实现的不完美性,并通过实验证明了相关强化碰撞攻击能够攻破一阶掩码防护。
[0005]启发式算法作为人工智能技术的一个重要分支,通过模仿自然体行为模式,基于直观或经验设计最优化问题的解决方式。这类算法被引入到侧信道分析中用于密钥空间搜索,通过抽象出以密钥值为变量的评估函数最优化问题并定制特定算法解决,实现密钥恢复攻击。其中,遗传算法是一种典型的启发式算法,Zhang等人于2015年将遗传算法与相关能量分析相结合,实施了对并行实现DES算法(Data Encryption Standard,数据加密标准)时域上的分析和串行实现SM4算法(商用分组密码标准)频域上的分析,该方法在所需样本数量上较传统相关能量分析降低了一半以上。
[0006]相关强化碰撞攻击,通过遍历一字节差分取值探测导致碰撞的差分值,对于多字节并行实现的密码算法,如果只检测单字节的碰撞,将浪费其他并行计算字节的能耗信息,且这部分信息将成为噪声影响检测效果;如果同时检测多字节的碰撞,遍历空间呈指数增长,不具备实际操作性。此外,目前的密码算法在设计物理实现过程中都会加入防护对策,掩码是最常用的一种防护手段,而现有基于遗传算法的侧信道分析不适用于任何防护对策。

技术实现思路

[0007]本专利技术的目的是为了解决现有的基于遗传算法的能量攻击方法无法实现在攻破一阶掩码防护的同时提升并行计算加密设备中密钥恢复效率的技术问题,提出一种基于遗
传算法的相关强化碰撞能量攻击方法。本方法实现了对多字节并行计算加密设备中带一阶掩码分组密码的能量攻击,同时提升了密钥恢复效率。
[0008]为了达到上述目的,本专利技术采取如下技术方案。
[0009]一种基于遗传算法的相关强化碰撞能量攻击方法,包括以下步骤:
[0010]步骤1:对一组明文段a和其它各组明文段,分别使用遗传算法搜索明文段a和其他各组明文段之间的最优差分,从而获得明文段a对应的密钥与其他明文段对应的密钥段之间的异或值。
[0011]其中,明文段为依据加密过程中并行计算的位宽划分的若干明文字节;一组明文段a是指明文中位置相同的明文段组成的有序集合;差分是指明文段之间的异或值。密钥段是指依据加密过程中并行计算的位宽划分的若干密钥字节,与明文段一一对应。
[0012]具体地,步骤1包括以下步骤:
[0013]步骤1.1:种群初始化,生成初始种群。
[0014]具体地,包括以下步骤:
[0015]步骤1.1.1:随机生成满足差分条件的明文,采集该明文加密时产生的能量迹。
[0016]满足差分条件是指:对明文段差分的每个字节,遍历所有可能取值,其余字节随机取值。
[0017]步骤1.1.2:提取能量迹中对应两段明文的能量值,计算两组能量值的相关系数。
[0018]步骤1.1.3:依据相关系数从大到小,对明文段差分的每个字节取值进行排名。
[0019]步骤1.1.4:从排名前K%的取值中,随机选取明文段差分的每个字节取值组成个体,直到个体的数量达到种群规模。
[0020]其中,K的取值范围为5到15;
[0021]其中,个体指明文段差分;
[0022]其中,种群规模指种群中个体数量,其取值为偶数,优选地,其取值范围为4到12;
[0023]步骤1.1.5:计算种群中个体的适应度,包括以下步骤:
[0024]步骤1.1.5.1:随机产生若干明文,使其满足明文段差分等于种群中一个个体,采集这些明文加密时产生的能量迹;
[0025]步骤1.1.5.2:提取每个能量迹中分别对应两个明文段的加密中间值的能量值,计算两组能量值的相关系数;
[0026]其中,加密中间值是指密码算法加密过程中只与所述明文段以及密钥相关的中间值;
[0027]其中,相关系数为个体的适应度;
[0028]步骤1.1.5.3:重复步骤1.1.5.1至1.1.5.2,直至得到种群中所有个体的适应度。
[0029]步骤1.2:进行选择操作,包括以下步骤:
[0030]步骤1.2.1:将种群中个体根据个体的适应度排名;
[0031]步骤1.2.2:从种群中个体的适应度排名前X%的个体中,有放回的随机选择个体,直到数量达到种群规模;
[0032]其中,X的取值范围为40到60。
[0033]步骤1.3:进行交叉操作,包括以下步骤:
[0034]步骤1.3.1:从选择操作获得的个体中,无放回的选取两个个体;
[0035]步骤1.3.2:对两个个体中位置相同的字节,依次以交叉率随机交换两个字;
[0036]其中,交叉率为[0,1]区间上的实数;以交叉率随机交换两个字节的值,是指随机选取[0,1]区间上的实数,小于交叉率则交换两个字节的值,大于交叉率则不交换节的值,得到两个新个体;
[0037]步骤1.3.3:重复以上两个步骤,直到新个体的数量达到种群规模。
[0038]步骤1.4:进行变异操作,包括以下步骤:
[0039]步骤1.4.1:从所述交叉操作获得的个体中,无放回的随机选取一个个体;
[0040]步骤1.4.2:对个体中每个位置的字节,依次以变异率随机改变字节的值,得到一个新的个体;
[0041]其中,变异率是[0,1]区间上的实数;以变异率随机改变字节的值,是指随机选取[0,1]区间上的实数,小于变异率则进行所述改变字节的值,大于变异率则不进行所述改变字节的值;
[0042]其中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于遗传算法的相关强化碰撞能量攻击方法,其特征在于,包括以下步骤:步骤1:对一组明文段a和其它各组明文段,分别使用遗传算法搜索明文段a和其他各组明文段之间的最优差分,从而获得明文段a对应的密钥段与其他明文段对应的密钥段之间的异或值;其中,明文段为依据加密过程中并行计算的位宽划分的若干明文字节;一组明文段a是指明文中位置相同的明文段组成的有序集合;差分是指明文段之间的异或值;密钥段是指依据加密过程中并行计算的位宽划分的若干密钥字节,与明文段一一对应;步骤2:对一组明文段与其它任意一组明文段,使用遗传算法搜索两个明文段循环错位一字节后的最优差分,获得密钥段内部字节之间的异或值;其中,所述循环错位一字节是指将其中一个明文段循环左移一个字节后再与另一明文段对应;步骤3:依据步骤1和步骤2得到的密钥段中相同位置字节之间的异或值和密钥段内部字节之间的异或值,获得一字节密钥与其他各字节密钥之间的异或值,遍历该字节密钥的所有可能取值并计算出对应的主密钥候选值,使用一对明密文验证所有主密钥候选值,最终得到正确密钥。2.如权利要求1所述的一种基于遗传算法的相关强化碰撞能量攻击方法,其特征在于,步骤1包括以下步骤:步骤1.1:种群初始化,生成初始种群,包括以下步骤:步骤1.1.1:随机生成满足差分条件的明文,采集该明文加密时产生的能量迹;满足差分条件是指:对明文段差分的每个字节,遍历所有可能取值,其余字节随机取值;步骤1.1.2:提取能量迹中对应两段明文的能量值,计算两组能量值的相关系数;步骤1.1.3:依据相关系数从大到小,对明文段差分的每个字节取值进行排名;步骤1.1.4:从排名前K%的取值中,随机选取明文段差分的每个字节取值组成个体,直到个体的数量达到种群规模;其中,个体指明文段差分;其中,种群规模指种群中个体数量,其取值为偶数;步骤1.1.5:计算种群中个体的适应度;步骤1.2:进行选择操作,包括以下步骤:步骤1.2.1:将种群中个体根据个体的适应度排名;步骤1.2.2:从种群中个体的适应度排名前X%的个体中,有放回的随机选择个体,直到数量达到种群规模;步骤1.3:进行交叉操作,包括以下步骤:步骤1.3.1:从选择操作获得的个体中,无放回的选取两个个体;步骤1.3.2:对两个个体中位置相同的字节,依次以交叉率随机交换两个字;其中,交叉率为[0,1]区间上的实数;以交叉率随机交换两个字节的值,是指随机选取[0,1]区间上的实数,小于交叉率则交换两个字节的值,大于交叉率则不交换节的值,得到两个新个体;步骤1.3.3:重复以上两个步骤,直到新个体的数量达到种群...

【专利技术属性】
技术研发人员:丁瑶玲李圆张雪王安祝烈煌
申请(专利权)人:北京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1