Modular verifiable elections: Eos Voting
Go to file
2018-01-04 13:18:08 +08:00
docs Update README 2017-11-24 00:24:08 +11:00
eos Email admins about task failures 2018-01-04 13:18:08 +08:00
eosweb Email admins about task failures 2018-01-04 13:18:08 +08:00
.gitignore Data and instructions for Heroku 2017-11-28 12:29:12 +11:00
build_js.sh Improve error handling in worker 2017-12-11 20:55:00 +10:30
HOWTO.md Update docs 2017-12-11 11:53:49 +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
Procfile Use gunicorn for Heroku 2017-11-28 14:04:18 +11:00
README.md Update README 2017-11-24 00:24:08 +11: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

Eos: Modular verifiable elections

Work in progress – An API for elections and cryptography is more or less complete, focus is now on building a functional user interface

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!