《图解密码技术》读书笔记(二)——DES算法原理

本文介绍了Feistel网络的基本结构及其在加密与解密过程中的应用。Feistel网络通过多轮迭代,实现数据的加密处理,每轮包括数据划分、轮函数计算及XOR运算等步骤。解密过程则采用相反顺序的子密钥。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


DES的基本结构为Feistel网络。

(一)Feistel网络的加密过程

在Feistel网络中,加密的各个步骤,称为轮round,整个加密过程就是经过若干次轮的循环。

下图是Feistel网络一轮的运行过程。




用文字描述一轮:

1. 将输入的数据等分为左右两部分;

2. 将输入的右侧,直接发送到输出的右侧;

3. 将输入的右侧发送到轮函数;

4. 轮函数根据右侧数据和子密钥,计算出一串看上去是随机的比特序列;

5. 将上一步得到的比特序列与左侧数据进行XOR运算,并将结果作为加密后的左侧。


经过一轮之后,可以看到,左侧数据得到了加密,右侧数据没有加密。

此时开始第二轮,将左侧已加密的数据移动到右侧,右侧未加密数据移动到左侧,然后执行一轮加密。

此时,经过轮换,可以看到左右两侧都得到了加密。

DES就是一种16轮的Feistel网络。


(二)Feistel网络的解密过程

事实上,根据XOR的性质,将一轮加密的输出结果,用子密钥重新运行一次,都能够将密文正确还原为原文。

看从下图观察还原过程:



因此,Feistel网络的解密操作,只需要用相反的顺序来使用子密钥就可以完成了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值