摘要
摘 要
当今世界信息技术获得了前所未有的大发展,因而信息的安全性必将变得越来越受
到人们的重视。而数字签名技术是目前网络安全领域的研究热门方向。
RSA算法是第一个能同时用于加密和数字签名的算法,易于应用和理解。RSA从提出
一直到现在,它经历了各种考验。它通过认证技术来分辨真与假。RSA数字签名体制使
用地是RSA公开密钥算法进行得数字签名。
本文主要是对RSA公开密钥密码体制的研究,并在此基础上实现了RSA的数字签名的
体制。本文的主要内容包括:
第一:在查阅大量文献资料的基础上,分析了密码学领域里,公钥加密体制的优点
所在及其RSA数字签名的安全性(攻击性);第二:简述了DSA以及椭圆曲线数字签名,
深入分析RSA算法的理论基础及算法原理,包括RSA大素数的产生,密钥对的产生,以
及对明文的加密和解密:第三:对MD5算法基本原理的详细介绍。第四:阐述了RSA数字
签名的设计与实现,其中包括RSA公钥和私钥的产生,RSA加密与解密算法的实现,消息
摘要的生成,还有就是利用RSA加密算法实现数字签名以及签名的验证。第五,简要陈
述数字签名的用途。
关键词: 加密 解密 RSA 算法 RSA 数字签名
I
摘要
Abstract
Now the information of the world is developing 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.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 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 principle 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 keys, 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
II
目录
目录
摘 要 ............................................................ I
Abstract ........................................................ II
1 绪论........................................................................................................................ 1
1.1 研究背景.................................................................................................... 2
1.2 研究现状.................................................................................................... 3
2 密码学基本概念.................................................................................................... 4
2.1 公钥密码基本概念.................................................................................... 5
2.1.1 公钥密码原理..................................................................................... 5
2.1.2 公钥密码的理论基础.......................................................................... 6
2.2 对称加密体制............................................................................................ 6
3 数字签名的基本概念和理论................................................................................ 8
3.1 数字签名概念............................................................................................. 8
3.2 数字签名理论............................................................................................ 8
3.3 数字签名过程............................................................................................. 9
3.3.1.发送方签名过程.................................................................................. 9
3.3.2.接收方验证过程................................................................................ 10
4 数字签名常见的算法及其数字签名.................................................................. 12
4.1 DSA 数字签名算法.................................................................................. 12
4.1.1 DSA 数字签名实现的三个步骤....................................................... 12
4.1.2 DSA 的安全性................................................................................... 13
4.2 椭圆曲线代理签名体制.......................................................................... 13
4.2.1 椭圆曲线数字签名 ECDSA.............................................................. 13
4.2.2 椭圆曲线数字签名的安全性............................................................ 14
5 RSA 算法及其数字签名......................................................................................15
5.1 RSA 简述...................................................................................................15
5.2 RSA 加密的可行性...................................................................................16
5.3 RSA 算法的介绍.......................................................................................16
5.3.1 RSA 中素数的选取............................................................................17
5.3.2 RSA 用到的公式和定理....................................................................17
5.3.3 RSA 安全性的分析............................................................................17
5.3.4 RSA 的攻击........................................................................................18
5.3.5 RSA 的缺点........................................................................................19
目录
5.3.6 RSA 的优点........................................................................................20
5.4 RSA 数字签名...........................................................................................20
5.4.1 RSA 数字签名的过程........................................................................20
5.4.2 RSA 数字签名算法实现步骤............................................................20
5.4.3 散列函数的原理............................................................................... 21
5.4.4 MD5 算法的简介...............................................................................22
6 RSA 数字签名设计与实现..................................................................................24
6.1 开发环境的介绍...................................................................................... 24
6.1.1 C#语言概述........................................................................................24
6.1.2 C#语言特点........................................................................................24
6.2.NET 类的介绍...........................................................................................25
6.3 RSA 数字签名所需实现的功能...............................................................26
6.4 本软件的总体要求和设计...................................................................... 26
6.5 主要实现代码及软件运行结果............................................................... 27
结论......................................................................................................................... 31
致谢......................................................................................... 错误!未定义书签。
参考文献................................................................................................................. 33
附录 1...................................................................................................................... 34
河北工程大学毕业设计论文
1 绪论
1.1 研究背景
当今社会是信息化社会,电子计算机和通信网络己经广泛的应用于社会的各
个领域,以此为基础建立起来的各种信息系统,给人们的生活、工作带来了巨大
变革。大型信息系统将众多的计算机和只能化设备连在一个四通八达的通信网络
中,共享丰富的数据库信息和计算机资源,储存大量的数据文件,完成异地之间
的数据交换与通信。信息系统的应用,加速了社会自动化的进程,减轻了日常繁
杂的重复劳动,同时也提高了生产率,创造了经济效益。
信息时代虽然给我们带来了无限商机与方便,但同时也充斥着隐患与危险。由
于网络很容易受到攻击,导致机密信息的泄漏,引起重大损失。由于信息技术已
经成为综合国力的一个重要组成部分,因此信息安全己成为保证国民经济信息化
建设健康有序发展的保障。
当今网络社会技术众多,目前在电子商务、电子政务、电子邮件系统、电子
银行等方面必备的关键技术就是数字签名。数字签名又称为数字签字,电子签章
等。“数字签名”用来保证信息传输过程中信息的完整和提供信息发送者的身份
认证和不可抵赖性,数字签名技术的实现基础是公开密钥加密技术,是用某人的
私钥加密的消息摘要用于确认消息的来源和内容。
为保证数据在网络传递中的安全性和完整性从技术上,主要考虑一下情况:
(1)如果需要使用一种方法验证数据在传输过程中是否被修改,可以使用哈
希值。
(2)如果需要证明实体知道机密但不来回发送机密,或者想使用简单的哈希
值以防止在传输过程中被截获,可以使用加密的哈希值。
(3)如果要隐藏通过不安全的媒介发送的数据或者永久保留数据,可以使用
加密
(4)如果要验证声称是公钥所有者的人员的身份,可以使用证书。
(5)如果双方事先共享密钥,可以使用对称加密以提高速度。
(6)如果想通过不安全的媒介安全的交换数据可以使用非对称加密
(7)如果要进行身份验证和实现不可否认性,可以使用数字签名
(8)如果为了防范穷举搜素而进行的攻击,可以使用加密技术产生的随机数[1]
RSA 公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。
1
河北工程大学毕业设计论文
它易于理解和操作,也十分流行。随着越来越多的商业应用和标准化工作,RSA
已经成为最具代表性的公钥加密技术。VISA、MasterCard、IBM、Microsoft 等
公司协力制定的安全电子交易标准(Secure Electronic Transactions,SET)就采
用了标准 RSA 算法,这使得 RSA 在我们的生活中几乎无处不在。网上交易加密
连接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电话和存储卡
的验证功能芯片等,大多数使用 RSA 技术。
1.2 研究现状
实现数字签名的算法有很多,目前数字签名采用较多的是公钥加密技术,如
DSA (Digital Signature Algorithm), x.509, POP (Pretty Good Privacy)。1994 年美国
标准与技术协会公布了数字签名标准(DSS)而使公钥加密技术广泛应用。
RSA 已经成为最具代表性的公钥加密技术。VISA、MasterCard、IBM、
Microsoft 等公司协力制定的安全电子交易标准(Secure Electronic Transactions,
SET)就采用了标准 RSA 算法,这使得 RSA 在我们的生活中几乎无处不在。网
上交易加密连接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电
话和存储卡的验证功能芯片等,大多数使用 RSA 技术。
(1)研究主要成果
RSA 作为最重要的公开密钥算法,在各领域的应用数不胜数。RSA 在硬件
方面,以技术成熟的 IC 应用于各种消费类电子产品。
RSA 在软件方面的应用,主要集中在 Internet 上。加密连接、数字签名和数
字证书的核心算法广泛使用 RSA。
RSA 算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。
RSA 是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻
击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA 目
前是最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,
已被 ISO 推荐为公钥数据加密标准。
RSA 的缺点主要有:
(1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
(2)分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价
很高,尤其是速度较慢,较对称密码算法慢几个数量级。
(2)发展趋势
当今社会是信息化社会,电子计算机和通信网络己经广泛的应用于社会的各
个领域,以此为基础建立起来的各种信息系统,给人们的生活、工作带来了巨大
变革。信息系统的应用,加速了社会自动化的进程,减轻了日常繁杂的重复劳动,
2
河北工程大学毕业设计论文
同时也提高了生产率,创造了经济效益。
信息安全技术在信息化迅速发展的今天己进入了高速发展的新时期,形成了
密码技术、可信计算技术、电磁辐射泄露防护技术、系统入侵检测技术和计算机
病毒检测消除技术等多个安全防护技术门类。
(3)存在问题
目前普遍采用的数字签名算法,都是基于下面三个数学难题的基础之上:(1)
整数的因式分解(Integer Factorization)问题,如 RSA 算法。(2)离散对数(Discrete
Logarithm)问题,如 ElGamal,DSA,Schnorr 等算法;(3)椭圆曲线(Elliptic Curve)
问题,如 ECDSA 算法。[2]
3
河北工程大学毕业设计论文
2 密码学基本概念
密码学包括两个方面:密码编码学和密码分析学。密码编码学就是研究对数
据进行变换的原理、手段和方法的技术和科学。密码分析学是为了取得秘密的消
息,而对密码系统及其流动数据进行分析,是对密码原理、手段和方法进行分析、
攻击的技术和科学。
密码学的理论基础是数学,其基本思想是隐藏、伪装信息,使未经授权者不
能得到消息的真正含义。伪装(变换)之前的信息是原始信息,成为明文;伪装之
后的消息,看起来是一串无意义的乱码,称为密文。把明文伪装成密文的过程称
为(encryption),该过程使用的数学变换就是加密算法。把密文还原成明文的过程
称为解密(decryption),该过程使用的数学变换,通常是加密时数学变换的逆变换,
就是解密算法。加密与解密通常需要参数控制,我们把该参数称为密钥,有时也
称为密码。加密时使用的为加密密码(加密密钥),解密时使用的为解密密码(解密
密钥)。[3]加密密钥与解密密钥可能相同也可能不同。相同时称为对称型或单钥的,
不相同时称为非对成型或双钥的。那么一个密码系统或称其为密码体制,是由明
文空间、密文空间、密钥空间、加密算法与解密算法五个部分组成。明文、密文、
密钥空间分别表示全体明文、全体密文、全体密钥的集合;加密与解密算法通常
是一些公式、法则或程序,规定了明文与密文之间的数学变换规则。
下面用字母分别表示这个概念,密钥K=,Ke表示加密密钥,Kd表
示解密密钥,设明文M,密文C,加密算法E,解密算法D。
把明文加密为密文: C=E(M,Ke) 密文解密为明文:M=D(C,Kd)=D(E(M,Ke),Kd)。
上述的讲解可用下图
明文空间
明文
目的:求明文与密
码
攻击者
密码分析
传输的内容
加密算法
Interner(不安全信道)
解密算法
明文空
间
明文
明文空
间
明文
加密密钥
密钥空间
解密密钥
4