当前位置: 首页 > 专利查询>山东大学专利>正文

交换网络和跳转算法指令化的侧信道攻击抵抗方法及系统技术方案

技术编号:30437667 阅读:41 留言:0更新日期:2021-10-24 17:40
本发明专利技术公开了交换网络和跳转算法指令化的侧信道攻击抵抗方法及系统,在N个待保护代码段运行前,基于随机数和Switching networks交换网络算法,将CPU的N个寄存器里的值随机打乱;所述随机数,是基于LFSR算法产生的;在N个待保护代码段运行时,基于初始地址、已经被打乱值的N个寄存器和待保护代码段的指令条数,采用随机跳转算法,将CPU运行地址随机跳转到一个待保护代码段的入口地址继续执行;经过Switching networks交换网络算法的多次随机打乱和随机跳转算法的多次随机跳转,混淆产生的侧信息,以实现抗侧信道攻击。通过产生随机数来减弱,混淆侧信息来抵抗侧信道攻击。混淆侧信息来抵抗侧信道攻击。混淆侧信息来抵抗侧信道攻击。

【技术实现步骤摘要】
交换网络和跳转算法指令化的侧信道攻击抵抗方法及系统


[0001]本专利技术涉及侧信道攻击抵抗
,特别是涉及交换网络和跳转算法指令化的侧信道攻击抵抗方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提到了与本专利技术相关的
技术介绍
,并不必然构成现有技术。
[0003]侧信道攻击(Side Channel Attack)又称侧信道密码分析,由美国密码学家P.C.Kocher于上世纪九十年代末期提出,是一种针对密码实现(包括密码芯片、密码模块、密码系统等)的攻击方法。侧信道攻击所用的侧信息(Side Channel Information)指除了攻击者通过除主通信信道以外的途径获取到的关于密码实现运行状态相关的信息,典型的侧信息包括密码实现运行过程中的能量消耗、电磁辐射、运行时间等信息。
[0004]侧信道攻击本质是利用密码实现运行过程中产生的依赖于密钥的侧信息来实施密钥恢复攻击的,因此防御对策的核心就是减弱甚至消除这种侧信息与数据之间的直接依赖性。
[0005]侧信道攻击常见防御对策可以分为掩码对策和隐藏对策两种。
[0006]掩码对策借助秘密共享和多方安全计算,通过引入随机数来消除侧信息与数据的依赖性来增强抵抗侧信道攻击的能力;掩码对策易于在密码算法级进行构造,更易于实现,但除了密钥之外还需要很多随机数,并且随机数生成代价过高。
[0007]隐藏对策采用平均化“0”和“1”对应侧信息的差别来降低通过侧信息区分对应数据的可能性,即降低数据的可区分度来抵抗侧信道攻击。隐藏对策通常只能在硬件层进行实现,需要改变硬件实现结构,因而较难实现。而且隐藏对策对硬件进行干预,如果攻击者知道了具体的干预方法,就可以有针对性的进行破解。

技术实现思路

[0008]为了解决现有技术的不足,本专利技术提供了交换网络和跳转算法指令化的侧信道攻击抵抗方法及系统;通过产生随机数来减弱,混淆侧信息来抵抗侧信道攻击。
[0009]第一方面,本专利技术提供了交换网络和跳转算法指令化的侧信道攻击抵抗方法;
[0010]交换网络和跳转算法指令化的侧信道攻击抵抗方法,包括:
[0011]在N个待保护代码段运行前,基于随机数和Switching networks交换网络算法,将CPU的N个寄存器里的值随机打乱;所述随机数,是基于LFSR算法产生的;
[0012]在N个待保护代码段运行时,基于初始地址、已经被打乱值的N个寄存器和待保护代码段的指令条数,采用随机跳转算法,将CPU运行地址随机跳转到一个待保护代码段的入口地址继续执行;
[0013]经过Switching networks交换网络算法的多次随机打乱和随机跳转算法的多次随机跳转,混淆产生的侧信息,以实现抗侧信道攻击。
[0014]第二方面,本专利技术提供了交换网络和跳转算法指令化的侧信道攻击抵抗系统;
[0015]交换网络和跳转算法指令化的侧信道攻击抵抗系统,包括:
[0016]随机打乱模块,其被配置为:在N个待保护代码段运行前,基于随机数和Switching networks交换网络算法,将CPU的N个寄存器里的值随机打乱;所述随机数,是基于LFSR算法产生的;
[0017]随机跳转模块,其被配置为:在N个待保护代码段运行时,基于初始地址、已经被打乱值的N个寄存器和待保护代码段的指令条数,采用随机跳转算法,将CPU运行地址随机跳转到一个待保护代码段的入口地址继续执行;
[0018]重复模块,其被配置为:经过Switching networks交换网络算法的多次随机打乱和随机跳转算法的多次随机跳转,混淆产生的侧信息,以实现抗侧信道攻击。
[0019]与现有技术相比,本专利技术的有益效果是:
[0020]先用LFSR算法产生随机数,供SWITCHING NETWORKS交换网络算法进行随机交换,并将其用硬件描述语言verilog实现。经过多次随机交换,能够减弱数据运行过程可能产生的侧信息,增加噪声,抵抗侧信道攻击。
[0021]通过指令集扩展的方法,将SWITCHING NETWORKS交换网络算法和基于SWITCHING NETWORKS交换网络算法的随机跳转算法固化为两类专用指令,可以方便快捷地使用这两类算法。每当需要使用时,只需通过两条指令来完成。这种方法相对于传统的算法实现,有着良好的效率和可维护性。同时通过硬件实现比起软件实现,大大减少了算法运行的时序周期,提高了效率。
[0022]本专利技术附加方面的优点将在下面的描述中部分给出,或通过本专利技术的实践了解到。
附图说明
[0023]构成本专利技术的一部分的说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。
[0024]图1为第一个实施例的Shuffle交换规则;
[0025]图2为第一个实施例的LFSR产生随机数图解。
具体实施方式
[0026]应该指出,以下详细说明都是示例性的,旨在对本专利技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本专利技术所属
的普通技术人员通常理解的相同含义。
[0027]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本专利技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0028]在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。
[0029]本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法
应用。
[0030]术语介绍:
[0031]专用指令CPU是针对某个或者某一类型的需求而专门设计的处理器。核心是对处理器基础指令集架构进行扩展,在扩展指令集下重新实现目标算法以提高其执行效率。具体为在目标算法底层实现过程中通过设计新的指令来代替影响算法性能较大的若干条连续指令(指令块),以大幅减少执行过程中汇编语言的数量。提高了运行速度以及效率,减小功耗,从而更加适应嵌入式应用背景的需要。RISC

