基于RSA加密算法本科毕业设计论文 精品
rsa算法论文——青岛大学

目录前言 (1)第1章RSA应用现状及应用于文件加密的分析 (2)1.1 RSA算法介绍与应用现状 (2)1.2 RSA应用于文件加密的分析 (3)1.2.1 文件加密使用RSA的可行性 (3)1.2.2 文件加密使用RSA的意义 (4)第2章RSA文件加密软件的设计与实现 (6)2.1 需求分析与总体设计 (6)2.1.1 功能分析 (6)2.1.2 工程方案选择 (7)2.2 各部分的设计与开发 (8)2.2.1 实现RSA加密算法的C++核心类库 (8)2.2.2 封装C++核心类库的DLL组件 (18)2.2.3 引用DLL的.Net类与实现文件操作功能的窗体应用程序 (19)第3章软件整体测试与分析改进 (20)3.1 编写测试各项性能需要的精确计时类 (20)3.2 测试数据与分析改进 (20)3.2.1 密钥生成测试 (20)3.2.2 数据输入输出测试 (23)3.2.3 加密解密测试 (23)3.2.4 性能分析与改进优化 (26)3.3 使用中国余数定理 (27)第4章可移植模块的简要说明与开发前景 (29)结束语 (30)谢辞 (31)参考文献 (32)附录 (33)前言RSA公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。
它易于理解和操作,也十分流行。
算法的名字以发明者的姓氏首字母命名:Ron Rivest, Adi Shamir 和Leonard Adleman。
虽然自1978年提出以来,RSA的安全性一直未能得到理论上的证明,但它经历了各种攻击,至今(2006年)未被完全攻破。
随着越来越多的商业应用和标准化工作,RSA已经成为最具代表性的公钥加密技术。
VISA、MasterCard、IBM、Microsoft等公司协力制定的安全电子交易标准(Secure Electronic Transactions,SET)就采用了标准RSA算法,这使得RSA在我们的生活中几乎无处不在。
RSA密码体制的设计及MATLAB语言下的实现毕业论文

security
前言
随着计算机通信技术的迅速发展,在计算机网络和通信的众多领域中,信息的安全性越来越受到人们的重视,于是,密码技术应运而生,目前计算机网络主要采用两种密码体制,即公钥密码体制和私钥密码体制,作为公钥密码体制的重要技术的RSA,主要用于数字加密和数字签名,由于其很好的安全性,可以保证网络中重要数据的安全性,因此有广泛的应用。
1.2
RSA是目前最为流行的公钥密码体制之一,其安全性是基于分解大素数的困难性,由于其加密函数是一个单向函数,所以对第三方而言,试图在有效的时间内在计算机上非法解密密文是不可能的。由于RSA能实现信息的加密,解密和数字签名,较好的满足计算机网络应用的需求,因此得到了广泛的应用,主要用于保证以下几点:
首先,将 表示为二进制形式:
, ,
然后计算出:
…
其中, , ,
由于: .
而:
对于给定的 ,只需根据其二进制表示,取出 的 相乘即可,由于其中间结果均为小于 的整数,从而使运算量大大减小.
例3.2:计算
作预计算:
由于
所以
例3.3:一个简单的RSA加密解密算法
取 , .则 , .
设明文段
则对于密文 .
做计算
由于时间关系,再加上笔者的能力有限,本文中尚有许多不足之处,敬请读者批评指正。
1
随着Internet的广泛应用,电子商务和电子政务得到的迅速的发展,越来越多的个人信息需要严格保密,因此,密码学成了必不可少的一门学科。密码技术是密码学的重要内容,它是集数学,计算机科学,电子与通信等诸多学科于一身的的交叉学科,它不仅能够保证机密信息的加密,而且能够实现数字签名,身份验证,系统安全等功能。
《基于ECC与RSA的随机加密方案的研究与设计》范文

