利用RSA算法实现数字签名毕业论文.doc
《利用RSA算法实现数字签名毕业论文.doc》由会员分享,可在线阅读,更多相关《利用RSA算法实现数字签名毕业论文.doc(36页珍藏版)》请在三一办公上搜索。
1、摘 要当今世界信息技术获得了前所未有的大发展,因而信息的安全性必将变得越来越受到人们的重视。而数字签名技术是目前网络安全领域的研究热门方向。RSA算法是第一个能同时用于加密和数字签名的算法,易于应用和理解。RSA从提出一直到现在,它经历了各种考验。它通过认证技术来分辨真与假。RSA数字签名体制使用地是RSA公开密钥算法进行得数字签名。本文主要是对RSA公开密钥密码体制的研究,并在此基础上实现了RSA的数字签名的体制。本文的主要内容包括:关键词: 加密 解密 RSA算法 RSA数字签名 AbstractNow the information of the world is developing
2、fastly.So the security of the information is becoming more and more importantly. Digital signature filed will become hot spots in future. It is the first algorithm for both data encryption and digital signature.It can be understood easily by people.RSA has undergone various tests when it is put out.
3、RSA as the public key cryptosystem representative approved data integrity is a kind of information technology. It is through the authentication techniques to distinguish true and false. RSA digital signature system using a RSA public key algorithm for digital signature.The text is about the study of
4、 RSA public key encryption,based on this generating RSA digital signature.including:,Firstly on the basis of previous research, a system based on elliptical curve proxy signature, The advantage of public key encryption and the security of RSA digital signature(attack )Secondly,it analyzes the princi
5、ple of RSA,including how to generat a prime number,how to generat the secret keys and how to encryption as well as decrypt, Thirdly,it states the principle of MD5 in detail.Fourthly, it states design and realization of RSA digital signature in detail. The main modules includes producing RSA secret k
6、eys, implementation of RSA encryption algorithm and decryption algorithm, producing message digest and realizing digital signature and verification by RSA.Key words: RSA algorithm; encryption; decryption; RSA digital signature目录摘 要IAbstractII1绪论11.1 研究背景21.2 研究现状32密码学基本概念42.1 公钥密码基本概念42.1.1 公钥密码原理42
7、.1.2公钥密码的理论基础52.2 对称加密体制53数字签名的基本概念和理论73.1数字签名概念73.2 数字签名理论73.3数字签名过程73.3.1.发送方签名过程83.3.2.接收方验证过程94数字签名常见的算法及其数字签名114.1 DSA数字签名算法114.1.1 DSA数字签名实现的三个步骤114.1.2 DSA的安全性124.2 椭圆曲线代理签名体制124.2.1椭圆曲线数字签名ECDSA124.2.2椭圆曲线数字签名的安全性135 RSA算法及其数字签名145.1 RSA简述145.2 RSA加密的可行性155.3 RSA算法的介绍155.3.1 RSA中素数的选取165.3.2
8、 RSA用到的公式和定理165.3.3 RSA安全性的分析165.3.4 RSA的攻击175.3.5 RSA的缺点185.3.6 RSA的优点195.4 RSA数字签名195.4.1 RSA数字签名的过程195.4.2 RSA数字签名算法实现步骤195.4.3 散列函数的原理205.4.4 MD5算法的简介216 RSA数字签名设计与实现236.1 开发环境的介绍236.1.1 C#语言概述236.1.2 C#语言特点236.2.NET类的介绍246.3 RSA数字签名所需实现的功能256.4 本软件的总体要求和设计256.5主要实现代码及软件运行结果26结论30致谢32参考文献33附录134
9、1绪论1.1 研究背景当今社会是信息化社会,电子计算机和通信网络己经广泛的应用于社会的各个领域,以此为基础建立起来的各种信息系统,给人们的生活、工作带来了巨大变革。大型信息系统将众多的计算机和只能化设备连在一个四通八达的通信网络中,共享丰富的数据库信息和计算机资源,储存大量的数据文件,完成异地之间的数据交换与通信。信息系统的应用,加速了社会自动化的进程,减轻了日常繁杂的重复劳动,同时也提高了生产率,创造了经济效益。信息时代虽然给我们带来了无限商机与方便,但同时也充斥着隐患与危险。由于网络很容易受到攻击,导致机密信息的泄漏,引起重大损失。由于信息技术已经成为综合国力的一个重要组成部分,因此信息安
10、全己成为保证国民经济信息化建设健康有序发展的保障。当今网络社会技术众多,目前在电子商务、电子政务、电子邮件系统、电子银行等方面必备的关键技术就是数字签名。数字签名又称为数字签字,电子签章等。“数字签名”用来保证信息传输过程中信息的完整和提供信息发送者的身份认证和不可抵赖性,数字签名技术的实现基础是公开密钥加密技术,是用某人的私钥加密的消息摘要用于确认消息的来源和内容。为保证数据在网络传递中的安全性和完整性从技术上,主要考虑一下情况:(1)如果需要使用一种方法验证数据在传输过程中是否被修改,可以使用哈希值(2)如果需要证明实体知道机密但不来回发送机密,或者想使用简单的哈希值以防止在传输过程中被截
11、获,可以使用加密的哈希值(3)如果要隐藏通过不安全的媒介发送的数据或者永久保留数据,可以使用加密(4)如果要验证声称是公钥所有者的人员的身份,可以使用证书(5)如果双方事先共享密钥,可以使用对称加密以提高速度(6)如果想通过不安全的媒介安全的交换数据可以使用非对称加密(7)如果要进行身份验证和实现不可否认性,可以使用数字签名(8)如果为了防范穷举搜素而进行的攻击,可以使用加密技术产生的随机数1RSA公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也十分流行。随着越来越多的商业应用和标准化工作,RSA已经成为最具代表性的公钥加密技术。VISA、MasterCard、
12、IBM、Microsoft等公司协力制定的安全电子交易标准(Secure Electronic Transactions,SET)就采用了标准RSA算法,这使得RSA在我们的生活中几乎无处不在。网上交易加密连接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电话和存储卡的验证功能芯片等,大多数使用RSA技术。1.2 研究现状实现数字签名的算法有很多,目前数字签名采用较多的是公钥加密技术,如DSA (Digital Signature Algorithm), x.509, POP (Pretty Good Privacy)。1994年美国标准与技术协会公布了数字签名标准(DSS)而使公钥加
13、密技术广泛应用。RSA已经成为最具代表性的公钥加密技术。VISA、MasterCard、IBM、Microsoft等公司协力制定的安全电子交易标准(Secure Electronic Transactions,SET)就采用了标准RSA算法,这使得RSA在我们的生活中几乎无处不在。网上交易加密连接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电话和存储卡的验证功能芯片等,大多数使用RSA技术。(1)研究主要成果RSA作为最重要的公开密钥算法,在各领域的应用数不胜数。RSA在硬件方面,以技术成熟的IC应用于各种消费类电子产品。RSA在软件方面的应用,主要集中在Internet上。加密连接
14、、数字签名和数字证书的核心算法广泛使用RSA。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA目前是最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA的缺点主要有:(1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。(2)分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级。(2)发展趋势当今社会
15、是信息化社会,电子计算机和通信网络己经广泛的应用于社会的各个领域,以此为基础建立起来的各种信息系统,给人们的生活、工作带来了巨大变革。信息系统的应用,加速了社会自动化的进程,减轻了日常繁杂的重复劳动,同时也提高了生产率,创造了经济效益。信息安全技术在信息化迅速发展的今天己进入了高速发展的新时期,形成了密码技术、可信计算技术、电磁辐射泄露防护技术、系统入侵检测技术和计算机病毒检测消除技术等多个安全防护技术门类。(3)存在问题目前普遍采用的数字签名算法,都是基于下面三个数学难题的基础之上:(1)整数的因式分解(Integer Factorization)问题,如RSA算法。(2)离散对数(Disc
16、rete Logarithm)问题,如 ElGamal,DSA,Schnorr等算法;(3)椭圆曲线(Elliptic Curve)问题,如ECDSA算法。22密码学基本概念密码学包括两个方面:密码编码学和密码分析学。密码编码学就是研究对数据进行变换的原理、手段和方法的技术和科学。密码分析学是为了取得秘密的消息,而对密码系统及其流动数据进行分析,是对密码原理、手段和方法进行分析、攻击的技术和科学。密码学的理论基础是数学,其基本思想是隐藏、伪装信息,使未经授权者不能得到消息的真正含义。伪装(变换)之前的信息是原始信息,成为明文;伪装之后的消息,看起来是一串无意义的乱码,称为密文。把明文伪装成密文
17、的过程称为(encryption),该过程使用的数学变换就是加密算法。把密文还原成明文的过程称为解密(decryption),该过程使用的数学变换,通常是加密时数学变换的逆变换,就是解密算法。加密与解密通常需要参数控制,我们把该参数称为密钥,有时也称为密码。加密时使用的为加密密码(加密密钥),解密时使用的为解密密码(解密密钥)。3加密密钥与解密密钥可能相同也可能不同。相同时称为对称型或单钥的,不相同时称为非对成型或双钥的。那么一个密码系统或称其为密码体制,是由明文空间、密文空间、密钥空间、加密算法与解密算法五个部分组成。明文、密文、密钥空间分别表示全体明文、全体密文、全体密钥的集合;加密与解密
18、算法通常是一些公式、法则或程序,规定了明文与密文之间的数学变换规则。下面用字母分别表示这个概念,密钥K=,Ke表示加密密钥,Kd表示解密密钥,设明文M,密文C,加密算法E,解密算法D。把明文加密为密文: C=E(M,Ke) 密文解密为明文:M=D(C,Kd)=D(E(M,Ke),Kd)。上述的讲解可用下图明文明文空间加密密钥密钥空间解密密钥明文明文空间明文明文空间加密算法解密算法Interner(不安全信道)传输的内容密码分析攻击者目的:求明文与密码图2-1加密过程与密码分析2.1 公钥密码基本概念公钥密码与以前所有的密码方法都大相径庭:一是以前的密码算法都基于代换与置换操作,而公钥密码使用数
19、学 数进行变换;二是公钥密码体制使用非对称的方式,使用两个密钥(加密密钥与解密密钥),而传统密码算法仅仅使用一个密钥。公钥密码体制的提出首先是为了解决利用传统密码体制进行密钥分发时遇到的问题,数字签名也是其重要应用之一。3从1976年起,学者们提出了许多种公钥加密方法,它们的安全性都是基于复杂的数学难题。根据所基于的数学难题来分类,有以下三类系统目前被认为是安全和有效的:(1) 基于大整数因子分解的:RSA和Rabin-Williams。(2) 基于离散对数问题的:DSA和EIGamal。(3) 基于椭圆曲线离散对数问题的:椭圆曲线密码系统。公开密钥加密算法与对称密钥加密算法相比来说,安全性能
20、更好,密钥管理、分配都容易实现,其中有些加密算法还能应用在数字签名上,但是它们相对于对称密钥加密算法运行速度要慢得多,所以不能加密大量的数据。2.1.1 公钥密码原理公开密钥密码常用的、成熟的公钥算法是RSA。它与传统的对称密钥算法有本质的区别,对称密钥算法常用的是DES算法,加/解密时用的是同一个密钥。而公钥算法利用的是非对称的密钥,即利用两个足够大的质数与被加密原文相乘生产的积来加/解密。这两个质数无论是用哪一个与被加密的原文相乘(模乘),即对原文件加密,均可由另一个质数再相乘来进行解密。但是,若想用这个乘积来求出另一个质数,就要进行对大数分解质因子,分解一个大数的质因子是十分困难的,若选
21、用的质数足够大,这种求解几乎是不可能的。公、密钥对的用法是,当发方向收方通信时发方用收方的公钥对原文进行加密,收方收到发方的密文后,用自己的私钥进行解密,其中他人是无法解密的,因为他人不拥有自己的私钥,这就是用公钥加密,私钥解密用于通信;而用私钥加密文件公钥解密则是用于签名,即发方向收方签发文件时,发方用自己的私钥加密文件传送给收方,收方用发方的公钥进行解密。但是,在实际应用操作中发出的文件签名并非是对原文本身进行加密,而是要对原文进行所谓的“哈希”(Hash)运算,即对原文作数字摘要。该密码算法也称单向散列运算,其运算结果称为哈希值,或称数字摘要,也有人将其称为“数字指纹”。哈希值有固定的长
22、度,运算是不可逆的,不同的明文其哈希值是不同的,而同样的明文其哈希值是相同并且是唯一的,原文的任何改动,其哈希值就要发生变化。数字签名是用私钥对数字摘要进行加密,用公钥进行解密和验证4公钥密码算法使用两个密钥,其中一个用于加密(加密密钥),另外一个用于解密(解密密钥)。公钥密码算法具有如下特征:加密密钥与解密密钥时本质上不通的,也就是说如果仅仅知道密码算法和加密密钥,而要确定解密密钥,在计算上是不可行的;大多数公钥密码算法的加密密钥与解密密钥具有互换的性质。如RSA算法,密钥对中的一个用于加密,另一个用于解密。2.1.2公钥密码的理论基础公钥密码体制的安全性主要取决于构造公钥算法所依赖的数学问
23、题,通常要求加密函数具有单向性,即求逆很困难。因此,公钥密码的理论基础是陷门单向函数。 1 单向函数(1)对于所有属于f定义域的任一x,可以很容易算出f(x)=y.(2)对于几乎所有属于f值域的任一y,则在计算上不可能求出x,使得y=f(x).2 单向陷门函数设f是一个函数,t是与f有关的一个参数,对于任一给定的x。计算y,使得y=f(x)是容易的。如果当不知道参数t是,计算的f逆函数是难解的,但但知道参数t时,计算f的逆函数是容易的,则称f是一个单向陷门函数,参数称为陷门。52.2 对称加密体制 对称加密算法,又称私钥加密算法,就是加密密钥能够从解密密钥中推出来,反过来也成立,在大多数对称算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 RSA 算法 实现 数字签名 毕业论文
链接地址:https://www.31ppt.com/p-3936038.html