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:
parent
6ef4dc851b
commit
7cab4cccf9
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user