Top Banner
A New Steganographic Method Based on Information Sharing via Images A PROJECT REPORT Submitted by KANNAN. S (070606401020) VACHARAVEL. S (070606401051) LOGANATHAN. P (070606401024) VIJAY VENKAT RAAJ. S (070606401059) in partial fulfillment for the award of the degree of BACHELOR OF TECHNOLOGY in
19
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Documentation

A New Steganographic Method Based

on Information Sharing via Images

A PROJECT REPORT

Submitted by

KANNAN. S (070606401020) VACHARAVEL. S (070606401051) LOGANATHAN. P (070606401024) VIJAY VENKAT RAAJ. S (070606401059)

in partial fulfillment for the award of the degree of

BACHELOR OF TECHNOLOGY in

INFORMATION TECHNOLOGY

CHETTINAD COLLEGE OF ENGINEERING AND TECHNOLOGY

ANNA UNIVERSITY COIMBATORE 641047

MAY 2011

Page 2: Documentation

ANNA UNIVERSITY COIMBATORE 641047

BONAFIDE CERTIFICATE

Certified that this project report “A New Steganographic Method Based on Information Sharing via Images” is the bonafide work of Vijay Venkat Raaj. S, who carried out the project work under my supervision.

<<Signature of the Supervisor>> <<Signature of the Head of the Department>> SIGNATURE SIGNATURE

SUPERVISOR HEAD OF THE DEPARTMENT<<Academic Designation>> <<Academic Designation>><<Department>> <<Department>><<Full address of the Dept & College >> <<Full address of the Dept & College >>

------------------------- ------------------------------------ Internal Examiner External Examiner

Page 3: Documentation

CHAPTER NO. TITLE PAGE NO. List of Tables List of Figures List of Abbreviations

1 Introduction 1.1.1 Company Profile 1.1.2 Objective

2 System Analysis 2.1 Existing System

2.1.1 Drawbacks 2.2 Proposed System 2.3 Feasibility Study

2.3.1 Economical Feasibility 2.3.2 Operational Feasibility 2.3.3 Technical Feasibility

3 System Specification 3.1 Hardware Requirements 3.2 Software Requirements

4 Software Description 4.1 Front End 4.2 Features

5 Project Description 5.1 Problem Definition

5.2 Overview of the Project 5.3 Module Description

5.3.1 Modules 5.4 Data Flow Diagram 5.5 E-R Diagram 5.6 Database Design

5.6.1 Table 1 5.6.2 Table 2

5.7 Input Design 5.8 Output Design

6 System Testing 6.1 Unit Testing 6.2 Acceptance Testing

6.3 Test Cases7 System Implementation

Page 4: Documentation

8 Conclusion & Future Enhancements 8.1 Conclusion 8.2 Future Enhancements

9 Appendix 9.1 Source Code 9.2 Screen Shots

10 References

1. Introduction:

One of the reasons that intruders can be successful is the most of the information they acquire from a system is in a form that they can read and comprehend. Intruders may reveal the information to others, modify it to misrepresent an individual or organization, or use it to launch an attack. One solution to this problem is, through the use of steganography.

Steganography is a technique of hiding information in digital media. In contrast to cryptography, it is not to keep others from knowing the hidden information but it is to keep others from thinking that the information even exists.

For hiding secret information in images, there exists a large variety of steganography techniques some are more complex than others and all of them have respective strong and weak points. Different applications may require absolute invisibility of the secret information, while others require a large secret message to be hidden.

This project report intends to give an overview of image steganography, its uses and techniques. It also attempts to identify the requirements of a good steganography algorithm and briefly reflects on which steganographic techniques are more suitable for which applications.

1.1 Objective:

The objective of steganography is that it involves hiding information so it appears that no information is hidden at all. If a person or persons views the object that the information is hidden inside of he or she will have no idea that there is any hidden information, therefore the person will not attempt to decrypt the information.

What steganography essentially does is exploit human perception, human senses are not trained to look for files that have information inside of them,

Page 5: Documentation

although this software is available that can do what is called Steganography. The most common use of steganography is to hide a file inside another file.

Existing system:

In the Present system, a PNG image is given as the cover image in which the alpha-channel value of each pixel is set to be 255 initially. That is, the cover image is a totally transparent color one at the beginning of the proposed data hiding process.

A data string to be hidden is transformed next into shares by the Shamir’s secret sharing method, which is then embedded into the alpha-channel plane of the cover PNG image. Coefficient parameters involved in the Shamir method are used as carriers of the message data to be hidden in this method.

