分组密码(二)

分组密码的操作方式

分组密码如何应用于大数据文件加密?

电码本模式(ECB,Electronic Code Book)

将每块明文加密成相应得密码块,若最后一块不足64bit,则用一些任意二进制序列填充。

image-20220324201847177.png

特点(本质相当于一个“大的单字母替换”)

  • 一种最简易的工作方式
  • 相同密钥作用下,密文块和明文块一一对应,易于暴露明文固有格式
  • 各密文块间缺乏相关性,信息块易于受到块替换攻击

密码块链接模式(CBC,Cipher Block Chain)

加入反馈机制,当前明文块加密前要与前面的密文块进行异或(每一块的加密都依赖于所有前面的分组),因此需要接收完整数据才能加解密

加密

image-20220324202604768.png

解密

image-20220324202644213.png

特点

  • 同一明文块产生不同的密文块(隐蔽明文数据模式,意思是明文块内容相同,但与之异或的IV或密文块不同,产生结果不同)
  • 有误码扩散,同时又有自同步特性(比如上图:C1传输错误,解密时M1、M2也错误,但之后的解密都不包含C1,所以会自动正确恢复)
  • 当所有比特块到达后才能开始编解码

密码反馈模式(CFB,Cipher FeedBack)

克服CBC方式的第3个问题:采用比分组小的多的单位进行加密

特点:将分组密码转换为流密码,实现即时加密

输出反馈模式(OFB,Output FeedBack)

与CFB模式相似,但是在块内部进行反馈,反馈机制既不依赖明文也不依赖密文流,因此又被称为内部反馈模式

特点:

  • 没有误码扩散,适用于传输信息长度变化较大的数据,如语音、图像等
  • 比CFB更易受对消息流的篡改
  • 密文与前面的明文无关
  • 应用时要求一次一密(OTP,One-Time Pad)

计数器模式(CTR,Counter Model)

image-20220410203945956.png

image-20220410203950421.png

特点:

  • 具有随机访问特性:可随机解密任何密文分组(不用考虑其他密文分组)
  • 处理效率高:可并行处理
  • 同一明文块产生不同密文块
  • 可提前预处理
  • 实现简单:加解密阶段都只涉及加密函数

ECB、CBC、CFB、OFB是美国标准与技术协会(NIST)针对DES定义的四种操作模式

其他分组密码

三重DES

DES密钥长度64位,实际56位,抗穷举攻击能力弱,采用多重加密来间接增加密钥长度

首先是二重DES:很难抵挡中间相遇攻击法 $X=E_{k1}(M)=D_{k2}(C)$,如果已知明密文对,可利用中间相遇攻击方法找出正确密钥k1、k2

接着便是带有双密钥的三重DES

image-20220410205508743.png

image-20220410205516965.png

国际数据加密算法(IDEA,International Data Encryption Algorithm)

64bit大小的数据块和128位的密钥

三种基本运算实现密码算法的扩散和混淆特性:

  • 16bit异或
  • 模$2^{16}$的16bit加法
  • 模$2^{16}+1$的16bit乘法(IDEA的S盒):先进行16bit×16bit=32bit的运算,再用$2^{16}+1$取模求余

image-20220410210114875.png

三种基本运算特点:任一两个运算都不满足分配律和结合律

IDEADES
共同点分组密码,分组长度64bit分组密码,分组长度64bit
不同点密钥长128bit密钥长64bit
加解密子密钥不完全相同加解密密钥完全相同
可用软硬件实现,偏向软件
非Feistel结构Feistel结构

RC5加密算法

对称加密算法,特点:

  • 使用与软件或硬件实现
  • 运算速度快
  • 能适应不同字长的处理器
  • 加密轮数可变
  • 密钥长度可变
  • RC5结构形式简单(非Feistel结构)
  • 对存储空间要求不高

三个参数决定的一组加密算法:分组64bit,加密轮数12,密钥长128bit

参数定义允许值
w基本字块的bit数大小。RC5加密的基本单位(分组长度)为2个基本字块16, 32, 64
r轮数1, …,255
b算法密钥的字节长度1, …,255
最后修改:2022 年 04 月 10 日
如果觉得我的文章对你有用,请随意赞赏