计算机工程与应用 ›› 2022, Vol. 58 ›› Issue (2): 102-109.DOI: 10.3778/j.issn.1002-8331.2008-0066
王腾飞,张海峰,许森
WANG Tengfei, ZHANG Haifeng, XU Sen
摘要: 国家商用密码算法SM2是基于椭圆曲线密码学(ECC)而制定的公钥密码协议,已被国际标准化组织(ISO)确立为国际标准。在实际应用中,SM2算法计算过程的复杂性使其面临实现效率低的问题,并且在实现过程中还会出现与密钥相关的侧信道信息泄露。为了解决上述问题,设计了一种适用于SM2的专用指令硬件协处理器。协处理器包含接口逻辑、取指单元、译码单元、执行单元、程序存储单元和数据存储单元,借鉴通用CPU的流水线技术,将指令的实现过程分为取指、译码、执行、写回四级流水,以提高计算效率。经过在Xilinx ZYNQ-7 FPGA上的实验验证,协处理器可以通过自动执行程序存储单元中的指令序列正确实现SM2加密、解密、签名、验签的计算过程,计算一次标量乘的时间约为2.25?ms,共占用7?146个Slice,其指令序列还可以按照软件实现方式进一步优化,说明协处理器具有速度快、面积小、灵活性高的特点。经过理论分析,协处理器可以实现常时的指令序列,具有一定的抵御侧信道攻击的安全性。