素数域椭圆曲线密码点乘的高性能硬件实现
2021-10-15高巍骆宜萱李佳琨吴海霞北京理工大学信息与电子学院北京100081
高巍,骆宜萱,李佳琨,吴海霞 (北京理工大学 信息与电子学院,北京 100081)
椭圆曲线密码(elliptic curve cryptography,ECC)是一种基于椭圆曲线离散问题难解性的非对称加密算法,由Neal Koblitz[1]和Miller[2]于1985年分别提出.与常见的非对称加密算法RSA加密相比,ECC算法能使用更短的密钥长度达到相同的安全性能.ECC算法的优势使得它在密码学领域得到了越来越广泛地关注.在ECC算法中,最主要的运算步骤为椭圆曲线上的点乘.点乘作为ECC算法的核心,直接决定了ECC算法的性能,是ECC算法研究与实现的主要内容.
随着如今网络安全设备对密码运算速度需求的增长[3],软件实现的点乘算法已无法满足处理速度要求,点乘算法的硬件实现成为了研究的首选.在点乘算法的硬件实现中,二进制域点乘硬件的算术逻辑单元(arithmetic and logic unit,ALU)由异或运算组成,素数域点乘硬件的ALU由模运算组成.模运算ALU使得素数域点乘硬件能额外计算同为模运算的RSA加密.素数域点乘硬件底层ALU的通用优势使得它广泛应用于如今的嵌入式系统和物联网安全设备中,如NFC,oneM2M, WAVE等[4].这些系统和安全设备都具有有限的硬件资源,同时也需要较高的计算速度,使得点乘的高性能硬件实现成为了一项新的挑战.
近年来,多个素数域点乘高性能硬件设计被相继提出[5-9].Marzouqi[5]使用冗余符号数计算法提高了点乘的速度,但算法消耗了大量的硬件资源; Loi[6]实现了可重构的高性能点乘硬件,但是ALU位宽只有17位,并且使用了一个复杂的状态机,状态机的跳转消耗了大量LUT资源;……
