分组密码(Feistel密码结构)
来源:互联网 发布:87版红楼梦配乐知乎 编辑:程序博客网 时间:2024/06/05 20:40
代换
扩散和混淆
Feistel密码结构
Feistel加密结构
Feistel加密算法的输入是长为2w的明文和一个密钥K=(K1,K2...,Kn)。将明文分组分成左右两半L和R,然后进行n轮迭代,迭代完成后,再将左右两半合并到一起以产生密文分组。其第i轮迭代的函数为:
Li=Ri-1
Ri=Li-1+F(Ri-1,Ki)
其中Ki是第i轮的子密钥,“+”表示异或运算,F表示轮函数。一般地,各轮子密钥彼此各不相同,且轮函数F也各不相同。代换过程完成后,在交换左右两半数据,这一过程称为置换。Feistel网络的结构如下:
显然,Feistel网络的安全性与以下参数有关:
1.分组大小
2.密钥大小
3.子密钥产生算法
4.轮数
5.轮函数
Feistel解密结构
本质上与加密过程一样,将密文作为输入,以相反次序使用子密钥,保证加密和解密可以采用同一算法。以16轮加密为例,在加密过程中,LE16=RE15,那么在解密过程中,LD1=RD0=LE16=RE15,其中E表示加密(Encode),D表示解密(Decode)。
- 分组密码(Feistel密码结构)
- Feistel 密码结构简单理解
- Python实现一个简单的Feistel结构的密码算法
- 分组密码的整体结构
- 分组密码
- 分组密码
- 【密码学】分组密码:DES密码
- 密码学基础知识(四)分组密码
- 三个分组密码算法
- 分组密码算法分析
- 分组密码算法分析
- 分组密码加密模式
- 分组密码算法分析
- 密码学之分组密码
- RC5分组密码算法
- 分组密码算法
- 分组密码工作模式
- 【寒江雪】分组密码模式
- Java 线程run start区别
- cas搭建之客户端搭建
- java对象的序列化和反序列化
- vjkoljl
- UnityVS(Visual Studio Tools For Unity)的安装与使用
- 分组密码(Feistel密码结构)
- Hook HeapAlloc遇到的问题
- cocos2dx EventListenerCustom类控制事件的分发 处理不同层之间的事件传递以及自定义用户数据
- makefile教程
- 强大的vim配置文件,让编程更随意
- eclipse里面找不到server选项
- android客户端认证服务端的两种方式
- UILabel的行间距
- WordPress 、Drupal和Joomla 到底哪个好?