T-EVOLVE
Reference implementation of my threshold post-quantum e-voting protocol: polynomial ring arithmetic with NTT, Gaussian samplers, lattice commitments, zero-knowledge proofs and the tally, with benchmarks.
About
Research implementation of T-EVOLVE, the threshold lattice-based e-voting protocol from my preprint (ePrint 2026/2500), and of the EVOLVE ballot on the same code base for comparison.
It implements the whole protocol: ballots with their proofs, aggregation by the authorities, and the final tally. It runs the experiments and benchmarks reported in the paper and computes the parameters from the actual witnesses of the proofs. The message sizes it reports are those of real encodings.
Research code: not constant-time and not audited.
Stack
Language
- C
- Make
Cryptography
- BDLOP commitments
- Shamir sharing
- Reed–Solomon
- OR-proofs
- SHAKE128/256 (FIPS 202)
Arithmetic
- ℤ_q[X]/(X²⁵⁶+1)
- NTT
- Montgomery
- Discrete Gaussian sampling
- Golomb–Rice