搜档网
当前位置:搜档网 › rsa数字签名完成版1

rsa数字签名完成版1

rsa数字签名完成版1
rsa数字签名完成版1

信息安全课程

期末论文

题目RSA数字签名的设计和实现

学院数学计算机学院

专业软件工程

年级2011级

学生学号12011242707

学生姓名苏发瑞

目录

第1章前言 (1)

1.1主要研究内容.................................................................... 错误!未定义书签。

1.2研究的目的和意义 ........................................................... 错误!未定义书签。

1.3关于RSA ........................................................................... 错误!未定义书签。第2章数字签名的概念. (3)

2.1数字签名的定义 (3)

2.2数字签名的原理 (3)

第3章RSA数字签名系统的实现 (5)

2.1RSA数字签名所需实现的功能 ....................................... 错误!未定义书签。

2.2主要模块流程图 (5)

第4章RSA数字签名的前景展望 (10)

结束语 (10)

参考文献 (10)

摘要

计算机和网络技术的发展将人类带入信息化社会,随之而来的是倍受关注的信息安全问题。现代密码学已成为信息安全技术的核心,数字签名是现代密码学主要研究的内容之一。数字签名技术在身份识别和认证、数据完整性、抗抵赖等方面具有其它技术所无法替代的作用,它在电子商务和电子政务等领域有着极广泛的应用。

本论文首先探讨了数字签名的研究背景和意义。接着系统研究了数字签名的原理及其相关技术,包括密码技术、数字签名算法等。论文对RSA算法进行了详细的描述,并总结算法的优点和不足。

RSA算法是一种公钥密码算法。实现RSA算法包括生成RSA密钥,加密和解密数据。RSA数字签名算法利川

RSA算法实现数字签名。本文详述了RSA算法的基本原理、RSA算法的实现以及如何利用RSA实现数字签名。

关键词:数字签名密码学 RSA算法公开密钥私人密钥

A digital Signature S oftware’s Design and Implementation

ABSTRACT

Computer and network technology bring human beings into the information society, followed by a closely watched issue of information security. Modern cryptography, information security technology has become the core of modern cryptography, digital signature is the main component of the study. Digital Signature Technology in identification and authentication, data integrity, repudiation and so can not be replaced with other technical role, its areas of e-commerce and e-government has a very wide range of applications.

The paper first discusses the digital signature of the research background and significance. Then the digital signature system theory and its related technologies,

including cryptography, digital signature algorithm and digital certificates. Through the analysis of classical digital signature algorithm comparison, advantages and disadvantages of algorithm.

RSA algorithm is a kind of public key cryptographic algorithms.Realization of RSA algorithm including generating RSA key, to encrypt and decrypt data.Lichuan RSA digital signature algorithm.

RSA algorithm implementation of digital signature.This paper described the basic principle of RSA algorithm, realization of RSA algorithm and how to use the RSA digital signature.

KEY WORDS : virtual auditory, HRTF, neural network,Public key ,private key

RSA数字签名的研究

第1章前言

1.1主要研究内容

数字签名(Digital Signature)技术是非对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。

1.2 研究的目的和意义

随着信息技术和计算机网络技术的发展,其应用涉及到政府、军事、文教、商业、金融等诸多领域。如商业经济信息系统、政府机关信息系统、银行业务系统、证券业务系统、科研数据传输等,这些系统都涉及到机密信息的传输与存储。信息时代虽然带给我们无限的商机与方便,但也充斥着隐患与危险。由于网络容易受到攻击,导致机密信息的泄密,轻则引发企业、部门工作陷于瘫痪而造成巨大的经济损失,重则危及国家、军事安全和社会稳定。所以网络信息安全已成为保证国民经济信息化建设健康发展的基础,直接关系到国家的安全,其影响重大。如何保证机密信息不泄漏,鉴别信息来源的真实性,确保信息的完整性和不可抵赖性,就是网络信息安全研究需要解决的问题。网络安全的目标应当满足:身份真实性、信息机密性、信息完整性、服务可用性、不可否认性、系统可控性、系统易用性、可审查性等等。数字签名技术是网络安全的重要手段之一,它可以保

证信息完整性、鉴别发送者的身份真实性与不可否认性;再运用数字签名本身的基础技术如加密技术可以保证信息机密性;如再运用审计日志的办法,可完成可审查性的功能。数字签名技术是当前网络安全领域的研究热点。数字签名的特性及可防御的网络威胁可以概括为:身份鉴别,可鉴别信源的真实性而防止冒充;数据完整性保护,抵御数据的篡改或重排;不可抵赖性,信源事后不可否认以防止其抵赖;一般还使用加密技术保护信息机密性,以防截听攻击;加入流水号等技术,可防重放攻击。所以,数字签名技术满足网络安全的目标即身份真实性、信息机密性、信息完整性、服务可用性、不可否认性、系统可控性、系统易用性、可审查性等等。特别是其身份鉴别、数据完整性和不可抵赖性在电子商务、电子政务等应用领域中有很重要的作用[1]。作为网络安全的关键性技术之一,数字签名在社会生活的各个领域也都具有十分广阔的应用前景。可见,数字签名技术十分具有研究价值,并具有重要的研究意义

1.3关于RSA

RSA是一种现在仍被视为安全的公钥密码算法,它建立在“两个大素数的乘积分解困难”这一基础上。RSA实现过程的理论描述如下:

(1)取两个素数p和q(保密)。

(2)计算n=pq(公开),(P(n)=(p-1)(q-1)(保密)。

(3)随机选取整数e,满足gcd(e, (p(n))=1(公开),

gcd(e,cp(n))表示取两数的最大公约数。

(4)计算d,满足de“1 (mod (p(n))(保密)。

利用RSA第一步需将明文数字化,并取长度小于Iog2n的数字做明文块。

加密运算:c = m}(mod n);解密运算:m=cd(mod n)其中m,c分别为明文和密文。为提高RSA的加密速度,选取e的值为65537,随机生成两个素数p和q。为提高RNA的解密速度,可在解密运算中利用中国剩余定理。这时,解密需要的p, q, d mod (p-1). d mod (q-1)及q-' mod p等值应该在生成密钥时计算出来。用中国剩余定理证明加密和解密的正确性可见参考文献〔4]0RSA数字签名是利用RSA算法对消息进行数字签名。由于RSA算法的速度较慢,并且RSA采用的模

幂计算会出现同构性从而使签名易被伪造,因此对消息签名前采用MD5计算消息摘要以弥补这一缺陷o MD5是一种单向散列函数,它将任意长度的消息压缩成128位的消息摘要。该函数执行速度快,具有较好单向性和抗碰撞性。

第2章数字签名的概念

2.1 数字签名的定义

公钥密码学最重要的应用之一就是数字签名。究竟什么是数字签名?数字签名是一个比特串或者比特串的ASCII表示,它把我们所考虑的电子数据“绑定”到一个密码私钥上。在进一步探讨数字签名之前,先谈一谈传统签名。我们对一些重要的文件进行签名,以确定它的有效性。例如,伪造传统的签名并不困难,这就使得数字签名与传统签名之间的重要差别更加突出:如果没有产生签名的私钥,要伪造由安全密码数字签名方案所产生的签名,在计算上是不可行的。传统的签名可以伪造,人们实际上也可以否认曾对一个议论中的文件签过名。但是否认一个数字签名却困难得多,这样做本质上涉及证明在签名生成以前私钥的安全性就受到危害。这是由于数字签名的生成需要使用私钥,而它对应的公钥则用以验证签名。因而数字签名的一个重要性质就非否认性,目前己经有一些方案,比如数字证书,把一个实体(个人,组织或系统)的身份同一个私钥和公钥对“绑定”在一起。这使得一个人很难否认数字签名。

数字签名同手写签名相比,具有巨大的优势。手写签名由于是模拟的,它因人而异,因此很容易被人仿造,当收发双方一旦出现争端,第三方不容易仲裁;而数字签名是由O和1组成的数字串,它因消息而异,而且当收发双方出现争端时,它能给仲裁者提供足够的证据来进行裁决,因此其安全性远远高于前者。此外,数字签名依托于计算机网络,因此其时效性远远大于前者。I50对数字签名是这样定义的:附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(如接收者)伪造。

2.2 数字签名的原理

数字签名是解决网络通信中特有安全问题的一种有效方法,它能够实现电子

文档的辨认和验证,在保证数据的完整性、私有性、不可抵赖性方面起着极其重要的作用。为了实现网络环境下的身份鉴别、数据完整性认证和抗否认的功能。

数字签名应满足以下要求:

签名者发出签名的消息后,就不能再否认自己所签发的消息;

接收者能够确认或证实签名者的签名,但不能否认;

任何人都不能伪造签名;

第三方可以确认收发双方之间的消息传送,但不能伪造这一过程,这样,当通信的双方关于签名的真伪发生争执时,可由第三方来解决双方的争执[。

对于一个典型的数字签名体系而言,它必须包含2个重要的组成部分:即签名算法和验证算法。为了满足上述4点要求,数字签名体系必须满足2条基本假设:

签名密钥是安全的,只有其拥有者才能使用;

使用签名密钥是产生数字签名的唯一途径。

数字签名的基础是密码技术,其大致思想就是在传输文件(明文或密文)的同时附带一个“签名”,这个“签名”是用此文件作者的密钥把文件或者由其产生的一段文档加密而得。其中采用的加密算法大致分为两类,对称加密和非对称加密。]对称加密中使用的一对密钥本质相同,所以通信前双方必须通过安全途径交换密钥,否则任何一方的密钥泄露,另外一方也毫无安全可言。同时,其密钥的管理随着用户的增加呈平方级数增长。而非对称加密使用的一对密钥(公共密钥和私有密钥)互不相同且不能由一个推出另外一个。用自己的私钥对信息的数字摘要签名,将其发送给对方时,如果对方能够使用发送者的公钥来验证信息,他就能确定信息是从你那里发来的。

数字签名原理图

密钥对中的私有密钥只有密钥对的所有者才知道,从而可以作为其所有者的

身份特征。公共密钥的管理可以由专门的仲裁中心负责,其复杂程度随用户的增加呈线性增长。鉴于以上两点,采用非对称加密算法签名更好,但其加密的运算复杂度和速度比对称加密慢得多,所以采用非对称加密算法签名常常是对文件由哈希函数所产生的数字摘要进行的。

第3章 RSA数字签名系统的实现

3.1 RSA数字签名所需实现的功能

1).生成RSA密钥:公钥ke=(e,n),私钥kd=(d,n);

选择两个大的素数p和q(典型情况下为1024位);

计算n = p×q和在z =(p -1)×(q-1);

选择一个与z互素的数,将它称为d;

找到e,使其满足e ×d = 1modz。

其中:明文消息P落在间隔0 ≤P

将明文划分成k位的块,这里k是满足2k

加密一个消息P,只要计算C =Pe mod n即可;

为了解密C,只要计算P =Cd mod n;

2).利用函数将明文消息转化为16进制数字即消息摘要MD;

