受RSA保护的数据的安全性,长期而言

时间:2011-04-02 12:18:47

标签: .net encryption rsa

我正在使用.net 3.5和vb.net。我对下面提到的每种加密的内部工作知之甚少。我只使用.net类库中提供的类。

我有一条信息已经使用TripleDes加密,然后是Rijndael,最后是RC2算法。并且这些算法的所有KEY和IV分别使用1024密钥用RSA加密。

现在和长期是否安全?

因为我听说RSA加密只能在某些年份被认为是安全的。例如,在本文768-bit RSA cracked, 1024-bit safe (for now)

我应该将RSA密钥大小增加到2048或更多吗?

更新

这里的保险箱意味着长期非常重要的秘密

2 个答案:

答案 0 :(得分:6)

以下列出了不同加密算法的密钥长度:http://www.keylength.com。本网站列出的数字被视为标准。如有疑问,请检查那里。 Ecrypt II方法是最新出版物。您可以在此处找到PDF:http://www.ecrypt.eu.org/documents/D.SPA.13.pdf。它是一个有趣的阅读,即使你对密码学知之甚少也看起来相当容易(虽然我不能确定,因为我在该领域工作)。

对于使用不同算法多次加密原始数据:只要您使用强大的加密算法,这是没有用的。我的建议是使用事实上的标准AES(= Rijndael)。

至于你的symmetic键长度,如果你坚持使用AES,三个选项(128,192或256位)中的任何一个都可以。事实上,对于128位版本存在某些攻击,这些攻击不适用于128位版本(由于密钥调度)。无论如何,到目前为止,所公布的AES攻击都没有任何实际用途,所以选择你想要的任何东西。

如果您想确定您的密钥不会被解密,是的,请使用RSA-2048。顺便说一下,正如您在此表中所见:http://www.keylength.com/en/3/,AES-128的强度与RSA-3248相同。

[编辑] 但有一个问题:为什么要加密密钥?您实际上必须将2048位RSA密钥存储在安全位置才能解密128位AES密钥。我没有看到这一点。您可以将128位密钥存储在安全的地方并完成它。或者您使用多个RSA密钥来建立对称密钥?

此外,IV应该是公开的,没有用于隐藏/加密它们,这有效地使它们成为第二个关键。你已经有了钥匙。所以不要费心加密它们。

答案 1 :(得分:3)

这实际上取决于你所存储的内容,以及是否有任何人通过破解获得了巨大价值。对于大多数没有处理财务数据或国家机密的东西,1024位加密应该没问题。

但是,如果你想编写你的代码并且不必再回到它上面超过十年(假设没有错误^ _ ^)那么就去寻找更高位的加密。只要确保你永远记住没有加密是不可破解的高位加密只能保证很长时间

这是一个interesting link,它讨论了如何通过降低处理器的功率来破解1024位加密。我认为这也可以扩展到更复杂的加密方案。

This reference似乎也很好。页面上的图形显示RSA的解密时间是指数级的。

这里是one more article,直接来自RSA实验室,它讨论了某些大小的密钥被认为不太安全的时间。

结论:如果您正在寻找可以长期工作的东西,那么一定要使用2048位加密。它现在可以工作了,虽然你的服务器需要花费更多的时间来加密(并且需要更长时间才能解密),并且将来会有效。