ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:237KB ,
资源ID:1509888      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-1509888.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一种椭圆曲线参数生成的快速算法.doc)为本站会员(cjc2202537)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

一种椭圆曲线参数生成的快速算法.doc

1、一种椭圆曲线参数生成的快速算法摘要:椭圆曲线密码体制是公钥密码中的研究热点。该文介绍了椭圆曲线密码体制的基本概念及相关知识,讨论了目前基于离散对数问题的椭圆曲线密码的研究动态。本文的创新点是针对目前椭圆曲线研究重点之一椭圆曲线参数生成算法,给出了一种生成参数a、b 的快速算法。这种算法利用了 Jacobi 符号和二次剩余的理论,并且用 matlab 计算出利用这种算法生成一个椭圆曲线的平均时间,最后我们分析了今后椭圆曲线密码系统的研究方向和重点。关键词:椭圆曲线;离散对数问题;Jacobi 符号;二次剩余1976 年 Diffie 和 Hellman 提出公钥密码思想以来,国际上提出了许多种公

2、钥密码体制的实现方案。一些已经被攻破,一些被证明是不可行的。目前,只有 3 类公钥密码体制被认为是安全有效的,按照其所依据的数学难题划分为:基于大整数分解问题(IFP) ,如RSA 体制和 Rabin 体制;基于有限域离散对数问题(DLP ) ,如 Diffie-Hellman 体制和ElGamal 体制;基于椭圆曲线离散对数问题(ECDLP ) ,如椭圆密码体制。椭圆曲线应用到密码学上最早是由 Neal Koblitz 和 Victor Miller 在 1985 年分别独立提出的。它是目前已知的公钥体制中,对每一比特所提供加密强度最高的一种体制。它具有安全性高、密钥量小、灵活性好的特点,受

3、到了国际上的广泛关注。而 SET(Secure Electronic Transaction)协议的制定者已把它作为下一代 SET 协议中缺省的公钥密码算法。深入研究基于椭圆曲线离散对数问题的公钥密码具有很大的现实意义。1 建立椭圆曲线公钥密码体制1.1 椭圆曲线域的参数在基于椭圆曲线的加解密和数字签名的实现方案中,首先要给出椭圆曲线域的参数来确定一条椭圆曲线。在 IEEE P1363 标准中,定义其参数为一个七元组:T=(q,FR,a,b,G,n,h),其中 q 代表有限域 GF(q),q 为素数或 ;FR 为域表示法,如 f(x)为 域元素的不可约2m2mF多项式的表示法;曲线的方程,当

4、q 为素数时,方程为 ,当 q 为 时,23axbym方程为 ,a,b 是方程中的系数;G 为基点;n 为大素数并且等于点232xyabG 的阶,h 是小整数称为余因子且 。主要的安全性参数是 n,因此 ECC 密#()/qhEF钥的长度就定义为 n 的长度。1.2 椭圆曲线密码的密钥选取了基域 和椭圆曲线后,得到了在有限域 上的曲线 E 确定的具体形式,即qFq上述的椭圆曲线域参数的一个七元组。每个用户选取一个整数 d(1dn-1) 作为其私钥,而以点 Q=dG(G 为基点)作其公钥,这样形成一个椭圆曲线公钥密码系统。在这个密码体制中,具体的曲线,基域 ,基点 G 及其阶 n,以及每个用户的

5、公钥都是该系统的公开参qF数,每个用户的私钥是保密的。1.3 基于椭圆曲线密码体制的加解密假设用户 A 欲将明文 m 加密后发送给 B,A 执行以下操作:(1)查找 B 的公钥(E( ,G,n, )) ;qQ(2)将 m 表示成一个域元素,即 ;q(3)在区间1,n-1 内选取一个随机数 k;(4)计算点 ;1(,)kyx(5)依据 B 的公钥计算点 ,若 0,则返回到第(3)步;2(,)Bk2x(6)计算 ;2Cm(7)传送加密数据 给 B。1(,)yxB 收到 A 的密文 后,执行以下操作。(1)使用私钥 ,计算点 ,再计算 中 ;Bd12(,)(,)ByxqF12()x(2)计算 m=C

6、 ,得到明文 m。12()x2 椭圆曲线密码的研究动态2.1 椭圆曲线密码的安全性ECC 的安全性是建立在离散对数问题计算难度基础之上,如果离散对数可以计算,从一个用户的公钥就可得到他的私钥,ECC 就不安全了。对于一般的 ECDLP,目前有两种较好的求解法 1:Pohlig-Hellman 方法和 Pollard- 方法。但是对于两类特殊的椭圆曲线,已经有了其他有效的求解方法。一类特殊的椭圆曲线超奇异椭圆曲线 2(设 的特qF征为 p, 的 q 阶 Frobenius 变换的迹 t 是 p 的倍数时,E 称为超奇异的) ,采用概/EF率亚指数算法MOV 算法和 FR 算法可以解决 ECDLP

7、。另一类特殊椭圆曲线是异常(anomalous)椭圆曲线 2(设 ,p2,3 为素数, 由方程m/q定义, 的阶为 p。当 p=q 时,异常曲线上的 p 阶 Frobenius23axby()qPE变换的迹 t=1) , SSSA 算法可以解决 ECDLP。2.2 椭圆曲线的选取要保证椭圆曲线密码的安全性,就是要使所选取的曲线能抵抗上述的关于 ECDLP 解决的方法和算法,所以选取一条安全的椭圆曲线,是一个深刻的数学难题,在此,仅提供几点椭圆曲线选取的安全准则 3:(1)为了抗击 Pollard- 攻击,所选取 EC 的阶#E(GF(q)的分解式中应该包含一个大的素数因子,目前应不小于 160

8、bit;(2)为了抗击 Weil 对和 Tate 对的攻击,对于 1k30,n 不能除 (不宜选取超1kq奇异椭圆曲线) ;(3)为了抗击 Semaev-Smart-Satoh-Araki 的攻击所选曲线的阶不能等于该曲线所定义的有限域的阶,即#E( )q(不宜选取异常椭圆曲线) ;F(4)对于二进制域 GF( )的度 m 不宜为合数。Gaudry,Hess 和 Smart 提出,若 m 有2小约数 l(l=4) ,存在比 Pollards rho 算法更快求解 ECDLP 的方法。下面介绍 3 种选择适宜的椭圆曲线的方法:(1)仅限于有限域为 上构造椭圆曲线。其原理是将定义在特征值比较小的有

9、限域的m椭圆曲线提升到该域的扩域上去,并且 m 能被小整数 k1 整除。这种方法简单,但是得到的曲线较少。(2)CM(Complex Multiplication)法,根据给定的阶来选取符合此阶的椭圆曲线。它的实现速度相对较快,但这种方法产生的椭圆曲线具有附带的结构特征。从安全性角度讲,这是一个潜在的威胁。(3)随机选取曲线。随机选取曲线的参数 a,b 如果 q 是素数,则满足F;如果 q= ,则 b0,然后计算 u=#E(Fq)和大素数因子 n,直到所选曲2470ab2m线满足安全需求。这种方法比较理想,选取的曲线安全级别高,它完全依赖于椭圆曲线阶的计算。2.3 椭圆曲线阶的计算从上述椭圆曲

10、线的安全性来看,如果曲线的阶充分大,平方根攻击如 Shankss baby-step gaint-step 或 Pollards 方法就不太有效,要能抗击 Pohlig-hellman 攻击,一个好的策略是确保曲线的阶#E(Fq)中包含有大素数因子(该大素数作为所选取基点 P 的阶)使得P,Pohlig-hellman 算法的 计算量不能实现。由此看来,计算#E(Fq) 是研究定义在有限()On域上的椭圆曲线的一个核心问题。对于#E(Fq)的计算是一个纯粹的数学问题。目前有两种方法可以采用:(1)随机选取一条定义于有限域 的椭圆曲线,直接计算该曲线的阶,使其满足qF#E(Fq)中包含有大素数因

11、子。在这方面,R. School 做了开创性的工作,提出了著名的School 算法,后经 Atkin 和 Elkies 的改进,提出了 SEA(School Elkies Atkin)算法。后来,Morain,Lercier 等人又对它作了一些优化,如今 SEA 算法已成为计算椭圆曲线阶的有效算法。另外,Satoh 也提出了比较有效的算法及目前对于二进制域效率较高的 Satoh-FGH 算法。(2)仅限于有限域为 且它要求所定义的 有限域中的 m 能分解为 m=de,其2m2m中 d 为一个小整数,通过计算子域 上的#E( ),从而计算出 #E( )。这种方法2dFd 2deF简单易实现,但是

12、适用范围较小,不能计算出任意 m 或固定 m 的#E( )。d2.4 椭圆曲线的快速算法在椭圆曲线密码体制应用中的大量运算是倍乘(数乘) ,就是一串点的加法运算,即计算 k*P=P+P+P 共有 k 个 P 相加。椭圆曲线密码快速实现的关键就是快速实现 kP 的运算(包括算法优化和程序优化、软件实现和硬件实现) 。其中 kP 的运算主要基于两方面的运算:基域上域元素和曲线上点的运算。这些运算与我们所选取的有限域、采用的坐标系、基域中的元素表示方法、选取怎样的椭圆曲线和计算 kP 的方法有关。因为同一基域中的元素表示方法不一样(如 中有多项式和通项表示法) ;不同的坐标系(如仿射坐标和2mF射影

13、坐标)下,都会影响 kP 的计算量。对于一些特殊的曲线,如 Koblitz curves,已经有了较好的算法,但是对一般随机的椭圆曲线,如何快速计算 kP 仍是一个需要研究的问题。3 椭圆曲线参数快速生成算法3.1 产生椭圆曲线的传统算法通常情况下,从特定秩生成曲线组中随机选取一个作为椭圆曲线。下面的算法生成基于 GF(p)域的椭圆曲线参数,而且能够生成足够的信息能使其他人验证这样的曲线的确是随机生成的。选定如下参数 4:素数模 p;基点秩的上下界 和 ;输出长为 B 比特的 Hash 函数 H,其中maxrin;以及 Hash 函数的输入比特长 L, 。min21()logBr 还要使用如下