3).数字签名的实现:用私钥d对消息摘要进行加密计算(RSA算法中的加密方法);

4).验证数字签名:用公钥e对数字签名进行解密计算(RSA算法中的解密方法),得到的解密结果与2步计算出的消息摘要比较,如果两个消息摘要一样则签名成功(即没有被篡改过)[3]。

3.2主要模块流程图

1). 密钥的理论产生模块流程图

密钥的生成图2).计算消息摘要的理论实现流程图

消息摘要的生成图

3). 数字签名的实现流程

数字签名的流程图4).验证数字签名流程

验证数字签名的流程图

第4章RSA数字签名的前景展望

基于RSA算法的数字签名在2000年的第六届国际密码学会议上被推荐为公钥密码系统的加密算法中的一种,则RSA数字签名有较好的发展空间。对于未来的加密、生成和验证数字签名的工具还需完善,只有用SSL(安全套接层)建立安全连接的Web浏览器,才会频繁使用数字签名,公司要对其员工在网络上的行为进行规范,就要建立广泛协作机制来支持数字签名,支持数字签名是Web发展的目标,确保数据保密性、数据完整性和不可否认性才能保证在线商业的安全交易[7]。

数字签名作为一项信息加密和安全传送技术,越来越得到人们的重视,其中它涉及到的关键技术也很多,并且很多新的协议,如网上交易安全协议SSL、SET 协议都会涉及到数字签名,因此数字签名将得到广泛的应用和人们的首选。[4]

结束语

本文讨论RSA算法的基本原理、基本实现以及如何利用RSA算法实现数字签名。RSA算法是一种安全技术,但是RSA算法的安全性只是一种计算安全性,绝不是无条件的安全性,这是由它的理论基础决定的。因此,在实现RSA算法的过程中,每一步都应尽量从安全性考虑,而该设计中它的安全性则依赖于素数的选择[5]。RSA数字签名提供了一个安全的确认发送方身份的方法,即数字签名的真实性得到了保证,防止了第三方的冒充和篡改,肯定了数字签名的真实性.

参考文献

[1] 殷美桂数字签名技术的应用[M] 电脑知识与技术,第五卷第36期2009-12

TP391

[2] 卢开澄.计算机密码学[M].北京:清华大学出版社,1998。

[3] 张焕国密码学引论[C] 武汉大学出版社

[4] 赖溪松计算机密码学及其应用[M].北京:国防工业出版社,2001。

[5] 顾婷婷,李涛,尹鹏王,等RSA数字签名的实现[J].四川大学大学学报:科学出版社,1999

[6] 卢开澄.计算机密码学北京:清华大学出版社,1998

[7] R: Rivest. RFC 1321:The MD5 1VIessage-Digest Algorithm, 1992-0N·t Security Technologies and Application 2001.7

相关主题