1、什么是分组密码的操作模式
通常,分组密码算法(如典型的DES,AES)是提供数据安全的一个基本构件,它以固定长度的分组作为基本的处理单位。分组密码的操作模式就是如何在各种各样的应用中使用这些基本构件。
工作模式不仅能够增强分组密码算法的不确定性,还具有将明文消息添加到任意长度、对错误传播进行控制等作用。
2、主要操作模式
1、电码本模式ECB
用相同的密钥分别对明文分组独立加密
应用:单个数据的安全传输(如一个加密密钥)
优点:可并行运算,速度快;一个密钥可以加密多个消息;
加密速度与分组密码的加密速度相同;易于标准化
缺点:不能进行预处理;分组加密的结果不能隐蔽明文消息模式,即相同的明文组蕴含着相同的密文组;不能抵抗组的重放、嵌入、删除等攻击;
加密长度只能是分组的倍数;一个密文错误会影响当前加密的整个明文分组。
2、密码反馈模式CFB
一次处理s位,上一块密文作为加密算法的输入,产生的伪随机数输出与明文或作为下一单元的密文
应用:面向数据流的通用传播认证
优点:
可以进行预处理;分组加密的结果能隐藏明文消息模式;一个密钥可以加密多个消息;加密速度与分组密码的加密速度相同;可以加密传送小于分组长度的数据。
缺点:
不能进行并行处理;一个明文分组解密错误将影响多个消息分组的解密
3、密码分组连接模式CBC
加密算法的输入是上一个密文组和下一个明文组的异或
应用:面向分组的通用传播认证
优点:引入了随机的初始向量,对于相同的明文消息分组,加密结果具有一定的随机性,使得分组加密结果能隐藏明文消息模式;
一个密钥可以加密多个消息;加密速度与分组密码的加密速度相同
缺点:
不能进行预处理;不能进行并行处理
会出现错误传播,一个密文错误不仅会影响当前加密的整个明文分组,而且会影响下一个明文分组的相应位
4、输出反馈模式OFB
与CFB类似,只是加密算法的输入是上一次加密的输出,且使用整个分组
应用:噪声信道上的数据流传输(卫星通信)
优点:
可以进行预处理;分组加密的结果能隐藏明文消息模式;一个密钥可以加密多个消息;
加密速度与分组密码的加密速度相同
错误传播小,密文中1bit错误只导致明文中1bit错误;可以预处理
消息长度是任意的;可在线处理等
缺点:
不能进行预处理;系统要求通信双方必须同步,否则不能正确解密
一个密文错误会影响当前加密的整个明文分组
5、计数器模式CTR
每个明文分组都与一个经过加密的计数器相异或,对每个后续分组计数器递增
应用:面向分组的通用传播用于高速需求
优点:设计比较简单、加解密相同;可以进行预处理;可并行运算,速度快;安全性好
缺点:始终要保存一个状态值且加解密双方必须保持同步,否则不能正确解密。
3、分组密码的安全性
1、分组密码的分析技术
穷尽搜索攻击
差分密码分析攻击
线性密码分析攻击
相关的密钥密码分析攻击
问题:
1、什么是雪崩效应?
任何输入位或密钥位与输出位之间不应有任何联系。
2、什么是Feistel密码结构?Feistel密码结构的实现依赖的主要参数有哪些?
假设加密过程的输入为分组长2w的明文和一个密钥K(K在运算过程中将分成多个子密钥Ki),将明文分为两部分,左边记为L0,右边记为R0.以下是加密过程图:
第一轮:R0与子密钥k0进行运算,记为F(R0,k0),得到的结果与L0进行异或运算。
最终得到的结果将作为第二轮运算的右半部分记为R1,而R0直接作为第二轮的左半部分记为L1。
第二轮:L1和F(R1,K1)(R1和K1运算的结果)进行异或运算,产生的结果为第三轮的R2,R1直接变为L2
第三轮以后一次类推,n轮迭代之后,左右两边再合并到一起为最后的密文分组
每轮的置换可以由以下函数表示:
Li = Ri-1
Ri = Li-1⊕F(Ri-1,Ki)
依赖参数:
1)明文消息和密文消息的分组大小
2)子密钥的大小
3)循环次数
4)子密钥产生算法
5)轮函数F
3、为了保证分组密码算法的安全强度,对分组密码算法的要求有哪些?
密钥足够大
良好的“雪崩效应”