From 8290657e61738a93b7b6eb60966c49efbc4f0af8 Mon Sep 17 00:00:00 2001 From: couchot Date: Fri, 8 Jun 2012 11:29:54 +0200 Subject: [PATCH 1/1] ajout de fichiers --- emb.pdf | Bin 0 -> 10036 bytes emb.ps | 993 ++++++++++++++++++++++++++++++++++++++++ ourapproach.tex | 87 ++++ rec.pdf | Bin 0 -> 9292 bytes rec.ps | 819 +++++++++++++++++++++++++++++++++ schema.dot | 36 ++ schema2.dot | 29 ++ stc.tex | 85 ++++ stc/exp/python/stc_r.py | 241 ++++++++++ test.ps | 993 ++++++++++++++++++++++++++++++++++++++++ 10 files changed, 3283 insertions(+) create mode 100644 emb.pdf create mode 100644 emb.ps create mode 100644 ourapproach.tex create mode 100644 rec.pdf create mode 100644 rec.ps create mode 100644 schema.dot create mode 100644 schema2.dot create mode 100644 stc.tex create mode 100644 stc/exp/python/stc_r.py create mode 100644 test.ps diff --git a/emb.pdf b/emb.pdf new file mode 100644 index 0000000000000000000000000000000000000000..749bd81f6bdce68af4df5e33380b01b726433421 GIT binary patch literal 10036 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 literal 0 HcmV?d00001 diff --git a/emb.ps b/emb.ps new file mode 100644 index 0000000..bc1e4ce --- /dev/null +++ b/emb.ps @@ -0,0 +1,993 @@ +%!PS-Adobe-3.0 +%%Creator: graphviz version 2.26.3 (20100126.1600) +%%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 + +% 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 429 616 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 393 580 boxprim clip newpath +1 1 set_scale 0 rotate 40 41 translate +% IC +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 131 498 moveto +79 498 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 79 498 moveto +73 498 67 492 67 486 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 67 486 moveto +67 466 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 67 466 moveto +67 460 73 454 79 454 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 79 454 moveto +131 454 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 131 454 moveto +137 454 143 460 143 466 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 143 466 moveto +143 486 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 143 486 moveto +143 492 137 498 131 498 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +83.5 481.4 moveto 43 (Image) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +74.5 463.4 moveto 61 (Cover X ) alignedtext +grestore +% ED +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 158 416 moveto +54 416 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 54 416 moveto +48 416 42 410 42 404 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 42 404 moveto +42 384 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 42 384 moveto +42 378 48 372 54 372 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 54 372 moveto +158 372 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 158 372 moveto +164 372 170 378 170 384 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 170 384 moveto +170 404 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 170 404 moveto +170 410 164 416 158 416 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +58 399.4 moveto 96 (x= LSB\(7 bits) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +50 381.4 moveto 112 (Edge Detection\)) alignedtext +grestore +% IC->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 105.27 453.59 moveto +105.38 445.12 105.5 435.3 105.61 426.1 curveto +stroke +0 0 0 edgecolor +newpath 109.11 426.14 moveto +105.73 416.1 lineto +102.11 426.05 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 109.11 426.14 moveto +105.73 416.1 lineto +102.11 426.05 lineto +closepath stroke +grestore +% message +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 225 494 moveto +173 494 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 173 494 moveto +167 494 161 488 161 482 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 161 482 moveto +161 470 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 161 470 moveto +161 464 167 458 173 458 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 173 458 moveto +225 458 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 225 458 moveto +231 458 237 464 237 470 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 237 470 moveto +237 482 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 237 482 moveto +237 488 231 494 225 494 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +169 472.4 moveto 60 (message) alignedtext +grestore +% encrypt +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 360 412 moveto +200 412 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 200 412 moveto +194 412 188 406 188 400 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 188 400 moveto +188 388 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 188 388 moveto +188 382 194 376 200 376 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 200 376 moveto +360 376 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 360 376 moveto +366 376 372 382 372 388 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 372 388 moveto +372 400 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 372 400 moveto +372 406 366 412 360 412 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +195.5 390.4 moveto 169 (m=encryption\(message\)) alignedtext +grestore +% message->encrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 216.98 457.8 moveto +228.09 446.55 242.53 431.93 254.78 419.53 curveto +stroke +0 0 0 edgecolor +newpath 257.54 421.72 moveto +262.07 412.15 lineto +252.56 416.8 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 257.54 421.72 moveto +262.07 412.15 lineto +252.56 416.8 lineto +closepath stroke +grestore +% key +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 297 494 moveto +267 494 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 267 494 moveto +261 494 255 488 255 482 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 255 482 moveto +255 470 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 255 470 moveto +255 464 261 458 267 458 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 267 458 moveto +297 458 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 297 458 moveto +303 458 309 464 309 470 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 309 470 moveto +309 482 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 309 482 moveto +309 488 303 494 297 494 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +269.5 472.4 moveto 25 (key) alignedtext +grestore +% key->encrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 281.56 457.8 moveto +281.3 447.4 280.98 434.12 280.69 422.38 curveto +stroke +0 0 0 edgecolor +newpath 284.19 422.06 moveto +280.44 412.15 lineto +277.19 422.23 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 284.19 422.06 moveto +280.44 412.15 lineto +277.19 422.23 lineto +closepath stroke +grestore +% PI +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 92 192 moveto +12 192 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 12 192 moveto +6 192 0 186 0 180 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 0 180 moveto +0 160 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 0 160 moveto +0 154 6 148 12 148 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 12 148 moveto +92 148 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 92 148 moveto +98 148 104 154 104 160 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 104 160 moveto +104 180 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 104 180 moveto +104 186 98 192 92 192 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +15.5 175.4 moveto 73 (Parameter) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +7.5 157.4 moveto 89 (Instantiation) alignedtext +grestore +% PI->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 51.72 192.11 moveto +51.94 224.2 54.73 285.19 71 334 curveto +74.35 344.04 79.51 354.25 84.85 363.33 curveto +stroke +0 0 0 edgecolor +newpath 81.97 365.31 moveto +90.2 371.98 lineto +87.92 361.63 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 81.97 365.31 moveto +90.2 371.98 lineto +87.92 361.63 lineto +closepath stroke +grestore +% STC +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 338 188 moveto +258 188 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 258 188 moveto +252 188 246 182 246 176 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 246 176 moveto +246 164 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 246 164 moveto +246 158 252 152 258 152 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 258 152 moveto +338 152 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 338 152 moveto +344 152 350 158 350 164 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 350 164 moveto +350 176 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 350 176 moveto +350 182 344 188 338 188 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +254 166.4 moveto 88 (y= STC\(x,m\)) alignedtext +grestore +% encrypt->STC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 293.94 375.96 moveto +301.81 364.6 310.88 349.25 315 334 curveto +327.61 287.37 316.21 230.96 306.97 197.92 curveto +stroke +0 0 0 edgecolor +newpath 310.25 196.67 moveto +304.08 188.06 lineto +303.54 198.64 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 310.25 196.67 moveto +304.08 188.06 lineto +303.54 198.64 lineto +closepath stroke +grestore +% cond +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 193 334 moveto +80 290 lineto +193 246 lineto +306 290 lineto +closepath stroke +0 0 0 nodecolor +14 /Times-Roman set_font +163 295.4 moveto 60 (Size of x) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +144.5 277.4 moveto 97 ( enough for m) alignedtext +grestore +% encrypt->cond +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 264.85 375.88 moveto +254.56 363.59 240.54 346.83 227.61 331.38 curveto +stroke +0 0 0 edgecolor +newpath 230.08 328.87 moveto +220.98 323.44 lineto +224.71 333.36 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 230.08 328.87 moveto +220.98 323.44 lineto +224.71 333.36 lineto +closepath stroke +grestore +% emb +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 373 110 moveto +223 110 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 223 110 moveto +217 110 211 104 211 98 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 211 98 moveto +211 86 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 211 86 moveto +211 80 217 74 223 74 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 223 74 moveto +373 74 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 373 74 moveto +379 74 385 80 385 86 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 385 86 moveto +385 98 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 385 98 moveto +385 104 379 110 373 110 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +218.5 88.4 moveto 159 (stego=embedding\(y,X\)) alignedtext +grestore +% STC->emb +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 298 151.91 moveto +298 142.53 298 130.85 298 120.3 curveto +stroke +0 0 0 edgecolor +newpath 301.5 120.26 moveto +298 110.26 lineto +294.5 120.26 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 301.5 120.26 moveto +298 110.26 lineto +294.5 120.26 lineto +closepath stroke +grestore +% end +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 313 36 moveto +283 36 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 283 36 moveto +277 36 271 30 271 24 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 271 24 moveto +271 12 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 271 12 moveto +271 6 277 0 283 0 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 283 0 moveto +313 0 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 313 0 moveto +319 0 325 6 325 12 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 325 12 moveto +325 24 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 325 24 moveto +325 30 319 36 313 36 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +285 14.4 moveto 26 (end) alignedtext +grestore +% emb->end +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 298 73.71 moveto +298 65.46 298 55.54 298 46.36 curveto +stroke +0 0 0 edgecolor +newpath 301.5 46.08 moveto +298 36.08 lineto +294.5 46.08 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 301.5 46.08 moveto +298 36.08 lineto +294.5 46.08 lineto +closepath stroke +grestore +% start +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 164 572 moveto +134 572 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 134 572 moveto +128 572 122 566 122 560 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 122 560 moveto +122 548 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 122 548 moveto +122 542 128 536 134 536 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 134 536 moveto +164 536 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 164 536 moveto +170 536 176 542 176 548 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 176 548 moveto +176 560 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 176 560 moveto +176 566 170 572 164 572 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +132 550.4 moveto 34 (start) alignedtext +grestore +% start->IC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 138.79 535.91 moveto +133.94 527.3 127.99 516.75 122.44 506.92 curveto +stroke +0 0 0 edgecolor +newpath 125.47 505.16 moveto +117.51 498.17 lineto +119.37 508.6 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 125.47 505.16 moveto +117.51 498.17 lineto +119.37 508.6 lineto +closepath stroke +grestore +% start->message +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 160.6 535.91 moveto +166.86 526.13 174.72 513.87 181.7 502.99 curveto +stroke +0 0 0 edgecolor +newpath 184.84 504.57 moveto +187.29 494.26 lineto +178.95 500.79 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 184.84 504.57 moveto +187.29 494.26 lineto +178.95 500.79 lineto +closepath stroke +grestore +% start->key +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 176.28 538.49 moveto +195.78 527.35 222.6 511.9 246 498 curveto +246.09 497.95 246.18 497.89 246.27 497.84 curveto +stroke +0 0 0 edgecolor +newpath 248.14 500.8 moveto +254.92 492.65 lineto +244.54 494.79 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 248.14 500.8 moveto +254.92 492.65 lineto +244.54 494.79 lineto +closepath stroke +grestore +% start->PI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 121.68 550.56 moveto +82.23 543.9 14 525.26 14 476 curveto +14 476 14 476 14 290 curveto +14 258.89 25.75 225.26 36.19 201.54 curveto +stroke +0 0 0 edgecolor +newpath 39.42 202.89 moveto +40.39 192.34 lineto +33.06 199.98 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 39.42 202.89 moveto +40.39 192.34 lineto +33.06 199.98 lineto +closepath stroke +grestore +% ED->cond +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 124.45 371.94 moveto +134.29 360.18 146.73 345.32 158.29 331.49 curveto +stroke +0 0 0 edgecolor +newpath 161.25 333.41 moveto +164.98 323.5 lineto +155.88 328.92 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 161.25 333.41 moveto +164.98 323.5 lineto +155.88 328.92 lineto +closepath stroke +grestore +% cond->PI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 157.42 259.72 moveto +135.48 241.04 107.5 217.23 85.88 198.83 curveto +stroke +0 0 0 edgecolor +newpath 88.11 196.13 moveto +78.22 192.32 lineto +83.57 201.46 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 88.11 196.13 moveto +78.22 192.32 lineto +83.57 201.46 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +119 215.4 moveto 19 (No) alignedtext +grestore +% cond->STC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 221.97 256.89 moveto +238.81 237.64 259.73 213.73 275.36 195.87 curveto +stroke +0 0 0 edgecolor +newpath 278.19 197.96 moveto +282.14 188.13 lineto +272.92 193.35 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 278.19 197.96 moveto +282.14 188.13 lineto +272.92 193.35 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +262 215.4 moveto 23 (Yes) alignedtext +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 429 616 +end +restore +%%EOF diff --git a/ourapproach.tex b/ourapproach.tex new file mode 100644 index 0000000..5fc4f7e --- /dev/null +++ b/ourapproach.tex @@ -0,0 +1,87 @@ +The flowcharts given in Fig.~\ref{fig:sch} summarize our steganography scheme denoted as +STABYLO for STeganography with cAnny, Bbs, binarY embedding at LOw cost. +What follows successively details all the inner steps and flow inside +the embedding stage (Fig.\ref{fig:sch:emb}) +and inside the extraction one(Fig.~\ref{fig:sch:ext}). + + +\begin{figure*}[t] + \begin{center} + \subfloat[Data Embedding.]{ + \begin{minipage}{0.49\textwidth} + \begin{center} + \includegraphics[width=5cm]{emb.pdf} + \end{center} + \end{minipage} + \label{fig:sch:emb} + }%\hfill + \subfloat[Data Extraction.]{ + \begin{minipage}{0.49\textwidth} + \begin{center} + \includegraphics[width=5cm]{rec.pdf} + \end{center} + \end{minipage} + \label{fig:sch:ext} + }%\hfill + \end{center} + \caption{The STABYLO Scheme.} + \label{fig:sch} +\end{figure*} + + +\subsection{Steganalysis} + +LSB : +"Adaptive steganalysis of Least Significant Bit replacement in grayscale natural images" + +Structural LSB Detectors: +\verb+http://dde.binghamton.edu/download/structural_lsb_detectors/+ + +Vainqueur du BOSS challenge + + +ensemble: + + +G. Gül and F. Kurugollu. A new methodology in steganalysis : Breaking highly +undetactable steganograpy (HUGO). In Information Hiding, 13th International +Workshop, volume 6958 of LNCS, pages 71–84, Prague, Czech Republic, May 18– +20, 2011. + + +\subsection{Data Embedding} + + + + +\subsubsection{Edge Based Image Steganography} +Image Quality: Edge Image Steganography +\JFC{Raphael, les fuzzy edge detection sont souvent utilisés. + il faudrait comparer les approches en terme de nombre de bits retournés, + en terme de complexité. } + + +Presentation des algos de detection de contour +Caractéristiques + +Comparaison théoriques, références + +Algo de stegano basé juste sur cela : (pas de bbs, pas de stc, même message). + +Quels paramètres sont optimaux ? Combinaison ? + + + + + +\subsubsection{Security Considerations} + +Security aspect: +BBS-based cryptographic version of the message + +\subsubsection{Minimizing Distortion with Syndrome-Treillis Codes} + +\input{stc} + + +\subsection{Data Extraction} \ No newline at end of file diff --git a/rec.pdf b/rec.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aa13df987b05d57c9454fe88902fd4fa07c009bb GIT binary patch literal 9292 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 PqJk1cQc~AU5AuHi57t#3 literal 0 HcmV?d00001 diff --git a/rec.ps b/rec.ps new file mode 100644 index 0000000..4906435 --- /dev/null +++ b/rec.ps @@ -0,0 +1,819 @@ +%!PS-Adobe-3.0 +%%Creator: graphviz version 2.26.3 (20100126.1600) +%%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 + +% 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 374 642 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 338 606 boxprim clip newpath +1 1 set_scale 0 rotate 40 41 translate +% SI +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 178 524 moveto +100 524 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 100 524 moveto +94 524 88 518 88 512 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 88 512 moveto +88 500 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 88 500 moveto +88 494 94 488 100 488 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 100 488 moveto +178 488 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 178 488 moveto +184 488 190 494 190 500 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 190 500 moveto +190 512 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 190 512 moveto +190 518 184 524 178 524 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +95.5 502.4 moveto 87 (Stego Image) alignedtext +grestore +% ED +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 195 416 moveto +83 416 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 83 416 moveto +77 416 71 410 71 404 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 71 404 moveto +71 384 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 71 384 moveto +71 378 77 372 83 372 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 83 372 moveto +195 372 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 195 372 moveto +201 372 207 378 207 384 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 207 384 moveto +207 404 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 207 404 moveto +207 410 201 416 195 416 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +78.5 399.4 moveto 121 (\(y,H\)= LSB\(7 bits) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +83 381.4 moveto 112 (Edge Detection\)) alignedtext +grestore +% SI->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 139 487.51 moveto +139 470.97 139 446.36 139 426.53 curveto +stroke +0 0 0 edgecolor +newpath 142.5 426.38 moveto +139 416.38 lineto +135.5 426.38 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 142.5 426.38 moveto +139 416.38 lineto +135.5 426.38 lineto +closepath stroke +grestore +% cond +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 162 334 moveto +86 290 lineto +162 246 lineto +238 290 lineto +closepath stroke +0 0 0 nodecolor +14 /Times-Roman set_font +132 295.4 moveto 60 (Size of y) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +133.5 277.4 moveto 57 ( enough) alignedtext +grestore +% PI +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 92 192 moveto +12 192 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 12 192 moveto +6 192 0 186 0 180 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 0 180 moveto +0 160 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 0 160 moveto +0 154 6 148 12 148 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 12 148 moveto +92 148 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 92 148 moveto +98 148 104 154 104 160 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 104 160 moveto +104 180 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 104 180 moveto +104 186 98 192 92 192 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +15.5 175.4 moveto 73 (Parameter) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +7.5 157.4 moveto 89 (Instantiation) alignedtext +grestore +% cond->PI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 135.37 260.95 moveto +118.35 242.38 96.33 218.36 79.19 199.67 curveto +stroke +0 0 0 edgecolor +newpath 81.52 197.02 moveto +72.18 192.01 lineto +76.36 201.75 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 81.52 197.02 moveto +72.18 192.01 lineto +76.36 201.75 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +104 215.4 moveto 19 (No) alignedtext +grestore +% STC +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 226 188 moveto +134 188 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 134 188 moveto +128 188 122 182 122 176 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 122 176 moveto +122 164 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 122 164 moveto +122 158 128 152 134 152 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 134 152 moveto +226 152 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 226 152 moveto +232 152 238 158 238 164 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 238 164 moveto +238 176 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 238 176 moveto +238 182 232 188 226 188 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +129.5 166.4 moveto 101 (m = STCr\(y,H\)) alignedtext +grestore +% cond->STC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 168.09 249.37 moveto +170.61 232.63 173.45 213.63 175.74 198.42 curveto +stroke +0 0 0 edgecolor +newpath 179.26 198.51 moveto +177.28 188.1 lineto +172.34 197.47 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 179.26 198.51 moveto +177.28 188.1 lineto +172.34 197.47 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +174 215.4 moveto 23 (Yes) alignedtext +grestore +% key +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 269 470 moveto +239 470 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 239 470 moveto +233 470 227 464 227 458 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 227 458 moveto +227 446 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 227 446 moveto +227 440 233 434 239 434 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 239 434 moveto +269 434 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 269 434 moveto +275 434 281 440 281 446 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 281 446 moveto +281 458 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 281 458 moveto +281 464 275 470 269 470 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +241.5 448.4 moveto 25 (key) alignedtext +grestore +% decrypt +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 318 110 moveto +158 110 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 158 110 moveto +152 110 146 104 146 98 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 146 98 moveto +146 86 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 146 86 moveto +146 80 152 74 158 74 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 158 74 moveto +318 74 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 318 74 moveto +324 74 330 80 330 86 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 330 86 moveto +330 98 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 330 98 moveto +330 104 324 110 318 110 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +154 88.4 moveto 168 (message=decryption\(m\)) alignedtext +grestore +% key->decrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 257.54 433.83 moveto +261.08 414.04 266 381.39 266 353 curveto +266 353 266 353 266 170 curveto +266 152.58 259.74 134.19 253.14 119.65 curveto +stroke +0 0 0 edgecolor +newpath 256.09 117.73 moveto +248.59 110.25 lineto +249.8 120.78 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 256.09 117.73 moveto +248.59 110.25 lineto +249.8 120.78 lineto +closepath stroke +grestore +% start +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 154 598 moveto +124 598 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 124 598 moveto +118 598 112 592 112 586 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 112 586 moveto +112 574 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 112 574 moveto +112 568 118 562 124 562 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 124 562 moveto +154 562 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 154 562 moveto +160 562 166 568 166 574 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 166 574 moveto +166 586 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 166 586 moveto +166 592 160 598 154 598 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +122 576.4 moveto 34 (start) alignedtext +grestore +% start->SI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 139 561.71 moveto +139 553.46 139 543.54 139 534.36 curveto +stroke +0 0 0 edgecolor +newpath 142.5 534.08 moveto +139 524.08 lineto +135.5 534.08 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 142.5 534.08 moveto +139 524.08 lineto +135.5 534.08 lineto +closepath stroke +grestore +% start->key +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 160.1 561.89 moveto +171.99 551.3 186.85 537.41 199 524 curveto +212.03 509.62 225.28 492.37 235.51 478.36 curveto +stroke +0 0 0 edgecolor +newpath 238.44 480.27 moveto +241.45 470.12 lineto +232.77 476.18 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 238.44 480.27 moveto +241.45 470.12 lineto +232.77 476.18 lineto +closepath stroke +grestore +% start->PI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 112 575.51 moveto +76.89 567.95 20 549.06 20 506 curveto +20 506 20 506 20 290 curveto +20 259.25 29.93 225.51 38.73 201.67 curveto +stroke +0 0 0 edgecolor +newpath 42.09 202.68 moveto +42.4 192.09 lineto +35.55 200.18 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 42.09 202.68 moveto +42.4 192.09 lineto +35.55 200.18 lineto +closepath stroke +grestore +% end +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 253 36 moveto +223 36 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 223 36 moveto +217 36 211 30 211 24 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 211 24 moveto +211 12 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 211 12 moveto +211 6 217 0 223 0 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 223 0 moveto +253 0 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 253 0 moveto +259 0 265 6 265 12 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 265 12 moveto +265 24 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 265 24 moveto +265 30 259 36 253 36 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +225 14.4 moveto 26 (end) alignedtext +grestore +% PI->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 51.02 192.05 moveto +50.49 224.88 53.09 287.68 77 334 curveto +82.96 345.55 92.01 356.17 101.36 365.16 curveto +stroke +0 0 0 edgecolor +newpath 99.13 367.85 moveto +108.88 372 lineto +103.84 362.68 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 99.13 367.85 moveto +108.88 372 lineto +103.84 362.68 lineto +closepath stroke +grestore +% STC->decrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 193.45 151.91 moveto +200.87 141.94 210.2 129.38 218.41 118.34 curveto +stroke +0 0 0 edgecolor +newpath 221.26 120.38 moveto +224.42 110.26 lineto +215.64 116.2 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 221.26 120.38 moveto +224.42 110.26 lineto +215.64 116.2 lineto +closepath stroke +grestore +% ED->cond +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 143.88 371.94 moveto +146 362.35 148.58 350.7 151.11 339.22 curveto +stroke +0 0 0 edgecolor +newpath 154.58 339.76 moveto +153.32 329.24 lineto +147.74 338.25 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 154.58 339.76 moveto +153.32 329.24 lineto +147.74 338.25 lineto +closepath stroke +grestore +% decrypt->end +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 238 73.71 moveto +238 65.46 238 55.54 238 46.36 curveto +stroke +0 0 0 edgecolor +newpath 241.5 46.08 moveto +238 36.08 lineto +234.5 46.08 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 241.5 46.08 moveto +238 36.08 lineto +234.5 46.08 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 374 642 +end +restore +%%EOF diff --git a/schema.dot b/schema.dot new file mode 100644 index 0000000..165432b --- /dev/null +++ b/schema.dot @@ -0,0 +1,36 @@ +digraph start_up { + node [style = rounded, shape = rect] IC [label="Image\nCover X "] + node [style = rounded, shape = rect] message [label="message"] + node [style = rounded, shape = rect] key + + node [style = rounded, shape = rect] PI [label="Parameter\nInstantiation"] + node [style = rounded, shape = rect] encrypt [label="m=encryption(message)"] + node [style = rounded, shape = rect] STC [label="y= STC(x,m)"] + node [style = rounded, shape = rect] emb [label="stego=embedding(y,X)"] + + node [style = rounded, shape = rect] start end; + node [style = rounded, shape = rect] ED [label="x= LSB(7 bits\nEdge Detection)"] + + node [style = "", shape = diamond] cond [label="Size of x\n enough for m"]; + + start -> PI + start -> IC + start -> message + start -> key + + key -> encrypt + + + message -> encrypt + IC -> ED + ED -> cond + encrypt -> cond + encrypt -> STC + cond -> STC [label="Yes"] + cond -> PI [label="No"] + + PI -> ED + STC -> emb + emb -> end + + } \ No newline at end of file diff --git a/schema2.dot b/schema2.dot new file mode 100644 index 0000000..4f47d83 --- /dev/null +++ b/schema2.dot @@ -0,0 +1,29 @@ +digraph start_up { + node [style = rounded, shape = rect] SI [label="Stego Image"] + node [style = "", shape = diamond] cond [label="Size of y\n enough"]; + node [style = rounded, shape = rect] key + node [style = rounded, shape = rect] start end; + node [style = rounded, shape = rect] PI [label="Parameter\nInstantiation"] + node [style = rounded, shape = rect] STC [label="m = STCr(y,H)"] + node [style = rounded, shape = rect] ED [label="(y,H)= LSB(7 bits\nEdge Detection)"] + node [style = rounded, shape = rect] decrypt [label="message=decryption(m)"] + + + + start -> SI + start -> PI + PI -> ED + start -> key + + SI -> ED + ED -> cond + cond -> STC [label="Yes"] + cond -> PI [label="No"] + + STC -> decrypt + key -> decrypt + decrypt -> end + + + + } \ No newline at end of file diff --git a/stc.tex b/stc.tex new file mode 100644 index 0000000..6570c73 --- /dev/null +++ b/stc.tex @@ -0,0 +1,85 @@ +Let +$x=(x_1,\ldots,x_n)$ be the $n$-bits cover vector of the image $X$, +$m$ be the message to embed and +$y=(y_1,\ldots,y_n)$ be the $n$-bits stego vector. +The usual additive embbeding impact of replacing $x$ by $y$ in $X$ +is given by a distortion function +$D_X(x,y)= \Sigma_{i=1}^n \rho_X(i,x,y)$ where the function $\rho_X$ +expressed the cost of replacing $x_i$ by $y_i$ in $X$. +Let us consider that $x$ is fixed: +this is for instance the LSBs of the image edge bits. +The objective is thus to find $y$ that minimizes $D_X(x,y)$. + +Hamming embedding proposes a solution to this problem. +Some steganographic +schemes~\cite{DBLP:conf/ih/Westfeld01,DBLP:conf/ih/KimDR06,DBLP:conf/mmsec/FridrichPK07} are based on this binary embedding. +Furthermore this code provides a vector $y$ s.t. $Hy$ is equal to +$m$ for a given binary matrix $H$. + +Let us explain this embedding on a small illustrative example where +$\rho_X(i,x,y)$ is identically equal to 1, +$m$ and $x$ are respectively a 3 bits column +vector and a 7 bits column vector. +Let then $H$ be the binary Hamming matrix +$$ +H = \left( +\begin{array}{lllllll} + 0 & 0 & 0 & 1 & 1 & 1 & 1 \\ + 0 & 1 & 1 & 0 & 0 & 1 & 1 \\ + 1 & 0 & 1 & 0 & 1 & 0 & 1 +\end{array} +\right). +$$ +The objective is to modify $x$ to get $y$ s.t. $m = Hy$. +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 +as a vector : +$$ +\delta = \left( \begin{array}{l} +\delta_1 \\ +\delta_2 \\ +\delta_3 +\end{array} +\right) +\textrm{ where $\delta_i$ is 0 if $m_i = Hx_i$ and 1 otherwise.} +$$ +Let us thus consider the $j$th column of $H$ which is equal to $\delta$. +We denote by $\overline{x}^j$ the vector we obtain 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$. +It is then possible to embed 3 bits in only 7 LSB of pixels by modifying +1 bit at most. +In the general case, when comunicating $n$ message bits in +$2^n-1$ pixels needs $1-1/2^n$ average changes. + + + +Unfortunately, + + +for any given $H$, finding $y$ that solves $Hy=m$ and that +that minimizes $D_X(x,y)$ has exponential complexity with respect to $n$. +The Syndrome-Trellis Codes (STC) +presented by Filler et al. in~\cite{DBLP:conf/mediaforensics/FillerJF10} +is a practical solution to this complexity. Thanks to this contribution, +the solving algorithm has a linear complexity with resspect to $n$. + +First of all, Filler et al. compute the matrix $H$ +by placing a small sub-matrix $\hat{H}$ of size $h × w$ next +to each other and shifted down by one row. +Thanks to this special form of $H$, one can represent +every solution of $m=Hy$ as a path through a trellis. + +Next, the process of finding $y$ consists of a forward and a backward part: +\begin{enumerate} +\item Forward construction of the trellis that depends on $\hat{H}$, on $x$, on $m$, and on $\rho$; +\item Backward determinization of $y$ which minimizes $D$ starting with +the complete path with minimal weight +\end{enumerate} +Let us now give some details about these two parts. + + diff --git a/stc/exp/python/stc_r.py b/stc/exp/python/stc_r.py new file mode 100644 index 0000000..854c780 --- /dev/null +++ b/stc/exp/python/stc_r.py @@ -0,0 +1,241 @@ +from random import * +import numpy as np +from math import * +import gc + +infinity = 100000000000 + + + +# forward part + + +def dec(ch,n): + l = len(ch) + acc = 0 + for i in xrange(l): + if ch[i]==1: + acc = acc + 2**(n-i-1) + return acc + + +def bin(elem,n): + """Convertit un nombre en binaire""" + q = -1 + res = [0 for i in xrange(n)] + i = 1 + while q != 0: + q = elem // 2 + r = elem % 2 + res[n-i] = r + elem = q + i+=1 + return res + + + +def xorb(a,b): + return 1 if a != b else 0 + +def xor(e1,e2,h): + e1b,e2b = bin(e1,h),bin(e2,h) + d = dec([xorb(e1b[j],e2b[j]) for j in xrange(h)],h) + return d + +def lit(d,(indx,indy)): + if (indx,indy) in d : + return d[(indx,indy)] + else : + return 0 + + + + +def forward(H_hat,x,message,lnm,rho): + (h,w) = int(log(max(H_hat),2))+1, len(H_hat) + path = dict() + nbblock = lnm + wght = [infinity for _ in xrange(int(2**h))] + wght[0]=0 + newwght = [0 for _ in xrange(int(2**h))] +# rho = 1 +# rho= [1 for _ in xrange(len(x))] + indx,indm = 0,0 + i=0 + while i < nbblock: # pour chaque bit du message + for j in xrange(w): # pour chaque colonne de H_hat + #print indx, "en entrant",wght + k = 0 + while k < int(2**h): # pour chaque ligne de H + w0 = wght[k] + x[indx]*rho[indx] + w1 = wght[xor(k,H_hat[j],h)] + (1-x[indx])*rho[indx] + if w1 < w0 : + path[(indx,k)] = 1 + else : + if (indx,k) in path: + del path[(indx,k)] + newwght[k] = min(w0,w1) + k +=1 + indx +=1 + wght = [t for t in newwght] + #print " apres calcul",wght + + for j in xrange(int(2**(h-1))): # pour chaque colonne de H + wght[j] = wght[2*j + message[indm]] + wght = wght[:int(pow(2,h-1))] + [infinity for _ in xrange(int(pow(2,h)-pow(2,h-1)))] + indm +=1 + i +=1 + start = np.argmin(wght) + return (start,path) + + +def backward(start,H_hat,x,message,lnm,path): + (h,w) = int(log(max(H_hat),2))+1, len(H_hat) + indx,indm = len(x)-1,lnm-1 + state = 2*start + message[indm] + indm -=1 + # l'initialisation de state n'est pas optimale... + nbblock = lnm + y=np.zeros(len(x)) + i=0 + while i < nbblock: + l = range(w) + l.reverse() + for j in l: # pour chaque colonne de H_hat + y[indx] = lit(path,(indx,state)) + state = xor(state,y[indx]*H_hat[j],h) + indx -=1 + state = 2*state + message[indm] + indm -=1 + i +=1 + return [int(t) for t in y] + + + + + + +def trouve_H_hat(n,m,h): + assert h ==7 + alpha = float(n)/m + assert alpha >= 2 + index = min(int(alpha),9) + mat = { + 2 : [71,109], + 3 : [95, 101, 121], + 4 : [81, 95, 107, 121], + 5 : [75, 95, 97, 105, 117], + 6 : [73, 83, 95, 103, 109, 123], + 7 : [69, 77, 93, 107, 111, 115, 121], + 8 : [69, 79, 81, 89, 93, 99, 107, 119], + 9 : [69, 79, 81, 89, 93, 99, 107, 119, 125] + }[index] + return(mat, index*m) + + +def stc(x,rho,message): + lnm = len(message) + (mat,taille_suff) = trouve_H_hat(len(x),len(message),7) + x_b = x[:taille_suff] + (start,path) = forward(mat,x_b,message,lnm,rho) + return (x_b,backward(start,mat,x_b,message,lnm,path),mat) + + + + + +def nbdif(x,y): + r,it = 0,0 + l = len(y) + while it < l : + if x[it] != y[it] : + r +=1 + it += 1 + return float(r)/l + + + + + + +def prod(H_hat,lnm,y): + (h,w) = int(log(max(H_hat),2))+1, len(H_hat) + i=0 + H =[] + V=[0 for _ in range(len(y))] + sol=[] + while i < lnm: # pour chaque ligne + V=[0 for _ in range(len(y))] + k = max([(i-h+1)*w,0]) + dec = max([i-h+1,0]) + for j in xrange(min([i+1,h])): #nbre de blocks presents sur la ligne i + for l in xrange(w): # pour chaque collone de H_hat + V[k] = bin(H_hat[l],h)[h-i-1+j+dec] + k+=1 + + sol.append(np.dot(np.array(V),np.array(y))) + i+=1 + #H += [V] + #H = np.array(H) + #y = np.array(y) + #print "dot",np.dot(H,y),H.shape + #print "sol",sol + return sol#list(np.dot(H,y)) + +def equiv(x,y): + lx = len(x) + assert lx == len(y) + i=0 + while i < lx : + if x[i] % 2 != y[i]%2 : + return False + i += 1 + return True + +""" +################ + +x = [randint(0,1) for _ in xrange(65000)] +rho = [randint(1,9) for _ in xrange(65000)] +message = [randint(0,1) for _ in xrange(26000)] + + + +#(x_b,y,H_hat) = stc(x,rho,message) +# x_b est la sous partie de x qui va etre modifiee +# y est le vecteur des bits modifies +# H_hat est la sous-matrice retenue qui est embarquee dans H + +#print nbdif(x_b,y) + +#print message +#print x +#print rho +#print y +#message2 = [x%2 for x in prod(H_hat,len(message),y)] +#print message2 +print max([message[l]-message2[l] for l in xrange(len(message))]) +print equiv(message,message2) + +""" +count = 0 + +while count < 100 and eval : + lx = randint(500,1000) + x = [randint(0,1) for _ in xrange(lx)] + rho = [randint(1,9) for _ in xrange(lx)] + + lm = randint(lx/10,lx/2) + message = [randint(0,1) for _ in xrange(lm)] + (x_b,y,H_hat) = stc(x,rho,message) + eval = equiv(message, prod(H_hat,len(message),y)) + if not (eval): + print x + print message + + count +=1 + if count % 10 == 0 : + print count + +print count + diff --git a/test.ps b/test.ps new file mode 100644 index 0000000..bc1e4ce --- /dev/null +++ b/test.ps @@ -0,0 +1,993 @@ +%!PS-Adobe-3.0 +%%Creator: graphviz version 2.26.3 (20100126.1600) +%%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 + +% 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 429 616 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 393 580 boxprim clip newpath +1 1 set_scale 0 rotate 40 41 translate +% IC +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 131 498 moveto +79 498 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 79 498 moveto +73 498 67 492 67 486 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 67 486 moveto +67 466 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 67 466 moveto +67 460 73 454 79 454 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 79 454 moveto +131 454 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 131 454 moveto +137 454 143 460 143 466 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 143 466 moveto +143 486 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 143 486 moveto +143 492 137 498 131 498 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +83.5 481.4 moveto 43 (Image) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +74.5 463.4 moveto 61 (Cover X ) alignedtext +grestore +% ED +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 158 416 moveto +54 416 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 54 416 moveto +48 416 42 410 42 404 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 42 404 moveto +42 384 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 42 384 moveto +42 378 48 372 54 372 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 54 372 moveto +158 372 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 158 372 moveto +164 372 170 378 170 384 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 170 384 moveto +170 404 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 170 404 moveto +170 410 164 416 158 416 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +58 399.4 moveto 96 (x= LSB\(7 bits) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +50 381.4 moveto 112 (Edge Detection\)) alignedtext +grestore +% IC->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 105.27 453.59 moveto +105.38 445.12 105.5 435.3 105.61 426.1 curveto +stroke +0 0 0 edgecolor +newpath 109.11 426.14 moveto +105.73 416.1 lineto +102.11 426.05 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 109.11 426.14 moveto +105.73 416.1 lineto +102.11 426.05 lineto +closepath stroke +grestore +% message +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 225 494 moveto +173 494 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 173 494 moveto +167 494 161 488 161 482 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 161 482 moveto +161 470 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 161 470 moveto +161 464 167 458 173 458 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 173 458 moveto +225 458 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 225 458 moveto +231 458 237 464 237 470 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 237 470 moveto +237 482 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 237 482 moveto +237 488 231 494 225 494 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +169 472.4 moveto 60 (message) alignedtext +grestore +% encrypt +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 360 412 moveto +200 412 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 200 412 moveto +194 412 188 406 188 400 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 188 400 moveto +188 388 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 188 388 moveto +188 382 194 376 200 376 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 200 376 moveto +360 376 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 360 376 moveto +366 376 372 382 372 388 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 372 388 moveto +372 400 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 372 400 moveto +372 406 366 412 360 412 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +195.5 390.4 moveto 169 (m=encryption\(message\)) alignedtext +grestore +% message->encrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 216.98 457.8 moveto +228.09 446.55 242.53 431.93 254.78 419.53 curveto +stroke +0 0 0 edgecolor +newpath 257.54 421.72 moveto +262.07 412.15 lineto +252.56 416.8 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 257.54 421.72 moveto +262.07 412.15 lineto +252.56 416.8 lineto +closepath stroke +grestore +% key +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 297 494 moveto +267 494 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 267 494 moveto +261 494 255 488 255 482 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 255 482 moveto +255 470 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 255 470 moveto +255 464 261 458 267 458 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 267 458 moveto +297 458 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 297 458 moveto +303 458 309 464 309 470 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 309 470 moveto +309 482 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 309 482 moveto +309 488 303 494 297 494 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +269.5 472.4 moveto 25 (key) alignedtext +grestore +% key->encrypt +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 281.56 457.8 moveto +281.3 447.4 280.98 434.12 280.69 422.38 curveto +stroke +0 0 0 edgecolor +newpath 284.19 422.06 moveto +280.44 412.15 lineto +277.19 422.23 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 284.19 422.06 moveto +280.44 412.15 lineto +277.19 422.23 lineto +closepath stroke +grestore +% PI +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 92 192 moveto +12 192 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 12 192 moveto +6 192 0 186 0 180 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 0 180 moveto +0 160 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 0 160 moveto +0 154 6 148 12 148 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 12 148 moveto +92 148 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 92 148 moveto +98 148 104 154 104 160 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 104 160 moveto +104 180 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 104 180 moveto +104 186 98 192 92 192 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +15.5 175.4 moveto 73 (Parameter) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +7.5 157.4 moveto 89 (Instantiation) alignedtext +grestore +% PI->ED +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 51.72 192.11 moveto +51.94 224.2 54.73 285.19 71 334 curveto +74.35 344.04 79.51 354.25 84.85 363.33 curveto +stroke +0 0 0 edgecolor +newpath 81.97 365.31 moveto +90.2 371.98 lineto +87.92 361.63 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 81.97 365.31 moveto +90.2 371.98 lineto +87.92 361.63 lineto +closepath stroke +grestore +% STC +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 338 188 moveto +258 188 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 258 188 moveto +252 188 246 182 246 176 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 246 176 moveto +246 164 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 246 164 moveto +246 158 252 152 258 152 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 258 152 moveto +338 152 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 338 152 moveto +344 152 350 158 350 164 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 350 164 moveto +350 176 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 350 176 moveto +350 182 344 188 338 188 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +254 166.4 moveto 88 (y= STC\(x,m\)) alignedtext +grestore +% encrypt->STC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 293.94 375.96 moveto +301.81 364.6 310.88 349.25 315 334 curveto +327.61 287.37 316.21 230.96 306.97 197.92 curveto +stroke +0 0 0 edgecolor +newpath 310.25 196.67 moveto +304.08 188.06 lineto +303.54 198.64 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 310.25 196.67 moveto +304.08 188.06 lineto +303.54 198.64 lineto +closepath stroke +grestore +% cond +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 193 334 moveto +80 290 lineto +193 246 lineto +306 290 lineto +closepath stroke +0 0 0 nodecolor +14 /Times-Roman set_font +163 295.4 moveto 60 (Size of x) alignedtext +0 0 0 nodecolor +14 /Times-Roman set_font +144.5 277.4 moveto 97 ( enough for m) alignedtext +grestore +% encrypt->cond +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 264.85 375.88 moveto +254.56 363.59 240.54 346.83 227.61 331.38 curveto +stroke +0 0 0 edgecolor +newpath 230.08 328.87 moveto +220.98 323.44 lineto +224.71 333.36 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 230.08 328.87 moveto +220.98 323.44 lineto +224.71 333.36 lineto +closepath stroke +grestore +% emb +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 373 110 moveto +223 110 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 223 110 moveto +217 110 211 104 211 98 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 211 98 moveto +211 86 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 211 86 moveto +211 80 217 74 223 74 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 223 74 moveto +373 74 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 373 74 moveto +379 74 385 80 385 86 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 385 86 moveto +385 98 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 385 98 moveto +385 104 379 110 373 110 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +218.5 88.4 moveto 159 (stego=embedding\(y,X\)) alignedtext +grestore +% STC->emb +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 298 151.91 moveto +298 142.53 298 130.85 298 120.3 curveto +stroke +0 0 0 edgecolor +newpath 301.5 120.26 moveto +298 110.26 lineto +294.5 120.26 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 301.5 120.26 moveto +298 110.26 lineto +294.5 120.26 lineto +closepath stroke +grestore +% end +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 313 36 moveto +283 36 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 283 36 moveto +277 36 271 30 271 24 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 271 24 moveto +271 12 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 271 12 moveto +271 6 277 0 283 0 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 283 0 moveto +313 0 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 313 0 moveto +319 0 325 6 325 12 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 325 12 moveto +325 24 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 325 24 moveto +325 30 319 36 313 36 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +285 14.4 moveto 26 (end) alignedtext +grestore +% emb->end +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 298 73.71 moveto +298 65.46 298 55.54 298 46.36 curveto +stroke +0 0 0 edgecolor +newpath 301.5 46.08 moveto +298 36.08 lineto +294.5 46.08 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 301.5 46.08 moveto +298 36.08 lineto +294.5 46.08 lineto +closepath stroke +grestore +% start +gsave +1 setlinewidth +0 0 0 nodecolor +newpath 164 572 moveto +134 572 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 134 572 moveto +128 572 122 566 122 560 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 122 560 moveto +122 548 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 122 548 moveto +122 542 128 536 134 536 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 134 536 moveto +164 536 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 164 536 moveto +170 536 176 542 176 548 curveto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 176 548 moveto +176 560 lineto +stroke +1 setlinewidth +0 0 0 nodecolor +newpath 176 560 moveto +176 566 170 572 164 572 curveto +stroke +0 0 0 nodecolor +14 /Times-Roman set_font +132 550.4 moveto 34 (start) alignedtext +grestore +% start->IC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 138.79 535.91 moveto +133.94 527.3 127.99 516.75 122.44 506.92 curveto +stroke +0 0 0 edgecolor +newpath 125.47 505.16 moveto +117.51 498.17 lineto +119.37 508.6 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 125.47 505.16 moveto +117.51 498.17 lineto +119.37 508.6 lineto +closepath stroke +grestore +% start->message +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 160.6 535.91 moveto +166.86 526.13 174.72 513.87 181.7 502.99 curveto +stroke +0 0 0 edgecolor +newpath 184.84 504.57 moveto +187.29 494.26 lineto +178.95 500.79 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 184.84 504.57 moveto +187.29 494.26 lineto +178.95 500.79 lineto +closepath stroke +grestore +% start->key +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 176.28 538.49 moveto +195.78 527.35 222.6 511.9 246 498 curveto +246.09 497.95 246.18 497.89 246.27 497.84 curveto +stroke +0 0 0 edgecolor +newpath 248.14 500.8 moveto +254.92 492.65 lineto +244.54 494.79 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 248.14 500.8 moveto +254.92 492.65 lineto +244.54 494.79 lineto +closepath stroke +grestore +% start->PI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 121.68 550.56 moveto +82.23 543.9 14 525.26 14 476 curveto +14 476 14 476 14 290 curveto +14 258.89 25.75 225.26 36.19 201.54 curveto +stroke +0 0 0 edgecolor +newpath 39.42 202.89 moveto +40.39 192.34 lineto +33.06 199.98 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 39.42 202.89 moveto +40.39 192.34 lineto +33.06 199.98 lineto +closepath stroke +grestore +% ED->cond +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 124.45 371.94 moveto +134.29 360.18 146.73 345.32 158.29 331.49 curveto +stroke +0 0 0 edgecolor +newpath 161.25 333.41 moveto +164.98 323.5 lineto +155.88 328.92 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 161.25 333.41 moveto +164.98 323.5 lineto +155.88 328.92 lineto +closepath stroke +grestore +% cond->PI +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 157.42 259.72 moveto +135.48 241.04 107.5 217.23 85.88 198.83 curveto +stroke +0 0 0 edgecolor +newpath 88.11 196.13 moveto +78.22 192.32 lineto +83.57 201.46 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 88.11 196.13 moveto +78.22 192.32 lineto +83.57 201.46 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +119 215.4 moveto 19 (No) alignedtext +grestore +% cond->STC +gsave +1 setlinewidth +0 0 0 edgecolor +newpath 221.97 256.89 moveto +238.81 237.64 259.73 213.73 275.36 195.87 curveto +stroke +0 0 0 edgecolor +newpath 278.19 197.96 moveto +282.14 188.13 lineto +272.92 193.35 lineto +closepath fill +1 setlinewidth +solid +0 0 0 edgecolor +newpath 278.19 197.96 moveto +282.14 188.13 lineto +272.92 193.35 lineto +closepath stroke +0 0 0 edgecolor +14 /Times-Roman set_font +262 215.4 moveto 23 (Yes) alignedtext +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 429 616 +end +restore +%%EOF -- 2.39.5