Top Banner
170001 : Project I A Project Report on Steganography As partial fulfillment of award of Bachelor of Engineering in Information Technology Submitted by Utsav Patel : 120010116017 Harshil Darji : 120010116045 GTU Group ID 29254 Guided by Prof. Jitiksha Patel A. D. Patel Institute of Technology Gujarat Technological University (Oct - 2015)
23

Steganography Report

Jul 15, 2016

Download

Documents

Pia Darji

Steganography Report
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: Steganography Report

170001 : Project I

A Project Report on

Steganography

As partial fulfillment of award of

Bachelor of Engineering in

Information Technology

Submitted by

Utsav Patel : 120010116017

Harshil Darji : 120010116045

GTU Group ID

29254

Guided by

Prof. Jitiksha Patel

A. D. Patel Institute of Technology

Gujarat Technological University

(Oct - 2015)

Page 2: Steganography Report

Steganography

2

Department of Information Technology

A. D. Patel Institute of Technology

Gujarat Technological University

CERTIFICATE

This is to certify that Patel Utsav Prakashchandra (120010116017) and Darji

Harshil Jagadishbhai (120010116045) of final year Information Technology

have satisfactorily completed their partial/full project work entitled

“Steganography” for the subject 170001-Project-I in the first semester of

academic year 2015-16 for the partial fulfillment of the award of the Bachelor

of Engineering in Information Technology at Gujarat Technological University.

Date: 13 Oct’ 15

Project Guide (Internal)

Prof. Jitiksha Patel

Head of Department Principal of Institute

Dr. N. C. Chauhan Dr. R. K. Jain

Page 3: Steganography Report

Steganography

3

Index

Sr. Title Page

List of figures 4

Acknowledgement 5

1 Introduction 6

2 Objective 7

3 Image Steganography

3.1 Literature survey

3.2 LSB (Least Significant Bit)

8

9

10

4 Requirements

4.1 Functional Requirements

4.2 Non Functional Requirements

12

13

5 Implementation

5.1 Hiding text inside the image

5.2 Extracting text from the image

5.3 Steps for working with tool

14

16

17

6 Diagrams

6.1 Activity Diagram

6.2 Class Diagram

6.3 Sequence Diagram

6.4 Use Case Diagram

19

20

20

21

7 Future work 22

8 References 23

Page 4: Steganography Report

Steganography

4

List of Figures

Fig No. Title Page No.

3.1 Example of LSB Algorithm 10

5.2 Hiding process of Image Steganography 17

5.3 Extraction process of Image Steganography 18

6.1 Activity Diagram 19

6.2 Class Diagram 20

6.3 Sequence Diagram 20

6.4 Use Case Diagram 21

Page 5: Steganography Report

Steganography

5

ACKNOWLEDGEMENT

Sometimes words fall short to show gratitude, the same is happing with us during this project.

The immense help and support receive from faculties and friends overwhelmed us during the

project. The project work has been the most exciting part of our learning experience, which

would be assert us for our future carrier.

We are earnestly express my sincere thanks and sense of gratitude to Dr. R. K. Jain principal of

A D Patel Institute of Technology, who has given me an opportunity to work on such project

development by providing all facilities that are required. I am grateful to Dr. N. C. Chauhan

(Head of the Information Technology department, ADIT) who has helped me in the successful

completion of this project.

We are highly indebted to Prof. Jitiksha Patel (project internal guide) who has provided us with

the necessary information and his valuable suggestion and comment on bringing out this project

in the best possible way.

We are also thankful to everyone who have always been guiding, encouraging and motivating us

throughout the project.

Page 6: Steganography Report

Steganography

6

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.

Mainly four types of steganography are available:

1. Image Steganography

2. Audio Steganography

3. Video Steganography

4. Text Steganography

Steganography become more important as more people join the cyberspace revolution.

Steganography is the art of concealing information in ways that prevents the detection of hidden

messages. Steganography include an array of secret communication methods that hide the

message from being seen or discovered.

Page 7: Steganography Report

Steganography

7

2 Objective

Among all four types of steganography, we will implement only three steganography techniques.

We have divided our project in three modules:

1. Image Steganography

