浏览记录

   
查看大图

RSA文件加密软件的设计与实现

  • 商品编号:vc084
  • 货  号:vc084
  • 品  牌:jgsj
  • 开发语言: vc
  • 数据库: 其它
  • 论文字数: 20382
  • 编程工具/运行环境: Visual C++6.0
  • 市场价: ¥200.00
  • 销售价: ¥150.00
  • 节省: ¥50.00

以下是介绍(不过多网上展示为了防止查重),如需要完整的请联系客服qq购买.提示:本资料已审核通过,内容严格保密,格式标准,质量保证,软件类的包调试成功. 需要这份设计请添加QQ303563675.团购或代理了解

Ctrl+D收藏此篇
app hook

 

分析RSA算法的应用现状,论证文件加密应用RSA算法的可行性和意义。设计一套完整实用的RSA文件加密解决方案,具体编码实现。对RSA算法进行研究,从常规RSA算法出发,用C++实现RSA加密算法类库,并在32windows平台封装成组件。在.Net平台引用此组件,实现可以对任意文件进行RSA加密操作的窗体应用程序。经过加密的文件以及密钥文件都是文本文件。给出关键类类图、整个应用程序的结构描述文档、关键模块流程图、较详细的接口文档、所有源代码。对应用程序进行测试,对测试结果进行分析研究,进而对应用程序进行改进,对关键算法进行尽可能的优化,最终得到一个在windows运行的可以用指定密钥对任意文件进行RSA加密并可解密的完整应用程序,和一些相关的可移植组件。

关键词  RSA  RSA算法 文件加密 加密成文本

 文件加密使用RSA的可行性

通过1.1节的论述,不难看出RSA当今的应用多在于数字签名和证书等方面。之所以只应用于这些短小数据的加密解密,是因为RSA算法加密极慢,速度是DES对称密钥加密速度的千分之一左右。正是因为这样,把RSA应用于普通文件加密的想法一直被忽略。通常文件被想象成大数据块,但是实际上在日常应用中,有些极其重要的文本资料是并不太大的,比如因担心遗忘而用普通文本记录的银行帐号和密码、不应被陌生人知道的重要电话号码、几千字节大的重要小图片等。

虽然RSA加密运算的速度十分慢,但是在PC性能越来越好的今天,对于几千字节的数据进行一次几百位密钥的RSA加密,所消耗的时间应该是可以接受的。下面结合大数运算程序的调试,从理论上简单的分析消耗时间。在一台普通配置的PC机上对一个整数进行幂模运算,因为公开密钥的e通常取的较小,所以指数取一个小整数,比如C353,模一个70字节长的整数(140位十六进制,大数单元以线性组方式实现,对应到RSA算法中,这相当于约560bitn),调试一个函数测试,按初等数论中的知识对程序进行算法优化,最终在一台配置为AMD Athron2800+,外频333MHZ,物理内存512MBPC上测试需要约45毫秒时间。如果按这种速度,逐字节对1KB的数据进行同样的运算,所消耗的时间理论上为45毫秒的1024倍即约45秒。这个时间并不是非常长。

其实从一个简单的角度来说,既然RSA用于数字签名可行,那就完全可以用于同样大小的普通文件。对于较大的文件,如果分成与数字签名同样大小的段(这里假设数字签名较短,不分段一次计算加密完成),分开的各段逐一进行加密运算,那所需要的时间也只是按文件大小线性的增长。通常数字签名为几十字节,加密运算并不需要很长的等待,这就说明对于几百字节或一两K字节大小的文件来说,如果进行RSA加密,并不会是非常漫长的工作。当然,如果文件更大,加密就显得十分漫长了。比如按前面叙述的45毫秒大数运算程序推理,加密1M字节大小的文件需要约1天的时间。所以,要在普通PC用几百位以上的长密钥RSA加密文件,文件不能过大,一般可以接受的上限是几KB。如果要在较短时间内加密大文件,需要缩短密钥长度以减小运算量,这将带来安全性隐患。

本文的第3章将根据实际调试好的软件,测试给出具体的时间消耗数据。例如,在一台配置为AMD Athron2800+,外频333MHZ,物理内存512MBPC上测试实现的软件,以560bitn逐字节加密一个1KB大小的文件需要55秒。通常记录如银行帐号密码等重要数据的文本文件大小不足百字节,加密只需要数秒钟。所以对于小型文件,进行较长密钥的RSA加密是完全可行的。

如果您对本商品有什么问题,请提问咨询!

发表咨询

标题:
*咨询内容:
联系方式: (可以是电话、email、qq等)
*验证码:   看不清楚?换个图片
如果您对本商品有什么评价或经验,欢迎分享!

发表评论

标题:
*评论内容:
联系方式: (可以是电话、email、qq等).
*验证码:   看不清楚?换个图片
<