毕业设计(论文)开题报告题目:基于RSA算法的加解密程序的设计和实现学院:信息工程学院专业:计算机应用班级:072班学号:8000107205姓名:指导教师:林振荣填表日期:2011年2月28日1一、选题的依据及意义:RSA公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解操作,也十分流行。算法的名字以发明者的姓氏首字母命名:RonRivest,AdiShamir和LeonardAdleman。虽然自1978年提出以来,RSA的安全性一直未能得到理论上的证明,但它经历了各种攻击,至今未被完全攻破。随着越来越多的商业应用和标准化工作,RSA已经成为最具代表性的公钥加密技术。VISA、MasterCard、IBM、Microsoft等公司协力指定的安全电子交易标准(SecureElectronicTransactions.SET)就采用了标准RSA算法,这使得RSA在我们的生活中几乎无处不在。网上交易加密连接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电话和存储卡的验证功能芯片等,大多数使用RSA技术。当今公钥加密更广泛应用于互联网身份认证,本课题将公钥加密算法RSA应用于小型文件加密。将任意文件加密成文本的解决方案,使其使用更加灵活。整个工程的分层设计,给引用移植和后续开发带来便利。二、国内外研究现状及发展趋势(含文献综述):密码学以研究秘密通信为目的,研究对传输信息采取何种的变换,以防止第三者对信息的截取。在密码学中,需要变换的原消息称为明文消息。明文经过变换成为另一种隐蔽的形式,称为密文消息。完成变换的过程称作加密,其逆过程(即由密文恢复出明文的过程)称作解密。对明文进行加密时所采取的一组规则称作加密算法。加密和解密操作通常在密钥的控制下进行,并有加密密钥和解密密钥之分。因为数据以密文的形式存储在计算机文件中,或在数据通信网络传输,因此数据被未授权者非法窃取,或因系统故障和操作人员误操作而造成数据泄漏,未授权者也不能理解它的真正含义,从而达到数据保密的目的。同样,未授权者也不能伪造合理的密文,因而不能篡改数据,从而达到数据真实性的目的。密码技术是对信息进行重新编码,从而达到隐藏信息内容,使非法用户无法获取信息真实内容的一种手段。在单钥密码体制中,加密和解密所用的密钥是相同的或者相近的,即由加密密钥很容易得出解密密钥。在一个密码系统中,不能假定加密算法和解密算法是保密的,因此,密钥必须保密。然而发送信息的通道往往是不可靠或者不安全的,所以,在对称密码体系中,必须用不同于发送信息的另外一个安全信道来发送密钥,但这个安全信道不一定真的安全。为此,人们希望使用一种不需要传递解密密钥的密码体制公开密钥密码体制。WhitfieldDiffie和MartinHellman在《密码学的新方向》一文中包含了设计一个具有公钥私钥对系统的协议的详细信息,随后这一算法以两位作者的姓名命名,即2Diffie-Hellman算法,它被称为公钥系统的基础。公钥密码的新概念开创了现代密码学的新领域。这一领域虽然只有短短的二十几年时间,但投入研究人员之多,他们来自学科之广,发表的论文之众是其它任何一门学科所不能比的,所以很快便获得了一整套很系统的成果。1.传统密码在密钥分配与管理上是极困难的。在任何密文未发送之前,A方和B方必须利用安全信道时行密钥K的预先通信,在实际应用中,这可能是非常困难的。因此,Diffie和Hellman提出了公钥密码体制的思想。2.在商业上有时不可能做得到通信双方事先预约使用相同密钥。公钥密码体制将加密密钥与解密密钥分开,并将加密密钥公开,解密密钥保密。这样,每个用户拥有两个密钥:公开钥和秘密钥,并且所有公开钥均被记录在类似电话簿的密码本中。这种密码体制的安全性是从已知的公开钥、加密算法与在信道上截获的密文不能求出明文或秘密钥。公钥体制的基础是陷门(单向函数),即某种实际处理过程的不可逆性。目前的公钥思想基于两种:一是依赖于大数的因数分解的困难性;二是依赖于求模离散对数的困难性。公开密钥密码体制开辟了密码学研究的新方向,此后,人们基于背包问题、因子分解问题和离散对数问题等数学难题提出了大量的公钥密码体制算法。在受Diffie-Hellman算法思想启发之后,美国麻省理工学院的三个研究人员:RonaldRivest,AdiSharmir和LeonardAdleman联合提出一种基于数论中欧拉定理的公钥密码系统,简称RSA公钥系统,并于1983年在美国获得专利。RSA公钥密码算法是迄今为止在理论上最为成熟、完善的公钥密码体制。从提出到现在已经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。它是第一个既能用于数据加密也能用于数字签名和密钥分配与管理的算法。它易于理解和操作,也很流行。因为它既可用于加密,又可用于签名,并为用户的公开密钥签发公钥证书、发放证书、管理证书等,提高了服务质量,所以,RSA公开密钥密码在当今的信息交换过程中已得到广泛的应用和实践,RSA公钥密码体制在世界许多地方已经成为事实上的标准。该算法的加密密钥和加密算法分开,使得密钥分配更为方便。而且它特别符合计算机网络环境。对于网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息解密,了解明文的内容。由此可看3出,RSA算法解决了大量网络用户密钥管理的难题,这是公钥密码系统相对于对称密码系统最突出的优点。RSA是一个基于数论的非对称密码体制,是一种分组密码体制,是一种基于因子分解的指数函数作为单向陷门函数的公钥体制算法。它基础是数论的欧拉定理,素数检测,它的安全性是基于大数分解,后者在数学上是一个困难问题。RSA算法是第一个完善并且简单实用的公钥密码体制算法。近年来,国内外学者对RSA密码算法提出了多种攻击方法,例如Pollardp21方法、二次筛法、椭圆曲线算法和数域筛法等。RSA的安全性基于复杂性理论中的计算安全性,依赖于大整数分解这一NP难题。可靠性与所用密钥的长度有很大关系,假如有人找到一种很快的分解因子的算法,即从一个公钥中通过因数分解得到私钥,那么用RSA加密的信息的可靠性肯定会极度下降。但由于其工作量巨大,按目前计算机的处理能力是不可能实现的。实践证明,在当前的技术和方法下,密钥不小于1024bit的RSA算法仍然是安全的。这充分说明RSA系统具有良好的保密性能。因此,尽管先后出现了很多新的公钥体制算法,但RSA仍然在不同应用领域占据了重要的位置。随着计算机运算速度的提高以及因子分解算法的突破,RSA的密钥长度将越来越大,其软硬件实现速度将成为制约其使用的重要因素。为了提高RSA密码算法的软硬件实现速度,人们提出了许多可行的方法,例如旨在快速产生大素数的MonteCarlo概率算法,加速模幂运算的M-ary法、Yacobi法、加法链法和向量加法链法,以及利用孙子定理(CRT)改进RSA的解密运算等。近年来,椭圆曲线密码体制(ECC)得到广为关注,与同等保密强度的RSA相比,ECC的密钥长度更小,密钥生成及加解密速度更快,且同样具有RSA数字签名的优点。因此对RSA构成了极大挑战。无论针对哪种体制,寻找更为高效的大数运算算法始终是一个长久的话题。三、本课题研究内容和方案本课题致力于RSA算法的理论研究、RSA算法的改进以及基于RSA算法的加密、解密软件的实现。本课题将公钥加密算法RSA应用于小型文件加密,将任意文件加密成文本的解决方案,使其使用更加灵活。整个工程的分层设计,给引用移植和后续开发带来便利。整个工程采用分层设计。核心的RSA算法由C++类库实现,针对用户所在的操作系统封装成本地化组件。其他各功能如文件操作、数据编码转换和图形界面等,由托管代码借助4虚拟机平台标准库的功能快速开发实现(本文针对选用.Net上的C#论述,调用本地组件,设计模式上是完全类似的)。这种开发方式,核心功能集中在最底层,在不断的封装中针对具体环境对组件功能不断扩充,任意一个层面的封装都可以被直接应用到其它项目,比如在Web使用以前为某窗体程序写的组件、给嵌入式设备交叉编译算法库等。但是每一层都需要依赖底层的所有组件。综上所述,设计方案上层使用C#,底层算法使用C++,可以由一个VisualStudio解决方案管理,给调试带来极大的方便。整个工程分四层,实现RSA加密算法的C++核心类库、封装C++核心类库的DLL组件、引用DLL的.Net类、实现文件操作功能的.Net窗体应用程序。四、本课题的研究进度:进度计划表如下表2所示:序号各阶段工作内容起讫日期备注1选题并查阅相关文献资料,完成开题报告和文献综述;翻译与论文题目相关的英文资料第1~4周2开发工具的选择和熟悉、系统调研和开发平台的构建等第5~7周3系统设计、实现、测试与迭代完善第8~13周4论文撰写、修改与定稿;第14~16周5整理并提交毕业设计(论文)相关材料;制作论文答辩PPT;进行毕业论文答辩第17~18周五、参考文献[1]杨义先,纽心忻,李名选.网络信息安全与保密[M].北京邮电大学出版社,2001[2]辛运炜.密码学算法[M].电子工业出版社,1998[3]DouglasR.Stinson.密码学原理与实践.北京:电子工业出版社,2003:131-132[4]赵振江.密码编码学[M]加密方法的C与C++实现[M].电子工业出版社,2003.6:31~41