RunasSudo / helios-server-mixnet

Helios voting with mixnet (preferential voting) support
GNU Affero General Public License v3.0
4 stars 4 forks source link

Helios Election System with mixnet support

Helios is an end-to-end verifiable voting system.

This is a fork of Ben Adida's Helios server, with support for mixnets using code pulled in from Zeus, and support for threshold decryption, but without the other changes made in Zeus, and with some other minor changes.

Features

A word on security

This implementation produces 80 shadow mixes for each shuffling proof, in accordance with the original Helios paper. This is less than its inspiration, Josh Benaloh's paper (which recommends 100), and Zeus (which uses 128 by default). You may want to increase CUSTOM_SHUFFLING_PROOF_SECURITY_PARAMETER in phoebus/mixnet/params.py for increased security.

Acknowledgements

I'd like to thank:

Licence

Copyright © 2016 RunasSudo (Yingtong Li)
Based on code by GRnet researchers (https://github.com/grnet/zeus), licensed under the GPLv3.
Based on code by Ben Adida (https://github.com/benadida/helios-server), licensed under the Apache License.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Disclaimer

While the creators of the original Helios and Zeus are crypto experts, I am not. I cannot guarantee the security of this implementation whatsoever.