ristretto255 point压缩和解压缩算法(2)——extended坐标系下

接前一博客ristretto255 point压缩和解压缩算法(1)——affine坐标系下

1、affine坐标系与extended坐标系之间的映射关系

Twisted Edwards curves的affine坐标系表示为:
ε a , d : = { ( x , y ) ∈ P 2 ( F ) : a ∗ x 2 + y 2 = 1 + d ∗ x 2 ∗ y 2 } \varepsilon_{a,d}:=\{(x,y)\in P^2(F):a*x^2+y^2=1+d*x^2*y^2\} εa,d:={(x,y)P2(F):ax2+y2=1+dx2y2}

对应的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 aX2+Y2=Z2+dT2}
Edwards curve的identity point表示为 ( 0 , 1 ) = ( 0 : 1 : 1 : 0 ) (0,1)=(0:1:1:0) (0,1)=(0:1:1:0)

affine坐标系与extended坐标系之间的映射关系为:

x = X / Z , y = Y / Z , X Y = Z T , x y = T / Z x=X/Z,y=Y/Z,XY=ZT,xy=T/Z x=X/Z,y=Y/Z,XY=ZT,xy=T/Z

2、extended坐标系下的压缩

s = − a 2 1 − y 1 + y = − a 2 1 − Y / Z 1 + Y / Z = − a 2 Z − Y Z 2 − Y 2 s=\sqrt{-a_2\frac{1-y}{1+y}}=\sqrt{-a_2\frac{1-Y/Z}{1+Y/Z}}=\sqrt{-a_2}{\frac{Z-Y}{\sqrt{Z^2-Y^2}}} s=a21+y1y =a21+Y/Z1Y/Z =a2 Z2Y2 ZY

由此可知,需要计算 1 / Z 2 − Y 2 1/\sqrt{Z^2-Y^2} 1/Z2Y2

根据前一博客ristretto255 point压缩和解压缩算法(1)——affine坐标系下第1.3节描述,对于带压缩点 P ( x 0 , y 0 ) P(x_0,y_0) P(x0,y0)需与2-torsion point ( 0 , − 1 ) 或 ( 0 , 1 ) (0,-1)或(0,1) (0,1)(0,1)求和,然后根据 x y ? > 0 xy?>0 xy?>0,来决定是否需要再需要与点 Q 4 Q_4 Q4【当 a = 1 a=1 a=1时, Q 4 = ( 1 , 0 ) Q_4=(1,0) Q4=(1,0);当 a = − 1 a=-1 a=1时, Q 4 = ( i , 0 ) , i 2 = − 1 Q_4=(i,0),i^2=-1 Q4=(i,0),i2=1。因 a 2 = 1 a^2=1 a2=1,可统一描述为 Q 4 = ( 1 / a , 0 ) Q_4=(1/\sqrt{a},0) Q4=(1/a ,0)】求和。
在这里插入图片描述
在这里插入图片描述
P ( x 0 , y 0 ) ↦ ( x , y ) P(x_0,y_0)\mapsto(x,y) P(x0,y0)(x,y) affine坐标系下的压缩算法的第一二步内容可梳理为:

  • ( x 0 , y 0 ) + ( 0 , 1 ) = ( x 0 , y 0 ) (x_0,y_0)+(0,1)=(x_0,y_0) (x0,y0)+(0,1)=(x0,y0)
  • x 0 y 0 &lt; = 0 x_0y_0&lt;=0 x0y0<=0时,有 ( x 0 , y 0 ) + ( 1 / a , 0 ) = ( y 0 / a , − a x 0 ) (x_0,y_0)+(1/\sqrt{a},0)=(y_0/\sqrt{a},-\sqrt{a}x_0) (x0,y0)+(1/a ,0)=(y0/a ,a x0)

