1、分组密码是对称密码体制。 2、分组密码的作用
- 消息加密 - 消息认证和数据完整性保护 通过用于构造消息认证码(MAC)来实现 构造伪随机数生成器:用于产生性能良好的随机数。 构造流密码 构造其他密码协议的基本模块 如密钥管理协议,身份认证协议等3、分组密码是将明文消息经过二进制编码后的序列分成固定长度的组,用同一密钥和算法对每一组加密,输出也是固定长度的密文分组。 4、分组密码要求:
5.分组密码的基本设计原则 实现、安全
安全原则 1、混淆原则 混淆性:所设计的密码应使得明文、密文、密钥之间的依赖关系相当复杂,以至于这种依赖关系对密码分析者来说是无法利用的。 2、扩散原则 扩散是指所设计的密码应使得 (1)密钥的每一个比特影响密文的每一个比特,以防止对密钥进行逐段破译; (2)明文的每一个比特影响密文的每一个比特,以便最充分地隐蔽明文的统计特性。 这一准则强调微小输入改变能够导致输出的多位变化。 实现行设计原则 1、软件实现的设计原则 2、硬件实现的设计原则6、分组密码的设计
1、直接构造密码学性质强的复杂函数 2、构造密码学性质相对较弱的简单函数,并且基于简单函数进行多次迭代7、迭代分组密码
每次迭代称为一轮,相应的函数F称为轮函数 每一轮输入都是前一轮输出的函数 其中Ki是第i轮的子密钥,由秘密密钥K作为种子,密钥通过密钥扩展算法生成补充:
轮函数F S盒:非线性部件,规模较小,局部混淆 非线性关系:实现混淆 规模:较小 局部:多个S盒之间没有关联,混淆是在各个S盒之内进行,是局部的 置换P:线性部件,整体扩散8、在分组密码中,必须处理一个问题----填充 要求填充是可逆的。
1)Zeros填充算法 2)X923填充算法 3)PKCS7填充算法 4)ISO10126填充算法Feistel密码结构是基于1949年香农提出的交替使用替换和置换方式构造密码体制的设想提出的。 1、Feistel型的分组密码的安全性取决于一下几个方面:
1)明文消息和密文消息的分组大小 2)子密钥的大小 3)循环次数 4)子密钥产生算法 5)轮函数F2、F函数的设计准则
严格的雪崩准则SAC 位独立准则BIG 保证的雪崩准则GAC