The aim of this project is to implement a client-server voting application. The client should be able to vote anonymously, but no unauthorized party should be able to vote on behalf of an authorized voter. The server should be able to properly authorize legitimate voters and reject everybody else. The implementation could be on mobile devices or on regular computers. This project requires experience with programming and understanding of cryptography at the level of CM3110.