首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求解ECDLP的小复乘法域判别法

求解ECDLP的小复乘法域判别法
EN

Cryptography用户
提问于 2020-04-06 07:14:24
回答 1查看 380关注 0票数 3

我从SafeCurve准则中看到,人们应该尽量避免小的复乘法场判别式,因为它可以通过Polard方法加速离散日志计算。

但是,我找不到任何关于这些附加信息如何改进rho方法的信息。特别是,SafeCurve页面似乎相当模糊,提到我们不确定一个小的鉴别(甚至很小,比如3)是否会导致灾难性的后果。有人能解释这种特殊的结构(在某些情况下)如何改进rho方法吗?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2020-04-06 09:19:25

在回答问题之前,我首先回顾一些关于离散对数问题和Pollard算法的基础知识。

离散对数问题

给出椭圆曲线上素数阶P的点qP生成的子群中的点Q,则存在k,使得Q = kP0\leq k < q中。

Q在基P中的离散对数是k,离散对数问题是寻找k已知的PQ

Pollard-rho算法

在素数阶q的一般群上的Pollard算法具有\sqrt{\pi q/2}的复杂性.

它的原理是用随机整数R_0 = a_0P+b_0Qa_0b_0来构造一个点序列,然后使用一个作为伪随机游走的函数f来获得点的序列:

R_{i+1} = f(R_i) = a_{i+1} P + b_{i+1} Q.

最终,会有一个点R_j,它等于序列中的上一个点R_i。然后,我们推断:

k \equiv (a_i - a_j)(b_j-b_i)^{-1} \mod q,

当然,如果(b_j-b_i)是可逆的(但这种情况有很高的可能性)。

现在,生日悖论给出了上述复杂性。

快速增长的rho

在椭圆曲线上,自-P以来,由P=(x,y)计算-P=(x,-y)是很容易的。然后,我们可以通过对\{P,-P\}对曲线的所有点进行重组。

我们不是在序列中寻找点R_iR_j之间的冲突,而是在它们的x-coordinate上寻找碰撞。如果我们有R_i = \pm R_j,就会发现离散对数。

这就好像没有对所有的点进行搜索,但只对其中的一半进行了搜索。然后将复杂性中的值q替换为q/2,这将给出\sqrt{q\pi/4}的复杂性(您将在网站SafeCurves上找到相应的页面)。

加速- rho进一步

我们在上面所做的事情是可能的,因为我们有一个映射(称为自同态) [-1]

\begin{array}{rrcl} [-1]: & E & \longrightarrow & E \\ & (x,y) & \longmapsto & (x,-y) \end{array}

它将椭圆曲线E的一个点发送到它的对立面。我们可以看到,如果我们使用它两次,我们回到原来的观点。我们说这个映射有顺序2,这就是为什么我们可以按对分组。而且计算起来很容易。

现在的问题是:是否还有其他易于计算的地图,可以用更大的因子来加速rho?

答案是肯定的。例如,曲线secp256k1具有以下自同态:

\begin{array}{rrcl} \phi: & \texttt{secp256k1} & \longrightarrow & \texttt{secp256k1} \\ & (x,y) & \longmapsto & (\beta x,y) \end{array}

其中,\beta是曲线有限域上的阶3 (满足\beta^3=1\beta \neq 1)的一个元素。然后我们有:

(x,y) \mapsto (\beta x, y) \mapsto (\beta^2 x, y) \mapsto (\beta^3 x, y) = (x,y),

这意味着\phi的顺序是3

然后,我们可以将曲线上的点按三组:\{ P, \phi(P), \phi^2(P)\}分组。我们选择三个点中的一个作为代表(例如将最小的x-coordinate看作整数的点)。我们不是在q点上搜索Pollard中的冲突,而是在q/3代表上搜索冲突。由此推断,在这条曲线上,我们可以用一个因子\sqrt 3除以Pollard的复杂性。再加上前面的加速,这给了\sqrt{q\pi/12}的复杂性.

与CM场判别

的关系

关键是我们想要一个易于计算的自同态,否则它将无助于加速Pollard。正如我们所看到的,上面给出的两个例子非常简单。这是因为它们的度是1,这意味着计算\phi(P)坐标的有理函数是1的多项式。

CM场判别小度自同态的存在是有联系的.在曲线secp256k1的情况下,这个判别式是-3这一事实与自同态\phi直接相关,其公式如下:

\left(\frac{1+i\sqrt 3}{2}\right)\left(\frac{1 - i\sqrt 3}{2}\right) = 1,

这意味着有一个度1的非平凡自同态,即上面给出的自同态。

我希望我能给出一些内容来回答你的问题。我稍后会尝试扩展和改正一些问题。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/79713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档