我是椭圆曲线密码学的新手,当我看到这个链接的时候,我正在网上阅读它。它指出如下。
不幸的是,ECDLP困难与ECC安全之间存在着差距。这些标准都不能很好地保证ECC的安全性。在没有解决ECDLP的情况下,有许多破坏现实世界ECC的攻击。核心问题是,如果你实现了标准曲线,很可能你做错了:
所以,我对第二点很好奇。当输入不是曲线点时,如何才能泄漏机密数据。我假设它意味着基准点(P)不在曲线上,但是如何计算P+P,以及如何使实现不安全?
发布于 2019-06-12 03:37:10
假设您为一个秘密标量P = [n]G发布了一个公钥n,其中G是标准的基点。
如果你愿意告诉我H([n]Q)给出的任意坐标的Q = (x, y),x和y,那么我可以在另一条曲线上给你一个2阶的点Q,它的算术法则恰好与你打算使用的曲线相吻合,然后学习H([n]Q) = H([n \bmod 2]Q)。
这是怎么回事?假设您使用了简短的Weierstrass表单y^2 = x^3 + a_4 x + a_6。由于加法定律根本不涉及常数a_4或a_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),那么我的任务可能会更容易!
https://crypto.stackexchange.com/questions/71240
复制相似问题