Skip to content
This repository has been archived by the owner on Oct 31, 2024. It is now read-only.
/ ice-frost Public archive

A modular Rust implementation of the static version of the ICE-FROST signature scheme.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

topos-protocol/ice-frost

ICE-FROST

codecov example workflow

A modular Rust implementation of ICE-FROST: Identifiable Cheating Entity Flexible Round-Optimised Schnorr Threshold signatures supporting static group keys.

Usage

Please see the documentation for usage examples.

Modular Backend

This library has a modular backend supporting

  • arbitrary curves defined with the arkworks library suite;
  • arbitrary hash functions for the internal random oracles of the ICE-FROST ciphersuite;
  • an arbitrary AEAD for the secret shares encryption part of the DKG / Key resharing phase.

Note however that two parameters are not modular, at least in the current version:

  • the hash function targeted security parameter: this crate assumes 128 bits of collision security for the ciphersuite's internal hashers. One MUST provide a hasher with at least 128 bits of collision security when instantiating an ICE-FROST ciphersuite.
  • the secret share encryption mechanism: this part of the distributed key generation currently relies on the ciphersuite's AEAD but with a fixed HKDF instantiated from SHA-256.

This library also provides by default an example instantiation over the Secp256k1 curve with SHA-256, to be used in tests and benchmarks.

Note on no_std usage

This crate can be made no_std compliant, by relying on the alloc crate instead.

Features

  • std: activated by-default, allowing use of the Rust standard library
  • asm: deactivated by-default, allowing x86-64 assembly optimization for finite field operations. This feature also activates the std one.

WARNING

This codebase is under development and is at an academic proof-of-concept prototype level. In particular, this implementation has not received careful code review yet, and hence is NOT ready for production use.

License

Licensed under either of

at your option.

About

A modular Rust implementation of the static version of the ICE-FROST signature scheme.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages