public class Ed25519ScalarOps extends Object implements ScalarOps
q = 2^252 + 27742317777372353535851937790883648493.
Reviewed/commented by Bloody Rookie (nemproject@gmx.de)
Constructor and Description |
---|
Ed25519ScalarOps() |
Modifier and Type | Method and Description |
---|---|
byte[] |
multiplyAndAdd(byte[] a,
byte[] b,
byte[] c)
Input:
|
byte[] |
reduce(byte[] s)
Reduction modulo the group order q.
|
public byte[] reduce(byte[] s)
Input: s[0]+256*s[1]+...+256^63*s[63] = s
Output: s[0]+256*s[1]+...+256^31*s[31] = s mod q where q = 2^252 + 27742317777372353535851937790883648493.
public byte[] multiplyAndAdd(byte[] a, byte[] b, byte[] c)
Output: result[0]+256*result[1]+...+256^31*result[31] = (ab+c) mod q where q = 2^252 + 27742317777372353535851937790883648493.
See the comments in reduce(byte[])
for an explanation of the algorithm.
multiplyAndAdd
in interface ScalarOps