commit 023029d45df8e3d5a4607008c6eda454479d3fec
parent 6d00adb924931e17ce5d61dd60b62dfbefacaf29
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Wed, 10 Jul 2024 15:44:31 +0200
define A
Diffstat:
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/draft-gnunet-communicators.xml b/draft-gnunet-communicators.xml
@@ -240,17 +240,18 @@ An Elligator key pair is generated as follows.
KeyGenElligator():
VALID := 0
while(!VALID):
- a := random(256)
- ED_high := clamps(a) * G
- ED_low := (a mod 8) * H
+ x := random(256)
+ ED_high := clamps(x) * G
+ ED_low := (x mod 8) * H
ED := ED_high + ED_low
- A := EdToCurve(ED)
- if Dec(Enc(A)) == A:
+ X := EdToCurve(ED)
+ if Dec(Enc(X)) == X:
VALID := 1
- return (a, A)
+ return (x, X)
]]></artwork>
<t>
- Let X be a valid x-coordinate of a Curve25519 point, sqrt() a function which calculates the square root of the finite field element, U the number
+ Let A and P be the are parameters for Curve25519 as specified in section 4.1 of <xref target="RFC7748"/>.
+ Further, let X be a valid x-coordinate of a Curve25519 point, sqrt() a function which calculates the square root of the finite field element, U the number
sqrt(-1) which is a non-quadratic number in the finite field, and legendre() a function which computes the legendre symbol of a field element.
As each of the field elements have two roots, we need to define the notion of negative and non-negative numbers. This is especially important for the
sqrt() function. A straightforward choice is to define the set {0,..., (P - 1) / 2} as set of all non-negative numbers.