目录
2.2.1分组密码的概念
根据明密文的划分和密钥的使用不同,可将密码体制分为分组密码和序列密码体制。
设中号文明文,
分组密码将M划分为一系列明文块M i,通常每个块包含若干位或字符,并且对于每一块M i都用一个密钥Ke加密。即:
其中
而序列密码将明文和密钥都划分为位(bit)和字符的序列,并且对于明文中的序列中的每一位或字符都用密钥序列中的对应序列来加密,即:
其中
分组密码每次加密一个明文块,而序列密码每次加密一位或一个字符。序列密码是要害部门使用的主流密码,而商用领域多用分组密码。
2.2.2 DES算法
2.2.2.1 DES的加密过程
2.2.2.2子密钥的产生
2.2.3 AES算法
特点:安全、性能好、效率高、实用、灵活。
数据块长度和密钥长度都可变。数据块长度和密钥长度都可以独立的选定为大于等于128位且小于等于256位的32位的任意倍数。美国颁布是规定数据块长度为128位,密钥长度为128位、192位或256位。
结构:对轮函数实施迭代的结构(分组密码的一组通用结构)。只是轮函数结构采用的是代替/置换网络结构(SP结构),没有采用DES的Feistal结构。如下图:AES的轮函数由以下三层组成
(一)非线性层:进行非线性S盒变换ByteSub,由16个盒并置而成,其混淆的作用。
(二)线性混合层:进行行移位变换ShiftRow和列混合变换MixColumn以确保多圈之上的高度扩散。
(三)密钥加层:进行圈密钥加变换AddRoundKey,将圈密钥简单地异或到中间状态上,实现密钥的加密控制作用。
2.2.3.1状态
状态:加解密要经过多次数据变换操作,每一次变换操作产生的一个中间结果。各种不同的密码变换都是对状态进行的。