package crypto
- Alphabetic
- By Inheritance
- crypto
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
abstract
class
BcDlogGroup extends DlogGroup
Base class for EC-based groups where DLOG problem is hard (with bouncycastle-like interface).
-
abstract
class
CryptoContext extends AnyRef
A context for cryptographic operations over elliptic curve group.
-
class
CryptoContextJvm extends CryptoContext
JVM implementation of context for cryptographic operations using Bouncycastle.
-
type
Curve = crypto.Platform.Curve
Instance of Elliptic Curve descriptor.
- trait DiffieHellmanTupleProtocol extends SigmaProtocol[DiffieHellmanTupleProtocol]
- case class DiffieHellmanTupleProverInput(w: BigInteger, commonInput: ProveDHTuple) extends SigmaProtocolPrivateInput[ProveDHTuple] with Product with Serializable
-
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.
-
type
ECFieldElem = crypto.Platform.ECFieldElem
Instance of Elliptic Curve field element.
-
type
Ecp = crypto.Platform.Ecp
Instance of Elliptic Curve point.
-
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
gis default generator of the group
- b
commitment to secret randomness
b = h^r
, where
his another random generator of the group
- See also
createRandomGenerator in sigmastate.crypto.CryptoConstants.dlogGroup
-
trait
FirstProverMessage extends ProverMessage
First message from the prover (message
a
ofSigmaProtocol
) - class GF2_192 extends AnyRef
- class GF2_192_Poly extends AnyRef
-
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)
-
trait
ProverMessage extends TranscriptMessage
The message sent by a prover to its associated verifier as part of a sigma protocol interaction.
-
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
, wherer
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
-
trait
SecondProverMessage extends ProverMessage
Second message from the prover (message
z
ofSigmaProtocol
) -
type
SecureRandom = java.security.SecureRandom
A cryptographically strong random number generator.
-
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)
- trait SigmaProtocolPrivateInput[CI <: SigmaLeaf] extends AnyRef
- trait SigmaProtocolProver extends AnyRef
- trait TranscriptMessage extends AnyRef
-
trait
VerifierMessage extends TranscriptMessage
The message sent by a verifier to its associated prover as part of a sigma protocol interaction.
Value Members
-
object
BigIntegers
Re-implementation in Scala of select set of utility methods from org.bouncycastle.util.BigIntegers.
-
object
CryptoConstants
Constants used in crypto operations implementation.
-
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.
- object CryptoFunctions
- object DLogProtocol
- object DiffieHellmanTupleInteractiveProver extends SigmaProtocolProver
- object DiffieHellmanTupleProverInput extends Serializable
- object GF2_192
- object GF2_192_Poly
-
object
HmacSHA512
A utility object to compute HMAC-SHA512 hashes.
-
object
Platform
JVM specific implementation of crypto methods
- object ProveDHTuple extends Serializable
-
object
ProveDHTupleProp
Helper extractor to match SigmaProp values and extract ProveDHTuple out of it.
-
object
SecP256K1Group extends BcDlogGroup
Implementation of BcDlogGroup using SecP256K1 curve.
- object VerifierMessage