资源预览内容
第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
第9页 / 共46页
第10页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
摘 要随着计算机和互联网技术的不断发展、电子商务的广泛应用,信息安全问题变得越来越重要,而网络信息安全的核心在于密码技术。椭圆曲线密码体制(ECC)是一种公钥密码体制,相对于以往基于有限域上离散对数问题或大整数分解问题的传统公钥算法,椭圆曲线密码算法具有安全性高、速度快、密钥短、实现时所需占用资源少的特点。作为迄今为止每比特具有最高安全强度的密码系统,由于其算法的高效安全性,使其成为优于RSA的PKI体系的核心公钥算法,其224位的ECC安全性相当于2048位的RSA安全性,所以ECC技术在信息安全领域中的应用将会越来越广泛。本设计正是基于这样的背景,在Microsoft Visual Studio6.0下的Microsoft Visual C+6.0编译环境中利用标准C语言并且借助密码学领域的开放源代码库OpenSSL设计与实现国家密码管理局21号公告(SM2椭圆曲线公钥密码)中的数字签名算法。关键字: 椭圆曲线, SM2, Microsoft Visual C+6.0, C语言, OpenSSL, 数字签名ABSTRACTWith the development and application of information technology and the electronic commerce,the problem of information security becomes more and more important,but the network information security core lies in the password technology.Elliptic Curve Cryptography(ECC) systems which is a public-key systems is characterized by higher safety property,faster speed,shorter key lengths and fewer computational resources for implementation thanother former traditional public-key algorithms based on the discrete logarithm infinite fields or the great integer factorization problem.So far,the ECC provides the highest strength-per-bit of any cryptosystem known.Because of its high efficiency of the algorithm,some people think it is the best public-key cryptosystem that is suitable for current use in future.The security of 224-bit ECC is equal to 2048-bit RSA.So the application of ECC technology in the field of information security will be more and more widely.Based on this background,This design will use C language with open source library OpenSSL of the field of cryptography to design and realize a complete system of Digital Signature of Chinese SM2 Elliptic curve public key crypto system.KEY WORD:Elliptic curve, SM2, Microsoft Visual C+6.0, C language, OpenSSL, Digital Signature目 录摘 要IABSTRACTII目 录III第一章 引言1第二章 数字签名的概念2第三章 椭圆曲线概述83.1 有限域83.2 射影平面和无穷远点93.3 椭圆曲线103.4 密码学中的椭圆曲线13第四章 椭圆曲线数字签名算法实现154.1 椭圆曲线的参数选取154.2 杂凑函数174.3 数字签名算法流程184.4 开放源代码工具OpenSSL简介224.5 基于OpenSSL的椭圆曲线数字签名算法实现26第五章 数字签名结果验证29第六章 结论和感想31致谢语32参考文献33附录A34附录B36英文文献39第一章 引言 随着计算机技术和网络技术的高速发展和广泛应用,社会的信息化程度越来越高,大量的敏感信息通过公共通信设施和网络系统进行交换,尤其是互联网、电子商务和电子政务的迅猛发展,国家、企业和个人的信息都要求严格保密,如:军事机密、企业财务、银行密码等。然而,网络很容易遭受攻击,攻击者可以窃取网络信息,企图偷窥机密或是篡改和破坏信息从而使自身获利,这对网络的发展和用户的利益构成了严重的威胁。因此,如何保护通信过程中信息的安全使之不被窃取、篡改和破坏,已经成为当今备受关注的重大问题。在这样的背景下,网络安全技术应运而生,形成了密码技术、系统入侵检测技术和计算机病毒检测消除技术等多种安全防护技术门类。其中,密码技术在信息保护方面给人留下了深刻印象。说到密码技术,人们可能会马上想到加密技术,的确,经过加密处理的信息在网络上传输能够使攻击者难以窃取通信双方的原文,从而避免了机密信息的泄漏。然而,接收方获取的信息有可能被攻击者恶意篡改或破坏,如果不对收到的信息加以辨别将有可能会给通信双方带来巨大的损失。那么接收方要如何确认收到的信息的确是来自和他合作的对象呢?数字签名技术就是能解决这类问题的关键技术。第二章 数字签名的概念数字签名技术(Digital Signatures)是纸质手写签名的电子版本,是一种能够保证交易者身份的确定性、数据交换的完整性、发送信息的不可否认性的有效的解决方案,是电子商务安全性的重要部分;数字签名技术是密码技术的一个分支,要想充分了解数字签名的原理必须先了解密码学相关概念。密码体制可分为对称密码体制和公钥密码体制两种。对称密码的历史可以追溯到几千年前,它是一种加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来的加密技术。在大多数的对称算法中,加密密钥和解密密钥是相同的。所以对称密码算法也称为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,必须商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。 对称系统通常非常快速,却易受攻击,因为用于加密的密钥必须与需要对消息进行解密的所有人一起共享。其优缺点如下:优点:(1) 算法实现的效率高、速度快。(2) 满足大量信息的加密要求。缺点:(1) 密钥量问题。在单钥密码系统中,每一对通信者就需要一对密钥,当用 户增加时,必然会带来密钥量的成倍增长,因此在网络通信中,大量密 钥的产生、存放和分配将是一个难以解决的问题。(2) 密钥分发问题。单钥密码系统中,加密的安全性完全依赖于对密钥的保 护,但是由于通信双方使用的是相同的密钥,人们又不得不相互交流密 钥,所以为了保证安全,人们必须使用一些另外的安全通道来分发密钥, 例如用专门的信使来传送密钥。这种做法的代价是相当大的,甚至可以 说是非常不现实的,尤其在计算机网络环境下,人们使用网络传送加密 的档,却需要另外的安全通道来分发密钥。所以传统的对称密码算法 急需改进。虽然对称算法的缺点和优点一样明显,但作为对称算法的经典,由IBM公司开发、并被美国国家标准局于1977年2月采纳作为“非密级”应用标准的DES算法不仅在历史上曾发挥重要作用,到目前为止仍是大量信息加密的首选方案。那么对称算法适用于数字签名吗?答案是不适用,因为有两个(或更多个)实体共享密钥,这样一来利用密钥作用于消息产生的数字签名,无法区分出共享密钥的不同实体的行为,也就是对称密码体系不能实现用于不可否认服务的数字签名。公钥密码也称为非对称密码,它是相对于对称密码而言的,它突破性地解决了对称密码面临的三个难题:密钥分发、密钥管理和提供不可否认性。公钥密码体系与对称密码体系最大的不同是采用两个不相同但有着紧密联系的密钥进行加密和解密,其中一个密钥是公开的称为公钥,另一个密钥是保密的称为私钥,这两个密钥也称为密钥对。公钥密码体系的工作模式有两种:(1) 发送实体用公钥加密得到密文;接收实体用私钥把密文解密成明文。只有与此公钥相对应的私钥才能够将该公钥产生的密文恢复成明文。(2) 发送实体用私钥加密得到密文;接收实体用公钥把密文解密成明文。只有与此私钥相对应的公钥才能够将该私钥产生的密文恢复成明文。这种公私钥的关系是基于一种单向陷门函数。单向陷门函数是有一个陷门的一类特殊单向函数。它首先是一个单向函数,在一个方向上易于计算而反方向却难于计算。但是,如果知道那个秘密陷门,则也能很容易在另一个方向计算这个函数。即已知x,很容易计算出f(x),而已知f(x),却很难出计算x。然而,一旦给出f(x)和一些秘密信息k,就很容易计算出x。在公钥密码体系中,计算f(x)相当于加密,陷门k相当于私钥,而利用陷门y求f(x)中的x则相当于解密。在公钥密码体系中,要实现这样一种单向陷门函数,密钥对的选择必须保证从公钥求出私钥等价于要求解一个困难的计算问题。目前构成常用公钥密码基础的困难问题有如下3种:(1) 大整数的因子分解问题;(2) 离散对数问题;(3) 椭圆曲线离散对数问题;有了适合于公钥密码体系用来构造公私钥关系的数学难题,公钥密码的应用才能成为现实。对于公钥体系的工作模式(1),以公钥作为加密密钥,以用户私钥作为解密密钥,可实现多个用户加密的消息只能由一个用户解密,适用于加密,因为私钥的保密性确保了只有一个实体能进行解密;对于公钥体系的工作模式(2),以私钥作为加密密钥,以公钥作为解密密钥,则可实现由一个用户加密的消息可以由多个用户解密,适用于数字签名,因为同一个实体产生的多个签名应该能被不同的接收实体验证,这也正是数字签名的基本要求。 本设计研究的是数字签名,以下就不对公钥密码的加密体系进行介绍了。数字签名技术是不对称加密算法的典型应用。数字签名的应用过程是:数据源发送方使用自己的私钥对数据和其他与数据内容有关的信息进行加密处理,完成对数据的合法“签名”,数据接收方利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据来源和完整性的认证,以确认签名的合法性。最早的数字签名方案有RSA数字签名方案、DSA数字签名方案和ECDSA数字签名方案。此三种签名方案于2000年2月15日被美国国家标准技术研究所(NIST)在新标准法案FIPSl86-2中指定为美国的数字签名标准,同时他们也是目前世界上普遍使用的数字签名方案,都已经形成商业的签名软件供商家和个人使用。其中RSA数字签名方案是由RSA公司
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号