密码学 - 流密码与分组密码



流密码和分组密码是对称密钥密码的变体,主要用于加密。它是将(明文转换为密文)更直接的服务必须在大多数情况下使用。

理解本章将使您了解流密码的构成以及它们与分组密码的不同之处。

什么是流密码?

流密码是一种加密方法,它将伪随机密码数字流与明文数字组合。此伪随机加密数字流一次应用于每个二进制数字的一个比特。这种加密方法为每个密钥使用无限量的伪随机密码数字。

  • 流密码使用基于密钥的算法一次对任意数量的明文进行加密,每次一个比特。
  • 对于这种类型的加密安全,伪随机密码数字应该是不可预测的,并且密钥永远不应该重复使用。
  • 伪随机密码数字是使用数字移位寄存器和几个随机种子值创建的。
  • 流密码也称为状态密码。“状态密码”这个名称源于每个数字的加密都取决于密码的当前状态这一事实。
  • RC4 流密码广泛用于软件中。

使用经过适当设计的伪随机数生成器,流密码可以与密钥长度相同的分组密码一样安全。流密码的主要优点是它使用的代码更少,并且比分组密码快。

什么是分组密码?

分组密码是一种对称加密方法,它使用共享的秘密密钥加密固定大小的数据块。在加密过程中使用明文,生成的加密文本称为密文。相同的密钥用于加密明文和密文。

分组密码处理固定大小的数据块。消息的大小通常大于块大小。因此,长消息被分成多个连续的消息块,每个块由密码单独处理。

分组密码使用共享的秘密密钥一次加密和解密其输入一个块,而不是一次一个比特。由于块的大小是固定的,因此不需要填充。此算法是对称的。加密使用公共密钥将文本输入转换为密文(加密文本)。在解密期间,它使用相同的密钥将密文传输回原始明文。输入和输出的长度相同。

  • 分组密码算法 (AES) 通常以数据加密标准 (DES)、三重 DES 和高级加密标准等名称而闻名。
  • 流密码是分组密码的反向工作,使用共享密钥逐位处理其输入。
  • 非对称或公钥密码学是分组密码的替代方案。这种方法使用公钥加密明文,并使用私钥解密密文。

分组密码有不同的操作模式 -

  • 电子密码本 (ECB) 模式
  • 密码分组链接 (CBC) 模式
  • 密码反馈 (CFB) 模式
  • 输出反馈 (OFB) 模式
  • 计数器 (CTR) 模式

这些模式是通用分组密码的操作规则。值得注意的是,各种模式创造了不同的特性,从而提高了分组密码的整体安全性。

分组密码和流密码的区别

下表显示了分组密码和流密码的主要区别 -

密钥 分组密码 流密码
定义 分组密码是一种加密类型,其中明文的转换是通过一次获取其块来执行的。 流密码是一种加密类型,其中明文的转换是通过一次获取明文的一个字节来执行的。
比特转换 由于分组密码一次转换块,因此它转换的比特数比流密码多,流密码可以转换 64 位或更多。 然而,在流密码的情况下,一次只能转换 8 位。
原理 分组密码使用“混淆”和“扩散”原理来执行加密所需的转换。 流密码仅使用混淆原理进行转换。
算法 对于明文加密,分组密码使用电子密码本 (ECB) 和密码分组链接 (CBC) 算法。 流密码使用 CFB(密码反馈)和 OFB(输出反馈)算法。
解密 由于在分组密码的情况下,更多的比特组合被加密,因此与流密码相比,反向加密或解密相对复杂。 流密码使用 XOR 进行加密,可以轻松地将其反转回明文。
实现 Feistel 密码是最常见的分组密码实现。 流密码的主要实现是 Vernam 密码。

总结

分组密码用于加密和解密数据,它使用一个密钥以预定义的固定大小进行操作,这与逐位操作的流密码不同。在混淆和扩散方面,分组密码使用ECB和CBC等技术。另一方面,流密码对较少的比特进行操作,并且它们仅依赖于混淆;它们通常使用异或运算进行加密。

广告