块密码与流密码的区别2025年03月17日 | 阅读 9 分钟 块密码和流密码是对称密钥密码家族的成员,本质上是将明文直接转换为密文的加密技术。 在本文中,我们将讨论块密码和流密码的特征以及它们之间的区别。 什么是块密码?![]() 块密码是一种对称加密技术,我们使用它使用共享的密钥加密固定大小的数据块。 在加密过程中,我们使用明文,密文是产生的加密文本。它使用相同的密钥来加密明文和密文。 块密码以固定大小处理数据块。通常,消息的大小会超过块的大小。因此,长消息被分成多个顺序消息块,并且密码一次处理一个块。 借助共享密钥,块密码一次处理一个块而不是一个比特地加密和解密其输入。由于块大小是固定的,因此不需要填充。它是一种对称算法。在加密过程中,它使用共享密钥将文本输入转换为密文。在解密过程中,它使用相同的密钥将密文恢复为原始明文。输出和输入的长度相同。
块密码有多种操作模式
这些模式作为块密码的一般过程原则。 1. 电子密码本模式电子密码本模式以明文形式处理电子密码消息。这是最简单的块密码操作模式。它不会引入任何随机性到密钥流,并且是我们唯一可以用来加密单个比特流的模式。使用密码的密钥和替换字母表,每个明文字符,例如明文字母表中的一个字符,都被转换为密文字符。每个明文块都与其他块分开加密。当明文块仅为8 字节长时,仅使用密码的 8 字节密钥;当明文块为100 字节长时,则使用所有100 字节密钥。 2. 密码块链接模式 (CBC)在使用CBC 模式加密数据时,每个明文块都与前一个密文组合。由对称算法生成的密文取决于在它之前的数据流中处理过的所有明文块。这是为了确保每个密文块都取决于它之前的所有其他块。在使用密码算法加密数据之前,每个明文块都与前一个密文块进行 XOR(异或)运算。许多安全应用程序使用CBC 模式。例如,安全套接字层/传输层安全在加密通过互联网传输的数据时使用CBC模式。 3. 密文反馈模式 (CFB)与一次加密预定数量明文的CBC模式不同,有时需要快速地一次加密和发送明文值。CFB也使用IV,类似于CBC。块密码是CFB使用的随机数生成器的一部分。在CFB 模式下,前一个密文块被加密,然后输出与当前明文块进行XOR运算以生成当前的密文块。 4. 输出反馈模式 (OFB)在某些方面,CBC 和 OFB 模式是相似的,并且可以与任何块密码一起使用。它使用反馈机制;然而,在 OFB 模式下,前一个密文块在加密之前而不是之后与明文进行 XOR 运算。 5. 计数器模式 (CTR)CTR模式使用块链接加密模式作为构建块。加密数据的过程是通过将明文与一系列伪随机值进行 XOR 运算来完成的,这些值是通过使用反馈函数从密文中生成的;数据被加密。一系列明文块与相应的密文块之间的XOR运算可以用来表示CTR加密过程。 块密码的例子大多数现代密码套件都基于块密码。使用块密码的几种加密标准协议是 1. 数据加密标准 (DES)最初,使用56 位对称密钥算法来保护敏感的私人信息。DES由于其长度较短和其他安全问题而被淘汰,但仍被视为一种开创性的加密标准。 2. 高级加密标准 (AES)它是一种流行的块密码,使用128、192和256 位对称密钥以128 位的块对数据进行加密。底层块密码使用替换-置换和传输技术,通过在一系列链接的计算中打乱和替换输入数据来生成密文。AES是一个广泛的加密标准,因为针对其算法的密码分析工作是无效的。 3. TwofishTwofish是一种加密标准,它使用Feistel 网络、复杂的密钥调度和替换技术来分离密钥和密文。使用密钥长度从128 到 256 位不等的密钥,该标准以128 位的块加密明文数据。 其他加密方案,如3DES、Serpent和Blowfish,也使用块密码。 什么是流密码?![]() 流密码通过对明文数据进行随时间变化的修改来加密连续的二进制数字串。因此,这种加密方法逐比特工作,利用密钥流为任意长度的明文消息生成密文。密码结合密钥(128/256 位)和随机数(64-128 位)以生成密钥流 - 一个与明文进行XOR运算以生成密文的伪随机数。即使密钥和随机数可以重复使用以维持安全性,密钥流对于每次加密迭代也必须不同。为了构建密钥流,流加密密码会生成一个唯一的随机数(通过使用反馈移位寄存器的一次性数字)。 由于一个比特翻译错误通常不会影响整个明文块,流密码加密算法不太可能导致系统范围的错误扩散。此外,流加密是线性的和连续的,使其更容易和更快速地部署。然而,流密码没有扩散,因为明文的每个数字都映射到一个密文输出。此外,它们不检查有效性,这使得它们容易受到插入攻击。如果黑客破解了加密算法,他们就可以在不被注意的情况下添加或修改加密消息。流密码通常用于加密应用程序中的数据,其中明文的量无法预测,以及在低延迟用例中。 换句话说,流密码是一种加密类型,它使用明文数字和一串伪随机的密码数字。这个伪随机加密数字流逐个二进制数字接收一位。这种加密技术为每个密钥使用无限数量的伪随机密码数字。 状态密码是流密码的另一个名称。“状态密码”一词指的是这样一个系统,其中每个数字的加密取决于密码的当前状态。 流密码的类型流密码有两种类型 1. 同步流密码 在同步流密码中,密钥流块独立于之前的密文和明文消息创建。最流行的流密码模式使用伪随机数生成器生成一串比特,并将其与密钥组合以创建密钥流,然后该密钥流与明文进行XOR运算以生成密文。 2. 自同步/异步流密码 前一个密文块的固定大小(N 位)和对称密钥用于通过自同步流密码(也称为密文自动密钥)生成密钥流块。异步流密码可以通过更改密文来检测主动攻击,这会改变后续密钥流中的信息。由于单个数字错误最多只能影响N 位,因此这些密码的错误传播也受到限制。 流密码的例子以下是流密码的例子 1. River Cipher (RC4)RC4/ARC4/ARCFOUR是一种快速简单的加密算法,于1987年创建,用于通过使用64 或 128 位长度的密钥来实现逐字节加密。传输层安全、安全套接字层和IEEE 802.11 WLAN标准都广泛使用RC4。这种广泛使用的加密方法有多种变体,包括SPRITZ、RC4A和RC4A+。 2. Salsa20Salsa20是一种强大、最新的加密密码,它使用扩展函数来创建加密密钥流。Salsa20还依赖于一个核心函数,该函数使用加-旋转-异或(ARX)操作将来自扩展函数的密钥、随机数字和常量向量映射到密钥流。 3. 软件优化加密算法 (SEAL)SEAL是一种加性二进制流密码,专为具有32 位 CPU和足够RAM的系统设计。加密标准依赖于一个伪随机族,该族使用一个长度增加函数和 160 位密钥将 32 位字符串映射到任意长度的字符串。 PANAMA、Scream、Rabbit、HC-256和Grain是一些其他的流密码例子。 块密码与流密码的区别![]()
流密码相对于块密码的优势以下是流密码相对于块密码的优势
块密码和流密码之间的关键区别
下一主题区别 |
Bootstrap 3 和 Bootstrap 4 之间的区别 本文将比较 Bootstrap 的两个版本:Bootstrap 3 和 Bootstrap 4。Bootstrap 是一个流行且强大的前端框架,用于使用 HTML、CSS 和 JavaScript 构建响应式网站。它是第一个...
5 分钟阅读
每天,我们都会产生大量的垃圾,我们会丢弃或扔掉。厨房垃圾,如水果和蔬菜皮、空牛奶盒、用过的茶包,以及各种其他物品,如果汁、塑料袋、纸张、脏衣服和过时的鞋子...
阅读 6 分钟
红茶和绿茶的区别 茶是世界上最受欢迎的饮料之一,有多种品种。在全球范围内被广泛消费的两个品种是红茶和绿茶。尽管这两个品种都来自...
阅读 3 分钟
骨骼和软骨的区别 人体骨骼系统是人体的框架,主要由两种特化的结缔组织构成:骨骼和软骨。两者都由胶原蛋白、细胞外基质和细胞组成。细胞...
阅读 3 分钟
肉汤和高汤的区别 许多人认为肉汤和高汤是相同的可互换术语,因为它们有很多相似之处。但它们并不指代同一事物,因为它们在 terms of ...
阅读 3 分钟
大脑和计算机的区别 大脑和计算机之间的区别在认知科学和人工智能领域非常有帮助,在这些领域,人脑被用来构建人工神经网络以生成专家系统。大脑和...之间的第一个区别
5 分钟阅读
黄铜和青铜的区别 我们家中有许多物品作为装饰品。它们由不同材料制成,如铜、锌、黄铜等。其中一些甚至被氧化。主要由这种材料制成的雕像、绘画、雕塑等。 the...
阅读 4 分钟
呼吸与呼吸作用的区别 呼吸 呼吸的定义是通过吸入和呼气来交换气体的生物物理过程。呼吸也称为“外呼吸”。呼吸是一种外部过程,通过该过程吸入氧气,呼出二氧化碳...
阅读 3 分钟
带宽和频率是电子学研究中的两个属性。频率和带宽是数据传输中最重要的两个术语。然而,在网络环境中,这两个属性有不同的含义。频率和带宽的主要区别在于频率...
阅读 4 分钟
引言:人类是宇宙中最尊贵的生物。人是所有生物中最尊贵的。所有生物都彼此不同。身体的形状各不相同。生物生存的主要要求是它们身体的...
11 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India