Description | Mix-networks are widely used in electronic voting to break the link between input ballots and output ballots. One of the widely used algorithm is Bayer-Groth \cite{10.1007/978-3-642-29011-4_17}, also used in elections in Switzerland \cite{crypto-primitives}. In this project, our goal is to implement Bayer-Groth mix-network in Python, Haskell, Java, Coq, Lean, F* (pick the language of your choice). We will use this implementation to shuffle the ballots from an online election to demonstrate its usability. This project requires strong programming skills. You don't need to know Cryptography though. |