毕业设计(论文)基于RSA的数字签名的设计与实现.doc
《毕业设计(论文)基于RSA的数字签名的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于RSA的数字签名的设计与实现.doc(20页珍藏版)》请在三一办公上搜索。
1、基于RSA的数字签名的设计与实现摘 要随着计算机网络和信息技术的发展,信息安全在各领域发挥着越来越重要的作用,其中密码学已成为信息安全技术的核心,本文主要介绍了信息加密技术的应用。 RSA算法是目前公认的在理论和实际应用中最为成熟和完善的一种公钥密码体制,它是第一个既能用于数据加密也能用于数字签名的算法,是公钥密码体制的代表。数字签名是起到身份认证、核准数据完整性的一种信息安全技术。它通过认证技术来辨认真伪。RSA数字签名体制使用的是RSA公开密钥密码算法进行数字签名。本文主要研究的内容包括:第一,对RSA算法进行了全面系统的介绍,包括RSA算法的应用现状和原理大素数的产生、密钥对的产生、对明
2、文的加密运算和密文的解密运算,为具体实现打下了理论基础;第二,介绍了RSA数字签名的一些基本概念和数字签名的理论实现过程;第三,对MD5算法基本原理的介绍;第四,详述了RSA数字签名的设计与实现,主要实现的模块包括RSA密钥的产生(一对公钥和私钥),RSA加密算法和解密算法的实现,消息摘要MD的生成以及利用RSA算法实现数字签名和签名的验证;第五,对该系统进行了整体的测试和分析改进;第六,分析了RSA数字签名的安全性,指出了RSA数字签名的发展方向。关键字:RSA算法;加密; 解密;MD5算法;RSA数字签名 The Design and Realization of Digital Sign
3、ature Based on RSAAbstractWith the development of the computer network and information technology, information security plays more and more important role in every field. Cryptography has become the core of information security technology. This thesis mainly introduces the application of information
4、 encryption technology.RSA algorithm is considered as a public-key cryptosystem of the most fully developed and complete in theory and practice application at present. It is the first algorithm for both data encryption and digital signature. Digital signature is an information security technology us
5、ed to check authentication and data integrity. It identifies true or false by the authentication technology. RSA digital signature system carries on digital signature by using RSA public-key cipher algorithm.The main content of this thesis includes six parts. First of all, it is a comprehensive syst
6、ematic introduction about RSA algorithm including the present application situation and principle of RSA algorithm-producing big prime numbers and secret keys, the encryption arithmetic for information and the decryption for secret information, which establish the theory foundation for achieving con
7、crete; secondly, it introduces some basic conception of RSA digital signature and theory of digital signature realizing process; thirdly, it introduces the basic principle of MD5 algorithm; fourthly, it states design and realization of RSA digital signature in detail. The main modules includes produ
8、cing RSA secret keys (a public key and private key ), implementation of RSA encryption algorithm and decryption algorithm, producing message digest and realizing digital signature and verification by RSA; the fifth, it carries on testing entirely, analyzing and improving for this system;The sixth, i
9、t analyses the security of RSA digital signature and points out the development direction of RSA digital signature.Key words: RSA algorithm; encryption; decryption; MD5 algorithm; RSA digital signature目 录 论文总页数:23页1 引言11.1 研究背景11.2 本课题的研究意义22 RSA算法和RSA数字签名算法的基本概念和原理22.1 RSA算法的基本概念和原理22.1.1 RSA算法介绍与应
10、用现状22.1.2 RSA算法的实现原理32.2 RSA数字签名基本概念和RSA数字签名算法的实现原理32.2.1 RSA数字签名基本概念32.2.2 RSA数字签名算法的实现原理52.3 MD5算法的介绍63 RSA数字签名的设计与实现73.1 RSA数字签名的总体设计73.1.1 RSA数字签名所需实现的功能73.1.2 本软件的总体要求和设计73.2 各部分的设计实现73.2.1 密钥产生的实现73.2.2 产生消息摘要的设计实现103.2.3 数字签名的设计实现123.2.4 验证数字签名的设计与实现163.2.5 RSA数字签名的运行结果184 软件的整体测试和分析改进184.1软件
11、的整体测试184.2 性能分析与改进优化195 RSA数字签名的安全性分析与前景展望205.1 RSA数字签名的安全性分析205.2 RSA数字签名的前景展望20结 论21参考文献21致 谢22声 明231 引言1.1 研究背景随着电子信息技术的迅速发展,人类已步入信息社会。但是由于整个社会形成了一个巨大的计算机网络,任何一个计算机网络出现的安全问题,都会影响整个国家的网络安全,所以信息安全、计算机网络安全问题已引起了人类的高度重视。无论是在局域网还是在广域网中,都存在着自然和人为等诸多因素的脆弱性和潜在威胁。故此,网络的安全措施应是能全方位地针对各种不同的威胁和脆弱性,这样才能确保网络信息的
12、保密性、完整性和可用性。针对网络安全的威胁主要有三方面:(1)人为的无意失误;(2)人为的恶意攻击;(3)网络软件的漏洞和“后门”。现代密码学已成为信息安全技术的核心,密码学是以研究通信安全保密的学科,即研究对传输信息采用何种秘密的变换以防止第三者对信息的窃取。密码学包括两个分支:密码编码学和密码分析学。密码编码学主要研究对信息进行交换,以保护信息在信道的传递过程中不被他人窃取、解密和利用的方法,而密码分析学则与密码编码学相反,它主要研究如何分析和破译密码。两者之间既相互对立又相互促进。密码体制的分类有很多,其中一种是根据加密算法和解密算法所使用的密钥是否相同,可以将密码体制分为对称密钥密码体
13、制(单钥密码体制)和非对称密钥密码体制(公钥密码体制),这两种密码体制各有自己的长处和短处,因此现在采用了两种的混合体,如PGP。 公钥密码体制的特点是:接收方B产生一对密钥(PK和);公开,保密;从推出是很困难的;、双方通信时,通过任何途径取得的公钥,用的公钥加密信息,加密后的信息可通过任何不安全信道发送。收到密文信息后,用自己私钥解密恢复出明文。公钥密码体制已成为确保信息的安全性的关键技术。RSA公钥密码体制到目前为止还是一种被认可为安全的体制。RSA公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也十分流行。算法的名字以发明者的姓氏首字母命名:Ron Riv
14、est, Adi Shamir 和Leonard Adleman。虽然自1978年提出以来,RSA的安全性一直未能得到理论上的证明,但它经历了各种攻击,至今(2006年)未被完全攻破。随着越来越多的商业应用和标准化工作,RSA已经成为最具代表性的公钥加密技术。VISA、MasterCard、IBM、Microsoft等公司协力制定的安全电子交易标准(Secure Electronic Transactions,SET)就采用了标准RSA算法,这使得RSA在我们的生活中几乎无处不在。网上交易加密连接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电话和存储卡的验证功能芯片等,大多数使用RS
15、A技术。1.2 本课题的研究意义随着电子商务的发展,网络上资金的电子交换日益频繁,如何防止信息的伪造和欺骗成为非常重要的问题。在计算机通信系统中,维护电子文档的安全也成为至关重要和非常敏感的问题。为保护信息的安全,数字签名应运而生,它是现代密码学主要研究的内容之一。目前关于数字签名的研究主要集中点是基于公钥密码体制的数字签名。在公钥密码体制中,解密和加密密钥不同,解密和加密可分离,通信双方无须事先交换密钥就可建立起保密通信,因此它较好地解决了传统密码体制在网络通信中出现的问题。手写签名的每一项业务都是数字签名的潜在用场。数字签名可以提供数据完整性、真实性和不可否认性。因而当需要对某一实体进行认
16、证、传输具有有效性的密钥以及进行密钥分配时,便可以借助数字签名来完成任务。数字签名技术在身份识别和认证、数据完整性、抵赖等方面具有其它技术无法替代的作用,它在军事、电子商务和电子政务等领域有着极广泛的应用。而在公钥体制中,RSA是一个较为完善的公钥密码算法,不仅能够同时用于加密和数字签名,而且易于理解和操作,是被广泛研究的公钥密码算法。因此,基于RSA的数字签名具有较强的研究性和实际应用意义。2 RSA算法和RSA数字签名算法的基本概念和原理2.1 RSA算法的基本概念和原理2.1.1 RSA算法介绍与应用现状RSA算法是一种公钥密码算法,实现RSA算法包括生成RSA密钥,加密和解密数据。RS
17、A算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NP-C问题。RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits。RSA算法的时间复杂性取决于它所设计的几个基本运算的时间
18、复杂性。密钥生成过程时间主要是生成随机素数的时间及计算公钥和私钥的模乘法的时间。生成随机素数的时间在于完成对随机大数的Fermat测试的时间,Fermat测试的时间复杂度为O(log2n)3),n所测试的整数。模乘法的计算方法采取先计算两个数的乘积,再取模n,时间复杂性为O(log2n)2)。 RSA加密解密计算的时间主要是模幂运算的时间,即形式为xc mod n的函数的运算时间。模幂算法采取平方乘算法,设l是c的长度,则计算xc mod n至多需要2l次模乘法,因为 1log2n+1,所以模幂运算能在时间O(log2n)3)内完成。因此,RSA的加密和解密均可在多项式时间内完成。RSA公开密
19、钥加密算法自20世纪70年代提出以来,已经得到了广泛认可和应用。发展至今,电子安全领域的各方面已经形成了较为完备的国际规范。RSA作为最重要的公开密钥算法,在各领域的应用数不胜数。RSA在硬件方面,以技术成熟的IC应用于各种消费类电子产品。RSA在软件方面的应用,主要集中在Internet上、加密连接、数字签名和数字证书的核心算法广泛使用RSA。2.1.2 RSA算法的实现原理1) 随机选择两个不同的素数p和q,它们的宽度是密钥宽度的二分之一。2) 计算出p和q的乘积n 。3) 在2和(n)之间随机选择一个数e , e 必须和(n)互素,整数e用做加密密钥(其中(n)=(p-1)*(q-1))
20、。4) 从公式ed 1 mod (n)中求出解密密钥d 。5) 得公钥(e ,n ), 私钥 (d , n) 。6) 公开公钥,但不公开私钥。7) 将明文P (假设P是一个小于n的整数)加密为密文C,计算方法为:C = Pe mod n;8) 将密文C解密为明文P,计算方法为:P=Cd mod n;然而只根据n和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。2.2 RSA数字签名基本概念和RSA数字签名算法的实现原理2.2.1 RSA数字签名基本概念RSA数字签名体制使用了RSA公开密钥密码算法进行数字签名,鉴于RSA算法在实践中
21、已经被证明了的安全性,RSA数字签名体制在许多安全标准中得以广泛应用。ISO/IEC 9796和ANSI X9.30-199X 以及美国联邦信息处理标准FIPS 186-2已经将RSA作为推荐的数字签名标准算法之一。RSA数字签名算法,包括签名算法和验证签名算法。它是利用的RSA算法的加密和解密算法的原理进行的一种数字签名,实际上是通过一个哈希函数来实现的(本设计是通过的MD5算法)产生消息摘要MD来实现的所需加密的对象。数字签名的特点是它代表了消息的特征,消息如果发生改变,数字签名的值也将发生改变,不同的消息将得到不同的数字签名。安全的数字签名使接收方可以得到保证:消息确实来自发送方。因为签
22、名的私钥只有发送方自己保存,他人无法做一样的数字签名,如果第三方冒充发送方发出一个消息,而接收方在对数字签名进行解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,加密出来的数字签名和经过计算的数字签名必然是不相同的,这就提供了一个安全的确认发送方身份的方法,即数字签名的真实性得到了保证。数字签名通过认证技术来辨认真伪。认证技术主要包括数字签名认证、身份认证以及公开密钥证明等。数字签名认证机制提供了一种对数字签名进行鉴别的方法;身份认证机制提供了辨别和确认通信双方真实身份的方法;公开密钥证明机制则对密钥进行验证。网络时代中,人们验证数字签名来确定你正在和谁打交道,验证你的文件是否
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 RSA 数字签名 设计 实现
链接地址:https://www.31ppt.com/p-3979895.html