《公开密钥加密算法RSA的Matlab实现毕业论文》由会员分享,可在线阅读,更多相关《公开密钥加密算法RSA的Matlab实现毕业论文(45页珍藏版)》请在金锄头文库上搜索。
1、公开密钥加密算法RSA的Matlab实现 摘要RSA算法是基于数论的公开密钥加密算法,它已经成为现在最流行的公钥加密算法和数字签名算法之一。其算法的安全性基于数论素数分解的困难性,所以RSA公钥密码体制算法的关键是如何产生大素数和进行大指数模幂运算。本文首先介绍了RSA 公开密钥加密算法的数学原理,并介绍了几种流行的产生大素数的算法。然后用matlab具体实现公钥加密算法RSA的加密和解密,从而实现了数据的安全传输。关键词RSA算法;加密;素数The Realization of RSA Algorithm for Public Key Encryption Based on Matlab(G
2、rade 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
3、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
4、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 wor
5、ds:RSA algorithm; encryption; prime number / 目录引言11数据加密概述21.1基本概念21.2 数据加密分类32 Matlab工具介绍62.1 MATLAB语言的主要特点62.2 Matlab的程序设计622.1 脚本文件和函数文件622.2函数调用和参数传递822.3MATLAB的程序结构和控制流程83 RSA公钥密码体制103.1 算法简介103.2算法的数学基础103.3 RSA公钥密码算法103.3.1算法步骤103.3.2 参数分析113.3.3 安全性分析123.4公钥密码体制中安全大素数的生成133.4.1 素数筛选133.4.2 素数
6、检测143.5 RSA的Matlab实现163.5.1算法原理163.5.2运行过程203.5.3结论分析224 基于RSA的数字签名234.1 数字签名概述234.2基于RSA的数字签名244.3RSA数字签名方案的不足245RSA算法的实际应用和发展255.1 算法的应用255.2算法的改进26结论27致28参考文献29附录30附录A:英文资料与翻译30附录B:源程序40引言随着Internet用户的激增,世界正步入网络经济的新时代。如网上购物、网上银行、网上证券等。然而,有一些人利用利用他们所掌握的技术非法侵入他人的计算机系统,窃取、篡改、破坏一些重要的数据,给社会造成巨大的损失。密码技
7、术的发展与应用,对解决信息交换的安全问题,保障数据信息的安全,起着不可忽视的作用。所谓密码技术,就是针对信息进行重新编码,从而达到隐藏信息的容,使非法用户无法获取信息真实容的一种手段。目前在网络中,一般采用两种密码体制:对称密钥体制和非对称密钥体制。对称密钥体制中的加密密钥和解秘密钥是一样的,所以又称密秘密钥密码体制。对称密钥算法运算效率高、使用方便、加密效率高,在处理大量数据时被广泛使用,但其关键是要保证密钥的安全,为安全起见,密钥要定期改变,所以,对称密钥就存在一个如何安全管理密钥的问题。与对称密钥体制相对应的非对称密钥体制又称为公开密钥密码体制,它是在1976 年由Diffe 和Hell
8、man 发表的密码学的新方向一文中提出的,从此打破了长期使用单密钥体制的束缚。自此提出公约密码思想以后,涌现出很多的公约密钥算法体系,经过20多年的实践检验,公约系统的应用技术日趋完善,应用领域日趋广泛。公开密钥密码体制,加密密钥和解秘密钥是分开采用一对不同的密钥进行的,分别存在一个公钥和私钥,公钥公开,私钥,并且知道其中一个时并不能从中推出另一个。其典型的算法有背包密码、RSA等。 其中RSA公约算法系统因为其可靠安全性,易于实现性,更是受大家的认可和欢迎。RSA加密算法的最大优点就是不需要对密钥通信进行,所需传输的只有公开密钥,这样就省去了一条开销很大的密钥传输信道。其性强,密钥管理方便,
9、并且具有数字签名、认证和签别等多种功能,特别适合于现代通信的需要。大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。RSA的安全性是基于大数因子分解的困难性。目前一般认为RSA需要1024位以上的字长才有安全保障。由于RSA所采用的模幂运算耗时太多,因此它通常只能用于加密少量数据或者加密密钥。需要注意的是,RSA的安全性只是一种计算安全性,绝对不是无条件的安全性,这是由它的理论基础决定的。所以,在实现RSA算法的过程中,每一步都应该尽量从安全性方面考虑。本文就RSA算法以与如何用Matlab语言实现给于了详细的分析。1 数据加密概述 密码学是一门古老而深奥的学科,它对一般人
10、来说是陌生的,因为长期以来,它只在很少的围,如军事、外交、情报等部门使用。计算码学是研究计算机信息加密、解密与其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科。随着计算机网络和计算机通讯技术的发展,计算码学得到前所未有的重视并迅速普与和发展起来。在国外,它已成为计算机安全主要的研究方向,也是计算机安全课程教学中的主要容。密码是实现秘密通讯的主要手段,是隐蔽语言、文字、图象的特种符号。凡是用特种符号按照通讯双方约定的方法把电文的原形隐蔽起来,不为第三者所识别的通讯方式称为密码通讯。在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或载获,
11、窃取者也不能了解信息的容,从而保证信息传输的安全。任何一个加密系统至少包括下面四个组成部分:(1)未加密的报文,也称明文。(2)加密后的报文,也称密文。(3)加密解密设备或算法。(4)加密解密的密钥。发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到作用。1.1 基本概念数据加密技术就是指将一个信息或明文经过加密钥匙与加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数.解密钥匙还原成明文。加密技术是网络安全技术的基石。明文,即加密前的真实的数据或信息,它是可以
12、被外界所识别,它指代的含义比较广泛,比如用户A要将一份文件发送给用户B,那么我们就将用户A手里所拿的那份文件称之为明文。密文,就是对信息经过一定的处理,使它变成无意义的乱码,非指定用户无法对它进行识别,例如A使用密钥K加密消息并将其发送给B,B收到加密的消息后,使用密钥K对其解密以恢复原始消息,那么在这一过程当中A在途中发送给B的东西我们就叫它密文,因为这个文件除B外,其他人得到它也没有任何意义,这就保证了信息传送的性。完成加密和解密的算法成为为密码体制。人们一方面要把自己的信号隐蔽起来,另一方面则想把别人的隐蔽信息挖掘出来,于是就产生了密码分析的逆科学密码分析。密码分析研究的问题是如何把密文
13、转换成明文。把密文转换成明文的过程称为破译。破译也是进行函数变换,变换过程中使用的参数也叫密钥。 一般地,如果求解一个问题需要一定量的计算,但环境所能提供的实际资源却无法实现,则这种问题是计算上不可能的。如果一个密码体制的破译是计算上不可能的。则称该密码体制是计算上安全的。密码体制必须满足三个基本要求:(1)对所有的密钥、加密和解密都必须迅速有效;(2)体制必须容易使用;(3)体制的安全性必须只依赖于密钥的性。密码体制要实现的功能可分为性和真实性两种。性要求密码分析员无法从截获的密文中求出明文。一般情况下一个密码体制的性包括两项要求:(1)即使截获了一段密文C,甚至知道了与它对应的明文M,密码
14、分析要从系统中求出解密变换,仍然是计算上不可行的。(2)密码分析员要由截获的密文C中系统的求出明文M是计算上不可能的。数据的真实性要求密码分析员无法用虚假的密文代替真是密文而不被察觉,它也包括两个要求:(1)对于给定的C,即使密码分析员知道了对应于它的明文M,要系统的求出加密变换仍然是计算上不可能的。(2)密码分析员要系统地找到密文,使其是明文空间上有意义的明文,这在计算上是不可能的。1.2 数据加密分类专用密钥:又称为对称密钥或单密钥,加密和解密时使用同一个密钥,即同一个算法。如DES和MIT的Kerberos算法。单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加
15、密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。这种方式在与多方通信时因为需要保存很多密钥而变得很复杂,而且密钥本身的安全就是一个问题。公开密钥:又称非对称密钥,加密和解密时使用不同的密钥,即不同的算法,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。有一把公用的加密密钥,有多把解密密钥,如RSA算法。 非对称密钥由于两个密钥(加密密钥和解密密钥)各不一样,因而可以将一个密钥公开,而将另一个密钥,同样可以起到加密的作用。 在这种编码过程中,一个密码用来加密消息,而另一个密码用来解密消息。在两个密钥中有一种关系,通常是数学关系。公钥和私钥都是一组十分长的、数字上相关的素数(是另一个大数字的因数)。有一个密钥不足以翻译出消息,因为用一个密钥加密的消息只能用另一个密钥才能解密。每个用户可以得到唯一的一对密钥,一个是公开的,另一个是的。公共密钥保存在公共区域,可在用户中传递,甚至可印在报纸上面。而私钥必须存放在安全的地方。任何人都可以有你的公钥,但是