You are on page 1of 41

IMAGE STEGANOGRAPHY

A Minor Project report submitted to Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal towards fulfillment of partial Degree of Bachelor of Engineering In Computer Science and Engineering

Guided By:-

Submitted By :-

PROFORMA FOR SUGGESTIONS OF MINI PROJECT PROPOSAL Enrollment No: College Name: Branch: Sem:

E-mail: 1. Name of the Student: 2. Title of the Project: Image Steganography. 3. Name of the Guide: 4. Education Qualification of the Guide: B.E.. 5. Working/Teaching experience of the Guide: 6. Software used in the Project: VB, JDK 1.6.0. Name and Signature of the Student: Date: Suggestions for the Project if any: . Name, Designation and Date:.

CERTIFICATE OF AUTHENTICATED WORK

This is to certify that the project report entitled IMAGE STEGANOGRAPHY submitted to R.G.P.V. Bhopal in fulfillment of the partial requirement for the award of the degree of Bachelor of Engineering is an original work carried out by YOUR NAMES HERE WRITE under my guidance. The matter embodied in this project is

authentic and is genuine work done by the student and has been submitted whether to this University or to any other University/Institute for the fulfillment of the requirement of any course of study.

Name and Signature of the Student:

Name, Designation and Signature of the Guide:

Date:..

Date:

RECOMMENDATION A minor project report entitled IMAGE STEGANOGRAPHY, submitted by WRITE YOUR NAMES HERE is recommended and forwarded for fulfillment of degree of Bachelor of Engineering in Computer Science and Engineering of Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal, for academic year of 2010-11.

Mr. Project Guide, Department of Computer Science and Engineering

Mr. Head of Department Computer Science and Engineering

CERTIFICATE

A minor project report entitled IMAGE STEGANOGRAPHY, submitted by WRITE YOUR NAMES HERE is recommended and forwarded for partial fulfillment of degree of Bachelor of Engineering in Computer Science and Engineering of Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal, for academic year of 2010-11.

INTERNAL EXAMINER Date: .............

EXTERNAL EXAMINER Date: .............

ABSTRACT
Steganography is the art of hiding the fact that communication is taking place, by hiding information in other information. Many different carrier file formats can be used, but digital images are the most popular because of their frequency on the internet. 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.

ACKNOWLEDGEMENT
Expressing gratitude is a difficult task, and words often fall short of reflecting ones feelings. It is our proud privilege, however to do so and we undertake this task with utmost sincerity. A number of people were instrumental in the creation of this project work and we would like to take the time to express our thanks to each of them. With great pleasure and sense of obligation, we express our heartfelt gratitude to Mr. our reverend supervisor. We are highly indebted to him for his invaluable and ever ready support in successfully completing this project in stipulated time. His persistent encouragement, perpetual motivation to work as a team and his expertise in discussion during progress of the work has benefited us to an extent, which is beyond expression. His contribution is beyond the preview of acknowledgement. Working under his guidance has always been a fruitful and unforgettable experience, which is a valuable gift for an engineer to succeed in his future. We are ever grateful to Mr. , Head, Computer Science & Engineering Department, , Indore for his encouragement throughout our work. We would also like to thank Mr. Indore for providing all facilities and academic environment for our work. We sincerely express our gratefulness to all the staff members of Computer Science & Engineering Department and all those who have embedded us with technical knowledge of computer technology. We would also like to thank our parents for being a constant source of encouragement in all our endeavors. Indeed it was their support that saw us through the many ups and downs of life. The support and suggestion of friends are worth our appreciation and thankfulness. The successful completion of a project is not an individual effort, rather it is an outcome of the cumulative effort of a number of people; each having their own importance to the objective. This section is a vote of thanks and gratitude towards all those people who have directly or indirectly contributed in their own special way towards the completion of this project.

TABLE OF CONTENTS

1. INTRODUCTION 1.1 Background 1.2 Objectives 1.3 Purpose, Scope, and Applicability 1.4 Achievements 1.5 Organization of Report 2. SURVEY OF TECHNOLOGIES 2.1 Linux Operating System 2.2Java Programming Language 2.3 NetBeans 2.4 Umbrello

