FPGA实现椭圆曲线点乘法及WTLS握手协议改进
椭圆曲线点乘法的FPGA实现
在密码学领域,椭圆曲线密码系统(ECC)因其在相同安全级别下所需密钥长度更短的优势,受到了广泛关注。而椭圆曲线点乘法作为ECC中的核心运算,其高效实现对于提升整个系统的性能至关重要。本文将详细介绍如何使用FPGA技术实现椭圆曲线点乘法,并对不同运算的硬件架构进行深入分析。
相关算法基础
- 扩展欧几里得算法(EEA) :用于计算模逆元,这是椭圆曲线运算中不可或缺的一部分。算法输入为非零二进制多项式 (x) 和不可约多项式 (p(x)),输出为 (a^{-1} \bmod p(x))。具体步骤如下:
1. (u \leftarrow a),(v \leftarrow f)。
2. (g1 \leftarrow 1),(g2 \leftarrow 0)。
3. 当 (u \neq 1) 时执行以下操作:- (j \leftarrow \text{deg}(u) - \text{deg}(v))。
- 如果 (j < 0),则 (u \leftrightarrow v),(g1 \leftrightarrow g2),(j \leftarrow -j)。
- (u \leftarrow u + z^j v)。
- (g1 \leftarrow g1 + z^j g2)。
4. 返回 (g1)。
- 椭圆曲线算术 :本文采用定义