实验3 对称密码算法DES
实验3 对称密码算法DES(验证型)
一、 实验目的
通过用DES算法对实际的数据进行加密和解密来深刻了解DES的运行原理。
二、 实验原理
DES算法属于分组加密算法,即在明文加密和密文解密过程中,信息都是按照固定长度分组后进行处理的。混淆和扩散是它采用的两个最重要的安全特性。混淆是指通过密码算法使明文和密文以及密钥的关系非常复杂,无法从数学上描述或者统计。扩散是指明文和密钥中的每一位信息的变动,都会影响到密文中许多位信息的变动,从而隐藏统计上的特性,增加密码的安全。
DES算法将明文分成64位大小的众多数据块,即分组长度为64位。同时用56位密钥对64位明文信息加密,最终形成64位的密文。
需要注意的地方是掌握DES算法的16轮加、解密流程以及子密钥的产生流程。
三、 实验环境
运行Windows或者Linux操作系统的PC机,具有gcc(Linux)、VC(Windows)等C语言编译环境。
四、实验内容
1、算法分析
(1)写出DES算法的16轮加、解密流程; (2)写出子密钥的产生流程;
2、下载DES算法的实现程序,并调用其程序对一个文件进行加密和解密,提交程序代码和执行结果。
3、调用下载的DES算法的实现程序对输入的十六进制数加密,比较输入和输出,当改变一个位时比较输出的变化,并说明原因。 五、实验步骤
1、
(1)、
(2)、
#include \
2、打开VC++,编写程序如下: #include \ // #include \ #include \
#define PLAIN_FILE_OPEN_ERROR -1 #define KEY_FILE_OPEN_ERROR -2