-
Notifications
You must be signed in to change notification settings - Fork 0
Standard Encoding
Jonas Resch edited this page Nov 27, 2025
·
1 revision
Standard encoding is the primary method for hiding data within images using QuantHide's post-quantum cryptography.
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Your Data │ -> │ Encryption │ -> │ Steganography│ -> Encoded Image
│ (text/file) │ │ (Kyber1024) │ │ (LSB) │
└─────────────┘ └──────────────┘ └─────────────┘
-
Data Preparation
- Text messages are UTF-8 encoded
- Files are read as binary data
- Metadata (filename, size) is preserved for files
-
Encryption
- Password → Argon2id → Key derivation
- Kyber1024 encapsulation generates session key
- ChaCha20-Poly1305 encrypts the data
- Random padding added for security
-
Embedding
- Encrypted data converted to bits
- LSB (Least Significant Bit) encoding into image pixels
- EXIF metadata stripped from output
-
Load Cover Image
- Drag & drop or click to select
- Supported: PNG, JPEG, BMP, WebP
- Larger images = more capacity
-
Enter Your Message
- Type in the message panel
- Or switch to "File" tab to embed a file
-
Set Password
- Strong password recommended
- Same password needed for decoding
-
Click Encode
- Wait for processing
- Save the resulting PNG image
- Load cover image (same as above)
- Click File tab in message panel
- Click Select File or drag & drop
- Set password
- Click Encode
| Image Type | Recommendation |
|---|---|
| Photos | ✅ Excellent - natural noise hides data well |
| Screenshots | |
| Solid colors | ❌ Poor - changes more visible |
| Small images | ❌ Limited capacity |
- Minimum: 12 characters
- Recommended: 16+ characters
- Include: uppercase, lowercase, numbers, symbols
- Avoid: dictionary words, personal info
- Always PNG - lossless compression preserves hidden data
- Original dimensions - image size unchanged
- No EXIF data - metadata stripped for privacy
- Slightly larger file - due to PNG encoding
The amount of data you can hide depends on:
Capacity = (Width × Height × 3 channels × bits_per_channel) / 8 bytes
Example for a 1920×1080 image with 2 bits per channel:
1920 × 1080 × 3 × 2 / 8 = 1,555,200 bytes ≈ 1.48 MB
Note: Actual usable capacity is lower due to encryption overhead (~500 bytes for headers and authentication).
- Use a larger cover image
- Reduce message/file size
- Try Split Encoding for large files
- Check image format is supported
- Ensure image isn't corrupted
- Try a different cover image
- Use high-resolution photos
- Avoid already-compressed images
- PNG sources work best