接前一博客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):a∗x2+y2=1+d∗x2∗y2}
对应的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} 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+y1−y =−a21+Y/Z1−Y/Z =−a2 Z2−Y2 Z−Y
由此可知,需要计算 1 / Z 2 − Y 2 1/\sqrt{Z^2-Y^2} 1/Z2−Y2 。
根据前一博客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
<
=
0
x_0y_0<=0
x0y0
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?