(当前缺少的)安全注意事项(或其他地方)应描述在我们所使用的上下文中使用Curve25519可以正常运行的原因'd
否则要求128位的强度(基本上是因为它足够接近
),以及为什么224位的水平被认为是一个不错的选择。
关于此列表,我已经看到
问题在其他地方出现,因此该文本将避免重新提起诉讼,并且
应该值得,即使需要一点时间来达成共识。 br />
我读到的内容使得Curve25519仅提供224位级别的安全性,即112位安全性。
但是当我在Wikipedia上查找Curve25519时,我会在第一行看到
Curve25519是提供128位安全性的椭圆形曲线。 w hich确实确认了Wikipedia,如下所示:
每一次已知的攻击都比对典型的128位秘密密钥密码进行蛮力搜索更为昂贵。
所以我的问题是:Curve25519是否确实提供比128位低得多的安全性?
#1 楼
有些人声称Curve25519具有112位安全性,另一些人则认为具有128位安全性。是吗?
好吧,实际上,这两者都不是-实际上是在中间的某个地方。
对于没有已知弱点的曲线(而Curve25519没有已知的弱点),那么如果曲线阶数在$ 2 ^ {2k} $附近有较大的素数,则针对它的最著名的攻击将花费$ O(2 ^ k)$的时间(其中O标记隐藏了一个常数,即比1大一点,但对于各种类型的曲线来说是恒定的),因此按照惯例,我们称这样的曲线为“ k位强度”。
现在,对于Curve25519,曲线阶数的素数约为$ 2 ^ {252} $;按照上述标准度量,这将产生126位的安全性。这略低于曲线P256声称的128位安全性;但是,它远远超过了IETF邮件列表上声称的112位安全性。
126位和128位安全性之间的区别是否显着?我认为没有。 128位的工作量应该足够大,以至于使攻击者的时间减少4倍仍然是不可行的。
另外:
每一次已知的攻击都比对典型的128位秘密密钥密码进行蛮力搜索要昂贵得多。
很好。针对椭圆曲线,攻击过程中执行的基本操作是添加椭圆曲线点;这比(例如)测试AES密钥要贵得多。而且,即使您将椭圆曲线一侧的加速比提高了4倍,我仍然相信这是正确的。
评论
$ \ begingroup $
不要忘记私钥的5位总是相同的
$ \ endgroup $
– Richie车架
15年8月27日在20:13
$ \ begingroup $
@RichieFrame:实际上,这些位中的4位已经被占满了,因为整订单大小为255(不是256)位,并且辅因子为8。DJB确实固定了一个加法位(但是, (Curve25519中不是固有的;这就是Dan建议使用的方式);但是即使进行了更改,强度也降低到了125.5位...
$ \ endgroup $
–雨披
15年8月27日在20:18
$ \ begingroup $
Funfact:我刚刚在CFRG列表上看到了对此问题的评论,并且224位级别的部分针对的是Ed448 / Curve448,而不是Curve25519。哎呀但是,尽管如此,它还是一个很好的答案,它也(间接地)回答了255位(或更少)是完全可以的:)
$ \ endgroup $
– SEJPM♦
15年8月29日在16:35
$ \ begingroup $
BTW:DJB在对NIsT重新开放FIPS 184-6讨论的回应中也谈到了这一点:PDF
$ \ endgroup $
–eckes
16年1月7日,下午2:10
评论
您可以在Curve25519上找到此类信息,也可以在安全曲线上找到其他曲线。例如rho方法的成本。顺便说一句,最近的一些建议(例如德国的BSI)使用虚构的“ 100位”安全级别来解决一些估计问题。所有的解释都会通过这一点。 TR-02102德语PDF