椭圆曲线数字签名算法中的快速验证算法_白国强
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
想提出了一种新的计算标量乘法的方法 。 本文在 该方法的基础上提出了一种直接计算 k P+ lQ 的算 法 , 使 ECDSA 中验证签名时所需计算量平均降为 签名时所需计算量的 1. 5倍。 m 本 文 先 介 绍 计 算 GF ( 2 )上 多 倍 点 运 算 的 M ontg omery 方法 , 然后给出了计算 k P+ lQ 的新算 法 ,再通过一个例子对新算法的构思方法做了解释 , 最后对新算法做了一些初步分析。
现设 P∈ E 是椭圆曲线 E 中的任一点 (本段中 P 始终表示这样的点 ) , 其中 E 如方程 ( 1)定义 。设 k 是一个大小与有限域 GF ( 2m )中元素个数规模相当 的正整数 。 则所谓椭圆曲线多倍点运算 (或标量乘 法 ) k P 是指 k 个 P 的连加 ,亦即 k P = P + P + … + P. 多倍点运算是椭圆曲线密码中起关键作用和计 算量最多的运算。 多倍点运算的基本方法是所谓的 “点加及倍点 ”方法 , 实用化方法是基本方法的各种 改进方法。 “ 点加及倍点”方法实际上是根据 k 的二 进制表示得来的复杂度与表示的长度成正比的一种 方法。 为简单起见本文中我们称之为二进制方法。 1985年 , Mo nt go mery 在文 [ 6 ]中提出了一种 计算椭圆曲线多倍点运算 k P 的方法 。 这一方法可 以用下面的算法流程表示。 算法 1
2
[ 5]
P1≠ P 2 ; P1 = P 2 . ( 3)
y 3=
x 1+
2
x 1+
y1 x 3+ x 3 , x1
( 5) 利用引理 1 和引理 2, J. Lo pez 和 R. Dahab 对算法 1 进行了改进 。 这一改进的最大特点是在算 法 1的迭代过程中 , 要求每次只计算各个点的 x 坐 标即可 。 到计算的最后 , 再利用公式 ( 5)将 k P 的 y 坐标恢复出来。 本文中我们称这一新改进为计算多 倍点运算的 Mo nt go mery 方法。文 [ 5 ]中 给出了利用 这一方法计算 k P 的算法 Algo ri thm 2A 。 利用 Algom 2 计算 时在仿射坐 标下共需 ri thm A kP GF ( 2 ) 中 2m+ 1 次求逆运算 , 2 m + 4次乘 法运算和 2m + 2 [5 ] m 次平方运算 。分别用 I、 M 和 S 表示 GF ( 2 )中的 求逆运算 、乘法运算和平方运算 ,则这一运算量可表 示为 2 m ( I+ M+ S )+ I+ 4M+ 2S . ( 6)
3 [5 ]
[5 ]
x1 x 1 + x2 b 2, x1
2
+
x1 , x1 + x2
P 1 ≠ P 2; P1 = P2 . ( 4)
P 1≠ P 2 ; P 1= P 2 . ( 2)
x 1+
2
x 3=
b 2, x1 y 1+ y 2 ( x 1+ x 3 )+ x 3+ y 1 , x 1+ x 2
[5 ]
1 Montgomery方法
m 设 GF ( 2 )是特征为 2的有限域 。 一条定义于
GF ( 2 )上的非超奇异曲线 E 是指方程 y + x y = x + ax + b ( 1) 的解 ( x , y )连同一个特殊元素 O 所构成的集合。 这
收稿日期 : 2002-04-24 基金项目 : 国家自然科学基金资助项目 ( 60273004) ; 中国博士后科学基金资助项目 ( 023202001) 作者简介 : 白国强 ( 1963-) , 男 (汉 ) , 陕西 , 博士后 。 通讯联系人 : 陈弘毅 , 教授 , E-mai l : chy-im e @ mai l. t singh ua. edu. cn
白国强
1, 2
, 黄 谆 , 陈弘毅
1
1
( 1. 清华大学 微电子学研究所 , 北京 100084; 2. 西安交通大学 数学系 , 西安 710049)
摘 要 : M ontg ome ry 方法是椭圆曲线密码中计算多倍 点运 算 k P 的一种新方法 。 为减少在椭圆曲线数字 签名算法验证 过 程 中 需 完 成 的 k P+ lQ 的 计 算 量 , 该 文 在 分 析 M ont g omer y 方法的基 础上 ,将 计算 k P 和计算 lQ 的流 程结合 在 一起 ,提 出了一种 计算多 倍点 运算 k P+ lQ 的 新算法 ,使 椭 圆曲线数字签名算法中 验证签名所需的计算量减 少了 25 % 。 新 算 法对 改 善椭 圆 曲 线 密码 的 实 现 技术 具 有 一 定 意义 。 关 键 词 : 椭 圆 曲线 ; 数字 签 名 算 法 ; 多 倍 点运 算 ; M ontgo mery 方法 中图分类号 : TN 918. 1 文献标识码 : A
m 对定 义 于 GF ( 2 ) 上 的 椭 圆 曲 线 , 1999 年 J. Lopez 和 R. Dahab 基于 Mo ntgo mery 的一个思
文章编号 : 1000-0054( 2003) 04-056405
Fast verification algorithm in elliptic curve digital signature algorithm
Input: integ er k > 0, point P Output: Q= k P 1. Set k← ( kd - 1 , … , k 1 , k 0 ) 2 2. Set R 1← P , R2← 2P 3. Fo r i fr om d - 2 do w n to 0 do if ki = 1 then set R 1← R1+ R 2 , R2← 2R 2 else set R 2← R1+ R 2 , R1← 2R 1 4. Retur n ( Q= R1 )
ISSN 1000-0054 清华大学学报 ( 自然科学版 ) 2003年 第 43 卷 第 4 期 CN 11-2223 /N J Tsingh ua U niv ( Sci & Tech ) , 2003, V o l. 43, N o. 4
33 /35 564-568
椭圆曲线数字签名算法中的快速验证算法
ቤተ መጻሕፍቲ ባይዱ
关键作用和计算量最多的计算是椭圆曲线的多倍点 运算 (也叫椭圆曲线的标量乘法 [ 1] )。 假设 E 是定义 于某有限域的一条椭圆曲线 , P∈ E 是基于曲线 E 的 ECDSA的基点 , Q∈ E 是 E 中的一个随机点 , k 和 l 是两个随机整数 。在签名产生过程 , 计算量最多 的计算是多倍点运算 k P , 在签名验证过程计算量 最多的计算是 k P+ lQ。 关于多倍点运算 k P 或 lQ 的计算 , 现有方法都是基于 “点加及倍点 ”方法 ( add and double m ethod )的 “ 加 减 ”法及其各 种改进方 法 [1 ] 。 在签名验证过程对 k P+ lQ 的计算 ,目前都采 用了先分别计算多倍点运算 kP 和 l Q , 然后再计算 k P+ l Q 的方法。 从而在 ECDSA 中 , 验证签名所用 时间通常是签名产生所用时间的两倍 [ 3, 4] 。
2 3 2
m
椭圆曲线数字签名算法
[ 2]
[1 ]
( ECDS A)是椭圆曲
线密码 的重要组成部分。 ECDSA 由签名的产生 和签名的验证两部分构成。 在 ECDSA的实现中 , 起
白国强 , 等 : 椭圆曲线数字签名算法中的快速 验证算法
565
里 , ( x , y )∈ GF ( 2 )× GF ( 2 ) , a , b ∈ GF ( 2 ) , b≠ 0 。 在 E 的元素之间有一个自然的群运算法则能使 E 构成一个有限加法群 , 其中特殊元素 O 是这一加 法群的单位元 。 E 的群运算法则可描述如下: 设 P 1 = ( x 1 , y 1 ) ∈ E , 则定 义 - P = ( x 1 , x 1+ y 1 )。 进一步对任何 P1∈ E , 定义 O+ P 1= P 1+ Q= P。 若 P 2 = ( x 2 , y 2 )∈ E 且 P 2≠ - P 1 , 则定义 P 1+ P 2= ( x 3 , y 3 ) , 这里 y 1+ y 2 y 1+ y 2 + + x 1+ x 2+ a , x 1+ x 2 x 1+ x 2 x 1+
2 2
m
m
m
线 ( 1) , 1999 年 J. Lopez 和 R. Dahab 注意到它 有如下两个基本性质 。 引理 1 设 P = ( x , y ) , P 1 = ( x 1 , y 1 )和 P2 = ( x 2 , y 2 )为椭圆曲线 E 中的点。 假如 P 2= P 1+ P , 则 P 1+ P 2 的 x 坐标 x 3 可由点 P , P 1 和 P 2 的 x 坐标 按照如下公式计算: x+ x =
BAI Guoqiang 1, 2 , HUANG Zhun 1 , CH EN Hongyi 1 ( 1. Institute of Microel ectronics , Ts inghua Uni versi ty, Bei jing 100084, Chi na; 2. Department of Mathematics , Xi 'an Jiaotong University, Xi 'an 710049, China) Abs tract : Th e M on tgom ery meth od i s a new met hod f or th e compu tati on of th e mul ti-poin t ari th metic kP in ellip tic curve cryp tosys t ems. A new compu tati onal method bas ed on th e M ont gomery method w as dev elop ed t o reduce th e com put at ions for kP + l Q in th e verif icat ion proces s of th e el lipt ic cu rve digi tal signat ure algori thm. Th e alg ori th m is a combi nation of tw o i teration procedures using t he M on tgom ery meth od f or compu ting bot h kP and l Q . Th e compu tati on amoun t f or k P + l Q decreas es 25 % compared wi th t hat fo r th e t raditi onal algorit hm. Th e n ew algorit hm wi ll f aci lit ate th e i mplemen tati on of el li pti c cu rve crypt osys tems. Key words : elli pti c cu rv e; di gi t al si gnatu re al gori th m; mul ti-poin t ari th met ic; M on tgomery method
引理 2 设 P = ( x , y ) , P 1 = ( x 1 , y 1 )和 P2 = ( x 2 , y 2 )为椭圆曲线 E 中的 3 个点 , 并且有 P 2 = P 1 + P , x≠ 0 。 则点 P 1 的 y 坐标可以通过点 P 的 x , y 坐标以及点 P 1 和 P 2 的 x 坐标按照如 下公式计 算出 : y 1 = ( x 1+ x ) { ( x 1+ x ) ( x 2+ x )+ x + y } /x + y .