The flowcharts given in Fig.~\ref{fig:sch} summarize our steganography scheme denoted as to
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}
          %\includegraphics[width=5cm]{emb.ps}
        \end{center}
      \end{minipage}
      \label{fig:sch:emb}
    }%\hfill
    \subfloat[Data Extraction.]{
      \begin{minipage}{0.49\textwidth}
        \begin{center}
          \includegraphics[width=5cm]{rec.pdf}
          %\includegraphics[width=5cm]{rec.ps}
        \end{center}
      \end{minipage}
      \label{fig:sch:ext}
    }%\hfill
  \end{center}
  \caption{The STABYLO Scheme.}
  \label{fig:sch}
\end{figure*}




\subsection{Data Embedding} 
This section describes the main three steps of the STABYLO data embedding
scheme. 



\subsubsection{Edge Based Image Steganography}

Edge Based Image Steganography schemes 
already studied~\cite{Luo:2010:EAI:1824719.1824720,DBLP:journals/eswa/ChenCL10,DBLP:conf/ih/PevnyFB10} differ 
how they select edge pixels, and  
how they modify these ones.

First of all, let us discuss about compexity of edge detetction methods.
Let then $M$ and $N$ be the dimension of the original image. 
According to~\cite{Hu:2007:HPE:1282866.1282944},
even if the fuzzy logic based edge detection methods~\cite{Tyan1993} 
have promising results, its complexity is in $C_3 \times O(M \times N)$
whereas the complexity on the Canny method~\cite{Canny:1986:CAE:11274.11275} 
is in $C_1 \times O(M \times N)$ where  $C_1 < C_3$.
\JFC{Verifier ceci...}
In experiments detailled in this article, the canny method has been retained 
but the whole approach can be updated to consider 
the fuzzy logic edge detector.   

Next, following~\cite{Luo:2010:EAI:1824719.1824720}, our scheme automatically
modifies canny parameters to get a sufficiently large set of edge bits: this 
one is practically enlarged untill its size is at least twice as many larger 
than the size of embedded message.



\subsubsection{Security Considerations}
Among methods of message encryption/decryption 
(see~\cite{DBLP:journals/ejisec/FontaineG07} for a survey)
we implement the Blum-Goldwasser cryptosystem~\cite{Blum:1985:EPP:19478.19501}
which is based on the Blum Blum Shub~\cite{DBLP:conf/crypto/ShubBB82} Pseudo Random Number Generator (PRNG) 
for security reasons.
It has been indeed proven~\cite{DBLP:conf/crypto/ShubBB82} that this PRNG 
has the cryptographically security property, \textit{i.e.}, 
for any sequence $L$ of output bits $x_i$, $x_{i+1}$, \ldots, $x_{i+L-1}$,
there is no algorithm, whose time complexity is polynomial  in $L$, and 
which allows to find $x_{i-1}$ and $x_{i+L}$ with a probability greater
than $1/2$.
Thus, even if the encrypted message would be extracted, 
it would thus be not possible to retrieve the original one in a 
polynomial time.   






\subsubsection{Minimizing Distortion with Syndrome-Treillis Codes} 
\input{stc}


\subsection{Data Extraction}
Message extraction summarized in Fig.~\ref{fig:sch:ext} follows data embedding
since there exists a reverse function for all its steps.
First of all, the same edge detection is applied to get set,
which is  sufficiently large with respect to the message size given as a key.  
Then the STC reverse algorithm is applied to retrieve the encrypted message.
Finally, the Blum-Goldwasser decryption function is executed and the original
message is extracted.
