(网络空间安全技术实践)6.1des密码算法编程实验

上传人:繁星 文档编号:88148871 上传时间:2019-04-20 格式:PPTX 页数:12 大小:311.75KB
返回 下载 相关 举报
(网络空间安全技术实践)6.1des密码算法编程实验_第1页
第1页 / 共12页
(网络空间安全技术实践)6.1des密码算法编程实验_第2页
第2页 / 共12页
(网络空间安全技术实践)6.1des密码算法编程实验_第3页
第3页 / 共12页
(网络空间安全技术实践)6.1des密码算法编程实验_第4页
第4页 / 共12页
(网络空间安全技术实践)6.1des密码算法编程实验_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《(网络空间安全技术实践)6.1des密码算法编程实验》由会员分享,可在线阅读,更多相关《(网络空间安全技术实践)6.1des密码算法编程实验(12页珍藏版)》请在金锄头文库上搜索。

1、6.1 DES密码算法编程实验,实验目的: 掌握DES密码加解密原理,并利用Visual C+编程实现。 实验内容: 编程实现字符串”Hi, this is DES!”的加密,并且解密验证之。,网络空间安全实践教程,1,6.1 DES密码算法编程实验,实验原理: 明文分组:64bit 密钥:64bit(实际只有56bit) 密文分组:64bit 加解密:使用16轮Feistel网络结构,网络空间安全实践教程,2,6.1 DES密码算法编程实验,实验原理: 密钥扩展 输入64位密钥,扩展成16轮的轮密钥K1, K2,K16 轮变换 每一轮核心运算,输入右分组(32位), 轮密钥(48位),输出3

2、2位 加解密 输入明文64位,进行初始置换IP,对置换后的数据X0分成左右两半L0与R0,利用轮函数f实施16次轮变换,得到L16与R16,最后进行逆初始置换IP-1,得到密文64位 DES的加密和解密几乎一样,不同之处在于加密时输入是明文,子密钥使用顺序为K1,K16;解密时输入是密文,子密钥使用顺序为K16,K1。,网络空间安全实践教程,3,6.1 DES密码算法编程实验,实验原理: 密钥扩展: 输入初始密钥64位,输出16轮子密钥K1K16。 初始密钥64位经过置换PC-1,去掉8个校验位 留下56位。 接着分成左右两个28位的分组,分别经过 循环左移函数,再连成56位 然后经过置换PC

3、-2,输出子密钥K1。 以此类推产生K2至K16。,网络空间安全实践教程,4,6.1 DES密码算法编程实验,实验原理: 轮变换: 输入32位右分组Ri-1,48位轮密钥Si,输出32位。 将Ri做扩展运算E,变成48位,记E(Ri-1), 与Si异或,得到E(Ri-1)Si 将上步输出分为8组,每组Bi为6位,通过相应 的S盒Si,输出Ci为4位,将所有Ci连成C(32位)。 再通过置换P,得到最后的输出32位 在加密的第i轮,A = Ri-1,J = Ki,网络空间安全实践教程,5,6.1 DES密码算法编程实验,实验原理: 加解密: 输入明文分组64位,输出密文分组64位。 对明文分组6

4、进行初始置换IP。 对IP后的数据分成左右两半L0与R0,利用轮函数f 与轮密钥Ki实施轮变换, Li = Ri-1 Ri = Li f (Ri-1, Ki) 16轮后得到L16与R16(最后一轮的左右两半互换) 进行逆初始置换IP-1,得到密文分组64位,网络空间安全实践教程,6,6.1 DES密码算法编程实验,实验要点说明: 模块化编程: 为了增加程序的正确性和可读性,可维护性,建议实现模块化编程,将算法实现的功能写成若干子函数进行调用。 变换函数: DES中的所有变换都可以写成函数,变换前为输入,变换后为输出。变换表由Table来引导,变换后的长度由len参数输入。Temp可自己设定,参

5、考如下代码: void Transform(bool *Out, bool *In, const char *Table, int len) for(int i=0;ilen;+i) Tempi = InTablei-1; memcpy(Out, Temp, len); ,网络空间安全实践教程,7,6.1 DES密码算法编程实验,实验要点说明: 字符转化为位:可参考如下代码 void ByteToBit(bool *Out, const bool *In, int bits) /输入为字符In,输出的二进制位存放在Out for(int i=0; i3 (i ,网络空间安全实践教程,8,6.1

6、 DES密码算法编程实验,实验准备: Windows 操作系统 Visual Studio 2010以上开发环境,网络空间安全实践教程,9,6.1 DES密码算法编程实验,实验步骤: 利用Visual C+开发环境,构建类似右图的 DES密码加解密界面。 编写加密按钮事件:从明文框中读入 字符序列,从密钥框中读入8字节(64bit) 密钥,对明文进行分组加密运算, 并在密文框中输出。 编写解密按钮事件:从密文框中读入字符 序列,从密钥框中读入密钥,对密文进行 分组解密运算,并在解密的明文框中输出。,网络空间安全实践教程,10,6.1 DES密码算法编程实验,实验结果要求: 根据参考函数功能编写DES加密和解密,给出关键编程思路。 总结实验过程中遇到的问题和经验。,网络空间安全实践教程,11,6.1 DES密码算法编程实验,实验视频:,网络空间安全实践教程,12,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号