设为首页 加入收藏 期刊导航 网站地图
  • 首页
  • 期刊
    • 数学与物理
    • 地球与环境
    • 信息通讯
    • 经济与管理
    • 生命科学
    • 工程技术
    • 医药卫生
    • 人文社科
    • 化学与材料
  • 会议
  • 合作
  • 新闻
  • 我们
  • 招聘
  • 千人智库
  • 我要投搞
  • 办刊

期刊菜单

  • ●领域
  • ●编委
  • ●投稿须知
  • ●最新文章
  • ●检索
  • ●投稿

文章导航

  • ●Abstract
  • ●Full-Text PDF
  • ●Full-Text HTML
  • ●Full-Text ePUB
  • ●Linked References
  • ●How to Cite this Article
Computer Science and Application 计算机科学与应用, 2012, 2, 26-31
http://dx.doi.org/10.12677/csa.2012.21006 Published Online March 2012 (http://www.hanspub.org/journal/csa)
Research on Fast Algorithms of Elliptic Curve over


3n
GF *
Jingjing Liu, Meng Zhou
School of Mathematics and System Science, LMIB, Beihang University, Beijing
Email: jingjingliu1988@163.com, zm1613@sina.com
Received: Nov. 24th, 2011; revised: Dec. 16th, 2011; accepted: Jan. 2nd, 2012
Abstract:


3n
GF , as a more special type field of


n
GF p, the e lliptic curv e cryptos ystem based on which has thei r
own advantages. As we know, reducing the operation of inverse is an important method in elliptic curve cryptography
fast calculation. It requires 2k times inversions on elliptic curves over


3n
GF
3kP
to compute scalar multiplication
by individual computation. This paper deduces a formula of calculating directly based upon the idea of recursive
induction and trading inversions for multiplication, which reduces the inversion to once. The proposed algorithm is
prior to multiple tripling point algorithms when the speed ratio of field inversion to field multiplication is high. And the
bigger the ratio is, the more the efficiency improves.
3kP
Keywords: Elliptic Curves; Scalar Multiplication; Field Inversion; Recursive Induction

3n
GF

椭圆曲线快速算法研究*
刘景景,周 梦
北京航空航天大学数学与系统科学学院 LMIB,北京
Email: jingjingliu1988@163.com, zm1613@sina.com
收稿日期:2011 年11 月24日;修回日期:2011 年12 月16 日;录用日期:2012 年1月2日
摘 要:


3n
GF 作为 更加特殊的一种类型,定义于其上的椭圆曲线密码算法有自己的优越性。快速计
算椭圆曲线密码标量乘的方法之一是牺牲乘法或平方减少求逆次数,若采用逐次累加的方法计算

n
GF p



3n
GF
3k
上椭圆
曲线标量乘,需要 次求逆运算。本文根据递推归纳、转换求逆为乘法的思想,推导了直接计算 的公
式,使求逆运算降至一次。在逆乘率 I/M 较高时,其效率要优于逐次三倍点算法,并且逆乘率越大,其效率提
高的越多。
3kP2k P
关键词:椭圆曲线;标量乘;求逆;递推归纳
1. 引言
自1985 年Koblitz[1]和Miller[2]各自分别提出椭圆
曲线密码体制(ECC,Elliptic Curve Cryptography),
ECC 就一直得到众多密码学家及密码学研究者的关
注。
ECC 体制的安全性是基于椭圆曲线上离散对数问
题求解的困难性[2],目前还没有找到解决此问题的亚
*基金项目:国家自然科学基金资助项目(10871017);北京市自然科
学基金资助项目(102026)。 指数时间算法,因而与另一著名的公钥密码 RSA 相
Copyright © 2012 Hanspub
26


3n
GF 椭圆曲线快速算法研究
比,ECC密钥短,安全性高,速度快,存储空间占用
少和带宽要求低。它的这些特点使得业内人士普遍认
为ECC 将成为下一代最通用的公钥加密算法标准。
目前,二元域

2ECC
n
GF 和大素数域

ECCp是最为常用的两个有限域,对于
体制研究的也比较充分。相比而言,

3ECC
n
GF 的研究工作还很少开展。随着 Weil 对
究的不断进步以及基于此而设计的各
种安全协议的广泛应用,使得小素数扩域椭圆曲线

ECC
n
GF p能够比传统有限域提供更多、更加灵
案。由于针对