A prime number used in the method, which is found to dominate the resulting visual quality and data hiding capacity of the stego-image, is selected skillfully. Also, a mapping function is designed for adjusting the alpha-channel values to create uniform transparency in the alpha-channel plane, resulting in a higher steganographic effect in the stego-image. The R, G, and B channels are untouched so that the original image appearance revealed by the color information of these three channels is kept.

Drawbacks:

There are limitations on the use of steganography due to the size of the medium being used to hide the data.

In order for steganography to be useful the message should be hidden without any major changes to the object it is being embedded in. This leaves limited room to embed a message without noticeably changing the original object.

This is most obvious in compressed files where many of the obvious candidates for embedding data are lost. Detecting hidden data remains an active area of research. Further there is prevalence of White noise due to the embedding causing little distortion.

Proposed System:

Our project deals with, encryption and decryption of secret messages inside images, which we concentrate as our cover media.

Page 6: Documentation

We use LSB embedding technique, in which the LSB of the pixel values are replaced with the data to be encoded in binary form, the ‘Masking Technique’ in which the original bits are masked with data bits and certain transformations are done on the image to hide data.

The idea behind the LSB algorithm is to insert the bits of the hidden message into the least significant bits of the pixels. As the application domain of embedding data in digital multimedia sources becomes broaden, several terms are used by various groups of researchers, including steganography, digital watermarking, and data hiding.

A major advantage of the LSB algorithm is it is quick and easy. There has also been steganography software developed which work around LSB color alterations via palette manipulation. LSB insertion also works well with gray-scale images.

SYSTEM SPECIFICATION:

2.1.1 HARDWARE SPECIFICATION

Processor : Pentium IV 2.4GHZ

RAM : 512MB

Hard disk : 40 GB

Foppy drive : 1.44MB

Monitor : 15” VGA color

Mouse : Logitech

Keyboard : 110 keys enhanced

2.1.2 SOFTWARE SPECIFICATION

Operating System : Windows XP/2000

Tool Used : MATLAB R2009b

Language Used : MATLAB language

Page 7: Documentation

SOFTWARE DESCRIPTION:

Front end used:

MATLAB is used as the front end tool for the project. The reasons for choosing matlab are because of its features given below:

Matlab provides a high-level language and development tools that let you quickly develop and analyze your algorithms and applications.

Matlab has development environment called GUIDE (Graphical User Interface Development Environment) for managing code, files, and data and lets you include list boxes, pull-down menus, push buttons, radio buttons, and sliders, as well as MATLAB plots and ActiveX controls. Alternatively, you can create GUIs programmatically using MATLAB functions.

Matlab has interactive tools for iterative exploration, design, and problem solving like,

MATLAB Editor - Provides standard editing and debugging features, such as setting breakpoints and single stepping

M-Lint Code Checker - Analyzes your code and recommends changes to improve its performance and maintainability

MATLAB Profiler - Records the time spent executing each line of code

Directory Reports - Scan all the files in a directory and report on code efficiency, file differences, file dependencies, and code coverage

Matlab provides various types of functions for performing mathematical operations and analyzing data like Matrix manipulation and linear algebra, Polynomials and interpolation, Fourier analysis and filtering, Data analysis and statistics, Optimization and

Page 8: Documentation

numerical integration, Ordinary differential equations (ODEs), Partial differential equations (PDEs) and Sparse matrix operations

Matlab has 2-D and 3-D graphics functions for visualizing data like Line, area, bar, and pie charts, Direction and velocity plots, Histograms, Polygons and surfaces for 2D and surface, contour, and mesh, image plots, cone, slice, stream, and iso surface for 3D types.

MATLAB lets you export your results as plots or as complete reports. Plots can be exported to all popular graphics file formats and then imported into other packages, such as Microsoft Word or Microsoft PowerPoint. Using the MATLAB Editor, MATLAB code can be automatically published in HTML, Word, LaTEX, and other formats.

Matlab provides a number of features for documenting and sharing your work. You can integrate your MATLAB code with other languages and applications and deploy your MATLAB algorithms and applications as stand-alone programs or software modules.

Image Processing Toolbox:

The specified tool used in the project is the image processing toolbox of the Matlab product. It has its own features described below:

The image processing toolbox is useful for performing more complicated operations on images and allows such manipulations as direct visualization of images in MATLAB, Color space conversions.

It focuses on operations like Object grouping and data collection, Filtering and fast convolution, Fourier analysis of images, Image arithmetic and Morphological operations.

Matlab has its own built-in functions for the image processing toolbox like,

To load an image into MATLAB, you can use the import data or you can use the imread function and to save images to a new file, imwrite can be used.

If the image is a color image, MATLAB will convert the image data to the RGB color space by default and the separate channels are represented by the third dimension of the image.

