]> AND Private Git Repository - canny.git/blob - ourapproach.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
e87c1486bc31d3942abf9acd70e48c53077c7733
[canny.git] / ourapproach.tex
1 This section first presents the embedding scheme through its 
2 four main steps: the data encryption (Sect.~\ref{sub:bbs}),
3 the cover pixel selection (Sect.~\ref{sub:edge}),
4 the adaptive payload considerations (Sect.~\ref{sub:adaptive}),
5 and how the distortion has been minimized (Sect.~\ref{sub:stc}).
6 The message extraction is then presented  (Sect.~\ref{sub:extract}) and a running example ends this section (Sect.~\ref{sub:xpl}). 
7
8
9 The flowcharts given in Fig.~\ref{fig:sch}
10 summarize our steganography scheme denoted by
11 STABYLO, which stands for STeganography with cAnny, Bbs, binarY embedding at LOw cost.
12 What follows are successively some details of the inner steps and the flows both inside 
13  the embedding stage (Fig.~\ref{fig:sch:emb}) 
14 and inside the extraction one (Fig.~\ref{fig:sch:ext}).
15 Let us first focus on the data embedding. 
16
17 \begin{figure*}%[t]
18   \begin{center}
19     \subfloat[Data Embedding.]{
20       \begin{minipage}{0.49\textwidth}
21         \begin{center}
22           %\includegraphics[width=5cm]{emb.pdf}
23           \includegraphics[scale=0.45]{emb.ps}
24         \end{center}
25       \end{minipage}
26       \label{fig:sch:emb}
27     } 
28
29     \subfloat[Data Extraction.]{
30       \begin{minipage}{0.49\textwidth}
31         \begin{center}
32           %\includegraphics[width=5cm]{rec.pdf}
33           \includegraphics[scale=0.45]{rec.ps}
34         \end{center}
35       \end{minipage}
36       \label{fig:sch:ext}
37     }%\hfill
38   \end{center}
39   \caption{The STABYLO scheme}
40   \label{fig:sch}
41 \end{figure*}
42
43
44
45
46
47
48
49
50 \subsection{Security considerations}\label{sub:bbs}
51 Among methods of the message encryption/decryption 
52 (see~\cite{DBLP:journals/ejisec/FontaineG07} for a survey)
53 we implement the Blum-Goldwasser cryptosystem~\cite{Blum:1985:EPP:19478.19501}
54 that is based on the Blum Blum Shub~\cite{DBLP:conf/crypto/ShubBB82} 
55 pseudorandom number generator (PRNG) and the 
56 XOR binary function.
57 It has been indeed proven~\cite{DBLP:conf/crypto/ShubBB82} that this PRNG 
58 has the property of cryptographical security, \textit{i.e.}, 
59 for any sequence of $L$ output bits $x_i$, $x_{i+1}$, \ldots, $x_{i+L-1}$,
60 there is no algorithm, whose time complexity is polynomial  in $L$, and 
61 which allows to find $x_{i-1}$ or $x_{i+L}$ with a probability greater
62 than $1/2$.
63 Equivalent formulations of such a property can
64 be found. They all lead to the fact that,
65 even if the encrypted message is extracted, 
66 it is impossible to retrieve the original one in 
67 polynomial time.   
68
69 Starting thus with a key $k$ and the message \textit{mess} to hide, 
70 this step computes a message $m$, which is the encrypted version  of \textit{mess}.
71
72
73 \subsection{Edge-based image steganography}\label{sub:edge}
74
75
76 The edge-based image
77 steganography schemes 
78 already presented \cite{Luo:2010:EAI:1824719.1824720,DBLP:journals/eswa/ChenCL10} differ 
79 in how carefully they select edge pixels, and  
80 how they modify them.
81
82 %Image Quality: Edge Image Steganography
83 %\JFC{Raphael, les fuzzy edge detection sont souvent utilisés. 
84 %  il faudrait comparer les approches en terme de nombre de bits retournés,
85 %  en terme de complexité. } \cite{KF11}
86 %\RC{Ben, à voir car on peut choisir le nombre de pixel avec Canny. Supposons que les fuzzy edge soient retourne un peu plus de points, on sera probablement plus détectable...  Finalement on devrait surement vendre notre truc en : on a choisi cet algo car il est performant en vitesse/qualité. Mais on peut aussi en utilisé d'autres :-)}
87
88 Many techniques have been proposed in the literature to  detect 
89 edges in  images (whose noise has been initially reduced). 
90 They can be separated in two categories: first and second order detection
91 methods on the one hand, and fuzzy detectors on the other  hand~\cite{KF11}.
92 In first order methods like Sobel, Canny~\cite{Canny:1986:CAE:11274.11275}, \ldots, 
93 a first-order derivative (gradient magnitude, etc.) is computed 
94 to search for local maxima, whereas in second order ones, zero crossings in a second-order derivative, like the Laplacian computed from the image,
95 are searched in order to find edges.
96 As far as fuzzy edge methods are concerned, they are obviously based on fuzzy logic to highlight edges.
97
98 Canny filters, on their parts, are an old family of algorithms still remaining a state of the art edge detector. They can be well-approximated by first-order derivatives of Gaussians.
99 As the Canny algorithm is fast, well known, has been studied in depth, and is implementable
100 on many  kinds of architectures like FPGAs, smartphones,  desktop machines, and
101 GPUs, we have chosen this edge detector for illustrative purpose.
102
103 %\JFC{il faudrait comparer les complexites des algo fuzy and canny}
104
105
106 This edge detection is applied on a filtered version of the image given 
107 as input.
108 More precisely, only $b$ most 
109 significant bits are concerned by this step, where 
110 the parameter $b$ is practically set with $6$ or $7$. 
111 If set with the same value $b$, the edge detection returns thus the same 
112 set of pixels for both the cover and the stego image.   
113 In our flowcharts, this is represented by ``edgeDetection(b bits)''.
114 Then only the 2 LSBs of pixels in the set of edges are returned if $b$ is 6, 
115 and the LSB of pixels if $b$ is 7.
116
117
118
119
120
121 Let $x$ be the sequence of these bits. 
122 The next  section presents how our scheme 
123 adapts  when the size of $x$  is not sufficient for the message $m$ to embed.
124
125
126  
127
128
129
130
131 \subsection{Adaptive embedding rate}\label{sub:adaptive}
132 Two strategies have been developed in our scheme, 
133 depending on the embedding rate that is either \emph{adaptive} or \emph{fixed}.
134 In the former the embedding rate depends on the number of edge pixels.
135 The higher it is, the larger the message length that can be inserted is.
136 Practically, a set of edge pixels is computed according to the 
137 Canny algorithm with a high threshold.
138 The message length is thus defined to be less than 
139 half of this set cardinality.
140 If $x$ is then too short for $m$, the message is split into sufficient parts
141 and a new cover image should be used for the remaining part of the message. 
142
143  
144 In the latter, the embedding rate is defined as a percentage between the 
145 number of modified pixels and the length of the bit message.
146 This is the classical approach adopted in steganography.
147 Practically, the Canny algorithm generates  
148 a set of edge pixels related to a threshold that is decreasing 
149 until its cardinality
150 is sufficient. 
151
152
153
154 Two methods may further be applied to select bits that 
155 will be modified. 
156 The first one randomly chooses the subset of pixels to modify by 
157 applying the BBS PRNG again. This method is further denoted  as a \emph{sample}.
158 Once this set is selected, a classical LSB replacement is applied to embed the 
159 stego content.
160 The second method is a direct application of the 
161 STC algorithm~\cite{DBLP:journals/tifs/FillerJF11}. 
162 It  is further referred to as \emph{STC} and is detailed in the next section.
163
164
165
166
167
168 % First of all, let us discuss about compexity of edge detetction methods.
169 % Let then $M$ and $N$ be the dimension of the original image. 
170 % According to~\cite{Hu:2007:HPE:1282866.1282944},
171 % even if the fuzzy logic based edge detection methods~\cite{Tyan1993} 
172 % have promising results, its complexity is in $C_3 \times O(M \times N)$
173 % whereas the complexity on the Canny method~\cite{Canny:1986:CAE:11274.11275} 
174 % is in $C_1 \times O(M \times N)$ where  $C_1 < C_3$.
175 % \JFC{Verifier ceci...}
176 % In experiments detailled in this article, the Canny method has been retained 
177 % but the whole approach can be updated to consider 
178 % the fuzzy logic edge detector.   
179
180
181
182
183
184
185
186 \subsection{Minimizing distortion with syndrome-trellis codes}\label{sub:stc}
187 \input{stc}
188
189
190
191 % Edge Based Image Steganography schemes 
192 % already studied~\cite{Luo:2010:EAI:1824719.1824720,DBLP:journals/eswa/ChenCL10,DBLP:conf/ih/PevnyFB10} differ 
193 % how they select edge pixels, and  
194 % how they modify these ones.
195
196 % First of all, let us discuss about compexity of edge detetction methods.
197 % Let then $M$ and $N$ be the dimension of the original image. 
198 % According to~\cite{Hu:2007:HPE:1282866.1282944},
199 % even if the fuzzy logic based edge detection methods~\cite{Tyan1993} 
200 % have promising results, its complexity is in $C_3 \times O(M \times N)$
201 % whereas the complexity on the Canny method~\cite{Canny:1986:CAE:11274.11275} 
202 % is in $C_1 \times O(M \times N)$ where  $C_1 < C_3$.
203 % \JFC{Verifier ceci...}
204 % In experiments detailled in this article, the Canny method has been retained 
205 % but the whole approach can be updated to consider 
206 % the fuzzy logic edge detector.   
207
208 % Next, following~\cite{Luo:2010:EAI:1824719.1824720}, our scheme automatically
209 % modifies Canny parameters to get a sufficiently large set of edge bits: this 
210 % one is practically enlarged untill its size is at least twice as many larger 
211 % than the size of embedded message.
212
213
214
215 %%RAPH: paragraphe en double :-)
216
217
218
219
220 \subsection{Data extraction}\label{sub:extract}
221 The message extraction summarized in Fig.~\ref{fig:sch:ext} 
222 follows the data embedding approach 
223 since there exists a reverse function for all its steps.
224
225 More precisely, the same edge detection is applied on the $b$ first bits  to 
226 produce the sequence $y$ of LSBs. 
227 If the STC approach has been selected in embedding, the STC reverse
228 algorithm is directly executed to retrieve the encrypted message. 
229 This inverse function takes the $H$ matrix as a parameter.
230 Otherwise, \textit{i.e.}, if the \emph{sample} strategy is retained,
231 the same random bit selection than in the embedding step 
232 is executed with the same seed, given as a key.
233 Finally, the Blum-Goldwasser decryption function is executed and the original
234 message is extracted.
235
236
237 \subsection{Running example}\label{sub:xpl}
238 In this example, the cover image is  Lena, 
239 which is a $512\times512$  image with 256 grayscale levels.
240 The message is the poem Ulalume (E. A. Poe), which is constituted by 104 lines, 667
241 words, and 3,754 characters, \textit{i.e.},  30,032 bits.
242 Lena and the first verses are given in Fig.~\ref{fig:lena}.
243
244 \begin{figure}
245 \begin{center}
246 \begin{minipage}{0.49\linewidth}
247 \begin{center}
248 \includegraphics[scale=0.20]{Lena.eps}
249 \end{center}
250 \end{minipage}
251 \begin{minipage}{0.49\linewidth}
252 \begin{flushleft}
253 \begin{scriptsize}
254 The skies they were ashen and sober;\linebreak
255 $~$ The leaves they were crisped and sere—\linebreak
256 $~$ The leaves they were withering and sere;\linebreak
257 It was night in the lonesome October\linebreak
258 $~$ Of my most immemorial year;\linebreak
259 It was hard by the dim lake of Auber,\linebreak
260 $~$ In the misty mid region of Weir—\linebreak
261 It was down by the dank tarn of Auber,\linebreak
262 $~$ In the ghoul-haunted woodland of Weir.
263 \end{scriptsize}
264 \end{flushleft}
265 \end{minipage}
266 \end{center}
267 \caption{Cover and message examples} \label{fig:lena}
268 \end{figure}
269
270 The edge detection returns 18,641 and 18,455 pixels when $b$ is
271 respectively 7 and 6. These edges are represented in Figure~\ref{fig:edge}.
272
273
274 \begin{figure}[t]
275   \begin{center}
276     \subfloat[$b$ is 7.]{
277       \begin{minipage}{0.49\linewidth}
278         \begin{center}
279           %\includegraphics[width=5cm]{emb.pdf}
280           \includegraphics[scale=0.20]{edge7.eps}
281         \end{center}
282       \end{minipage}
283       %\label{fig:sch:emb}
284     }%\hfill
285     \subfloat[$b$ is 6.]{
286       \begin{minipage}{0.49\linewidth}
287         \begin{center}
288           %\includegraphics[width=5cm]{rec.pdf}
289           \includegraphics[scale=0.20]{edge6.eps}
290         \end{center}
291       \end{minipage}
292       %\label{fig:sch:ext}
293     }%\hfill
294   \end{center}
295   \caption{Edge detection wrt $b$}
296   \label{fig:edge}
297 \end{figure}
298
299
300
301 Only 9,320 bits (resp. 9,227 bits) are available for embedding 
302 in the former configuration where $b$ is 7 (resp. where $b$ is 6).
303 In both cases, about the third part of the poem is hidden into the cover.
304 Results with \emph{adaptive+STC} strategy are presented in 
305 Fig.~\ref{fig:lenastego}.
306
307 \begin{figure}[t]
308   \begin{center}
309     \subfloat[$b$ is 7.]{
310       \begin{minipage}{0.49\linewidth}
311         \begin{center}
312           %\includegraphics[width=5cm]{emb.pdf}
313           \includegraphics[scale=0.20]{lena7.eps}
314         \end{center}
315       \end{minipage}
316       %\label{fig:sch:emb}
317     }%\hfill
318     \subfloat[$b$ is 6.]{
319       \begin{minipage}{0.49\linewidth}
320         \begin{center}
321           %\includegraphics[width=5cm]{rec.pdf}
322           \includegraphics[scale=0.20]{lena6.eps}
323         \end{center}
324       \end{minipage}
325       %\label{fig:sch:ext}
326     }%\hfill
327   \end{center}
328   \caption{Stego images wrt $b$}
329   \label{fig:lenastego}
330 \end{figure}
331
332
333 Finally, differences between the original cover and the stego images  
334 are presented in Fig.~\ref{fig:lenadiff}. For each pair of pixel $X_{ij}$ and  $Y_{ij}$ ($X$ and $Y$ being the cover and the stego content respectively), 
335 the pixel value $V_{ij}$ of the difference is defined with the following map
336 $$
337 V_{ij}= \left\{
338 \begin{array}{rcl}
339 0 & \textrm{if} &  X_{ij} = Y_{ij} \\
340 75 & \textrm{if} &  \vert X_{ij} - Y_{ij} \vert = 1 \\
341 150 & \textrm{if} &  \vert X_{ij} - Y_{ij} \vert = 2 \\
342 225 & \textrm{if} &  \vert X_{ij} - Y_{ij} \vert = 3 
343 \end{array}
344 \right..
345 $$
346 This function allows to emphasize differences between contents.
347
348 \begin{figure}[t]
349   \begin{center}
350     \subfloat[$b$ is 7.]{
351       \begin{minipage}{0.49\linewidth}
352         \begin{center}
353           %\includegraphics[width=5cm]{emb.pdf}
354           \includegraphics[scale=0.20]{diff7.eps}
355         \end{center}
356       \end{minipage}
357       %\label{fig:sch:emb}
358     }%\hfill
359     \subfloat[$b$ is 6.]{
360       \begin{minipage}{0.49\linewidth}
361         \begin{center}
362           %\includegraphics[width=5cm]{rec.pdf}
363           \includegraphics[scale=0.20]{diff6.eps}
364         \end{center}
365       \end{minipage}
366       %\label{fig:sch:ext}
367     }%\hfill
368   \end{center}
369   \caption{Differences  with Lena's cover  wrt $b$}
370   \label{fig:lenadiff}
371 \end{figure}
372
373
374
375 \section{Complexity Analysis}\label{sub:complexity}
376 This section aims at justifying the leightweight attribute of our approach.
377 To be more precise, we compare the complexity of our schemes to the 
378 state of the art steganography, namely HUGO~\cite{DBLP:conf/ih/PevnyFB10}.
379
380
381 In what folllows, we consider an $n \times n$ square image. 
382 First of all, HUGO starts with computing the second order SPAM Features.
383 This steps is in  $O(n^2 + 2.343^2)$ due to the calculation 
384 of the difference arrays and next of the 686 features (of size 343).
385 Next for each pixel, the distortion measure is calculated by +1/-1 modifying
386 its value and computing again the SPAM 
387 features. Pixels are thus selected according to their ability to provide
388 an image whose SPAM features are close to the original one. 
389 The algorithm is thus computing a distance between each Feature, 
390 which is at least in $O(343)$ and an overall distance between these 
391 metrics which is in $O(686)$. Computing the distance is thus in 
392 $O(2\time 343^2)$ and this mdification is thus in $O(2\time 343^2 \time n^2)$.
393 Ranking these results may be achieved with a insertion sort which is in $2.n^2 \ln(n)$.
394 The overall complexity of the pixel selection is thus 
395 $O(n^2 +2.343^2 + 2\time 343^2 \time n^2 + 2.n^2 \ln(n))$, \textit{i.e}
396 $O(2.n^2(343^2 + \ln(n)))$.
397
398 Our edge selection is based on a Canny  Filter, 
399 whose complexity is in $O(2n^2.\ln(n))$ thanks to the convolution step
400 which can be implemented with FFT.
401 The complexity of Hugo is  at least $343^2/\ln{n}$ times higher than our scheme. 
402
403
404
405
406