ReadonlyIDThe ciphersuite ID string. It should be equal to the contextString in the spec. For new ciphersuites, this should be a string that identifies the ciphersuite; it's recommended to use a similar format to the ciphersuites in the FROST spec, e.g. "FROST-RISTRETTO255-SHA512-v1".
ReadonlygroupThe prime order group (or subgroup) that this ciphersuite operates over. Provides access to Field and Group operations in a hierarchical manner.
The scalar type for this ciphersuite
The element type for this ciphersuite
The verifying key type
The signing key type
Returns the zero element of the field, the additive identity.
Returns the one element of the field, the multiplicative identity.
Generate a random scalar from the entire space [0, l-1]
Serialize a scalar to bytes.
Add two scalars.
Subtract two scalars.
Multiply two scalars.
Check if two scalars are equal.
Returns the size in bytes of a serialized element.
Returns the size in bytes of a serialized scalar.
The order of the quotient group when the prime order subgroup divides the order of the full curve group. For prime order curves, this should return 1.
Additive identity of the prime order group.
The fixed generator element of the prime order group.
Add two group elements.
Subtract two group elements.
Multiply a group element by a scalar.
Scalar multiplication with the generator (g * scalar).
Check if two elements are equal.
Check if an element is the identity.
H1 for FROST(Ed25519, SHA-512)
H1(m) = SHA-512("FROST-ED25519-SHA512-v1" || "rho" || m)
H2 for FROST(Ed25519, SHA-512)
H2(m) = SHA-512(m)
Note: Unlike other hash functions, H2 for Ed25519 does NOT include the context string or any domain separator. This matches the Rust implementation and RFC 9591 Section 6.1.
H3 for FROST(Ed25519, SHA-512)
H3(m) = SHA-512("FROST-ED25519-SHA512-v1" || "nonce" || m)
H4 for FROST(Ed25519, SHA-512)
H4(m) = SHA-512("FROST-ED25519-SHA512-v1" || "msg" || m)
H5 for FROST(Ed25519, SHA-512)
H5(m) = SHA-512("FROST-ED25519-SHA512-v1" || "com" || m)
HDKG for FROST(Ed25519, SHA-512)
HDKG(m) = SHA-512("FROST-ED25519-SHA512-v1" || "dkg" || m)
Used for distributed key generation.
HID for FROST(Ed25519, SHA-512)
HID(m) = SHA-512("FROST-ED25519-SHA512-v1" || "id" || m)
Used for deriving identifiers from arbitrary byte strings.
hashRandomizer for RandomizedCiphersuite
hashRandomizer(m) = SHA-512("FROST-ED25519-SHA512-v1" || "randomizer" || m)
Used for re-randomized FROST signatures.
Compute the signature challenge.
For Ed25519, this follows the FROST challenge computation from RFC 9591 Section 6.1.
Compute binding factors for all participants.
Compute the group commitment from all signing commitments.
Derive the interpolating value (Lagrange coefficient) for a participant.
An implementation of the FROST(Ed25519, SHA-512) ciphersuite.
This ciphersuite uses:
The ciphersuite follows RFC 9591 Section 6.1 specification.