【网络安全技术】分组密码的工作模式

本文介绍了几种常见的加密模式,包括ECB、CBC、CFB、OFB和CTR。分析了各模式的加密和解密过程、优缺点,如ECB支持并行但易被破译,CBC扩散性好但解密需处理初始向量,CFB和OFB支持随机访问解密,CTR具备多种优点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Electronic Code Book (ECB)

就是每个明文分组直接过加密算法出密文块,最后再拼起来,这样虽然可以支持并行加密,但是会有一个问题,那就是相同的明文块会产生相同的密文块,黑客可以统计密文块的统计特征来进行破译。如果可以再进一步混淆和扩散就好了。

二、Cipher Block Chaining (CBC)

顾名思义就是用密文块来吧每一块串起来,那就是每一步都需要用前一个密文块。

加密就是用明文块和上一个明文块的结果做异或,然后再过加密算法,得出该明文块相对应的密文块。这样每个密文块都与他前面所有的密文块相关联,做到了很好的扩散。对于第一个明文块需要有一个初始的向量和他做异或。这样就不好并行处理了。

来看解密

对于每个密文块的解密,只需要先把他过一遍解密算法,然后再和他的前一个密文块做异或就好了,所以解密是支持并行处理的。同时还有一个问题,那就是解密需要用到初始向量C0,所以这个向量如何保存和传播也是个问题。

三、Cipher feedback mode(CFB)

这个首先要对一个初始向量加密,然后把这个加密的结果放入一个移位寄存器,这个结果的高s位和我需要加密的明文块,这里也就是s位来做异或,异或的结果推入这个移位寄存器的右边,移位寄存器左移,然后再加密,再和明文异或,一直循环。

这样的话,明文块的大小可以任意规定

这样,同样是通过密文来连接在了一起,不过与CBC不同的是,CBC是对明文加密,与向量异或,而CFB是对向量加密,与明文异或。这里的向量除了第一次是初始化向量,后面都是密文块(或移位寄存器移位后的)。

这样支持随机访问解密,为什么,想想解密需要什么,需要那块明文对应的密文,这个肯定可以随机访问,还需要当时移位寄存器的状态,这个由什么决定,由初始向量、当前轮数(索引)、以及上一块(或多块)的密文决定,而这些信息都是可以直接获得的,所以解密也可以并行执行,支持随机访问。

四、Output feedback mode (OFB)

这个跟刚才CFB很像,不过CFB叫cipher,用的是密文来传播扩散,这个OFB是用output来传播扩散,output就是初始向量加密后的结果。

所以这个整体的流程就是,初始向量加密之后,干两件事,一件事是传播到下一个明文块作为向量去了,另一件事是和本明文块做异或得到本密文块。

解密就是从初始向量开始,过解密算法,然后和密文异或,就出来了明文。

所以这里看,我只要有了初始向量,我就可以预先把所有的虚线框里的过程走一遍,得到每一个相当于是新的key的东西,明文来了就可以并行异或来出结果了。解密也是同理。

而且这个没有错误传递,因为密文的错误只会影响他那个密文块,甚至只有错误bit会被影响。

五、Counter mode (CTR)

这个跟上一个很像,都是上面虚线部分为每个明文块产生一个新key,用这个新key来和明文异或来产生密文。只不过这个的虚线部分进加密算法的是一个计数器的值。

它具有上面的所有优点:

1.可以预处理

2.支持更高程度的并行,因为每轮的计数器的值是可以随机访问的

3.支持随机访问

4.没有错误传播

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值