[发明专利]一种基于比特切片的SM4算法快速实现方法在审
| 申请号: | 202210039608.X | 申请日: | 2022-01-14 |
| 公开(公告)号: | CN114091086A | 公开(公告)日: | 2022-02-25 |
| 发明(设计)人: | 苏鑫;罗雨佳;姬一文;马桂才;魏立峰;孔金珠 | 申请(专利权)人: | 麒麟软件有限公司 |
| 主分类号: | G06F21/60 | 分类号: | G06F21/60;H04L9/06 |
| 代理公司: | 北京汇智英财专利代理事务所(普通合伙) 11301 | 代理人: | 陈践实 |
| 地址: | 300450 天津市滨海新区*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 比特 切片 sm4 算法 快速 实现 方法 | ||
本发明公开了一种基于比特切片的SM4算法快速实现方法,包括:步骤S1、将明文分组,每组明文包括若干明文SM4块;步骤S2、将每组明文的所述明文SM4块分别读入到SIMD类型变量中;步骤S3、使用Usuba语言定义S盒,并基于所述S盒编写加密代码,利用所述加密代码加密所述明文SM4块;步骤S4、从所述SIMD类型变量中读出加密后的所述明文SM4块,获得密文SM4块;步骤S5、合并密文SM4块得到整体密文。本发明的方法能够提升算法运算速度,支持并行计算,增加抵抗缓存‑计时侧信道攻击的能力。
技术领域
本申请涉及计算机安全技术领域,尤其涉及一种基于比特切片的SM4算法快速实现方法。
背景技术
SM4密码算法是国产加密算法中的分组密码,在国家密码局发布的GM/T0002-2012标准中给出了算法的描述。SM4密码被广泛应用于网络安全产品和计算机操作系统中。该密码的块大小和密钥长度为128比特,采用了Feistel结构,轮数为32轮,用到8比特的S盒。目前软件实现SM4密码算法包括直接编程、采用查表的方法编程和在查表的基础上使用SIMD指令集编程。是否可以进一步提高算法的速度是一个问题。此外查表的方法无法抵抗缓存-计时侧信道攻击。
为了提高密码算法软件实现的速度,国内外学者提出了比特切片(bitslice)的方法。比特切片最早是由Biham提出的,用于优化DES密码的软件实现中,随后工作一方面是减少实现中S盒的电路包含的门数,另一方面是将其应用于其他分组密码(如AES密码、Chacha20密码)的快速实现中。比特切片的思想是将密码算法转换成等价的由与或非门组成的逻辑电路。当电路作为软件中的与或非指令运行时,就具有了并行化的效果。这样实现的优势是省去了置换操作,而瓶颈是实现S盒的电路包含的门数。结合支持并行计算的单指令多数据流(SIMD)指令集,可以并行的实现密码算法。缓存-计时侧信道攻击通过观察密码程序运行时,利用数据进入和读出CPU或内存的时间,恢复密钥的信息。由于没有查找表,比特切片可以增强抵抗缓存-计时侧信道攻击的能力。
参见图1,SIMD是计算机架构Flynn分类法中的一个并行计算机类型。Flynn分类法按照指令流和数据流进行分类,包括SISD、SIMD、MISD和MIMD四种类型。SIMD架构描述了对多组数据进行相同操作的并行计算机。它实现了数据的并行计算,即同时进行相同运算,而非并发计算。目前主流的处理器架构如x86、ARM和MIPS等均支持SIMD技术,例如AVX2、NEON和MSA等。目前用SIMD指令集编程一般需要人工进行,编译器自动向量化是一个研究方向。
目前软件实现SM4密码算法的C语言库有openssl、gmssl等。这些库用到的方法包括直接编程和采用查表的方法编程。在查表方法的基础上,使用SIMD指令集进行了一定的优化,提高了算法效率。现有软件实现SM4密码算法的技术存在以下问题:
1)直接编程实现速度较慢,查表的方法中用到的代替表规模相对较大,它们在算法速度上都有一定提升的空间;
2)直接编程和采用查表的方法编程不支持并行计算;
3)采用查表的方法无法抵抗缓存-计时侧信道攻击。
此外,用来生成比特切片化代码的工具有Usuba。它定义了一种语言,可以方便的描述密码算法,经过usuba工具后生成使用SIMD 指令集的C语言代码。它给出了很多常用分组密码算法的实例,包括AES、Chacha20、DES、Present、Rectangle、Serpent等,对这些密码算法的代码有正确性验证和性能测试。缺点是还没有SM4密码相关的实现和性能测试。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种基于比特切片的SM4算法快速实现方法,能够提升算法运算速度,支持并行计算,增加抵抗缓存-计时侧信道攻击的能力。
本发明一方面提出一种基于比特切片的SM4算法快速实现方法,包括:
步骤S1、将明文分组,每组明文包括若干明文SM4块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟软件有限公司,未经麒麟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210039608.X/2.html,转载请声明来源钻瓜专利网。





