【问题标题】:The safety of data protected by RSA, in long term长期受 RSA 保护的数据安全
【发布时间】:2011-04-02 12:18:46
【问题描述】:

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

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

这对于现在和长期是否安全?

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

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

更新

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

【问题讨论】:

  • 这是使用这种大小的密钥与破解加密所需的计算量之间的速度/性能权衡。
  • @Russ Cam,比起速度,我更喜欢安全
  • 长期是多长时间? 1年,10年,100年,1000年?查看en.wikipedia.org/wiki/Key_size 并判断您对哪种键大小感到满意。

标签: .net encryption rsa


【解决方案1】:

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

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

至于您的对称密钥长度,如果您坚持使用 AES,则三个选项(128、192 或 256 位)中的任何一个都可以。事实上,对 256 位 AES 的某些攻击在 128 位版本上不起作用(由于密钥调度)。无论如何,到目前为止,已发布的针对 AES 的攻击都没有任何实际用途,因此请随意选择。

如果您想非常确定您的密钥不会被解密,可以,请使用 RSA-2048。顺便说一句,正如您在下表中看到的那样:http://www.keylength.com/en/3/,AES-128 的强度与 RSA-3248 相同。

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

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

【讨论】:

  • +1 感谢您提供更多信息。我使用 RSA 加密通过互联网进行 2 种通信方式
【解决方案2】:

这实际上取决于您存储的内容以及是否有人通过破解它可以获得有价值的东西。 1024 位加密应该适用于大多数不处理财务数据或国家机密的东西。

但是,如果您正在寻找编写代码并且在十多年内不必再次使用它(假设没有错误 ^_^),那么请选择更高位的加密。请确保您始终牢记没有牢不可破的加密高位加密只能在很长时间内保持安全

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

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

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

底线:如果您正在寻找可以长期使用的东西,请务必使用 2048 位加密。它现在可以工作,尽管您的服务器需要更多时间来加密(并且需要更长的时间来解密),并且将来可以工作。

【讨论】:

  • @FreeAsInBeer,如果打算用于最黑暗的秘密和长期?
  • @Gens:取决于您的性能需求和安全需求。 4096 没有任何问题,但是您在操作上增加了很多时间来完成它们。你今天可以争论使用 4096,但任何更大的都是不切实际的。
  • +1 @FreeAsInBeer:感谢这篇有趣的文章。但只是想知道 2048 位在攻击中还能存活多久?
  • @Gens:RSA 表示 1024 位密钥可能会在 2006 年至 2010 年之间的某个时间变得可破解,并且 2048 位密钥在 2030 年之前就足够了,应该使用 3072 位的 RSA 密钥长度如果在 2030 年之后需要安全保障。
  • @Gens:没问题。希望你的项目进展顺利。
猜你喜欢
  • 2019-03-02
  • 2023-03-21
  • 1970-01-01
  • 2012-06-05
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
相关资源
最近更新 更多