3. RQUIREMENTS AND ANALYSIS 3.1 Problem Definition 3.2 Requirements Specification 3.3 Planning and Scheduling 3.4 Software and Hardware Requirements 3.5 Software Process Model 3.6 Conceptual Models

4. IMPLEMENTATION AND TESTING 8

4.1) Testing Objectives 4.2) Test Cases 5. RESULTS AND DISCUSSION 5.1)Snapshots 6. CONCLUSIONS 6.1) Conclusion 6.2) Future Enhancement REFERENCES GLOSSARY APPENDICES

1.1) BACKGROUND:
9

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.

1.2) OBJECTIVE
The goal of the project is to build a tool based on image steganography, mainly focused on embedding text data in digital images. The same tool deembedded produces the hidden message for the receiver the image and

PURPOSE, SCOPE AND APPLICABILITY


1.3.1) Purpose:
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.

1.3.2) Scope:
This project is developed for hiding information in any image file. The scope of the project is implementation of steganography tools for

10

hiding information includes any type of information file and image files and the path where the user wants to save Image and extruded file.

1.3.3) Applicability:
The growing possibilities of modern communications need the special means of security especially on computer network. The network security is becoming more important as the number of data being exchanged on the internet increases. Therefore, the confidentiality and data integrity are requires to protect against unauthorized access and use. This has resulted in an explosive growth of the field of information hiding

1.4) ACHIEVEMENTS
Following are the achievements of the project team members: It provided us the opportunity to demonstrate originality, teamwork, inspiration, planning and organization. Employment of system analysis and design techniques ensuring project initiation. Met all expectations of project guides and completed all specified work in time. Followed strict guidelines of project mentor. All project deliverables completed till date were submitted to the guide. Good team cooperation and communication maintained at all stages and suggestions incorporated as desired. All milestones were met as planned.

1.5) ORGANIZATION OF REPORT


The projects report till gives only the introduction of application. The description that follows further gives detail and how the system works. Most importantly, it 11

includes the realization of various technologies and tools into practice. Further detailing about requirement analysis, software and hardware requirements, various conception models including Data Flow Diagrams, use case diagram, activity diagram, sequence diagram, and many. Then it follows system designs that include basic modules, logic diagrams, and data structures involved. Finally, Conclusion, future enhancement of the project, references are mentioned.

12

2.1 Linux Operating System


It is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL and other free licenses. Linux is predominantly known for its use in servers, although it is installed on a wide variety of computer hardware, ranging from embedded devices and mobile phones to supercomputers. Linux distributions, installed on both desktop and laptop computers, have become increasingly commonplace in recent years, owing largely to the popular Ubuntu distribution and to the emergence of net books. The name "Linux" comes from the Linux kernel, originally written in 1991 by Linus Torvalds. The rest of the system, including utilities and libraries, usually comes from the GNU operating system announced in 1983 by Richard Stallman. The GNU contribution is the basis for the Free Software Foundation's preferred name GNU/Linux. The primary difference between Linux and many other popular contemporary operating systems is that the Linux kernel and other components are free and open source software. Linux is not the only such operating system, although it is by far the most widely used. Some free and open source software licenses are based on the principle of copy left, a kind of reciprocity: any work derived from a copy left piece of software must also be copy left itself. The most common free software license, the GNU GPL, is a form of copy left, and is used for the Linux kernel and many of the components from the GNU project.

13

Linux based distributions are intended by developers for interoperability with other operating systems and established computing standards.

2.1.1) OPEN SOURCE


The term open source software or OSS refers to software in which the source code is freely available to all. The purpose of OSS is to encourage collaborative work often through broad participation in software projects across business and geographical boundaries.

The Open Source Initiative defines OSS as having following features: The Software and the source code must be freely distributable. All must be able to modify the source code and create derived works. To maintain the integrity of the original authors work, the license may require that changes to the code be provided in patch form. The license must be nondiscriminatory with respect to persons, groups or fields of endeavor; it must be free of restrictions that can limit the license.

2.1.2) LINUX P R I N C I P L E S
LINUX is based on certain various principles which form the basis for its development and also future versions.

Everything is a File
UNIX systems have many powerful utilities designed to create and manipulate files. The UNIX security model is based around security of files. By treating everything as a file, consistency emerges. One can secure access to hardware as one can secure access to a document.

