RSA的最小密钥长度

时间:2014-03-26 22:10:53

标签: c# cryptography rsa

当我使用RSA在C#中实现许可证密钥机制时,我遇到了RSACryptoServiceProvider class,它被限制为至少384位密钥大小。此密钥长度直接影响我创建的签名(==许可证密钥)。

一般来说,384位是RSA的技术限制还是可以用更短的密钥大小成功实施RSA?

阅读解释RSA的(德国)维基百科文章,他们在数学计算示例中使用非常小的素数。这似乎有效,所以我希望密钥大小小于20位...注意:我现在绝对不关心安全性。这是另一个讨论。我只想获得正确的技术限制。

我知道不应该使用Stackoverflow来寻求工具,但是如果你知道一个具有下限的.NET RSA库,那么你可能只想提一下它作为旁注。 < / p>

3 个答案:

答案 0 :(得分:1)

如果您不关心安全性,那么,您可以实现密钥大小&lt; 384位。 不建议不安全,但它有效。

在此slide Dan Boneh以~128位的私钥为例。 (其余的课程也值得一看)。

答案 1 :(得分:1)

不是真正的技术限制,但缺点是随着私钥大小的减小(从而降低模数),块大小也会减小。

因此,如果要进行签名/加密的数据作为块长度较大,则必须使用块链接模式,这种方式与RSA结合使用时非常罕见。

答案 2 :(得分:0)

从安全角度来看,384位RSA可以在几个小时内破解,并在一周或两周内破解512位RSA。如果您担心签名大小,带有160位密钥的ECDSA将生成40字节签名。 BLS可以做到一半,但它没有很好的库。

来自&#34;技术限制&#34;从某种程度上说,您的RSA密钥必须比您要签名的值多两倍。通常,您需要对数据的哈希进行签名,而不是直接对数据进行签名。

相关问题