版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、RSA文件加密的研究和实现,RSA Encrypter 2007,指导教师:秦海玉姓名:张俊 专业:网络工程学号:20033528,各位老师大家好!,1. RSA简介和文件加密的需求分析,RSA算法概述 为何用于文件加密 需求分析与软件功能概述,RSA算法概述 密钥: 取素数p,q,令n=pq. 取与t=(p-1)(q-1)互素的整数e,e与t必须除之外没有其他公共因子 由方程de=1 (mod t)解出d, 二元组(e,n)作为公开密钥, 二元组(d,n)作为私有密钥 加密解密: b=ae mod n,c=bd mod n. 可以看出,加密算法是对称的, 但是加密和解密使用的密钥不同,因而称
2、之为非对称加密。 解密依赖(d,n),二元组(e,n)公开给别人不会影响密文保密, 又称之为公钥加密。,为何用来做文件加密 在互联网上用作数字签名和数字证书,使用已非常广泛,IE等浏览器直接集成各种相关功能,不需要另外编码设计相关功能。 用RSA进行文件加密较少见,因为其加密速度慢。 用来做文件加密,可以使小型文件交流更加灵活方便。,相关的需求分析 举例 要把银行帐号和密码在互联网发送给某人。 必定要加密传送。 为了密钥维护方便,使用公钥加密。 在当今互联网传送遇到的问题: 密钥在服务器保存,数据传送不安全。 只有专用领域方便使用数字证书。,张三将银行帐号和密码通过 Email、论坛等途径 发
3、送给李四,张三: 发送出重要保密数据,李四: 接收重要保密数据,服务器维护: 张三和李四的邮箱密码 张三和李四的邮件内容 张三和李四的论坛密码 张三和李四的论坛个人资料 张三和李四的论坛帖子 几乎一切保密措施,服务器系统管理员: 看起来 这些内容比较有趣,这样安全吗?,张三将银行帐号和密码发送给李四 (使用一个小型公钥加密软件),张三: 发送重要保密数据前, 用小型公钥加密软件 对数据进行加密, 加密使用李四的公开密钥,李四: 接收数据, 用自己的私有密钥解密,服务器端 即便看到传送的数据, 也无法得知具体信息 因为没有李四的私有密钥, 她的私有密钥保存在自己的电脑,服务器系统管理员: 全是乱
4、码 _b,RSA保障 非常安全,这个小型RSA加密软件所应该实现的功能 能加密任意小型文件 加密生成文本 密钥可以保存和读取 可以随机生成密钥 密钥位数可以根据需要设定,2. RSA文件加密软件的设计与实现,工程设计 各部分的具体开发,工程设计 java平台实现 优点:标准库中有公钥加密功能的实现,开发容易,可以快速完成跨平台 缺点:虚拟机执行效率低,不适合大量运算 .Net平台实现 优点:供开发的语言多,标准库中有公钥加密功能的实现, 开发非常容易,可以非常快速完成 成品组件便于被.Net的其他语言引用 缺点:虚拟机执行效率低,不适合大量运算暂只限于Windows操作系统 Win32应用程序
5、 优点:用本地化代码实现,执行效率高,适合大量运算 缺点:代码繁琐不易维护只限于Windows操作系统 综合考虑,分层设计 把核心运算功能用本地化代码实现, 文件操作和图形界面借助流行的平台快速开发 既方便了各层的引用,也顾及了执行效率,软件各层次的说明(设计论文图2-2),各部分的详细介绍 C+核心类库(RSA算法实现) 对应最前面的RSA算法的概述, 我们看到要完成的编码主要有以下部分: 大数存储和四则运算, 如n=pq 解不定方程, 如de=1 (mod (p-1)(q-1),已知e,求d 大数幂模运算, 如b=ae mod n,c=bd mod n 寻找随机素数 即随机的p和q,C+核
6、心类库中各类的关系(论文中图2-7),class flex_unit 大数运算和存储最基本的类,主要实现超大整数的存储和索引管理。 class vlong_value 是flex_unit的派生类,在灵活大数存储的基础上实现四则运算函数。 class vlong 以vlong_value为基础(将一个vlong_value指针作成员),重载运算符。 class monty 为RSA准备大数求幂运算的函数,vlong的友元。 class Prime_factory_san 素数工厂,寻找大素数的类。 class RSA_san 在前5个类的基础上,实现RSA核心算法的类,组建工程设计,flex_
7、unit monty vlong_value vlong 四个类实现了超大整数的存储和计算功能 Prime_factory_san 用来寻找素数 RSA_san 是RSA核心算法的简单实现 此类依赖前面叙述的五个类或其对象 DLL的纯C接口函数大多是直接调用类RSA_san的功能 Sanpack_rsa 是C#类,除了dll基本功能的直接引用,还添加了随机字串生成和字串编码函数 整个工程最终的用户界面由C#窗体给出,引用类Sanpack_rsa,通过其实例实现文件加密功能,封装成DLL组件 把可能用到的功能全部规划为新文件中的全局函数,并以C接口导出,即_declspec(dllexport)
8、 C接口的DLL组件可以被诸如VB6、Delphi、PowerBuilder等开发环境方便的引用。 DLL组件可以自己在全局函数中实现一些其他功能,作为对核心类库功能的补充。,引用DLL组件的.Net类与 实现文件操作的窗体应用程序 在C#编写的.Net类里,使用特性DllImport(sanpack_rsa.dll)引用C接口的DLL组件。类中接口DLL的函数都以静态成员的方式对外公开,其他.Net程序可以直接使用。 文件操作使用.Net基础类库中的System.IO中的类实现。一般因为文件操作十分简单,用流输入输出的方式包装完成。 窗体等图形操作界面直接由Visual Studio的所见即
9、所得的方式完成,不需要编码实现。,启动加密软件,1. 获得随机计算出的密钥,点击这里,会随机生成素数,刷新各参量的值,不要忘记保存生成的密钥,在保存对话框中输入要保存的文件名字,确定后会生成两个文件,一个是私密密钥,一个是公开密钥。其中私密密钥需要妥善保管,公钥公开。别人如果需要发给你重要数据,就用你公开的密钥加密,然后把加密后的数据给你。,2。数据加密的一般过程,载入需要接收数据一方的公钥,在得到对方的公钥文件后,如上图,点击从文件载入。,选择对方的公开密钥文件,双击载入。,载入成功,会出现类似上图提示。,如上图,载入要加密的文件。注意文件不应该过大,一般,默认选项加密速度是1kB需要50秒左右(AMD2200+CPU),载入成功后会类似上图提示,如上图,一般,要加密点击这项即可,在弹出的对话框输入要生成的加密文件的文件名,确定以后开始加密,过程十分漫长。加密成功输出整个加密好的文件以后,会类似上图提示。一般,加密以后的文件会是原文件的50-200倍大。,3。数据解密的一般过程,首先要载入自己的私密密钥。要和加密对应的公钥配对。,载入成功以后出现类似上图的提示。,载入要解密的文件。,载入成功以后出现类似上图的提示。,选择解密方式,通常使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026年)新闻记者资格证及新闻写作相关知识考试题库(附答案)
- 保洁岗位院感防控知识考核试卷及参考答案
- 关于取消次月市场推广活动的商洽函(5篇范文)
- 游戏策划师游戏开发行业KPI考核表
- 重大版高中英语必修一Unit1学情诊断卷(含答案)
- 2027中国长江三峡集团有限公司高校毕业生专项招聘笔试模拟试题及答案解析
- 2026年湖北电信人员招聘考试备考试题及答案
- 人力资源部门招聘效率与效果绩效评定表
- 食品饮料质量监管人员绩效分析表
- 四川三江智谷重点产业人力资源有限公司 2026年第三次公开招聘宜宾人力资源服务产业园项目工作人员(3人)笔试备考试题及答案解析
- (理论测试)2026年四川省党政领导干部政治理论水平综合能力测试题及答案
- 高中语文统编五本教材诗词(情感+手法)汇-总
- 谢氏宗亲联谊理事会工作制度
- 2026年智能油田决策支持系统:技术创新与实践应用
- (2026年)一例脓毒性休克患者的护理查房课件
- 学空翻安全协议书
- 【外科学9版】第37章结直肠与肛管疾病
- 水果茶制作课件
- T∕NSFFB 001-2025 南通市蓝色金融支持项目认定指南
- MEMS传感器课件教学课件
- 国际服务贸易 第3版 课件 2.国际服务贸易理论
评论
0/150
提交评论