实验三 编程实现DES的工作模式

【实验目的】

  1. 掌握DES算法的工作原理;
  2. 熟悉分组加密算法的工作模式。
    【实验原理】
    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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值