当我们考虑EC的求解组的循环子组与素数阶的某些整数残基类同构时,在标准有限域上使用椭圆曲线有什么好处?是因为组操作更复杂吗?

评论

因为我们不能快速求解椭圆曲线上的点组中的DLP?

这与有限域不是一样吗?

相关问题:为达到类似的安全性,为什么ECC密钥的大小要小于RSA密钥?,试图更好地理解ECDLP的索引演算的失败

#1 楼

答案是离散对数的难度。同构的概念不能捕获密码学中的所有问题。我们还需要考虑计算成本。

我们有一个带加法符号的阿贝尔群$ \ mathbb {G} $。假设$ G $是订单$ n $的$ \ mathbb {G} $的常规元素。 $ G $生成的子组为:
$$ \ langle G \ rangle = \ {xG \ | \ 0 \ leq x \ lt n \} $$
该子组与$ \ mathbb {Z} _n $(对$ n $取模的整数)同构,并且同构可以很容易地从$ \算出mathbb {Z} _n $到$ \ langle G \ rangle $并使用双重添加算法:从$ x $开始,可以用少于$ 2 \ log n $的组运算来计算$ xG $(在这种情况下,请参见椭圆对数,但实际上适用于任何组。)离散对数是关于计算反同构,即从$ xG $计算$ x $。通常,当您对$ \ mathbb {G} $的元素只能执行的操作是应用群律,并比较两个元素是否相等时,则离散对数不能以低于$ \ sqrt的平均成本进行计算{n} $个操作。我们知道几种提供这种性能的“通用”算法,例如Pollard的rho算法。可以证明,不存在适用于通用组的更快算法。


当然,通用组是一个抽象概念。在实践中,我们所拥有的是一组,我们知道如何计算组定律并比较两个元素,并且可能具有一些关于组结构的额外信息,这些信息可能会或可能不会有助于计算离散对数。 >现在,当该组是随机选择的椭圆曲线时,我们还不知道如何比应用通用算法更快地计算离散对数。因此,“ 256位曲线”(子组订单$ n $是256位素数)足以实现“ 128位的安全等级”(即,在现有的和可预见的技术下是不可破坏的)。请注意,有一些具有特殊结构的特定曲线,我们知道它们具有较快的离散对数算法(例如,超奇异曲线)。对于某些素数$ p $的p $,并将乘积模$ p $作为组律,那么我们确实知道更快(次指数)的离散对数算法,尤其是在称为指数演算的大型族中。为了达到128位的安全级别,必须选择一个较大的模数(在2500和3000位之间的某个位置)。

由于字段操作的字段大小往往具有二次方的代价(至少(使用在密码学常用领域中最快的算法),通过使用椭圆曲线和相对较小的字段获得的加速效果,不仅可以补偿椭圆曲线操作的开销。实际上,在当今的计算机上,为了达到可比较的安全级别,并通过适当优化的实现,椭圆曲线可将速度提高5倍至20倍。这就是为什么我们使用它们。另外,可以用更少的位对相应的曲线点进行编码,因此在某些情况下还节省了网络带宽。

评论


$ \ begingroup $
我觉得教学应该更多地强调所有有限循环群都是(抽象地)同构一个离散对数很容易的群(即$(\ mathbb Z / n \ mathbb Z,+,0)$ ),而困难恰恰在于计算该同构。很多人似乎没有掌握这个概念,这可能部分是由于每个人都在谈论“ DLP很难做到的群体”而不是“使DLP很难实现的群体表示”。
$ \ endgroup $
– yyyyyyy
2015年7月11日在21:28



$ \ begingroup $
很好!
$ \ endgroup $
–亚历山大·雅各雅各(Alexandre Yamajako)
15年7月12日在0:04

$ \ begingroup $
@yyyyyyy:说句公道话,只有当您使用“组”暗指“同构类的组”时,这才是正确的,这种习惯的使用是经验,理念和当时的需求的结合。
$ \ endgroup $
–user25578
15年7月13日在2:07

$ \ begingroup $
很棒的答案。谢谢。如果可能的话,请提供一些参考。
$ \ endgroup $
–窥探猫
19年1月24日在16:14

#2 楼

在椭圆曲线中,没有索引演算方法。如上一幅海报所述,只有通用算法(Shank's,Pollard)。为了详细说明为什么没有索引演算,您必须查看索引演算的步骤。第一步是构造一个因数库(在$ GF(p ^ n)$由多项式组成)中,第二步是找到关系,第三步是线性代数步骤(求解一个大型线性系统)。对于椭圆曲线,我们不知道如何构建因子库。为了解决先前的问题,一种有趣的(但不是成功的)方法是XEDNI算法。