@[密码学复习]
密码学复习
分组密码概述
在许多密码系统中,分组密码是系统安全的一个重要组成部分,用分组密码易于构造伪随机数生成器、流密码 、消息认证(MAC)和 杂凑函数(Hash)等,还可进而成为消息认证技术、数据完整性机制、实体认证协议以及单钥数字签名字体制的核心组成部分。
对分组密码的算法要求
- 分组长度足够大
- 密钥量足够大
- 密码变换足够复杂,充分实现明文与密钥的扩散和混乱。
扩散和混乱 目的抗击敌0手对密码系统的统计分析
扩散:就是将每位明文的影响尽可能地作用到较多的输出密文位中,一遍隐藏明文的统计特性。
混乱:隐藏密文和密钥之间的密码
Feistel密码结构(乘积密码变换)
乘积密码:依次使用两个或两个以上的基本密码,所得结果的密码强度将强于所有当密码的强度
利用乘积密码实现混乱和扩散
S盒代替 P盒换位
普通型:进行简单换位
压缩型:输入比输出数位多,输入的某些二进制数不进行交换
扩展性:输出的数位比输入的多,输入的某些二进制同时与多位输出进行交换
扩展型和压缩型是不可逆的
雪崩效应:输入的明文或者密钥即使只有很小的变化,也会导致输出发生巨大的变化的现象。
分组长度:64位、128位、256位、512位
密钥长度:128位、256位、512位
迭代轮数:一般16轮
子密钥生成算法:越复杂,安全性越高
轮函数:越复杂,抗击能力越强
Li=Ri-1(i=1,2,…n)
Ri=Li-1 异或F(Ri-1,Ki)(i=1,2,…,n)
分组密码的工作模式(5种)
1.电子密码本模式(ECB)