Skip to main content

5. Cryptographic Algorithms for Content Encryption (内容加密的加密算法)

5.1 "enc" Header Parameter Values for JWE (JWE 的 "enc" 参数值)

JWE 支持的内容加密算法:

"enc" 参数值内容加密算法实现要求
A128CBC-HS256AES_128_CBC_HMAC_SHA_256Required
A192CBC-HS384AES_192_CBC_HMAC_SHA_384Optional
A256CBC-HS512AES_256_CBC_HMAC_SHA_512Required
A128GCMAES GCM using 128-bit keyRecommended
A192GCMAES GCM using 192-bit keyOptional
A256GCMAES GCM using 256-bit keyRecommended

5.2 AES_CBC_HMAC_SHA2 算法

这是一种组合加密和认证算法,结合了:

  • AES CBC 模式进行加密
  • HMAC SHA-2 进行认证

关键特性:

  • 提供认证加密 (Authenticated Encryption)
  • CEK 同时用于加密和 MAC 计算
  • 支持三种密钥大小配置

算法变体:

  • A128CBC-HS256: AES-128-CBC + HMAC-SHA-256 (256 位 CEK)
  • A192CBC-HS384: AES-192-CBC + HMAC-SHA-384 (384 位 CEK)
  • A256CBC-HS512: AES-256-CBC + HMAC-SHA-512 (512 位 CEK)

5.3 AES GCM 内容加密

AES Galois/Counter Mode (GCM) 是一种认证加密算法:

  • 提供机密性和完整性保护
  • 高效的硬件实现
  • 支持额外认证数据 (AAD)

算法变体:

  • A128GCM: 使用 128 位密钥
  • A192GCM: 使用 192 位密钥
  • A256GCM: 使用 256 位密钥

GCM 参数:

  • Initialization Vector: 96 位随机值
  • Authentication Tag: 128 位认证标签

选择建议:

  • 优先使用 AES-GCM 算法(更高效)
  • AES_CBC_HMAC_SHA2 提供广泛的兼容性
  • 根据安全需求选择适当的密钥长度