赞
踩
最近在看ECC的加密算法,该算法的安全性基于“求离散对数”的困难。下面主要介绍一下ECC在实现倍点过程中的算法,分为两部分:一是基于二进数的计算方法,二是基于NAF序列的计算方法。
基于二进数的计算方法中,分为两种遍历方式,一是从左向右遍历,二是从右向左遍历,该算法类似模幂运算中对于其指数的处理方式。具体算法如下。
ECC中计算倍乘的算法:现计算kP,k=(kt-1,kt-2,.....,k1,k0),PE(Fq)
算法1:从左向右遍历
输入:k=(kt-1,kt-2,.....,k1,k0),PE(Fq)
输出:Q=k P
Q←0(这里0指的是群运算中的单位元)
for i=0 to t-1
begin
if ki=1 Q=Q+P
P=2P
end
return Q
算法2:从右向左遍历
输入:k=(kt-1,kt-2,.....,k1,k0),PE(Fq)
输出:Q=k P
Q←0(这里0指的是群运算中的单位元)
for i=t-1 to 0
begin
Q=2Q
if ki=1 Q=Q+P
end
return Q
基于NAF序列计算点乘运算中也分为两种情况,一种是基于NAF2,一种是基于NAFw,下面先介绍一下NAF的定义,然后再介绍一下基于NAF计算点乘的算法。
<Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。