Matlab uses default data type class for images as uint8, which can be converted into class double, to support native arithmetic operations and have functions that can perform addition imadd(), subtraction imsubtract(), multiplication immultiply(), division imdivide() and linear combination imlincomb().

To visualize an image or a section of an image, MATLAB uses the imshow function and convolution, to filter various images.

Page 9: Documentation

Convolution is implemented using imfilter function. The function fspecial contains a number of pre-defined filters that can be used for these purposes. Further to filter an image, MATLAB replaces each pixel of the image with a weighted average of the surrounding pixels. The weights are determined by the values of the filter, and the number of surrounding pixels is determined by the size of the filter used.

Problem Definition:

Noise is undesirable, but in some areas it is very important to get rid of it. But since it is omnipresent, we have to live with it. But some Image Processing Techniques have been developed which lower the effect of noise.

All recording devices, analog or digital, have traits which make them susceptible to noise. Noise can be random or white noise with no coherence or coherent noise introduced by the devices mechanism or processing algorithms.

In steganography, the need for removal of noise is very important as noise in the images else steganalysis through artifacts easier and breaks the system.

Project Overview:

Our project thus, is developed for hiding information in any image file. The scope of the project is implementation of steganography concept for hiding information includes any type of information file and image files and the path where the user wants to save Image and extruded file.

Using LSB embedding technique, it is possible to embed a significant amount of information with no visible degradation of the cover image.

It can be utilized in 2 domains:1. Transformation domain2. Spatial domain

This project deals mainly the use in spatial domain, which is explained below.

3.5 LSB Insertion in Spatial Domain:

Usually 24-bit or 8-bit files are used to store digital images. The former one provides

more space for information hiding however, it can be quite large. The colored representations of

the pixels are derived from three primary colors: red, green and blue. 24-bit images use 3 bytes

Page 10: Documentation

for each pixel, where each primary color is represented by 1 byte. Using 24-bit images each pixel

can represent 16,777,216 color values.

We can use the lower two bits of these color channels to hide data, then the maximum color

change in a pixel could be of 64-color values, but this causes so little change that is undetectable

for the human vision system. This simple method is known as Least Significant Bit insertion

Using this method it is possible to embed a significant amount of information with no visible

degradation of the cover image. Figure 3.11 shows the process.

Several versions of LSB insertion exist. It is possible to use a random number generator

initialized with a stego-key and its output is combined with the input data, and this is embedded

to a cover image. For example in the presence of an active warden it is not enough to embed a

message in a known place (or in a known sequence of bits) because the warden is able to modify

these bits, even if he can’t decide whether there is a secret message or not, or he can’t read it

because it is encrypted. The usage of a stego-key is important, because the security of a

protection system should not be based on the secrecy of the algorithm itself, instead of the choice

of a secret key. Figure 3.2 shows this process. The LSB inserting usually operates on bitmap

images. ‘Steganos for Windows’ and ‘Wbstego’ are LSB inserting software products which are

able to embed data (in clear or encrypted format) in a bitmap image. The embedded data cannot

be considered as a watermark, because even if a small change occurs in a picture (cropping, lossy

compression, color degradation) the embedded information will be lost – although the change

which is occurred during the embedding process is invisible.

Page 11: Documentation

Figure 3.1 Graphical representation of LSB insertion

Figure 3.2 Stego Image formation through LSB insertion

MODULE DESCRIPTION:

MODULES:

There are 2 modules in the project, Encoding and Decoding.

Page 12: Documentation

Encoding Module:

 

Figure 2.16 Graphical representation to encode the hidden data

 

Take the DCT or wavelet transform of the cover image

Find the coefficients below a certain threshold

Replace these bits with bits to be hidden (can use LSB insertion)

Take the inverse transform

Store as regular image

Page 13: Documentation

Decoding Module:

Figure 2.17 Graphical representation to encode the hidden data

Take the transform of the modified image

Find the coefficients below a certain threshold

Extract bits of data from these coefficients

Combine the bits into an actual message

5.4 Data Flow Diagram:

The data flow diagram of the project is as shown. This gets an image form

the file system and sent into the encoding module, encoded with the secret

information and the resulting stego- image is got and saved into the file system.

In case of decoding, the stego image is got as input and then, processed by the

decoding module to get the information

Page 14: Documentation

5.5 E-R Diagram 5.6 Database Design

5.6.1 Table 1 5.6.2 Table 2 5.7 Input Design 5.8 Output Design

6 System Testing 6.1 Unit Testing 6.2 Acceptance Testing

6.3 Test Cases7 System Implementation

8 Conclusion & Future Enhancements 8.1 Conclusion 8.2 Future Enhancements

9 Appendix 9.1 Source Code

9.2 Screen Shots10 References

Page 15: Documentation