信息安全实验LibTomCrypt 实验1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

山东大学软件学院

信息安全课程实验报告

实验步骤与内容:

一、知识准备

首先我们得到了LibTomCrypt库,另外还有LibTomMath库,使用visualstudio 2013。

那么我们要学会怎么使用这两个库:

那么首先是在visualstudio 2013中打开libTomMath库,直接编译(build),生成项目,然后会在 Debug文件里面找到 libtommath.lib 文件,然后将这个文件复制到 LibTomCrypt库里面的header里面,

然后从VS2013直接打开LibTomCrypt库,配置一下库和 h头文件的路径,然后直接编译,生成项目。大概向下面那样:

然后我们新建一个工程,并且将以 libtomcrypt开头的 .h 文件,全部复制到我们新建的引用库的 include 文件夹里面里面可以开始在我们工程 Crypt 里面引用我们的 .lib 文件。

同样需要给这个 Crypt工程配置库路径和头文件路径,如下面:

另外还需要添加一个.lib的名字

然后我们就可以编写代码了。首先我们要对 LibTomCrypt库有个理解,然后我们需要引入tomcrypt.h的库,然后我们需要了解有多少加解密方法:

在这里我们用到了 AESDESBlowFish三种方法、

然后我们还要看一下有多少个加解密模式。密码算法的工作模式就是怎样使用密码算法来达到一定的目的,比如怎样加密一个文件。工作模式有很多种,仅用于加密的,用来构造HASH 函数的,仅用于生成消息验证码的,用于伪随机数生成的,既能加密又能同时生成验证码的,专门针对磁盘加密。

然后,我们用到了四个加密模式:CBC,CFB,OFB,CTR

-

二、代码解析

然后,我们就拿CBC模式进行解析一下,首先我们需要注册一下加密方法:

在注册完加密方法之后,我们需要利用int find_cipher(const char *name)

获取已注册的密码算法索引值

下面我们就可以根据选择的加密方法和工作模式进行初始化:

代码如下:

然后我们根据选择的加密还是解密的模式进行相对应的加解密方法:

首先是加密:

我们需要读取明文并且需要创建密文,所以在开始之前我们已经声明了三个文件流的指针变

量,plaintext,cryptText,decryptText.

并且在这里我们需要用到 C语言的 fopen方法,在读文件的时候,我们要以二进制文件的形式来读取,这样会避免一些由于读取文件时候而出现的不必要的错误:

加密流程:

在这里我们首先使用 memset这个函数对读取的明文块长和加密后的密文块进行初始化吧

然后使用fread方法每次读取固定大小的块长,

然后使用cbc_encrypt方法进行加密:

和fewrite方法将加密好的密文 pt写入到文件流里面:

直到文件读取结束,加密完成。

解密流程:

同样我们需要读取密文和创建解密文件:

和加密流程相对应的是我们用到了cbc_decrypt这个解密方法,

并且将解密好的明文写入到文件里面:

直到密文文件读取结束,解密完成。

三、运行测试:

我们选择加密方法和加密模式:然后选择明文-a.txt,再选择密文b.txt,输入IV初始向量和key密钥。

然后我们看一下明文和密文:

然后我们进行解密:

最后我们看一下解密之后的明文:

如图所示,我们看到是加解密成功!

四、代码附录

.// Crypt.cpp : Defines the entry point for the console application. .//

.#include"stdafx.h"

.#include"tomcrypt.h"

.#include

.//注册方法

.int regis(intMethod){

.

.if(Method==1){

相关文档
最新文档