分组密码和流密码的区别


分组密码和流密码都属于对称密钥密码家族,它们基本上是用于将明文直接转换为密文的加密方法。

阅读本文,了解分组密码和流密码的功能以及它们彼此之间的区别。

什么是分组密码?

分组密码是一种对称加密技术,它使用共享的秘密密钥来加密固定大小的数据块。在加密过程中,使用明文,密文是加密后的文本。明文和密文都使用相同的密钥进行加密。

分组密码处理固定大小的数据块。通常,消息的大小大于块大小。因此,长消息被分成一系列连续的消息块,密码一次对这些块进行操作。

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

  • 数据加密标准 (DES)、TripleDES 和高级加密标准 (AES) 是分组密码算法的知名版本。

  • 流密码是分组密码的对应物,它使用共享密钥并一次对输入的一个比特进行操作。

  • 公开密钥密码术或非对称密码术是分组密码算法的替代方案。该算法使用公钥加密明文,使用私钥解密密文。

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

  • 电子密码本 (ECB) 模式

  • 密码分组链接 (CBC) 模式

  • 密文反馈 (CFB) 模式

  • 输出反馈 (OFB) 模式

  • 计数器 (CTR) 模式

这些模式是通用分组密码的程序规则。有趣的是,不同的模式会产生不同的特性,从而增强底层分组密码的安全性。

什么是流密码?

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

  • 流密码使用基于密钥的算法一次加密任意数量的明文。

  • 为了确保这种类型的加密安全,伪随机密码数字应该是不可预测的,并且密钥不应该重复使用。

  • 伪随机密码数字是使用数字移位寄存器和多个随机种子值创建的。

  • 流密码也称为状态密码。“状态密码”这个名称源于每个数字的加密都取决于密码的当前状态。

  • RC4 流密码广泛用于软件中。

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

分组密码和流密码的区别

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

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

结论

分组密码适用于管理数据块的应用程序,包括文件传输、电子邮件和数据库。另一方面,流密码更适用于需要加密/解密数据流的应用程序,包括通过数据通信通道或浏览器/Web 链接。

更新于:2022年7月27日

11K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告