ECC
n
GF p的攻击
算法相对来说比较少,因而其安 较高。

3n
GF 作为

n
GF p更加特殊的一种类型,定义于其
曲线 更加优越。

3ECC
n
GF 有类
似于

2ECC
n
GF 计算速度快的某 有自
己的特 得其上算术运算效率非常高,极
适合作为安全密码算法的载体。
椭圆曲线标量乘是 ECC中最
GF
椭圆曲线密码
和Tate 对理论
活的密码选择
上的椭圆 密
其上的
殊性质,这使
核心的运算,而求
逆又
2. 背景知识简介
椭圆曲线的定义
定义 1 定义在域K上的 Weierstrass 方程:
6
(1)
所确定的平面曲线称为椭圆曲线:其中
域,
研
方
全
算法
性相比之下比
些特性,但
码
也
是标量乘运算中最耗时的运算,所以很多学者采
用牺牲乘法来减少逆运算的次数,我们延续这一思
想,着重讨论在特征为3的椭圆曲线上直接计算 3kP
的算法。文章首先介绍了ECC 中相关的知识,之
提出了一种直接计算 3kP的递推算法。
后
2.1.
232
:Eyaxy ayxaxax a
13 24
K为有限
12346
,,,, ,aaaaa K。满足(1)式的

,
x
y称为域 K
上的点还定义一个特 无穷远点
o;即域 K上的点集和一个无穷远点 o组成域K上的
椭圆曲线

EK。
椭圆曲 的群
;此外,椭圆曲线 殊的
线E运算是按照椭圆曲线群运算法则
完成的,其中所涉及的运算有加、减、乘、求逆和平
方五种基本运算,用 ,,
M
SI分别表示域K上的乘法、
平方和求逆运算,
I
M逆和乘法运算的复杂度
比,也称逆乘率。 基本运算中,加法和减法相对
其他运算来说,所用时间可以忽略不计。求逆运算则
是最耗时的,对于平方和 乘法 ,一般设定
表示求
五种


1S



0.8
M
。
2.2. 椭圆曲线上点的运算


EK表示定义在域 K上的椭圆曲线 E的所有点
及一个无穷远点(称为零点)的集合。设


11
,Pxy,


22
,Qxy是


EK上的任意两个非零点,且
PQ


公式
,仿射坐 点加公式

33
,PQ xy 和标下 倍点


44
,x y分别由(2)、(3)给
1)
2P
出:
点加

2
3121
313131
2
3
x
aaxx
yxxaxy



a






 

, 21
2
yy
1
x
x




(2)
2) 倍点
3

2
4121
414141
2xaax
y
xx axya


 




 

,
2
12121
1113
32
24
x
ax aya
yaxa




K的特征等于3且满足 时,
(3)
容许的如果
变量
2
12
aa
变换




13
,,
x
yxyaxa
可以 变成: 将E
23
y
xaxb

 (4)
其中 ,abK

,上述曲线是非超奇异的,且
3
3a,文献]指出若 [3 3
L
F
上的椭圆曲线E由
23
y
xaxb

(,,
3
L
ab F但

1b

)决定,则存
E
在
正整数 l,使 得为3
L
F
上一类良好的椭圆曲线。下面
给出当椭圆曲线E为形式(4)时,点加和倍点的公式:
1) 点加

2
31
313
2
1
x
xx
y
xx y








, 其中 21
2
yy
x
1
x



倍点
(5)
2)
2
41
3
41
+
x
x
yy








, 其中
1
a
y



加的运算量为
(6)
其中点






11 2
I
SM ,倍点的
运算量为






11 2
I
SM 。
3. 算法改进
由于求逆运算的运算量一般是乘法运算的 10 倍
左右[4],因此标量乘的计算可以将求逆运算转化为适
Copyright © 2012 Hanspub 27


3n
GF 椭圆曲线快速算法研究
量的乘法运算从而提高运算效率。基于这一思想,Ciet
等在文献[5]中给出了 3,4,2,3,4PPPQPQPQ的
快速算法。选取特征3若
根据(5)、(6)式逐次计算,计算量为

上的椭圆曲线(4)计算 3kP,



22kI S

k

4kM。下面推导直接计算 3kP的一般
的直接计算公式
算法公式。
3.1. 3P
需从 3P开始。计算3kP直接计算公式的推导

