- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
密码学实验讲解
《信息安全导论》
实验报告
实验名称:密码学实验
学员姓名:杨毅学号:201406043013培养类型:科学和工程技术类专业:信息安全所属学院:计算机学院年级:2014级指导教员:赵文涛职称:教授所属单位:计算机学院网络工程系
计算机学院网络工程系制
实验名称
密码学实验
实验简介
基于Crypto++库的加密程序设计。通过搭建基于Crypto++库调用的环境,来完成文件加密,文件完整性检测,数字签名这一系列功能。
Crypto++ 库是一个用c++ 编写的密码类库,是一个得到广泛应用的开源软件,提供了密码学中的大多数加密算法,算法可靠,接口丰富易用。
密码学中的加密分为对称加密和非对称加密。常见的对称加密算法有AES算法和DES算法,对称加密采用唯一的密钥,加密和解密都用同一密钥,特点包括操作检测,速度快,适合大规模文件的加解密。由于RSA计算过程进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,所以这里我采用DES算法。
密码学中的完整性检测依靠的是哈希(Hash)算法,又称三列算法。哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式,常用的哈希算法包括MD5,SHA-0,SHA-1等。这里我采用MD5。
数字签名同样依靠非对称加密算法,正如我所用的RSA算法,与加密时不同的是,签名时,发送方用自己的私钥对文件进行加密,当接收方接收到文件后,再用发送方的公钥对文件进行解密。
实验设计
3.1总体设计。
按照实验指导书上的指导,跟着步骤走完成安装实验环境和配置Crypto++,接着操作与使用Crypto++库完成文件加解密、文件完整性检测、数字签名程序的编写,并运行截图。再实现文件加密、完整性检测、数字签名等多种功能的组合,以便于可以方便调用三种功能。
,
3.2功能设计。
先将三种功能分别实现,继而将三种功能放在一起方便使用。
3.3代码设计。
3.3.1先确定需要用的各种头文件,并在include后面设置命名空间,引用Crypto++库。如下图1
图1 添加头文件,命名空间,库
3.3.2DES算法的主要难度相对较小,主要代码在于以二进制打开文本,进行读取加密解密。主要代码布置如图2
图2 DES算法主要代码
3.3.3MD5算法难度也不大,我编写的主要代码如下图3所示
图 3 MD5算法主要代码
3.3.4 RSA算法是我认为最难的,我将其代码主要分为一下几部分编写:生成RSA密钥对、加密、解密、签名、检验签名如下图4、5、6、7所示。
图4生成RSA密钥对
图5加密
图6解密
图7签名及验证签名
3.3.5主要借助循环来完成各种功能的调用如图8所示。
图8综合应用
实验结果及分析
搭建基于Crypto++库调用的环境。
这一项目比较简单,只需要按照实验指导书上的步骤走即可在调试项目时第一次会报错,但第二次在\crypto562\win32\Output\Release目录下生成cryptlib.lib文件,具体原因未知,其余步骤一切正常。
文件加密
采用操作检测,速度快,适合大规模文件的加解密的对称性算法DES算法,编写程序并运行截图如下图10所示。在程序完成后的调试中,我首调试便无法通过如下图9。经过仔细的探研,终于发现因为挪用过CryptoPP文件夹,导致自己的二进制目标文件夹输入错误,致死无法运行。
前期,我完成了第一个程序,输出TXT文件如下图11;后根据教辅的资料编程程序输出如图12所示。
图9目标文件错误
图10文件加密(DES算法)
图11 第一截图
图12.DES输出第二截图
完整性检测
借助哈希算法(MD-5)完成文件完整性检测,编写程序并运行,且截图如下图12所示。借助于资料终于完成程序编写,但显示“CryptoPP”中无成员“FileSource”,如图11所示。经过多方发现终于知道资料并不一定就对,在加入头文件“#include files.h”后,终于运行成功得到图三。
图11 缺乏头文件的报错
图12文件完整性检测(MD-5)
数字签名
依靠非对称性算法(RSA算法)编写程序。运行并截图如下图5所示。生成RSA密钥对,加密,解密,签名,验证签名
图13 数字签名(RSA)
进阶综合运用
这里有三个cpp文件调用,用起来的很不方便。我们可以用一个程序来实现,是用户更方便。
图14综合应用运行图
实验总结
这是我第一次学习专业课的学习,我感到十分的激动。在本次试验
文档评论(0)