《基于ECC与RSA的随机加密方案的研究与设计》篇一一、引言随着信息技术的发展,数据的安全传输与保护已成为至关重要的研究领域。
为了保护敏感信息和防止数据被非法访问,加密技术成为了网络安全的重要基石。
其中,基于公钥和私钥的加密算法尤为常见,例如RSA算法和椭圆曲线密码(ECC)。
本篇文章旨在探讨和研究一种基于ECC与RSA的随机加密方案,并探讨其设计过程及其可能的应用。
二、RSA算法和ECC的基本概念和特性RSA算法:是一种常用的公钥密码体制加密算法,利用公钥与私钥实现信息的加密和解密。
它被广泛地用于加密数字签名等网络交易中。
ECC(椭圆曲线密码):是一种基于椭圆曲线数学理论的公钥密码体制。
相比于传统的公钥密码体制,ECC具有更高的安全性,且在相同的密钥长度下,其安全性更高。
三、基于ECC与RSA的随机加密方案的设计为了结合RSA和ECC的优点,我们设计了一种基于ECC与RSA的随机加密方案。
该方案主要包含以下几个步骤:1. 随机生成密钥:系统首先会随机生成一组公钥和私钥,这些密钥将在之后的加密和解密过程中使用。
2. 数据分割:原始数据将被分割成若干块,以便于分别进行加密处理。
3. ECC加密:其中一部分数据块将使用ECC算法进行加密。
这一步中,公钥将被用于加密数据,而私钥则用于解密数据。
4. RSA加密:另一部分数据块将使用RSA算法进行二次加密。
这一步中,系统将使用RSA公钥对数据进行加密,而解密则需要使用对应的私钥。
5. 混合加密:最后,将ECC和RSA加密后的数据块进行混合,形成一个完整的加密数据包。
四、方案的优势与挑战本方案的优势在于其结合了ECC和RSA两种算法的优点。
一方面,ECC的高效性和高安全性使得在传输敏感信息时能够提供更强的保护;另一方面,RSA的广泛接受性和通用性也使得我们的方案更易于被各种系统所接受和实施。
此外,这种混合加密方式也提供了更高的安全性,因为即使攻击者破解了其中一种加密方式,仍需要面对另一种加密方式的保护。
RSA算法论文范文

RSA算法论文范文RSA算法是由Rivest、Shamir和Adleman三位数学家于1977年共同提出的,它基于数论中的大数分解难题。
其核心原理是根据两个大素数的乘积作为公钥,而其中的两个大素数是作为私钥的一部分。
加密时,将明文通过公钥进行加密;解密时,使用私钥进行解密。
RSA算法的安全性建立在大数分解的难题之上,即找到两个大素数的乘积容易,但是将其分解成两个大素数却困难,尤其是当素数的位数非常大时。
RSA算法的主要流程包括密钥生成、加密和解密三个步骤。
首先,选择两个大素数p和q,并计算乘积n=p*q,以及欧拉函数值φ(n)=(p-1)*(q-1)。
然后,选择一个整数e,满足1 < e < φ(n)并且e与φ(n)互质,将e作为公钥的一部分。
接下来,计算整数d,满足d ≡ e^-1 (mod φ(n)),将d作为私钥的一部分。
至此,密钥生成完成。
加密时,将明文m通过公式c ≡ m^e (mod n)进行加密,并得到密文c。
解密时,通过c ≡ m^d (mod n)进行解密,并得到明文m。
RSA算法的应用十分广泛。
例如,它可以用于加密传输敏感数据,在互联网通信中保护用户的隐私。
此外,RSA算法还用于实现数字签名,确保数据的完整性和真实性。
此外,在电子支付和电子商务中,RSA算法被广泛用于加密和解密支付信息,保护用户的财产安全。
可以说,RSA算法在现代通信和信息安全领域发挥着重要作用。
然而,RSA算法也存在一些问题。
首先,RSA算法的运算速度较慢,特别是在密钥较长时。
对于大数据的加密和解密,会消耗大量的计算资源。
其次,RSA算法对于素数的选择要求较高,必须使用足够大的素数来保证安全性。
同时,如何保证密钥的安全性也是一个挑战,因为如果私钥被泄露,那么就可以轻易地解密密文。
另外,当使用RSA算法进行大数据传输时,需要进行分块处理,增加了复杂性和计算开销。
为了克服这些问题,研究者们提出了许多改进的RSA算法和替代方案。
《基于ECC与RSA的随机加密方案的研究与设计》范文

