Skip to content

Standard Encoding

Jonas Resch edited this page Nov 27, 2025 · 1 revision

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

Clone this wiki locally