Web-Based Prototype
Our web-based prototype allows a user to censor an image and to hide this
censored part in the uncensored part of the image. Using the hidden
information, a uncencored version can be reconstructed. The general framework
of the prototype is implemented using the scripting language PHP (about
1000 lines of code) and JavaScript. On user interaction, the prototype
executes a C-program responsible for encoding and decoding a censored part and a
Perl script which embeds or extracts the compressed bit stream
corresponding the censored part into the cover image.
The start page of our prototype can be reached via browser under
http://stego.mia.uni-saarland.de/.
A user can censor as well as uncensor an image by following the respective
links. Whenever a user enters one of the two pages, a new session is started.
This allows different users to use the prototype at the same time. Each session
timeouts after 15 minutes, provided the user does not use the prototype during
this time. All user created data is then deleted.
Censoring
By following the link "Censor!" the user can access the censoring web page. This
page shows a color example image on the left side. The user can upload any other
valid image to this web page. That means any common image format such as
PNG, JPEG, PGM/PPM is possible. However, the file
size is limited by 5 megabytes, and the image resolution has to be less or equal
than 768 x 768 pixels and larger or equal than 32 x 32. For further
processing, the prototype converts any format to the lossless portable pixmap
format (PGM/PPM). Moreover, for showing the images in the browser,
we convert any image to the PNG format. The images shown on the censoring
page are scaled to a width of 350 pixels for visualization purposes. By clicking
on any image, the user receives the image in its original size. Clicking
on the image again leads the user back to the censoring page.
The user can censor the image by dragging the mouse over the desired region in
the image. The size and the position of the created black rectangle can still
be corrected afterwards using the corresponding mouse movements. By pressing
the button "Start censoring *" our compression program is applied on the
censored part of the image using a compression ratio so that it fits to the
space provided by uncensored part of the image. Note that the reconstruction
quality of the recovered censored region later on is depending on the used
compression ratio, which depends again on the size of the selected area. The
larger the selected area, the lower the quality of the reconstruction.
Moreover, the censoring process will even fail
when the size of the compressed censored part exceeds the space provided by
the uncensored part of the image. If this is not the case, the server embeds the
received bit stream as soon as encoding has finished.
During the censoring process, the hiding page reloads every second to prevent
browser timeouts. Moreover, the user can abort the process by clicking on
"Stop censoring!" if he/she wishes to do so.
Otherwise, the user receives the censored image on the right side of the
webpage. The user can now store the censored image. Alternatively one can load
the obtained censored image immediately to the uncensoring page by following
the link "Recover this censoring?" given below the censored image.
There are two additional options available for censoring. For security reasons,
it is desirable to keep the amount of secret bits as small as possible.
Hence, a user can choose between three different quality levels corresponding
to different compression ratios, respectively. "High" uses the minimal
possible compression ratio such that the coded image still fits in the available
space. "Medium" uses twice the compression ratio and "low" even uses
a ratio five times larger than the smallest possible ratio.
The second option is the possibility to specify an alpha-numeric password with a
length of 0 to 32 characters, used by our embedding method to encrypt the
encoded censored image part.
Uncensoring
The uncensoring page allows to recover a censored part withing an image that
was previously hidden by our steganography method. The censored image is
depicted on the left side of the uncensoring web page. As long as the user
does not upload a censored secret, a default example is depicted. It was
previously censored using the password "showmelena" and the quality
setting "low". To recover the censored area, one has to enter the password into
the corresponding input field. Then the user has to decide between two possible
approaches for recovering. Any of those first extracts the embedded bit stream,
which contains the encoded secret. The button "Instant recovering (fast)" starts
a fast implementation of the decoding process of our codec. In contrast, the
button "Step by step recovering (slow)" shows step by step the evolution of the
diffusion reconstruction process. This takes longer than the instant
reconstruction but is visually much more appealing. During uncensoring, the
page (as for censoring) is reloading every second. The user can abort the
recovery process at any time. Finally the uncensored image appears on the web
page.
As on the censoring page the user can click on images to get unscaled versions.
This is also possible for the evolving image.
|