楕円曲線の追加
楕円曲線の追加 免責事項:これは、楕円曲線の豊富なトピックに関する正義を行いません。かなり簡素化されています。楕円曲線は最近、暗号化のコンテキストで多くのメディアの注目を集めたため、楕円曲線の「計算」が実際にどのように機能するかについて、いくつかの小さな洞察を提供したかったのです。 前書き 楕円曲線は(x,y)、フォームの平面内の点の集合ですy^2 = x^3+Ax+B。(さらに、4A^3+27B^2 ≠ 0厄介な特異点を避けるために。)これらの曲線はどのフィールドでも考慮することができます。実数のフィールドを使用すると、曲線を視覚化でき、次のようになります。 ソース これらの曲線の特別な点は、加算に類似した算術演算が組み込まれていることです。ポイントを追加および削除することができ、この操作は結合的および可換的(アーベル群)です。 追加はどのように機能しますか? 注:楕円曲線上の点の追加は直感的ではありません。この種類の追加は、特定の優れたプロパティがあるため、そのまま定義されています。奇妙ですが、動作します。 楕円曲線はグループを形成するため、0に相当する付加的な同一性があり0ます。つまり、任意のポイントに追加しても結果は変わりません。この付加的なアイデンティティは、無限の「ポイント」です。平面上のすべての線にはこの点が無限遠に含まれるため、追加しても違いはありません。 与えられた線が3点で曲線と交差すると仮定します0。これはである可能性があり、これら3点の合計は0です。それを念頭に置いて、この画像を見てください。 ソース さて、自然な質問は、何P+Qですか?まあ、if P+Q+R = 0、then P+Q = -R(またはとして書かれていますR')。どこ-Rですか?ここでR + (-R) = 0、はからX軸の反対側にあるRため、それらを通る線は、、、およびのみRと交差-Rし0ます。この画像の最初の部分でこれを見ることができます: ソース これらの画像で確認できるもう1つの点は、ポイントとそれ自体の合計が、線が曲線に接していることを意味していることです。 直線と楕円曲線の交点を見つける方法 2つの異なるポイントの場合 一般に2点を通る正確に1本の線がありP=(x0,y0), Q=(x1,y1)ます。それが垂直ではなく、2つのポイントが明確であると仮定すると、と書くことができますy = m*x+q。楕円曲線との交点を見つけたいとき、次のように書くことができます。 0 = x^3+Ax+B-y^2 = x^3+Ax+B-(m*x+q)^2 これは3次多項式です。これらは一般的に解くのはそれほど簡単ではありませんが、この多項式の2つのゼロを既に知っています。追加したい2点の2つのx座標x0, x1! このように我々の線形因子アウト因子(x-x0)と(x-x1)、そのルートである第三の線形因子が残されているx点の-座標R。(-R。あまりにも対称性のためであればその注意してくださいR = (x2,y2)、その後を-R = (x2,-y2)。-グループからであり、それはベクトルマイナスではありません。) P自身に1つのポイントを追加する場合 この場合、で曲線の正接を計算する必要がありますP=(x0,y0)。私たちは、直接書き込むことができますmとqの観点A,B,x0,y0: 3*x0^2 + …