科布利茨曲线上标量乘法的快速实现
1. 整数 τNAF 重编码
Solinas 提出了一种 τ - 进非相邻形式(τNAF)重编码,它是传统非相邻形式(NAF)重编码的 τ - 进类似物。对于元素 $k$,找到一个元素 $\rho \in Z[\tau]$,使得 $\rho \equiv k \pmod{\frac{\tau^m - 1}{\tau - 1}}$,并且 $\rho$ 的范数尽可能小,其中对于感兴趣的子群,$kP = \rho P$。可以以模仿通常的宽度 - $w$ NAF 重编码的方式获得 $\rho$ 的宽度 - $w$ τNAF 表示。
宽度 - $w$ τNAF 表示为:$k = \sum_{i = 0}^{l - 1} u_i \tau^i$,其中每个 $u_i \in {0, \pm\alpha_1, \pm\alpha_3, \ldots, \pm\alpha_{2^w - 1 - 1}}$,$u_{l - 1} \neq 0$,并且任意连续 $w$ 个系数中最多有一个非零。在合理假设下,该过程输出的展开长度 $l \leq m + 1$。
在科布利茨曲线中,整数到宽度 - $w$ τNAF 重编码可能占标量乘法计算时间的 10% 以上。为了优化,采用了无分支技术,并完全展开代码以仅处理当前迭代所需的精度。
2. 高级技术
2.1 利用弗罗贝尼乌斯自同构的幂
科布利茨曲线上的标量乘法算法通常会利用弗罗贝尼乌斯自同构 $\tau$,$\tau(x, y) = (x^2, y^2)$。经典的 τNAF 标量乘法算法及其宽度 - $w$ 窗口变体就是利用这一特性。
给定
科布利茨曲线标量乘法优化
超级会员免费看
订阅专栏 解锁全文
34

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



