昨天我在考虑流行的协议/算法(ECDH,ECES [1]等)的椭圆曲线变体,并且想到我从未见过RSA的椭圆曲线变体。我对RSA和椭圆曲线的了解告诉我,应该可以。

经过一番搜索,我发现了以下解释:


正如我们已经提到的,是RSA的椭圆曲线类似物,但事实证明,它们主要具有学术意义,因为它们与RSA相比基本上没有任何实际优势。之所以如此,主要是因为RSA的椭圆曲线变体实际上出于其安全性而依赖于与RSA相同的潜在问题,即整数分解。


,这让我开始思考。我以为我之前提到的基于离散日志的系统也基于相同的潜在问题,即离散日志。但是这篇文章说的是:



情况与离散对数密码系统的变体不同。离散对数密码系统的椭圆曲线变体的安全性取决于对椭圆曲线的常规离散对数问题的重述。这种重述是这样的,以至于在所谓的次指数时间内解决常规离散对数问题的当前算法在解决类似椭圆曲线问题方面没有什么价值。相反,解决这些椭圆曲线问题的唯一可用算法是在指数时间内运行的更通用的技术。


所以现在,我的问题是:为什么我们能够重述离散对数问题,使其在椭圆曲线上更实用,而不是RSA问题?

1。 ECES是ElGamal的椭圆曲线变体

#1 楼

通用离散对数问题是这样的:给定一个具有生成器$ g $和$ y \ in G $的组$(G,·)$,找到$ x \ in \ mathbb N $使得$ y = g ^ x $。


“经典”离散对数问题(在“经典” DSA和ECDSA中使用的对数问题)是其中的一个子组(乘)素数域的组,即$(\ mathbb Z / p \ mathbb Z)^ * $:


给定素数$ p $,则生成器$ g $ (属于某个大子组)和$ y \ in \ left $,在$ \ mathbb N $中找到$ x \,这样$ y = g ^ x \ bmod p $。


椭圆曲线离散对数问题是这样的,它带有一个椭圆曲线组的子组:


给定椭圆曲线$(E,+)$,生成器$ G $某个大子组,然后在$ left \ G \ right <$$中找到$ x \ in \ mathbb N $,使得$ y = x·G $。


有通用的算法(如婴儿步巨型步算法)可用于求解任何组中的离散对数(假设可计算组定律,甚至只是oracle对组定律的访问),对于椭圆曲线组以及经典素数场,这些工作都很好。这些算法的平均运行时间通常取决于组的大小,例如婴儿步巨步的$ O(\ sqrt {| G |})$。这在输入大小上仍然是指数的(因为输入大小为$ O(\ log | G |)$,如果没有选择真正愚蠢的编码)。

但是对于某些特殊组离散对数更容易,因为它们具有更多(已知)结构。在极端情况下,请考虑具有任何生成器的加性组$(\ mathbb Z / n \ mathbb Z,+)$(对于任何正整数$ n $)。即使对于相当大的$ n $,也很容易解决此问题-我们只需要一个模块除法,即扩展欧几里得算法的一次执行。 (如果生成器是固定的,我们甚至可以计算一次它的乘法逆,然后以后再使用,那么每个问题就可以简化为一个乘法。)

素数字段的乘法组比较难。没有已知的多项式时间算法,但是仍然存在使用次指数时间的算法,其速度比一般算法快。 (是的,指数与多项式之间存在一定距离。)用于分解整数的数域筛实际上还可以用于计算素数组中的离散对数(并且对于两个问题的相似输入大小,都需要相似的运行时间)。 >
因此,在相同的“安全级别”下,我们需要的原始字段组要比通用组大。

对于某些椭圆曲线,看起来离散对数几乎等于对于相同大小的通用组来说,这是很困难的,这意味着没有比通用算法快得多的专用算法。 (如果存在,则将相应的组称为“断开”。)

效果是,对于相似的安全级别,我们可以使用比素数组小的椭圆曲线组(事实证明,对于这些较小的组,计算速度也更快)。


另一方面,请看一下RSA问题。与此有关:


给定$ n $(两个大未知素数的乘积),$ e $($ \ operatorname {gcd}(m,e)= 1) $和$ x

解决此问题的最有效方法(除了也许在$ m $来自较小子空间时对$ m $进行蛮力攻击)是通过计算模数,然后计算私钥$ d $并将其解密。因此,这里的难题是模数。

尚不清楚如何将其推广到任何组(或其他类型的结构)。我发现了一个具有较小扩展因子的语义安全椭圆曲线RSA方案(2002),它引用了早期工作(N. Demytko。一种基于RSA的新椭圆曲线的类似物)(并对其进行了描述)。EUROCRYPT '93,
LNCS 765 40–49(1993)。)

Demytko的方案在环$ \ mathbb Z / n \ mathbb Z $(其中$ n $仍然是两个大质数的乘积)上的椭圆曲线(及其扭曲)上工作,并使用$ c = e \ star m进行加密$,这是某段y $的$ e $(m,y)$的$ x $坐标,使得它在曲线上,并解密密文$ c $为$ m = d \ star c $,其中$ d $是$ e $的四个倒数之一,它取决于$ c $使用哪个倒数。

第二个偶数甚至在$ \ mathbb Z / n ^上形成曲线2 \ mathbb Z $(但声称在语义上是安全的,因为它包含了随机成分)。在这两种情况下,似乎最简单的破解方法是将$ n $分解(在自然数),而不是基于椭圆曲线的结构中的一些类似问题。

这意味着$ n $必须与RSA一样大,因此我们有相应的大曲线-并不是真正的优势在这里使用椭圆曲线。

评论


$ \ begingroup $
或更短,如果在RSA问题中使用了椭圆曲线,则密钥大小需要与传统RSA密钥大小一样大,从而抵消了椭圆曲线密码术的大小和时间优势。还是说得太简单了?
$ \ endgroup $
–马腾·博德威斯♦
2012年10月6日上午10:40

$ \ begingroup $
好答案!一个问题来自您的答案。我们是否知道还有其他可以使用的组(基于椭圆曲线的组除外)仍能获得此优势?
$ \ endgroup $
–mikeazo
2012年10月9日12:46