摘要
国密SM9算法是基于双线性对的标识密码算法,其运行过程需进行多次十二次扩域的高次幂运算,其计算性能对SM9算法体制的应用至关重要。SM9签名运算中的高次幂可以预存点,在运算过程中通过查表减少运算时间。由于验签运算中高次幂的底数不确定,无法通过查表进行运算,因此分别使用Comb固定基和NAF算法在算法模型上降低高次幂中十二次扩域乘法运算量。为提高十二次扩域乘法的计算效率,根据R-ate对的特殊性质提出基于分圆子群的快速平方算法,降低扩域乘法所需的基域运算开销,并将其应用于高次幂的运算中。硬件架构创新性地采用基于自定义RISC指令集的ASIP微码控制方式实现,该架构的灵活性有利于在有限的硬件资源下实现复杂的SM9算法逻辑,其中可修改的指令集可以更好地与底层硬件适配。在Xilinx Artix-7系列的FPGA平台上的实验结果表明,在167 MHz的时钟频率条件下,不增加额外的硬件资源开销,该方法完成一次SM9签名的时间仅为0.244 ms。