Modular verifiable elections: Eos Voting
Go to file
RunasSudo 884d949d04
Add defaults to enum fields to stop errors on creation
2018-01-20 21:03:00 +10:30
docs Update README 2017-11-24 00:24:08 +11:00
eos Add defaults to enum fields to stop errors on creation 2018-01-20 21:03:00 +10:30
eosweb Add voter information page 2018-01-11 21:12:27 +08:00
.gitignore Data and instructions for Heroku 2017-11-28 12:29:12 +11:00
HOWTO.md Update docs 2017-12-11 11:53:49 +10:30
Procfile Use gunicorn for Heroku 2017-11-28 14:04:18 +11:00
README.md Update README.md 2018-01-08 19:07:54 +08:00
build_js.sh Improve error handling in worker 2017-12-11 20:55:00 +10:30
js.html Bring JS version of eos.core.objects up to date with Python 2017-09-25 11:47:29 +10:00
local_settings.example.py Email admins about task failures 2018-01-04 13:18:08 +08:00
requirements.txt Email admins about task failures 2018-01-04 13:18:08 +08:00
runtime.txt Data and instructions for Heroku 2017-11-28 12:29:12 +11:00
test.sh Implement a basic bitstream 2017-09-26 21:14:30 +10:00

README.md

Eos: Modular verifiable elections

Work in progress – Both API and GUI are sufficiently complete to have seen experimental use

Comparison with competitors

Helios Eos
Usable Yes Kinda
Good Yes Not really
Eye Candy No Yes!

Screenshot

Why create Eos? – Read here for some background.

Cryptographic details and references

Eos aims to be implementation-agnostic with respect to cryptographic details. The included eos.psr package provides an example implementation with the following particulars:

  • ElGamal encryption
    • MENEZES, Alfred J., Paul C. VAN OORSCHOT and Scott A. VANSTONE. Handbook of Applied Cryptography. CRC Press, 2001. Fifth printing. ISBN 978-0-8493-8523-0. Available from: http://cacr.uwaterloo.ca/hac/
  • Distributed threshold ElGamal due to Pedersen (1991)
    • PEDERSEN, Torben Pryds. ‘A Threshold Cryptosystem without a Trusted Party’. In: D.W. Davies, ed. Advances in Cryptology — EUROCRYPT '91. Berlin: Springer, 1991. pp. 522–526. Lecture Notes in Computer Science, vol. 547. ISBN 978-3-540-46416-7. Available from: https://doi.org/10.1007/3-540-46416-6_47
  • Signed ElGamal due to Schnorr and Jakobsson (2000)
    • SCHNORR, Claus Peter and Markus JAKOBSSON. ‘Security of Signed ElGamal Encryption’. In: T. OKAMOTO, ed. Advances in Cryptology – ASIACRYPT 2000. Berlin: Springer-Verlag, 2000. pp. 73–89. Lecture Notes in Computer Science, vol. 1976. ISBN 978-3-540-44448-0. Available from: https://doi.org/10.1007/3-540-44448-3_7
  • Randomised partial checking (RPC) due to Jakobsson, Juels and Rivest (2002)
    • JAKOBSSON, Markus, Ari JUELS and Ronald L. RIVEST. ‘Making Mix Nets Robust For Electronic Voting By Randomized Partial Checking’. In: Proceedings of the 11th USENIX Security Symposium. pp. 339–353. Berkeley: USENIX Association, 2002. Available from: https://www.usenix.org/event/sec02/full_papers/jakobsson/jakobsson.pdf
    • Taking note of points raised by Khazaei and Wikström (2013)
      • KHAZAEI, Shahram and Douglas WIKSTRÖM. ‘Randomized Partial Checking Revisited’. In: E. DAWSON, ed. Topics in Cryptology – CT-RSA 2013. Berlin: Springer-Verlag, 2013. pp. 115–128. Lecture Notes in Computer Science, vol. 7779. ISBN 978-3-642-36095-4. Available from: https://doi.org/10.1007/978-3-642-36095-4_8

Mother of all disclaimers

This is a fun side-project of mine, and should in no way be considered to be a serious attempt to build a production-ready election system suitable for real world deployment. Not even crypto experts are quite up to the task, and I am most certainly not a crypto expert, nor am I anything resembling a professional in any field even tangentially related to cryptographic elections.

I cannot guarantee the security of this implementation whatsoever. In fact, I would go so far as to guarantee that this software has so many holes it gives Swiss cheese a run for its money. That said, please feel free to roast Eos on the issue tracker!