Image steganography is a technique in which user hides private data file within an image

file using various algorithms as mentioned in chapter 3.

In our project, Image Steganography application takes any type of images as input which

acts as media file and text file which acts as data file.

Output image will be in Bitmap (.bmp) format.

2. Audio Steganography

In this type of steganography, user hides private data file within an audio file which is

mainly in wave format and output will be also in wave format.

3. Video Steganography

In video steganography, user hides his/her data file within a video file which is in AVI

format.

We will implement Image and Audio steganography using existing algorithms, but we will

propose a new technique/algorithm for video steganography.

Page 8: Steganography Report

Steganography

8

3 Image Steganography

In Image Steganography, User hides his/her private data file into an image file using some

encryption algorithms mentioned below:

There are lots of algorithms available for Image Steganography. Most popular among them are

LSB (Least Significant Bit) and Spread Spectrum.

LSB (Least Significant Bit) Algorithm in Bitmap:

The LSB (least significant bit﴿ is the 8th

bit that can be flipped from 0 to 1 or from 1 to 0

without any significant change in the total value. This means that the value will be only

affected by only 1.

This means that the image will not be significantly affected when we reserve this bit for our

purpose. If we change the most significant bit (MSB), then the value will be affected by 228.

User can load any type of image as input, but output will be in bitmap (.bmp) format, so any

other user will not be able to manipulate that image.

Spread Spectrum:

The Spread Spectrum Image Steganography (SSIS) method is a data concealing or data

hiding secret communication steganography system in which digital imagery can be used as a

cover or carrier signal.

Spread spectrum enables us to hide a notable amount of information bits inside a digital

image securely so that it cannot be detected by an observer. The data/message can be

extracted with lowest error probability because of error control coding.

Furthermore, the original image is not required to recover the concealed/hidden text. The

proposed receiver possesses a key in order to extract the secret message. The presence of the

concealed message is practically undetectable by human or computer.

Page 9: Steganography Report

Steganography

9

3.1 Literature survey

Following table shows the comparison between both the two algorithms:

Table [3.1] Comparison of LSB and Spread Spectrum

LSB

In Bitmap

Spread

Spectrum

Invisibility High High

Payload Capacity High Low

Robustness against image manipulation Medium Medium

By looking at the above table, we can get the idea about which algorithms to use for our project.

Invisibility of hidden data in both the algorithms is equal, that means if we hide our data using

any of the above algorithms than it will not be visible through naked eye, until and unless any

one has idea about steganalysis.

When we compare both algorithms on the basis of payload capacity then there is a huge different

between both of them. User can hide large amount of data using LSB but user can only hide

limited amount of data if he/she decides to use spread spectrum algorithm.

We can conclude that use of LSB algorithm for Image Steganography is secure way to save or

transmit our private data/message compare to spread spectrum algorithm. So we will use LSB

algorithm for our project purpose.

Page 10: Steganography Report

Steganography

10

3.2 LSB (Least Significant Bit)

The LSB (least significant bit﴿ is the 8th

bit that can be flipped from 0 to 1 or from 1 to 0 without

any significant change in the total value. This means that the value will be only affected by only

1.

Fig [3.1] Example of LSB (Least Significant Bit)

Consider the above example, when we flip the LSB, the value will be affected by only 1. That

means 100 becomes 101. This means that the image will not be significantly affected when we

reserve this bit for our purpose.

Where the most significant bit ﴾MSB﴿ is bit on the leftmost, that when flipped, the value will be

affected by 128 to be 229 instead of 101.

Least significant bit (LSB) Replacement is a commonoly used method for cancealing

confidential data in a carrier image. The LSB of cover image’s bytes is replaced with a bit of the

hidden message.

When using a 24-bit image for steganography, a bit of each of the R, G, B color can be used,

since each of them can be represented by a byte.

Page 11: Steganography Report

Steganography

11

That is one can store 3 bits in each pixel. The image of 800 X 600 pixels, so it can store a total

amount of 1,440,000 bits or 180,000 bytes of embedded data [10].

For example, 3 pixels grid of a 24-bit image can be represented as follows:

(00101101 00011100 11011101)

(10100111 11000101 00001101)

(11010010 10101101 01100011)

When a number 500, which is decimal representation of 11110100, is planted into the LSB then

it will look like:

The resulting grid is as follows:

(00101101 00011101 11011101)

(10100111 11000100 00001101)

(11010010 10101100 01100011)

In our project, first we will convert media file and data file uploaded by the user/sender into

binary representation.

Then we will apply LSB algorithm, in which each least bit (right most bit/8th

bit) of binary media

file is replaced by the single bit of binary data file and then from modified binary representation

of media file, a new encrypted media file is generated.

In extraction process, Encrypted media file is converted into binary representation then all least

bit of binary encrypted media file will be copied and using these bits, the original data file is

generated[4]

.

Page 12: Steganography Report

Steganography

12

4 Requirements

4.1 Functional Requirements:

Functional requirements of our project are as follows:

Media/Carrier File:

This file acts as a carrier file for our data. We can share this file after encrypting or hiding

our data within it.

Data File:

This is the file or data which we want to hide in our carrier file. We can securely send this

file by hiding or embedding it into other media file.

Encryption Algorithm:

This is the algorithm or lines of codes which we can apply to encrypt or to hide our data

within a selected media file.

After encryption, we will get an encrypted media file as an output. We can save or share this

output.

When the intended user receives the encrypted media file, then he/she requires following in

order to retrieve the original message:

Decryption Algorithm:

This is required to decrypt or to extract the original data file from received or saved

encrypted media file.

User then can save this original message or data to particular location on his/her computer.

System Requirements:

Operating System: Microsoft Windows XP or Above

RAM: 512 MB

Tool: Microsoft Visual Studio 2010 Professional

Page 13: Steganography Report

Steganography

13

4.2 Non-functional Requirements

Nonfunctional requirements of our system are as follow:

Performance:

The output media should not contain any distortion and application should be secure to statistical

and comparison steganalysis.

Reliability:

The product should not crash under any circumstances such as user trying to enter invalid values

or unsupported files. It should provide appropriate message for the same.

Portability:

Product should be able to run on any windows based operating system. User only needs to

install/extract necessary files that are required to run the application.

Page 14: Steganography Report

Steganography

14

5 Implementation

As mentioned in topic [3.2], Steganography can be performed by substituting bits of unused data

of commonly used computer files with bits of our important data. In our case, our data will be the

plain text that we need to hide, and the unused data is the least significant bits ﴾LSBs﴿ in the

image pixels.

5.1 Hiding text inside the image:

Get the Red, Green and Blue values separated each in a separate integer through the

entire image.

For each of Red, Green, and Blue values, make the 8th

(least significant bit) equals to 0,

so that it be used to hide the characters of our data.

Convert the current to integer. Then hide its first 8 bits in R1, G1, B1, R2, G2, B2, R3,

G3, where the numbers refer to the numbers of the pixels. In each LSB of these elements

﴾from R1 to G3﴿, hide the bits of the character consecutively.

When all the 8 bits of the character are hidden, go to the next character, and reiterate the

same process until the whole data or text is hidden.

The text can be hidden in a tiny part of the image according to the length of that text. So,

there must be some indicator to indicate the end of the text. The indicator can be 8

successive zeros. This will be helpful when recovering or extracting the private data or

text from the stego image.

for (int i = 0; i < bmp.Height; i++) { for (int j = 0; j < bmp.Width; j++) { Color pixel = bmp.GetPixel(j, i); R = pixel.R - pixel.R % 2; G = pixel.G - pixel.G % 2; B = pixel.B - pixel.B % 2; for (int n = 0; n < 3; n++) { if (pixelElementIndex % 8 == 0) { if (state == State.Filling_With_Zeros && zeros == 8) { if ((pixelElementIndex - 1) % 3 < 2) { bmp.SetPixel(j, i, Color.FromArgb(R, G, B)); } return bmp; } if (charIndex >= text.Length) { state = State.Filling_With_Zeros;

Page 15: Steganography Report

Steganography

15

} else { charValue = text[charIndex++]; } } switch (pixelElementIndex % 3) { case 0: { if (state == State.Hiding) { R += charValue % 2; charValue /= 2; } } break; case 1: { if (state == State.Hiding) { G += charValue % 2; charValue /= 2; } } break; case 2: { if (state == State.Hiding) { B += charValue % 2; charValue /= 2; } bmp.SetPixel(j, i, Color.FromArgb(R, G, B)); } break; } pixelElementIndex++; if (state == State.Filling_With_Zeros) { zeros++; } } } }

Page 16: Steganography Report

Steganography

16

5.2 Extracting the text from the image:

It's very simple process than hiding. We just have to pass through the pixels of the image until

you reach to 8 successive zeros. As you are passing, collect the data from the 8th

position (LSB)

from each R, G, B pixel element and tie it into an vacant or empty value. When all the 8 bits of

this value are tied, convert it to character, then attach that character to your desired result text.

for (int i = 0; i < bmp.Height; i++) { for (int j = 0; j < bmp.Width; j++) { Color pixel = bmp.GetPixel(j, i); for (int n = 0; n < 3; n++) { switch (colorUnitIndex % 3) { case 0: { charValue = charValue * 2 + pixel.R % 2; } break; case 1: { charValue = charValue * 2 + pixel.G % 2; } break; case 2: { charValue = charValue * 2 + pixel.B % 2; } break; } colorUnitIndex++; if (colorUnitIndex % 8 == 0) { charValue = reverseBits(charValue); if (charValue == 0) { return extractedText; } char c = (char)charValue; extractedText += c.ToString(); } } } }

Page 17: Steganography Report

Steganography

17

5.3 Steps for hiding and extraction:

Following are the steps that you can apply to work with developed tool.

Steps for Hiding:

Fig [5.2] Hiding process of Image Steganography

1. Open image: File – Open – Image.

2. Open text: File – Open – Text.

3. Rather than opening a text file, you can directly copy-paste or just write the data into

textbox as shown in above picture.

4. If you want to encrypt your data, then just tick the checkbox and provide a password of

minimum 6 digit length.

5. Now, when you click on “Hide”, your output will be generated. You have to manualy

save the image as: File – Save – Image. (shown in below picture)

Note: Remember the password, otherwise you will not be able to retrieve your data.

Page 18: Steganography Report

Steganography

18

Steps for Extraction:

Fig [5.3] Extraction process of Image Steganography

1. If you want to extract the data from the stego image then open the stego file as:

2. File – Open – Image.

3. Now if you have encrypted your data while hiding, then this time also you need to tick

that check box.

4. Provide the same password which you have entered while hiding process in the password

field.

5. Then click on “Extract”.

6. When you click, data will be shown in the text box. You can save your data as:

7. File – Save – Text.

Page 19: Steganography Report

Steganography

19

6 Diagrams

6.1 Activity Diagram:

Fig [6.1] Activity Diagram

Page 20: Steganography Report

Steganography

20

6.2 Class Diagram:

Fig [6.2] Class Diagram

6.3 Sequence Diagram:

Fig [6.3] Sequence Diagram

Page 21: Steganography Report

Steganography

21

6.4 Use Case Diagram:

Fig [6.4] Use Case Diagram

Page 22: Steganography Report

Steganography

22

7 Future Work

Till now, we have completed image steganography with encryption and decryption of data. We

also completed patent search and canvas development for this semester.

We are remaining with following two modules:

1. Audio Steganography

2. Video Steganography

In future, we will search for different algorithms and research papers related to audio

steganography and video steganography.

We will study that algorithms and research papers and we will use it to implement both the

remaining steganography techniques (audio steganography, video steganography) in C#.NET

using visual studio 2010.

Page 23: Steganography Report

Steganography

23

8 References:

[1] www.creately.com

[2] www.wikipedia.org/wiki/Steganography

[3] www.github.com/Digiex/MCLauncher.NET/blob/master/MCLauncher.net/Crypto.cs

[4] “Comparison of different techniques for Steganography in images” volume 3 – Issue 2 – February

2014 by Mr. Falesh M. Shelke, Miss. Ashwini A. Dongre and Mr. Pravin D. Soni, International Journal of

Application or Innovation in Engineering & Management (IJAIEM)( ISSN 2319 - 4847)