资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
简述RSA密码体制的组成摘 要自20世纪90年代以来,计算机网络技术使得计算机应用得到进一步普及和发展,但是如何保证信息的安全却是一个十分重要的问题。RSA算法在公钥密码体制中占有重要的地位。在论文中首先介绍了加密算法的数学基础,理论上说明了RSA算法的原理,以及RSA算法中参数的选择。用VC+编程实现了RSA算法加密和解密运算,在算法的实现过程中,调用了已有的大整数类函数所提供的接口函数。关键词:密码学;RSA;加密;解密Implementation of RSA Cryptosystem AbstractComputer network technology, whose application has gone deep into almost every field of human life and social activity, has been further popularized and developed since 1900s, but it is a very important question to guarantee information security. RSA is a crucial and significant public key cryptosystem. In the paper first the encryption algorithm is introduced based on the mathematical and theoretical introduction of the RSA algorithm theory, RSA algorithm and the parameter choices. VC + + Programming the RSA algorithm, the algorithm implementation process, has been called many interface functions of a given integer class. Key Words: Cryptology; RSA; Encryption; Decryption目 录论文总页数: 19页1引言11.1密码学应用的相关背景11.2使用RSA加密的意义22 RSA相关理论知识32.1 RSA的数学基础知识32.1.1 关于数的基本理论32.1.2 欧拉定理 费马小定理42.1.3 中国剩余定理42.1.4单向陷门函数52.2 RSA加密解密算法52.3 RSA参数的选择62.3.1 模数n的确定62.3.2 模数e的选取原则72.3.3 素数的产生73需求分析与平台选择83.1需求分析83.2平台选择84 RSA密码体制的实现94.1设计流程94.2 截图及运行说明94.3代码实现104.4 各个功能模块介绍104.4.1加密和解密函数的实现104.4.2 导入加密密钥模块114.4.3选择文件模块124.4.4加密模块124.4.5导入解密密钥模块134.4.6生成明文145测试16结 论17参考文献171引言1.1密码学应用的相关背景在当今的信息社会中,每天都有大量的信息在传输、交换、存储和处理,而这些处理过程几乎都要以来强大的计算机系统来完成,一旦计算机系统发生安全问题,就可能造成信息的丢失、篡改、伪造、假冒,以及系统遭受坏等严重后果,因此,如何保证计算机系统的安全,是当前一个需要立即解决的十分严峻的问题。通常保障网络信息安全的方法有两大类:一是以防火墙技术为代表的被动防卫型,二是建立在数据加密,用户授权确认机制上的开放型网络安全保障技术。密码学是研究信息系统安全保密的科学,它包括两个分支,即密码编码学和密码分析学。密码编码学是对信息进行编码实现信息隐藏的技术和科学。密码分析学是研究分析破译密码的技术与科学。明文是指发送方想要发送给接受方的消息。密文是指明文被加密后的消息。加密是将明文变换为密文的过程。解密是将密文恢复为明文的过程。密码学是一门既古老又年轻的科学,它最早的应用可以追溯到几千年前的古罗马,但成为一门独立的学科则是从近几十年才开始的。1949年Shannon发表的“保密系统的信息理论”和1976年Diffie和Hellman的“密码学的新方向”首次提出的公钥密码思想奠定了现在密码学的理论基础。1977年美国加密数据加密标准DES的正式发布和1977年R.L.Rivest, Shamir,L.Adleman三人共同提出的第一个公钥密码思想的密码体制RSA公钥密码成为现在密码学研究迅速发展的两个里程碑。根据加密密钥和解密密钥是否相同或者本质上等同,即从其中一个容易推出另一个,可将现有的加密体制分为两种。一种是单钥加密体制(也叫对称加密密码体制),其典型代表是美国的数据加密标准DES(Data Encryption Standard);另一种是公钥密码体制(也叫非对称加密密码体制),其典型代表是RSA密码体制。DES(Data Encryption Standard)是迄今为止最为广泛采用的一种加密算法,也是最具代表性的一种分组密码体制。DES是美国1977年公布实施的第一个公开被官方采用的加密算法。美国政府目前正在征集、评估和制定新的数据加密标准,新的标准被称作AES。尽管如此,DES对于推动密码理论的发展和应用起了重大的作用。掌握和了解这一算法的基本原理、设计思想、安全性分析等问题,对于研究分组密码理论和其实际应用具有重要的意义。单钥密码体制的特点是解密密码与加密密钥相同或者是很容易从加密密钥推导出解密密钥。在单钥密码体制中,加密密钥的暴露会使系统变得不安全。单钥密码系统的一个严重缺陷是在任何密文传输之前,发送者和接受者必须使用一个安全信道预先商定和传送密钥。在实际的通讯网中,通信双方则很难确定一条合理的安全通道。为了解决这些问题,W.Diffie和M.Hellman在1976年发表的划时代的“密码学的新方向”一文中,提出了公钥密码体制思想,为近代密码学指明了方向,克服了单钥密码体制的缺点。它的出现是密码学研究中的一项重大突破,也是现代密码学诞生的标志之一。在公钥密码体制中,解密密钥和加密密钥不同,难以从一个计算出另一个,解密运算和加密运算可以分离。通信双方无须先交换密钥就可以建立起保密通信。公钥密码体制克服了单钥密码体制的缺点,特别使用于计算机网络中的多用户通信,它大大减少了多用户通信所需的密钥量,接生了系统资源,也便于密钥管理。1977年Rivest,Shamir和Adleman提出了第一个比较完善的公钥密码算法,这就是著名的RSA算法。自从那时起,人们基于不同的计算问题,提出了大量的公钥密码算法。这些算法中,比较重要的有RSA算法、Merkle-Hellman背包算法、ElGamal算法和椭圆曲线密码算法等。1.2使用RSA加密的意义对于比较短的消息的加密,可以使用RSA。比如,因担心遗忘而用普通文本记录的银行帐号和密码、不应被陌生人知道的重要电话号码、几千字节大的重要小图片等。可行的方法未必是必要的,本小节讨论何种文件适合用非对称密钥加密,即RSA加密文件的意义所在。对于带有重要信息的小型文本的维护,如果不加密,将无法放心的保存在计算机上,尤其是连网的或机房里的公共计算机。如果借助功能强大的大型多用户数据保护程序维护几个小型文件,显得十分烦琐,好比杀鸡用牛刀。如果采用对称密钥加密,即加密解密的密钥相同,只适合部分情况。在某些情况下,使用对称密钥加密文件,交流使用不够方便。比如,张三由于某种原因,需要将自己的某个文件在公共计算机上留给李四,而不希望别人看到内容。如果采用对称密钥加密,张三和李四提前约好一个密码就可以。但是如果张三想要在同一台公共计算机上再留一个秘密文件给王五,而不希望别人看到,就要和王五另外约定一个密码。如果需要在这台公共计算机上留十个文件给不同的人,自己就要记和十个人约定好的密码,这样以来交流起来不够方便,因为对于张三,要自己维护太多的密钥。非对称密钥(公开密钥方式)恰好解决这样的问题。只要大家都在这台计算机或这台计算机可以访问到的地方,留下自己的公开密钥,一切就变的容易解决了。张三要留给李四的文件,就用李四的公开密钥加密,要留给王五的文件,就用王五的公开密钥加密。李四和王五只要把留给自己的文件用自己的私有密钥解密,就可以得到留给自己的文件了。显然,非对称密钥体制更适合多用户交流,而将这种加密方式直接应用于文件加密,使我们在公开场合的交流更加灵活方便。一种更实际的情况是,我们想通过Internet上的公众论坛或邮件发送重要保密信息给某人。例如发送一个银行帐号和密码给某人。这种情况要保证安全,在当今互联网络上是比较棘手的。如果用公众论坛直接留言给指定用户,论坛管理员和服务器管理员通常有方法看到数据。如果发送邮件,虽然传送过程是加密的,但是密码毕竟是由邮件服务器维护,所以系统管理员通常也有办法看到内容。问题的关键在于我们所有的数据包括密钥保存在服务器之上。在这种情况下,我们需要使用公开密钥方式,并自己维护私有密钥。RSA文件加密可以灵活的解决这些问题。例如,我们可以将任意一个文件用某人的公开密钥加密变换成一段可以复制粘贴的文本,然后粘贴在公众互联网上,对方只需把需要解密的文本复制保存成一个文本文件,在本地机用自己的私有密钥解密即可。我们可以将自己的私有密钥通过DES加密后保存在自己的移动磁盘上,使用的时候只要将其解密读取即可,用完后立即从当前操作环境清除。这样,我们自己维护自己的私有密钥,利用简单并且公开的方式,可以安全传送任意小型数据。综上所述,使用RSA的方式加密文件有两点重要意义:应用RSA加密文件更能够确保文件的安全性,应用RSA加密文件可以解决很多对称加密文件中不能解决的问题。2 RSA相关理论知识2.1 RSA的数学基础知识2.1.1 关于数的基本理论整除:设a,b是任意两个整数,其中b0.如果存在一个整数q使得等式 a=bq成立,就称为b整除a或者a被b整除,记作b|a,并把b叫做a的因数,把a叫做b的倍数。这时,q也是a的因数,我们常常将q写成a/b。否则,就称b不能整除a或者a不能被b整除。模运算:如果A模N运算,它给出了A的余数,余数是从0到N-1的某个整数,这种运算称为模运算。素数与合数:一个大于1的正整数p,只能被1和它本身整除,不能被其它正整数整除,则这样的正整数p叫做素数或者质数;一个大于1的正整数a,除了能被1和它本身整除外,还能被其它的正整数整除,这样的正整数a叫做复合数或者合数。这样,全体正整数可分为三类:1,全体素数,全体合数。公因数和最大公因数:设a1an 是n(n=2)个整数。若整数d是它们中每一个数的因数,那么d就叫做a1,an 的一个公因数.由于任何非零整数只存在有限个因数。因此,如果b和c不全为0,b和c只存在有限个公因数。在所有公因数中最大的一个,就称为最大公因数,并用符号gcd(b,c)表示。同余:若n|a-b,若a -b = kn,k是整数,则称整数a和b 模n同余,记为a b (mod n ),n称为同余式的模。模n同余具有以下性质:1、若 n|a-b,则a b (mod n );2、(a mod n) =(bmod n )等价于a b(mod n );3、自反性:aa(mod n );4、对称性:ab (modn ) 等价于b a (modn );5、传递性:若ab (modn ) 且bc (mod n) ,则ac (modn )。欧拉函数
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号