Top Banner
Training for BTECH VI Semester Undertaken At DEFENCE LABORATORY (Defence Research & Development Organization) Jodhpur-342011 From 18 May to 15 July, 2011 Project Report On Steganography Using (Java ) Steganography 1
38

Steganography Using JAVA

Apr 21, 2015

Download

Documents

Devendra Sharma
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 Using JAVA

Training for BTECH VI Semester Undertaken At

DEFENCE LABORATORY(Defence Research & Development Organization)

Jodhpur-342011

From 18 May to 15 July, 2011

Project Report OnSteganography

Using (Java )

Steganography 1

Page 2: Steganography Using JAVA

INTRODUCTION TO D.R.D.O

Before India become an independent nation in 1947, the defence of the country was the responsibility of the Defence Department (under the British Rule). Soon after India become independent, the Defence department become the Ministry of Defence, headed by a Minister of the cabinet rank.

According to the constitution of India , the president of India is the supreme commander of the Armed Forces and executive responsibility for national defence rests with the Union Cabinet of which Defence Minister is an important member.

Having developed several advanced defence systems , DRDO has acquired expertise in a wide spectrum of defence technologies. Area of the core competence of the organization include : System and Platform ; Development of complex high-end software packages; Develoment of Functional Material ; Test and Evaluation ; Technology Transfer and Absorption.

In addition Expertise and Infrastructure have been built up for carrying out basic/applied research in areas of relevance to Defence science and Technology , quality Assurance and Safety, project and Technology Management.

Defence Research and Development Organization (DRDO)wasestablished in 1958 by amalgamating defence science organization and some of the technical development establishments . A separate department of defence research and development was formed in 1980, which now administer DRDO and its 50

Steganography 2

Page 3: Steganography Using JAVA

laboratories / establishments . A.P.J Abdul Kalam , who was previously director of the DRDL responsible for India’s missile development program , currently directs DDRO.

Research and development activities at DRDO cover important demarcated disciplines like aeronautics, rocket and missiles , electronics and instrumentation, combat vehicles, engineering , naval system ,research advanced computing , artificial intelligence , robotics, work study, system analysis and life science including high attitude agriculture, physiology , food technology and nuclear medicine. In addition to undertaking research and development activities . DRDO also assist the services by rendering technical advice regarding formulation of requirements, evaluation of systems to be acquired , fireand explosive safety and mathematical and statistical analysis of operational problems.

DRDO has made significant achievements in its efforts to meet the requirements of the three services . The notable developmental successes include flight simulators for aircraft, 68mm reusable rocket pod, brake parachute for fighter aircraft , mini remotely piloted vehicle, light field gun, new family of light weight small arms system, charge line mine clearing vehicle for safe passage of vehicle in battlefield and illuminating ammunitions for enhancing night fighting capabilities.

Cluster weapon systems for fighter aircraft and low level bombing mountain gun, 130 mm SP gun, low level tracking radar Indra- 1st and 2nd for army and air force, light field artillery radar, battlefield surveillance radar, secondary surveillance radar have also been

Steganography 3

Page 4: Steganography Using JAVA

achieved. Bridge layer-tank kartik, military bridging systems capable of withstanding tank load, advanced ship sonar systems, advanced son buoys, naval decoys.

Several high technology projects are in various stages of design and development . The main ballet tank Arjun, incorporating stage-of-art tank technologies with superior firepower , high mobility and excellent protection has been developed the army is producing a limited number of tanks as pre-production series, which are in final stages of evaluation.

A light combat aircraft , which would be lighter than any other combat aircraft and would incorporate modern design concepts and several stage-of –the art technologies, is under full scale engineering development. The integrated Guided Missile Development program is in progress.

Steganography 4

Page 5: Steganography Using JAVA

Index

Abstract……………………………………………………………………..8

Chapter 1: Introduction……………………………………….……………9

Chapter 2.Analysis…………………………………………………………10

Purpose………………..……………………………………….11

Scope…………..……………………………………………....11User Characteristics…..

………………………………………11 Assumptions and Dependency……………………….

……...11

Constraint…………………...………………………………….11

Functional Requirement..…………………………………….12

Chapter 3. Design…….……………………………………………………13

Storing message image into carrier image.………………...13

Micro Level…………………………………..…………………13

Macro Level……………………… ……………………….......14

Decrypt………………………………….………………………16

Data Flow Diagram……………………………………….……18

Chapter 4.Implementation……………………………………………......20

Chapter 5. Testing...……………………………………………………......22

Chapter 6. Post Implementation...………..…………………….…….......24

Chapter 7. User Walkthrough…………………………………….…….....28

Chapter 8. Future Enhancement……………………………………….....30

Chapter 9. References.…………………………………………….……....32

Steganography 5

Page 6: Steganography Using JAVA

ABSTRACT

Steganography is a technique allows a user to securely hide messages in a

cover media and to extract hidden message from the same. Cover media can be images or

videos. The information to be hidden can be a plain text message, another image or anything

that can be represented in binary data . The application is intended to be used to hide

confidential and proprietary information by anyone seeking to hide information. A combination

of both steganography and encryption algorithm provides a strong backbone to our project’s

security. This software has an advantage over other information security systems as both the

key and the hidden messages are stored and transferred so no other person can see the

secret message. Another advantage of this program for individuals is that they do not have to

have any knowledge about steganography or encryption.

Project is developed using Java Development Kit (JDK) 1.6 , Notepad ++. Any

device that can support a Java Virtual Machine for JDK 1.6, along with the necessary memory

and disk storage space will be able to execute our application.

Steganography 6

Page 7: Steganography Using JAVA

Chapter 1

INTRODUCTION

The main and the must feature of all the product is security .so I

have chosen one of the medium steganography to provide security.

Steganography is the art and science of hiding information by embedding

messages within other messages. Steganography works by replacing useless or unused data

in regular computer files (such as graphics, sound, text, HTML, etc.) with different, invisible

information or Using steganography a secret message is embedded in a medium. This hidden

information can be plain text, cipher text, or even images. The existence of the hidden

message is not known except by the sender and receiver. The word is derived from the Greek

words “stegos” meaning covered and “graphia” meaning writing.

The system that has been developed by me hide message behind any image.

PROBLEM DEFINITION

Encrypted data is difficult to decipher, but it is relatively easy to detect.

Encryption only obscures a message's meaning, not its existence. Therefore, steganography,

a technique that hides the existence of a message, is often used to supplement encryption. It's

easy to use and works by replacing bits of data in computer files or communication channels.

Steganography 7

Page 8: Steganography Using JAVA

Chapter 2

ANALYSIS

During analysis we find that there are many techniques for providing security to the

digital data i.e. text, images etc from the miscreants. Some of these are as follows:-

Cryptography.

Steganography.

Water-marking.

Cryptography is an important technique for hiding the message and thus providing

security to the message. Cryptographyis the process of obscuring information to make it

unreadable without some type of special knowledge. In this case the message is not

concealed just scrambled or obscured. It does not hide the fact that the message exists.A

coded message that is unhidden, no matter how strong the encryption, will arouse suspicion

and may in itself be problematic.

Another technique for providing security to the digital data is water-marking. A digital

watermark is a pattern of bits inserted into a digital image, audio or video file that identifies the

file's copyright information (author, rights, etc.). Digital watermarks are designed to be

completely invisible, or in the case of audio clips, inaudible. In digital watermarking the purpose

of inserting the bits is to protect the cover image rather than the encrypted bits.

With steganography this problem is resolved. While cryptography and steganography are

related, there is a difference between the two. The obvious advantage of steganography over

cryptography is that messages do not attract any attention. Steganography conceals the fact

that the message exists by hiding the actual message in another. The “cover” is the medium

which is used to hide the secret information. Cover media is an image or a sequence of

images. The

information to be hidden is another image. The message can also be scattered randomly

throughout the image.

Steganography 8

