Skip to main content

Module rsa

Module rsa 

Source
Expand description

RSA-OAEP 非对称加密(RFC 8017 §7.1 RSAES-OAEP),摘要与 MGF1 均固定 SHA-256。

  • 密钥与密文均为十六进制字符串;密钥格式由本库自定(PHP 版未提供 RSA, 无对齐约束):私钥 = PKCS#8 DER 的十六进制,公钥 = SPKI DER 的十六进制;
  • 密文定长:等于模数字节长 k(2048 位密钥即 256 字节)。OAEP 每次加密都注入 新随机种子,同一明文两次加密的密文必然不同,调用方不应比对密文;
  • 明文上限 k − 2×32 − 2 字节(RFC 8017 §7.1.1 式 (1),2048 位密钥即 190 字节), 超长加密报 Error::EncryptionFailed;
  • 解密走 decrypt_blinded:模幂前用随机数盲化,防 Bleichenbacher 式计时 侧信道;一切失败(密钥不对 / 密文被改 / 填充非法)都是 Error::DecryptionFailed,不区分原因;
  • RsaOaepSha256Service::generate_key_pair_hex 拒绝低于 2048 位的请求: 2048 位是本库接受的 RSA 安全下限;解析路径不设位宽下限(兼容存量 密钥——历史数据可能由弱密钥加密,拒绝加载会让旧数据无法解开,风险自担; 新密钥请一律走 generate)。
  • 已知边界(RUSTSEC-2023-0071):上游 rsa crate 的「Marvin」时序侧信道 公告至今无补丁(0.9.10 与 0.10.0-rc 均受影响)。本库解密固定走 decrypt_blinded(公告承认的缓解方向),但网络暴露场景建议优先 ECDH / X25519 / Ed25519 / ML-KEM;RSA-OAEP 定位为与存量系统互通或本地使用。

对应 PHP 版:无(PHP 包未提供 RSA 实现)。

Structs§

RsaOaepSha256Cipher
RSA-OAEP-SHA256 非对称加密器(实现 AsymmetricCipher;行为与 RsaOaepSha256Service 一致)。
RsaOaepSha256Service
RSA-OAEP-SHA256 静态门面(密钥材料每次调用显式传入)。