Showing posts with label Multimedia Security. Show all posts
Showing posts with label Multimedia Security. Show all posts

Monday, 28 January 2013

Lena.jpg - The Interesting Story of the Image

The Interesting Story of Lena.jpg


The image above is one that has been widely used in the image compression studies, even today. This actual photo is dated back to November 1972, and was actually a Playboy magazine centrefold. The same image is also commonly used as a cover/host image in the multimedia (image) security researches; ie. steganography and digital watermarking.

The interesting story of this image was published in the May 2001 article in the Newsletter of the IEEE Professional Communication Society by Jamie Hutchinson. An excerpt from the article as follows: 

    Alexander Sawchuk estimates that it was in June or July of 1973 when he, then an assistant professor of electrical engineering at the USC Signal and Image Processing Institute (SIPI), along with a graduate student and the SIPI lab manager, was hurriedly searching the lab for a good image to scan for a colleague's conference paper. They had tired of their stock of usual test images, dull stuff dating back to television standards work in the early 1960s. They wanted something glossy to ensure good output dynamic range, and they wanted a human face. Just then, somebody happened to walk in with a recent issue of Playboy.
For the complete article, please click here.



Lena.jpg that is used in the researches comes with the size of 512x512 pixels (as in the grayscale image above). 

To view the full digitized original image, click here. (Warning: The image contains nudity)

Sunday, 27 January 2013

Matlab Commands: Input/Output and Formatting Commands

Input/Output Commands

disp Displays contents of an array or string.
fscanf Read formatted data from a file.
format Controls screen-display format.
fprintf Performs formatted writes to screen or file.
input Displays prompts and waits for input.
; Suppresses screen printing.

Format Codes for fprintf and fscanf

%s Format as a string.
%d Format as an integer.
%f Format as a floating point value.
%e Format as a floating point value in scientific notation.
%g Format in the most compact form: %f or %e.
\n Insert a new line in the output string.
\t Insert a tab in the output string.


Saturday, 26 January 2013

Matlab Commands: Commands for Managing a Session

Clc
Clears Command window.
clear Removes variables from memory.
exist Checks for existence of file or variable.
global Declares variables to be global.
help Searches for a help topic.
lookfor Searches help entries for a keyword.
quit Stops MATLAB.
who Lists current variables.
whos Lists current variables (long display).

Related links:

Matlab Commands: Operators and Special Characters


+
Plus; addition operator.
-
Minus; subtraction operator.
*
Scalar and matrix multiplication operator.
.*
Array multiplication operator.
^
Scalar and matrix exponentiation operator.
.^
Array exponentiation operator.
\
Left-division operator.
/
Right-division operator.
.\
Array left-division operator.
./
Array right-division operator.
:
Colon; generates regularly spaced elements and represents an entire row or column.
( )
Parentheses; encloses function arguments and array indices; overrides precedence.
[ ]
Brackets; enclosures array elements.
.
Decimal point.
Ellipsis; line-continuation operator.
,
Comma; separates statements and elements in a row.
;
Semicolon; separates columns and suppresses display.
%
Percent sign; designates a comment and specifies formatting.
_
Quote sign and transpose operator.
._
Nonconjugated transpose operator.
=
Assignment (replacement) operator.

Tuesday, 19 June 2012

Breaking a Steganography System

Breaking a Steganography System

Breaking a steganography system can be grouped into three types; detecting, extracting and disabling.

A steganography system already becomes insecure if an attacker could prove the existence of the hidden message. 

While developing a formal security model for steganography, it is then important or more precisely, is a must to assume that an attacker has unlimited computation power and is able and motivated to perform a variety of attacks.

If an attacker could not confirm that a hidden message exists, then the steganography system is theoretically secure.

Passive attacker: Detecting a secret message

The purpose here is decide whether a cover message (c) contains a hidden message or not.

This can be formally defined as a test function, f:c->{0,1}

The covers are classified as they are passed through the insecure channel. In some cases, covers will be correctly classified. In other cases, the covers will not be detected for hidden messages. This is called a type-II error of the test function.

There are also possibilities that the test  function falsely detects a hidden message in a cover which does not contain any message. This is called a type-I error.

A good steganography system tries to maximize to probability that a passive attacker makes a type-II error.

Active attacker: A need for Robust Steganography

Steganographic systems are highly sensitive to cover modifications. Even simple image processing techniques can destroy the message entirely. Some examples of modifications are like smoothing, filtering, cropping, image transformations, etc.

A lossy compression could also result in total loss of information. The nature of lossy compression techniques is to reduce the amount of information by removing the imperceptible signal components. This in turn can also cause the hidden information to be removed.

An active attacker whom could not prove or extract the existence of a secret message can simply add random noise to the transmitted cover. This is an attempt to destroy or disable the hidden information.


Sunday, 17 June 2012

Embedding a watermark image into a cover image using Matlab program

Find below the Matlab codes to embed a watermark image into a cover(host) image:

clear all; close all; clc;

[filename1,pathname]=uigetfile('*.*','Select the host image'); 
image1=imread(num2str(filename1));
imshow(image1); title('Original image');% orginal image for watermarking

[ori_row,ori_col]=size(image1)
host_length=ori_row*ori_col;

i=1;
j=1;
k=1;

[filename2,pathname]=uigetfile('*.*','Select the watermark image'); 

wmimage=imread(num2str(filename2));
[wm_row,wm_col] = size(wmimage);
imshow(wmimage); title('Watermark image');

wm=dec2bin(wmimage);
wm_length=wm_row*wm_col*8;

host=dec2bin(image1);

counter=0; 

while i < host_length
        
        counter=counter+1;
        
        if counter > wm_length
            break;
        end
        
        host(i,8)=wm(j,k);
        k=k+1;
        
        if k>8
            k=1;
            j=j+1;
        end
        
        i=i+1;
end

    key1=wm_row
    key2=wm_col
   
im1=bin2dec(host);
im1=reshape(im1,ori_row,ori_col);
image1(1:ori_row,1:ori_col)=im1(1:ori_row,1:ori_col);

display 'After embed';

imwrite(image1,'wmarked.bmp'); % saves the watermarked image as a bmp file
imshow(image1);title('Watermarked image');

Popular Posts