【网络安全】数据加密标准(DES算法)详细介绍( 分组密码、Feistel密码结构、轮函数、子密钥生成算法

将被加密明文划分成一个一个的分组,输入n比特明文分组,输出n比特密文分组。

若映射可逆,具有

x

n

!

x^n!

xn! 种替换可能性。

如以下示例,每个4比特输入唯一映射为另一个4比特输出。

2 Feistel密码结构

2.1 什么是Feistel密码结构

1973年由IBM的Horst Feistel首次提出,通过将明文分组分成左右两半部分

  • 左半部分:采用替换操作,
  • 右半部分:采用基于子密钥的轮函数(包括替换和置换组合操作)进行混淆,

如此经过n轮迭代处理后再重新合并组成密文分组

2.2 Feistel密码结构流程图

将Feistel公式化,首先来看加密过程,

  • 每一轮的左半部分是上一轮的右半部分
  • 每一轮的右半部分是 (上一轮的右半部分进入一个F操作,且要输入这一轮的密钥

K

i

K_i

Ki​ ),然后产生的解再与上一轮的左半部分进行异或操作

那清楚了加密的过程,能不能反推解密的公式呢?答案是可以的,由于

R

E

i

1

RE_ {i-1}

REi−1​等于

L

E

i

LE_i

LEi​,所以解密公式的各个变量都是已知的。所以分组密码是可逆的。

用流程图画出来就是这样的:

那F操作(F函数)是不是可逆的吗?但其实F操作没有要求,可逆也可以 ,不可逆也可以。因为加密的时候用的是F操作,解密的时候也是用的F操作,所以在加密解密的F操作都是正操作,也就都没有用到F操作的逆操作。这里面很大的原因还是Feistel的巧妙结构,分为左右两个部分才能使得F操作可以不可逆,如果只有一个部分那就要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值