blob: 1a0d32d95ff99db2df595a7f0c6b5bc2d15a47cd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
name twisted Edwards curves
parameter a
parameter d
coordinate x
coordinate y
satisfying a*x^2+y^2 == 1+d*x^2*y^2
addition x = (x1*y2+y1*x2)/(1+d*x1*x2*y1*y2)
addition y = (y1*y2-a*x1*x2)/(1-d*x1*x2*y1*y2)
doubling x = (x1*y1+y1*x1)/(1+d*x1*x1*y1*y1)
doubling y = (y1*y1-a*x1*x1)/(1-d*x1*x1*y1*y1)
negation x = -x1
negation y = y1
neutral x = 0
neutral y = 1
toweierstrass u = (1+y)/(1-y)
toweierstrass v = 2*(1+y)/(x(1-y))
a0 = 1/(a-d)
a1 = 0
a2 = 4*a/(a-d)-2
a3 = 0
a4 = 1
a6 = 0
fromweierstrass x = 2*u/v
fromweierstrass y = (u-1)/(u+1)
|