# Proposal: Add PQC-Based Secure Voting MVP ## Summary Implement Minimum Viable Product for secure electronic voting using Post-Quantum Cryptography (Paillier + Kyber + Dilithium) and Blockchain for vote recording. ## Change ID `add-pqc-voting-mvp` ## Motivation - Enable secure electronic voting with vote secrecy and integrity - Implement homomorphic encryption for private vote counting - Use post-quantum cryptography (Kyber, Dilithium) for quantum resistance - Provide blockchain-based immutable vote records - Support individual and universal verifiability ## Scope This proposal adds the complete voting system with: 1. Cryptographic toolkit (Paillier, Kyber, Dilithium, ZKP) 2. Blockchain module for vote recording 3. Voting API endpoints for ballot submission 4. Frontend voting interface with client-side encryption 5. Blockchain visualization and verification 6. Vote counting with homomorphic properties 7. Results display and audit reporting ## Affected Capabilities ### New Capabilities - `voting-encryption`: Homomorphic vote encryption - `blockchain-votes`: Immutable vote recording - `pqc-signatures`: Post-quantum ballot and block signing - `vote-submission`: Secure ballot submission workflow - `vote-counting`: Homomorphic vote summation - `blockchain-verification`: Chain integrity verification ### Modified Capabilities - `authentication`: Extend with voter Dilithium key generation - `api-structure`: Add new voting endpoints ## Key Design Decisions 1. **Vote Encryption**: Paillier homomorphic encryption allows voting without decrypting individual votes 2. **Post-Quantum**: Kyber protects Paillier key, Dilithium signs ballots and blocks 3. **Blockchain**: SHA-256 hash chain ensures vote immutability 4. **Anonymity**: Transaction IDs instead of voter IDs in blockchain 5. **Verifiability**: ZKP proves ballot validity, chain verification proves counting accuracy ## Implementation Phases 1. **Phase 1**: Cryptographic foundations (crypto_tools.py + blockchain.py) 2. **Phase 2**: Backend API endpoints 3. **Phase 3**: Frontend voting interface 4. **Phase 4**: Blockchain visualization 5. **Phase 5**: Results and reporting 6. **Phase 6**: Technical report and testing ## Success Criteria - [ ] All cryptographic operations implemented and tested - [ ] Blockchain structure immutable and verifiable - [ ] Voting API endpoints functional - [ ] Frontend enables secure ballot encryption and submission - [ ] Vote counting produces verifiable results - [ ] Complete technical & scientific report - [ ] Docker deployment successful - [ ] Security properties validated ## Related Issues/Discussions - Course project: Cryptographie Industrielle Avancée (CIA) - Requirement: Secure e-voting system with PQC and blockchain