密码学基础——分组密码的运行模式

前面的文章中文我们已经知道了分组密码是一种对称密钥密码体制,其工作原理可以概括为将明文消息分割成固定长度的分组,然后对每个分组分别进行加密处理。

下面介绍分组密码的运行模式

1.电码本模式(ECB)

2.密码分组链接模式(CBC)

3.密码反馈模式(CFB)

4.输出反馈模式(OFB)

5.计数器模式(CTR)

1.电码本模式(ECB)

ECB(Electronic Codebook)模式是最简单的运行模式

工作原理:

将明文分组后,对每个64bit长的明文 分组独立地使用相同的密钥进行加密,得到密文分组。相同的明文分组会产生相同的密文分组。

当密钥确定时,对明文的每一个分组,都有一个惟一的密文与之对应。因此我们可以形象地认为有一个非常大的电码本,对任意一个可能的明文分组,电码本中都有一项对应于它的密文。

如果消息长于64比特,则将其分为长为64比特的分组,最后一个分组如果不够64比特,则需要填充。解密过程也是一次对一个分组解密,而且每次解密都使用同一密钥。

优点:简单高效,每个分组的加密可以并行处理,易于硬件实现。

缺点:缺乏安全性,由于相同明文分组加密结果相同,容易受到已知明文攻击,且不能隐藏明文的统计特性,不适用于对数据保密性要求较高的场景

2.密码分组链接模式(CBC)

工作原理:在加密时,将前一个密文分组与当前明文分组进行异或操作后再进行加密。第一个明文分组需要与一个初始向量(IV)进行异或操作。解密时,先对密文分组解密,然后再与前一个密文分组异或得到明文分组。

优点:安全性较高,因为每个密文分组都依赖于前面的所有明文分组和密钥,相同的明文分组在不同的位置加密后得到的密文不同,能有效隐藏明文的统计特性。

缺点:加密过程是串行的,无法并行处理,且对数据传输中的错误敏感,一个密文分组出错会影响到后续分组的解密

3.密码反馈模式(CFB)

工作原理:将前一个密文分组作为输入,通过密钥生成一个与明文分组等长的反馈值,该反馈值与当前明文分组进行异或得到密文分组。解密过程与加密类似,只是将密文分组作为输入来生成反馈值,再与密文分组异或得到明文分组。

CFB加密时,加密算法的输入是64比特移位寄存器,其初值为某个初始向量IV。加密算法输出的最左(最高有效位) 比特与明文的第一个单元 异或,产生出密文的第一个单元 ,并传送该单元。然后将移位寄存器的内容左移 位并将 送入移位寄存器最右边(最低有效位) 位。这一过程继续到明文的所有单元都被加密为止

解密时,将收到的密文单元与加密函数的输出进行异或。

优点:可以将分组密码转换为流密码,能够对任意长度的数据进行加密,且可以实时处理数据,适用于对实时性要求较高的场景。

缺点:与 CBC 模式一样,加密过程是串行的,无法并行处理,并且对错误敏感。

4.输出反馈模式(OFB)

工作原理:通过密钥生成一个与明文分组等长的输出值,该输出值与当前明文分组进行异或得到密文分组。在加密过程中,密钥和一个初始向量通过加密算法不断生成新的输出值。解密时使用相同的密钥和初始向量生成相同的输出值,再与密文分组异或得到明文分组。

优点:对传输错误不敏感,因为每个明文分组的解密只依赖于自身的密文分组和生成的输出值,不会像 CBC 和 CFB 模式那样出现错误传播。

缺点:安全性相对较低,若攻击者能够修改密文分组,可能会导致解密出的明文出现可预测的变化。

5.计数器模式(CTR)

工作原理:使用一个计数器,每次加密时将计数器的值作为输入,通过密钥生成一个与明文分组等长的密钥流,然后将密钥流与明文分组进行异或得到密文分组。计数器的值在每次加密后递增。

优点:加密和解密可以并行进行,效率高,且对错误不敏感,适用于高速数据处理和并行计算的场景。

缺点:需要确保计数器的值在不同的加密过程中是唯一的,否则可能会导致安全性下降。

相关推荐
开开心心就好24 分钟前
手机不同App音量自动调节软件
网络·windows·python·安全·智能手机·电脑·音视频
GalaxyPokemon32 分钟前
MySQL基础 [二] - 数据库基础
linux·网络·数据库·mysql
智联视频超融合平台40 分钟前
国网B接口注册流程详解以及注册失败原因(电网B接口)
网络·人工智能·后端·网络协议·安全·音视频·实时音视频
W说编程1 小时前
《UNIX网络编程卷1:套接字联网API》第4章 基本TCP套接字编程
c语言·网络·网络协议·tcp/ip·架构·unix·tcp
互联网之声1 小时前
绿舟与亚马逊云科技达成全方位合作,助力出海品牌绿色可持续发展!
网络
qq_260241233 小时前
宝塔面板使用CDN 部署后获取真实客户端 IP教程
网络·网络协议·tcp/ip
菜只因C4 小时前
深入剖析嵌入式系统:从基础到实践的全面指南
大数据·网络·人工智能
courniche4 小时前
CSMA/CA与CSMA/CD的区别
网络·网络协议·信息与通信·信号处理
niuTaylor5 小时前
嵌入式工程师多线程编程(二)生产者-消费者模式
网络·多线程