信息安全实验LibTomCrypt 实验1.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息安全实验LibTomCrypt 实验1

山东大学 软件 学院 信息安全 课程实验报告?学号:2姓名: 赵班级: 实验题目:利用LibTomCrypt库实验文件的加密和解密实验学时:4实验日期:2016/11/10-2016/12/9硬件环境:?Lenovo G50-70 500g+240g硬盘软件环境:Visual Studio 2013实验步骤与内容:一、知识准备首先我们得到了LibTomCrypt库,另外还有LibTomMath库,使用visual studio 2013。那么我们要 学会怎么使用这两个库: 那么 首先是 在visual studio 2013中打开libTomMath库,直接编译(build),生成项目,然后会在 Debug 文件里面找到 libtommath.lib 文件,然后将这个文件复制到 LibTomCrypt库里面的header里面,然后从VS2013直接打开LibTomCrypt 库,配置一下 库 和 h 头文件的路径,然后直接编译,生成项目。大概向下面那样: 然后我们新建一个工程,并且将以 libtomcrypt开头的 .h 文件,全部复制到我们新建的引用库的 include 文件夹里面 里面可以开始在我们工程 Crypt 里面引用我们的 .lib 文件。同样需要给这个 Crypt 工程配置库路径和 头文件路径,如下面:另外还需要添加一个.lib的名字然后我们就可以编写代码了。首先我们要对 LibTomCrypt 库有个理解,然后我们需要引入tomcrypt.h的库,然后我们需要了解有多少加解密方法:在这里 我们用到了 AES DES BlowFish 三种方法、然后我们还要看一下有多少个加解密模式。密码算法的工作模式就是怎样使用密码算法来达到一定的目的,比如怎样加密一个文件。工作模式有很多种,仅用于加密的,用来构造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 tchar.h//注册 方法int regis(int Method){if (Method == 1){if (-1 == register_cipher(aes_desc)){printf((failed to register_cipher()));return -1;}}else if(Method == 2){ if (-1 == register_cipher(blowfish_desc)){printf((failed to register_cipher()));return -1;}}else if (Method == 3){if (-1 == register_cipher(des_desc)){printf((failed to register_cipher()));ret

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档