加解密一(feistel网络)
2019独角兽企业重金招聘Python工程师标准>>>
文章图片
分组加密的基础 大多数分组密码结构本质上都是基于feistel网络结构,因此,了解feistel密码结构对于学期其他加密算法是有帮助的。
加密的过程 在feistel网络中,加密的各个步骤成为轮(Round),整个加密的过程就是进行若干次轮的循环。下图是一轮的计算流程。
文章图片
一轮的具体计算步骤如下:
- 将输入的数据等分为左右两部分;
- 将输入的右侧直接发送到输出的右侧;
- 将输入的右侧发送到轮函数;
- 轮函数根据右侧数据和子密钥,计算出一串看上去是随机的比特序列;
- 将上一步得到的比特序列与左侧数据进行XOR运算,并将结果作为加密后的左侧。
文章图片
如果用公式描述,可以这样
- 讲明文分成两部分(L0, R0)
- 每一轮进行如下操作: Li+1 = Ri Ri+1 = Li⊕F(Ki, Ri)
- 块的大小:(Li+Ri)大的块会提高安全性,但是会降低加解密的速度,通常块大小使用64和128bit
- 密钥的大小
- 子密钥的生成算法
- 轮函数F的复杂度
- 循环次数
参考:《图解密码计算》
转载于:https://my.oschina.net/u/1249401/blog/759529
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 开学第一天(下)
- 一个人的碎碎念
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 为什么你的路演总会超时()
- 第326天
- Y房东的后半生14