2015-03-19 80 views
0

我有大小42RSACryptoServiceProvider.KeySize大小有什么影响?

我使用的是RSACryptoServiceProvider对象这个加密的字节数组:

$keySize = 16384 
$rsaProvider = New-Object System.Security.Cryptography.RSACryptoServiceProvider($keySize) 

你需要一台Cray超级计算机使用一个密钥大小大解密?

有以存储器等方面使用$keySize = 2048,而不是16384任何好处?

回答

1

使用较高的关键尺寸导致较大的素数和模量,这使得它更难因式分解模量,以获得质数出它来,然后露出私钥。

RSA基于模运算。更高的密钥大小也意味着必须执行更大数字的运算指数。密钥生成和解密速度会更慢。加密会慢一点。

2048是目前最小的建议。你可能想要使用4096,但16384几乎可以肯定你的用例太多了。但这取决于攻击模型和攻击者的能力。

+0

如何使用16384会影响性能?我测试了加密一个小的.txt文件,它没有使用16384或2048有任何区别。如果文件非常大,如果我使用2048而不是16384,那么它会产生明显的差异吗? – 2015-03-19 22:27:18

+1

RSA仅适用于数据大致高达模数的大小。以上所有内容都需要[混合加密](https://en.wikipedia.org/wiki/Hybrid_cryptosystem)。密钥大小16384的计算应该比2048位大小的密钥慢得多。如果情况并非如此,那么测量这种方式可能有些问题。你应该自己制定基准,并使用这些数字来达到时间和安全性之间的有用平衡,但正如我所说的。您可能不需要高于8192的密钥。 – 2015-03-19 22:51:27