对称密码 之 分组密码的工作模式

分组密码的工作模式

1。提出背景

分组密钥输入为b位固定长度的明文分组和密钥,输出b位密文。当明文长度大于b位时就要对明文进行分组,每b位一组。那么若用相同密钥对多个分组加密会导致安全问题。因此提出各种工作模式,总结如下:
工作模式

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

对于给定的密钥,任意b位明文有唯一密文与之对应。

加密: Cj = E(K, Pj) j = 1,…,N
解密: Pj = D(K, Cj) j = 1,…,N

电码本
如图所示,加密所用密钥为K,对于确定的K有唯一密文Cj与明文Pj对应。但当明文Pj=pi时,则输入P与K均相等,故输出C也想等。总结特点如下:

  • 适合数据较少的情况;
  • 最重要的特征是一段信息若有几个相同的明文组,则密文也将出现几个相同的密文组;
  • 对于长信息不适合:若信息非结构化,密码分析者可利用规律性特征破译;

3。密文分组链接模式(Cipher Block Chaining,CBC)

为解决长信息可利用规律性特征破译的缺陷,提出CBC模式。该模式加密算法输入为当前明文分组和上一个密文分组的异或,使用的密钥是相同的。如此,若分组相同也看不出来。
注:CBC要求如果最后分组不完整,则需要填充至满分组。
加密解密如下:
CBC加解密
IV必须为收发双方共享且第三方无法预测。
为最大程度安全,IV不能不经授权而修改。原因如下:
攻击者可以欺骗接受者,让他使用不同的IV,接着攻击者就能够把明文的第一个分组的某些为取反。

模式如下:
密文分组链接

4。密文反馈模式(Cipher Feedback,CFB)

可将分组密码当作流密码使用。流密码不需要将最后分组填充到满分组。但注意,CFB和流密码的典型构造并不一致:
典型流密码:输入某个初始值和密钥,输出位流,这个位流再和明文位进行异或运算。
CFB模式:与明文异或的位流是与明文相关的。
流密码的性质之一:明文是8位字符,则要发送的也是8位字符,加密时也用8位。
CFB工作模式:
CFB工作模式
解释:加密函数的输入为b位移位寄存器,初始值为IV。1)加密函数输出最左边的s位与明文第一个分段P1异或得到密文的第一个单元;2)将C1发出去,移位寄存器左移s位,C1填入寄存器最右边s位。直到所有明文被加密完。解密时:收到的密文单元与加密函数的输出异或得到明文。
加密:这里写图片描述
解密:这里写图片描述
CFB模式定义:
CFB模式
注:MSBs(X):X的左边s位。
LSBb-s(X) :X的右边剩余b-s位。

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

结构与CFB相似:
OFB:用加密函数的输出填充移位寄存器;
CFB:用密文单元来填充移位寄存器;
OFB模式:
OFB
定义:
OFB
OFB优点:传输过程中某位发生错误不会影响其他位,如C1中有一位发生错误,致影响P1恢复;而CFB中C1还座位了移位寄存器的输入,后续将受到影响。
OFB缺点:抗消息流窜改能力较低。
注:初始K应为时变值。

6。计数器模式(Counter,CTR)

常用于:ATM(异步传输模式)网络安全和IPsec。
步骤:
1)计数器首先被初始化为某一值;
2)随着消息块的增加计数器的值加1(模2^b,b为分组长度);
3)加密时:计数器加密后与明文分组异或 —> 密文分组;
4)解密时:使用具有相同值的计数器序列,用加密后的计数器的值与密文分组异或—>明文分组。
给定计数器序列Ti,定义CTR模式:
CTR
模式图:
这里写图片描述

7。总结

到此为止几种常见的加密模式就介绍完了,主要涉及:

  1. 电码本模式(ECB):最简单的,一组明文与一组密文一一对应,但如果两组明文内容相同则密文也相同,导致可以利用统计学规律进行破解;
  2. 密文分组链接模式(CBC):加密算法的输入为该组明文与上组密文的异或,这就解决了ECB中可利用统计规律破解的漏洞;
  3. 密文反馈模式(CFB):利用流密码的方式对明文进行加密,将密文装入移位寄存器。将移位寄存器的最左s位加密后与明文加密后输出,并装入移位寄存器后面;
  4. 输出反馈模式(OFB):利用流密码的方式对铭文进行加密,与CFB不同的是,将加密函数的输出装入移位寄存器,其他与CFB相同;
  5. 计数器模式(CTR):利用计数器作为加密函数的输入后与明文异或。

由上看出,很多算法对于初始值的“时变性“非常看重,那么如何实现呢?一种很常用的方法叫做“伪随机数“技术。书中第七章专门有讲到,本系列文章就不记录了。
那么到此为止对称密码部分就简单介绍完了,从下一讲就开始非对称密钥的学习了,首先介绍一些相关数论知识(素数,欧拉定理,费马定理等),公钥密码学与RSA,密钥管理等知识。我们下期再见!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章