RSA加密算法的分析与实现毕业设计论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河南科技大学毕业设计(论文)
题目:__RSA加密算法的分析与实现__
摘要
随着信息产业的迅速发展,人们对信息和信息技术的需要不断增加,信息安全也显得越来越重要。

基于对网络传输数据安全性的考虑,保障网络信息安全的加密产品具有广泛的应用前景,密码技术则是保障信息安全的一个重要手段。

密码学是信息安全技术的核心,现代密码体制分为公钥体制和私钥体制两大类:私钥体制又称单钥体制,其加密密钥和解密密钥相同;公钥体制又称为双钥体制,其加、解密密钥不同,可以公开加密密钥,而仅需保密解密密钥,从而具有数字签名、鉴别等新功能,被广泛应用于金融、商业等社会生活各领域。

RSA是目前公认的在理论和实际应用中最为成熟和完善的一种公钥密码体制,不仅可以进行加密,还可以用来进行数字签名和身份验证,是公钥密码体制的代表。

大数模幂乘运算是实现RSA等公钥密码的基本运算,该算法存在的问题是在实现时耗时太多,这也是制约其广泛应用的瓶颈。

本论文的第一章介绍了国内外密码学和RSA的有关动态以及本论文的意义,第二章介绍密码学的有关知识,第三章对RSA算法进行分析、介绍,第四章是RSA 加密与解密的实现的代码和测试,第五章对本课题的结论。

最后是致谢和参考文献。

关键词:密码学,RSA公钥密码体制,信息安全
ABSTRACT
With the rapid development of IT technology, people depend on it increasingly, As a result, information security is getting more and more important. Meanwhile, Products that ensure network information show a great prospect due to the importance .Of transmitting data by network safely, and as an important means of information Security, cryptography must be lifted.Cryptography is the core of the information security. Modern cryptograph is, Divided into the public key system and the private key system. The private key system, Is also called the single key system, in which the encryption process is the same as the. Decryption process. The public key system is also called the double key system, Where the encryption process is different with the decryption process. Since the Public key system can publish its public key and keep its private key secret, it has, Many new applications such as the digital signature and authentication, which is. ideally used in every field of the society.Among the various public key cryptosystem, RSA algorithm is the best choice in, Both theory and application, and it is open used in digital signature and identificationSystem. Modular exponentiation and modular multiplication are the basic algorithms. For implementing the public key algorithms such as RSA, etc. However the, Time-consuming modulo exponentiation computation, which has always been the, Bottle-neck of RSA restricts its wider application.
The first chapter introduces the domestic and foreign progress of cryptograph; The RSA related tendency as well as the meaning of the research. The second chapter Explains cryptograph. The third chapter describes and analyzes the RSA algorithm. The
fourth chapter discusses the improvement of the RSA algorithm including the big, Number restore and operation, and the improvement algorithm of the” Square multiply" algorithm. The fifth chapter reprints an improved algorithm and Comparisons.
KEY WORDS: cryptography, RSA, public key cryptosystem, information security
目录
摘要 (1)
ABSTRACT (2)
第一章引言 (6)
1.1研究背景 (6)
1.2信息加密技术 (6)
1.3密码技术研究现状 (8)
1.4研究本课题的意义 (9)
第二章密码学概论 (11)
2.1密码学的基本概念 (11)
2.2古典密码体制 (14)
2.3对称密码体制 (14)
2.3.1 DES (Data Encryption Standard) (16)
2.3.2 AES(Advanced Encryption Standard) (18)
2.4公钥密码体制 (19)
2.5密码分析技术 (21)
第三章 RSA公钥密码体制 (24)
3.1RSA的数学基础知识 (24)
3.1.1 因子的概念 (24)
3.1.2 素数与合数 (25)
3.1.3 公约数与最大公约数 (26)
3.1.4 互质数 (27)
3.2RSA算法 (28)
3.2.1 RSA体制描述 (28)
3.2.2 RSA工作原理 (29)
第四章 RAS的加密与解密技术的实现 (2)
4.1RSA加密与解密代码 (2)
4.2测试的环境与工具 (4)
4.3测试的结果 (5)
第五章结论 (6)
5.1结论 (6)
致谢 (7)
参考文献 (8)
第一章引言
1.1 研究背景
自20世纪90年代以来,计算机网络技术得到了空前飞速的发展和广泛的应用,但网络在带给我们方便快捷的同时,也存在着种种安全危机,随着计算机应用的日益广泛和深入,信息交流和资源共享的范围不断扩大,计算机应用环境日趋复杂,计算机的数据安全问题也越来越重要。

