楕円暗号(Edwards 曲線)
有識者の方、ご教示いただけますと幸いです。
楕円暗号について勉強しています。要約するとエドワード曲線での加法を自分で導出したいが、計算結果が違う、そもそも導出の方法が合っているのか困っています。
モンゴメリ曲線または Curve25519(y^2 = Ax^3 + Bx^2 + Cx)では加法は 2 点(P, Q)、曲線上の点 P, Q を通る直線とモンゴメリ曲線の交点を R' とする。P + Q は R' を x 軸対象に対称移動(y 座標を反転)させれば良いとのことでした。しかし、楕円暗号としてよく使用されるものは Ed25519 であり、実際に使用されるのは Curve25519 ではなく Edwards 曲線が使用されるとのことです。いろいろ調べてみたのですが、この Edwards 楕円曲線における加法は「〜の公式で与えられる」としか書いておらず導出がある本・サイトはないでしょうか。
また、Wikipedia (https://en.wikipedia.org/wiki/Edwards_curve#:~:text=Addition%20on%20Edwards%20curves,-Sum%20of%20two&text=When%20an%20elliptic%20curve%20is,passes%20through%20P%20and%20Q.)から、エドワード曲線上の点 P, Q と (0, -1) の 3 点を通る曲線とエドワード曲線の交点が P + Q の結果である(実際は x 軸対象に移動するみたいです)とありましたが何度計算しても公式と合わず困っています。
本来は、
x_3 = (x_1y_2 + x_2y_1) / (1 + dx_1x_2y_1y_2)
というシンプルな形になるみたいですが、私が計算した結果は以下のように分子・分母ともに余計な項が含まれてしまっています。
x_3 = ((x_1y_2 + x_2y_1) - (y_1x_1 + y_2x_2)) / ((1 + dx_1x_2y_1y_2) - (x_1x_2 + y_1y_2))
ご教示いただけますと幸いです。よろしくお願いいたします。
お礼
なるほど、糸鋸状のダイアモンドカッターですね。探してみます。 大変、参考になりました。 ほんとうにありがとうございます。 目処がたって助かりました。