33
,y

,一般先计算3Px


22
2,Px y,然 后将


11
,Pxy
,这样 32PP通过式(6
计算 2P和3P,即
加到 2P上P,分别 )、式(5)
:
23
121121
1
+1
a
x
xy y
y


,, (7)




2
21
232123213
21
,
yy
1
x
xxyxx y
xx



,
(8)
如果按照上面的公式计算3P,则需要两次求逆,
总运算量为






224
I
SM 。为了减少求逆运算,
把(7)式中的 22
,
x
y代入(8)式中的 2

则
3
211
2
y
a令

 

21
1
I
ay,从而 3P可以按照如
下公式计算:

23 4
211
, ,
11
,1
I
a y
1
Ia Iy


2
21132
+,

2
123 132
x
xx

xxyxxy

 , 。其总
运算量为






15 5
I
SM ,虽 逐次计算
次平方运
然比 增加了
1次乘法运 算,但是减少了一次求逆
运算。当
算和 3
5.2IM时,该算法优于直接计算。
下面推一般形式,令 11
, 导3P的
A
aB y,则
111
A
B

,将(7)式中的 2
y代入(8)式中的2

:

34
311
11 1
21
222
1111
A
B
yy



AB



 (9)
不需要计算 ,令 和
2
y

23
1111 11
,dABC AB
4
1
D

11
Bd ,则 211
dC

,将(7)式中的 2
x
代入(8)式中的 3
x
:





11 11
1
11 11
2
1
2
2
11
2
32121 1
11 11 11 1111
11
11 11 11 11
1
CACA
x
dB dB
x
xD
xx
BC Ad BC AdBd
Bd
BC Ad BC Ad
D












(10)
令1
,则


2
1111111111
EBCAdBCAdxD 1
32
1
=E
xD


11
3213 11 2
11
23
11 11111
3
1
=CE
yxxyx1
dD
BC xD EBD
D


B

 




(11)
令



23
111111 11
F
BC xDEBD,则 3
311
=
y
FD。
为了推导直接计算 的一般算法,这里我们引
一些中间变量:
1
3P
k
入了



2
11
1
43
111
111 2
1111111111
23
111111 11
;
;
;
;
.
dA
B
CBA
DBd
EBCAdBCAdxD
FBCxDE BD
1
11
;;
Aa
By



 

 

则


33
3,Px y可以由以下式子计算得到:
11
33
23
11
==
DD
,
EF
xy (12)
计算复杂度为






1413
I
S
法在保证求逆操作不增
式计算

M(一次求逆是计
算 的逆),此算 加的情况下,
与
3
1
D
以上不使用推导公






31PI
5 5
S M相
比, 加了一些乘法操作,这样牺牲乘法的目的是为
了接下来推导 3kP的一般算法。
3.2. 9P的直接计算公式
增
假设已知


33
3,Px y,下面来计算 ,这
里我们利用

99
9,Px y


33
3,Px y的计算公式,直接计算[6]




99
, 3x y 。
依然令
33
3,Px y9P
2
A
a

,3
311
By FD ,则令 2
B

1
F

,从而 3
321
BD;


22
322
ayABD3
1
,
y
d
令22
AB;
22
d
 
4312
4221
43 3
2
32
12 12
11
BAD
B
a A
DD


 


,令
Cy 


4312
2221
CBAD ;

2
2222
22
3332
66
11
BBd
Dyay 2
yA
DD
 ,令
2
a
22
DBd

;则

3
1321
ayADB

 
2
(13)



4312
221
329
C
21 22
9
22121
1
BAD
y
A
BD dD



 
 (14)
Copyright © 2012 Hanspub
28


3n
GF 椭圆曲线快速算法研究
从而:



921213
33
221221 1
992
22
21 211
12 12
22 22122 2211
99
2121 1
1212162
2222122221121
9
21
xx
CADCADE
BB
dD dDD
BC AdDBC AdDE
DDDD D
BCAdDBCAdDD DE
DD


 
2


 






(15)
令1
则


1212162
2222212222112
,EBCAdDBCAdDDDE 

2
92
9
12
=E
xDD 。




3239 3
22 122
92 23
9
12 11
12
16 224 3
221 212212
3
9
12
yxxy
BC EEB
DD DD
DD
BCDDEEBDD
DD











(16)
令2

