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}
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}
has the property of cryptographical security, \textit{i.e.},
for any sequence of $L$ output bits $x_i$, $x_{i+1}$, \ldots, $x_{i+L-1}$,
there is no algorithm, whose time complexity is polynomial in $L$, and
has the property of cryptographical security, \textit{i.e.},
for any sequence of $L$ output bits $x_i$, $x_{i+1}$, \ldots, $x_{i+L-1}$,
there is no algorithm, whose time complexity is polynomial in $L$, and
than $1/2$.
Equivalent formulations of such a property can
be found. They all lead to the fact that,
than $1/2$.
Equivalent formulations of such a property can
be found. They all lead to the fact that,
a first-order derivative (gradient magnitude, etc.) is computed
to search for local maxima, whereas in second order ones, zero crossings in a second-order derivative, like the Laplacian computed from the image,
are searched in order to find edges.
a first-order derivative (gradient magnitude, etc.) is computed
to search for local maxima, whereas in second order ones, zero crossings in a second-order derivative, like the Laplacian computed from the image,
are searched in order to find edges.
-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.
+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.
As the Canny algorithm is well known and studied, fast, and implementable
on many kinds of architectures like FPGAs, smartphones, desktop machines, and
GPUs, we have chosen this edge detector for illustrative purpose.
As the Canny algorithm is well known and studied, fast, and implementable
on many kinds of architectures like FPGAs, smartphones, desktop machines, and
GPUs, we have chosen this edge detector for illustrative purpose.
Two strategies have been developed in our scheme,
depending on the embedding rate that is either \emph{adaptive} or \emph{fixed}.
In the former the embedding rate depends on the number of edge pixels.
Two strategies have been developed in our scheme,
depending on the embedding rate that is either \emph{adaptive} or \emph{fixed}.
In the former the embedding rate depends on the number of edge pixels.
Canny algorithm with an high threshold.
The message length is thus defined to be less than
half of this set cardinality.
Canny algorithm with an high threshold.
The message length is thus defined to be less than
half of this set cardinality.
The message extraction summarized in Fig.~\ref{fig:sch:ext}
follows the data embedding approach
since there exists a reverse function for all its steps.
The message extraction summarized in Fig.~\ref{fig:sch:ext}
follows the data embedding approach
since there exists a reverse function for all its steps.
If the STC approach has been selected in embedding, the STC reverse
algorithm is directly executed to retrieve the encrypted message.
This inverse function takes the $H$ matrix as a parameter.
If the STC approach has been selected in embedding, the STC reverse
algorithm is directly executed to retrieve the encrypted message.
This inverse function takes the $H$ matrix as a parameter.
-Otherwise, \textit{i.e.} if the \emph{sample} strategy is retained,
+Otherwise, \textit{i.e.}, if the \emph{sample} strategy is retained,
the same random bit selection than in the embedding step
is executed with the same seed, given as a key.
Finally, the Blum-Goldwasser decryption function is executed and the original
message is extracted.
the same random bit selection than in the embedding step
is executed with the same seed, given as a key.
Finally, the Blum-Goldwasser decryption function is executed and the original
message is extracted.
-\subsection{Running Example}\label{sub:xpl}
-In this example, the cover image is Lena
+\subsection{Running example}\label{sub:xpl}
+In this example, the cover image is Lena,
which is a $512\times512$ image with 256 grayscale levels.
The message is the poem Ulalume (E. A. Poe), which is constituted by 104 lines, 667
which is a $512\times512$ image with 256 grayscale levels.
The message is the poem Ulalume (E. A. Poe), which is constituted by 104 lines, 667
-words, and 3754 characters, \textit{i.e.} 30032 bits.
-Lena and the the first verses are given in Fig.~\ref{fig:lena}.
+words, and 3754 characters, \textit{i.e.}, 30032 bits.
+Lena and the first verses are given in Fig.~\ref{fig:lena}.
Only 9320 bits (resp. 9227 bits) are available for embedding
in the former configuration where $b$ is 7 (resp. where $b$ is 6).
Only 9320 bits (resp. 9227 bits) are available for embedding
in the former configuration where $b$ is 7 (resp. where $b$ is 6).