arcanum-threshold 0.1.2

Threshold cryptography for the Arcanum cryptographic engine
Documentation

Arcanum Threshold Cryptography

Threshold cryptographic schemes for distributed key management and signing.

Secret Sharing

  • Shamir: Basic (t, n) secret sharing
  • Feldman: Verifiable secret sharing with public commitments
  • Pedersen: Information-theoretically hiding verifiable secret sharing

Threshold Signatures (FROST)

FROST (Flexible Round-Optimized Schnorr Threshold) signatures:

  • FROST-Ed25519: Ed25519-compatible threshold signatures
  • FROST-secp256k1: Bitcoin/Ethereum compatible signatures

Distributed Key Generation (DKG)

Generate group keys without trusted dealer:

  • Pedersen DKG: Two-round DKG with information-theoretic security
  • FROST DKG: Integrated key generation for FROST signing

Proactive Refresh

Limit the window of compromise with periodic share refresh:

  • Centralized refresh: Dealer refreshes all shares at once
  • Distributed refresh: Participants cooperatively refresh without dealer

After refresh, old shares are incompatible with new shares, preventing attackers from combining shares collected over different time periods.

Example

use arcanum_threshold::prelude::*;

// Create 3-of-5 Shamir sharing
let secret = b"my secret key";
let shares = ShamirScheme::split(secret, 3, 5)?;

// Reconstruct from any 3 shares
let recovered = ShamirScheme::combine(&shares[..3])?;
assert_eq!(secret.as_slice(), recovered.as_slice());