工作模式(Mode of Operation)(空)

工作模式(Mode of Operation)的概念

在密码学中,工作模式(Mode of Operation) 是指块加密算法(如 AES、DES 等)处理任意长度明文的一套规则和流程。

块加密算法本身只能加密固定长度的明文块(例如 AES 处理 128 位块,DES 处理 64 位块),而实际需要加密的数据(如文件、消息)往往是任意长度的。工作模式的作用就是定义如何将这些 “固定长度块加密” 的基本操作扩展到 “任意长度数据加密”,同时解决安全性、效率、完整性等问题。

ECB**(Electronic Codebook)**:电子密码本模式

ECB是一种安全性不高的工作模式,仅适用于教学场合

它的加密流程为image-20250715144919524

也就是说把明文拆分成若干个明文块,再用相同的key对每个明文块执行块加密算法

显然,使用相同的密钥就代表着,如果拆出了两个相同的明文块,那么这两个明文块对应的密文块是完全相等的,攻击者可通过分析密文结构推断明文规律。

ECB加密ctf例题

Cryptohack ECB-Oracle | AiY0u的博客

CBC**(Cipher Block Chaining)**:密码分组链接模式

CBC的安全性比ECB高,它具有一个初始化向量iv,与第一个明文块异或,并且后一个明文块加密时,都要先与前一个明文块的加密结果异或。这样就能打乱密文结构,不会出现ECB那样的规律性。

加密:

image-20250715160942718

解密:

image-20250715165020031

但是我们注意到,CBC工作模式下所谓的“分组链接”,是通过异或来链接起来的,而异或属于一种线性变换,这就导致前后密文块的关系仍然没有被完全打乱
并且由于异或操作是容易预测的,我们观察上图可以发现,仅仅需要伪造一个iv或者伪造部分密文,就能干扰解密的正常进行,并更换解密结果

上面这种攻击方式叫做比特翻转攻击(bit flipping attack)

比特翻转攻击例题

Cryptohack Flipping Cookie

OFB(Output Feedback Mode):输出反馈模式

image-20250716145935290

OFB同样要求一个初始化向量

在工作时它通过加密反馈的方式生成密钥流,再与明文 / 密文进行异或运算来实现加密和解密

在这种工作模式下,分组密码已经转化为了流密码

OFB 模式在满足特定条件(IV 的唯一性、分组密码的安全性)时具有一定安全性,但相比 CTR 等现代模式存在明显局限性

CTR(Counter Mode):计数器模式

CTR 模式的核心是通过计数器生成一系列不同的输入块,再用分组密码加密这些块得到密钥流,最后将密钥流与明文异或得到密文,解密时重复相同过程

image-20250716150004413

CTR 模式的计数器通常由两部分组成:

  • Nonce(初始向量 IV):固定长度的随机值,必须在每次加密时唯一。
  • 计数器值:与 Nonce 拼接后,每次加密一个数据块就递增(或递减)

加密第一个块[Nonce || 00000000] → 加密生成密钥流块 1

加密第二个块[Nonce || 00000001] → 加密生成密钥流块 2

以此类推,最终加密完成所有数据块

Nonce(Number Used Once),一次性随机数,每次加密时随机生成,长度通常为 64-96 位,必须保证唯一性