# Standard Encoding Standard encoding is the primary method for hiding data within images using QuantHide's post-quantum cryptography. ## How It Works ``` ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ Your Data │ -> │ Encryption │ -> │ Steganography│ -> Encoded Image │ (text/file) │ │ (Kyber1024) │ │ (LSB) │ └─────────────┘ └──────────────┘ └─────────────┘ ``` ### Step-by-Step Process 1. **Data Preparation** - Text messages are UTF-8 encoded - Files are read as binary data - Metadata (filename, size) is preserved for files 2. **Encryption** - Password → Argon2id → Key derivation - Kyber1024 encapsulation generates session key - ChaCha20-Poly1305 encrypts the data - Random padding added for security 3. **Embedding** - Encrypted data converted to bits - LSB (Least Significant Bit) encoding into image pixels - EXIF metadata stripped from output ## Usage ### Encoding a Message 1. **Load Cover Image** - Drag & drop or click to select - Supported: PNG, JPEG, BMP, WebP - Larger images = more capacity 2. **Enter Your Message** - Type in the message panel - Or switch to "File" tab to embed a file 3. **Set Password** - Strong password recommended - Same password needed for decoding 4. **Click Encode** - Wait for processing - Save the resulting PNG image ### Encoding a File 1. Load cover image (same as above) 2. Click **File** tab in message panel 3. Click **Select File** or drag & drop 4. Set password 5. Click **Encode** ## Best Practices ### Choosing a Cover Image | Image Type | Recommendation | |------------|----------------| | **Photos** | ✅ Excellent - natural noise hides data well | | **Screenshots** | ⚠️ Okay - less natural variation | | **Solid colors** | ❌ Poor - changes more visible | | **Small images** | ❌ Limited capacity | ### Password Guidelines - **Minimum**: 12 characters - **Recommended**: 16+ characters - **Include**: uppercase, lowercase, numbers, symbols - **Avoid**: dictionary words, personal info ## Output Format - **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 ## Capacity 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). ## Troubleshooting ### "Image too small for data" - Use a larger cover image - Reduce message/file size - Try Split Encoding for large files ### "Encoding failed" - Check image format is supported - Ensure image isn't corrupted - Try a different cover image ### Quality concerns - Use high-resolution photos - Avoid already-compressed images - PNG sources work best ## See Also - [Encryption Details](Encryption-Details.md) - [Capacity Calculator](Capacity-Calculator.md) - [Split Encoding](Split-Encoding.md) - [Best Practices](Best-Practices.md)