Window CryptoAPI:我可以在生成 RSA 密钥对时选择公共指数吗?

Posted

技术标签:

【中文标题】Window CryptoAPI:我可以在生成 RSA 密钥对时选择公共指数吗?【英文标题】:Window CryptoAPI: Can I choose the public exponent when generating an RSA key pair? 【发布时间】:2009-11-16 10:42:12 【问题描述】:

使用 Windows CryptoAPI,有没有办法指定在生成新的密钥对时使用哪个公共指数(即 3 而不是 65537)?

作为附加问题:我如何使用 .NET RSACryptoServiceProvider 访问此功能?

编辑:我的猜测是答案是否定的,但我想得到确认。

【问题讨论】:

【参考方案1】:

不-我们走了 :) 更严重的是CryptGenKey 您可以发送到 CryptGenKey 的唯一参数是在CryptSetKeyParam 中设置的。您可以从文档中看到,您只能为每种密钥类型设置有限数量的属性,并且只能为 RSA 密钥设置一个。

(另外,我相信你也知道,小指数无论如何都是危险的)

【讨论】:

总理?发电机?如果您说的是 KP_G 和 KP_P,那么这些是针对 DSA 的。 错了。减慢我睡着的速度:) 尽管如此,参数结构仍然适用,它是影响密钥生成的唯一方法,除了 KP_OAEP_PARAMS 之外,RSA 没有任何东西【参考方案2】:

我认为这回答了你的第二个问题:

EncryptTo/DecryptTo: Encryption in .NET with CryptoAPI Certificate Stores

【讨论】:

以上是关于Window CryptoAPI:我可以在生成 RSA 密钥对时选择公共指数吗?的主要内容,如果未能解决你的问题,请参考以下文章

[加密解密]CryptoAPI简介

农业银行上网银里CryptoAPI私钥是啥东西啊

CryptoAPI C++ 使用 AES 与 Java 互操作

使用 WebAPI 加密数据时出现 TypeError window.crypto.subtle.encrypt()

Cryptoapi 签名/验证在 Windows 8.1 上不起作用

将 PEM 编码的 X.509 证书加载到 Windows CryptoAPI