BIT-PLANE COMPLEXITY STEGANOGRAPHY Joseph Szigeti (source list) OVERVIEW Why BPCS was developed How it works Several implementations Kawaguchi, Eason Beaullieu, Crissey, Smith Stoleru Results Possible improvements STEGANOGRAPHY Hiding a secret message by embedding it in data Different from: Cryptography Scrambling a secret message such that the message is not hidden, but simply unreadable Watermarking Embedding copyright/ownership information inside data BIT-PLANE COMPLEXITY STEGANOGRAPHY BPCS Invented by Eiji Kawaguchi and Richard Eason in 1997 Kyushu Institute of Technology University of Maine Created because traditional forms of steganography were limited in informationhiding capacity Estimated at ≤10% OLD STEGANOGRAPHY VS. BPCS Old stego. Replace small frequency components of vessel data Replace LSB of vessel data BPCS Separate vessel into bit-planes Replace noisy regions in bit-planes with secret data Does not deteriorate quality Works because of limitations in human vision VISUALIZATION OF BPCS VISUALIZATION OF BPCS KAWAGUCHI & EASON’S FINDINGS Information-hiding capability is ≈50% Sharpening operations on vessel image increase embedding capacity significantly Canonical Gray coded bit-planes are better than binary bit-planes Randomization of the secret data by a compression operation makes the embedded data even harder to spot BPCS will never be overwriting the same bitplanes the same way from image to image CANONICAL GRAY VS. PURE BINARY Goal of BPCS is to maximize space in an image that can be used for data hiding PBC More space (noisier) Runs into “Hamming Cliff” problem Small change in color affects many bits CGC Flat regions stay flat at lower planes Does not have Hamming Cliffs Allows for more intelligent embedding CGC VS PBC EXAMPLE PBC difference between 127 and 128 0111 1111 1000 0000 CGC difference between 127 and 128 0100 0000 1100 0000 CGC VS PBC EXAMPLE IMAGE COMPLEXITY Length of black-and-white border in a binary image is used to measure complexity Length determined by number of color changes along the rows and columns in an image Image complexity α α = border length / max possible B-W changes 0≤α≤1 In BPCS, α is measured on a local level Small pixel areas, as opposed to entire image ANALYSIS OF NOISY REGIONS Conjugation α(P*) = 1 – α(P) Complexity of P* is symmetric to P about α=0.5 If the data is informative, it must be conjugated before embedding into vessel image ANALYSIS OF NOISY REGIONS Create a complexity distribution of vessel image Find point at which embedding data is viable e.g. α = 0.5 ± k*σ k is some constant σ is some deviation Not viable Viable ANALYSIS OF NOISY REGIONS Kawaguchi and Eason have determined that there is often a majority of noise-like 8x8 binary patterns In the previous example, 6.67x10-14% were simple This is where BPCS gets its effectiveness compared to LSB steganography KAWAGUCHI & EASON IMPLEMENTATION Transform vessel image from PBC to CGC Segment bit-planes into informative and noisy regions using threshold value (e.g. α0=0.3) Group bytes of secret file into secret blocks If a block (S) is less complex than threshold (α0), conjugate it Embed each secret block into noisy regions of the bit-planes Record conjugated blocks in conjugation map Embed conjugation map with secret blocks Convert vessel image back to PBC KAWAGUCHI & EASON IMPLEMENTATION Data to hide: RESULTS Image with a lot of flat regions RESULTS Image with few flat regions MODIFIABLE ALGORITHM PARAMETERS Embedding location of secret file headers Embedding threshold α0 Sequence in which 8x8 regions are considered for embedding Encoding of conjugation map Special operations XOR of header bytes with pseudo-random numbers Encryption parameters of secret files Compression parameters of secret files REGION SELECTION SEQUENCE Demonstrated by Steve Beaullieu, Jon Crissey, Ian Smith UTSA Regions for embedding are considered from the bottom left to the top right This could be modified if a particular image warranted it CONT. Starting the embedding process from the LSB is another option to make the image more convincing Alternatively, change parameter for complexity with each plane FURTHER IMPROVEMENTS Determining complexity using run length irregularity or border noisiness Randomly distribute data As opposed to number of borders As opposed to linearly, from one bit plane to next Encrypting data before embedding it PROBLEMS WITH BPCS Bit operations after embedding data may make data unrecoverable Not robust Complexity histogram of vessel image will be noticeably different APPLICATIONS Secrecy Embedding data publicly Without discernably altering quality of vessel Applying bit plane algorithms to files other than PBC images MULTIPLE-IMAGE SCHEME (D. STOLERU) MULTIPLE-IMAGE SCHEME MORE EXAMPLES MORE EXAMPLES SOURCES http://www.datahide.com/BPCSe/principle-e.html http://www.eece.maine.edu/~eason/steg/SPIE98.p df http://www.ianrichard.com/bpcs/abstract.pdf http://www.ijest.info/docs/IJEST10-02-09-173.pdf http://drdobbs.com/security/201804177