《基于ECC与RSA的随机加密方案的研究与设计》篇一一、引言随着信息技术的飞速发展,数据安全与隐私保护已成为当今社会关注的焦点。
加密技术作为保障信息安全的重要手段,其研究与应用显得尤为重要。
本文将重点研究并设计一种基于椭圆曲线密码学(ECC)与RSA算法的随机加密方案,旨在提高数据传输与存储的安全性。
二、背景知识1. ECC(椭圆曲线密码学):一种公钥密码体制,利用椭圆曲线理论进行加密解密。
具有较高的安全性与较低的存储空间需求。
2. RSA算法:一种典型的公钥密码算法,其安全性基于大数因子分解的困难性。
常用于数据加密、数字签名等领域。
三、研究目的本方案旨在设计一种结合ECC与RSA算法的随机加密方案,以提高数据传输与存储的安全性。
该方案能够适应不同场景的需求,为各类敏感信息提供可靠的加密保障。
四、方案设计(一)设计思路本方案将采用ECC与RSA算法相结合的方式,根据不同场景与需求进行随机加密。
在数据传输过程中,采用RSA算法对ECC公钥进行加密,确保公钥的安全性;在数据解密过程中,利用ECC算法进行密钥协商与解密。
同时,结合随机数生成机制,提高加密过程的安全性。
(二)具体实现1. 密钥生成:首先,利用ECC算法生成一对公钥与私钥。
私钥用于签名与解密,公钥用于加密与验证签名。
此外,生成一个随机数作为会话密钥,用于加密数据的实际内容。
2. 数据加密:在数据传输前,利用RSA算法对ECC公钥进行加密,确保公钥的安全性。
然后,使用会话密钥与ECC算法对数据进行加密。
3. 数据传输:将加密后的数据与RSA加密的ECC公钥一起传输。
由于公钥已通过RSA算法加密,因此在传输过程中即使被截获也无法解密。
4. 数据解密:接收方收到数据后,使用自己的私钥通过RSA 算法解密出ECC公钥。
然后,利用该公钥与会话密钥通过ECC 算法解密出原始数据。
(三)安全性分析本方案结合了ECC与RSA算法的优点,具有较高的安全性。
RSA加密算法范文

