分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)

一、ECB

ECB模式全称是Electronic CodeBook模式,在ECB模式中,将明文分组加密之后的结果将直接成为密文分组。分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)_第1张图片

 ECB模式全称是Electronic CodeBook模式,在ECB模式中,将明文分组加密之后的结果将直接成为密文分组。

存在明显缺点:相同的明文加密后得到的密文是相同的。这样一来,只要观察一下密文,就可以知道明文存在怎样的重复组合,并可以以此为线索来破译密码,因此ECB模式是存在一定风险的。

二、CBC

CBC模式的全称是Cipher Block Chaining模式(密文分组链接模式),之所以叫这个名字,是因为密文分组像链条一样相互连接在一起。

在CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。

分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)_第2张图片

相比于ECB,CBC在每一次加密前都先于上一次所得密文进行了一次xor运算,克服了ECB相同明文加密所得密文相同的缺陷。

<初始化向量>

当加密第一个明文分组时,由于不存在“前一个密文分组”,因此需要事先准备一个长度为一个分组的比特序列来代替“前一个密文分组”,这个比特序列称为初始化向量(Initialization Vector),通常缩写为IV,一般来说,每次加密时都会随机产生一个不同的比特序列来作为初始化向量。

解密过程中:

1、如果一个密文组出现被破环的情况,但长度不变,造成两组明文数据收到影响。 

 分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)_第3张图片

2、 出现缺失的情况的时,所有出现确实情况后的明文数据都受到影响。 分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)_第4张图片

 

三、CFB 

CFB模式全称Cipher FeedBack模式(密文反馈模式)。在CFB模式中,前一个密文分组会被送回到密码算法的输入端。所谓反馈,这里指的就是返回输入端的意思。分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)_第5张图片

 

在ECB模式和CBC模式中,明文分组都是通过密码算法进行加密的,然而,在CFB模式中,明文分组并没有通过密码算法来直接进行加密。

明文分组和密文分组之间并没有经过“加密”这一步骤。在CFB模式中,明文分组和密文分组之间只有一个XOR。

四、OFB

OFB模式的全称是output-Feedback模式(输出反馈模式)。在OFB模式中,密码算法的输出会反馈到密码算法的输入中。

OFB模式不是通过密码算法对明文直接加密的,而是通过将“明文分组”和“密码算法的输出”进行XOR来产生“密文分组”的。分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)_第6张图片

OFB解密: 

 分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)_第7张图片

CFB模式中,密码算法的输入是前一个密文分组,也就是将密文分组反馈到密码算法中,因此有了“密文反馈算法”这个名字。

OFB模式中,密码算法的输入则是密码算法前一个输出,也就是将输出反馈给密码算法,因此就有了“输出反馈模式”这个名字。

 五、CTR

CTR模式全称CounTeR模式(计数器模式)。CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码。

 分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)_第8张图片

CRT解密:

 分组加密五大常见模式(ECB、CBC、CFB、OFB、CTR)_第9张图片CTR模式中,每个分组对应一个逐次累加的计数器,并通过对计数器进行加密来生成密钥流。也就是说,最终的密文分组是通过将计数器加密而得到的比特序列,与明文分组进行XOR而得到的。

<特点>

CTR模式的加密和解密使用了完全相同的模式,因此在程序上实现上比较容易。

CTR模式中可以以任意顺序对分组进行加密和解密,因为在加密和解密时需要用到的“计数器”的值可以由nonce和分组序号直接计算出来。

能够以任意顺序处理分组,意味着能够实现并行计算。在支持并行计算的系统中,CTR模式的速度是非常快的。

你可能感兴趣的:(数论,python,安全)