Introduction
dlog-sigma-primitives is a Rust crate offering discrete logarithm based cryptographic building blocks over elliptic curve groups. Group arithmetic and encodings are abstracted via the companion dlog-group crate, so the same protocols can be instantiated over any supported group.
Cryptographic model
Let be a cyclic group of prime order with generator , in this documentation we assume it written multiplicatively even if the implementation is written additively. Secrets and randomness are sampled from ; public elements live in . All statements and proofs in this crate are expressed as relations among discrete logarithms in . Security relies on the standard hardness of the discrete logarithm problem in and, where required, on DDH style indistinguishability. Non-interactive proofs are obtained from Sigma protocols using the Fiat-Shamir transform in the random oracle model, with challenge values derived from domain separated transcripts using the merlin crate.
Design goals
- Composable. Proofs share uniform traits so that complex statements can be built easily.
- Explicit transcripts. Every challenge is derived from a transcript with clear domain separation.
- Group agnostic core. Protocol logic is independent of a particular curve; concrete groups are supplied by
dlog-group(e.g., P 256 via thep256feature).