12、椭圆曲线点乘算法详解

椭圆曲线点乘算法详解

1. 点乘基础

在椭圆曲线运算中,点乘是一个核心操作。有一种点乘方法会预先计算 $v(2^w - 1)$ 个点 $P[v’][u]$,其中 $v’ \in [0, v - 1]$ 且 $u \in [1, 2^w - 1]$。基于此方法的点乘算法,预计大约需要 $e - 1 \approx \frac{t}{wv} - 1$ 次点加倍和 $\frac{(\frac{t}{w} - 1)2^{w - 1}}{2^w}$ 次点加法。

1.1 多点乘法

为了加速 $kP + lQ$ 的计算,有一种方法是同时多点乘法(算法 3.48),也被称为 Shamir 技巧。若 $k$ 和 $l$ 是 $t$ 位的数,它们的二进制表示会被写成一个 $2×t$ 的矩阵,即指数数组。给定宽度 $w$,会计算 $0 \leq i, j < 2^w$ 时的 $iP + jQ$ 值。在 $\lceil t/w \rceil$ 步的每一步中,累加器会进行 $w$ 次加倍操作,并根据指数数组上一个 $2×w$ 窗口的内容从 $iP + jQ$ 值表中选取一个值进行加法操作。

算法 3.48:同时多点乘法
  • 输入 :窗口宽度 $w$,$k = (k_{t - 1}, \ldots, k_0) 2$,$l = (l {t - 1}, \ldots, l_0)_2$,$P, Q \in E(F_q)$。
  • 输出 :$kP + lQ$。
    1. 计算所有 $i, j \in [0, 2^w - 1]$ 时的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值