在计算机网络日益扩大和普及的今天,计算机对安全的要求更高、涉及面更广。

其内容主要包括: (1)实体安全。

实体安全是指对场地、环境、设施、设备、载体、人员采取的各种安全对策和措施; (2)数据传输网络安全。

是指信息、在数据传输网络中传输时,如何保证其安全性的问题,避免在传输途中遭受非法窃取、篡改等; (3)软件安全。

它涉及信息在存储和处理状态下的保护问题; (4)信息安全。

即数据安全,是指系统有能力抵抗外来非法入侵者对信息的恶意访问、泄漏、修改和破坏等,即:机密性、完整性、可用性。

所以,如何实现计算机网络中数据安全传输近年来一直是人们研究的课题之一。

1.2 信息加密技术
信息加密技术是信息安全技术l2]的核心技术,其主要目的是防止恶意攻击者非法破译系统中的机密信息。

数据加密技术可以提高信息系统及数据的安全性和保密性,防止秘密数据被外部破译所采用的主要技术手段之一。

而密码学是研究
通信安全保密的科学,其目的是保护信息在信道上传输过程中不被他人窃取、解读和利用,它主要包括密码编码学和密码分析学两个相互独立又相互促进的分支。

前者研究将发送的信息(明文)变换成没有密钥不能解或很难解的密文的方法;而后者则研究分析破译密码的方法。

其发展经历了相当长的时期。

第一次世界大战之前,密码学的重要进展根本是不为人知的,很少有文献披露这方面的信息。

直到1918年由WF.Friendlunn论述了重合指数及其在密码学中的应用以及转轮机专利的发表才引起了人们的重视,但仅仅由军事和秘密部门所控制。

第一次世界大战之后到20世纪40年代末期,密码学家们将信息理论、密码学和数学结合起来研究,使信息论成为了研究密码编码学和密码分析学的重要理论基础。

完全处于秘密工作状态的研究机构开始在密码学方面取得根本性的进展,最具代表性的有Shannon(香农)的论文—《保密系统的通信理论》和《通信的数学理论》,他将安全保密的研究引入了科学的轨道,从而创立了信息论的一个新学科。

从20世纪50年代初期到60年代末期的20年中,在密码学的研究方面公开发表的论文极少,但David Kahn于1967年出版的著作—《破译者》使密码学的研究涉及到了相当广泛的领域,使不知道密码学的人了解了密码学,因此密码学的研究有了新的进展。

自20世纪70年代初期到现在,随着计算机科学与技术的发展,促进了密码学研究的兴起和发展,人们使用密码学技术来保护计算机系统中信息的安全。

因此,在密码学的研究和应用等方面取得了许多惊人的成果和理论。

具有代表性的有:
(l)由Daffier和Hellman于1976年发表的“密码学的新方向”一文提出了公开
密钥密码学(即公开密钥或双密钥体制),打破了长期沿用单密钥体制的束缚,提出了一种新的密码体制。

公开密钥体制可使收、发信息的双方无须事先交换密钥就可秘密通信。

(2)由Horst Festal研究小组于20世纪70年代初着手研究美国数据加密标准(Data Encryption standard,DES),并于1973年发表了“密码学与计算机保密”等有价值的论文,该文论述了他们的研究成果并被美国标准局伽BS)采纳,于1977年正式公布实施为美因数据加密标准并被简称为Desk标准。

上述密码学的发展可粗略的划分为三个阶段:第一阶段(194·9年之前)的密码学可以说不是什么学科,仅为一门艺术;第二阶段(1949年到1975年)可以说是密码学研究的“冬天”,成果和论文少且为单密钥体制,但在这一阶段有如Shaman的理论和Dave记Kahn的著作并为密码学奠定了坚实的理论基础;第三阶段(1976年到现在)可以说是密码学研究的“春天”,密码学的各种理论和观点百花齐放,应用成果累累。