Small, Single purpo se programs


UNIX provides many small utilities that perform one task very well. When new 14

functionality is required a sequence program is being created rather than to extend an existing utility with new features.

Ability to chain progra ms together to perform Complex Tasks


A core design of feature of UNIX is that the output of one program can be input for another. This gives the user the flexibility to combine many small programs together to perform a large complex task.

Configura tion Data stored in text


Text is a universal interface and many UNIX utilities exist to manipulate texts. Storing configuration in texts allows an administrator to move a configuration from one machine to another easily.

2.1.3) PROGRAMM ING IN LINUX


Most Linux distributions support dozens of programming languages. The most common collection of utilities for building both Linux applications and operating system programs is found within the GNU tool chain, which includes the GNU Compiler Collection (GCC) and the GNU build system. Amongst others, GCC provides compilers for ADA, C, C++, Java, and FORTRAN. The Linux kernel itself is written to be compiled with GCC. Proprietary compilers for Linux include the Intel C++ Compiler, Sun Studio, and IBM XL C/C++ Compiler.

Most distributions also include support for Perl, Ruby, Python and other dynamic languages. Examples of languages that are less common, but still supported, are C# via the Mono project, sponsored by Novell, and Scheme. A number of Java Virtual Machines and development kits run on Linux, including the original Sun Microsystems JVM (HotSpot), and IBM's J2SE RE, as well as many opensource projects like Kaffe.

15

2.2Java Programming Language


Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to byte code (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture.

2.2.1 Java Features


Java is simple: Java was designed to be easy to use and is therefore easy to write, compile, debug, and learn than other programming languages. Java is much simpler than C++ is because Java uses automatic memory allocation and garbage collection where else C++ requires the programmer to allocate memory and to collect garbage. Java is object-oriented: Java is object-oriented because programming in Java is centered on creating objects, manipulating objects, and making objects work together. This allows you to create modular programs and reusable code. Java is platform-independent: One of the most significant advantages of Java is its ability to move easily from one computer system to another. 16

The ability to run same program on many different systems is crucial to World Wide Web software, and Java succeeds at this by being platform-independent at both the source and binary levels.

2.3 NetBeans
A free, open-source Integrated Development Environment for software developers. You get all the tools you need to create professional desktop, enterprise, web, and mobile applications with the Java language, C/C++, and even dynamic languages such as PHP, JavaScript, Groovy, and Ruby. NetBeans IDE is easy to install and use straight out of the box and runs on many platforms including Windows, Linux, Mac OS X and Solaris. The NetBeans IDE 6.8.1 provides several new features and enhancements, such as rich PHP, JavaScript and Ajax editing features, improved support for using the Hibernate web framework and the Java Persistence API, and tighter GlassFish v3 and MySQL integration.

2.4 Umbrello
In computing, Umbrello UML Modeller is a free software UML diagram application available natively for Unix-like platforms, as well as Microsoft Windows (as part of KDE-Windows). It is part of the KDE SC 4 but works well with other desktops and programming environments. Umbrello handles all the standard UML diagram types. It can reverse engineer code written in C++, IDL, Pascal/Delphi, Ada, Python, and Java, as well as import XMI files generated by external tools from PHP or Perl code and export to various programming languages. Umbrello allows distribution of model contents by exporting to DocBook and XHTML formats. This aids in collaborative development efforts where team members may not have direct access to Umbrello, or in cases where model contents should be published on a web site. It is released along the kdesdk module of KDE. 17

3.1 Problem Definition


In todays dynamic and information rich environment, information systems have become vital for any organization to survive. With the increase in the dependence of the organization on the information system, there exists an opportunity for the competitive organizations and disruptive forces to gain access to other organizations information system. This hostile environment makes information systems security issues critical to an organization. Current information security literature either focuses on unreliable information by describing the information security attacks taking place in the world or it comprises of thetechnical literature describing the types of security threats and the possible security systems.In order to secure the transmission of data, Cryptography has to be implemented. Cryptography is the science of devising methods that allow information to be sent in a secure form in such a way that the only person able to retrieve this information is intended recipient.The basic principle is this: A message being sent is known as plaintext. The message is then coded using a Cryptographic Algorithm. This process is called Encryption, an Encrypted message is known as Cipher Text, and is turned back into plaintext by the process of decryption. Encryption can be done using Symmetric or Asymmetric Algorithms. In Symmetric algorithms, only one key is used both to encrypt and decrypt the message. In Asymmetric Algorithms, a key used to encrypt a message is different from the key that is used to decrypt the message. There are several algorithms present in the market for Cryptography. Some of the commonly used once are IDEA and RSA that involves Asymmetric or Symmetric methods and also involves private and public keys.

18

3.2 REQUIREMENTS SPECIFICATION


1) Information in less size of data : As the technique is use full for hiding the secret messages and their existence as well. That work is done by making very little change in image files raw bit value amd then creating the new image file. Because of that image get slightly changed. Thus there is Limited capacity of an image to store message. 2) Proper input: The input can be either entered in text box or by selecting a text file. That must be in those letters included in ASCII value table, not in any other language.

