密码学中的乘法优化、椭圆曲线密码系统及数字签名新范式
乘法运算优化
在某些计算中,提取 $b$ 个根所需的乘法次数计算较为复杂。当计算 $M$ 时,大约需要额外进行 $W/4$ 次乘法运算。总体而言,提取 $b$ 个根所需的乘法次数为 $2c - W + W/4 + c - log N$。
为了减少提取 $MIIE$ 因子时的乘法次数,我们可以采用一些技巧。目标是计算 $y^{z_1} \pmod{N}$ 和 $y^{z_2} \pmod{N}$。若 $z_1$ 和 $z_2$ 是随机的,看起来需要 $c \cdot (log z_1 + log z_2)$ 次模乘法。但实际上,我们可以先计算 $y^{z_1 \land z_2} \pmod{N}$(其中 $z_1 \land z_2$ 表示 $z_1$ 和 $z_2$ 的按位与运算),再计算 $y^{z_1 \land \neg z_2}$ 和 $y^{z_2 \land \neg z_1}$,最后将适当的结果相乘得到 $y^{z_1}$ 和 $y^{z_2}$。当 $z_1$ 和 $z_2$ 在 $1$ 到 $N$ 的范围内随机选取时,计算这三个中间乘积大约需要 $log N + \frac{3}{4} \cdot log N$ 次乘法,且除了存储三个中间结果所需的空间外,几乎没有额外的存储成本。
我们还可以利用上述技巧,在计算 $M$ 的过程中顺便计算 $M_p$ 和 $M_p$,成本为 $\frac{1}{4}(log X_1 + log X_2)$ 次乘法。因为计算 $M$ 的最后阶段涉及将 $M_1$ 提升到某个指数 $R$,将 $M_2$ 提升到某个指数 $L$,且递归的所有层级都是如此。
超级会员免费看
订阅专栏 解锁全文
2557

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



