首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当输入不在曲线上时,椭圆曲线密码不安全?

当输入不在曲线上时,椭圆曲线密码不安全?
EN

Cryptography用户
提问于 2019-06-12 03:13:52
回答 1查看 601关注 0票数 4

我是椭圆曲线密码学的新手,当我看到这个链接的时候,我正在网上阅读它。它指出如下。

不幸的是,ECDLP困难与ECC安全之间存在着差距。这些标准都不能很好地保证ECC的安全性。在没有解决ECDLP的情况下,有许多破坏现实世界ECC的攻击。核心问题是,如果你实现了标准曲线,很可能你做错了:

  1. 您的实现对于一些罕见的曲线点会产生不正确的结果。
  2. 当输入不是曲线点时,您的实现会泄漏秘密数据。
  3. 您的实现通过分支定时泄漏秘密数据。
  4. 您的实现通过缓存定时泄漏秘密数据。

所以,我对第二点很好奇。当输入不是曲线点时,如何才能泄漏机密数据。我假设它意味着基准点(P)不在曲线上,但是如何计算P+P,以及如何使实现不安全?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2019-06-12 03:37:10

假设您为一个秘密标量P = [n]G发布了一个公钥n,其中G是标准的基点。

如果你愿意告诉我H([n]Q)给出的任意坐标的Q = (x, y)xy,那么我可以在另一条曲线上给你一个2阶的点Q,它的算术法则恰好与你打算使用的曲线相吻合,然后学习H([n]Q) = H([n \bmod 2]Q)

这是怎么回事?假设您使用了简短的Weierstrass表单y^2 = x^3 + a_4 x + a_6。由于加法定律根本不涉及常数a_4a_6,而倍增定律只涉及a_4,所以你会很高兴地用相同的a_4在任何曲线上计算点的标量乘法,所以我所要做的就是找到一些曲线上有低阶点的a'_6

当我得到答案时,要么是H([0]Q) = H(\mathcal O),要么是H([1]Q) = H(Q),所以通过检查您返回的答案,我可以学习n \bmod 2。如果我发送一个3,4,5等的点,并且我可以将结果与中国剩余定理结合起来,在您的帮助下交互地计算您的公钥n的离散日志P = [n]G,则同样适用。

当然,如果您公开点[n]Q而不是散列H([n]Q),那么我的任务可能会更容易!

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

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

复制
相关文章

相似问题

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