密码学实验程序.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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.4RSA算法是我认为最难的,我将其代码主要分为一下几部分编写:生成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)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档