对称加密

对称加密

简介

image

对称算法使用一个密钥。给定一个明文和一个密钥,加密产生密文,其长度和明文大致
相同。解密时,使用读密钥与加密密钥相同。

对称加密举例

常见的对称加密算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6。

对称加密优缺点

优点,与公钥加密相比运算速度快。缺点是不能作为身份验证,密钥发放困难

对称算法主要有四种加密模式:

对称加密的四种工作模式

1、电子密码本模式 Electronic Code Book(ECB)

image

这种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密
密钥长度相同,然后每组都用相同的密钥进行加密。
其缺点是:电子编码薄模式用一个密钥加密消息的所有块,如果原消息中重复明文
块,则加密消息中的相应密文块也会重复,因此,电子编码薄模式适于加密小消息。

  • 要点
  1. 数据分组,每组长度与密钥长度相同
  2. 每组分别加密
  3. 适用加密小消息
  • 优点:
  1. 简单;
  2. 有利于并行计算;
  3. 误差不会被传送;
  • 缺点:
  1. 不能隐藏明文的模式;
  2. 可能对明文进行主动攻击;

2、加密块链模式 Cipher Block Chaining(CBC)

image

CBC 模式的加密首先也是将明文分成固定长度的块,然后将前面一个加密块输出
的密文与下一个要加密的明文块进行异或操作,将计算结果再用密钥进行加密得到密
文。第一明文块加密的时候,因为前面没有加密的密文,所以需要一个初始化向量。跟
ECB 方式不一样,通过连接关系,使得密文跟明文不再是一一对应的关系,破解起来
更困难,而且克服了只要简单调换密文块可能达到目的的攻击。

  • 要点
  1. 数据分组,长度与密钥相同
  2. 长度一样的初始化向量
  3. 初始化向量与密文抑或之后,再加密,结果与下一个数据块抑或再加密。以此类推。
  4. 特点是安全性更好
  • 优点:
  1. 不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。
  • 缺点:
  1. 不利于并行计算;
  2. 误差传递;
  3. 需要初始化向量IV

    3、加密反馈模式 Cipher Feedback Mode(CFB)

image

面向字符的应用程序的加密要使用流加密法,可以使用加密反馈模式。在此模式下,
数据用更小的单元加密,如可以是 8 位,这个长度小于定义的块长(通常是 64 位)。其
加密步骤是:

  1. 使用 64 位的初始化向量。初始化向量放在移位寄存器中,在第一步加密,产
    生相应的 64 位初始化密文;
  2. 始化向量最左边的 8 位与明文前 8 位进行异或运算,产生密文第一部分(假设
    为 c),然后将 c 传输到接收方;
  3. 向量的位(即初始化向量所在的移位寄存器内容)左移 8 位,使移位寄存器最
    右边的 8 位为不可预测的数据,在其中填入 c 的内容;
    4.
    第 1-3 步,直到加密所有的明文单元。
    解密过程相反
  • 要点
  1. 数据分组,数据块更小(这里取8bit)
  2. 64位向量左移8位,再补上上轮所得的密文高8(c)位
  3. 密钥和向量加密得k
  4. k高8位与明文异或得到下一轮的密文
  • 优点:
  1. 隐藏了明文模式;
  2. 分组密码转化为流模式;
  3. 可以及时加密传送小于分组的数据;
  • 缺点:
  1. 不利于并行计算;
  2. 误差传送:一个明文单元损坏影响多个单元;
  3. 唯一的IV(初始化向量);

4、输出反馈模式 Output Feedback Mode(OFB)

image

输出反馈模式与 CFB 相似,惟一差别是,CFB 中密文填入加密过程下一阶段,而
在 OFB 中,初始化向量加密过程的输入填入加密过程下一阶段。

  • 要点

与cfb相似,第二步有所差异。反馈传输的量变为k的高8位

  1. 数据分组,数据块更小(这里取8bit)
  2. 64位向量左移8位,再补上上轮所得的k高8(c)位
  3. 密钥和向量加密得k
  4. k高8位与明文异或得到下一轮的密文
  • 优点:
  1. 隐藏了明文模式;
  2. 分组密码转化为流模式;
  3. 可以及时加密传送小于分组的数据;
  • 缺点:
  1. 不利于并行计算;
  2. 对明文的主动攻击是可能的;
  3. 误差传送:一个明文单元损坏影响多个单元;
-------------本文结束感谢您的阅读-------------