首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Smart的攻击在ECDLP上不起作用?

为什么Smart的攻击在ECDLP上不起作用?
EN

Cryptography用户
提问于 2019-05-10 11:48:16
回答 1查看 4.3K关注 0票数 5

问题如下:

代码语言:javascript
复制
sage: p=235322474717419
sage: a=0
sage: b=8856682
sage: E = EllipticCurve(GF(p), [a, b])
sage: P = E(200673830421813, 57025307876612)
sage: Q = E(40345734829479, 211738132651297)
sage: P.order() == p
True

正如我们所看到的,P.order()等于p,所以很明显我们可以使用智能攻击来计算k的值,所以我根据论文椭圆曲线密码学中的弱曲线实现了智能攻击。

当我们使用这种攻击时,k= 9762415993955:

代码语言:javascript
复制
sage: SmartAttack(P,Q,p,8)
9762415993955

但实际上,k的正确值是152675955744921:

代码语言:javascript
复制
sage: P*152675955744921 == Q
True

所以我的问题是:

为什么Smart的攻击在ECDLP上不起作用?

智能攻击的实现是正确的,因为它可以计算一些以前的CTF游戏中k的正确值。

EN

回答 1

Cryptography用户

发布于 2019-05-13 01:27:55

攻击不起作用的原因是因为你碰到了一个特殊的情况--典型的提升。在这种情况下,\mathbb{Q}_p上的提升曲线与\mathbb{F}_p上的曲线同构,在这种情况下,无法从中提取额外的信息。日刊版本 of Smart的论文提到了这个案例。

解决办法很简单:如果我们碰到一个特殊的升力,随机提升!我们可以通过提升\mathbb{Q}_p曲线y^2 = x^3 + (p\cdot a')x + (8856682 + p\cdot b')来实现这一点,对于一些任意的a'b',这减少了所有相同的模块p,但不太可能遇到相同的问题。这样我们就可以轻松地将攻击重写为

代码语言:javascript
复制
def SmartAttack(P,Q,p):
    E = P.curve()
    Eqp = EllipticCurve(Qp(p, 2), [ ZZ(t) + randint(0,p)*p for t in E.a_invariants() ])

    P_Qps = Eqp.lift_x(ZZ(P.xy()[0]), all=True)
    for P_Qp in P_Qps:
        if GF(p)(P_Qp.xy()[1]) == P.xy()[1]:
            break

    Q_Qps = Eqp.lift_x(ZZ(Q.xy()[0]), all=True)
    for Q_Qp in Q_Qps:
        if GF(p)(Q_Qp.xy()[1]) == Q.xy()[1]:
            break

    p_times_P = p*P_Qp
    p_times_Q = p*Q_Qp

    x_P,y_P = p_times_P.xy()
    x_Q,y_Q = p_times_Q.xy()

    phi_P = -(x_P/y_P)
    phi_Q = -(x_Q/y_Q)
    k = phi_Q/phi_P
    return ZZ(k)

它现在成功了:

代码语言:javascript
复制
sage: p=235322474717419
sage: a=0
sage: b=8856682
sage: E = EllipticCurve(GF(p), [a, b])
sage: P = E(200673830421813, 57025307876612)
sage: Q = E(40345734829479, 211738132651297)
sage: assert(P.order() == p)
sage: n = SmartAttack(P, Q, p)
sage: assert(n*P == Q)
sage: n
152675955744921
票数 7
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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