The Digital Signature System ensures the authenticity, integrity, and security of digital documents using SHA-256 hashing and RSA encryption. It allows users to sign and verify documents, ensuring they remain unaltered.
- ✅ Secure Hashing (SHA-256): Creates a cryptographic hash of documents.
- ✅ Digital Signature Generation: Signs the document using RSA encryption.
- ✅ Signature Verification: Confirms authenticity and detects modifications.
- ✅ Base64 Encoding Support: Provides encoded versions of signatures.
- ✅ Comprehensive Logging: Logs all signing and verification activities.
digital-signature-system/
│── images/ # Contains project-related images
│── output/ # Stores generated outputs
│ ├── keys/ # RSA Key Pair storage
│ │ ├── confidential_document_modified.txt
│ │ ├── confidential_document.txt
│ │ ├── confidential_document.txt.sig
│ │ ├── confidential_document.txt.sig.b64
│ ├── secret_plans.pdf
│ ├── secret_plans.pdf.sig
│ ├── secret_plans.pdf.sig.b64
│ ├── signature_info.log # Logs signing & verification activities
│── report/ # Stores reports
│ ├── digital_signature_system.pdf
│── .gitignore # Ignores unnecessary files in Git
│── digital_sig_sys.ipynb # Jupyter Notebook implementation
│── README.md # Project documentation
git clone https://github.com/neuralnouman/digital-signature-system.git
cd digital-signature-system
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
pip install -r requirements.txt
Since all functionality is implemented in Jupyter Notebook, follow these steps:
- Launch Jupyter Notebook
jupyter notebook
- Open
digital_sig_sys.ipynb
- Run all cells sequentially to:
- Generate keys
- Sign documents
- Verify signatures
- Detect modifications
- SHA-256 is collision-resistant, ensuring secure hashing.
- RSA encryption ensures authenticity, preventing unauthorized alterations.
- Any modification to the document results in verification failure.
This project is licensed under the MIT License. See LICENSE for details.
- Fork the repository.
- Create a feature branch:
git checkout -b feature-branch
- Commit changes:
git commit -m "Added new feature"
- Push to your fork:
git push origin feature-branch
- Submit a Pull Request.
👤 Muhammad Nouman Hafeez
📍 FAST NUCES, Islamabad
📧 noumanhafeez.nh11@gmail.com
🔗 GitHub Profile
🔗 LinkedIn Profile