demo.mp4
Quantum Resistance Checker is a comprehensive cryptographic security analysis tool designed to evaluate encrypted files and assess their vulnerability to quantum computer attacks. The project consists of two complementary applications: a professional Python desktop application and a modern web-based interface.
This tool helps users understand the quantum computing threat to current encryption standards and provides recommendations for migration to post-quantum cryptographic algorithms.
- Project Description
- Technologies Used
- Key Concepts
- System Architecture
- Installation & Setup
- How to Use
- Scoring Methodology
- Files Included
- Features
- Future Enhancements
Quantum computers pose a significant threat to current encryption methods. Algorithms like RSA and ECC, which are widely used today, can be broken by quantum computers using Shor's algorithm. This project aims to:
- Analyze encrypted files for quantum vulnerability
- Provide security scores based on encryption algorithms
- Recommend migration paths to post-quantum cryptography
- Educate users about quantum computing threats
The Quantum Resistance Checker provides two user interfaces:
- Python Desktop Application - Professional GUI for detailed analysis
- Web Application - Modern, interactive interface accessible in any browser
Both applications use the same core analysis engine to evaluate files and provide actionable security recommendations.
- Python 3.8+ - Primary programming language for the desktop application
tkinter - GUI framework (built-in with Python)
pycryptodome - Cryptographic functions
python-magic - File type detection
os - File operations
json - Data handling
pip install pycryptodome
pip install python-magic- HTML5 - Markup structure
- CSS3 - Styling and animations
- JavaScript (Vanilla) - Interactivity and logic
- No frameworks required - Pure vanilla JavaScript for simplicity
The web application is a single HTML file that runs directly in any modern browser:
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
What is the problem?
- Current encryption (RSA, ECC) relies on mathematical problems that are hard for classical computers
- Quantum computers can solve these problems using Shor's algorithm
- Estimated timeline: Quantum computers capable of breaking RSA by 2030-2040
Why it matters?
- Encrypted data today can be stored and decrypted by quantum computers in the future
- "Harvest now, decrypt later" attacks are a real threat
What is it? Encryption algorithms designed to resist quantum attacks. NIST has standardized:
- KYBER - Key Encapsulation Mechanism (replaces RSA/ECC for key exchange)
- DILITHIUM - Digital Signature Algorithm (replaces RSA/ECC for signing)
- FALCON - Compact digital signatures
Why use them?
- Mathematically hard for both classical AND quantum computers
- NIST-standardized and peer-reviewed
- Ready for implementation today
The tool analyzes encrypted files by examining:
- File Extension - Identifies algorithm from file type
- File Size - Estimates key length and encryption strength
- File Content - Measures entropy (randomness) to confirm encryption
- Metadata - Detects key management practices
Total Score: 0-100
Components (weighted):
-
Algorithm Score (30%) - Type of encryption used
- AES: 28/30 (quantum-safe)
- RSA: 8/30 (vulnerable)
- Post-Quantum: 30/30 (best)
-
Key Length Score (40%) - Strength of encryption keys
- Longer keys = higher scores
- Proper key management = bonus points
-
File Type Score (20%) - Modernness of encryption format
- Modern formats (.7z, .gpg): 18/20
- Legacy formats (.rar, .pem): 10/20
-
Entropy Score (10%) - Randomness of encrypted data
- High entropy = properly encrypted
Risk Levels:
- π’ Low Risk (80-100): Excellent quantum resistance
- π‘ Medium Risk (60-80): Good quantum resistance
- π High Risk (40-60): Vulnerable but acceptable
- π΄ Critical Risk (0-40): Very vulnerable to quantum attacks
QuantumChecker/
βββ main.py # Main GUI application
βββ quantum_scorer.py # Analysis engine
βββ quantum_recommendations.py # Recommendations engine
βββ requirements.txt # Dependencies
βββ README.md # Documentation
- Purpose: Tkinter GUI interface
- Functions:
select_file()- File selection dialoganalyze_file()- Single file analysisanalyze_multiple_files()- Batch analysisshow_recommendations()- Display security advicesave_results()- Export analysis to file
- Purpose: Core analysis logic
- Functions:
analyzeFile(fileName)- Analyze single filescore_by_algorithm(algorithm)- Algorithm scoringscore_by_key_length(fileSize, fileExtension)- Key strength scoringscore_by_file_type(fileExtension)- Format scoringcalculate_quantum_vulnerability_score(filePath)- Main scoring function
- Database:
ENCRYPTION_DATABASE- 20+ file types with encryption info
- Purpose: Generate security recommendations
- Functions:
get_recommendations(algorithm, score)- Get recommendations for algorithmget_batch_recommendations(resultsList)- Recommendations for multiple files
- Data: Migration strategies, alternatives, timelines
QuantumChecker.html
βββ HTML Structure
β βββ Header (title, subtitle)
β βββ Upload Area (file selection)
β βββ Results Display
βββ CSS Styling
β βββ Dark theme
β βββ Responsive design
β βββ Interactive animations
βββ JavaScript Logic
βββ Algorithm Database
βββ Analysis Engine
βββ Recommendation Engine
βββ UI RenderinganalyzeFile(fileName)- File analysishandleAnalyze()- Trigger analysisgetRiskClass(score)- Color codinggetRecommendations(algorithm)- Security advicerender()- UI update
Requirements:
- Python 3.8 or higher
- Windows, macOS, or Linux
Steps:
-
Install Python
# Windows: Download from https://python.org # macOS: brew install python3 # Linux: sudo apt-get install python3
-
Install Dependencies
cd QuantumChecker pip install -r requirements.txt -
Run the Application
python main.py
requirements.txt:
pycryptodome==3.18.0
python-magic==0.4.27
tkinter # Usually comes with Python
Requirements:
- Any modern web browser
- No installation needed!
Steps:
- Download
QuantumChecker.html - Double-click to open in browser
- Start analyzing files immediately!
Browser Compatibility:
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
-
Run the program
python main.py
-
Click "π Select Single File"
-
Browse and select an encrypted file
- Examples:
.gpg,.zip,.kyber,.key,.pem
- Examples:
-
Click "π Analyze File"
-
View Results
- Quantum Resistance Score (0-100)
- Algorithm detected
- Quantum safe status
- Risk level assessment
- Score breakdown by component
-
View Recommendations (Optional)
- Click "π‘ Recommendations"
- See migration strategy
- Read why this matters
- Get action steps
-
Save Results (Optional)
- Click "πΎ Save Results"
- Choose location
- Results saved as
.txtfile
-
Click "π Select Multiple Files"
-
Select 2 or more encrypted files
-
Click "π Analyze Multiple"
-
View Comparison
- Total files analyzed
- Average security score
- Best and worst scores
- Security ranking (sorted)
-
View Portfolio Recommendations
- Critical files count
- Migration timeline
- Recommended actions
-
Open
QuantumChecker.htmlin browser -
Choose Analysis Mode
- "Single File" - Analyze one file
- "Multiple Files" - Compare security
-
Upload Files
- Click upload area
- Select encrypted files
- Files listed below
-
Click "π Analyze"
-
View Results
- Detailed security analysis
- Risk badges with colors
- Score breakdown with bars
-
View Recommendations (for Single File)
- Click "π‘ View Recommendations"
- Read why it matters
- See action steps
The tool recognizes 20+ encryption file types:
{
'.gpg': 'RSA/PGP',
'.zip': 'AES',
'.key': 'RSA/ECC',
'.kyber': 'Kyber (Lattice)',
'.pem': 'RSA/ECC',
'.7z': 'AES-256',
# ... and more
}Formula:
Total Score = Algorithm Score + Key Length Score + File Type Score + Entropy Score
= (out of 30) + (out of 40) + (out of 20) + (out of 10)
= 0-100
Example 1: RSA-encrypted file (.gpg)
Algorithm Score: 8/30 (RSA is vulnerable)
Key Length Score: 10/40 (Likely 1024-bit or 2048-bit)
File Type Score: 10/20 (Legacy format)
Entropy Score: 5/10 (Standard encrypted data)
βββββββββββββββββββββββββ
Total Score: 33/100 (CRITICAL RISK)
Example 2: AES-encrypted file (.zip)
Algorithm Score: 28/30 (AES is quantum-safe)
Key Length Score: 25/40 (AES-256, modern strength)
File Type Score: 18/20 (Modern format)
Entropy Score: 5/10 (Properly encrypted)
βββββββββββββββββββββββββ
Total Score: 76/100 (MEDIUM RISK)
Example 3: Post-quantum file (.kyber)
Algorithm Score: 30/30 (Post-quantum, NIST-standard)
Key Length Score: 30/40 (Kyber uses lattice problems)
File Type Score: 18/20 (Modern format)
Entropy Score: 5/10 (Properly encrypted)
βββββββββββββββββββββββββ
Total Score: 83/100 (LOW RISK)
| File | Purpose | Language | Lines |
|---|---|---|---|
main.py |
GUI Application | Python | ~430 |
quantum_scorer.py |
Analysis Engine | Python | ~150 |
quantum_recommendations.py |
Recommendations | Python | ~280 |
requirements.txt |
Dependencies | Text | 3 |
README.md |
Documentation | Markdown | - |
| File | Purpose | Language | Size |
|---|---|---|---|
QuantumChecker.html |
Complete web app | HTML/CSS/JS | ~20KB |
Total Lines of Code:
- Python: ~860 lines
- Web: ~700 lines (HTML/CSS/JS)
- Total: ~1,560 lines
-
β File Analysis
- Detects encryption algorithm from file
- Estimates key strength
- Measures data entropy
- Analyzes file metadata
-
β Security Scoring
- 0-100 scale
- Weighted components
- Color-coded risk levels
- Visual progress bars
-
β Single File Analysis
- Detailed algorithm info
- Quantum safe status
- Component breakdown
- Risk assessment
-
β Multiple File Comparison
- Analyze 2+ files simultaneously
- Security ranking (sorted)
- Average score calculation
- Portfolio overview
-
β Recommendations Engine
- Algorithm-specific advice
- Why threats matter
- Action steps (5+ steps)
- Migration timeline
- Post-quantum alternatives
-
β Dark/Light Mode
- Toggle in web version
- Eye-friendly interface
- Responsive design
- β Professional GUI with tkinter
- β Real-time file monitoring
- β
Save results to
.txtfile - β UTF-8 encoding support
- β Error handling & validation
- β Multiple file batch processing
- β Single HTML file (no dependencies)
- β Works offline
- β Works in all modern browsers
- β Responsive mobile-friendly design
- β Smooth animations
- β No installation required
- Export to PDF reports
- Create charts/graphs for scores
- Support for more file types (50+)
- Actual file encryption detection (not just extension)
- Machine learning-based algorithm detection
- Database of known encryption software
- Real-time file monitoring
- Integration with password managers
- API for third-party tools
- Command-line interface (CLI)
- Mobile app (React Native)
- Hardware security module (HSM) detection
- Quantum simulator to show Shor's algorithm
- Virtual lab for encryption concepts
- Integration with security scanning tools
- Enterprise licensing
- Compliance reporting (NIST, FIPS)
- Multi-language support
Quantum computers use quantum bits (qubits) instead of regular bits. Unlike regular bits (0 or 1), qubits can be both 0 AND 1 simultaneously (superposition). This allows them to solve certain mathematical problems much faster.
A quantum algorithm discovered by Peter Shor in 1994 that can:
- Crack RSA encryption in polynomial time
- Break ECC in polynomial time
- Factor large numbers exponentially faster than classical computers
RSA Encryption:
- Based on factoring large numbers into prime factors
- Very hard for classical computers (takes thousands of years)
- Easy for quantum computers using Shor's algorithm (minutes)
- Used for: Email, banking, HTTPS
AES Encryption:
- Based on substitution and permutation operations
- Hard for both classical AND quantum computers
- Quantum computers only get a modest speedup
- Used for: File encryption, disk encryption, messaging apps
Lattice Problems:
- Based on shortest vector problem in lattices
- Hard for both classical AND quantum computers
- Even quantum computers can't solve efficiently
- NIST has standardized lattice algorithms (Kyber, Dilithium)
- Shor, P. W. (1997). "Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer"
- National Institute of Standards and Technology (2022). "Post-Quantum Cryptography Standardization"
- NIST Post-Quantum Cryptography Project
- FIPS 203 (Kyber)
- FIPS 204 (Dilithium)
- FIPS 205 (SPHINCS+)
- Python Cryptography Community (PyCryptodome)
- tkinter Documentation
- NIST Cybersecurity Resource Center
This project is provided for educational purposes. Feel free to modify and distribute.
Project Status: β Complete and Functional
Version: 1.0.0
Last Updated: October 2025
For Questions:
- Review this README
- Check the code comments
- Test with the included example files
- Refer to NIST resources for quantum cryptography
Quantum Resistance Checker is a comprehensive educational tool that:
- β Analyzes encrypted files
- β Scores quantum vulnerability (0-100)
- β Provides security recommendations
- β Educates about quantum threats
- β Offers migration guidance
- β Works offline (web version)
- β No installation needed (web version)
- β Professional and modern interface
Perfect for: Cybersecurity students, IT professionals, security researchers, and anyone concerned about post-quantum cryptography.