curve25519-dalek中RistrettoPoint的double_and_compress_batch原理梳理
可參照博客Extended twisted Edwards curve坐標系及相互轉換第2.3.2節,有:
2 ( X 0 : Y 0 : Z 0 : T 0 ) = ( X : Y : Z : T ) 2(X_0:Y_0:Z_0:T_0)=(X:Y:Z:T) 2(X0?:Y0?:Z0?:T0?)=(X:Y:Z:T)
X = ( 2 X 0 Y 0 ) ( Z 0 2 ? d T 0 2 ) = e h X=(2X_0Y_0)(Z_0^2-dT_0^2)=eh X=(2X0?Y0?)(Z02??dT02?)=eh
Y = ( Y 0 2 ? a X 0 2 ) ( Z 0 2 + d T 0 2 ) = g f Y=(Y_0^2-aX_0^2)(Z_0^2+dT_0^2)=gf Y=(Y02??aX02?)(Z02?+dT02?)=gf
T = ( Y 0 2 ? a X 0 2 ) ( 2 X 0 Y 0 ) = e g T=(Y_0^2-aX_0^2)(2X_0Y_0)=eg T=(Y02??aX02?)(2X0?Y0?)=eg
Z = ( Z 0 2 ? d T 0 2 ) ( Z 0 2 + d T 0 2 ) = f h Z=(Z_0^2-dT_0^2)(Z_0^2+dT_0^2)=fh Z=(Z02??dT02?)(Z02?+dT02?)=fh
其中:
e = 2 X 0 Y 0 , g = Y 0 2 ? a X 0 2 , f = Z 0 2 + d T 0 2 , h = Z 0 2 ? d T 0 2 e=2X_0Y_0,g=Y_0^2-aX_0^2,f=Z_0^2+dT_0^2,h=Z_0^2-dT_0^2 e=2X0?Y0?,g=Y02??aX02?,f=Z02?+dT02?,h=Z02??dT02?
對應的Extended坐標系表示為:
ε a , d : = { ( X : Y : Z : T ) ∈ P 3 ( F ) : X Y = Z T a n d a ? X 2 + Y 2 = Z 2 + d ? T 2 } \varepsilon_{a,d}:=\{(X:Y:Z:T)\in P^3(F):XY=ZT\ and\ a*X^2+Y^2=Z^2+d*T^2\} εa,d?:={(X:Y:Z:T)∈P3(F):XY=ZT?and?a?X2+Y2=Z2+d?T2}
batch_invert的原理見博客curve25519-dalek中Scalar的Montgomery inversion及batch_invert算法第四節內容。
extended坐標系下的壓縮原理見博客ristretto255 point壓縮和解壓縮算法(2)——extended坐標系下中第2節。
總結
以上是生活随笔為你收集整理的curve25519-dalek中RistrettoPoint的double_and_compress_batch原理梳理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工业管道安全状况等级划分方法
- 下一篇: 最低通行费(动态规划)题解