- 1
- 0
- 约6.42千字
- 约 6页
- 2023-10-18 发布于广东
- 举报
一种基于余数系统的椭圆曲线密码算法
1 椭圆曲线点乘的计算
椭圆曲线的密码是一个重要的函数密码,其基本计算方法是椭圆曲线的点幂。定义在NIST素域上的椭圆曲线点乘较易计算, 而在一般的素域上计算椭圆曲线点乘则较为困难。其原因在于:前者的阶是特殊模数, 模约简较为方便。目前, 有若干种方法实现素域椭圆曲线点乘。一般来说, 首先需要构建一个多精度的模乘器, 然后顺序计算椭圆曲线点乘中的模乘运算。在文献中, 利用商流水线搭建了一个大的蒙哥马利模乘器, 进而计算椭圆曲线点乘。在文献中, 则基于心动阵列构建了一个蒙哥马利模乘器, 并用它来计算全部模乘。另一种计算方法利用了余数系统[7~9]。
在文献[7~9]中, 椭圆曲线点乘分成一些列的倍点和点加。每次倍点和点加前, 先将坐标转化到余数系统中, 将它们所对应的模乘在余数系统中用乘法计算。这种方法仅用到了一个余数系统, 但是其动态范围很大。然后, 将上述计算结果转换到二进制系统中, 利用Horner法则进行模约简。约简完成后, 再将结果转换到余数系统中, 以进行后续倍点和点加。这种策略充分利用了余数系统的并行性, 却包含了余数系统和二进制间的频繁转换, 因而影响了它的实施效率。此外, 在文献[10, 11]中, 同样应用余数系统来计算椭圆曲线点乘, 但是余数系统和二进制间的相互转换只在首尾各计算一次。该方法的特点是, 利用余数系统下的蒙哥马利模乘[12~17]计算所有的模乘。而余数系统蒙哥马利模乘中, 通常用到两个近乎对称的余数系统, 它们的模数个数和动态范围都很接近。
本文提出了一种新的余数系统下快速计算素域椭圆曲线点乘的方法, 它充分汲取了上述两种余数系统算法的优点, 而避免了相应的缺点。首先, 本文采用了非对称的余数系统, 其中由两个模数{2L, 2L-1}组成余数系统Γ的模数组, 另外八个模数组成余数系统Γ的模数组, 它们都是广义梅森数 (Generalized Mersenne numbers) 2L-2Ki+1 (i=1, 2, …, 8) 。这些特殊模数十分方便模约简运算。其次, 利用该非对称的余数系统, 椭圆曲线中每次点加、倍点的模乘绝大部分在余数系统中通过乘法实现, 仅有四个模乘利用余数系统下的蒙哥马利模乘完成。后者在运算中进行了模约简, 将之前乘法所增大的中间值压缩到了开始时较小的范围, 避免了转换到二进制的步骤, 使得点加和倍点可以在余数系统中连续计算。与此相应, 在计算椭圆曲线点乘时, 用到了蒙哥马利梯子, 它每次仅计算x坐标, 点加和倍点可以并行运算。上述方法结合在一起, 大幅减少了素域椭圆曲线点乘的周期数, 加快了运算速度。
2 动态范围与乘法
余数系统是一种无权重的整数表示系统, 它由一组互质的模数定义:{m1, m2, …, mn}。余数系统所能表示的整数范围[0, M-1]称为动态范围, 其中, M=∑ni=1mi。在余数系统中, 加法、减法、乘法可以并行运算。设A= (a1, a2, …, an) , B= (b1, b2, …, bn) , 用ue0c9表示+、-或者×, 则有:
2.1 余数ls-ls
设余数系统Ω的模数组为{m1, m2, …, mn}, 动态范围是[0, M-1], M为模数的连乘积, 且Mi=M/mi。又设整数R处在[0, M-1]内, 它的余数表示为 (r1, r2, …, rn) , 其中, ri=R mod mi, i=1, 2, …, n。此时, 中国剩余定理表示如下:
在文献中, 式 (1) 中最后模M的操作被减去M的若干倍数代替。设这个倍数因子为α, 则它必定处在[0, n-1]内, 且有
其中, σi= (ri·Mi-1) mod mi。为了计算α, 需要额外的信息, 它可以通过冗余的模数mn+1及相应的余数rn+1实现, 也可以利用近似法求出。
2.2 蒙哥马利模乘算法1的运算
余数系统下的蒙哥马利模乘算法, 可以通过在两个余数系统间进行基底扩展实现, 如算法1所示。
算法1余数系统下的蒙哥马利模乘
算法1的主要运算发生在步骤2和步骤4, 前者是从余数系统Ω向余数系统Γ扩展基底, 后者刚好相反。以步骤2为例, 其运算可以用向量表示如下:
其中, σi=ai·bi· (-pi-1) mod mi, Mi,j= (M/mi) mod mn+j, μj=M mod mn+j。第j个分量的运算需要模mn+j。
3 椭圆曲线点乘
通常应用的素域椭圆曲线方程形式为y2=x3+ax+b, 它的运算定义在FP中, 且有4a3+27b2≠0 (mod p) , p3。可以利用蒙哥马利梯子计算椭圆曲线点乘, 如算法2所示。
算法2利用蒙哥马利梯子计算椭圆曲线点乘
在算法2中, 每一行的运算都并行执行, 运算过程中始终保持V-U=
原创力文档

文档评论(0)