16 224 3
3221212 21
F
BCDDEEBDD
,则

2
93
9
12
=F
yDD ;
综上,引 下中间变量:
1
则 可以由以下式子计算得到:
入以



2
2
222
43
222
222 121216 2
12222122221 12
16 224 3
2221212 212
;
;
;
;
;
.
Aa
B
dAB
CBA
DBd
EBCAdDBCAdD DDE
FBCDDEEBDD





 

1
2;F

99
9,Px y
 
22
9
=,=
EF
xy (17)
其计算复杂度为
9
23
99
12 12
DD DD






112 30
I
SM 。
算的复杂度
与逐次计
(






448
I
SM )相比,该算
法操作,但是减少
法牺牲了 8
次平方操作和22次乘了 3次求逆
操作,当 9.47IM 运算转化为适量的乘
3.3. 27P的直接计算公式
同样按照 3P计算9P的方法,由 9P计算
时,将求逆
法运算能够提高运算效率。
上面由


,即由 和
2727
27 ,Pxy22
,EF2
D
找
计算 27P,同时保证
出计算 的一般算
法,得到以下的过程:
3
中间过程和上面累死,便于 3kP


32
2
33
3
12
439










3
33312
333
12 12
99
333 331233 3312
16
92
12 32
16 24
92 9
33312323 3123
;;
;
;
;
;
.
Aa
BF
dAB
CBADD
DBd
EBC AdDDBC AdDD
DD DE
FBCDD DEEBDDD




 




2727
27 ,Px y可以由以下式子得到:




33
27 27
23
99
99
12 312 3
,
EF
xy
DD DDD D

(18)
其计算复杂度为






12046
I
SM 。与逐次计
算的复杂度(






66 12
I
SM )相比,该算
次乘法操作,但是
法
14 次平方操减少了 5次求
逆操作,当
牺牲了
作和 34
9.04 时,将求逆运算IM转化为适量的
乘法运算 效率。
能够提高运算
3.4. 3k
P
的直接计算公式
根据前面 P和27P的计算,以此类推可
以得到 3kP的递推公式:
对3P,9

2
12
43
;
;
A
B
CBAM








1
9
9
9
12 31
12 12
16 21
16 224 3
1
;;
;
;
.
k
kk
kkk
kkkk
kk
kkk
kkkkkk kkkkk
kkk
kkkkkkk kkk
BF
d
MD
DDD
DBd
EBCAdM BCAdM
MDE
FBCMDEE BMD




Aa







其中

 
 
23
33
11
,;
kk
kk
kk
EF
xy
MM

 (19)
Copyright © 2012 Hanspub 29


3n
GF 椭圆曲线快速算法研究
下面给出在仿射坐标下直接计算 的算法:
输入:基点
输出:椭圆曲线上的点 ;
Step 1: 计算
1
Step 2: for i from 2 to k do

Step 3: compute:
3kP

11
,;Px y;ka

33
3,
kk
kPxy



2
111111
43
111111
2
1111111111
23
111111 11
;; ;
;;
;
.
AaByd AB
CBADBd
EBCAdBCAdxD
FBCxDE BD
 
 
 










2
19
9
9
12
43
12 12
16 21
16 224 3
1
;;;
;;
;
.
iiiiii
iii iii
iiiiiiiiii
iii
iiiiiii iii
AaBFd AB
MDDDD
BAM DBd
BCAdM
DE
FBCMDEE BMD



 

 





i
EB
CAdM
12 3 1ii
i
C
M
 
23
33
11
;;
kk
kk
kk
EF
xy
MM


Step 4: 输出
线上点 P计算 ,其计
算复杂性为

,;
kk
xy
33
在此算法中,由椭圆曲 3kP








184162
I
kS kM
:第一步中须计算 242
111
,,
,具体计
算过程如下
A
BD
2
1111111111
共4

1
,
次平方,
323
11 111
A
B AD,, ,
11 1
BC Ad乘法;
第二步中当 i
Bd BCAd BCxD
,, ,

23
1 11 11111
BC AdxDD,,,共
2i时,需要 7次平法,14 次
E B
10 次
乘法,从3

开始往后的
法,最后
2k项,每步均需要8次平法
一步还需要计算

,16 次乘
2,
1kk
xEM


3k

3
1
3kkk
yFM
k
次乘法: 8
,它需要计算
,
1次平方:

