MINOSSE (MINOS in english, name inspired by the famous character in Dante's work) is a web-based, client-server application for electronic voting, real-time data collection, votes counting, and multi-candidate elections.
It uses the Paillier semi-homomorphic cryptographic scheme to anonymously collect and count the votes.
It is a purely demonstrative application and shouldn't be employed in a production environment by any means. It is NOT a secure system and I do not assume any responsabilities of the usage that you will do of this software.
This project was created for my BSc thesis at the University of Bologna (UNIBO) in 2021, and it is archived and no longer maintained. Contributions to this repository are not accepted, but if you want to re-use my code, you can do so under its license constraints (see the LICENSE file).
You can view the documentation in the doc/ directory, where you will also find the PDF of my thesis. The document is available in English and Italian.
Minosse is a web app that enables electronic (remote) voting. Remote voting poses a current challenge due to its intrinsic requirement for anonymity. Ciphering votes with a robust modern cipher addresses the problem until it's time to decrypt them. Encrypting votes with standard cryptographic schemes only serves to 'move' the problem. Homomorphic cryptographic schemes leverage their intrinsic malleability property to establish a homomorphism (a link) under a certain operation between ciphertexts and plaintexts.
Therefore, specific operations on the ciphertexts can be performed to ensure they will be reflected on the plaintexts in a predictable and reproducible way. The result is a system that can homomorphically count votes without decrypting them.
gcsar
MINOS by gcsar is licensed under CC BY-NC-SA 4.0