基于寄存器的 SM4 软件优化实现方法
SM4 算法的实现效率是密码算法国产化进程中亟需解决的关键问题, 许多学者致力于研究如何提升 SM4 算法的实现速度. 比特切片是目前 SM4 算法软件实现方法中公认速度较高的一种实现方法, 它通过在一次加密运算中并行加密多组明文数据的方式, 在处理大批量数据时显著提高了 SM4 算法的实现速度. 使用该方法时, 每次加密运算前需一次性将多组数据的相同位加载到 CPU 的寄存器中, 由此会带来 CPU 寄存器与内存之间数据传输的时间开销. 为了减小寄存器一次性加载数据的规模, 本文对于比特切片方法中的数据编排方式进行了改进, 使得每次 CPU 执行运算时只加载必要的运算数据, 从而减少了内存与...
Saved in:
Published in | Journal of Cryptologic Research Vol. 11; no. 2; p. 427 |
---|---|
Main Authors | , , , , , , , , , |
Format | Journal Article |
Language | Chinese |
Published |
Beijing
Chinese Association for Cryptologic Research, Journal of Cryptologic Research
01.01.2024
|
Subjects | |
Online Access | Get full text |
ISSN | 2097-4116 |
DOI | 10.13868/j.cnki.jcr.000686 |
Cover
Summary: | SM4 算法的实现效率是密码算法国产化进程中亟需解决的关键问题, 许多学者致力于研究如何提升 SM4 算法的实现速度. 比特切片是目前 SM4 算法软件实现方法中公认速度较高的一种实现方法, 它通过在一次加密运算中并行加密多组明文数据的方式, 在处理大批量数据时显著提高了 SM4 算法的实现速度. 使用该方法时, 每次加密运算前需一次性将多组数据的相同位加载到 CPU 的寄存器中, 由此会带来 CPU 寄存器与内存之间数据传输的时间开销. 为了减小寄存器一次性加载数据的规模, 本文对于比特切片方法中的数据编排方式进行了改进, 使得每次 CPU 执行运算时只加载必要的运算数据, 从而减少了内存与寄存器之间的交互操作, 进一步提高了用比特切片方法实现 SM4 时的整体加密效率. 采用改进后的比特切片方法实现了 SM4 算法的 64 组数据并行加解密, 该方法的理论加解密速度可达 4.1 cycles/byte, 经测试在 AMD Ryzen 7 5800H 平台上加密速率达到了 11 162 Mb/s. 该方法对基于比特切片方法设计的对称加密算法软件优化实现方法具有重要参考价值. |
---|---|
Bibliography: | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
ISSN: | 2097-4116 |
DOI: | 10.13868/j.cnki.jcr.000686 |