3.3 PLANNING AND SCHEDULING


The successful analysis and designing of this project is the result of proper planning. First, we analyzed the problem to find out what is required? Proper analysis is accomplished with good communication with the client. This proper analysis gave arise to suitable designing. Several design diagrams represent proper understanding of the project. 3.3.1) SYSTEM FEASIBILITY After the analysis of the requirement from the proposed system and specification of the 19

proposed system a feasibility study of the projected system is conducted. The feasibility study is done to find whether the system is beneficial to user and organization or not. The feasibility study is carried out to select the best system that meets performance requirements. The feasibility study includes the investigation of the information needs of the end user and objectives, constraints, basic resource requirement and cost benefits. The main and prime objective of feasibility study is not to solve the problem but to acquire a sense of its scope.

3.3.2)

TECHNICAL FEASIBILITY

That tool support almost all popular image formats including JPEG, PNG, BMP etc. That tool specially developed for Linux platform but it work on window as well.

20

3.4 SOFTWARE AND HARDWARE REQUIREMENT


3. 4.1) HARDWARE SPECIFICATION
Development Field 512 MB of RAM 2 GB of disk space Pentium P4 processor 1.66 GHz or above.

Deployment Field

Processor speed:

MINIMUM 200 MHz Pentium class or better SUGGESTED 233 Hz Disk space:

MINIMUM 90 MB SUGGESTED 1 GB

3.4.2) SOFTWARE SPECIFICATION Development Field Java1.6 UMLet_10_3 21

Linux

Deployment Field Operating System: Windows (98 or higher), LINUX, UNIX. NetBean 6.8

3.5

SOFTWARE PROCESS MODEL


Waterfall model: The water fall
is a sequential design process, often used in software development process , in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance. The waterfall development model originates in the manufacturing and construction industries: highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardwareoriented model was simply adapted for software development.

22

Fig.3.1 Waterfall model


3.6 CONCEPTUALMODEL

3.6.1) USE CASE DIAGRAM

23

select text file

enter text manually

select image file User embed text

deembed text

Fig.3.2 Use case diagram Description: The use case daigram shows the complete list of task a user can perform with the a software. Here in that case the use case daigram shows all details of task including embedded and deembbed.

3.6.2) SEQUENCE DIAGRAM A) Send er

24

Fig.3.3 Sequence diagram (Sender)


Description: The sequence diagram shows the complete set of steps followed for completing a particular task with it's negative cases. Here two sequence diagram shows the

B) Receiver 25

Fig 3.2 Use Case Diagram

Fig.3.4 Sequence diagram (receiver)

3.6.3) ACTIVITY DIAGRAM

26

A) Sender

Sequence Diagram

Fig.3.5 Activity Diagram (Sender)

Description: Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, : iteration and concurrency. In the Unified Modeling Language, activity diagrams can be used to describe the business and operational stepby-step workflows of components in a system. An activity diagram shows the overall flow of control.

B) Reciever
27

Fig.3.6 Activity Diagram (receiver)

Description Sequence

28

Actor

3.6.4) STATECHART DIAGRAM

select text

select file

select text manually

invalid file

select image file

invalid text

Fig.3.7 Statechart Diagram


Description: A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction. There are many forms of state diagrams, which differ slightly and have different semantics

