跳到主要内容
ecdsa.com

RSA-OAEP

采用最优非对称加密填充(OAEP)的 RSA 加密(RFC 8017 §7.1),在 JWE 中以 RSA-OAEP(SHA-1)和 RSA-OAEP-256(SHA-256)的形式封装内容密钥,取代了可被攻击的 PKCS #1 v1.5 加密。
其他写法RSAES-OAEPRSA-OAEP-256OAEP

OAEP 在模幂运算之前用随机种子对消息做哈希和掩码处理,从而在随机预言模型下抵御选择密文攻击;2048 位密钥配合 SHA-256 最多能加密 190 字节,足以容纳任何对称密钥。在 JWE 中,RSA-OAEP 的哈希和 MGF1 都使用 SHA-1,这在 OAEP 中仍被认为是安全的;RSA-OAEP-256 则使用 SHA-256;由于存在填充预言(padding oracle)攻击,不应使用 RSA1_5(PKCS #1 v1.5)。

在其他场景中,它出现在 CMS 密钥传输、WebCrypto(RSA-OAEP)、云 KMS 信封加密和 TPM 中。各个库的默认哈希不同(OpenSSL 和许多 API 默认为 SHA-1,WebCrypto 则要求显式指定哈希),因此 OAEP 参数不一致是解密失败的常见原因。实现不得泄露解密失败的原因,否则就会受到 Manger 攻击。

标准与参考资料

全部术语