• 【论文写作】RSA算法的实现总体设计参考


    2 RSA文件加密软件的设计与实现
    2.1 需求分析与总体设计
    2.1.1功能分析
    经过1.3.2节的论述,我们可以将对软件的要求总结如下:
    ① 可以按要求的位数生成非对称密钥。
    ② 可以用指定密钥以RSA算法加密任意一个文件,加密生成的数据为纯文本。
    ③ 可以装载加密过的文件,并用指定的密钥解密还原出原文件。
    ④ 提示信息完整、操作舒适、图形界面雅观
    按上述描述,给出Use Case和Statechart如图2-1。
    在这里插入图片描述
    根据以上分析,一般来说,需要进行编码的程序有
    ①RSA密钥生成 ②RSA加密解密 ③任意文件的读取④各环节必要的数据编码转换 ⑤图形操作界面。
    2.1.2 工程方案选择
    综合考虑复用性、可维护性和执行效率,较妥当的方法是分层设计。核心的RSA算法由C++类库实现,针对用户所在的操作系统封装成本地化组件。其他各功能如文件操作、数据编码转换和图形界面等,由托管代码借助虚拟机平台标准库的功能快速开发实现(本文针对选用.Net上的C#论述,选用java由JNI或其他方式调用本地组件,设计模式上是完全类似的)。这种开发方式,核心功能集中在最底层,在不断的封装中针对具体环境对组件功能不断扩充,任意一个层面的封装都可以被直接应用到其他项目,比如在Web使用以前为某窗体程序写的组件、给嵌入式设备交叉编译算法库等。
    选用这种设计方案,上层使用C#,底层算法使用C++,可以由一个Visual Studio解决方案管理,给调试带来极大的方便。整个工程分四层,实现RSA加密算法的C++核心类库、封装C++核心类库的DLL组件、引用DLL的.Net类、实现文件操作功能的.Net窗体应用程序。2.2节详细介绍各部分的设计与开发。
    考虑到工作量,本软件加解密数据没有严格遵从RSA标准PKCS #1,而是在满足设计要求的前提下,以一种尽可能简单的方式实现加密和解密。
    2.2各部分的设计与开发
    2.2.1实现RSA加密算法的C++核心类库

    1. 大数存储和四则运算
      根据RSA算法的要求,为了实现大数的各种复杂运算,需要首先实现大数存储和基本四则运算的功能。当今开源的大数运算C++类有很多,多用于数学分析、天文计算等,本文选用了一个流行的大数类型,并针对RSA算法和本项目的具体需要对其进行了扩充和改进。下面简单介绍大数存储和四则运算的实现原理。
  • 相关阅读:
    【汇编语言】3.汇编语言程序
    详解vue中中localStorage的使用方法
    JavaScript模块化:提高代码可维护性和可重用性的利器
    Android AlarmManager定时器设置
    【Linux】vim及gcc/g++的使用
    【JavaEE初阶】计算机是如何工作的
    In-sensor zoom功能调试笔记
    Python学习------Day05
    什么是FastAPI异步框架?(全面了解)
    网络安全(黑客)自学
  • 原文地址:https://blog.csdn.net/bwwork/article/details/126453405