1.3 密码技术研究现状
密码技术是信息安全技术的核心,它主要由密码编码技术和密码分析技术两大分支组成。

密码编码技术的主要任务是寻求产生安全性高的有效密码算法和协议,以满足对消息进行加密或认证的要求。

密码分析技术的主要任务是破译密码或伪造认证信息,实现窃取机密信息或进行诈骗破坏话动。

这两个分支既相互对立又相互依存,正是由于这种对立统一关系,才‘推动了密码学自身的发展。

目前人们将密码理论与技术分成两大类,一类是基于数学的密码理论与技术,包括公钥密码、分组密码、序列密码、认证码、数字签名、Hash函数、身份识别、密
钥管理、PKI技术、VPN技术等;另一类是非数学的密码理论与技术,包括信息隐藏、量子密码、基于生物特征的识别理论与技术等。

现在世界上的一些大国都非常重视密码学研究I3jI4]。

在美国国家安全局(Nast)和国家标准技术研究所(Mist)的共同推动下,20世纪70年代以来陆续建立了国家数据加密标准(DES)和数字签名标准(D55),2001年又确定了高级加密标准算法(AES)以作为21世纪的应用基础。

美国政府为了适应信息社会发展的需要,加强政府司法机构的社会管理执法的高技术支撑能力和情报部门的对抗信息战的能力,正通过Nast提出并推动着密钥托管、密钥恢复、证书授权认证、公开密钥基础设施、公开密钥管理基础设施等一系列技术手段、技术标准和相关理论基础的研究。

国际上对在分组密码和序列密码设计和分析的理论和技术已经比较成熟。

除了算法的设计之外,美国、欧洲、日本发达国家在加密算法的标准化方面做了大量的工作。

我们国内的学者也设计了很多对称加密算法,但是目前的问题是,国内还没有一个统一的加密标准。

可喜的是,目前有关部门正在组织对加密标准的讨论和征集。

1.4 研究本课题的意义
加密技术按照密码使用方法不同可以分为对称密钥算法和非对称密钥算法。

对称密钥算法中,加密、解密都使用相同的密钥。

非对称密钥算法又称公钥密码算法,即加密、解密使用两个不同的密钥。

由于公钥密码算法在保证数据的机密性、完整性以及签名和认可等方面的突出优点,它已经成为当今网络安全中最重要的解决方法。

在众多的公钥密码体制中,1978年由Rivets,Shamir和Adelman 在美国MIT提出的Rosa算法15][6]被公认为是目前理论和实际应用中最为成热和
完善的一种公钥密码体制,可以用来进行数字签名和身份验证。

该算法的安全性依赖于大整数的素数因子分解的困难性,其最基本最核心的算术操作是模乘运算,再由一系列的模乘来完成模幂运算。

RSA体制算法完善(既可用于数据加密,又可用于数字签名),安全性良好,易于实现和理解。

使用RSA体制作为课题算法和方案的实现基础,我们可以有效地利用RSA体制的优点。

同时,关于RSA体制的大量的研究工作的文献和成果为本文研究工作的开展提供了良好的基础。

RSA体制是最具代表性的公钥密码体制。

RSA体制的特点使得它成为公钥密码体制研究的一个标准模板。

同时,由于RSA算法发展至今,在实现技术上己经相当成熟,因此本文算法的实现在许多方面都可以利用己有的技术,这对增强算法的实用性是非常有益的。

RSA算法计算复杂,实现的难度大。

软件实现主要问题是加密、解密操作要计算位数达十进制百位以上的模幂乘函数。

执行的时间长,难以满足实际使用要求。

在实际应用中,其加密和解密的速度是主要的问题,所以研究RSA的快速算法具有非常重要的现实意义。

本论文主要研究了密码学尤其是RSA的发展历程,及目前RSA在应用中面临的问题。

在大量阅读国内外重要文献资料的基础上,深入剖析了RSA算法的精要。

