基于 SIMD 指令集的 SM2 数字签名算法快速实现

SM2 数字签名算法是国家密码管理局发布的首个数字签名标准, 已广泛应用于网上银行、电子政务等领域. 本文提出一种基于高级矢量扩展指令集 (advanced vector extension 512, AVX512) 的 SM2 数字签名算法实现方案, 有效提升了 SM2 数字签名算法的性能. 结合单指令多数据集 (single instruction multiple data, SIMD) 运算特性, 设计了一种新的冗余基数表示形式与数据排列方式, 利用 3 比特冗余空间减少进位传播的次数, 构建高效的并行素域运算模块. 进而提出一种可变基点标量乘法的并行优化算法, 在算法分支加入虚拟操作...

Full description

Saved in:
Bibliographic Details
Published inJournal of Cryptologic Research Vol. 10; no. 4; p. 720
Main Authors Wei, WEI, LUO, Min, BAI Ye, PENG Cong, De-Biao, HE, 韦薇, 罗敏, 白野, 彭聪, 何德彪
Format Journal Article
LanguageChinese
Published Beijing Chinese Association for Cryptologic Research, Journal of Cryptologic Research 01.01.2023
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:SM2 数字签名算法是国家密码管理局发布的首个数字签名标准, 已广泛应用于网上银行、电子政务等领域. 本文提出一种基于高级矢量扩展指令集 (advanced vector extension 512, AVX512) 的 SM2 数字签名算法实现方案, 有效提升了 SM2 数字签名算法的性能. 结合单指令多数据集 (single instruction multiple data, SIMD) 运算特性, 设计了一种新的冗余基数表示形式与数据排列方式, 利用 3 比特冗余空间减少进位传播的次数, 构建高效的并行素域运算模块. 进而提出一种可变基点标量乘法的并行优化算法, 在算法分支加入虚拟操作, 按需存储点加与倍点的计算结果, 结合底层数据表示形式消除 8 路分支的差异性. 利用 AVX512 指令与分步点加方法加速固定基点标量乘法. 签名与验签算法的性能比最新的 SIMD 实现分别提升了196% 和 69%.
ISSN:2097-4116
DOI:10.13868/j.cnki.jcr.000622