密碼學/素數曲線/楚德諾夫斯基座標
外觀
< 密碼學
<密碼學
楚德諾夫斯基座標 用於表示素數曲線 y^2 = x^3 + ax + b 上的橢圓曲線點。當域求逆的成本明顯高於域乘法時,它們比仿射座標 提供了速度優勢。在楚德諾夫斯基座標 中,五元組 (X, Y, Z, Z^2, Z^3) 代表仿射點 (X / Z^2, Y / Z^3)。
設 (X, Y, Z, Z^2, Z^3) 為用楚德諾夫斯基座標 表示的一個點 (不等於無窮遠點)。那麼它的兩倍 (X', Y', Z', Z'^2, Z'^3) 可以透過以下方式計算
if (Y == 0) return POINT_AT_INFINITY S = 4*X*Y^2 M = 3*X^2 + a*(Z^2)^2 X' = M^2 - 2*S Y' = M*(S - X') - 8*Y^4 Z' = 2*Y*Z Z'^2 = Z'^2 Z'^3 = Z'^2 * Z' return (X', Y', Z', Z'^2, Z'^3)
注意:如果 a = -3,那麼 M 也可以計算為 M = 3*(X + Z^2)*(X - Z^2),從而節省了 2 個域平方運算。
設 (X1, Y1, Z1, Z1^2, Z1^3) 和 (X2, Y2, Z2, Z2^2, Z2^3) 為兩個用楚德諾夫斯基座標 表示的點 (都不等於無窮遠點)。那麼它們的和 (X3, Y3, Z3, Z3^2, Z3^3) 可以透過以下方式計算
U1 = X1*Z2^2
U2 = X2*Z1^2
S1 = Y1*Z2^3
S2 = Y2*Z1^3
if (U1 == U2)
if (S1 != S2)
return POINT_AT_INFINITY
else
return POINT_DOUBLE(X1, Y1, Z1, Z1^2, Z1^3)
H = U2 - U1
R = S2 - S1
X3 = R^2 - H^3 - 2*U1*H^2
Y3 = R*(U1*H^2 - X3) - S1*H^3
Z3 = H*Z1*Z2
Z3^2 = Z3^2
Z3^3 = Z3^2 * Z3
return (X3, Y3, Z3)
設 (X1, Y1, Z1, Z1^2, Z1^3) 為用楚德諾夫斯基座標 表示的一個點,(X2, Y2) 為仿射座標 中的一個點 (都不等於無窮遠點)。透過將“Z2”的所有出現都替換為“1”(從而減少三個域乘法),可以很容易地從常規的楚德諾夫斯基點加法推匯出新增這些點的公式。
有關更多詳細資訊,請參閱 雅可比座標。