290 likes | 471 Views
High-capacity Reversible Data-hiding for LZW Codes. Chair Professor Chin-Chen Chang Feng Chia University National Chung Cheng University National Tsing Hua University http://msn.iecs.fcu.edu.tw/~ccc. Outline. Information Hiding Lempel-Ziv-Welch compression The proposed scheme
E N D
High-capacity Reversible Data-hiding for LZW Codes Chair Professor Chin-Chen Chang Feng Chia University National Chung Cheng University National Tsing Hua University http://msn.iecs.fcu.edu.tw/~ccc
Outline • Information Hiding • Lempel-Ziv-Welch compression • The proposed scheme • Experimental results • Conclusions
Receiver Reconstructed Information Lincoln's Gettysburg Address Fourscore and seven years ago our fathers brought forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battlefield of that war. We have come to dedicate a portion of that field as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this. Compression code<1><2><3><2>… Secret data: 011 Information Hiding Sender Compression Code: <1><2><3><2>… Cover Information Lincoln's Gettysburg Address Fourscore and seven years ago our fathers brought forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battlefield of that war. We have come to dedicate a portion of that field as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this. Secret data: 011
Lempel-Ziv-Welch (LZW) compression Encode the string a b a b b a a b b b a a a b b b LZW
ab is not in the Dictionary, and inserted as new symbol output prefix Code(a) = 1 as LZW compression code last character b is remained for next symbol LZW encoding rule Encode the stringa b a b b a a b b b a a a b b b
output prefix Code(a)=1 Output <1> LZW encoding Encode the stringa b a b b a a b b b a a a b b b ab is not in the Dictionary, and inserted as new symbol
output prefix Code(b)=2 Output <1><2> LZW encoding Encode the stringa b a b b a a b b b a a a b b b ba is not in the Dictionary, and inserted as new symbol
output prefix Code(ab)=3 Output <1><2><3> LZW encoding Encode the stringa b a b b a a b b b a a a b b b abb is not in the Dictionary, and inserted as new symbol
output prefix Code(ba)=4 Output <1><2><3><4> LZW encoding Encode the stringa b a b b a a b b b a a a b b b baa is not in the Dictionary, and inserted as new symbol
output prefix Code(abb)=5 Output <1><2><3><4><5> LZW encoding Encode the stringa b a b b a a b b b a a a b b b abbb is not in the Dictionary, and inserted as new symbol
output prefix Code(baa)=6 Output <1><2><3><4><5><6> LZW encoding Encode the stringa b a b b a a b b b a a a b b b baaa is not in the Dictionary, and inserted as new symbol
final output Code(abbb)=7 Output <1><2><3><4><5><6><7> LZW encoding Encode the stringa b a b b a a b b b a a a b b b
New symbol = previous output || a = baa LZW decoding rule Decode the string<1><2><3><4><5><6><7> Output ababbaabbbaaabbb Output Symbol(5)= abb
Initial output Symbol(1)=a Symbol(2)=b Insert symbol ab LZW decoding Decode the string<1><2><3><4><5><6><7> Output ab
New symbol = b || a LZW decoding Decode the string<1><2><3><4><5><6><7> Output abab Output Symbol(3)= ab
New symbol = ab || b LZW decoding Decode the string<1><2><3><4><5><6><7> Output ababba Output Symbol(4)= ba
New symbol = ba || a LZW decoding Decode the string<1><2><3><4><5><6><7> Output ababbaabb Output Symbol(5)= abb
New symbol = abb || b LZW decoding Decode the string<1><2><3><4><5><6><7> Output ababbaabbbaa Output Symbol(6)= baa
New symbol = baa || a LZW decoding Decode the string<1><2><3><4><5><6><7> Output ababbaabbbaaabbb Output Symbol(7)= abbb
The proposed scheme (1/5) Cover LZWdecoder LZWcompressioncode Cover Cover HCDH-LZWhiding scheme HCDH-LZWextracting scheme Secret Secret
Hiding phase Hiding concept : shrink prefix sp to hide secret n = length of sphide d = log2nbits in this LZW compression code Hiding rulev = value of d-bit secretsif v = 0, not change prefix spelse shrink prefix sp by v characters The proposed scheme (2/5)
The proposed scheme (3/5) • Example: Encode the stringa b a b b a a b b b a a a b b b prefix sp =a b n = 2hide d = log2n= 1 bit If secret bit =0, v=0 and not change prefix sp =a bIf secret bit =1, v=1 and prefix sp= a Output <3> b <1>
Extracting phase Extracting concept : count decoded characters from following LZW compression code to extract secret sp’ = decompressed symbol of LZW code,c1c2c3… are the decoded string of following LZW codes Extracting ruleif sp’|| c1c2c3..cv’ exists in the dictionary,length of secret = log2n, n=length of sp’|| c1c2c3..cv’and secret bits = binary form of v’ The proposed scheme (4/5)
Example: sinceb aexists in the dictionary,length of secret = log2n =1, n=length of ba=2 v’= 1and secret bits = binary form of v’ = 1 The proposed scheme (5/5) Decode the string<1><2><3><2><1><5><2> Output ababbaabb sp’= b aabbis the decoded string of following LZW codes
Simulation • Cover message: “ababbaabbbaaabbb” Secret message: “0101000”
Conclusions • Hide secrets in LZW compression codes • High hiding-capacity • Transmission codes still LZW compression codes • Recovering cover information do not need extra message, like location map