AES_GCM加密

bg AES-GCM 非常简单,如果你看过前面几篇工作模式文章,会很容易理解它的处理逻辑。
这个模式主要分为两部分:

  1. AES-CTR
    • 负责主要的加密逻辑,将明文转换为密文。
  2. GMAC
    • 负责认证,保证消息完整性和真实性。

下面我们主要讲解一下 GMAC 的逻辑


GMAC 作用

  • GMAC 是 GCM 中的消息认证码(MAC)组件
  • 提供数据完整性和真实性验证
  • 确保密文和 AAD(附加认证数据)未被篡改
  • 换句话说:保证消息没被篡改,且是由密钥持有者生成

GMAC 核心原理

GMAC 由两部分组成:

  1. GHASH 函数

    • GF(2¹²⁸) 上进行多项式运算
    • 输入:密文块、AAD、长度信息
    • 迭代进行乘法和异或运算
    • 乘数 H = AES(Key, 0¹²⁸)

      这一步不是为了加密消息,而是生成 GMAC 运算的固定系数 H

  2. 最终加密步骤

    • 将 GHASH 结果与 AES-加密后的初始计数器块 J0 进行异或
    • 生成最终的认证标签(Tag)

完整公式

认证标签 Tag = AES(Key, J0) ⊕ GHASH_H(AAD, Ciphertext)


安全特性

  • 安全性依赖于底层 AES 的安全性
  • 提供 128 位的安全强度
  • 相比 HMAC,GHASH 具有更好的并行性能

总结

AES-GCM 不只是加密,它还生成认证码。
H = AES(K,0¹⁶) 不是用来加密消息,而是“初始化认证引擎”的材料,保证 GMAC 生成的 Tag 安全且唯一,类似给消息盖的隐形印章。

这个模式在加密上不常直接见到,但在消息传输和网络协议中非常常用。