29

3.6.5) collaboration Diagram:

Fig.3.8 Collaboration Diagram


Description: Collaboration diagrams belong to a group of UML diagrams called Interaction Diagrams. Collaboration diagrams, like Sequence Diagrams, show how objects interact over the course of time. However, instead of showing the sequence of events by the layout on the diagram, collaboration diagrams show the sequence by numbering the messages on the diagram. This makes it easier to show how the objects are linked together, but harder to see the sequence at a glance.

30

3.6.6) Class Diagram:

Fig.3.9 Class Diagram

Description: In software engineering a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes their attributes, operations (or) methods and the relationships between the classes.

4.1) TESTING OBJECTIVES

31

Objective of Testing is to find out as many as error as possible and to make software more reliable and easily maintainable. A good test is one which uncovers an error. Testing leads to a software on which we can say with surety that this software is reliable and is tested and will work. This depends upon the amount of testing. One thing to be noted is that we can not test exhaustively because the amount of test cases is infinite so we choose optimal amount of the testing not too much nor too less and depending upon the closeness of the testing to the optimal level.

The Major Objectives of Software Testing:


Uncover as many errors (or bugs) as possible in a given timeline. Demonstrate a given software product matching its requirement specifications. Validate the quality of software testing using the minimum cost and efforts. Generate high quality test cases, perform effective tests, and issue correct and helpful problem reports. Ensure the Product is Bug Free before shipment/release

4.2) Test Cases


32

Sl. No. 1.

Test case

Expected Result

Actual Result Did not Proceed Did not Worked

Final Remark Correct

Test incorrect Image file

with Should not Proceed Should With them with Should Embedded 100 Them with of a Should embedded and should recover from Image created file. of size

2.

Test for special @ ! etc).

Incorrect

Symbols like (. / \ work

3.

Test Message Size image character 40X50 pixels Test with String

Did not embedded

Incorrect

4.

Embedded and then recovered successfully

Correct

5.1) Snapshots:

33

5.1.1) Main Window:

Fig.5.1 Main Window

34

35

6.1 CONCLUSION
The challenge of cryptography is developing a system in which it is impossible to determine the key. This is accomplished the use of a one-way function. With a one-way function, it is relatively easy to compute a result given some input values. To encrypt data, enter the data plain text and an encryption to the encryption portion of the algorithm. To decrypt the cipher text a proper decryption key is used at the decryption portion of the algorithm. Programming environment. The program written for encryption and decryption using Tiny Encryption Algorithm is tested on several textual files and results are observed. The program could achieve a better secure transferring of files between the server and various clients Since ancient times, man has found a desire in the ability to communicate covertly. The recent explosion of research in watermarking to protect intellectual property is evidence that steganography is not just limited to military or espionage applications. Steganography, like cryptography, will play an increasing role in the future of secure communication in the digital world. It is not possible to develop a system that makes all the requirements of the user.

30

6.2) FUTURE ENHANCEMENT


User requirements keep changing as the system is being used. Some of the future enhancements that can be done to this system are: As the technology emerges, it is possible to upgrade the system and can be adaptable to desired environment. Because it is based on object-oriented design, any further changes can be easily adaptable. Based on the future security issues, security can be improved using emerging technologies. Case Registration module can be added

REFERENCES
Books:
Software Engineering Roger S. Pressman The Complete Reference: J2SE by Herbert Schildt (5th Edition) The Complete Reference:J2EE by Jim Keogh Intro to Computer Graphics, Undergraduate, Java, 2008 Frank klawonn

Websites:
http://en.wikipedia.org/wiki/Steganography http://www.codeproject.com/KB/recipes/Image-Steganography.aspx

GLOSSARY

Abbreviations & Definitions:

1 2

GUI: Graphical user interface, it is graphical interface to operate website easily. J2EE: Java 2 Enterprise Edition is a programming platform part of the Java Platform for developing and running distributed multitier architecture Java applications, based largely on modular software components running on an application server.

APPENDICES
Appendices include complete DVD with all the applications required both at server side as well as client side for proper working of the application. This includes two DVDs named as follows: 1.) Fedora 8 for x86 architecture. 2.)Stegano

You might also like