基于 SIMD 指令集的 SM2 数字签名算法快速实现
SM2 数字签名算法是国家密码管理局发布的首个数字签名标准, 已广泛应用于网上银行、电子政务等领域. 本文提出一种基于高级矢量扩展指令集 (advanced vector extension 512, AVX512) 的 SM2 数字签名算法实现方案, 有效提升了 SM2 数字签名算法的性能. 结合单指令多数据集 (single instruction multiple data, SIMD) 运算特性, 设计了一种新的冗余基数表示形式与数据排列方式, 利用 3 比特冗余空间减少进位传播的次数, 构建高效的并行素域运算模块. 进而提出一种可变基点标量乘法的并行优化算法, 在算法分支加入虚拟操作...
Saved in:
Published in | Journal of Cryptologic Research Vol. 10; no. 4; p. 720 |
---|---|
Main Authors | , , , , , , , , , |
Format | Journal Article |
Language | Chinese |
Published |
Beijing
Chinese Association for Cryptologic Research, Journal of Cryptologic Research
01.01.2023
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
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 |