AES/DES/SM1/RC6等分组加密算法的工作模式-ECB,CBC,CFB,OFB,CTR

研发玩点艰辛事 2024-03-05 14:18:14

a)为什么加密算法需要分组工作?

由于分组加密算法只能加密固定长度的文本,但输入的待加密的明文长度可能会超过分组密码的分组长度,因此算法就需要对分组密码算法进行循环迭代,以便将一段很长的明文全部加密。迭代的方法就被称为分组密码的模式.

常见的加密算法按工作类型分类如下:

密码分类

国产商用密码

国际商用密码

对称加密

分组加密(块加密)

SM1/SCB2 SM4/SMS4 SM7

DES IDEA AES RC5 RC6

序列加密(流加密)

ZUC(祖冲之算法) SSF46

RC4

非对称/公钥加密

大数分解

-

RSA DSA ECDSA Rabin

离散对数

SM2 SM9

DH DSA ECC ECDH

密码杂凑(散列)

SM3

MD5 SHA-1 SHA-2

b)分组加密算法中具体有哪些分组工作模式?

ECB模式:Electronic CodeBook mode(电子密码本模式)

CBC模式:Cipher Block Chaining mode(密码分组链接模式)

CFB模式:Cipher FeedBack mode(密文反馈模式)

OFB模式:Output FeedBack mode(输出反馈模式)

CTR模式:CounTeR mode(计数器模式)

c)各种分组工作模式的差异?

c1)ECB模式:Electronic CodeBook mode,电子密码本模式

ECB模式是将明文分成固定长度的组块,然后对每个明文分组块使用相同的密钥进行独立加密或解密,且该加密的结果将直接作为密文分组。以下是ECB分组模式加密解密的工作原理:

ECB分组模式的加密解密工作原理

注:当最后一个明文分组的内容小于分组长度时,需要用一些特定的数据行进填充。

优点:各个块相互独立,可并行运算,且部分块损坏不影响另外的块。

缺点:不需要破译密码的情况下就可以根据规律移除或添加数据。无法抵御重放攻击。

c2)CBC模式:Cipher Block Chaining mode,密文分组链接模式

CBC模式是先将明文分成若干个组块,然后每个明文分组与前一密文分组进行异或 XOR 运算,然后再进行加密。因此,每个密文分组都依赖于它前面的所有明文分组。由于密文分组像链条一样相互连接在一起,因此称为密文分组链接模式。从加密过程可知,第 0块明文分组没有上一块密文分组来进行异或,于是引入一个初始化向量 来充当第一个干扰项,保证每条消息的唯一性。

CBC分组模式加密解密的工作原理

优点:每个密文分组均依赖于所有的信息块,不容易主动攻击,安全性优于ECB模式

适合传输长度长的报文,互联网安全的通信协议之一的SSL、IPSec就是采用CBC模式确保通信机密性的。。

缺点:发送方和接收方均需要知道初始化向量 IV,并且加密解密是串行的,无法并行计算,性能较低。

c3)CFB模式:Cipher FeedBack mode,密文反馈模式

CFB模式中密码算法的输入是前一个密文分组,再将该密文分组送到密码算法的输入端产生自同步的密钥流。其解密过程几乎就是颠倒的CBC的加密过程。

由于是将密文分组反馈到密码算法中,因此称为密文反馈模式。

CFB模式加密解密的工作原理

优点:隐藏了明文模式,分组密码转化为流模式,可以加密传送小于分组的数据。

加密流程和解密流程中被加密的数据是前一段密文分组,因此即使明文数据的长度不是密钥的整数倍也是不需要填充的,这保证了数据长度在加密前后是相同的。与CBC模式类似,解密过程是可以并行化的。

缺点:CFB模式中是对密文分组进行反馈,因此必须从第一个明文分组开始按顺序进行加密,即加密过程无法并行化与CBC模式相似,明文的改变会影响接下来的所有密文。另外一个明文单元损坏会影响多个单元.

c4)OFB模式:Output FeedBack mode,输出反馈模式

由于是将密码算法的输出反馈给密码算法中,因此称为输出反馈模式。

OFB模式加密解密工作原理

优点:无需进行填充(因为是流密码),可以抵御重放攻击

,可事先生成密钥流,和明文分组无关,即只要事先通过密码算法生成密钥流,后续只需要将明文/密文与密钥流进行异或即可快速完成加密/解密(异或运算很快),生成密钥流的操作和进行异或运算的操作是可以并行的加解密结构相同,解密过程使用的是加密器

缺点:如果对密钥流的一个分组加密后,如果其结果和加密前一份组相同,之后的密钥流将变成同一值的不断反复。加解密都依赖于前一段的数据,故加解密都不能并行

c5)CTR模式:CounTeR mode,计数器模式.

CTR模式与CFB模式和OFB模式一样把都是把分组密码转化为序列密码(流密码)。在本质上是通过将逐次累加的计数器采用分组密码加密产生密钥序列,按序列密码的方式进行加解密。最终的密文分组是通过将计数器加密得到的比特序列与明文分组进行异或 XOR 而得到的。

CTR模式加密解密工作原理

优点:CTR模式与CFB模式和OFB模式一CTR模式与OFB模式一样,无需填充,可抵御重放攻击,CTR模式的特征类似于OFB模式,但它允许在解密时进行随机存取,CTR模式的单一密文损坏并不会影响到其他块的解密,且支持并行运算(加解密),不会有密钥流重复循环出现的情况,由于加密和解密过程均可以进行并行处理,CTR适合运用于多处理器的硬件上

,解密过程使用的是加密器。

缺点:需要提供初始计数器值,没有错误传播,因此不适合用于数据完整性认证

0 阅读:0

研发玩点艰辛事

简介:感谢大家的关注