面向多椭圆曲线的高速标量乘法器设计与实现
2021-01-19于斌黄海刘志伟赵石磊那宁
于斌,黄海,刘志伟,赵石磊,那宁
(哈尔滨理工大学软件与微电子学院,黑龙江 哈尔滨 150080)
1 引言
随着处理器算力的不断增强,传统加密算法的安全性正受到日益严峻的考验,需要更加复杂的加密算法来保证数据的安全。椭圆曲线加密算法是近年来比较活跃的一种非对称加密算法,与对称加密算法中的高加密标准(AES,advanced encryption standard)一样在密码系统中得到广泛使用[1]。在最新的传输层安全性协议1.3 版(TLS1.3,transport layer security protocol version 1.3)中,使用多种椭圆曲线进行数据加密,无论是在数量上还是在实际使用频率上,都凸显了椭圆曲线加密日益重要的位置[2]。
椭圆曲线的运算速度和对多种曲线的兼容一直是研究的重点。Kudithi 等[3]利用可编程逻辑器件(FPGA,field programmable gate array)完成了适用于物联网的加密算法结构,利用较低面积完成了对P224 和P256 椭圆曲线的支持;Hossain 等[4]设计了同时适用于专用集成电路和FPGA 的标量乘操作步骤,同样支持了2 条曲线;Liu 等[5]优化了非相邻形式(NAF,non-adjacent-form)算法并完成了P256 位的标量乘设计;Lee 等[6]采用双处理单元改进了自右向左的标量乘算法;Chung 等[7]改进了蒙哥马利模乘的流水结构,提升了标量乘的整体速度。
本文设计了椭圆曲线硬件加密中使用的一种标量乘法器,选取最常用的Curve25519 和secp256r12曲线,使其尽可能复用乘法单元完成标量乘,使用了256 位乘法器得到乘法结果并采用快速模约简来达到提高模乘速度的目的。此外,考虑标量乘的使用环境,尤其是在签名和验签中的使用情况,本文设置了对于基点和普通点不同的算法,同时支持多标量乘,使设计的标量乘法器能够满足椭圆加密的各种应用需求。……
