法律状态公告日
法律状态信息
法律状态
2020-05-19
专利权的转移 IPC(主分类):H04L29/06 登记生效日:20200429 变更前: 变更后: 申请日:20170308
专利申请权、专利权的转移
2020-03-17
授权
授权
2017-08-01
实质审查的生效 IPC(主分类):H04L29/06 申请日:20170308
实质审查的生效
2017-07-07
公开
公开
技术领域
本发明涉及的是一种计算机安全领域的技术,具体是一种基于改进掩码的SMS4高阶旁路攻击防御方法。
背景技术
在现实中,密码系统通常是以硬件或以硬件为表现形式的软件来实现的,譬如:智能卡、RFID、密码协处理器、SoC密码芯片、密码机等。在这些密码系统的实现环境中,攻击者可以观察和测量密码变换的能量消耗、电磁辐射等信息,利用这些额外的信息有可能实现比传统的数学分析更有效地密码破译。人们通常把这种环境下的攻击称为“旁路攻击(SideChannel Attack)”。旁路攻击通常包括简单功耗分析(SPA)和差分功耗分析(DPA)。其中DPA攻击是通过记录密码设备对大量不同数据加密或解密操作时的功耗曲线,利用统计方法从功耗曲线中恢复出密码设备中的密钥,其分析功能也相对更加有效。
高阶旁路分析是指同时利用多个旁路泄漏信息来进行旁路分析的一种方法。其主要特点是可以分析很多带有防护的密码实现。典型的方法是二阶差分功耗分析。高阶旁路分析主要的限制是当前计算机设备有限的计算和存贮资源,因为理论上高阶旁路分析的复杂对是和其阶数的增加呈指数倍儿增加。当前常用的阶数为2阶分析。
旁路攻击方法的出现对很多现在的芯片构成了具大的威胁,因此,相应的出现了很多种旁路攻击的防护方法。比较常用的防护技术有隐藏技术和掩码技术。隐藏策略的目标是消除密码设备的功耗与设备所执行的操作和所处理的中间值之间的相关性。而掩码技术是通过随机化消息和密钥,使得无法建立密钥与功耗的关系。在隐藏技术中,其中有时间维度上的隐藏,这包括随机插入伪操作和乱序操作两种隐藏方法。随机插入伪操作是在密码算法执行前后以及执行中随机插入一些假的操作。这种方法可以破坏真实操作的对齐,使得在受到旁路攻击中攻击效果大大降低。乱序操作是在某些密码算法中,特定操作的执行顺序可以任意改变,因而可以通过改变这些操作的执行顺序来引入随机性。
掩码技术由于其理论安全可证明和实际防护效果好,是目前最常用的防护方案,掩码方案的阶数是指其随机化过程的阶数,其算法和复杂度和阶数成倍数增长。然而随着高阶旁路旁路攻击技术的日益发展,二阶掩码方案目前在一些情况下在已经无法满足高安全性的要求,业界也亟需更高安全俺妈方案。一个典型的提高掩码实现的安全性方法是增加它的阶数。然而,增加阶数会明显的降低掩码实现的效率,在很多情况下是不可取的。
SM4为基于国家标准GM/T 0002-2012《SM4分组密码算法》(原SMS4分组密码算法)的加密算法,该算法为对称算法,密钥长度和分组长度均为128位,加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
发明内容
本发明针对现有技术存在的上述不足,提出一种基于改进掩码的SMS4高阶旁路攻击防御方法,通过随机化各个中间值,可以抵抗现有的二阶DPA分析,实现效率高于三阶布尔全掩码。
本发明是通过以下技术方案实现的:
本发明涉及一种基于改进掩码的SMS4高阶旁路攻击防御方法,包括以下步骤:
0)直接根据主密钥与计算出各个轮密钥;
1)重新编码各个轮密钥k,轮密钥编码为k1,k2,则轮密钥满足
2)重新编码各个和密钥相关的中间值x,轮密钥编码为x1,x2,则中间值满足
3)设计带掩码的SMS4操作,包括:线性操作和非线性操作,其中:线性操作由密钥间异或、密钥与明文异或以及纺射操作组成,非线性操作为S盒操作。
4)把以上的各个操作按照SMS4的顺序进行组合,从而实现SMS4高阶旁路攻击的防御。
所述的密钥间异或是指:两个中间值,即密钥分别为
所述的密钥与明文异或是指:一个中间值为
所述的纺射操作是指:一个中间值为
所述的S盒操作是指:一个中间值为
附图说明
图1为SMS4结构示意图。
具体实施方式
本实施例涉及一种针对SMS4基于全掩码的防高阶旁路分析的防护方法。本实施方案以如下方式随机化各个中间值:
根据以上中间值编码,对SMS4的各个操作进行改造,改造后的方案即为带掩码的SMS4算法。
本实例主要是在通用处理器上的实现,处理器型号为Atmega 2560,采用C语言实现,编译器是gcc,其中a=126,预更新的查找表大小为256Byte。
本实例伪代码如下:
以上代码时间复杂度是无掩码实现的2倍。
其中生成带掩码的S盒的函数GenMaskedSBOX()伪代码如下:
以上代码计算了S盒内查找表内的256个值。
生成各个带掩码的位移操作GenShifts()伪代码如下:
以上代码计算了位移操作查找表内的256个值。
与无掩码情况下的实现相比,本方法主要时间消耗在于算法2和算法3,整体所需时间复杂度大概是无掩码情况下的4倍。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
机译: 实现针对电力故障的抗故障能力的方法和系统
机译: 通过使用ip多播地址跳变技术来针对基于ip的虚拟专用网和数据分发的抗拒绝服务和抗流量分析能力的方法和系统
机译: 通过修饰的核酸预处理实现针对甲基化分析的DNA扩增系统中残留保护的方法