2024年5月28日发(作者:)

摘 要

分析RSA算法的应用现状,论证文件加密应用RSA算法的可行性和意义。设计一

套完整实用的RSA文件加密解决方案,具体编码实现。对RSA算法进行研究,从常规

RSA算法出发,用C++实现RSA加密算法类库,并在32位windows平台封装成组件。

在.Net平台引用此组件,实现可以对任意文件进行RSA加密操作的窗体应用程序。经过

加密的文件以及密钥文件都是文本文件。给出关键类类图、整个应用程序的结构描述文

档、关键模块流程图、较详细的接口文档、所有源代码。对应用程序进行测试,对测试

结果进行分析研究,进而对应用程序进行改进,对关键算法进行尽可能的优化,最终得

到一个在windows运行的可以用指定密钥对任意文件进行RSA加密并可解密的完整应

用程序,和一些相关的可移植组件。

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

Abstract

Do research about the application area of RSA encryption and reason that RSA can be

used for file encryption. Design a RSA file-encrypt solution and complete an application on

Microsoft Windows™. Design a C++ class based on normal RSA algorithm. And make a DLL

module based on the class. Then complete a .Net Framework™ window-application using that

DLL. The application can encrypt any file and decrypt them. The file after encryption can be

saved as a text file. And the encryption-keys also can be saved as e pivotal classes

chart, project description, core algorithm flowchart, all source code, and module interfaces

document. Do application performance test and record the performance data. Analyze the

result then optimize core algorithm and improve the application. Finally, create a practical

application using RSA algorithm that can encrypt and decrypt any file. And several modules in

the project can be reuse by other applications. For instance, the C++ class can be

cross-compiled for handheld devices, the DLL can be referenced by other win32 applications,

and the .Net class can be easily referenced by web server applications or web services.

Keywords RSA RSA algorithm file encryption encrypt to text

1

目 录

前 言 .............................................................................. 错误!未定义书签。

第1章 RSA应用现状及应用于文件加密的分析 .......... 错误!未定义书签。

1.1 RSA算法介绍与应用现状 ................................................................ 错误!未定义书签。

1.2 RSA应用于文件加密的分析 ............................................................ 错误!未定义书签。

1.2.1 文件加密使用RSA的可行性 .................................................... 错误!未定义书签。

1.2.2 文件加密使用RSA的意义 ........................................................ 错误!未定义书签。

第2章 RSA文件加密软件的设计与实现...................... 错误!未定义书签。

2.1 需求分析与总体设计 ........................................................................ 错误!未定义书签。

2.1.1 功能分析 ...................................................................................... 错误!未定义书签。

2.1.2 工程方案选择 .............................................................................. 错误!未定义书签。

2.2 各部分的设计与开发 ........................................................................ 错误!未定义书签。

2.2.1 实现RSA加密算法的C++核心类库 ........................................ 错误!未定义书签。

2.2.2 封装C++核心类库的DLL组件 ................................................ 错误!未定义书签。

2.2.3 引用DLL的.Net类与实现文件操作功能的窗体应用程序 .... 错误!未定义书签。

第3章 软件整体测试与分析改进.................................. 错误!未定义书签。

3.1 编写测试各项性能需要的精确计时类 ............................................ 错误!未定义书签。

3.2 测试数据与分析改进 ........................................................................ 错误!未定义书签。

3.2.1 密钥生成测试 .............................................................................. 错误!未定义书签。

3.2.2 数据输入输出测试 ...................................................................... 错误!未定义书签。

3.2.3 加密解密测试 ................................................................................................................ 3

3.2.4 性能分析与改进优化 .................................................................. 错误!未定义书签。

3.3 使用中国余数定理 ............................................................................ 错误!未定义书签。

第4章 可移植模块的简要说明与开发前景................... 错误!未定义书签。

结束语 .............................................................................. 错误!未定义书签。

谢 辞 .............................................................................. 错误!未定义书签。

参考文献........................................................................... 错误!未定义书签。

附 录 .............................................................................. 错误!未定义书签。

2

最终实现的应用程序,结构如图2-8所示。

图2-8 本软件的Visual Studio解决方案

3.2.3 加密解密测试

进行对任意文件加密与解密的测试,这里给出几组从不同角度进行测试的数据。下

面除了第3组测试,其他都是把文件逐字节进行RSA运算,逐字节加密是本软件的默认

设置。加密时使用的测试文件、各密钥文件以及加解密后生成的文件可以从以下地址下

载:/www/download/ 内附说明。

1. 用同样的密钥对不同大小的文件公钥加密、私钥解密,各自消耗的时间与待加密

文件大小的关系

随机生成两组密钥,一组n长512bit,一组n长1024bit。密钥具体数据见附录(n

的实际位数有微小差距)。

分别对一组不同大小的文件进行公钥加密。统计消耗时间情况如表3-4所示,统计

数据以曲线表示如图3-1。

表3-4 待加密文件大小与加密时间的关系(时间单位:秒)

n位数 文件大小

512bit公钥加密

50Byte

4.8537

100Byte

9.7636

150Byte

14.3205

200Byte

18.9084

250Byte

23.5322

3

512bit私钥解密

1024bit公钥加密

1024bit私钥解密

9.5452

12.6111

40.0084

18.9207

24.5664

79.2507

28.1287

36.5895

120.4443

37.9556

48.6288

158.0028

46.5794

60.6503

198.365

重要提示:

本论文由大学论文网

毕业论文下载网: 提供

如果需要详细内容请与QQ:4991024联系

4