Page 9: Steganography Using JAVA

In steganography since message is hidden behind the cover and it is cover which is visible,

when in encrypted form, thus providing security to the digital data.There is no suitable

encryption technique for images other than the steganography. An image contains thousand

words so hiding of an image is a hiding of thousand words. Thus we have chosen

steganography as My Training project as it is more reliable and secured than other two

techniques.

System Requirement Specification:-

Purpose:-

An image contains thousand words so hiding of an message is a hiding of thousand

words. So the main purpose of our project is to hide a message into a cover image.

Scope:-

Message will be hidden into a cover image.

A large message will be hidden into multiple cover images.

A comparator will distinguish between normal cover image and image after encryption.

User characteristics:-

A user with brief knowledge about computer will be able to use our software for hiding

message. And software developers will be able to use it as a module in other project.

Assumptions and Dependencies:-

Alpha (the transparency factor of image) remains same for each pixel of image, so we

will not use the alpha value of cover image for storing message.

Size and cover images is dependent upon the size of message.

Constraint:-

The resultant image should be in bmp or png format because it is a loss less

compression of image.

Steganography 9

Page 10: Steganography Using JAVA

Functional Requirements:-

Store:-

It will encrypt the message into the cover image.

Input: - Message , Carrier image.

Operation: - Bits of the carrier message will be manipulated for storing the

Message image.

Output: - Encrypted image.

Retrieve:-

It will decrypt the encrypted for retrieving the message image.

Input: - Encrypted image.

Operation: - Bits of the encrypted image will be manipulated for retrieving the

message image.

Output: - Message.

Steganography 10

Page 11: Steganography Using JAVA

Chapter 3

DESIGN

Design is a meaningful engineering representation of something that is to be built. It can

be traced to a customer’s requirements and at the same time accessed for a quality against a

set of predefined criteria for good design.

Storing message into carrier image

We are using least significant bit insertion method. In this method the LSB of each RGB

color component in the image is used to store the secret data. The resulting changes are too

small to be recognized by the human eye. The disadvantage of this technique is that since it

uses each pixel in an image, a lossless compression format like bmp or gif has to be used for

the image. If lossy compression image ( JPEG) is used, some of the hidden information might

be lost.

Micro Level (bit level):

First of all the message bits are ANDed with 0x01 and then carrier bits are ANDed with

0x0xFE. The resultant carrier bits are ORed with altered message bits to store the message

into carrier.

This method is shown in following formula:-

Pmsg AND 0x01 => Pmsg `

Pcarr AND 0xFE => Pcarr `

Pcarr ` OR Pmsg ` => Pcarr ``

This is explained by the following figures:-

Steganography 11

Page 12: Steganography Using JAVA

1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1

Pmsg

Pcarr

Alpha Red Green Blue

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 00x fffffffe

1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 1 1 0Pcarr`

AND

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1Pmsg`

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 10x01

AND

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1Pmsg`

OR

1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 11 1Pcarr``

Bit Pattern Depicting Above Explained Formula

Like this we will take next one bit of message by right shifting it by 1,2,3…. and then it is ORed

with the carrier pixel .

Macro Level (image level):

Carrier image must be at least 8 times than the message. Because a bit of message is stored

into the 1 pixels of carrier image and some extra information like length of message is also

stored into the carrier image.

Steganography 12

Page 13: Steganography Using JAVA

1 0 1 1 1 0 0 1

Message

1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 10 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 11 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 11

Steganography 13

Page 14: Steganography Using JAVA

Message Length in Encrypted image

1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 1

Extra Information About Message Image

123.....32

Decrypt

For retrieving message first of the image is checked, some message encrypt in the image or

not, if it is then pixels of given image are retrieved. And decrypt the message.

First of all message length retrieved from the first 32 pixel ,then according to message

length ,message retrieved from given carry image pixels.

First of all the carry image bits are ANDed with 0x01, this gives first one bits of message

. and new bit ORed with new message byte. Further new message byte left shift by one. And

repeat the process up to message length and encrypted will be in new message byte.

Pcarr AND 0x01 => Pmsg1

Pnew-message ORPmsg1 => Pnew

Steganography 14

Page 15: Steganography Using JAVA

1 1 1 1 1 1 1 1 1 1 1 0 1 111 1 1 1 0 0 1 11 1 0 1 1 1 1 0 0Pcarr

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 10x01

AND

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Pmsg1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Pnewmessage

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000Pmsg1

OR

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00Pnewmessage

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Continue with same process with new pixel and save bit in Pnewmessage

(a)

<< 1 (left shift)

Pnewmessage

Steganography 15

Page 16: Steganography Using JAVA

Steganography

Message , carrier image

Encrypted image

Encrypted image

Message

CONTEXT DIAGRAM:

1-LEVEL DFD

Store1

Retrieve2

Message , carrier image

Encrypted image

Encrypted image

Message

Data Flow Diagrams:-

Steganography 16

Page 17: Steganography Using JAVA

2-LEVEL DFD

Get message1.1

Get carrier image1.2

Bit generator1.3

Encryptor1.4

Image generator1.5

Encrypted image

Get encrypted Image2.1

Check message2.2

Bit generator2.3

Message 2.5

Message

Steganography 17

Page 18: Steganography Using JAVA

Chapter 4

IMPLEMENTATION

The GUI will contain a “Check” object, and will instantiate “Encode” and“Decode” objects as

needed to encode and decode images. User will respond to all of theuser’s events and set the

progress bar to visible when an encryption process is started.

Field Summary

Integer WalkThroughState

Contains information regarding the current state of the walkthrough.

JFrame progressPopUp

A dialog box for the progress bar.

JProgressBar codingProgress

Shows the user the status of the coding process.

User Panel

JPanel - Panel

The main panel of the application contains a text tab and an image tab as

described below.

JTextArea - t1,t2,t3

This is the text area into Encode , the user types the text to be hidden

within an image.and file path and new file path also save in TextArea.

.

BufferedImage - image

This tab is also located within the panel. Its sole purpose is to contain an

image, for pixel grab work for encryption and create new image after encryption.

JTextArea - t

Steganography 18

Page 19: Steganography Using JAVA

This text box contain a image path of decoing image.

.

Functional Panel

JButton – button , b1

button will load the image for decode and b1 will load a decode process in Decode.java.

JButton – b1,b2,b4,b5

b4 will load image for encryption.

b2 will load path of new image to be saved.

b1 will load a process of encryption.

b5 will load a back process for encode decode option

in Encode.java

JTextArea - T

This box will contain a decrypted message in decoding process In Showmsg class.

Constructor Summary

GUI()

Instantiates, adds, and sets listeners for all interactive components. Instantiates object and

JProgressBar

Steganography 19

Page 20: Steganography Using JAVA

Chapter 5

TESTING

I applied many tests on our project and i encountered many bugs and successfully

debugged them by using several test modules. Some test cases are as follows: -

Test: Encryption unit

Test 1: Size test:

Test approach: Here we took different images of different sizes.

Goal and result: This test is performed for checking the maximum size of the message

and carrier image. Message can not be more than 32 times of image size.

Test 2: Image comparison:

Test approach: Here we compared bit patterns of the message , cover image and

encrypted image.

Goal and result: This test is performed for checking whether the message is being

stored into the cover image. As a result we found that the bit pattern of the normal cover image

is different from the encrypted image.

Test 3: Logic testing:

Test approach: Here we compared the bit pattern of the encrypted image being made

and the encrypted image stored on the disk.

Goal and result: This test is performed for checking the bit pattern of the stored

encrypted image and encrypted image being made. As a result we found

that the information stored at alpha value is lost because the alpha value for every pixel

remainssame.

Steganography 20

Page 21: Steganography Using JAVA

Test: Decryption unit

Test 4: Decryption of message image stored in multiple carrier images.

Test approach: Here we took different carrier images in different order. And some time

leave some carrier images.

Goal and result: This test is performed for checking whether the message can be

decrypted from encrypted images , and effect of loosing any one of the encrypted message bit.

As a result we found that the encrypted message can be decrypted in any order. Also

message can be made after loosing any of the part of encrypted images, but the part of the

message, which was in the lost encrypted image, remained undetermined and difficult to find

that type of problem, and means it is lost.

Steganography 21

Page 22: Steganography Using JAVA

Chapter 6

POST IMPLEMENTATION

Welcome Page

Steganography 22

Page 23: Steganography Using JAVA

Option for Encode and Decode

Steganography 23

Page 24: Steganography Using JAVA

Storing Message in png Image

Steganography 24

Page 25: Steganography Using JAVA

Retrive Encrypted Message from Image

Successfully Message Decoding and Message show.

Steganography 25

Page 26: Steganography Using JAVA

0

1

5

2

6

3

4

7

Chapter 7

THE USER WALKTHROUGH

A portion of the main GUI is devoted to the user walkthrough. This walkthrough willlead

first time users through the process of encoding and decoding message and in its final

stepinitiate the actual encoding or decoding of the user’s text. The user may prepare for and

perform encoding and decoding at any time without the use of the walkthrough.Consult the

following flow chart and corresponding description of states to understand the walkthrough

process.

The box below explains how each state will be described. Each has a unique state number.

The following boxes detail each state.

Steganography 26

Page 27: Steganography Using JAVA

State 0:

There will be two buttons one for message encoing and second for message decoding.

State 1:

Choose a carrier image.

State 2:

Enter message.

State 3:

Choose path to create a new images.

State 4:

Press “Continue” button and wait for while a progress bar not completed.

And message encode successfully message will be show.

State 5:

Choose encrypted images for the required message to de decrypted.

State 6:

Press “decode it” button

State 7:

After successfully decoding , message will be show in new panel.

Chapter 8

Steganography 27

Page 28: Steganography Using JAVA

Message part

MI 1

MI 2

MI 3

MI 4

Carrier Images

MI 1

MI 2 MI 4

MI 3 MI 4

MI 1MI 3

MI 2

FUTURE ENHANCEMENT

Our project can be further extended by little bit of efforts. Various security enhancing and fault

tolerant features can be implemented easily. They are as follows:-

1. Further this product can be used to send the video clips and image similar in the

fashion as that message is send.

2. Another extra security can be provided by saving the part of message

redundantly in more than one carrier. Thus message can be retrieve even if one carrier is

lost or destroyed. Thus, making our product fault tolerant.

Fault Tolerant Approach

3. Another security enhancement feature is by the use of random function. The

message can be bifurcated into four or more quadrants and similarly the carrier image. Then

Steganography 28

Page 29: Steganography Using JAVA

Random functionMI 1

MI4

MI 2

MI 3

MI 4 MI 1

MI 3MI 2

Message Image

Encrypted Image

a random function is used to decide which part of message image is to be stored in which

quadrant of the carrier image. Thus enhancing the security aspects.

image hiding using random function

Steganography 29

Page 30: Steganography Using JAVA

Chapter 9

REFERENCES

[1] Java Swing, [Loy,Eekestein,Wood,Elloit & Cole].

[2] JAVA PLATFORM ,[DEITTLE].

[3] Complete Reference, [Herbert Schildt].

[4].Park, Jihyun,   Jeong, Yeonjeong,   Yoon, Ki-Song,   Ryou, Jaecheol; “Persistent content

protection among the heterogeneous devices”, Consumer Electronics, 2007. ISCE 2007, IEEE

International Symposium, pp: 1-5.

[5] Ziolkowski, Bartlomiej,   Stoklosa, Janusz: “Steganography”, Computer Information

Systems and Industrial Management Applications, 2007. CISIM '07, 6th International

Conference,, pp: 213-218

.

[6] www.realnetworks.com.

[7] en.wikipedia.org/wiki/Steganography.

[8] www.sun.java.com.

Steganography 30