密码学实验

2019-08-20 18:46

《信息安全导论》

实验报告

实验名称:

密码学实验

学员姓名: 培养类型: 所属学院: 指导教员: 所属单位:

杨毅 科学和工程技术类 计算机学院 赵文涛

学号: 专业: 年级: 职称:

201406043013 信息安全 2014级 教授

计算机学院网络工程系

计算机学院网络工程系制

1、

实验名称

密码学实验

2、 实验简介

基于Crypto++库的加密程序设计。通过搭建基于Crypto++库调用的环

境,来完成文件加密,文件完整性检测,数字签名这一系列功能。

Crypto++ 库是一个用c++ 编写的密码类库,是一个得到广泛应用的开源软件,提供了密码学中的大多数加密算法,算法可靠,接口丰富易用。

密码学中的加密分为对称加密和非对称加密。常见的对称加密算法有AES算法和DES算法,对称加密采用唯一的密钥,加密和解密都用同一密钥,特点包括操作检测,速度快,适合大规模文件的加解密。由于RSA计算过程进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,所以这里我采用DES算法。

密码学中的完整性检测依靠的是哈希(Hash)算法,又称三列算法。哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式,常用的哈希算法包括MD5,SHA-0,SHA-1等。这里我采用MD5。

数字签名同样依靠非对称加密算法,正如我所用的RSA算法,与加密时不同的是,签名时,发送方用自己的私钥对文件进行加密,当接收方接收到文件后,再用发送方的公钥对文件进行解密。

3、 实验设计

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解密


密码学实验.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:PES2012和PES2011相比新增操作

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: