分组密码

分组密码的基本方案如下所示−

块密码

分组密码采用明文位块并生成密文位块,通常大小相同。 块的大小在给定方案中是固定的。 块大小的选择并不直接影响加密方案的强度。 密码的强度取决于密钥长度。

块大小

虽然任何大小的块都是可以接受的,但在选择块的大小时要记住以下几个方面。

  • 避免非常小的块大小 +minus; 假设块大小为 m 位。 那么可能的明文比特组合就是 2m。 如果攻击者发现与某些先前发送的密文块相对应的明文块,则攻击者可以通过建立使用该加密密钥发送的明文/密文对的字典来发起一种"字典攻击"。 较大的块大小会使攻击变得更加困难,因为字典需要更大。

  • 块大小不要太大 − 如果块大小非常大,密码的运行效率就会变得很低。 此类明文在加密之前需要进行填充。

  • 8 位的倍数 − 优选的块大小是 8 的倍数,因为它很容易实现,因为大多数计算机处理器以 8 位的倍数处理数据。

分组密码中的填充

分组密码处理固定大小的块(比如 64 位)。 明文的长度大多不是块大小的倍数。 例如,150 位明文提供两个 64 位块,每个块以及第三个平衡 22 位块。 最后一个比特块需要用冗余信息填充,以便最终块的长度等于该方案的块大小。 在我们的示例中,剩余的 22 位需要添加额外的 42 个冗余位才能提供完整的块。 向最后一个块添加位的过程称为填充

填充过多会使系统效率低下。 此外,如果填充始终使用相同的位来完成,则填充有时可能会导致系统不安全。

分组密码方案

有大量的分组密码方案正在使用中。 其中许多是众所周知的。 下面列出了最流行和最著名的分组密码。

  • 数字加密标准 (DES) +minus; 20 世纪 90 年代流行的分组密码。 它现在被认为是一种"损坏的"分组密码,主要是因为它的密钥尺寸很小。

  • 三重 DES − 它是基于重复 DES 应用的变体方案。 它仍然是一种受人尊敬的分组密码,但与可用的新的更快的分组密码相比效率较低。

  • 高级加密标准 (AES) − 它是一种相对较新的分组密码,基于赢得 AES 设计竞赛的加密算法 Rijndael

  • IDEA − 它是一种足够强大的分组密码,块大小为 64,密钥大小为 128 位。 许多应用程序使用 IDEA 加密,包括早期版本的 Pretty Good Privacy (PGP) 协议。 由于专利问题,IDEA方案的使用受到限制。

  • Twofish − 该分组密码方案使用 128 位的分组大小和可变长度的密钥。 它是 AES 决赛入围者之一。 它基于早期的分组密码 Blowfish,分组大小为 64 位。

  • Serpent − 块大小为 128 位、密钥长度为 128、192 或 256 位的块密码,该密码也曾入围 AES 竞赛决赛。 与其他分组密码相比,它速度较慢,但设计更安全。

在接下来的部分中,我们将首先讨论分组密码模型,然后讨论 DES 和 AES 这两种最有影响力的现代分组密码。