AES-GCM和SM4-GCM工作原理及数据加解密验证方案详解
下面分三部分给出:
- AES-GCM / SM4-GCM 原理梳理
- 基于 OpenSSL 的 C 语言 Reference Model (可编译成 DPI-C 动态库)
- SystemVerilog DPI 调用示例
1. AES-GCM 与 SM4-GCM 工作原理
1.1 GCM 模式总体架构
GCM (Galois/Counter Mode)是一种同时提供加密(Confidentiality)和认证(Authenticity)的分组密码工作模式。它用 CTR 模式做流加密,用 GHASH 做消息认证。
- 密钥 K
- 分组加密
- 生成哈希子键 H = E_K(0^128)
- 若 IV 长度=96 bit,则初始计数器
J₀ = IV ∥ 0x00000001
否则
J₀ = GHASH_H(pad(IV))
- CTR 加密
- 对第 i 个块:
CTR_i = inc32(J₀, i)
S_i = E_K(CTR_i)
C_i = P_i ⊕ S_i
- 对第 i 个块: