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)。
- 椭圆曲线算术 :本文采用定义在 (GF(2^{191})) 上的Weierstrass非超奇异椭圆曲线,其方程为 (y^2 + xy = x^3 + ax^2 + b),其中 (a, b \in GF(2^{191}))。椭圆曲线密码系统的主要操作是标量乘法 (Q = K \cdot P),即计算点 (P) 的 (K) 倍。该系统的安全性基于椭圆曲线离散对数问题(ECDLP),即已知椭圆曲线 (E)、点 (Q) 和 (P),求解整数 (K) 使得 (Q = K \cdot P)。Pollard’s rho算法是求解ECDLP的常用算法之一。
蒙哥马利算法
蒙哥马利算法是计算椭圆曲线标量乘法的高效算法,它主要涉及点加法、点加倍和坐标转换三个操作。
- 仿射坐标下的蒙哥马利群法则 :对于曲线上的两点 (P = (x_1, y_1)) 和 (Q = (x_2, y_2)),点加法 (P + Q = (x_3, y_3)) 的计算公式如下:
- (x_3 = \begin{cases}
(\frac{y_1 + y_2}{x_1 + x_2})^2 + \frac{y_1 + y_2}{x_1 + x_2} + x_1 + x_2 + a & P \neq Q \
x_1^2 + \frac{b}{x_1^2} & P = Q
\end{cases})
- (y_3 = \begin{cases}
(\frac{y_1 + y_2}{x_1 + x_2})(x_1 + x_3) + x_3 + y_1 & P \neq Q \
x_1^2 + (x_1 + \frac{y_1}{x_1})x_3 + x_3 & P = Q
\end{cases})
可以看出,使用仿射坐标进行点加法操作需要一次域求逆和两次域乘法。
- 射影坐标下的蒙哥马利群法则
- 点加倍操作 :使用射影坐标可以避免底层域中的求逆操作,这是最耗时的操作。点加倍 (2P = (X_d, Y_d, Z_d)) 的计算公式为 (X_d = X^4 + b \cdot Z^4),(Z_d = X^2 \cdot Z^2)。该操作的成本包括一次一般乘法、一次与常数的乘法、五次平方和一次加法。
- 点加法操作 :点加法 (P + Q = (X_a, Y_a, Z_a)) 的计算公式为 (Z_a = (X_1 \cdot Z_2 + X_2 \cdot Z_1)^2),(X_a = x \cdot Z_a + (X_1 \cdot Z_2) \cdot (X_2 \cdot Z_1))。该操作的成本包括三次一般乘法、一次与常数 (x) 的乘法、一次平方和两次加法。
- 坐标转换 :蒙哥马利算法依赖于点的射影坐标表示,但最终需要将射影坐标转换为仿射坐标。转换公式为 (x_3 = \frac{X_1}{Z_1}),(y_3 = (x + \frac{X_1}{Z_1}) (X_1 + xZ_1)(X_2 + xZ_2) + (x^2 + y)(Z_1Z_2) ^{-1} + y)。该过程需要10次乘法和1次求逆。
硬件架构设计
- 伽罗瓦域硬件架构
- 加法操作 :在硬件中,加法通过异或操作实现,不存在进位传播。
- 平方操作 :多项式在 (GF(2^m)) 上的平方操作在硬件中是无成本的,只需将输入位路由到特定的输出位,但仍需要进行约简操作。
- 乘法操作 :采用截断的二进制Karatsuba - Ofman乘法器结合经典乘法器,可以减少硬件资源和乘法运算所需的时间。
- 约简操作 :选择不可约多项式 (P(x) = X^{191} + X^9 + 1) 后,约简步骤可以仅使用异或门完成。
- 求逆操作 :使用扩展欧几里得算法(EEA)实现求逆操作,蒙哥马利算法将求逆操作的次数减少到一次。
- 蒙哥马利算法硬件架构
- 点加法操作 :点加法计算包括四次乘法、两次加法和一次平方操作。本文提出了使用一个Karatsuba乘法器在四个计算周期内完成四次乘法操作的硬件架构,虽然增加了总时间延迟,但减少了所需的面积。
- 点加倍操作 :点加倍计算包括四次乘法、两次加法和一次平方操作。同样使用一个Karatsuba乘法器在两个计算周期内完成两次乘法操作,以减少面积需求。
- 蒙哥马利点乘法 :蒙哥马利算法通过并行执行点加法和点加倍操作,并在最后将射影坐标转换为仿射坐标,实现椭圆曲线点乘法。
实验结果与比较
使用VHDL代码和Xilinx ISE 9.1工具在VirtexE 2600和Virtex - II XC2V 6000 FPGA设备上实现了不同操作的硬件架构,并列出了每个操作的面积和时间延迟。同时,与其他硬件实现进行了比较,结果表明本文的设计在面积和时间延迟之间取得了较好的平衡。
| 操作 | 算法 | 面积(切片) | 延迟(Virtex - II XC2V 6000) | 延迟(VirtexE 2600) |
|---|---|---|---|---|
| (GF(2^{191})) 平方 | - | 91 | 7.390 ns | 6.04 ns |
| (GF(2^{191})) 乘法 | 二进制Karatsuba乘法器 | 6,265 | 45.889 ns | 47.207 μs |
| (GF(2^{191})) 求逆 | 扩展欧几里得算法 | 1,346 | 65,162 μs | 33.245 ns |
| (EC(GF(2^{191}))) 点加法 | - | 8,576 | 183.556 ns | 132.98 ns |
| (EC(GF(2^{191}))) 点加倍 | - | 7,115 | 91.778 ns | 66.49 ns |
| 射影坐标转换 | - | - | 65.62 μs | 47.539 μs |
| 标量乘法 | 蒙哥马利算法 | 25,963 | 100.68 μs | 72.939 μs |
WTLS握手协议改进
在无线通信网络中,WTLS(无线传输层安全)协议作为WAP(无线应用协议)的子协议,承担着保障数据隐私、完整性和认证密钥协商等重要任务。然而,现有的WTLS握手协议存在前向保密性不足、易受中间人攻击和拒绝服务(DoS)攻击等问题,其安全性亟待提升。
WTLS协议现状
WTLS协议在参考Internet中TLS协议原则的基础上,针对无线环境的特点进行了优化,如采用UDP替代TCP传输层协议、增加动态密钥刷新系统以及引入椭圆曲线密码系统作为新证书的加密算法。但这些改进仍未能完全解决安全问题,例如UDP的使用使WTLS更容易受到DoS攻击,动态密钥刷新系统提供的前向保密性有限,ECC加密算法的系统参数选择复杂且影响CA证书的管理效率。
基于XTR的前向保密WTLS握手协议
为了解决上述问题,本文提出了一种基于XTR系统的新WTLS握手协议。该协议在方案中添加了前向保密属性,并设计了一个可行的WTLS握手协议。
- 协议设计 :在XTR系统上设计的WTLS握手协议通过特定的密钥交换和认证机制,确保通信双方在握手过程中能够安全地协商出会话密钥,同时具备前向保密性。
- 实验验证 :在MSM6280平台上进行实验,结果表明该协议有效地解决了现有WTLS协议的安全问题,并在流行的嵌入式平台上取得了良好的性能。
通过以上对椭圆曲线点乘法的FPGA实现和WTLS握手协议的改进,我们在密码学的硬件实现和协议设计方面取得了重要进展。未来,我们将继续优化椭圆曲线密码系统中不同操作的硬件架构,进一步提升系统的性能和安全性。同时,也将探索更多的协议改进方案,以应对不断变化的网络安全挑战。
FPGA实现椭圆曲线点乘法及WTLS握手协议改进
椭圆曲线点乘法硬件架构的优势与挑战
在实现椭圆曲线点乘法的过程中,采用的硬件架构具有显著的优势,但也面临着一些挑战。
优势分析
- 并行与串行架构结合 :通过并行执行椭圆曲线操作(点加法和点加倍)以及串行执行底层伽罗瓦域操作(乘法和求逆),在面积和时间延迟之间取得了平衡。这种架构设计避免了过度追求单一性能指标而导致的资源浪费或性能瓶颈。例如,在点加法和点加倍操作中采用并行架构,可以充分利用FPGA的并行计算能力,提高计算速度;而在乘法和求逆操作中采用串行架构,则可以减少硬件资源的占用。
- 减少求逆操作次数 :蒙哥马利算法将求逆操作的次数减少到一次,这是一个关键的优化。求逆操作在椭圆曲线运算中是最耗时的操作之一,减少其使用次数可以显著提高整个系统的性能。通过射影坐标的使用,避免了在大多数计算步骤中进行求逆操作,只有在最后将射影坐标转换为仿射坐标时才进行一次求逆操作。
挑战与应对策略
- 硬件资源管理 :尽管采用了一些优化策略,但某些操作(如乘法和求逆)仍然需要较多的硬件资源。为了应对这一挑战,可以进一步优化乘法器和求逆算法的实现,例如采用更高效的乘法算法或改进扩展欧几里得算法的硬件实现。此外,还可以通过合理的资源分配和调度,提高硬件资源的利用率。
- 时间延迟优化 :虽然在面积和时间延迟之间进行了平衡,但某些操作的时间延迟仍然较长。可以通过优化算法的执行流程、提高时钟频率或采用更先进的FPGA器件来进一步减少时间延迟。例如,在点加法和点加倍操作中,可以通过优化计算步骤和数据传输路径,减少不必要的延迟。
椭圆曲线点乘法与其他实现方案的对比
为了更全面地评估本文提出的椭圆曲线点乘法实现方案,将其与其他相关的实现方案进行对比。
| 参考 | FPGA设备 | 字段 | 占用切片 | 时钟(MHz) | 时间延迟 |
|---|---|---|---|---|---|
| [163] | - | 163 | 9,581 | 不可用 | 2.618 ms |
| [163] | - | 163 | 1800(估计) | 不可用 | 5.2 ms(估计) |
| [163] | - | 163 | 7,579 | 不可用 | 3.976 ms |
| El hadj [16] | Virtex 2600E | 163 | 1300(估计) | 不可用 | 4.1 ms(估计) |
| [191] | - | 191 | 不可用 | 不可用 | 17.71 ms |
| Smart [17] | XC4000XL | 191 | 不可用 | 不可用 | 11.82 ms |
| [163] | - | 163 | 不可用 | 100 MHz | 0.84 ms |
| Sakiyama [18] | Virtex - II pro | 191 | 不可用 | 100 MHz | 2.11 ms |
| [163] | - | 163 | 不可用 | 66.4 MHz | 0.143 ms |
| [193] | - | 193 | 不可用 | 66.4 MHz | 0.187 ms |
| Gura [19] | Virtex 2000E | 233 | 不可用 | 66.4 MHz | 0.225 ms |
| [191] | - | 191 | 不可用 | 50 MHz | 3.72 ms |
| [191] | - | 191 | 不可用 | 50 MHz | 4.07 ms |
| [191] | - | 191 | 不可用 | 50 MHz | 2.27 ms |
| [191] | - | 191 | 不可用 | 36 MHz | 0.5 ms |
| [191] | - | 191 | 不可用 | 36 MHz | 0.46 ms |
| Bednara [20] | Virtex 1000BG | 191 | 不可用 | 36 MHz | 0.27 ms |
| [163] | - | 163 | 25,763 | 68.9 MHz | 48 μs |
| Shu [21] | Virtex - II | 233 | 35,800 | 67.9 MHz | 89 μs |
| 本文工作 | VirtexE 2600 | 191 | 25,963 | 21.8 MHz | 100.68 μs |
| 本文工作 | Virtex - II XC2V 6000 | 191 | 25,963 | 30.1 MHz | 72.939 μs |
从对比结果可以看出,本文的实现方案在占用切片数量和时间延迟方面表现较为出色。虽然某些方案在时间延迟上可能更优,但它们可能没有提供完整的实现参数(如占用切片数量或时钟频率)。而本文的方案通过合理的架构设计,在多个性能指标之间取得了较好的平衡。
WTLS握手协议改进的意义与展望
改进的意义
基于XTR的前向保密WTLS握手协议的提出,对于提升无线通信网络的安全性具有重要意义。通过添加前向保密属性,有效地解决了现有WTLS协议前向保密性不足的问题,即使在密钥泄露的情况下,过去的通信记录仍然是安全的。同时,该协议在流行的嵌入式平台上取得了良好的性能,为实际应用提供了可行性。
未来展望
- 持续优化协议性能 :尽管在MSM6280平台上取得了良好的性能,但仍有进一步优化的空间。可以通过改进密钥交换算法、优化认证机制等方式,进一步提高协议的执行效率和安全性。
- 拓展应用场景 :未来可以将该协议应用到更多的无线通信场景中,如物联网、车联网等,以应对这些领域日益增长的安全需求。
- 结合新兴技术 :随着量子计算等新兴技术的发展,网络安全面临着新的挑战。未来可以探索将该协议与量子抗性密码技术相结合,以提高协议的抗量子攻击能力。
综上所述,通过对椭圆曲线点乘法的FPGA实现和WTLS握手协议的改进,我们在密码学的硬件实现和协议设计方面取得了重要成果。未来,我们将继续努力,不断优化系统性能,拓展应用场景,以应对不断变化的网络安全挑战。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(椭圆曲线点乘法FPGA实现):::process
B --> C(WTLS握手协议现状分析):::process
C --> D(基于XTR的协议改进):::process
D --> E(实验验证):::process
E --> F([结束]):::startend
以上流程图展示了整个研究过程的主要步骤,从椭圆曲线点乘法的FPGA实现开始,到分析WTLS握手协议现状,然后进行协议改进和实验验证,最终完成整个研究。
超级会员免费看
58

被折叠的 条评论
为什么被折叠?



