From 7cab4cccf9b5de0221fcdd6b4c06e0837484163b Mon Sep 17 00:00:00 2001 From: Alexis Bruneteau Date: Thu, 6 Nov 2025 17:51:56 +0100 Subject: [PATCH] docs: Add project requirements from Projet.pdf to openspec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated with: - Project definition from CIA course requirements - Key goals including fraud prevention and coercion resistance - Deliverables structure (code + technical report) - E-voting challenges to address: - Fraud prevention - Voter intimidation resistance - Anonymity preservation - Vote integrity and verifiability - Coercion resistance - Report structure requirements: 1. Introduction & Design Choices 2. Analysis & Cryptographic Application 3. Security Properties & Threat Analysis - Post-quantum cryptography (ML-KEM, ML-DSA) requirements - Docker autonomous deployment requirement 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- e-voting-system/openspec/project.md | 59 +++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/e-voting-system/openspec/project.md b/e-voting-system/openspec/project.md index ba9f12e..d9df6c6 100644 --- a/e-voting-system/openspec/project.md +++ b/e-voting-system/openspec/project.md @@ -3,12 +3,30 @@ ## Purpose E-Voting System - A secure electronic voting platform with blockchain-based vote recording, post-quantum cryptography, and real-time election management. Allows users to register, authenticate, and participate in elections through a web-based interface while ensuring vote integrity and transparency through distributed ledger technology. +**Project Definition (Cryptographie Industrielle Avancée):** +Conceive and implement a functional prototype of a secure electronic voting system emphasizing correct application of cryptographic principles to address specific challenges of online voting. + **Key Goals:** - Provide secure, verifiable electronic voting - Ensure vote immutability via blockchain -- Support post-quantum cryptographic algorithms +- Support post-quantum cryptographic algorithms (ML-KEM, ML-DSA) - Enable transparent election results - Maintain voter privacy and authentication +- Address e-voting challenges: fraud prevention, voter intimidation resistance, anonymity preservation +- Implement correct cryptographic mechanisms for vote security + +**Deliverables (Per Project Requirements):** +1. **Complete Source Code & Environment:** + - Full e-voting system source code + - Independently deployable via Docker configuration + - Implemented cryptographic security mechanisms + - Ready for autonomous deployment + +2. **Technical & Scientific Report:** + - Architecture and design approach + - Cryptographic tools explanation and principles + - Security properties and threat analysis + - Application of cryptography to voting system ## Tech Stack @@ -204,7 +222,7 @@ docs: Add comprehensive project status document ## Important Constraints -### Technical +### Technical Requirements - **Password Requirements**: - Minimum 8 characters - At least 1 uppercase letter @@ -214,13 +232,26 @@ docs: Add comprehensive project status document - **Build Output**: Static pre-rendered pages + Node.js server - **Database**: MySQL for production, SQLite for development - **API URL**: Environment variable `NEXT_PUBLIC_API_URL` +- **Docker Deployment**: System must be deployable autonomously via Docker +- **Cryptographic Implementation**: All chosen cryptographic mechanisms must be implemented -### Security +### Security Properties & Design Challenges +**E-Voting Challenges to Address:** +- **Fraud Prevention**: Prevent vote tampering and false result reporting +- **Voter Intimidation Resistance**: Ensure no voter can prove how they voted +- **Anonymity Preservation**: Disconnect voter identity from vote content +- **Vote Integrity**: Guarantee votes cannot be altered after submission +- **Coercion Resistance**: System prevents voter coercion while voting +- **Universal Verifiability**: Anyone can verify election results are correct +- **Voter Verifiability**: Voter can verify their vote was recorded correctly + +**Cryptographic Security:** - **CORS**: Currently allow all origins (restrict to frontend domain in production) - **HTTPS**: Required for production - **HttpOnly Cookies**: Recommended instead of localStorage for production - **Rate Limiting**: Should be implemented on auth endpoints in production - **Audit Logging**: Should be added for compliance +- **Post-Quantum Ready**: Support ML-KEM and ML-DSA algorithms ### Business/Regulatory - **Election Integrity**: Votes must be immutable once recorded @@ -228,6 +259,7 @@ docs: Add comprehensive project status document - **Transparency**: Results and vote counts must be verifiable - **Blockchain**: All votes stored with cryptographic verification - **Compliance**: Consider GDPR and voting regulations +- **Audit Trail**: System must support accountability and verification ### Development - No destructive git commands without explicit user confirmation @@ -235,6 +267,27 @@ docs: Add comprehensive project status document - Preserve working tree cleanly - Test Docker builds before deployment +### Report Structure Requirements +**Technical & Scientific Report Must Include:** + +1. **Introduction & Design Choices** + - Motivation and context (e-voting challenges) + - System architecture (client/server, blockchain-based, mixing servers) + - Justification of technology choices (languages, frameworks, database) + - Detailed voting process (registration to results publication) + +2. **Analysis & Cryptographic Application** + - Fundamental cryptographic tools explanation + - Principles behind chosen algorithms + - Application of cryptography to voting security + - How tools guarantee chosen security properties + +3. **Security Properties & Threat Analysis** + - Voting security properties the system satisfies + - Potential vulnerabilities evaluation + - How design choices (especially cryptographic) address threats + - Resistance to identified threats + ## External Dependencies ### APIs/Services