Cryptographic E-Voting Platform with Zero-Knowledge Proofs
Developed a full-stack prototype e-voting platform implementing advanced cryptographic techniques to address key e-voting security challenges: ballot secrecy, voter authentication, double-voting prevention, and coercion resistance.
Objective
Create a cryptographically secure voting system that ensures ballot confidentiality, verifiable voting, tamper detection, and resistance to common attack vectors.
Tools & Technologies
Methodology
Key Outcomes & Impact
- Implemented PGP encryption (2048-bit RSA) for ballot confidentiality and RSA-PSS digital signatures for voter authentication
- Integrated Zero-Knowledge Proof concepts allowing voters to verify their vote was counted without revealing their choice
- Built cryptographic commitments to prevent double voting and hash chains for tamper detection
- Developed full-stack solution: Flask backend with RESTful API + responsive HTML/CSS/JS frontend
- Implemented comprehensive security controls: rate limiting, input validation, SQL injection prevention, XSS filtering, CSRF tokens
- Conducted security testing using STRIDE threat modeling framework and hands-on pentesting with Burp Suite
- Validated resilience against authentication bypass, session hijacking, cryptographic manipulation, timing attacks, and nonce reuse
Lessons Learned
Cryptographic systems require defense-in-depth approaches combining multiple security layers. Zero-knowledge proofs provide powerful privacy guarantees but require careful implementation. Comprehensive security testing must address both cryptographic and traditional web application vulnerabilities.