对称加密的优缺点及其工作模式
Posted Imagination Tech
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对称加密的优缺点及其工作模式相关的知识,希望对你有一定的参考价值。
对称算法使用一个密钥。给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同。解密时,使用读密钥与加密密钥相同。
对称加密举例
常见的对称加密算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6。
对称加密优缺点
优点:与公钥加密相比运算速度快。
缺点:不能作为身份验证,密钥发放困难
对称算法主要有四种加密模式:电子密码本模式、加密块链模式、加密反馈模式、输出反馈模式。
对称加密的四种工作模式
1、电子密码本模式 Electronic Code Book(ECB)
这种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。
其缺点是:电子编码薄模式用一个密钥加密消息的所有块,如果原消息中重复明文块,则加密消息中的相应密文块也会重复,因此,电子编码薄模式适于加密小消息。
要点
数据分组,每组长度与密钥长度相同
每组分别加密
适用加密小消息
优点
简单;
有利于并行计算;
误差不会被传送;
缺点
不能隐藏明文的模式;
可能对明文进行主动攻击;
2、加密块链模式 Cipher Block Chaining(CBC)
CBC 模式的加密首先也是将明文分成固定长度的块,然后将前面一个加密块输出的密文与下一个要加密的明文块进行异或操作,将计算结果再用密钥进行加密得到密文。第一明文块加密的时候,因为前面没有加密的密文,所以需要一个初始化向量。跟ECB 方式不一样,通过连接关系,使得密文跟明文不再是一一对应的关系,破解起来更困难,而且克服了只要简单调换密文块可能达到目的的攻击。
要点
数据分组,长度与密钥相同
长度一样的初始化向量
初始化向量与密文抑或之后,再加密,结果与下一个数据块抑或再加密。以此类推。
特点是安全性更好
优点
不容易主动攻击;
安全性好于ECB;
适合传输长度长的报文;
是SSL、IPSec的标准。
缺点
不利于并行计算;
误差传递;
需要初始化向量IV
3、加密反馈模式 Cipher Feedback Mode(CFB)
面向字符的应用程序的加密要使用流加密法,可以使用加密反馈模式。在此模式下,数据用更小的单元加密,如可以是 8 位,这个长度小于定义的块长(通常是 64 位)。
其加密步骤是:
使用 64 位的初始化向量。初始化向量放在移位寄存器中,在第一步加密,产生相应的 64 位初始化密文;
始化向量最左边的 8 位与明文前 8 位进行异或运算,产生密文第一部分(假设为 c),然后将 c 传输到接收方;
向量的位(即初始化向量所在的移位寄存器内容)左移 8 位,使移位寄存器最右边的 8 位为不可预测的数据,在其中填入 c 的内容;
第 1-3 步,直到加密所有的明文单元。解密过程相反。
要点
数据分组,数据块更小(这里取8bit)
64位向量左移8位,再补上上轮所得的密文高8(c)位
密钥和向量加密得k
k高8位与明文异或得到下一轮的密文
优点
隐藏了明文模式;
分组密码转化为流模式;
可以及时加密传送小于分组的数据
缺点
不利于并行计算;
误差传送:一个明文单元损坏影响多个单元;
唯一的IV(初始化向量);
4、输出反馈模式 Output Feedback Mode(OFB)
输出反馈模式与 CFB 相似,惟一差别是,CFB 中密文填入加密过程下一阶段,而在 OFB 中,初始化向量加密过程的输入填入加密过程下一阶段。
要点
与cfb相似,第二步有所差异。反馈传输的量变为k的高8位
数据分组,数据块更小(这里取8bit)
64位向量左移8位,再补上上轮所得的k高8(c)位
密钥和向量加密得k
k高8位与明文异或得到下一轮的密文
优点
隐藏了明文模式;
分组密码转化为流模式;
可以及时加密传送小于分组的数据;
缺点
不利于并行计算;
对明文的主动攻击是可能的;
误差传送:一个明文单元损坏影响多个单元;
以上是关于对称加密的优缺点及其工作模式的主要内容,如果未能解决你的问题,请参考以下文章