椭圆曲线点乘加速技术详解
在椭圆曲线密码学中,点乘运算是核心操作之一,其效率直接影响到整个系统的性能。本文将详细介绍几种加速点乘运算的技术,包括使用宽度 - w TNAF(Ternary Non-Adjacent Form)的点乘算法、具有高效可计算自同态的曲线以及基于点减半的点乘方法。
1. 使用宽度 - w TNAF 的点乘算法
首先介绍两个重要的算法,即计算宽度 - w TNAF 的算法和基于宽度 - w TNAF 的窗口点乘算法。
1.1 计算宽度 - w TNAF 的算法(Algorithm 3.69)
INPUT: w, tw, αu = βu +γuτ for u ∈{1,3,5,...,2w−1 −1}, ρ = r0 +r1τ ∈Z[τ].
OUTPUT: TNAFw(ρ).
1. i ←0.
2. While r0 ̸= 0 or r1 ̸= 0 do
2.1 If r0 is odd then
u ←r0 +r1tw mods 2w.
If u > 0 then s ←1; else s ←−1, u ←−u.
r0 ←r0 −sβu, r1←r1 −sγu, ui ←sαu.
2.2 Else: ui ←0.
2.3 t ←r0, r0 ←r1 +µr0/2, r1 ←−t/2, i ←i +1.
3. Return(ui−1,ui−2,...,u1,u0).
该算法的主要目的是将元素 $\rho$ 转换为宽度 - w 的 TNAF 表示。通过不断迭代