摘要
针对SM2算法软件效率低、硬件实现资源利用率低、可扩展性差的问题,提出了一种可重构的素域SM2算法优化方法。通过对SM2算法的深入分析,从不同计算阶段和计算特点着手,分别采用KOA快速乘法、快速模约减和Barrett算法实现推荐或任意参数的模乘运算,并优化改进基为4的扩展欧几里得算法加速模逆运算。然后,在标准射影坐标系下以蒙哥马利方法提高点乘运算效率,并优化了点加和倍点数据流,将运算周期缩短至12个时钟。同时,在FPGA内部实现了快速的坐标系转换。最后,设计实现了多SM2的并行调度管理,满足日益多样化的应用需求。实验结果分析表明,所优化的SM2充分利用了FPGA的资源,缩短了点乘周期,每秒计算次数最多较CPU(Intel i5-8300)高352.48倍,提高了计算性能和可扩展性。