A secure and anonymous voting system for high-integrity elections
Features • Setup • Security • Contributing
AVID is a sophisticated voting system designed to uphold voter privacy and data integrity in challenging environments. It addresses critical needs in elections where trust, security, and anonymity are paramount. By leveraging discrete mathematics, advanced cryptographic techniques, and a secure architecture, AVID ensures every vote is counted accurately while maintaining complete voter confidentiality.
- 🛡️ Anonymous Voting under Admin-Level Adversary: Maintains voter anonymity even if system administrators are compromised
- 🔒 Secure Atomic Voting in Hostile Networks: Guarantees vote integrity even in unreliable or malicious network conditions
- 🧮 Discrete Mathematics Framework: Employs mathematical principles to ensure voter anonymity while preserving vote integrity
- 🖥️ Intuitive Interface: Simple experience for both voters and administrators
- 📊 Real-time Results: Secure tallying with instant updates
- ꩜ Biometric Verification: Supports fingerprint recognition for enhanced voter authentication
- 📈 Modular and Scalable Architecture: Accommodates elections of any size
-
Configure Environment Variables:
- Create a
.envfile in the module root directory with the following variables:
PORT=3000 CORS_ORIGIN=http://localhost:8080 DB_NAME=avid_voting DB_USERNAME=your_db_username DB_PASSWORD=your_db_password DB_HOST=localhost ENCRYPTION_KEY=your_encryption_key ENCRYPTION_IV=your_encryption_iv MASTER_SECRET_KEY=your_master_key JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret - Create a
-
Start the Server:
docker compose up --build
-
Configure Environment Variables:
- Create a
.envfile in the module root directory with the following variables:
VITE_BACKEND_URL=http://localhost:3000 VITE_ENCRYPTION_IV=your_encryption_iv - Create a
-
Install Dependencies and Start:
npm i npm run dev
-
Configure Environment:
- Copy the
.envfile to/master-server/src/result
- Copy the
-
Start the Result Module:
npm run result
-
Configure Environment Variables:
- Create a
.envfile with the following variables:
VITE_BACKEND_URL=http://localhost:3000 VITE_ENCRYPTION_IV=your_encryption_iv - Create a
-
Install Dependencies and Start:
npm i npm run dev
AVID implements a sophisticated security approach:
- Discrete Mathematics Foundation: Utilizes mathematical concepts to ensure complete separation between voter identity and ballot content
- Diffie-Hellman Key Exchange: Enables secure communication channels between EVM and the Server with perfect forward secrecy
- AES-256-CBC Encryption: Encrypts all crucial ballot data with military-grade security standards
- Separation of Identity and Votes: Cryptographic Commitment Schemes ensure voting data cannot be linked to voter identities
- Atomic Transactions: All-or-nothing voting operations prevent partial or inconsistent data
- Network Isolation: Resistant to man-in-the-middle attacks
Contributions are welcome! To contribute:
- Fork the repository
- Create a new branch for your feature or bug fix:
git checkout -b feature-name
- Commit your changes and push the branch:
git commit -m "Description of changes" git push origin feature-name - Open a pull request describing your changes
For major changes, please open an issue first to discuss your ideas.
This project is licensed under the MIT License - see the LICENSE file for details.
- Cryptographic protocols based on Diffie-Hellman and AES-256-CBC standards
- Discrete mathematics principles adapted from academic research on anonymous systems
- Special thanks to all contributors who have helped shape this project