Get the latest tech news

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


Easy-to-use Sigma proofs in C using libsodium. Contribute to jedisct1/c-sigma development by creating an account on GitHub.

A clean, simple C implementation of Sigma protocols with Fiat-Shamir transformation for non-interactive zero-knowledge proofs. Schnorr Protocol: Prove knowledge of discrete logarithm Chaum-Pedersen Protocol: Prove discrete logarithm equality (DLEQ) Non-interactive proofs: Using Fiat-Shamir transformation with SHAKE128 Minimal API: Just 6 functions for complete functionality No abstractions: Direct use of byte arrays, no wrapper types Secure: Built on libsodium's Ristretto255 group operations AspectSchnorrChaum-PedersenProof size64 bytes96 bytesWhat's provenKnowledge of one secretEquality of two discrete logsComplexitySimplerMore complexComputation2 exponentiations to verify4 exponentiations to verifyPrimary useAuthentication, signaturesVerifiable encryption, DLEQ proofs Elliptic Curve Group: Ristretto255 (via libsodium) Hash Function: SHAKE128 for Fiat-Shamir challenges Proof Sizes: Fixed - 64 bytes (Schnorr), 96 bytes (Chaum-Pedersen) Security: 128-bit security level

Get the Android app

Or read this on Hacker News

Read more on:

Photo of Sigma

Sigma

Photo of libsodium

libsodium

Photo of Sigma proofs

Sigma proofs

Related news:

News photo

I tested the viral Sigma BF camera, and its radical redesign has me hooked

News photo

Sigma's latest camera is so minimalist it doesn't have a memory card slot

News photo

Two Sigma Taps Nekmouche to Head AI Strategy, Baron Steps Down