Steganography Nathan Shirley
Any attempt to hide information
Ancient Steganography Greece – head tattoos France – Tattoos on Messenger's backs Mixing Fonts – printing presses Micro Dots – Small ink dots Jeremiah Denton – POW Morse Code with his eyes on international tv http://www.encyclopediaofalabama.org/article/h-2969 https://en.wikipedia.org/wiki/Histiaeus https://en.wikipedia.org/wiki/Steganography
Digital Steganography Most Common - Images, Video, and Sound files (lowest bit) Printers – Use small yellow dots to encode serial number and timestamp Delays in network packets https://www.eff.org/issues/printers https://en.wikipedia.org/wiki/Steganography
Lowest Bit Steganography Pixels represented by 32 bits 8 for each: Red Green Blue Alpha 32 Bit Format: 0xAARRGGBB If we flip the lowest bit (or two) it will only change the value by 1/256th
Lowest Bit Steganography Bits available to store information: Lowest Bit 0000 0000 0000 0000 0000 0000 0000 0000 Lowest 2 Bits
Viewing only the 2 least significant bits Basic Example Viewing only the 2 least significant bits Original Image https://en.wikipedia.org/wiki/Steganography#/media/File:Steganography_original.png
Stegosaurus (Steganography Tool)
The Secret Data 14 KB of Christmas ASCII Art
Before and After Adding Data SteganographySimple.java
LSB Before and After LSBViewer.java
Diff between images ImageDiff.java
New Method Randomize Position of Points using SHA1 based PRNG to generate random x and y coords Store Hash Map of all previously “used” bits to prevent collisions In the case of a collision, skip that point and generate the next
Basically Connect the Dots
New Method Before and After SteganographyAdvanced.java
New Method LSB LSBViewer.java
New Method Diff ImageDiff.java
The New Secret Data 140 KB of NMAP man pages
Disadvantages: Adding too much Data 140 KB – NMAP man page Original Simple Sequential Connect The Dots
GitHub https://github.com/natethegreat2525/Stegosaurus/
Demo