【问题标题】:RSA Key Values and Modulus in Public/Private Keys公钥/私钥中的 RSA 密钥值和模数
【发布时间】:2013-07-15 14:56:22
【问题描述】:

我正在编写一个使用 PKI 来保护电子邮件、文件等的应用程序。 使用System.Cryptography 命名空间,我正在使用RSACryptoServiceProvider 生成一个新的密钥对。

方法是:

public static void GenerateKeys(int keySize, out string publicKey, out string privateKey)
{
    using (var provider = new RSACryptoServiceProvider(keySize))
    {
        publicKey = provider.ToXmlString(false);
        privateKey = provider.ToXmlString(true);
    }
}

keySize = 2048。

这会产生一个像这样的公钥(为了整洁,它已经用“-----START/END PUBLIC KEY BLOCK-----”包装器修剪/填充。

-----START PUBLIC KEY BLOCK-----
<RSAKeyValue><Modulus>xs1GwyPre7/knVd3CAO1pyk++yp/qmBz2TekgrehYT
WU7hs8bUCeVQrL2OB+jm/AgjdPMohWHD/tLcJy35aZgVfPI3Oa3gmXxdoLZrfNRb
nrCm3Xr1MR7wnhMyBt5XXyU/FiF46g5qJ2DUIUg7teoKDNUSAN81JTIoH0KC+rZB
oO3tu9PR7H75K5G2eT6oUWkWKcZZU/4WNCDasNtizTe41Jy99BjrChww5r2ctqG8
LvIv7UeeFaK1vhxGKaNH/7JvKJI9LbewWNtmb/nRzQg9xK3e0OhblbW+o6zg5pTw
+n37fS7pkXK7lbRfUfaQmhoGy6ox4UWGmOgm8yPu8S4Q==</Modulus><Exponen
t>AQAB</Exponent></RSAKeyValue>
-----END PUBLIC KEY BLOCK-----`

当我查看基于 PGP 的公钥(或私钥)时,密钥中没有 &lt;RSAKeyValue&gt;&lt;Modulus&gt;&lt;Exponent&gt; 值。

我做错了吗?我错过了什么吗?如果我分发此密钥,这是一个安全问题吗?

加密对我来说是一个令人兴奋的新领域,所以我非常感谢这里的任何指导。我担心我搞砸了 - 加密密钥工作并使用私钥解密工作 - 我只是想知道 PGP/GPG 密钥在外观上有何不同以及我需要做些什么来纠正这个问题?

提前谢谢你!

【问题讨论】:

    标签: rsa pki rsacryptoserviceprovider


    【解决方案1】:

    RSAKeyValue、Modulus 和 Exponent 标记在其中,因为您使用了方法 ToXmlString()

    RSA 公钥由模数和公共指数组成。分发这两个项目没有安全问题。但是,您不想分发私钥中的任何其他项目。私钥具有以下字段:

    <RSAKeyValue>
       <Modulus>…</Modulus>
       <Exponent>…</Exponent>
       <P>…</P>
       <Q>…</Q>
       <DP>…</DP>
       <DQ>…</DQ>
       <InverseQ>…</InverseQ>
       <D>…</D>
    </RSAKeyValue>
    

    除了在私钥和公钥中都可以找到的模数和公共指数之外,不要分发任何东西。

    在分发公钥时,通常是通过发放签名的 X509 证书来完成的,其中包含公钥、将该密钥链接到实体的标识信息以及来自受信任机构的签名。

    如果您以 XML 字符串格式提供公钥,则接收方必须使用 FromXmlString() 方法来使用它。除非您亲自将公钥交给他们(或使用上面的证书方法),否则接收者也无法知道是否是您真正发送了公钥。

    【讨论】:

    • 你能给我指出每个字段的含义吗?例如,

      等。我找不到任何记录这些字段实际相关的内容。

    猜你喜欢
    • 2014-04-26
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多