据我所知,Curve25519“仅”提供了一个等于 128 位对称密码的安全级别。我想知道是否有新的(不是 NIST)曲线,它提供与 256 位密码相当的安全级别并且已经被某些应用程序使用?
据我所知,有像 E-521 或 M-511 这样的曲线具有非常高的安全边际,但我不知道目前正在使用它们的任何实现。
(顺便说一句,我知道 128 位被认为是安全的,但是我们经常使用 256 位对称密码结合 4K-RSA 或 256 位曲线似乎有点奇怪。)
据我所知,Curve25519“仅”提供了一个等于 128 位对称密码的安全级别。我想知道是否有新的(不是 NIST)曲线,它提供与 256 位密码相当的安全级别并且已经被某些应用程序使用?
据我所知,有像 E-521 或 M-511 这样的曲线具有非常高的安全边际,但我不知道目前正在使用它们的任何实现。
(顺便说一句,我知道 128 位被认为是安全的,但是我们经常使用 256 位对称密码结合 4K-RSA 或 256 位曲线似乎有点奇怪。)
没有什么比“安全”更安全的了。一个可以提前破解它的攻击者,因为它“只有”128 位安全性,是一个拥有比地球上所有计算机加在一起(甚至包括智能手机和咖啡机)更多的可用计算能力的攻击者。令人难以置信的是,这样的攻击者会俯冲到如此低的位置以致于破坏您的密钥。他已经知道你所有的想法,指导你的所有行动,并且可能也拥有你的灵魂。
超过 128 位的安全级别并不是为了提供“更高的安全性”,而是通过强大的额外位显示来安抚审计员、经理、客户和潜在伙伴(不一定按此顺序)。这就像天堂鸟:通过使用一个超大的密钥,你发送的信号是你非常棒,以至于你可以承受在可笑地扩大的密码学上浪费 CPU 和网络带宽。
实际上,如果(何时)您的钥匙坏了,那么它就不会超过它的大小;这将是由于软件错误、硬件泄漏或设计不良的协议中的密钥滥用造成的。从这个意义上说,我们可以谈论实际的安全性:
Curve25519 的设计者和其常用实现的作者是 Daniel J. Bernstein,他以“了解他的行业”而闻名。他的代码可能包含的错误比大多数开发人员所做的要少得多。在所有其他条件相同的情况下,使用他的代码是个好主意。
另一方面,协议是一个重要问题,与密码算法实现相比,破坏协议要容易得多。通过寻找曲线,您正在寻找错误的东西。您应该考虑“我应该使用什么协议?” 然后(只有那时)担心特定的曲线,以防您选择的协议碰巧允许使用多条曲线。Curve25519 尚未(尚未)渗透到所有甚至大多数完善的协议中。例如,在 SSL/TLS 中不支持 Curve25519(但在 SSH 中有一个)。
我意识到这篇文章并没有直接回答你的问题,但我想我还是会把它作为“魔鬼的拥护者”来反驳托马斯的帖子。
我完全同意托马斯的观点;没有人可以给出任何理由认为您在我们的一生中将需要超过 128 位的安全性。
话虽如此,Curve25519 的作者 Bernstein确实与人合着了一条替代曲线 Curve41417,它的安全性刚刚超过 200 位。在他们的论文中,[1] 他们说“很容易看出 2^128 远远超出了当今任何可行的计算”,但他们也认为: