docs: Add project requirements from Projet.pdf to openspec

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 <noreply@anthropic.com>
This commit is contained in:
Alexis Bruneteau 2025-11-06 17:51:56 +01:00
parent 6ef4dc851b
commit 7cab4cccf9

View File

@ -3,12 +3,30 @@
## Purpose ## 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. 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:** **Key Goals:**
- Provide secure, verifiable electronic voting - Provide secure, verifiable electronic voting
- Ensure vote immutability via blockchain - Ensure vote immutability via blockchain
- Support post-quantum cryptographic algorithms - Support post-quantum cryptographic algorithms (ML-KEM, ML-DSA)
- Enable transparent election results - Enable transparent election results
- Maintain voter privacy and authentication - 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 ## Tech Stack
@ -204,7 +222,7 @@ docs: Add comprehensive project status document
## Important Constraints ## Important Constraints
### Technical ### Technical Requirements
- **Password Requirements**: - **Password Requirements**:
- Minimum 8 characters - Minimum 8 characters
- At least 1 uppercase letter - At least 1 uppercase letter
@ -214,13 +232,26 @@ docs: Add comprehensive project status document
- **Build Output**: Static pre-rendered pages + Node.js server - **Build Output**: Static pre-rendered pages + Node.js server
- **Database**: MySQL for production, SQLite for development - **Database**: MySQL for production, SQLite for development
- **API URL**: Environment variable `NEXT_PUBLIC_API_URL` - **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) - **CORS**: Currently allow all origins (restrict to frontend domain in production)
- **HTTPS**: Required for production - **HTTPS**: Required for production
- **HttpOnly Cookies**: Recommended instead of localStorage for production - **HttpOnly Cookies**: Recommended instead of localStorage for production
- **Rate Limiting**: Should be implemented on auth endpoints in production - **Rate Limiting**: Should be implemented on auth endpoints in production
- **Audit Logging**: Should be added for compliance - **Audit Logging**: Should be added for compliance
- **Post-Quantum Ready**: Support ML-KEM and ML-DSA algorithms
### Business/Regulatory ### Business/Regulatory
- **Election Integrity**: Votes must be immutable once recorded - **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 - **Transparency**: Results and vote counts must be verifiable
- **Blockchain**: All votes stored with cryptographic verification - **Blockchain**: All votes stored with cryptographic verification
- **Compliance**: Consider GDPR and voting regulations - **Compliance**: Consider GDPR and voting regulations
- **Audit Trail**: System must support accountability and verification
### Development ### Development
- No destructive git commands without explicit user confirmation - No destructive git commands without explicit user confirmation
@ -235,6 +267,27 @@ docs: Add comprehensive project status document
- Preserve working tree cleanly - Preserve working tree cleanly
- Test Docker builds before deployment - 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 ## External Dependencies
### APIs/Services ### APIs/Services