Skip to content

Hide files and messages inside images with post-quantum encryption. Military-grade steganography using Kyber1024 + ChaCha20 that even quantum computers can't break. Cross-platform desktop app.

License

Notifications You must be signed in to change notification settings

reschjonas/QuantHide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

QuantHide

QuantHide

Post-Quantum Steganography for the Modern Age

Hide files and messages inside ordinary images β€” protected by encryption that even quantum computers can't break.

Release License Downloads Stars

Download Β· Features Β· How It Works Β· Security Β· Build


QuantHide Screenshot

Clean, intuitive interface for military-grade steganography


πŸš€ Quick Start

# 1. Download from releases (or build from source)
# 2. Open QuantHide
# 3. Drag an image β†’ Type your secret β†’ Set password β†’ Click Encode
# 4. Share the image anywhere β€” it looks completely normal

That's it. Your secret is now hidden inside an innocent-looking image, protected by quantum-resistant encryption.


πŸ“₯ Download

Windows
Windows 10/11
Download EXE
Linux
Linux
Download DEB
macOS
macOS 11+
Download DMG

No account required. No data collected. Ever.


✨ Features

πŸ” Quantum-Resistant Encryption

Your data is protected by CRYSTALS-Kyber1024 β€” the encryption algorithm selected by NIST to defend against quantum computer attacks. Combined with ChaCha20-Poly1305 and Argon2id, your secrets are safe for decades.

πŸ–ΌοΈ Hide Anything

  • Text messages β€” Secret notes, passwords, instructions
  • Files up to 4MB β€” Documents, PDFs, archives, any file type
  • Invisible embedding β€” LSB steganography that's undetectable to the human eye

🎭 Plausible Deniability

Decoy Mode: Set two passwords β€” one reveals innocent content, the other reveals the real secret. Even under coercion, you can hand over the decoy password.

Password "vacation2024"  β†’  "Can't wait for the trip!"
Password "r3alP@ssw0rd"  β†’  [Your actual secret]

🧩 Split Across Images

Distribute your secret across 2, 3, or more images. All parts are required to reconstruct the message β€” lose one, and the data is gone forever.

πŸ› οΈ Power User Features

Feature Description
Keyfile Support Add a second authentication factor beyond passwords
Image Comparison Detect if an image contains hidden data
Format Conversion Convert between PNG, JPEG, and WebP
Metadata Stripping Remove EXIF data (GPS, device info, timestamps)
Dark/Light Themes Easy on the eyes, day or night

πŸ”’ Security

The Encryption Stack

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    ENCRYPTION PIPELINE                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                              β”‚
β”‚   Password ──► Argon2id ──► Kyber1024 ──► ChaCha20-Poly1305 β”‚
β”‚                   β”‚            β”‚              β”‚              β”‚
β”‚              64MB RAM     Post-Quantum    Authenticated      β”‚
β”‚              16 passes    Key Exchange    Encryption         β”‚
β”‚                                                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

What You're Protected Against

Threat Protection
Brute Force Argon2id requires 64MB RAM per attempt β€” infeasible at scale
GPU Cracking Memory-hard algorithm defeats parallel processing attacks
Quantum Computers Kyber1024 uses lattice cryptography immune to Shor's algorithm
Statistical Analysis Random padding disrupts detection patterns

Cryptographic Specifications

Component Algorithm Parameters
Key Encapsulation CRYSTALS-Kyber1024 NIST Level 5, 256-bit shared secret
Symmetric Encryption ChaCha20-Poly1305 256-bit key, 96-bit nonce, AEAD
Key Derivation Argon2id 64MB memory, 16 iterations, 4 lanes
Integrity SHA-256 For verification

🎯 How It Works

Encoding

  1. Load a cover image β€” Any PNG, JPEG, or WebP
  2. Enter your secret β€” Text or select a file (up to 4MB)
  3. Set a strong password β€” Strength meter guides you
  4. Click Encode β€” Save your steganographic image

Decoding

  1. Load the encoded image
  2. Enter the password
  3. Click Decode β€” Your secret is revealed

Capacity Guide

Image Resolution Maximum Hidden Data
1920 Γ— 1080 (Full HD) ~760 KB
2560 Γ— 1440 (2K) ~1.3 MB
3840 Γ— 2160 (4K) ~3 MB
4000 Γ— 3000 ~4.3 MB

Formula: (width Γ— height Γ— 3) Γ· 8 bytes


⚠️ Security Best Practices

  1. Use strong, unique passwords β€” Combine with keyfiles for critical data
  2. Never reuse cover images β€” Each image should be used once
  3. Share as PNG β€” JPEG compression destroys hidden data
  4. Use Decoy Mode for sensitive scenarios β€” Always have a plausible cover story
  5. Keep keyfiles separate β€” Store them in a different location than passwords

πŸ—οΈ Building from Source

Prerequisites

  • Node.js 18+
  • Rust 1.70+
  • Tauri CLI 2.0+

Quick Build

# Clone the repository
git clone https://github.com/reschjonas/QuantHide.git
cd QuantHide

# Install dependencies
npm install

# Development mode (with hot reload)
npm run tauri dev

# Production build
npm run tauri build

Build Outputs

Platform Location
Windows src-tauri/target/release/bundle/msi/
Linux src-tauri/target/release/bundle/deb/
macOS src-tauri/target/release/bundle/dmg/

πŸ“ Project Structure

QuantHide/
β”œβ”€β”€ src/                      # Frontend (Vanilla JS)
β”‚   β”œβ”€β”€ index.html            # Application UI
β”‚   β”œβ”€β”€ styles.css            # Theming (dark/light)
β”‚   └── js/
β”‚       β”œβ”€β”€ features/         # encode, decode, decoy, split...
β”‚       └── ui/               # modals, toast, loading...
β”‚
β”œβ”€β”€ src-tauri/                # Backend (Rust)
β”‚   └── src/
β”‚       β”œβ”€β”€ lib.rs            # Tauri command handlers
β”‚       β”œβ”€β”€ crypto.rs         # Kyber + ChaCha20 + Argon2
β”‚       └── stego.rs          # LSB steganography engine
β”‚
└── docs/                     # Documentation & assets

🀝 Contributing

Contributions are welcome! Here's how:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Guidelines

  • Follow existing code style
  • Test on Windows, Linux, and macOS
  • Update documentation for user-facing changes
  • Add tests for cryptographic features

πŸ“œ License

MIT License β€” see LICENSE for details.

Free for personal and commercial use.


πŸ™ Acknowledgments


Made with πŸ” for a quantum-safe future

GitHub Website