SM4算法快速软件实现

被引:25
作者
张笑从 [1 ,2 ]
郭华 [1 ,3 ]
张习勇 [4 ]
王闯 [1 ]
刘建伟 [2 ]
机构
[1] 北京航空航天大学软件开发环境国家重点实验室
[2] 北京航空航天大学空天网络安全工业与信息化部重点实验室
[3] 密码科学技术国家重点实验室
[4] 北京卫星信息工程研究所
基金
国家重点研发计划; 北京市自然科学基金;
关键词
SM4算法; 软件优化实现; 比特切片; SIMD技术;
D O I
10.13868/j.cnki.jcr.000407
中图分类号
TN918.1 [理论];
学科分类号
070104 ;
摘要
SM4是对称分组密码国家标准.加解密计算效率是衡量算法实现性能的重要指标,而目前关于SM4软件实现方法方面的研究不多.利用比特切片技术,结合支持单指令多数据(SIMD)的AVX2指令集,本文提出了一种SM4算法的快速软件优化实现方法,使用256位的YMM寄存器实现了SM4算法的256分组数据并行加解密.首先基于已有的选择函数构造了新的选择函数,之后改进了搜索算法,基于新的选择函数和改进的搜索算法化简了S盒的逻辑表达式,将实现逻辑表达式所需的逻辑门电路数量由3000(最简与或式)降至497.在Intel Core i7-7700HQ (Kabylake)@2.80 GHz处理器上,实现速度达到了2580 Mbps,同公开文献中的最好结果 1795 Mbps (Intel Core i7-5500U (Broadwell-U)@2.40 GHz)相比,实现效率提高了43%.基于比特切片技术的软件实现优化方法无需内存或高速缓存查表,因此该方法可抵抗缓存-计时侧信道攻击,从而安全性得到了提升.本文提出的优化方法具有可扩展性,不仅适用于在X86平台上借助拓展指令集AVX2实现,还可利用RISC指令集在资源受限,安全性要求高的ARM等嵌入式平台上实现.此外,新的选择函数和搜索算法具有通用性,可用于其它一般逻辑函数的化简.
引用
收藏
页码:799 / 811
页数:13
相关论文
共 3 条
[1]   SM4的快速软件实现技术 [J].
郎欢 ;
张蕾 ;
吴文玲 .
中国科学院大学学报, 2018, 35 (02) :180-187
[2]   SM4分组密码算法综述 [J].
吕述望 ;
苏波展 ;
王鹏 ;
毛颖颖 ;
霍利利 .
信息安全研究, 2016, 2 (11) :995-1007
[3]  
GM/T 0002-2012. SM4分组密码算法[S]. 2012