From: couchot Date: Sat, 14 Feb 2015 15:39:07 +0000 (+0100) Subject: ajout de emb et de dec X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/canny.git/commitdiff_plain/7aeb1ab6cc41dd51a6dbe4c844c8983809205186?ds=sidebyside;hp=--cc ajout de emb et de dec --- 7aeb1ab6cc41dd51a6dbe4c844c8983809205186 diff --git a/biblioand.bib b/biblioand.bib index b1d4b0b..d37cf9d 100644 --- a/biblioand.bib +++ b/biblioand.bib @@ -591,9 +591,8 @@ language={English} @inproceedings{conf/wifs/HolubF12, added-at = {2013-01-23T00:00:00.000+0100}, author = {Holub, Vojtech and Fridrich, Jessica J.}, - biburl = {http://www.bibsonomy.org/bibtex/2a685b4b8b521ac99734fb52c064ca994/dblp}, - booktitle = {WIFS}, - crossref = {conf/wifs/2012}, + booktitle = {2012 {IEEE} International Workshop on Information Forensics and Security, Tenerife, Spain}, + month = dec, ee = {http://dx.doi.org/10.1109/WIFS.2012.6412655}, interhash = {cbef658a6868216eef585dd759ae0668}, intrahash = {a685b4b8b521ac99734fb52c064ca994}, @@ -610,6 +609,7 @@ language={English} + @article{FillerJF11, author = {Tom{\'a}s Filler and Jan Judas and diff --git a/complexity.tex b/complexity.tex index 7dce9c6..db1609f 100644 --- a/complexity.tex +++ b/complexity.tex @@ -23,8 +23,8 @@ which is at least in $\theta(343)$, and an overall distance between these metrics, which is in $\theta(686)$. Computing the distance is thus in $\theta(2\times 343^2)$ and this modification is thus in $\theta(2\times 343^2 \times n^2)$. -Ranking these results may be achieved with an insertion sort, which is in -$2 \times n^2 \ln(n)$. +Ranking these results may be achieved with a quick sort, which is in +$\theta(2 \times n^2 \ln(n))$ for data of size $n^2$. The overall complexity of the pixel selection is finally $\theta(n^2 +2 \times 343^2 + 2\times 343^2 \times n^2 + 2 \times n^2 \ln(n))$, \textit{i.e}, $\theta(2 \times n^2(343^2 + \ln(n)))$. diff --git a/dec.eps b/dec.eps new file mode 100644 index 0000000..29d77e4 --- /dev/null +++ b/dec.eps @@ -0,0 +1,662 @@ +%!PS-Adobe-3.0 +%%Creator: graphviz version 2.36.0 (20140111.2315) +%%Title: start_up +%%Pages: (atend) +%%BoundingBox: (atend) +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def +/tapered { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw text fitted to its expected width +/alignedtext { % width text + /text exch def + /width exch def + gsave + width 0 gt { + [] 0 setdash + text stringwidth pop width exch sub text length div 0 text ashow + } if + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +setupLatin1 +%%Page: 1 1 +%%PageBoundingBox: 36 36 322 538 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 286 502 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% SI +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 199.25 420 moveto +199.25 420 124.75 420 124.75 420 curveto +118.75 420 112.75 414 112.75 408 curveto +112.75 408 112.75 396 112.75 396 curveto +112.75 390 118.75 384 124.75 384 curveto +124.75 384 199.25 384 199.25 384 curveto +205.25 384 211.25 390 211.25 396 curveto +211.25 396 211.25 408 211.25 408 curveto +211.25 414 205.25 420 199.25 420 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +120.5 398.3 moveto 83 (Stego Image Y) alignedtext +grestore +% ED +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 203.25 346 moveto +203.25 346 70.75 346 70.75 346 curveto +64.75 346 58.75 340 58.75 334 curveto +58.75 334 58.75 322 58.75 322 curveto +58.75 316 64.75 310 70.75 310 curveto +70.75 310 203.25 310 203.25 310 curveto +209.25 310 215.25 316 215.25 322 curveto +215.25 322 215.25 334 215.25 334 curveto +215.25 340 209.25 346 203.25 346 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +66.5 324.3 moveto 141 (y=Edge Detection\(b,T,Y\)) alignedtext +grestore +% SI->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 156.08 383.94 moveto +153.19 375.63 149.65 365.44 146.41 356.11 curveto +stroke +0 0 0 edgecolor +newpath 149.64 354.74 moveto +143.06 346.44 lineto +143.03 357.04 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 149.64 354.74 moveto +143.06 346.44 lineto +143.03 357.04 lineto +closepath stroke +grestore +% PIb +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 82.25 420 moveto +82.25 420 11.75 420 11.75 420 curveto +5.75 420 -.25 414 -.25 408 curveto +-.25 408 -.25 396 -.25 396 curveto +-.25 390 5.75 384 11.75 384 curveto +11.75 384 82.25 384 82.25 384 curveto +88.25 384 94.25 390 94.25 396 curveto +94.25 396 94.25 408 94.25 408 curveto +94.25 414 88.25 420 82.25 420 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +7.5 398.3 moveto 79 (Param b, T, H) alignedtext +grestore +% STC +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 100.5 184 moveto +100.5 184 23.5 184 23.5 184 curveto +17.5 184 11.5 178 11.5 172 curveto +11.5 172 11.5 160 11.5 160 curveto +11.5 154 17.5 148 23.5 148 curveto +23.5 148 100.5 148 100.5 148 curveto +106.5 148 112.5 154 112.5 160 curveto +112.5 160 112.5 172 112.5 172 curveto +112.5 178 106.5 184 100.5 184 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +19 162.3 moveto 86 (m = STCr\(y,H\)) alignedtext +grestore +% PIb->STC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 46.22 383.6 moveto +45.09 353.46 43.67 289.59 49 236 curveto +50.39 222.07 53.14 206.75 55.77 194.09 curveto +stroke +0 0 0 edgecolor +newpath 59.22 194.69 moveto +57.9 184.18 lineto +52.37 193.22 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 59.22 194.69 moveto +57.9 184.18 lineto +52.37 193.22 lineto +closepath stroke +grestore +% PIb->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 68.33 383.94 moveto +80.01 374.59 94.67 362.86 107.44 352.65 curveto +stroke +0 0 0 edgecolor +newpath 109.89 355.17 moveto +115.51 346.19 lineto +105.52 349.7 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 109.89 355.17 moveto +115.51 346.19 lineto +105.52 349.7 lineto +closepath stroke +grestore +% key +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 266 272 moveto +266 272 236 272 236 272 curveto +230 272 224 266 224 260 curveto +224 260 224 248 224 248 curveto +224 242 230 236 236 236 curveto +236 236 266 236 266 236 curveto +272 236 278 242 278 248 curveto +278 248 278 260 278 260 curveto +278 266 272 272 266 272 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +234 250.3 moveto 34 (Key k) alignedtext +grestore +% decrypt +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 239.25 110 moveto +239.25 110 114.75 110 114.75 110 curveto +108.75 110 102.75 104 102.75 98 curveto +102.75 98 102.75 86 102.75 86 curveto +102.75 80 108.75 74 114.75 74 curveto +114.75 74 239.25 74 239.25 74 curveto +245.25 74 251.25 80 251.25 86 curveto +251.25 86 251.25 98 251.25 98 curveto +251.25 104 245.25 110 239.25 110 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +110.5 88.3 moveto 133 (message=decryption\(m\)) alignedtext +grestore +% key->decrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 250.73 235.64 moveto +249.74 213.96 245.8 176.28 231 148 curveto +224.99 136.51 215.79 125.85 206.69 117.02 curveto +stroke +0 0 0 edgecolor +newpath 208.86 114.26 moveto +199.13 110.06 lineto +204.11 119.41 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 208.86 114.26 moveto +199.13 110.06 lineto +204.11 119.41 lineto +closepath stroke +grestore +% sample +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 210.25 184 moveto +210.25 184 143.75 184 143.75 184 curveto +137.75 184 131.75 178 131.75 172 curveto +131.75 172 131.75 160 131.75 160 curveto +131.75 154 137.75 148 143.75 148 curveto +143.75 148 210.25 148 210.25 148 curveto +216.25 148 222.25 154 222.25 160 curveto +222.25 160 222.25 172 222.25 172 curveto +222.25 178 216.25 184 210.25 184 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +139.5 162.3 moveto 75 (m=sample\(y\)) alignedtext +grestore +% key->sample +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 236.02 235.6 moveto +225.22 223.04 210.48 205.91 198.43 191.91 curveto +stroke +0 0 0 edgecolor +newpath 200.88 189.38 moveto +191.7 184.08 lineto +195.57 193.95 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 200.88 189.38 moveto +191.7 184.08 lineto +195.57 193.95 lineto +closepath stroke +grestore +% start +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 177 494 moveto +177 494 147 494 147 494 curveto +141 494 135 488 135 482 curveto +135 482 135 470 135 470 curveto +135 464 141 458 147 458 curveto +147 458 177 458 177 458 curveto +183 458 189 464 189 470 curveto +189 470 189 482 189 482 curveto +189 488 183 494 177 494 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +149 472.3 moveto 26 (Start) alignedtext +grestore +% start->SI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 162 457.94 moveto +162 449.81 162 439.88 162 430.7 curveto +stroke +0 0 0 edgecolor +newpath 165.5 430.44 moveto +162 420.44 lineto +158.5 430.44 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 165.5 430.44 moveto +162 420.44 lineto +158.5 430.44 lineto +closepath stroke +grestore +% start->PIb +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 134.75 457.94 moveto +119.39 448.32 100.01 436.19 83.37 425.77 curveto +stroke +0 0 0 edgecolor +newpath 84.79 422.53 moveto +74.46 420.19 lineto +81.07 428.46 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 84.79 422.53 moveto +74.46 420.19 lineto +81.07 428.46 lineto +closepath stroke +grestore +% start->key +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 186.38 457.79 moveto +198.35 448.05 211.9 434.87 220 420 curveto +244.03 375.89 249.76 316.39 250.93 282.21 curveto +stroke +0 0 0 edgecolor +newpath 254.43 282.13 moveto +251.17 272.06 lineto +247.44 281.97 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 254.43 282.13 moveto +251.17 272.06 lineto +247.44 281.97 lineto +closepath stroke +grestore +% end +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 192 36 moveto +192 36 162 36 162 36 curveto +156 36 150 30 150 24 curveto +150 24 150 12 150 12 curveto +150 6 156 0 162 0 curveto +162 0 192 0 192 0 curveto +198 0 204 6 204 12 curveto +204 12 204 24 204 24 curveto +204 30 198 36 192 36 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +166 14.3 moveto 22 (End) alignedtext +grestore +% STC->decrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 89.25 147.94 moveto +104.61 138.32 123.99 126.19 140.63 115.77 curveto +stroke +0 0 0 edgecolor +newpath 142.93 118.46 moveto +149.54 110.19 lineto +139.21 112.53 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 142.93 118.46 moveto +149.54 110.19 lineto +139.21 112.53 lineto +closepath stroke +grestore +% condEmb +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 132 272 moveto +57.82 254 lineto +132 236 lineto +206.18 254 lineto +closepath stroke +0 0 0 nodecolor +14 /Times-Roman set_font +99.5 250.3 moveto 65 (Use of STC) alignedtext +grestore +% ED->condEmb +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 135.82 309.94 moveto +135.24 301.6 134.53 291.36 133.87 282 curveto +stroke +0 0 0 edgecolor +newpath 137.36 281.67 moveto +133.18 271.94 lineto +130.38 282.16 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 137.36 281.67 moveto +133.18 271.94 lineto +130.38 282.16 lineto +closepath stroke +grestore +% decrypt->end +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 177 73.94 moveto +177 65.81 177 55.88 177 46.7 curveto +stroke +0 0 0 edgecolor +newpath 180.5 46.44 moveto +177 36.44 lineto +173.5 46.44 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 180.5 46.44 moveto +177 36.44 lineto +173.5 46.44 lineto +closepath stroke +grestore +% condEmb->STC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 120.44 238.8 moveto +110.15 226.16 94.86 207.38 82.5 192.19 curveto +stroke +0 0 0 edgecolor +newpath 85.02 189.73 moveto +75.99 184.19 lineto +79.59 194.15 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 85.02 189.73 moveto +75.99 184.19 lineto +79.59 194.15 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +104 206.3 moveto 22 (Yes) alignedtext +grestore +% condEmb->sample +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 140.05 237.62 moveto +146.52 225.26 155.75 207.61 163.37 193.05 curveto +stroke +0 0 0 edgecolor +newpath 166.56 194.49 moveto +168.1 184.01 lineto +160.36 191.25 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 166.56 194.49 moveto +168.1 184.01 lineto +160.36 191.25 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +159 206.3 moveto 17 (No) alignedtext +grestore +% sample->decrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 177 147.94 moveto +177 139.81 177 129.88 177 120.7 curveto +stroke +0 0 0 edgecolor +newpath 180.5 120.44 moveto +177 110.44 lineto +173.5 120.44 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 180.5 120.44 moveto +177 110.44 lineto +173.5 120.44 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 322 538 +end +restore +%%EOF diff --git a/emb.eps b/emb.eps new file mode 100644 index 0000000..a462e92 --- /dev/null +++ b/emb.eps @@ -0,0 +1,898 @@ +%!PS-Adobe-3.0 +%%Creator: graphviz version 2.36.0 (20140111.2315) +%%Title: start_up +%%Pages: (atend) +%%BoundingBox: (atend) +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def +/tapered { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw text fitted to its expected width +/alignedtext { % width text + /text exch def + /width exch def + gsave + width 0 gt { + [] 0 setdash + text stringwidth pop width exch sub text length div 0 text ashow + } if + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +setupLatin1 +%%Page: 1 1 +%%PageBoundingBox: 36 36 577 680 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 541 644 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% PI +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 92 562 moveto +92 562 12 562 12 562 curveto +6 562 0 556 0 550 curveto +0 550 0 538 0 538 curveto +0 532 6 526 12 526 curveto +12 526 92 526 92 526 curveto +98 526 104 532 104 538 curveto +104 538 104 550 104 550 curveto +104 556 98 562 92 562 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +8 540.3 moveto 88 (Choose cover X) alignedtext +grestore +% ED +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 199.25 488 moveto +199.25 488 66.75 488 66.75 488 curveto +60.75 488 54.75 482 54.75 476 curveto +54.75 476 54.75 464 54.75 464 curveto +54.75 458 60.75 452 66.75 452 curveto +66.75 452 199.25 452 199.25 452 curveto +205.25 452 211.25 458 211.25 464 curveto +211.25 464 211.25 476 211.25 476 curveto +211.25 482 205.25 488 199.25 488 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +62.5 466.3 moveto 141 (x=Edge Detection\(b,T,X\)) alignedtext +grestore +% PI->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 71.2 525.94 moveto +81.61 516.68 94.65 505.09 106.07 494.94 curveto +stroke +0 0 0 edgecolor +newpath 108.51 497.45 moveto +113.66 488.19 lineto +103.86 492.22 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 108.51 497.45 moveto +113.66 488.19 lineto +103.86 492.22 lineto +closepath stroke +grestore +% PIb +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 174 562 moveto +174 562 134 562 134 562 curveto +128 562 122 556 122 550 curveto +122 550 122 538 122 538 curveto +122 532 128 526 134 526 curveto +134 526 174 526 174 526 curveto +180 526 186 532 186 538 curveto +186 538 186 550 186 550 curveto +186 556 180 562 174 562 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +130 540.3 moveto 48 (Set b, T ) alignedtext +grestore +% PIb->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 149.02 525.94 moveto +146.6 517.63 143.63 507.44 140.91 498.11 curveto +stroke +0 0 0 edgecolor +newpath 144.25 497.06 moveto +138.09 488.44 lineto +137.53 499.02 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 144.25 497.06 moveto +138.09 488.44 lineto +137.53 499.02 lineto +closepath stroke +grestore +% message +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 288 562 moveto +288 562 216 562 216 562 curveto +210 562 204 556 204 550 curveto +204 550 204 538 204 538 curveto +204 532 210 526 216 526 curveto +216 526 288 526 288 526 curveto +294 526 300 532 300 538 curveto +300 538 300 550 300 550 curveto +300 556 294 562 288 562 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +212 540.3 moveto 80 (Message mess) alignedtext +grestore +% encrypt +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 358.25 488 moveto +358.25 488 241.75 488 241.75 488 curveto +235.75 488 229.75 482 229.75 476 curveto +229.75 476 229.75 464 229.75 464 curveto +229.75 458 235.75 452 241.75 452 curveto +241.75 452 358.25 452 358.25 452 curveto +364.25 452 370.25 458 370.25 464 curveto +370.25 464 370.25 476 370.25 476 curveto +370.25 482 364.25 488 358.25 488 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +237.5 466.3 moveto 125 (m=encryption\(mess,k\)) alignedtext +grestore +% message->encrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 263.38 525.94 moveto +269.15 517.28 276.28 506.57 282.72 496.92 curveto +stroke +0 0 0 edgecolor +newpath 285.74 498.7 moveto +288.37 488.44 lineto +279.91 494.82 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 285.74 498.7 moveto +288.37 488.44 lineto +279.91 494.82 lineto +closepath stroke +grestore +% key +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 360 562 moveto +360 562 330 562 330 562 curveto +324 562 318 556 318 550 curveto +318 550 318 538 318 538 curveto +318 532 324 526 330 526 curveto +330 526 360 526 360 526 curveto +366 526 372 532 372 538 curveto +372 538 372 550 372 550 curveto +372 556 366 562 360 562 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +328 540.3 moveto 34 (Key k) alignedtext +grestore +% key->encrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 334.34 525.94 moveto +328.92 517.28 322.23 506.57 316.2 496.92 curveto +stroke +0 0 0 edgecolor +newpath 319.17 495.07 moveto +310.9 488.44 lineto +313.23 498.78 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 319.17 495.07 moveto +310.9 488.44 lineto +313.23 498.78 lineto +closepath stroke +grestore +% sample +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 521.25 184 moveto +521.25 184 440.75 184 440.75 184 curveto +434.75 184 428.75 178 428.75 172 curveto +428.75 172 428.75 160 428.75 160 curveto +428.75 154 434.75 148 440.75 148 curveto +440.75 148 521.25 148 521.25 148 curveto +527.25 148 533.25 154 533.25 160 curveto +533.25 160 533.25 172 533.25 172 curveto +533.25 178 527.25 184 521.25 184 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +436.5 162.3 moveto 89 (y= sample\(x,m\)) alignedtext +grestore +% key->sample +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 372.19 540.66 moveto +411.88 535.59 481 519.76 481 471 curveto +481 471 481 471 481 253 curveto +481 233.4 481 211.3 481 194.4 curveto +stroke +0 0 0 edgecolor +newpath 484.5 194.13 moveto +481 184.13 lineto +477.5 194.13 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 484.5 194.13 moveto +481 184.13 lineto +477.5 194.13 lineto +closepath stroke +grestore +% ee +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 125.5 184 moveto +125.5 184 66.5 184 66.5 184 curveto +60.5 184 54.5 178 54.5 172 curveto +54.5 172 54.5 160 54.5 160 curveto +54.5 154 60.5 148 66.5 148 curveto +66.5 148 125.5 148 125.5 148 curveto +131.5 148 137.5 154 137.5 160 curveto +137.5 160 137.5 172 137.5 172 curveto +137.5 178 131.5 184 125.5 184 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +62 162.3 moveto 68 (Modify b, T) alignedtext +grestore +% ee->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 91.84 184.17 moveto +88.71 198.06 84.67 218.16 83 236 curveto +75.9 312.08 105.07 399.66 121.87 442.55 curveto +stroke +0 0 0 edgecolor +newpath 118.68 443.99 moveto +125.65 451.97 lineto +125.18 441.39 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 118.68 443.99 moveto +125.65 451.97 lineto +125.18 441.39 lineto +closepath stroke +grestore +% cond +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 247 400 moveto +152 362 lineto +247 324 lineto +342 362 lineto +closepath stroke +0 0 0 nodecolor +14 /Times-Roman set_font +222.5 365.8 moveto 49 (Size of x) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +207.5 350.8 moveto 79 ( enough for m) alignedtext +grestore +% encrypt->cond +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 291.48 451.97 moveto +284.92 438.83 275.56 420.12 267.12 403.24 curveto +stroke +0 0 0 edgecolor +newpath 270.15 401.48 moveto +262.55 394.1 lineto +263.89 404.61 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 270.15 401.48 moveto +262.55 394.1 lineto +263.89 404.61 lineto +closepath stroke +grestore +% STC +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 398 184 moveto +398 184 318 184 318 184 curveto +312 184 306 178 306 172 curveto +306 172 306 160 306 160 curveto +306 154 312 148 318 148 curveto +318 148 398 148 398 148 curveto +404 148 410 154 410 160 curveto +410 160 410 172 410 172 curveto +410 178 404 184 398 184 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +314 162.3 moveto 88 (y= STC\(x,m,H\)) alignedtext +grestore +% emb +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 490.25 110 moveto +490.25 110 371.75 110 371.75 110 curveto +365.75 110 359.75 104 359.75 98 curveto +359.75 98 359.75 86 359.75 86 curveto +359.75 80 365.75 74 371.75 74 curveto +371.75 74 490.25 74 490.25 74 curveto +496.25 74 502.25 80 502.25 86 curveto +502.25 86 502.25 98 502.25 98 curveto +502.25 104 496.25 110 490.25 110 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +367.5 88.3 moveto 127 (stego=embedding\(y,X\)) alignedtext +grestore +% STC->emb +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 375.3 147.94 moveto +384.6 138.77 396.22 127.31 406.43 117.23 curveto +stroke +0 0 0 edgecolor +newpath 408.91 119.7 moveto +413.57 110.19 lineto +403.99 114.72 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 408.91 119.7 moveto +413.57 110.19 lineto +403.99 114.72 lineto +closepath stroke +grestore +% sample->emb +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 469.15 147.94 moveto +463.14 139.28 455.7 128.57 449 118.92 curveto +stroke +0 0 0 edgecolor +newpath 451.69 116.66 moveto +443.11 110.44 lineto +445.94 120.65 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 451.69 116.66 moveto +443.11 110.44 lineto +445.94 120.65 lineto +closepath stroke +grestore +% end +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 446 36 moveto +446 36 416 36 416 36 curveto +410 36 404 30 404 24 curveto +404 24 404 12 404 12 curveto +404 6 410 0 416 0 curveto +416 0 446 0 446 0 curveto +452 0 458 6 458 12 curveto +458 12 458 24 458 24 curveto +458 30 452 36 446 36 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +420 14.3 moveto 22 (End) alignedtext +grestore +% emb->end +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 431 73.94 moveto +431 65.81 431 55.88 431 46.7 curveto +stroke +0 0 0 edgecolor +newpath 434.5 46.44 moveto +431 36.44 lineto +427.5 46.44 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 434.5 46.44 moveto +431 36.44 lineto +427.5 46.44 lineto +closepath stroke +grestore +% start +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 217 636 moveto +217 636 187 636 187 636 curveto +181 636 175 630 175 624 curveto +175 624 175 612 175 612 curveto +175 606 181 600 187 600 curveto +187 600 217 600 217 600 curveto +223 600 229 606 229 612 curveto +229 612 229 624 229 624 curveto +229 630 223 636 217 636 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +189 614.3 moveto 26 (Start) alignedtext +grestore +% start->PI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 174.84 603.96 moveto +153.03 593.49 121.97 578.58 96.53 566.38 curveto +stroke +0 0 0 edgecolor +newpath 97.98 563.19 moveto +87.45 562.01 lineto +94.95 569.5 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 97.98 563.19 moveto +87.45 562.01 lineto +94.95 569.5 lineto +closepath stroke +grestore +% start->PIb +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 190.62 599.94 moveto +184.85 591.28 177.72 580.57 171.28 570.92 curveto +stroke +0 0 0 edgecolor +newpath 174.09 568.82 moveto +165.63 562.44 lineto +168.26 572.7 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 174.09 568.82 moveto +165.63 562.44 lineto +168.26 572.7 lineto +closepath stroke +grestore +% start->message +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 213.85 599.94 moveto +219.86 591.28 227.3 580.57 234 570.92 curveto +stroke +0 0 0 edgecolor +newpath 237.06 572.65 moveto +239.89 562.44 lineto +231.31 568.66 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 237.06 572.65 moveto +239.89 562.44 lineto +231.31 568.66 lineto +closepath stroke +grestore +% start->key +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 229.23 603.29 moveto +251.8 591.93 284.05 575.69 308.79 563.23 curveto +stroke +0 0 0 edgecolor +newpath 310.51 566.28 moveto +317.87 558.66 lineto +307.36 560.03 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 310.51 566.28 moveto +317.87 558.66 lineto +307.36 560.03 lineto +closepath stroke +grestore +% ED->cond +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 151.32 451.97 moveto +167.5 436.92 191.56 414.55 211.51 396 curveto +stroke +0 0 0 edgecolor +newpath 213.99 398.48 moveto +218.93 389.1 lineto +209.22 393.35 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 213.99 398.48 moveto +218.93 389.1 lineto +209.22 393.35 lineto +closepath stroke +grestore +% condStrat +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 189 272 moveto +91.85 254 lineto +189 236 lineto +286.15 254 lineto +closepath stroke +0 0 0 nodecolor +14 /Times-Roman set_font +144 250.3 moveto 90 (Strategy is fixed) alignedtext +grestore +% cond->condStrat +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 230.38 330.62 moveto +221.51 314.41 210.74 294.72 202.41 279.5 curveto +stroke +0 0 0 edgecolor +newpath 205.44 277.76 moveto +197.57 270.67 lineto +199.3 281.12 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 205.44 277.76 moveto +197.57 270.67 lineto +199.3 281.12 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +216 294.3 moveto 17 (No) alignedtext +grestore +% condEmb +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 379 272 moveto +304.82 254 lineto +379 236 lineto +453.18 254 lineto +closepath stroke +0 0 0 nodecolor +14 /Times-Roman set_font +346.5 250.3 moveto 65 (Use of STC) alignedtext +grestore +% cond->condEmb +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 277.95 336.15 moveto +301.36 317.35 333.06 291.89 354.67 274.54 curveto +stroke +0 0 0 edgecolor +newpath 357.09 277.08 moveto +362.7 268.09 lineto +352.71 271.62 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 357.09 277.08 moveto +362.7 268.09 lineto +352.71 271.62 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +332 294.3 moveto 63 (Yes with H) alignedtext +grestore +% condStrat->PI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 173.22 269.38 moveto +141.49 299.52 70.77 373.07 45 452 curveto +38.23 472.75 40.77 497.51 44.56 515.96 curveto +stroke +0 0 0 edgecolor +newpath 41.16 516.8 moveto +46.81 525.76 lineto +47.98 515.23 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 41.16 516.8 moveto +46.81 525.76 lineto +47.98 515.23 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +59 422.3 moveto 17 (No) alignedtext +grestore +% condStrat->ee +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 173.64 238.8 moveto +159.72 225.93 138.91 206.68 122.33 191.35 curveto +stroke +0 0 0 edgecolor +newpath 124.3 188.41 moveto +114.59 184.19 lineto +119.55 193.55 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 124.3 188.41 moveto +114.59 184.19 lineto +119.55 193.55 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +151 206.3 moveto 22 (Yes) alignedtext +grestore +% condEmb->STC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 375.05 236.82 moveto +372.13 224.88 368.1 208.34 364.68 194.36 curveto +stroke +0 0 0 edgecolor +newpath 367.99 193.17 moveto +362.22 184.28 lineto +361.19 194.83 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 367.99 193.17 moveto +362.22 184.28 lineto +361.19 194.83 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +370 206.3 moveto 22 (Yes) alignedtext +grestore +% condEmb->sample +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 394.94 239.56 moveto +410.36 226.56 434.08 206.56 452.71 190.85 curveto +stroke +0 0 0 edgecolor +newpath 455.21 193.32 moveto +460.6 184.2 lineto +450.7 187.97 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 455.21 193.32 moveto +460.6 184.2 lineto +450.7 187.97 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +439 206.3 moveto 17 (No) alignedtext +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 577 680 +end +restore +%%EOF diff --git a/experiments.tex b/experiments.tex index 498e472..eff125e 100644 --- a/experiments.tex +++ b/experiments.tex @@ -205,10 +205,10 @@ as far as we know. However by combining Adaptive and STC strategies our approach obtains similar results than the ones of these schemes. -Compared to EAILSBMR, we obtain better results when the strategy is +Compared to EAILSBMR, we obtain similar +results when the strategy is Adaptive. -However due to its -huge number of integration features, it is not lightweight. +However due to its huge number of integration features, it is not lightweight. All these numerical experiments confirm the objective presented in the motivations: diff --git a/intro.tex b/intro.tex index 5fa4b70..db41326 100644 --- a/intro.tex +++ b/intro.tex @@ -124,7 +124,7 @@ The payload is further said to long message in the cover signal. Practically speaking, our approach is efficient enough for payloads close to 0.06 bit per pixel which allows to embed -messages of length larger than 16000 bits in an +messages of length larger than 15728 bits in an image of size $512\times 512$ pixels. % Message extraction is achieved by computing the same diff --git a/main.tex b/main.tex index e82040e..2996baf 100755 --- a/main.tex +++ b/main.tex @@ -164,7 +164,8 @@ replacement, in terms of security, will be discussed. Furthermore, we plan to investigate information hiding on other models, such as high frequency for JPEG encoding. -\bibliographystyle{spbasic} +%\bibliographystyle{spbasic} +\bibliographystyle{spmpsci} \bibliography{abbrev,biblioand} diff --git a/schema2.dot b/schema2.dot index c5c7819..b2bc96e 100644 --- a/schema2.dot +++ b/schema2.dot @@ -18,7 +18,7 @@ digraph start_up { PIb -> ED - + PIb -> STC start -> key diff --git a/stc.tex b/stc.tex index 0d1541a..8da1573 100644 --- a/stc.tex +++ b/stc.tex @@ -23,9 +23,9 @@ vector and a 7 bits column vector, and where $\rho_X(i,x,y)$ is equal to 1 for any $i$, $x$, $y$ (\textit{i.e.}, $\rho_X(i,x,y) = 0$ if $x = y$ and $1$ otherwise). -Let $H$ be the binary Hamming matrix +Let $\dot{H}$ be the binary Hamming matrix $$ -H = \left( +\dot{H} = \left( \begin{array}{lllllll} 0 & 0 & 0 & 1 & 1 & 1 & 1 \\ 0 & 1 & 1 & 0 & 0 & 1 & 1 \\ @@ -33,11 +33,11 @@ H = \left( \end{array} \right). $$ -The objective is to modify $x$ to get $y$ s.t. $m = Hy$. +The objective is to modify $x$ to get $y$ s.t. $m = \dot{H}y$. In this algebra, the sum and the product respectively correspond to the exclusive \emph{or} and to the \emph{and} Boolean operators. -If $Hx$ is already equal to $m$, nothing has to be changed and $x$ can be sent. -Otherwise we consider the difference $\delta = d(m,Hx)$, which is expressed +If $\dot{H}x$ is already equal to $m$, nothing has to be changed and $x$ can be sent. +Otherwise we consider the difference $\delta = d(m,\dot{H}x)$, which is expressed as a vector : $$ \delta = \left( \begin{array}{l} @@ -53,7 +53,7 @@ We denote by $\overline{x}^j$ the vector obtained by switching the $j-$th component of $x$, that is, $\overline{x}^j = (x_1 , \ldots, \overline{x_j},\ldots, x_n )$. It is not hard to see that if $y$ is $\overline{x}^j$, then -$m = Hy$. +$m = \dot{H}y$. It is then possible to embed 3 bits in 7 LSBs of pixels by modifying at most 1 bit. In the general case, communicating a message of $p$ bits in a cover of