Class ECSchnorrZKP
- java.lang.Object
-
- org.bouncycastle.crypto.agreement.owl.ECSchnorrZKP
-
public class ECSchnorrZKP extends java.lang.ObjectSchnorr non-interactive zero-knowledge proof over an elliptic curve, as used in the Owl key exchange. The {(V, r)} pair follows the RFC 8235 ยง3.2 EC-Schnorr-Signature encoding: prover picks ephemeral v in [1, n-1], publishes commitment V = [v]G alongside response r = v - d*c mod n, where d is the prover's private key and c is the challenge hash. The verifier recomputes c and checks V == [r]G + [c]X.
-
-
Constructor Summary
Constructors Constructor Description ECSchnorrZKP(ECPoint V, java.math.BigInteger r)Constructor for ECSchnorrZKP
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.math.BigIntegergetr()Get the prover's response r to the challenge c, r = v - d * c mod n where d is the prover's private keyECPointgetV()Get the prover's commitment V = G x [v] where G is a base point on the elliptic curve and v is an ephemeral secret
-
-
-
Constructor Detail
-
ECSchnorrZKP
public ECSchnorrZKP(ECPoint V, java.math.BigInteger r)
Constructor for ECSchnorrZKP- Parameters:
V- Prover's commitment V = G x [v]r- Prover's response r to a challenge c, r = v - d * c mod n
-
-
Method Detail
-
getV
public ECPoint getV()
Get the prover's commitment V = G x [v] where G is a base point on the elliptic curve and v is an ephemeral secret- Returns:
- The prover's commitment
-
getr
public java.math.BigInteger getr()
Get the prover's response r to the challenge c, r = v - d * c mod n where d is the prover's private key- Returns:
- The prover's response
-
-