现代密码学第二次实验:分组加密算法DES及其工作模式 | 您所在的位置:网站首页 › DES算法加密的基本原理 › 现代密码学第二次实验:分组加密算法DES及其工作模式 |
现代密码学第二次实验:分组加密算法DES及其工作模式
前言一、实验目的二、实验环境三、实验内容及步骤四、实验要求五、实验程序清单六、实验结果七、实验总结
前言
为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正! 一、实验目的1、掌握DES算法的工作原理。 2、熟悉分组加密算法的4种工作模式(OFB模式可不做)。 3、了解DES的雪崩效应。 二、实验环境Microsoft Visual Studio 2019 三、实验内容及步骤(1)编程实现DES算法。 (2)改变1位明文观察输出DES算法的16轮输出,几轮后密文变化达到32位以上。 (3)改变1位密钥观察输出DES算法的16轮输出,几轮后密文变化达到32位以上。 (4)在电码本模式和分组链接模式中,在最少64个分组的明文中,观察当一个密文分组错误时,还原的明文有几个分组错误。 (5)在密码反馈模式和输出反馈模式中,在最少64个分组的明文中,观察当一个密文分组错误时,还原的明文有几个分组错误。** 四、实验要求(1)编写一个DES算法,*输出其每一轮的加密结果并显示在屏幕上。 (2)编程实现对文件的加密,加密模式:电码本、分组链接模式; (3)*额外要求:编程实现密码反馈模式和输出反馈模式。 说明: (1)DES算法可以自编,也可以网上下载现成算法。 (2)四种工作模式的程序可以自编,也可以利用OpenSSL、VS的framework、cryptopp加密包编程。 (3)基本DES算法要想输出每轮的加密结果,请参照C程序;使用C#编程可以实现电码本、分组链接、密码反馈模式。 五、实验程序清单一、编写一个DES算法,输出其每一轮的加密结果并显示在屏幕上。
(1)程序设计的思想,及程序关键原代码。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Security.Cryptography; using System.IO; namespace SecTest { public partial class DesForm : Form { public string str1; public string MFileNamestr1; public string CFileNamestr; public string MFileNamestr2; public static string ToHexString(byte[] bytes) // 0xae00cf => "AE00CF " { string hexString = string.Empty; if (bytes != null) { StringBuilder strB = new StringBuilder(); for (int i = 0; i |
CopyRight 2018-2019 实验室设备网 版权所有 |