跳到主要内容

5. Content Encryption 的密码算法

5.1 "enc" Header Parameter Values for JWE

JWE 支持的 content encryption 算法:

"enc" Param ValueContent Encryption AlgorithmImplementation Requirements
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 Algorithms

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

  • 用于加密的 AES CBC 模式
  • 用于认证的 HMAC SHA-2

主要特性:

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

算法变体:

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

5.3 AES GCM Content Encryption

AES Galois/Counter Mode (GCM) 是一种 authenticated encryption algorithm:

  • 提供机密性和完整性保护
  • 硬件实现效率高
  • 支持 Additional Authenticated Data (AAD)

算法变体:

  • A128GCM: 使用 128-bit key
  • A192GCM: 使用 192-bit key
  • A256GCM: 使用 256-bit key

GCM Parameters:

  • Initialization Vector: 96-bit 随机值
  • Authentication Tag: 128-bit authentication tag

选择建议:

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