欢迎来到天天文库
浏览记录
ID:37343194
大小:491.49 KB
页数:32页
时间:2019-05-22
《椭圆曲线数字签名算法(ECDSA)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、摘要椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线对数字签名算法(DSA)的模拟。ECDSA于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。它在1998年既已为ISO所接受,并且包含它的其他一些标准亦在ISO的考虑之中。与普通的离散对数问题(discretelogarithmproblemDLP)和大数分解问题(integerfactorizationproblemIFP)不同,椭圆曲线离散对数问题(ellipticcurvediscretelogarithmproblemECDLP)没有亚指数时间的
2、解决方法。因此椭圆曲线密码的单位比特强度要高于其他公钥体制。本文将详细论述ANSIX9.62标准及其协议,安全,实现,互操作性方面的问题。1、介绍数字签名算法(DSA)在联邦信息处理标准FIPS中有详细论述,称为数字签名标准。它的安全性基于素域上的离散对数问题。椭圆曲线密码(ECC)由NealKoblitz和VictorMiller于1985年发明。它可以看作是椭圆曲线对先前基于离散对数问题(DLP)的密码系统的模拟,只是群元素由素域中的元素数换为有限域上的椭圆曲线上的点。椭圆曲线密码体制的安全性基于椭圆曲线离散对数问题(EC
3、DLP)的难解性。椭圆曲线离散对数问题远难于离散对数问题,椭圆曲线密码系统的单位比特强度要远高于传统的离散对数系统。因此在使用较短的密钥的情况下,ECC可以达到于DL系统相同的安全级别。这带来的好处就是计算参数更小,密钥更短,运算速度更快,签名也更加短小。因此椭圆曲线密码尤其适用于处理能力、存储空间、带宽及功耗受限的场合。ECDSA是椭圆曲线对DSA的模拟。ECDSA首先由Scott和Vanstone在1992年为了响应NIST对数字签名标准(DSS)的要求而提出。ECDSA于1998年作为ISO标准被采纳,在1999年作为A
4、NSI标准被采纳,并于2000年成为IEEE和FIPS标准。包含它的其他一些标准亦在ISO的考虑之中。本文中我们将介绍ANSIX9.62标准。也将介绍一些签名的基础知识以及协议、安全性、实现、互操作性方面的问题。本文其他部分的安排如下:第二节中我们将回顾数字签名方案和DSA,第三节和第四节将分别介绍有限域和椭圆曲线,第五节将讲述域参数的产生和参数有效性的验证,第六节将讲述密钥对的产生和公钥有效性的验证,第七节的内容是ECDSA的签名和验证过程。第八章论证ECDSA的安全性,第九节和第十节讲述的是ECDSA协议和实现方面的问题。
5、2、数字签名方案2.1背景知识数字签名的目的是提供一个手写签名的数字化副本。签名是一个依赖于签名者私钥和被签名一段消息的比特串。签名必须是可验证的,即如果对签名的真实性存在疑问,必须由一个中立的第三方作出公正的裁决,并且无需知道签名者的私钥。对签名的抵赖以及伪造签名应该能被发现。本文论述的是非对称摘要数字签名。“非对称”即用户的密钥对各不相同。用户的私钥用于签名,其他用户用他的公钥来检验签名的真实性。摘要是指对一段消息先用哈希函数进行摘要计算,尔后再对消息摘要进行签名,而不是消息。安全性:从理论上讲,在选择消息攻击下,数字签名
6、应该是不可伪造的。这一概念由Goldwasser,Micali和Rivest提出。更一般的讲就是攻击者获得用户A的摘要和签名,但他无法用其他的摘要来伪造这样一个签名。应用:数字签名方案用于以下一些用途:数据完整性(确保数据没有被未知或未授权的中间人改变),数据源认证(确保数据的来源是可信的),不可否认性(确保用户不能对自己的行为进行抵赖)。数字签名是密码学协议的基本组成部分,并且可以提供其他一些服务如:身份认证(FIPS196,ISO/IEC9798-3),密钥传递前的认证(ANSIX9.63,ISO/IEC11770-3),
7、经验证的密钥协商(ISO/IEC11770-3)。分类:数字签名方案可以根据所基于的数学难题进行分类:1、基于大整数分解(IF)的方案,安全性基于大整数分解的难度。实例有RSA方案和Rabin方案。2、基于离散对数(DL)的方案,安全性基于有限域上普通的离散对数问题。实例包ElGamal,Schnorr,DSA和Nyberg-Rueppel方案。3、基于椭圆曲线(EC)的方案,安全性基于椭圆曲线离散对数问题。2.2数字签名算法DSA于1991年由NIST提出,并在FIPS186中得到确认。DSA可以看作是ElGamal签名方案
8、的一个变形。其安全性建立在素域上的离散对数问题的困难性之上。DSA参数的产生:每个用户的安全参数产生如下:1、选择160比特的素数q和1024比特的素数p,满足。2、在有限域中寻找q阶循环子群的生成元g,具体方法是在选取元素h计算g=modp,当g≠1时即找到满足要求的g。3
此文档下载收益归作者所有