第二章密码学概论
密码学[7]的历史极为久远,其起源可以追溯到远古时代,人类有记载的通信密码始于公元前400年。

虽然密码是一门古老的技术,但自密码诞生直至第二次世界大战结束,对于公众而言,密码始终处于一种未知的黑暗当中,常常与军事、机要、间谍等工作联系在一起,让人在感到神秘之余,又有几分畏惧。

信息技术的发展迅速改变了这一切。

随着计算机和通信技术的迅猛发展,大量的敏感信息常常通过公共通信设施或计算机网络进行交换,特别是intermit的广泛应用、电子商务和电子政务的迅速发展,越来越多的个人信息需要严格保密,如:银行账号、个人隐私等。

正是这种对信息的秘密性与真实性的需求,密码学才逐渐揭去了神秘的面纱,走进公众的日常生活当中。

本章回顾了密码学的基础知识,包括密码学的基本概念、密码理论与技术基础、认证理论与技术基础以及密码分析学基础。

这些基础概念和知识是本课题研究工作的理论与技术基础。

2.1 密码学的基本概念
首先我们明确一下本文所使用的密码学的一些基本概念。

它们将贯穿本文的由始至终。

定义1密码学 (Cryptology)是研究信息系统安全保密的科学。

它包括两个分支,即密码编码学和密码分析学。

定义2密码编码学(Cryptography)是对信息进行编码实现信息隐蔽的技术和科学。

定义3密码分析学(Cryptanalysis)是研究分析破译密码的技术与科学。

定义4明文(Plaintext)是指发送方想要发送给接受方的消息。

定义5密文(Cipher text)是指明文被加密后的消息。

定义6加密(Encryption)将明文变换为密文的过程。

定义7解密(Decryptions)将密文恢复为明文的过程。

定义1.8一个密码体制是满足以下条件的五元组(P ,C ,K ,E ,D):
1.P 表示所有可能的明文组成的有限集。

2.C 表示所有可能的密文组成的有限集。

3.K 代表密钥空间,是由所有可能的密钥组成的有限集。

4.对任意的k k ,都存在一个加密法则k
e E 和相应的解密法则k d D 。

并且对每一k e :p c 和k d :c p 对任意的明文x p ,均有k k e x d x 。

通常人们
用香农(Salmon)的密码模型来说明密码体制。

Shalom 提出的保密系统的模型[8}如图2-1所示:
它由以下几部分组成:明文空间P ,密文空间C ,密钥空间K1和k2单钥体制下
K1=k2=k3密钥K需通过安全的密钥通道由发送方传给接密变换EK1:p c,由加密器完成,其中12
k k。

称五元组(P,k k;解密变换DK2:c p密器完成,其中11
c,K,E,D)为一保密系统。

