不安全的 RSA 公钥指数
密钥生成中使用的上下文与低指数值相关联
描述
当您尝试使用与低公共指数关联的上下文对象生成 RSA 密钥时,会发生此缺陷。
例如,您在上下文对象中设置了 3 作为公钥指数,然后将其用于密钥生成。
/* Set public exponent */ ret = BN_dec2bn(&pubexp, "3"); /* Initialize context */ ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL); pkey = EVP_PKEY_new(); ret = EVP_PKEY_keygen_init(kctx); /* Set public exponent in context */ ret = EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp); /* Generate key */ ret = EVP_PKEY_keygen(kctx, &pkey);
风险
较低的 RSA 公钥指数会使某些类型的攻击更加危险,尤其是在使用弱填充方案或完全不使用填充的情况下。
修复
建议使用公共指数 65537。使用更高的公钥指数会导致运算速度变慢。
示例
结果信息
| 组:加密 |
| 语言:C | C++ |
| 默认值:关闭 |
命令行语法:CRYPTO_RSA_LOW_EXPONENT |
| 影响:中 |
版本历史记录
在 R2018a 中推出
另请参阅
对 RSA 算法运算使用不兼容的填充 | RSA 算法缺失填充 | RSA 算法缺失盲化 | 对 RSA 算法使用弱填充 | 查找缺陷 (-checkers)
主题
- 解释 Polyspace 桌面端用户界面中的 Bug Finder 结果
- 解释 Polyspace Access Web 界面中的 Bug Finder 结果 (Polyspace Access)
- 通过 Bug 修复或申述在 Polyspace 用户界面中处理结果
- 通过 Bug 修复或申述在 Polyspace Access 中处理结果 (Polyspace Access)