Elliptic-Curves
了解在伽羅瓦域中求解複雜方程時的簡化步驟
當我試圖理解從 x25519 到 ed25519 的基點轉換時,我剛剛遇到了一個問題。我真的無法理解 $ x $ 可以是下面的規定值嗎?有人可以請,通過推導步驟 $ x $ ,尤其是模運算部分?
$$ x^2=\frac{1-(4/5)^2}{-1+(121665/121666)\cdot(4/5)^2} \text. $$現在通過考慮對稱表示(即,從集合 $ {-(q-1)/2,\dots,(q-1)/2} $ ) 的元素 $ \mathbb F_q $ ,我們可以將這個方程的一個根解釋為正,另一個解釋為負,對應於它們的對稱表示的符號。上述方程的唯一“正”解正是 $ 15112221349535400772501151409588531511454012693041857206046113283949847762202 $ .
所有這些操作都在一個有限域中,特別是具有模數的素數域 $ p = 2^{255}-19 $ .
所以,例如, $ 4/5 $ 不是 $ 0.80 $ , 但 $ 4 $ 乘以倒數 $ 5 $ 模組 $ p $ (即,當乘以 $ 5 $ , 結果為餘數 $ 1 $ 當除以 $ p $ )。尤其是, $ 1/5 $ 是 $ 11579208923731619542357098500868790785326998466564056403945758400791312963990 $ (因為在減少模數時乘以 5 等於 1 $ p $ )。這同樣適用於乘法、加法等 - 一切都是模數 $ p $ .
最終結果是正確的,如下 Sage 程式碼所示:
sage: F = GF(2^255-19) sage: xx = (F(1)-(F(4)/F(5))^2) / (F(-1) + (F(121665)/F(121666))*(F(4)/F(5))^2) sage: xx.sqrt(all=True) [15112221349535400772501151409588531511454012693041857206046113283949847762202, 42783823269122696939284341094755422415180979639778424813682678720006717057747]