Class ECSchnorrZKP

java.lang.Object
org.bouncycastle.crypto.agreement.owl.ECSchnorrZKP

public class ECSchnorrZKP extends Object
Schnorr 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 Details

    • ECSchnorrZKP

      public ECSchnorrZKP(ECPoint V, 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 Details

    • 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 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