分组密码的结构
分组密码的结构
商农的密码设计方法
- 扩散(diffusion):将明文和密钥的每一位的影响散布到尽量多的密文位中。
- 混淆(confusion):使明文,密钥和密文之间的关系复杂化。
- 迭代:轮函数迭代
- 乘积:多密码复合
分组密码的结构可以分为以下几种类型
1.Feistel结构
- Feistel结构于1973年提出这种结构,根据商农的思想来设计分组密码。
- 优点:
- 不管f是什么函数,基本函数都是可逆的,进而确保轮函数可逆以及整个密码算法可逆。
- 由于基本函数是对合的,进而确保轮函数是对合的以及整个密码算法是对合的。
- 这使得密码算法的设计变得比较容易。
- 缺点:
- 扩散较慢,算法迭代2轮才能改变输入的每一位。
- 成功实例DES
- S盒实现混淆,P置换实现扩散,构成一个复杂的轮函数。
- 算法是对合的,工程实现节省一半。
- 密码是安全的。
- Feistel结构得到广泛应用与发展
- DES,FEAL,GOST,LOKI,E2,BLOWFISH,RC5等著名密码都采用Feistel结构。
- 除了标准Feistel结构外,被推广到非平衡Feistel结构。
- 标准Feistel结构中,左右两半数据等长。而非平衡Feistel结构中左右两块数据长度不同。
2.SP结构
S(Substitution)P(Permutation)结构
- 用非线性S盒实现混淆,称为混淆层。
- 用线性置换实现扩散,称为扩散层。
- 在混淆层之前设置一个受密钥控制的前置处理层。
- 或者在扩散层之后设置一个受密钥控制的后置处理层。
- 优点:
- 结构清晰,容易分析和把握每层的密码学指标,从而把握密码的安全性。
- 扩散较Feistel结构快
- 缺点:
- 不容易得到对合的密码算法
- 要注意密码算法迭代的开始和最后处理,应有密钥参与的密码变换。
- 应用实例:
- AES,MARS,SAFER,SHARK等密码都采用SP结构。
3.滑动窗口结构
代表密码SMS4
结构特点
- 仍然是轮函数迭代结构
- 但是,具有密文链接的特点。每轮加密产生的最后一个密文字加入到下一轮的加密过程中,第一个密文字退出加密。相当于一个窗口在移动。
- 因此,形象地称为滑动窗口型。如图:
- 优点
- 容易得到对合的密码算法
- 缺点
- 迭代轮数多
- 目前实例较少
- 应用实例
- SMS4采用这种结构
4.Lai-Massey结构
代表密码IDEA
分组密码的应用技术
一、计算机数据的特殊性
1.存在明显的数据模式
- 许多数据都有某种固有的模式。这主要是由数据冗余和数据结构引起的。
- 各种计算机语言的语句和指令都十分有限,因而在程序中便表现为少量的语句和指令的大量重复。
- 各种语言程序往往具有某种固定格式。
- 数据库的记录也往往具有某种固定结构。
- 操作系统和网络协议也有固定的问题。
- 根据明文相同。密钥相同,则密文相同的道理,这些固有的数据模式将在密文中表现出来。
- 掩盖明文数据模式的方法:
- 1.随机掩盖技术:
- 使用一个随机序列掩盖明文数据,从而消除明文中的数据模式。
- 缺点:通信双方必须共享该随机序列,带来许多的麻烦。
- 2.链接技术:
- 使前后明文块以及密文块彼此关联起来,从而消除铭文中的数据模式
- 如果不能掩盖数据模式,即使采用安全的密码算法也是徒劳的。
2.分组密码用于数据加密存在短块问题:
- 设明文M长度为n1,分组密码的明文分组长度为n2,如果n1不是n2的整数倍,则最后一块要加密的数据块的长度必须小于明文分组长度n2,称此数据块为短块。
- 分组密码不能直接加密短块数据,必须采用特殊的方法处理短块。
分组密码的工作模式
1997年DES颁布,1981年美国政府针对DES的应用,制定了DES的四种基本模式:
- 电码本模式(ECB)
- 密文反馈链接模式(CBC)
- 密码反馈模式(CFB)
- 输出反馈模式(OFB)
2000年美国在征集AES的同时又公开征集AES的工作模式,共征集到15个候选工作模式。
- 经过评审选定了几个新的工作模式。
- 这些新的工作模式将为AES的应用做出贡献。
1.电码本模式(ECB)
2.密文反馈链接模式(CBC)
1.明密文链接方式
- 错误传播
- 加密时,明文或者密文发生错误引起对应密文以及其后续密文发生错误。
- 解密时,密文或者明文发生错误引起对应明文以及其后续明文发生错误。
- 如果密码算法的输入数据错误只引起对应的几个输出数据错误,则成为错误传播有界。
- 如果密码算法的输入数据错误引起对应的输出数据及其后续的输出数据全部错误,则称为错误传播无界。
- 明密文链接方式
- 加密是在发送端进行的,加密时明文和密文发生错误的概率较小。
- 解密是在接收端进行的,解密时明文和密文发生错误的概率较小。
- 但是,明文是经过信道传输的,因此密文在信道中受干扰而发生错误的概率较大。
- 错误传播无界的缺点:当磁盘发生一点损坏时将导致整个密文文件无法解释。
- 错误传播无界的优点:可用于数据完整性、真实性认证。
- 如图为分组密码的工作模式:
- 明密文链接方式具有加解密错误传播无界的特性,而磁盘文件加密和通信加密通常希望揭秘错误传播有界,这是可采用密文链接方式。
2.密文链接方式(Ciphertext Block Chaining)
工作模式如下:
3.输出反馈模式(OFB)
- 如果分组密码是安全的,则产生的密钥序列也是安全的。
- 加解密都没有错误传播
- 适于加密冗余度较大的数据,如语音和图像数据。
- 为了提高速度可输出最右边的8位。
- 因无错误传播,所以对密文的篡改难以检测。
4.密码反馈模式CFB(Cipher Feedback)
- CFB模式也是用分组密码产生密钥序列。
- 与OFB不同的是,把密文反馈到移位寄存器。
- 加密时若明文错了一位,则影响相应的密文错,这一错误反馈到移位寄存器后将影响到后续的密钥序列错,导致后续的密文都错。
- 解密时若密文错了一位,不仅影响相应的明文错,而且密文的这一错误反馈到移位寄存器后将影响到后续的密钥序列错,导致后续的明文都错。
- 因错误传播无界,可用于检测发现对明密文的篡改。
5.X CBC(Extented Cipher Block Chaining Encryption)模式
- 2000年美国学者John Black和Phllip Rogaway提出X CBC模式,作为CBC模式的扩展,推荐为AES的工作模式,被美国政府采纳作为标准。
- X CBC主要是解决了CBC要求明文数据的长度是码分组长度的整数倍的限制,可以处理任意长的数据。如果用分组密码是安全的,则密钥序列就是安全的。
- X CBC与CBC的区别:
- CBC要求最后一个数据块是标准的,不是短块。
- X CBC即允许最后一个数据块是标准块,也允许是短块。
- 最后一个数据块的加密方法与CBC不同。
- 因为有填充,需要传输填充长度信息。
- X CBC模式的主要优点:
- 有填充,不适合文件和数据库加密。
- 使用3个密钥,需要传输填充长度,控制复杂。
6.CTR(Couter Mode Encryption)模式
- CTR的工作模式的优点:
- CTR模式的优点是安全、高效、可并行、适合任意长度的数据。
- Oi的计算可预处理高速进行;
- 由于采用了模2加实现加密,是对合运算,解密运算与加密运算相同。
- 适合随机存储数据的解密。
- CTR模式的缺点:
- 没有错误传播,因此不易确保数据完整性。
三、短块加密
1.填充技术
- 用无用的数据填充短块,使之称为标准块。
- 为了确保加密强度,填充数据应该是随机的。
- **但是收信者如何知道哪些数字是填充的呢?**这就需要增加指示信息,通常用最后8位作为填充指示符。
- 填充可能引起存储器溢出,因而可能不适于文件和数据库加密。
2.密文挪用技术
3.序列加密
- 对于最后一块短块数据,直接使用密钥K与短块数据模2相加。
- 序列加密方法的优点是简单。
- 但是如果短块太短,则加密强度不高。