p

sigmastate

crypto

package crypto

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. crypto
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract class BcDlogGroup extends DlogGroup

    Base class for EC-based groups where DLOG problem is hard (with bouncycastle-like interface).

  2. abstract class CryptoContext extends AnyRef

    A context for cryptographic operations over elliptic curve group.

  3. class CryptoContextJvm extends CryptoContext

    JVM implementation of context for cryptographic operations using Bouncycastle.

  4. type Curve = crypto.Platform.Curve

    Instance of Elliptic Curve descriptor.

  5. trait DiffieHellmanTupleProtocol extends SigmaProtocol[DiffieHellmanTupleProtocol]
  6. case class DiffieHellmanTupleProverInput(w: BigInteger, commonInput: ProveDHTuple) extends SigmaProtocolPrivateInput[ProveDHTuple] with Product with Serializable
  7. trait DlogGroup extends AnyRef

    This is the general interface for the discrete logarithm prime-order group.

    This is the general interface for the discrete logarithm prime-order group. Every class in the DlogGroup family implements this interface.

    The discrete logarithm problem is as follows: given a generator g of a finite group G and a random element h in G, find the (unique) integer x such that g^x = h.

    In cryptography, we are interested in groups for which the discrete logarithm problem (Dlog for short) is assumed to be hard. The most known groups of that kind are some Elliptic curve groups.

  8. type ECFieldElem = crypto.Platform.ECFieldElem

    Instance of Elliptic Curve field element.

  9. type Ecp = crypto.Platform.Ecp

    Instance of Elliptic Curve point.

  10. case class FirstDHTupleProverMessage(a: EcPointType, b: EcPointType) extends FirstProverMessage with Product with Serializable

    First message of Diffie Hellman tuple sigma protocol.

    First message of Diffie Hellman tuple sigma protocol.

    a

    commitment to secret randomness a = g^r, where g is default generator of the group

    b

    commitment to secret randomness b = h^r, where h is another random generator of the group

    See also

    createRandomGenerator in sigmastate.crypto.CryptoConstants.dlogGroup

  11. trait FirstProverMessage extends ProverMessage

    First message from the prover (message a of SigmaProtocol)

  12. class GF2_192 extends AnyRef
  13. class GF2_192_Poly extends AnyRef
  14. case class ProveDHTuple(gv: EcPointType, hv: EcPointType, uv: EcPointType, vv: EcPointType) extends SigmaLeaf with Product with Serializable

    Construct a new SigmaProp value representing public key of Diffie Hellman signature protocol.

    Construct a new SigmaProp value representing public key of Diffie Hellman signature protocol. Common input: (g,h,u,v)

  15. trait ProverMessage extends TranscriptMessage

    The message sent by a prover to its associated verifier as part of a sigma protocol interaction.

  16. case class SecondDHTupleProverMessage(z: BigInteger) extends SecondProverMessage with Product with Serializable

    Represents a response for challenge in Diffie Hellman tuple sigma protocol.

    Represents a response for challenge in Diffie Hellman tuple sigma protocol.

    z

    responce to the challenge computed as (r + ew) mod q, where r is the prover's randomness, e challenge from the verifier (also computed by the prover in non-interactive case), w is the prover's secret. q is the group order

  17. trait SecondProverMessage extends ProverMessage

    Second message from the prover (message z of SigmaProtocol)

  18. type SecureRandom = java.security.SecureRandom

    A cryptographically strong random number generator.

  19. trait SigmaProtocol[SP <: SigmaProtocol[SP]] extends AnyRef

    Abstract template for sigma protocols.

    Abstract template for sigma protocols. For details see the following book [1] Efficient Secure Two-Party Protocols - Techniques and Constructions, p.150)

  20. trait SigmaProtocolPrivateInput[CI <: SigmaLeaf] extends AnyRef
  21. trait SigmaProtocolProver extends AnyRef
  22. trait TranscriptMessage extends AnyRef
  23. trait VerifierMessage extends TranscriptMessage

    The message sent by a verifier to its associated prover as part of a sigma protocol interaction.

Value Members

  1. object BigIntegers

    Re-implementation in Scala of select set of utility methods from org.bouncycastle.util.BigIntegers.

  2. object CryptoConstants

    Constants used in crypto operations implementation.

  3. object CryptoFacade

    A facade for cryptographic operations.

    A facade for cryptographic operations. The concrete implementation is delegated to the Platform object, which is resolved by the compiler to either JVM or JS implementation. Cross-platform code should use this facade instead of the Platform object directly.

  4. object CryptoFunctions
  5. object DLogProtocol
  6. object DiffieHellmanTupleInteractiveProver extends SigmaProtocolProver
  7. object DiffieHellmanTupleProverInput extends Serializable
  8. object GF2_192
  9. object GF2_192_Poly
  10. object HmacSHA512

    A utility object to compute HMAC-SHA512 hashes.

  11. object Platform

    JVM specific implementation of crypto methods

  12. object ProveDHTuple extends Serializable
  13. object ProveDHTupleProp

    Helper extractor to match SigmaProp values and extract ProveDHTuple out of it.

  14. object SecP256K1Group extends BcDlogGroup

    Implementation of BcDlogGroup using SecP256K1 curve.

  15. object VerifierMessage

Inherited from AnyRef

Inherited from Any

Ungrouped