我们都知道加密算法分为对称加密和非对称加密两种,但是在对称加密算法中,还分为块加密和流加密。今天我们就来了解一下什么是块加密算法?

块加密算法的概念

块加密,英文为Block Cyper,又被称为分组加密,是一种常见的对称加密。它并不是指某个算法,而是对称加密算法中的一种加密方式。

块加密算法是将固定长度的数据块或纯文本数据(未加密)转换成长度相同的密码块(加密文本)数据。该转换的前提是用户提供密钥。解密时,要使用相同的密钥对密码块数据进行逆转换。固定的长度被称作数据块大小,大多数密码块的固定大小都是64位或128位。

由于块加密的工作模式允许使用同一个分组密码密钥对多于一块的数据进行加密,并保证其安全性,一般来说块加密相比较流加密更安全一些。

块加密

常见的块加密算法

  • AES加密算法
  • DES系列加密算法
  • RC系列加密算法

块加密算法的加密模式

1.ECB模式

这是最简单最普通的加密模式,就是加密完一轮数据,接着加密下一轮数据,不同轮次之间的数据间无任何关系。

块加密算法

2.CBC模式

这种模式就是上面一轮加密的结果与下一轮的明文进行异或,然后进行加密。因为第一个明文分组没有前面的密文与之异或,故需要一个初始向量IV。

块加密算法

3.CFB

将数据进行加密的结果与明文进行异或得到密文,然后再将密文进行加密再与明文异或得到下一个密文,依次类推。同理,在最开始的时候需要一个初始向量IV。

块加密算法

4.OFB

将一个初始向量一直加密,每加密一次的结果与明文进行异或得到密文。

块加密算法

5.CTR

一直加密计数器,得到加密的结果与明文进行异或得到密文。

块加密算法

目前常用的对称加密算法基本上都属于块加密算法,其中DES和3DES是使用最多的数据块加密,AES则是更高级的块加密法。

免责声明:素材源于网络,如有侵权,请联系删稿。