Elliptic-Curves

在有限域上以圖形方式表示橢圓曲線上的點

  • October 4, 2021

我採取了橢圓曲線 $ E\colon y^2=x^3-4x+20 $ , 定義在 $ \mathbb{F}{29} $ . 曲線上的點數, $ \left|E(\mathbb{F}{29})\right|=37 $ .

我拿了基點 $ P=(1,5) $ ,得到以下結果:

點 (1,5) 的標量倍數數組

我希望結果以圖形方式了解曲線的行為。

是否有任何工具可以通過將輸入作為曲線點以圖形方式顯示結果?

以上答案都沒有看到問題中的錯誤。重點 $ P=(1,5) $ 不在曲線上 $ E\colon y^2=x^3-4x+20 $ 超過 $ \mathbb{F}_{29} $ . 要看到這個,放置 $ x=1 $ 和 $ y=5 $ 進入曲線方程。

[Math Processing Error]$$ \begin{align} 5^2&=1^3-4+20\ 25& = 1-4+20\ 25& \neq 15\ \end{align} $$ 所以 $ P = (1,5) $ 不在曲線上。但它在曲線上 $ E’\colon y^2=x^3\color{red}{+}4x+20 $ 超過[Math Processing Error] $ \mathbb{F}_{29} $ .

現在,讓我們繼續第二個等式 $ E \colon y^2=x^3\color{red}{+}4x+20 $

曲線 $ E $ 有37分;下面以投影座標列出它們;

$ [(0 : 1 : 0), (0 : 7 : 1), (0 : 22 : 1), \color{red}{P =(1 : 5 : 1)}, (1 : 24 : 1), (2 : 6 : 1), (2 : 23 : 1), (3 : 1 : 1), (3 : 28 : 1), (4 : 10 : 1), (4 : 19 : 1), (5 : 7 : 1), (5 : 22 : 1), (6 : 12 : 1), (6 : 17 : 1), (8 : 10 : 1), (8 : 19 : 1), (10 : 4 : 1), (10 : 25 : 1), (13 : 6 : 1), (13 : 23 : 1), (14 : 6 : 1), (14 : 23 : 1), (15 : 2 : 1), (15 : 27 : 1), (16 : 2 : 1), (16 : 27 : 1), (17 : 10 : 1), (17 : 19 : 1), (19 : 13 : 1), (19 : 16 : 1), (20 : 3 : 1), (20 : 26 : 1), (24 : 7 : 1), (24 : 22 : 1), (27 : 2 : 1), (27 : 27 : 1)] $

當曲線在有理域上定義時,視覺化曲線很容易。

在此處輸入圖像描述

所有算術幾何關係幾乎完美無缺;那是

$$ P+Q-R $$在同一條線上; 當我們轉向有限域情況時,我們有一個離散圖;

在此處輸入圖像描述

繪製藍線以顯示對稱性,因為如果 $ (x,y) $ 滿足曲線方程(曲線上的一個點)然後 $ (x,-y) $ (在情節 $ = (x,29-y) $ ) 也滿足方程 ([Math Processing Error] $ y^2 $ ).

現在我們可以看到點加法 $ P=(1,5), Q=(5,7) $ 和 $ R = P+Q = (16,2) $ 繪製在圖上。

在此處輸入圖像描述

該圖與 ECC 點加法的連接的證明由 Fgrieu 為這個問題執行:在有限域上撞擊橢圓曲線上兩個點的線是否必須通過連續撞擊另一個點?

從這些圖中我們可以看出,這裡缺少無窮大點。考慮總和[Math Processing Error] $ R $ 和 $ -R $ ,應該有[Math Processing Error] $ \mathcal{O} $ 在垂直線上!不!。

另一個視覺化是圓環形狀。任何矩形圖像都可以映射成圓環形狀。

在此處輸入圖像描述

這是一個帶有漸近線的矢量圖,不能直接看到的點被設置為不透明的。這是通過光線追踪計算的。這[Math Processing Error] $ R $ 和 $ -R $ 在背景上。可以在HTML 中最好地查看此3D。底部的快照;

在此處輸入圖像描述

HMTL 是互動式的,您可以在 3D 中縮放和旋轉,您可以從 Github 下載並在本地查看。

點是橢圓曲線在有限域上評估時實際上看起來不像曲線,而且確實沒有真正的方法來視覺化點[Math Processing Error] $ \mathbb{F}{29}\times\mathbb{F}{29} $ 無論如何,這不會失去一些結構。

我能想到的最好的方法是將它們簡單地繪製為 $ 29\times29 $ 網格並加入點,但即使這樣也很不清楚,因為例如你什麼時候會通過溢出網格來“加入”它們(例如:從 $ (1,5)\to(4,19) $ 直接從一個到另一個,還是會從一側出來並重新出現在另一側?)。

如果你要評估[Math Processing Error] $ E(\mathbb{R}) $ 然後得到的點將形成一條曲線[Math Processing Error] $ \mathbb{R}^2 $ ,然後您可以繪製.

引用自:https://crypto.stackexchange.com/questions/12093