分组密码加密操作模式

本文详细介绍了分组密码的几种加密操作模式,包括电子密码本模式(ECB)、密码分组链接模式(CBC)、输出反馈模式(OFB)、密码反馈模式(CFB)、计数器模式(CTR)和伽罗瓦计数器模式(GCM)。ECB模式因安全性问题不推荐使用,而CBC、OFB、CFB和CTR通过使用初始向量实现了概率加密。GCM模式结合了计数器模式的加密和认证功能,提供机密性和完整性保护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

密码其目的为,通过加密数据为Alice发给Bob的消息提供了保密性。

电子密码本模式(ECB)

一种最直接的消息加密方式。若分组密码加密分组大小为b位,则如果长度超过b位时,消息将被分割为欸大小为b位的分组。如果消息长度不是b位的整数倍,则在加密前必须将其填充为b位的整数倍。

由于传输问题导致接收方没有收到所有的加密分组时,接收方还是可能解密已收到的分组。但ECB模式最大的问题在于它的加密是高度确定的(只要密钥不变,相同的明文分组总是产生相同的密文分组),即ECB模式可以看作是巨大的密码本,每个输入都映射到特定的输出。

ECB容易遭受流量攻击、容易遭受代换攻击、容易遭受统计分析攻击。

因此,人们期望每次加密相同的明文会得到不同的密文,这种行为叫做“概率加密”。人们可以引入一些随机化初始向量来实现概率加密。下面所有模式都使用初始向量来实现概率加密。

密码分组链接模式(CBC)

该操作模式主要思想有两种:

  1. 所有分组加密都链接在一起,使得密文yi不仅依赖于分组xi,而且还依赖于前面所有的明文分组。
  2. 加密过程使用初始向量进行了随机化。

    • 加密(第一个分组) y1 = ek(x1 xor IV)
    • 加密(一般分组) yi = ek(xi xor y{i-1}) i >= 2
    • 解密(第一个分组) x1 = ek^-1(y1) xor IV
    • 解密(一般分组) xi = ek^-1(ti) xor y{i-1} i >= 2

但加密本身还是不够的,我们还需要保护消息的完整性(通过消息验证码(MAC)或数字签名实现)

输出反馈模式(OFB)

首先使用分组密码加密IV,得到的密钥输出为b位密钥序列的第一个集合;将前面一个密钥输出反馈给分组密码进行加密,即可计算出密钥序列位的下一个分组;不断重复这个过程。 <

### 分组密码加密模式的相关考点 #### 1. AES 的基本概念 高级加密标准 (AES) 是一种对称分组密码,广泛应用于数据保护领域。它支持三种不同的密钥度:128 位、192 位和 256 位[^1]。每种密钥度对应不同数量的加密轮次: - **128 位密钥**需要 10 轮加密; - **192 位密钥**需要 12 轮加密; - **256 位密钥**需要 14 轮加密。 #### 2. 分组密码的工作原理 分组密码是一种将明文分成固定大小的块并逐一加密的方法。常见的分组密码工作模式包括电子密码模式 (ECB, Electronic Codebook Mode) 和密文分组链接模式 (CBC, Cipher Block Chaining Mode)[^3]。 #### 3. ECB 模式的特性与局限性 ECB 模式是最简单的分组密码操作模式之一。在这种模式下,每个明文块独立加密成对应的密文块。然而,这种简单的设计也带来了显著的全隐患——如果两个明文块相同,则它们会被加密为相同的密文块。因此,在某些情况下,攻击者可以通过观察重复的密文来推断原始消息的内容。 #### 4. CBC 模式的改进机制 为了克服 ECB 模式的缺陷,引入了 CBC 模式。在该模式中,每一个明文块都会先与其前一密文块进行 XOR 运算后再送入加密函数处理。初始向量 (IV, Initialization Vector) 则用于第一个明文块的 XOR 计算,从而打破各块之间的关联关系。这种方法增加了系统的随机性和抗重放能力,使得即使存在完全一致的消息片段也不会暴露于外部分析之下。 #### 5. Python 实现中的应用实例 以下是利用 `hashlib` 库实现 MD5 哈希计算的一个例子[^4]: ```python import hashlib def encrypt_md5(input_str): md5_hasher = hashlib.md5() md5_hasher.update(input_str.encode(encoding='utf-8')) return md5_hasher.hexdigest() if __name__ == "__main__": result = encrypt_md5('example_string') print(result) ``` 此代码展示了如何通过哈希算法生成固定度字符串摘要的过程,尽管这并非严格意义上的对称加密技术,但它常被用来验证数据完整性或者作为辅助工具配合其他更复杂的加解密流程一起使用。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值