RSA加密算法范文RSA加密算法是一种非对称加密算法,由三位数数学家Rivest、Shamir和Adleman于1977年提出。
RSA算法通过一个公钥和一个私钥进行加密和解密。
公钥可以向任何人公开,用于加密数据,而私钥则用于解密数据。
RSA算法的数学原理基于大数分解的困难性。
该算法的安全性依赖于两个大素数的乘积难以被分解。
下面是RSA算法的基本步骤:1.选择两个不同的大素数p和q,并计算它们的乘积n=p*q。
2.计算n的欧拉函数φ(n)=(p-1)*(q-1),即小于n且与n互质的正整数个数。
3.选择一个小于φ(n)的整数e,使得e与φ(n)互质,作为公钥的指数。
4. 计算与 e 关于模φ(n) 的模反元素 d,即满足 (d * e) mod φ(n) = 1 的整数 d,作为私钥的指数。
5.公钥是一个有序对(e,n),私钥是一个有序对(d,n)。
6. 加密时,将消息 M 转化为整数 m,计算密文 c = (m^e) mod n。
7. 解密时,将密文 c 计算为明文 m = (c^d) mod n。
RSA算法的安全性主要是基于大数分解的困难性。
目前没有找到有效的方法来快速分解大整数。
因此,只要选择足够大的素数p和q,RSA算法可以提供较高的安全性。
虽然RSA算法是一种安全可靠的加密算法,但是其加密和解密的速度较慢。
因此,在实际应用中,通常将RSA算法与对称加密算法结合使用。
RSA算法用于加密和传输对称密钥,而对称加密算法用于加密和解密实际的数据。
总而言之,RSA加密算法是一种广泛应用的非对称加密算法。
它基于大数分解的困难性,提供了较高的安全性。
虽然其速度较慢,但通过与对称加密算法结合使用,可以提供高效和安全的加密解决方案。
《基于ECC与RSA的随机加密方案的研究与设计》范文
《基于ECC与RSA的随机加密方案的研究与设计》篇一一、引言随着互联网的迅猛发展,网络安全问题逐渐受到广大用户的高度重视。
密码学作为保护网络安全的核心技术,对于数据的加密和解密至关重要。
其中,ECC(椭圆曲线密码)和RSA是两种主流的公钥加密算法。
本研究设计了一种基于ECC与RSA的随机加密方案,旨在提供更高层次的加密保护和更好的安全性。
二、ECC与RSA的概述椭圆曲线密码(ECC)是一种基于椭圆曲线数学的公钥密码系统。
由于其加密强度高、密钥长度小等优点,被广泛应用于数字签名、身份验证等领域。
另一方面,RSA算法则是一种基于大数因子分解的公钥密码系统,被广泛用于加密、解密和数字签名等安全领域。
三、研究动机与目的当前,单一使用ECC或RSA进行加密已无法满足日益增长的网络安全需求。
为了解决这一问题,本研究旨在设计一种结合ECC和RSA的随机加密方案。
此方案不仅能够充分利用两者的优点,提高加密强度,同时也能更好地应对各种网络攻击。
四、方案设计1. 密钥生成:首先,生成ECC私钥和公钥对。
然后,利用RSA算法生成RSA私钥和公钥对。
这两对密钥将作为后续加密和解密的基础。
2. 随机加密:在数据传输前,采用随机数生成器生成一个随机数作为一次性的会话密钥。
该会话密钥将用于对数据进行初步的加密处理。
3. ECC加密:将初步加密的数据和ECC公钥作为输入,利用ECC算法进行二次加密。
此时,只有拥有对应ECC私钥的用户才能解密数据。
4. RSA加密:将经过ECC加密的数据和RSA公钥作为输入,利用RSA算法进行第三次加密。
此时,即使拥有ECC私钥,若无对应的RSA私钥也无法解密数据。
5. 数据传输:经过上述三个步骤加密后的数据,通过安全信道进行传输。
五、方案优势本方案结合了ECC和RSA两种算法的优点,具有以下优势:1. 高强度加密:通过三次加密过程,极大地提高了数据的安全性。
2. 随机性:采用随机数生成器生成的会话密钥,增强了数据的保密性。
RSA算法论文
RSA算法摘要:随着信息技术的发展,特别是电子商务的发展,网络信息的安全传输逐渐成为人们最为关心和头痛的事情。
密码安全研究与设计是当前密码学领域的热点问题。
通过对RSA的安全性进行了分析,提出构造安全素数。
RSA公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。
它易于理解和操作,也十分流行。
算法的名字以发明者的姓氏首字母命名:Ron Rivest, Adi Shamir 和Leonard Adleman。
虽然自1978年提出以来,RSA的安全性一直未能得到理论上的证明,但它经历了各种攻击,至今(2006年)未被完全攻破。
随着越来越多的商业应用和标准化工作,RSA已经成为最具代表性的公钥加密技术。
关键字: RSA算法, 数字签名, 公开密钥, 加密引言:随着网络技术的飞速发展,信息安全性已成为亟待解决的问题.公钥密码体制中,解密和加密密钥不同,解密和加密可分离,通信双方无须事先交换密钥就可建立起保密通信,较好地解决了传统密码体制在网络通信中出现的问题.另外,随着电子商务的发展,网络上资金的电子交换日益频繁,如何防止信息的伪造和欺骗也成为非常重要的问题.数字签名可以起到身份认证,核准数据完整性的作用.目前关于数字签名的研究主要集中基于公钥密码体制的数字签名.公钥密码体制的特点是:为每个用户产生一对密钥(PK和SK);PK公开,SK保密;从PK 推出SK是很困难的;A,B双方通信时,A通过任何途径取得B的公钥,用B的公钥加密信息.加密后的信息可通过任何不安全信道发送.B收到密文信息后,用自己私钥解密恢复出明文.公钥密码体制已成为确保信息的安全性的关键技术.RSA公钥密码体制到目前为止还是一种认可为安全的体制.本文详述了RSA算法和用RSA算法实现数字签名的理论,以及它们在实际应用中的实现.RSA算法介绍:RSA系统由以下几部分组成:(1) 随机选取的在素数P和Q,还有N ,其中N=P*Q ,P和Q保密,N公开。
【毕业设计】基于非对称算法----rsa的数据文件加解密系统的设计与实现[管理资料]
摘要自20世纪90年代以来,随着计算机网络和信息技术的发展,信息安全在各领域发挥着越来越重要的作用,其中密码学已成为信息安全技术的核心。
本文研究课题是基于非对称算法----RSA的数据文件加解密系统的设计与实现,其主要实现的功能有以下几个:(1)数据文件加密;(2)数据文件解密;(3)密钥管理;(4)用户管理。
此系统主要以java2EE作为开发基础,使用myeclipse作为开发工具,以MySQL作为数据库,使用JAVA语言开发,实现可以对文件进行RSA加密操作的窗体应用程序。
本论文给出关键类类图、整个应用程序的结构描述文档、关键模块流程图、较详细的接口文档、部分功能实现截图。
对应用程序进行测试,对测试结果进行分析研究,进而对应用程序进行改进,对关键算法进行尽可能的优化,最终得到一个在windows运行的可以用指定密钥对任意文件进行RSA加密并可解密的完整应用程序。
关键词:RSA算法加密解密 JavaAbstractSince the 1990s , with the development of computer networks and information technology in all areas of information security plays an increasingly important role , which has become the core cryptographic information security technology . This article is based on research ---- RSA asymmetric algorithms plus data file decryption system design and implementation , and its main function has the following : (1)data file encryption ; (2)a data file decryption ; (3)the key management ; (4)user management . RSA algorithm is now recognized in theory and practical application of the most mature and complete a public-key cryptosystem , which is the first not only for data encryption can be used for digital signature algorithm , public key cryptosystems representatives. This system is mainly to java2EE as a development base , using the myeclipse as a development tool for MySQL as a database, using the JA V A language development, implementation can file Forms application RSA encryption operations. The key classes chart shows , the entire application schema document , the key modules flowcharts , more detailed interface documentation , all of the source code. The application for testing, analysis and study of the test results , and thus to improve the application of key algorithms as optimization , finally get a run in the windows key can be used to specify any file RSA encryption and decryption the complete application . Keywords : RSA encryption decryption Java目录前言 (1)第1章绪论 (2)问题的提出 (2)国内外研究现状与水平 (2)研究本课题的意义 (3)第2章RSA算法介绍 (4)密码学中基本概念 (4)RSA公钥加密解密概述 (5)密钥的产生 (5)加密 (5)解密 (6)RSA算法应用现状 (6)RSA算法的攻击与安全性的讨论 (7)对RSA的分解模数n攻击 (7)对RSA的选择密文攻击 (7)对RSA的小指数攻击 (8)对RSA共模攻击 (8)RSA的安全性讨论 (8)RSA参数的选择 (9)模数N的确定 (10)e的选取原则 (11)d的选取原则 (11)文件加密使用RSA的可行性 (12)文件加密使用RSA的意义 (12)第3章RSA文件加解密软件的设计与实现 (15)需求分析与总体设计 (15)工程方案选择 (17)RSA算法的系统及实现 (17)大素数生成实现 (19)模逆运算 (21)模幂乘运算 (24)第4章数据文件加解密的实现过程 (27)用户信息管理 (27)RSA算法加解密管理 (28)密钥产生 (29)加密文件 (29)解密文件 (33)第5章软件的整体性能分析与改进 (35)加密解密测试 (35)性能分析与改进优化 (38)第6章结束语 (40)致谢 (39)参考文献 (42)前言密码技术是保护信息安全的主要手段之一。
公开密钥加密算法rsa的matlab实现毕业论文[管理资料]
公开密钥加密算法RSA的Matlab实现[摘要]RSA算法是基于数论的公开密钥加密算法,它已经成为现在最流行的公钥加密算法和数字签名算法之一。
其算法的安全性基于数论中大素数分解的困难性,所以RSA公钥密码体制算法的关键是如何产生大素数和进行大指数模幂运算。
本文首先介绍了RSA 公开密钥加密算法的数学原理,并介绍了几种流行的产生大素数的算法。
然后用matlab具体实现公钥加密算法RSA的加密和解密,从而实现了数据的安全传输。
[关键词]RSA算法;加密;素数The Realization of RSA Algorithm for Public Key EncryptionBased on Matlab(Grade 07,Class 3,Major electronics and information engineering ,Communication engineering Dept.,Shaanxi University of Technology, Hanzhong 723003, Shaanxi)Tutor:[abstract]:The algorithm is based on the theory of RSA public key encryption algorithm, it has become the most popular public key encryption algorithm and digital signature algorithm of one. The safety of the algorithm based on number theory cuhk the difficulty of prime decomposition, so the RSA public key cryptography algorithms is key to how to produce large prime Numbers DaZhi and transmit power operation. This paper first introduced the RSA public key encr -yption algorithm of mathematical theory, and introduces several popular produce large prime Numbers of the algorithm. Then use matlab RSA public key encryption algorithm re -alization of encryption and decryption is realized, and the safety of the data trans -mission.[Key words]:RSA algorithm; encryption; prime number目录引言 (1)1数据加密概述 (2)2数据加密分类 (3)2 Matlab工具介绍 (6)MATLAB语言的主要特点 (6)Matlab的程序设计 (6)2.脚本文件和函数文件 (6)2.函数调用和参数传递 (8)2. MATLAB的程序结构和控制流程 (8)3 RSA公钥密码体制 (10)算法简介 (10) (10)RSA公钥密码算法 (10)算法步骤 (10)参数分析 (11)安全性分析 (12)公钥密码体制中安全大素数的生成 (13)素数筛选 (13)素数检测 (14)RSA的Matlab实现 (16) (16)运行过程 (20)224 基于RSA的数字签名 (23)数字签名概述 (23)基于RSA的数字签名 (24)RSA数字签名方案的不足 (24)5 RSA算法的实际应用和发展 (25)算法的应用 (25)26结论 (27)致谢 (28)参考文献 (29)附录 (30)附录A:英文资料及翻译 (30)附录B:源程序 (40)引言随着Internet用户的激增,世界正步入网络经济的新时代。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
桂林理工大学GUILIN UNIVERSITY OF TECHNOLOGY本科毕业设计(论文) 题目:数据通信中的RSA加密算法的设计与实现摘要数据通信是依照一定的通信协议,利用数据传输技术在两个终端之间传递数据信息的一种通信方式和通信业务。
随着数据通信的迅速发展而带来了数据失密问题。
信息被非法截取和数据库资料被窃的事例经常发生,在日常生活中信用卡密码被盗是常见的例子。
所以数据加密成为十分重要的问题,它能保证数据的安全性和不可篡改性。
RSA加密算法以它难以破译的优点,被广泛的使用在电子商务和VPN中。
本文针对非对称性加密RSA算法,采用软件Visual C++6.0进行程序编写。
根据模乘法运算和模指数运算的数学原理所编写的程序在进行测试后,能够通过输入两个素数进行运算从而实现明文与密文之间的转换,然后通过对公钥和私钥的管理,对所传输的数据进行保护,让数据只能由发送者和接收者阅读,以达到数据通信中数据无法被他人破译的目的。
关键词:RSA算法,数据通信,加密, 解密。
Data communication of the RSA encryption algorithm in the Designand ImplementationTeacher:Chen Fei student:Lu HuiAbstractData communications in accordance with certain communication protocols, the use of data transmission technology in the transmission of data between two terminals as a means of communication of information and communication business. With the rapid development of data communications and has brought the issue of data compromise. Unlawful interception of information and database information on frequent instances of theft, credit card in their daily lives stolen passwords is a common example. Therefore, data encryption has become a very important issue, it can ensure data security and can not be tamper with nature. RSA encryption algorithm to the merits of it difficult to decipher, was widely used in the e-commerce and VPN.In this paper, asymmetric RSA encryption algorithm, the use of software for Visual C + +6.0 programming. According to Die multiplication and modular exponentiation by the mathematical principles in the preparation of test procedures can be adopted for the importation of two prime numbers and computing in order to achieve explicit conversion between the ciphertext, and then through a public key and private key management, for the transmission of data protection, so that data can only be made by the sender and the recipient to read, in order to achieve data communications data can not be the purpose of deciphering the others.Keywords: RSA algorithms, data communication, encryption, decryption.目录摘要 (II)Abstract (III)第1章引言 (1)1.1题目背景 (1)1.2国内外现状 (1)1.3本课题的主要工作 (2)第2章数据通信中的加密技术 (3)2.1数据加密技术的起源和发展 (3)2.2数据加密的方法 (3)2.3密钥的管理 (5)2.4数据加密的标准 (5)2.5数据加密的应用 (6)2.6本章小结 (6)第3章数据加密中的RSA算法 (8)3.1 RSA公钥密码体制概述 (8)3.2 RSA公钥密码体制安全性分析 (9)3.3 RSA算法的缺点 (10)3.4 本章小结 (10)第4章 RSA数据加密中的实现 (11)4.1随机大素数的产生 (11)4.1.1素数的分布 (11)4.1.2大素数生成的方法 (12)4.1.3 Miller Rabin素性测试法 (12)4.1.4基于Miller Rabin素性测试法的新的素数生成方法 (13)4.2密钥的生成及加密和解密 (14)4.2.1最大公因子gcd运算 (14)4.2.2模n求逆元运算 (16)4.2.3模n的大数幂乘运算 (17)4.2.4模n的大数幂乘运算 (17)4.3 RSA算法分析 (18)4.3.1 RSA安全性分析 (18)4.3.2 RSA时间复杂度分析 (19)4.4本章小结 (19)第5章 RSA算法的实现 (21)5.1选定组合算法的准则 (21)5.2模幂组合算法的实现 (21)5.3试验与运行结果 (22)总结 (24)参考文献 (25)致谢 (26)附录.................................................. 错误!未定义书签。
第1章引言1.1题目背景在当今的信息社会中,每天都有大量的信息在传输、交换、存储和处理,而这些处理过程几乎都要依赖强大的计算机系统来完成。
一旦计算机系统发生安全问题,就可能造成信息的丢失、篡改、伪造、假冒,以及系统遭受破坏等严重后果。
因此,如何保证计算机系统的安全,是当前一个需要立即解决的十分严峻的问题。
通常保障网络信息安全的方法有两大类:一是以防火墙技术为代表的被动防卫型,二是建立在数据加密,用户授权确认机制上的开放型网络安全保障技术。
防火墙技术,就是在局域网与外部网络之间设立一个服务器,将它们之间隔离开来,建立起一个安全网关,从而保护内部网免受非法用户的侵入。
数据加密技术是可以与防火墙配合使用的一种安全技术,这种技术可以提高信息系统及数据的安全性和保密性、防止秘密数据被外部破解所采用的主要技术手段之一。
按其不同的作用,数据加密技术主要分为数据传输、数据存储、数据完整性的鉴别以及密钥管理技术四种。
加密技术是通过计算机网络中的加密机构,把网络中的各种原始数字信息(明文)按照某种特定的加密算法变换成与明文完全不同的数字信息,即转换成密文。
计算机网络中的加密技术主要采用链路加密和端对端加密等两种方式。
通常情况是将这两种加密模式结合起来共同使用,即可保证网内用户的数据安全,又可提供用户之间的身份鉴别与认证。
1.2国内外现状RSA被广泛应用于各种安全或认证领域,如web服务器和浏览器信息安全、Email 的安全和认证、对远程登录的安全保证和各种电子信用卡系统的核心。
硬件上,如安全电话、以太网卡和智能卡也多采用RSA技术。
而几乎所Internet安全协议如S/MIME,SSL和S/WAN都引入了RSA加密方法。
IS09796标准把RSA列为一种兼容的加密算法,使得RSA的应用目前非常广泛。
RSA模数n=pq是RSA算法的安全性的核心。
如果模数n被分解,则RSA体制立刻被攻破。
如果RSA算法是安全的,那么n=pq必须足够大,使得因式分解模数n在计算上不可行的。
基于安全性考虑,实际应用中所选择的素数p和q至少应该为100位以上的十进制数,相应的模数n=pq将是200位的十进制数。
C E Shannon建议使用至少100位长度的大素数,从而得到长度为200位以上的大整数模数n。
RSA算法的缺点是加密速度慢,模数n的长度越大,加/解密运算所需要的时间就越长,算法实现的速度也就越慢。
为了尽可能使用大的模数而又不影响系统实现的速度,实际应用中通常使用专门的硬件实现RSA算法。
最重要的影响速度的实现细节是加/解密中的大数运算。
大数模幂乘运算是RSA 算法的核心运算,也是运算速度提高的关键。
高效的大数模幂乘算法可以有效提高系统速度。
需要每做一次平方或乘法运算后,就要作一次模运算,当n的值很大时,做一次模运算所需的时间比做一次平方或一次乘法所需的时间更多,是影响算法实现速度的关键。
但在实际加密解密过程中,n可能是几个数的乘积,如RSA算法中,n是两个大素数的乘积。
这时可通过中国剩余定理进行变换,降低指数的数量级.1.3本课题的主要工作本文选择RSA数字加密体制为研究对象,讨论了RSA实现过程中,每一步的具体实现算法。
RSA加密算法是第一个成熟的、迄今为止理论上最成功的公开钥密系统。
它的安全性基础是数论和计算复杂性理论中的下述论断:求两个大素数的乘积在计算上是容易的,但若要分解两个大素数的积而求出它的素因子则在计算上是困难的。
但是,在进行加密和解密运算时的整数求幂运算耗时很大,影响了运算速度,因此,人们提出了多种实现算法,以加快运算速度,例如本文提到的SMM算法和指数2K进制化法等。
这些算法都是从某一方面入手,在一定程度上加快了运算速度。
本文通过分析这些算法的特点,提出了一种综合性的组合方法,在原有算法的基础上更进一步地加快了运算速度。
本文首先介绍了加密算法的数学基础,从数学理论上分析了RSA算法的原理;然后通过C++程序进行实现。
第2章数据通信中的加密技术随着信息化的应用水平不断提高,尤其是电子政务和电子商务的蓬勃发展,互联网络的信息安全问题越来越引起全社会的重视。
数字化办公和生活面临一系列的严重“威胁”。