Hasty Briefsbeta

C-sigma: Easy-to-use Sigma proofs in C using libsodium

4 hours ago
  • #libsodium
  • #zero-knowledge-proofs
  • #cryptography
  • Clean, simple C implementation of Sigma protocols with Fiat-Shamir transformation for non-interactive zero-knowledge proofs.
  • Supports Schnorr Protocol for proving knowledge of discrete logarithm.
  • Supports Chaum-Pedersen Protocol for proving discrete logarithm equality (DLEQ).
  • Non-interactive proofs using Fiat-Shamir transformation with SHAKE128.
  • Minimal API with just 6 functions for complete functionality.
  • Direct use of byte arrays without abstractions or wrapper types.
  • Built on libsodium's Ristretto255 group operations for security.
  • Includes initialization function `sigma_init()` to wrap `sodium_init()`.
  • Provides functions for proving and verifying Schnorr and Chaum-Pedersen proofs.
  • Detailed use cases for both protocols including digital signatures, authentication, and verifiable encryption.
  • Comparison table between Schnorr and Chaum-Pedersen protocols.
  • Technical specifications including elliptic curve group, hash function, proof sizes, and security level.