在阅读椭圆曲线和ECDSA时,我发现了一篇由Hartwig Mayer撰写的论文比特币和电子货币中的ECDSA安全研究综述。在第6页,作者说:
曲线secp256k1不允许蒙哥马利阶梯实现。
这是真的吗?如果是,为什么?我不明白为什么蒙哥马利方法不能使用secp256k1。
发布于 2018-03-15 15:53:12
蒙哥马利梯,特别是蒙哥马利在p. 261上的(X : Z)坐标中的快速倍和微分加法公式,只适用于允许蒙哥马利形式为B y^2 = x^3 + A x^2 + x的曲线。在具有Montgomery形式的字段k上,任何曲线都必须在k-rational点中有一个2阶点,即P = (0, 0):否定图将(x, y)发送给(x, -y),所以既然是-P = (0, -0) = (0, 0) = P,我们就必须有[2]P = P + P = P - P = \mathcal O。
secp256k1是\mathbb F_p字段上的曲线y^2 = x^3 + 7,其中p = 2^{256} - 2^{32} - 977。它的\mathbb F_p-rational点群具有较大的素数阶,因此根据拉格朗日定理它没有2阶点,因此它没有Montgomery形式。
也就是说,有一个更慢的单坐标阶梯,它鼓励常数时间算法,即Brier-Joye梯子,它适用于任何短的Weierstrass曲线y^2 = x^3 - a x + b (包括secp256k1 )。它的速度要慢得多,因此标准的短Weierstrass曲线的可变时间加法链是诱人的,这就是为什么SafeCurves建议在蒙哥马利曲线中使用x-restricted DH函数,而不是在实现过程中避免效率和安全性之间的冲突。
对于签名来说,这并不重要,因为大多数签名方案--比特币和以太使用的ECDSA,以及那些被迫遵守官僚标准的签名方案;其他人使用的EdDSA --都涉及y坐标,两者都不需要阶梯计算;定点标量乘法,可以比变量基点标量乘法快;多点标量乘法,比多个单点标量乘法要快。有些签名方案是用单坐标梯子计算的,如qDSA,但这些方案有点异国情调,而且使用也不多--当然,在比特币或Ethereum中也不是如此!
https://crypto.stackexchange.com/questions/56503
复制相似问题