如果一个密码体制的12
k k,或由其中一个很容易推出另一个,钥密码体制或对称密码体制或传统密码体制(one- key Cryptosystem,其是美国的数据加密标准Desk(Data Encryption Standard):
a
a(3.2)
a p 其中0
p
否则,称为双体制或非对称密码体制。

进而,如果在计算上K2不能由K1推出,这公开也不会损害K2的安全,于是便可以将K1公开。

这种密码体制称码体制(public一key Cryptosystem),其典型代表是Rosa密码体制。

根据对明文的划分与密钥的使用方法的不同可将密码体制分为分序列密码体制。

①分组密码是将明文M划分为一系列明文块M1,M2,…,Mn,通常若干字符,并且对每一块Mi都用同一个密钥Kill进行加密,即C=(C1,C2…,Cn)。

②序列密码将M划分为一系列的字符或位m1,m2,…,mn,并且对于这每一个mi用密钥序列KI=(Kl1,Kl2,…,Kln)的第I个分量Kli来加密,即C=(C1,C2,…,Cn),其中Ci=E(mi,kli),i=l,2,…,n分组密码一次加密一个明文块,而序列密码一次加密一个字符或一个位。

两种密码在计算机系统中都有广泛应用。

为了实现信息的保密性,抗击密码分析,保密系统应当满足下述要求:
①即使达不到理论上是不可破解的,也应当是实际上是不可破解的。

也就是说,从截获的密文或某些己知明文密文对,要确定密钥或任意明文在计算上是不可行的;②保密系统的安全性应依赖于密钥,而不是依赖于密码体制或算法本身的
细节的安全性;③加密解密算法实用于所有密钥空间中的元素;④系统应该易于实现和使用方便。

2.2 古典密码体制
古典密码是密码学的渊源,这些密码都是由基于字符的密码算法构成的,可用手工或机械操作实现加解密。

不同的密码算法是字符之间互相代换或者是互相置换,好的密码算法是结合这两种方法,每次进行多次运算。

虽然现在己经很少采用了,但原理还是没变。

重要的变化是算法对位而不是对字符进行变换,实质上这只是字母表长度的改变。

古典密码的基本运算有两种代替(substitution)和换位(Transposition)。

代替是指每一个或一组字符被另一个或另一个或一组字符所取代;换位是不改变明文字符,而按一定规则重新安排字符次序。

实际的密码算法是执行一系列这两种基本运算的不同组合,即得到所谓的乘积密码。

比较有名的古典密码包括J恺撒(Kaiser)密码、维吉利亚(viewers)密码、维尔南(Velma)、普莱费厄(pl即fair)密码和希尔(Hill)密码等。

2.3 对称密码体制
对称密码体制[10]又叫私钥密码算法,是指能够从解密密钥中推算出加密密钥,反过来也成立。

在大多数的对称密码体制中,加密密钥和解密密钥的,它要求发送者和接收者在通信之前协商一个安全的密钥,因此有时码也称为单钥密码。

单钥密码体制的安全性主要取决于算法和密钥的长漏密钥就意味着任何人都能对
消息进行加、解密。

对称密码体制不仅可以用于数据加密,也可以用于消息认、证。

但是码体制存在着严重的缺陷:在进行安全通信之前,通信的双方必须通过道商定和传送密钥,而在实际的通讯网中,通信双方很难确定一条合理通道;另外一个问题就是密钥的管理。

在拥有大量用户的计算机通信网个相互进行保密通信的用户需要N(N 一1)/2个密钥;当N值比较大的钥管理的开销极大,密钥只能记录在计算机内存或外存上,这.本身就是全的。

分组密码一般的设计原则包括:
①分组长度n要足够大,使分组代替字母表中的元素个数2n足够大明文穷举攻击法奏效。

②密钥量要足够大(即置换子集中的元素足够多),尽可能消除弱密钥有密钥无特殊性可分析,以防止密钥穷举攻击奏效。

但密钥又不能过长于密钥的管理。

③由密钥确定代替的算法要足够复杂,充分实现明文和密文的扩散没有简单的关系可循,要能抗击各种己知的攻击,如差分攻击和线性攻
④加密和解密运算简单,易于软件和硬件的快速实现。

⑤数据扩展。

一般无数据扩散,在采用同态置换和随机化加密技术入数据扩展。

⑥差错传播尽可能地小。

为了抗击统计分析破译法,需要实现三条要求,Shannon曾建议采用扩散(Diffusion)和混淆(confusedly)法。

所谓扩散,就是将明文及密钥的每一位数字的影响尽可能迅速地扩散到输出密文的较多个数字中,以便隐蔽明文数字的统计
特性。

在理想情况下,明文的每一位bit和密钥的每一bit应影响密文的每一bit 即实现所谓的“完备性”。

Sharman提出的“混淆”概念目的在于使作用于文明的密钥和密文之间的关系复杂化,使明文和密文之间、密文和密钥之间的统计相关性极小化,从而使统计分析攻击法不能奏效。

扩散和混淆原则是设计分组密码的基本准则,到达良好的扩散和混淆效果是分组密码设计的核心问题Shannon还提出了“乘积”的方法,所谓“乘积密码”,是将若干个密码复合。

例如,设有两个子密码T和S,我们先以T对明文进行加密,然后再以S对所得的结果进行加密,则乘积密码可表示为F二ST。

利用这种方法常可将简单易于实现的密码组合成复杂的更为安全的密码。

分组密码的特点是将明文消息编码后的数字序列在密钥的控制下变换成等长的数字序列。

分组密码的输入输出序列长度预先己确定(一般二者相等),故从本质上看,这种密码可看作是字长为分组长度的数字序列的代换密码。

著名的数据加密标准(Data Encryption Standard,DES)是分组密码家族的一个成员,它作为世界范围的标准己经有20多年的历史了。

其他比较有名的分组密码算法还有国际数据加密算法(IDEA)Ghost算法等。

2.3.1 DES (Data Encryption Standard)
数据加密标准DES(Data Encryption standard)算法由IBM公司开发,并被美国国家标准局困(NIST)于1977年2月采纳作为“非密级”应用的一个标准,此后, DES成为全世界使用最广泛的加密标准。

DES是迄今为止最为广泛应用的一种加密算法,也是最具代表性的一种分组密码体制。

DES对于推动密码理论的发展
和应用起了重大作用,掌握和了解这一算法的基本原理、设计思想、安全性分析等问题,对于研究分组密码理论和其实际应用具有重要意义。

DES是一种对二元数据进行加密的方法,数据分组长度为64位,密文分组长度也是64位,没有数据扩展。

其算法的基本思想是:通过循环或迭代,将简单的基本运算(例如左移、右移、模2加法等)和变换(选择函数、置换函数)构造成数据流的非线性变换(加密变换或解密变换)。

DES算法的数据流程的基本框架是固定的,通过密钥分解将一个实际上是56位 (二进制)(64位密钥去掉奇偶校验位,刚好是56位)的密钥分解成16个48位(二进制)的子密钥,每个子密钥控制一次循环或迭代。

加密与解密的密钥和流程是完全相同的,区别仅仅是加密与解密使用子密钥序列的操作顺序刚好相反。

DES算法在历史上曾发挥重要作用,但也存在以下问题:①DES密钥空间的规模256对实际安全而言太小。

②DES的密钥存在弱密钥、半弱密钥和互补密钥。

③DES里的所有计算,除去S盒,全是线性的。

S盒的设计对密码算法的安全性至关重要。

然而,美国国家安全局并没有公布S盒的设计原则,因此,有人怀疑S盒里隐藏了“陷门(trapdoors)”,如果是这样,美国国家安全局就能轻易地解密消息。

由于DES的密钥空间小,针对DES算法进行穷举攻击就可以取得成1998年7月,电子前沿基金会(EFF)使用一台25万美元的电脑在56小时了DES密钥。

1999年1月RSA数据安全会议期间,EFF通过遍布全世万台计算机的协同工作,用22小时巧分钟就宣告破解了一个DES的密外,关于DES 的攻击还有差分密码分析方法和线性密码分析方法。

2.3.2 AES(Advanced Encryption Standard)
从各方面来看,DES已走到了它生命的尽头,为了替代己经超龄服役DES算法,Nils于1997年1月开始了公开筛选DES替代者—高级加密标准(AES)的工作。

其目的是为了确定一个非保密的、全球免费使用的分组密码算法,用于保护下一世纪政府的敏感信息,并希望成为秘密和公开部门的数据加密标准.最终,2000年10月2日,NIST宣布比利时的密码学家Joan Diemen 和Vincent Rijmen设计的“Roundel算法”最终获胜。

Roundel之所为能当选AES,主要是因为:
①运算速度快。

在无论有无反馈模式的计算环境下的软硬件中,Rijndael表现出非常好的性能。

②对内存的需求非常低,使它很适合用于受限制的环境。

③算法可靠。

使用非线性结构的S一盒,表现出有足够的安全余地。

④Irondale算法的设计策略是宽轨迹策略(Wide Trail Strategy),这种策略会有效抵抗差分分析和线性分析攻击。

⑤Irondale是一个分组迭代密码,被设计成128/192/256比特三种密匙标准可用于加密长度为128/192/256比特的分组,相应的轮数为10/12/14,分组长度和密钥长度设计灵活。

⑥密钥安装的时间很好,也具有很高的灵活性。

⑦操作简单,并可抵御时间和能量攻击,此外,它还有许多未被特的防御性能。

由上可见,助deal汇聚了安全性能、效率、可实现性和灵活性等。

相关文档
最新文档