【实验目的】

  1. 掌握DES算法的工作原理;
  2. 熟悉分组加密算法的工作模式。
    【实验原理】
    1.DES的基本原理
    其入口参数有三个:key、data、mode。Key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。
    2.分组密码工作模式
    DES的工作模式:电码本模式(ECB)、密码分组链接模式(CBC)。
    ECB模式的加密过程:

CBC模式的加密过程:

DESede工作模式 des四种工作模式_DESede工作模式

【实验要求】

1.用C或C++语言编写一个DES算法,输出其每一轮的加密结果并显示在屏幕上。

DESede工作模式 des四种工作模式_算法_02

2.编程实现对文件的加密,加密模式:电码本、分组链接模式;
说明:将明文:12234567890,分成2组:122345678、90,分组加密。

电码本模式:

输入明文为16个1,密匙为001

DESede工作模式 des四种工作模式_密码学_03

16个1被分成两组8个1,两个分组加密后的结果一致

DESede工作模式 des四种工作模式_c++_04


DESede工作模式 des四种工作模式_DESede工作模式_05

分组链接模式:

相同的需要加密的文本,由于第二组转换后的数组与第一组的密文数组进行了异或,所以尽管输入相同,输出却不同。

16个1被分成两组8个1,两个分组加密后的结果不一致

DESede工作模式 des四种工作模式_DESede工作模式_06

DESede工作模式 des四种工作模式_工作模式_07

【实验内容】

2.改变1位明文观察输出DES算法的16轮输出,几轮后密文变化达到32位以上;

答:明文分别为:01234567和01234566,密钥都为a,两轮输出之后,密文变化达到32位以上

DESede工作模式 des四种工作模式_工作模式_08


DESede工作模式 des四种工作模式_密码学_09

3.改变1位密钥观察输出DES算法的16轮输出,几轮后密文变化达到32位以上;

答:明文是12345678,密匙为分别为:Legends和Legend,两轮之后密文变化达到32位以上。

DESede工作模式 des四种工作模式_DESede工作模式_10


DESede工作模式 des四种工作模式_算法_11

4.在电码本模式和分组链接模式中,在最少64个分组的明文中,观察当一个密文分组错误时,还原的明文有几个分组错误。
答:在电码本模式中,当一个密文分组错误时,还原的明文有一个分组错误。
在分组链接模式中,当一个密文分组错误时,还原的明文有两个个分组错误。