加解密一(feistel网络)

分组加密的基础

大多数分组密码结构本质上都是基于feistel网络结构,因此,了解feistel密码结构对于学期其他加密算法是有帮助的。

加密的过程

在feistel网络中,加密的各个步骤成为(Round),整个加密的过程就是进行若干次轮的循环。下图是一轮的计算流程。

一轮

一轮的具体计算步骤如下:

  1. 将输入的数据等分为左右两部分;
  2. 将输入的右侧直接发送到输出的右侧;
  3. 将输入的右侧发送到轮函数;
  4. 轮函数根据右侧数据和子密钥,计算出一串看上去是随机的比特序列;
  5. 将上一步得到的比特序列与左侧数据进行XOR运算,并将结果作为加密后的左侧。

那么整个feistel的构造过程,如下左所示

输入图片说明

如果用公式描述,可以这样

  1. 讲明文分成两部分(L0, R0)
  2. 每一轮进行如下操作: Li+1 = Ri Ri+1 = Li⊕F(Ki, Ri)

影响因素

  1. 块的大小:(Li+Ri)大的块会提高安全性,但是会降低加解密的速度,通常块大小使用64和128bit
  2. 密钥的大小
  3. 子密钥的生成算法
  4. 轮函数F的复杂度
  5. 循环次数

那么不同的算法,也就是上面影响因素设置的不同,当然这只是基础原理,后面会结合某一具体算法来说明。

参考:《图解密码计算》

转载于:https://my.oschina.net/u/1249401/blog/759529

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值