P ( X 0 : Y 0 : Z 0 : T 0 ) ↦ ( X : Y : Z : T ) P(X_0:Y_0:Z_0:T_0)\mapsto(X:Y:Z:T) P(X0:Y0:Z0:T0)(X:Y:Z:T)衍生到extended坐标系下压缩算法的第一二步内容可梳理为:
( X : Y : Z : T ) = { ( X 0 : Y 0 : Z 0 : T 0 ) ( Y 0 / a : − a X 0 : Z 0 : − T 0 ) (X:Y:Z:T)=\left\{\begin{matrix} (X_0:Y_0:Z_0:T_0)\\ (Y_0/\sqrt{a}:-\sqrt{a}X_0:Z_0:-T_0) \end{matrix}\right. (X:Y:Z:T)={(X0:Y0:Z0:T0)(Y0/a :a X0:Z0:T0)

⇒ 1 / Z 2 − Y 2 = { 1 / Z 0 2 − Y 0 2 1 / Z 0 2 − a X 0 2 \Rightarrow 1/\sqrt{Z^2-Y^2}=\left\{\begin{matrix} 1/\sqrt{Z_0^2-Y_0^2}\\ 1/\sqrt{Z_0^2-aX_0^2} \end{matrix}\right. 1/Z2Y2 ={1/Z02Y02 1/Z02aX02

同时:
ε 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 aX2+Y2=Z2+dT2}
⇒ − d X 2 Y 2 = Z 4 − a X 2 Z 2 − Y 2 Z 2 \Rightarrow -dX^2Y^2=Z^4-aX^2Z^2-Y^2Z^2 dX2Y2=Z4aX2Z2Y2Z2
⇒ ( a − d ) X 2 Y 2 = Z 4 − a X 2 Z 2 − Y 2 Z 2 + a X 2 Y 2 = ( Z 2 − Y 2 ) ( Z 2 − a X 2 ) \Rightarrow (a-d)X^2Y^2=Z^4-aX^2Z^2-Y^2Z^2+aX^2Y^2=(Z^2-Y^2)(Z^2-aX^2) (ad)X2Y2=Z4aX2Z2Y2Z2+aX2Y2=(Z2Y2)(Z2aX2)
⇒ 1 Z 2 − a X 2 = 1 a − d Z 2 − Y 2 X 2 Y 2 \Rightarrow \frac{1}{Z^2-aX^2}=\frac{1}{a-d}\frac{Z^2-Y^2}{X^2Y^2} Z2aX21=ad1X2Y2Z2Y2
⇒ 1 Z 2 − a X 2 = 1 a − d Z 2 − Y 2 X 2 Y 2 \Rightarrow \frac{1}{\sqrt{Z^2-aX^2}}=\frac{1}{\sqrt{a-d}}\sqrt{\frac{Z^2-Y^2}{X^2Y^2}} Z2aX2 1=ad 1X2Y2Z2Y2

所以,extended坐标系下总的压缩公式计算如下:【其中下图第9步是因为 P + ε a , d [ 2 ] = { ( x , y ) , ( − x , − y ) } P+\varepsilon_{a,d}[2]=\{(x,y),(-x,-y)\} P+εa,d[2]={(x,y),(x,y)},即经过上图第一和第二步,所有的点都扭转到了 ε ε [ 2 ] \frac{\varepsilon}{\varepsilon[2]} ε[2]ε。】
在这里插入图片描述

3、extended坐标系下的解压缩

affine坐标系下,解压缩算法为根据 s s s值,求相应的 ( x , y ) (x,y) (x,y)
extended坐标系下,解压缩算法为根据 s s s值,求相应的 ( x , y , 1 , t ) (x,y,1,t) (x,y,1,t)

根据前一博客ristretto255 point压缩和解压缩算法(1)——affine坐标系下第3节描述有:
⇒ y = 1 + a 2 s 2 1 − a 2 s 2 \Rightarrow y=\frac{1+a_2s^2}{1-a_2s^2} y=1a2s21+a2s2
⇒ x = + 4 s 2 a 2 d 2 ( 1 + a 2 s 2 ) 2 − ( 1 − a 2 s 2 ) 2 \Rightarrow x=+\sqrt{\frac{4s^2}{a_2d_2(1+a_2s^2)^2-(1-a_2s^2)^2}} x=+a2d2(1+a2s2)2(1a2s2)24s2
extended坐标系下,额外有:
⇒ t = x y \Rightarrow t=xy t=xy

所以,总的解压缩公式为:
在这里插入图片描述

参考资料:
[1] https://ristretto.group/details/encoding_in_extended.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值