【实验目的】
- 掌握DES算法的工作原理;
- 熟悉分组加密算法的工作模式。
【实验原理】
1.DES的基本原理
其入口参数有三个:key、data、mode。Key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。
2.分组密码工作模式
DES的工作模式:电码本模式(ECB)、密码分组链接模式(CBC)。
ECB模式的加密过程:
CBC模式的加密过程:
【实验要求】
1.用C或C++语言编写一个DES算法,输出其每一轮的加密结果并显示在屏幕上。
2.编程实现对文件的加密,加密模式:电码本、分组链接模式;
说明:将明文:12234567890,分成2组:122345678、90,分组加密。
电码本模式:
输入明文为16个1,密匙为001
16个1被分成两组8个1,两个分组加密后的结果一致
分组链接模式:
相同的需要加密的文本,由于第二组转换后的数组与第一组的密文数组进行了异或,所以尽管输入相同,输出却不同。
16个1被分成两组8个1,两个分组加密后的结果不一致
【实验内容】
2.改变1位明文观察输出DES算法的16轮输出,几轮后密文变化达到32位以上;
答:明文分别为:01234567和01234566,密钥都为a,两轮输出之后,密文变化达到32位以上
3.改变1位密钥观察输出DES算法的16轮输出,几轮后密文变化达到32位以上;
答:明文是12345678,密匙为分别为:Legends和Legend,两轮之后密文变化达到32位以上。
4.在电码本模式和分组链接模式中,在最少64个分组的明文中,观察当一个密文分组错误时,还原的明文有几个分组错误。
答:在电码本模式中,当一个密文分组错误时,还原的明文有一个分组错误。
在分组链接模式中,当一个密文分组错误时,还原的明文有两个个分组错误。
源代码下载地址:DES.7z