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
|
## 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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user