V指令集架构不仅完全开源、架构简单、易于移植、具有完整的工具链、模块化设计的特点而且还支持新指令的扩展,非常适合用来设计专用指令CPU。
[0032]Armv8是ARM的一种加密安全扩展指令集架构,其支持sm3,sm4,SHA,AES等密码算法的指令化扩展,大大提高了密码算法的执行效率,减少了功耗。
[0033]Intel SSE 4指令集是当前使用广泛的汇编指令集扩展。SSE4旨在提升Intel处理器在多媒体、图像处理、3D处理应用中的性能。SS本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.交换网络和跳转算法指令化的侧信道攻击抵抗方法,其特征是,包括:在N个待保护代码段运行前,基于随机数和Switching networks交换网络算法,将CPU的N个寄存器里的值随机打乱;所述随机数,是基于LFSR算法产生的;在N个待保护代码段运行时,基于初始地址、已经被打乱值的N个寄存器和待保护代码段的指令条数,采用随机跳转算法,将CPU运行地址随机跳转到一个待保护代码段的入口地址继续执行;经过Switching networks交换网络算法的多次随机打乱和随机跳转算法的多次随机跳转,混淆产生的侧信息,以实现抗侧信道攻击。2.如权利要求1所述的交换网络和跳转算法指令化的侧信道攻击抵抗方法,其特征是,所述获取待保护代码段;其中,待保护代码段,是指:人为设定的需要保护的代码段;所述待保护代码段,包括若干条代码。3.如权利要求1所述的交换网络和跳转算法指令化的侧信道攻击抵抗方法,其特征是,所述随机数,是基于LFSR算法产生的;具体包括:设定初始随机化种子,然后产生随机数。4.如权利要求1所述的交换网络和跳转算法指令化的侧信道攻击抵抗方法,其特征是,基于随机数和Switching networks交换网络算法,将CPU的N个寄存器里的值随机打乱;具体包括:用硬件描述语言verilog实现LFSR算法,通过LFSR算法产生连续的N/2bit shift_reg数值;这个数值用于接下来的N个寄存器值的交换;假设N为8,寄存器的初始值为0~7,将这8个寄存器分别命名为a0~a7,此时shuffle共有三轮:第一个周期生成的寄存器shift_reg的值用于第一轮的交换,第一轮寄存器shift_reg的4bit值从第0bit到第3bit分别对应a0和a1的值进行交换,a2和a3的值进行交换,a4和a5的值进行交换,a6和a7值的值进行交换;第二个周期生成的寄存器shift_reg的值用于第二轮的交换,第二轮寄存器shift_reg的4bit值从第0bit到第3bit分别对应a0和a2的值进行交换,a1和a3的值进行交换,a4和a6的值进行交换,a5和a7的值进行交换;第三个周期生成的寄存器shift_reg的值用于第三轮的交换,第三轮寄存器shift_reg的4bit值从第0bit到第3bit分别对应a0和a4的值进行交换,a1和a5的值进行交换,a2和a6的值进行交换,a3和a7的值进行交换;最后,将打乱后8个寄存器的值传回CPU流水线的执行阶段。5.如权利要求1所述的交换网络和跳转算法指令化的侧信道攻击抵抗方法,其特征是,在N个待保护代码段运行时,基于初始地址、已经被打乱值的N个寄存器和待保护代码段的指令条数,...

【专利技术属性】
技术研发人员:周佳运王伟嘉郭淳张晓寒
申请(专利权)人:山东大学
类型:发明
国别省市:

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

1