2
1;6M
K
k
M
M9,
K
k
M
D

2
11
,
kk
MM

31,

kk
FM
21,
kk
EM


2
11
,1
kk k
EM M

次求逆: 3
1k
M1

,其中
9
1,
kkk
M
MD
8
(k
M
在上一步中计算k
16
M
时已
且存储98
k
经用到
kk
M
MM)。综上,计算 3kP共需要的计
算量为:






















184162410
71428
1
 
 
16
16
I
kS kMSM
SMk S
I

 M
SM


.
3.5. 算法性能比较
量的比较,假设1 S = 0.8
1。
,与逐次计,虽然
了乘法或平方运算 同时也减少
了一些求
根据域中运算 M,列表
通过表 1比较可以发现 算相比
直接计算增加 一些,但
逆运算。而
I
M的值一般大10,将求逆
运算转化为
于
适量的乘法运算之后,由上表可以看出,
随着 k的增大,直接计算方法比逐次计算方法更有效。
上面的临界点是







116.85.22 1IkMk


,当k
趋于无穷大时,8.4IM

。故当k比较大且 8.4IM
时,本文介绍的直接计算方法均优于逐次计算方法。
本文根据递归思想及最小公倍数方法究了特
的有限域上的椭圆曲线在仿射坐标下直接计算
,虽
4. 结束语
,研
征为 3
3的算法。本质上将耗时的域中求逆运算替换成了
较快的平方或乘法运算 然牺牲了一些乘法或平方
操作,但同时也减少了求逆操作,当逆乘率
kP
I
M比较
大时,这种替换能加快计算速度,提高运算效率。具
体地,当k很大时,
至少提高:1) 5.
与逐次计算相比,此算法的效率
08%,当9IM时;2) 12.50%,当
10IM时;3) 18.84%,当 11IM时。综上,
I
M
值越大,将求逆运算转化为适量的乘法运算越有效。
曲线标量乘中,当因此,在椭圆
I
M比较大时,该算
法是一种
比较
计算的值 S M
有效的改进方法。
5. 致谢
在此,非常感谢我的导师周梦教授在论文构思和
书写的过程中给予指导,感谢国家自然科学基金
(1087101 7)、北京市自然科学基金(102026)的资助和
Table 1. The cost of different operations
表1. 不同运算的
计算方法 I I/M
逐次计算 2 2 4
3P 10.6
逐次计算 4 4
9P 直接计算 1 1
直接计算 1 4 13
8
2 30 9.47
逐次计算 6 6 12
直接计算 1 20 46 9.04
3
直接计算 1 8k – 4 16k
27P
逐次计算 8 8 16
4P 直接计算1 28 62 8.86
逐次计算 2k 2k 4k
3kP – 2 (16.8k – 5.2)/(2k – 1)
Copyright © 2012 Hanspub
30


3n
GF 椭圆曲线快速算法研究
Copyright © 2012 Hanspub 31
支持,同时 给予转载
和引用权的资料、文献、研究思想和设想的所有者谨
致谢意。
参考文献 (References)
[1] N. Koblitz. Ellipticurethematics of Com-
tion, 1987)20
[2] Mif etic es yptograph
s, Ed., CRYPTO 1985. LNCS, Vol. 218. Heidelberg:
r, 1986: 417-428.
[3] 李超. 特征为 3的有限域上用于密码体制的椭圆曲线[J]. 通
信保密, 1994, 58(2): 46-49. , et al. Field inversion and point
on Computers, 2004, 53(8):
对所有提供给我指导和帮助者、
c
7, 48(17ve cryptosyst
: 203-ms. Ma
puta
V. S. 9.
ller. Uses ollipcurvin cry. In: H. C. 算机
William
Springe
[4] K. Fong, D. Hankerson, J. Lopez
halving revisited. IEEE Transactions
1047-1059.
[5] M. Ciet, K. Lauter, M. Joye and P. L. Montgomery. Trading
inversions for multiplications in elliptic curve cryptography. De-
signs, Codes and Cryptography, 2006, 39(2): 189-206.
[6] 殷新春, 候红祥, 谢立. 基于双基数的快速标量乘算法[J]. 计
3科学, 2008, 5(6): 186-189, 195.

版权所有:汉斯出版社 (Hans Publishers) Copyright © 2012 Hans Publishers Inc. All rights reserved.