14、的符号:v = ;s = ;w = v -Bs -12lp(1)vB算法输入:p, , , (用于测试的除数的上限,满足 ) ;minraxmal maxlinr算法输出:比特串 X;EC 参数 q=p,a,b,r,G(1) 选择长为 L 的比特串 X;(2) 计算 h=H(X);(3) 选取 h 的最右面的 w 比特串计为 ;0W(4) 将字符串 X 转换为整数 z;(5) I 从 1 到 s,作如下循环(5.1)将整数(z+i)mod( )转化为长为 L 的比特串 ;2L iX(5.2)计算 H( );ii(6) 将所有的 以如下形式合并成 W:i| 代表连接01|.sW(7) 将长对为

15、v-1 的字符串 W 转换为整数 c;(8) 如果 c=0 或 4c+27 0(mod p)则返回到(1) ;(9) 选择整数 a,b GF(p),满足 ;(最简单的方式是选择23(mod)paa=c,b=c 。但是,出于性能的考虑,我们要选择其他的 a,b)(10) 给定基于 GF(p)的椭圆曲线 E: ,计算它的秩 u;23xby(11) 测试 u 的素性概率;(12) 如果 u 几乎不可能是素数,则返回(1) ;否则通过 ? 的输出中含有 k,r ;(13) 生成秩为 r 的曲线 E 上的点 G;(14) 输出 X,a,b,r,G。3.2 改进的 a、b 生成算法为了计算(9)中 ,已经

16、有很多中算法(例如,进化算法) ,但是生23(mod)cp成参数 a,b 仍然需要花费很长时间。根据 IEEE 1363 中介绍的方法生成椭圆曲线参数的时间大约为 15s,所以,生成一个椭圆曲线需要的时间仍然是一个有待解决的问题。为了解决椭圆曲线生成时间上的问题,本文将介绍一种新的方案,来解决计算上的问题。这种方法是基于雅可比符号(Jacobi Symbol)和二次剩23(mod)cp余(Quadratic Residue)理论。算法步骤如下:(1) 选定一个迭代数;(2) 随机生成参数 c(长度为 256 比特) ;(3) 生成向量 M(a,b,f) ,其中 a(长度为 256 比特)是随机

17、的,b=0,f 为一个大整数;(4) 处理向量 M 的过程:(4.1)计算 (mod p) ;1(4.2)计算( (mod p) )mod p = h;c3(4.3)计算 Jacobi 符号 ;()h(4.4)如果 1,则 ;()p2modpb(4.5)如果 1,则随机生成新的 a(长度为 256 比特) ,返回(4.1) ;()h(5) 计算 f = ;如果 f = 0,则向量(a,b,c )就是生23od()cp成的结果;(6) 返回(4) ,知道向量 M 中所有的 EC 都处理完;(7) 随机生成新的 c(长度为 256 比特) ,返回(3) 。以上算法通过 Matlab 运算,有如下结

18、果:向量中 EC 数目 生成所有 EC 的时间(s)生成每个 EC 的时间(s)1000 67 0.0672000 128 0.0645000 309 0.0618有了这种算法,可以加快 a、b 的生成,再结合参考文献 4 中介绍的其他参数的生成算法,就可以快速生成安全而且有效的椭圆曲线,并且可以把它用于生成抗攻击的密码系统中。4 结束语椭圆曲线密码是一种能适应未来通信技术和信息安全技术发展的新型密码体制,它在运算速度和存储空间方面占有很大的优势,目前它已成为公钥密码体制中的研究热点。实际上椭圆曲线密码算法还有几个地方有待完算,今后主要的研究方向有 3 个方面 5:(1) 如何快速选取安全性高

19、的椭圆曲线。(2) 如何有效计算椭圆曲线的阶。因为选取安全椭圆曲线的核心步骤是对椭圆曲线阶的计算,对计算椭圆曲线阶的有效算法的研究也是实现安全椭圆曲线密码体制的一个极其重要的环节。(3) 在椭圆曲线密码体制中,椭圆曲线群上点的倍乘占了整个运算的很大比例,它的效率关系到整个体制的执行效率。对椭圆曲线中的 kP 倍乘计算仍需研究一种高效快速的方法。参考文献1 李学俊,敬忠良等. 基于椭圆曲线离散对数问题的公钥密码. 计算机工程与应用. 2002,38(6):20-22.2 斐定一,祝跃飞. 算法数论. 北京:科学出版社,2002.3 Lopez J, Dahab R. An Overview of Elliptic Curve Cryptography. Technical Report, Institute of Computing, State University of Campinas, Brazil, 2000-05-22.4 IEEE Std 1363-2000: IEEE Standard Specifications for Public-Key Cryptography. 2000.1.30. P146-147.5 张雁,林英,郝林. 椭圆曲线公钥密码体制的研究热点综述. 计算机工程 第 30 卷 第 3 期 2004.2.

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报