对称加密算法工作模式详解

电子说

1.3w人已加入

描述

01对称加密算法

对称密码体制,又称为单密钥密码机制,其基本特征为加密密钥和解密密钥相同,模型如下:

计数器

这种方式,攻击者可以通过不安全的公开通信通道获取密文,但无法接触到明文或者密钥; 如果该攻击者知道加密算法和解密算法,且只对当前获取的密文感兴趣,可以产生一个明文的估计值来恢复明文;如果对未来消息感兴趣,可以来产生一个密钥来恢复密钥。

对称加密算法是基于分组密码机制产生,将一组明文划分为m长度的n组明文,分别使用密钥K=(k0,....,kx)进行加密或者解密,m长度通常为64、128、256、512。

02AES加密算法工作模式

分组密码算法是提供数据安全的一个基本固件,典型的如DES(Data Encryption Standard)以64位为一组,AES(Advanced Encryption Standard)以128位(举例)为一个分组;但实际上保密传输的消息不一定刚好是一个分组,根据国标GB/T 17964-2008《信息安全技术 分组密码算法的工作模式》,为了各种应用能使用这些基本固件,因此有7种常用的工作模式;下面来解释一下:

2.1 ECB(Electronic Code Book Mode)

ECB,叫做电子密码本模式,例如AES128-ECB这种模式下,明文以128bit为一组,每次被处理128bit,每个明文都用同一个密钥加密;

计数器

解密过程使用同样的密钥进行解密。

这种模式操作简单,不同分组可以并行处理;但是明文中重复的内容同样也会在密文中体现出来,因此对于长报文可能不是很安全。

2.2 CBC(Cipher Block Chaining Mode)

CBC,密码分组链模式;加密函数的输入是当前明文分组和前一个密文分组的异或,对每个分组处理时也使用相同的密钥,如下

计数器

这种模式下,一个消息中的两个相同明文组会被加密成不同的密文,这样就避免了ECB出现的重复密文的问题。在最初加密时,需要使用初始向量(Initial Vector),这个IV需要发送方和接收方都知道,不用加密,但必须保证该IV的完整性。

该种模式不能并行处理,因为当前明文需要和上一组密文进行异或处理。

2.3 CTR(ConterMode)

计数器模式使用与明文分组长度相同的计数器长度,计数器从某一初值开始,按某种算法递增,计数器值经过加密算法得到的结果再和明文进行异或,这样就可以得到当前明文组的密文。

计数器

可以看到,计数器模式下的加密和解密相对独立,且已知加密函数,和计数器值,就可以通过异或的方式得到明文,不需要解密函数。实现起来简单易懂。

2.4 OFB(Output Feedback Mode) 

输出反馈模式,该模式和CBC有点相像,但是区别在于OFB是将IV去进行加密后得到一个输出OBi 与明文块进行异或,同时OBi作为下一个加密对象的IV。如下图:

计数器

2.5 CFB(Chiper Feedback Mode)

密码反馈模式,与输出反馈模式结构类似。但是这种模式的密文是按bit来处理的,如下:

计数器

在该模式下,首先IV作为第一个block进行加密,生成第一个输出block;该block的s bit高位与明文的s bit高位作异或得到密文块,b(block size)-s不参与加密;b-s低位的数据 | 该密文块作为下一个block的输入。

2.6 XTS(XEX Tweakable Block Cipher with Ciphertext Stealing)

XTS引入了tweak key和AES key互相配合,每个明文块用同样的AES key但tweak key不相同。比如设置与区块的index成对应关系,这样各个块的加解密就相互独立了,如下:

计数器

相当于就在ECB上形式上增加了一层加扰系数 。

2.7 GCM(Galois/Counter Mode)

它在 CTR 加密的基础上增加 GMAC 的特性,解决了 CTR 不能对加密消息进行完整性校验的问题。

03总结

上面描述了对称加密算法的工作模式,那么我们在设计时主要考虑以下几个方面:

(1)抵抗攻击的能力、密文的随机性、安全防护等级

(2)调用分组加密的次数、并行处理能力、初始化向量时间等

(3)明文分组数量可配、消息长度等要求

 

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分