Harnessing nonlinear dynamical systems (Arnold Cat Map & Henon Map) to achieve confusion and diffusion for robust image encryption.
Modern multimedia systems demand strong protection of visual data. Conventional ciphers struggle with large, high-correlation image datasets. This project applies chaos theory to craft encryption that is:
- Highly sensitive to initial conditions (keys)
- Pseudo-random and structure-destroying
- Resistant to statistical, brute-force, and differential attacks
This project uses the Arnold Cat Map transformation defined as:
and the Henon map:
- Load square image (pad if needed).
- Apply matrix transform iteratively (key-driven iteration count).
- Output permuted image (cipher stage 1).
- Decrypt by inverse iteration (same count).
- Initialize (x_0, y_0, a, b) ⇒ secret key set.
- Iterate to produce chaotic float sequence.
- Scale & quantize to 8-bit mask array matching image dimensions.
- XOR original / permuted image with mask ⇒ ciphertext.
- Regenerate mask with identical key to reverse XOR.
| Technique | Confusion | Diffusion | Key Sensitivity | Histogram Resistance | Speed |
|---|---|---|---|---|---|
| Arnold Cat Map | ✅ High | ✅ High | 🚀 Fast | ||
| Henon Map | ✅ High | ✅ High | ✅ High | ✅ Strong | ⏱️ Medium |
Note
Combining both (permutation + masking) forms a hybrid cipher with layered security.
- Arnold Cat alone keeps pixel values intact ⇒ vulnerable to statistical analysis if iteration count is small.
- Henon-based XOR alters value distribution ⇒ stronger entropy & flatter histograms.
- Parameter/key perturbations (1e-12 scale) yield dramatically different outputs.
- Chaotic dynamics naturally embed unpredictability + sensitivity ⇒ ideal cryptographic primitives.
- Multi-map or multi-phase designs (e.g., Cat → Henon → Diffusion pass) can mitigate singular weaknesses.
- Practical for real-time (low-latency) encryption in surveillance / telemedicine when optimized.
| Map | Primary Secret Components | Expansion Strategy |
|---|---|---|
| Cat | Iteration count k, image size N | Combine with dynamic iteration schedule |
| Henon | a, b, x0, y0, sequence length | Derive per-session seeds via KDF |

