Final Document
Final Document
On
Of
Bachelor of Technology
In
COMPUTER SCIENCE AND ENGINEERING
Submitted by
16F61A0542 - G.HARISHA
16F61A0529 - N.DIVYA BHARATHI
16F61A0516 - P.BHARATHI
16F61A0544 - C.HARSHITHA
Mrs.M.BHAVANA,M.Tech..,
(Asst.Professor),Department of CSE
Department of Computer Science and Engineering
2019- 2020
2019-2020
BONAFIDE CERTIFICATE
Certified that this project report titled “Hide a pdf file in an image”is a
bonafide work of
16F61A0542 - G.HARISHA
16F61A0529 - N.DIVYA BHARATHI
16F61A0516 - P.BHARATHI
16F61A0544 - C.HARSHITHA
Mrs.M.Bhavana,M.Tech.., Dr.B.Geethavani,M.Tech.ph.D..,
I extend my thanks to all the staff members of the CSE Department, who
gave me the moral support for the competition of the project.
2 LITERATURE REVIEW 4
3 SYSTEM ANALYSIS 10
3.1 INTRODUCTION 10
4. SYSTEMDESIGN 17
4.1.1 Goals 18
4.2 USECASE DIAGRAM 20
4.3 CLASS DIAGRAM 27
4.4 SEQUENCE DIAGRAM 30
4.5 COLLABORATION DIAGRAM 32
4.6 ACTIVITY DIAGRAM
4.7 COMPONENT DIAGRAM 35
4.8 DEPLOYMENT DIAGRAM
5. SYSTEM CONFIGURATION 38
5.1 SOFTWARE REQUIREMENTS 38
5.2 HARDWARE REQUIREMENTS 38
6 SYSTEM IMPLEMENTATION 40
7.1 IMPLEMENTATION DETAILS 40
7.1.1 EMBEDDING PROCESS 40
7.1.2 EXTRACTING PROCESS 41
7. SYSTEM TESTING 49
8. EXPERIMENTAL RESULTS 58
REFERENCES 63
LIST OF FIGURES
LIST OF TABLES
Iv
ABSTRACT
The project is developed to hide a confidential pdf file in an image. 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.
Steganography is the practice of hiding private or sensitive information within
something that appears to be nothing out to the usual. Steganography is often confused with
cryptology because the two are similar in the way that they both are used to protect important
information. The difference between two is that steganography 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, 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.
CHAPTER 1
INTRODUCTION
In this project, we are using Steganography techniques to hide a pdf file in an
image. Since the rise of the Internet one of the most important factors of
information technology and communication has been the security of information.
Cryptography was created as a technique for securing the secrecy of
communication and many different methods have been developed to encrypt and
decrypt data in order to keep the message secret. Unfortunately it is sometimes not
enough to keep the contents of a message secret, it may also be necessary to keep
the existence of the message secret. The technique used to implement this, is
called Steganography.
1
1. Overview of Steganography
To provide an overview of steganography, terms and concepts should first be
explained.
An overview of the different kinds of steganography is given at a later stage.
Steganography is a simple security method.Generally there are three different methods used
Steganography is hiding information; this generally cannot be identified because the coded
1. Text steganography
2. Image steganography
3. Audio steganography
4. Video steganography
In all of these methods, the basic principle of steganography is that a secret message is to be
embedded in another cover object which may not be of any significance in such a way that the
encrypted data would finally display only the cover data. So it cannot be detected easily to be
containing hidden information unless proper decryption is used.
3
2. Image steganography
As stated earlier, images are the most popular cover objects used for steganography. In the
domain of digital images many different image file formats exist, most of them for specific
applications. For these different image file formats, different steganographic algorithms exist.
2.1 Image definition
To a computer, an image is a collection of numbers that constitute different light intensities
in different areas of the image . This numeric representation forms a grid and the individual points
are referred to as pixels. Most images on the Internet consists of a rectangular map of the image’s
pixels (represented as bits) where each pixel is located and its colour. These pixels are displayed
horizontally row by row.
The number of bits in a colour scheme, called the bit depth, refers to the number of bits
used for each pixel. The smallest bit depth in current colour schemes is 8,meaning that there are 8
bits used to describe the colour of each pixel.
Monochrome and greyscale images use 8 bits for each pixel and are able to display 256
different colours or shades of grey. Digital colour images are typically stored in 24-bit files and use
the RGB colour model, also known as true colour. All colour variations for the pixels of a 24-bit
image are derived from three primary colours: red, green and blue, and each primary colour is
represented by 8 bits.
Thus in one given pixel, there can be 256 different quantities of red, green and blue, adding
up to more than 16-million combinations, resulting in more than 16-million colours . Not
surprisingly the larger amount of colours that can be displayed, the larger the file size.
3.2 Image Compression
When working with larger images of greater bit depth, the images tend to become too large
to transmit over a standard Internet connection. In order to display an image in a reasonable amount
of time, techniques must be incorporated to reduce the image’s file size. These techniques make use
of mathematical formulas to analyse and condense image data, resulting in smaller file sizes. This
process is called compression [15]. In images there are two types of compression: lossy and lossless.
Both methods save storage space, but the procedures that they implement differ. Lossy compression
creates smaller files by discarding excess image data from the original image. It removes details that
are too small for the human eye to differentiate , resulting in close approximations of the original
image, although not an exact duplicate. An example of an image format that uses this compression
technique is JPEG (Joint Photographic Experts Group) .
4
Lossless compression, on the other hand, never removes any information from the original
image, but instead represents data in mathematical formulas. The original image’s integrity is
maintained and the decompressed image output is bit-by-bit identical to the original image
input. The most popular image formats that use lossless compression is GIF (Graphical
Interchange Format) and 8-bit BMP (a Microsoft Windows bitmap file). Compression plays a
very important role in choosing which steganographic algorithm to use. Lossy compression
techniques result in smaller image file sizes, but it increases the possibility that the embedded
message may be partly lost due to the fact that excess image data will be removed. Lossless
compression though, keeps the original digital image intact without the chance of lost,
although is does not compress the image to such a small file size. Different steganographic
algorithms have been developed for both of these compression types and will be explained in
the following sections.
3.3 Image and Transform Domain
Image steganography techniques can be divided into two groups: those in the Image
Domain and those in the Transform Domain. Image – also known as spatial – domain
techniques embed messages in the intensity of the pixels directly, while for transform – also
known as frequency – domain, images are first transformed and then the message is
embedded in the image Image domain techniques encompass bit-wise methods that apply bit
insertion and noise manipulation and are sometimes characterised as “simple systems” . The
image formats that are most suitable for image domain steganography are lossless and the
techniques are typically dependent on the image format. Steganography in the transform
domain involves the manipulation of algorithms and image transforms. These methods hide
messages in more significant areas of the cover image, making it more robust. Many
transform domain methods are independent of the image format and the embedded message
may survive conversion between lossy and lossless compression. In the next sections
steganographic algorithms will be explained in categories according to image file formats and
the domain in which they are performed.
Project Scope:
This project is developed for hiding information in any image file. The scope of the project is
implementation of steganography tools 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.
1.1 Graphical Representation:
The graphical representation of Steganography system is as follows:
1.2.Objective of the project:
In my project I primarily concentrated on the data security issues using steganography
techniques.The main objective of the project “Image steganography” is to embed the text
message in image, using the available methods of image steganography methods. After
converting an image into stego-image we can retrieve our confidential data using some secret
passwords.
The main objectives of the project are:
Requirement of this steganography system is that the hider message carried by stego-image
should not be sensible to human beings.
The other goal of steganography is to avoid drawing suspicion
to the existence of a hidden message.
This approach of information hiding technique has recently
become important in a number of application areas.
16
CHAPTER-2
LITERATURE REVIEW
In the year of 2013 Soni, A.; Jain, J.; Roshan, R., The Fractional Fourier transform (FrFT),
[1] Investigated on as a generalization of the classical Fourier transform, introduced years ago
in mathematics literature. The enhanced computation of fractional Fourier transform, the
discrete version of FrFT came into existence DFrFT. This study of illustrates the advantage
of discrete fractional Fourier transform (DFrFT) as compared to other transforms for
steganography in image processing. The result shows same PSNR in both domain (time and
frequency) but DFrFT gives an advantage of additional stego key. The order parameter of this
transform.
In the year of 2013 Akhtar, N.; Johri, P.; Khan, S., [2] implemented a variation of plain LSB
(Least Significant Bit) algorithm. The stego-image quality has been improved by using bit-
inversion technique. LSB method improving the PSNR of stegoimage. Through storing the
bit patterns for which LSBs are inverted, image may be obtained correctly. For the improving
the robustness of steganography, RC4 algorithm had been implemented to achieve the
randomization in hiding message image bits into cover image pixels instead of storing them
sequentially. This method randomly disperses the bits of the message in the cover image and
thus, harder for unauthorized people to extract the original message. The presented method
shows good enhancement to Least Significant Bit technique in consideration to security as
well as image quality.
In the year of 2013 Prabakaran, G.; Bhavani, R. and Rajeswari P.S. [3] Investigated on
Medical records are extremely sensitive patient information a multi secure and robustness of
medical image based steganography scheme is proposed. This methodology provides an
efficient and storage security mechanism for the protection of digital medical images.
Authors proposed a viable steganography method using Integer Wavelet Transform to protect
the MRI medical image into a single container image. The patient's medical diagnosis image
has been taken as secret image and Arnold transform was applied and scrambled secret image
was obtained. In this case, the scrambled secret image was embedded into the dummy
container image and Inverse IWT was taken to get a dummy secret image. It has been
observed that the quality parameters are improved with acceptable PSNR compared to the
existing algorithms.
In the year of 2012 Thenmozhi, S. and Chandrasekaran, M., [4] presented the novel scheme
embeds data in integer wavelet transform coefficients by using a cropping function in an 8×8
block on the cover image. The optimal pixel change process has been applied after
embedding the message. Authors employed the frequency domain to increase the robustness
of our steganography method. Integer wavelet transform avoid the floating point precision
problems of the wavelet filter. Result shows that the method outperforms adaptive
steganography technique based on wavelet transform in terms of peak signal to noise ratio
and capacity.
18
CHAPTER-3
SYSTEM ANALYSIS
3.1.INTRODUCTION:
In this system we are going to develop a facility to a user that will not
face any difficulty at the time of usage like data missing, one way contacts, one view
contacts. As we are developing this system with an encoding technique of image the user will
The feasibility of the project is analyzed in this phase and business proposal is put forth
with a very general plan for the project and some cost estimates. During system analysis
the feasibility study of the proposed system is to be carried out. This is to ensure that the
proposed system is not a burden to the company. For feasibility analysis, some
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY
This study is carried out to check the economic impact that the system will have on
the organization. The amount of fund that the company can pour into the research and
development of the system is limited. The expenditures must be justified. Thus the developed
system as well within the budget and this was achieved because most of the technologies
used are freely available. Only the customized products had to be purchased.
This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand on the
available technical resources. This will lead to high demands on the available technical
resources. This will lead to high demands being placed on the client. The developed system
must have a modest requirement, as only minimal or null changes are required for
implementing this system. Are there technical guarantees of accuracy, reliability and data
security? The environment required in the development of system is any windows platform
The observer pattern along with factory pattern will update the results eventually.
The aspect of study is to check the level of acceptance of the system by the user. This
includes the process of training the user to use the system efficiently. The user must not feel
threatened by the system, instead must accept it as a necessity. The level of acceptance by the
users solely depends on the methods that are employed to educate the user about the system
20
and to make him familiar with it. His level of confidence must be raised so that he is also able
to make some constructive criticism, which is welcomed, as he is the final user of the system.
They are:
1. GUI module
2. Compression Module
3.2.1.GUI Module:
GUI Module basically deals with the design of the interface which include the service
of providing the user with the flexibility of accessing the file system and selecting the
required file for the transfer. It should also provide the system to collect the information from
the user to check the authorization in providing the access to the file system. The interface is
also to consider the design, which include the services of sending and receiving of the files
with encryption and decryption standards.
3.2.2.Compression Module:
The Compression module basically deals with the compress and decompresses the
file, which is used to send the file very easily which reduces the uploading time.
System analysis:
3.3.Existing system:
Steganography hides the existence of a secret message and in the best case nobody can
identify the secret data in the device. This makes steganography suitable for some tasks for
which encryption aren’t, such as copyright marking. However, in steganography, the
existence of the information in the sources will not be noticed at all. Most steganography jobs
have been carried out on images, video clips, texts, music and sounds
Disadvantages:
It only works on internet
3.4.Proposed system:
As steganography becomes more widely used in computing, there are issues that need to be
resolved. There are a wide variety of different techniques with their own advantages and
disadvantages. Many currently used techniques are not robust enough to prevent detection
and removal of embedded data.
Advantages:
It is safe to login.
It has multifactor authentication.
It encodes and decode text.
22
CHAPTER-4
SYSYTEM DESIGN
Systems design is the process of defining the architecture, components, modules,interfaces,
and data for a system to satisfy specified requirements. Systems design could be seen as the
application of systems theory to product integer development.
The UML represents a collection of best engineering practices that have proven
successful in the modeling of large and complex systems.
The UML is a very important part of developing objects oriented software and the
software development process. The UML uses mostly graphical notations to express the
design of software projects.
4.1.1. GOALS:
24
A use case diagram in the Unified Modeling Language (UML) is a type of behavioral
diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical
overview of the functionality provided by a system in terms of actors, their goals (represented
as use cases), and any dependencies between those use cases. The main purpose of a use case
diagram is to show what system functions are performed for which actor. Roles of the actors
in the system can be depicted.
login
encrypt messages/files
user
decrpt files/messages
logout
4.3.CLASS DIAGRAM:
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 among the classes. It
explains which class contains information.
user
username
password
login()
encrypted message()
decrpyted messages()
encrypt file()
decrpyt file()
26
4.4.SEQUENCE DIAGRAM:
user system
login
login
encrypt message/key
decrypt message/key
logout
logout
4.5.Collabora
tion Diagram:
In collaboration diagram the method call sequence is indicated by some numbering technique
as shown below. The number indicates how the methods are called one after another. We
have taken the same order management system to describe the collaboration diagram. The
method calls are similar to that of a sequence diagram. But the difference is that the sequence
diagram does not describe the object organization where as the collaboration diagram shows
the object organization.
1: login
2: encrypt message/key
3: decrypt message/key
4: logout
user system
28
4.6.ACTIVITY DIAGRAM:
user
encrpyt messge/key
decrypt message/key
logout
4.7.COMPONENT DIAGRAM
Component diagrams are used to describe the physical artifacts of a system. This artifact
includes files, executables, libraries etc. So the purpose of this diagram is different,
Component diagrams are used during the implementation phase of an application. But it is
prepared well in advance to visualize the implementation details. Initially the system is
designed using different UML diagrams and then when the artifacts are ready component
diagrams are used to get an idea of the implementation.
user system
4.8.DEPLOYMENT DIAGRAM
user system
30
CHAPTER-5
System Configuration
IMPLEMENTATION :
The disadvantage with existing steganographic systems is their simple data embedding
procedure. Because of this single level encryption of information the counter attack is
being done at one level only and by applying all possible counter techniques blindly it
may result in compromising the data. Our system is intended to encrypt data through
multiple levels.
MAIN WINDOW :
It is written in java swings. It is used to open the operational window or frames to
perform set of operations on images using the specified techniques. It consists of basic
window operations like closing and minimizing but restoring or rescaling is not
possible. This main window has two tabs encrypt message tab and decrypt message tab
Embed while all these windows can be executed individually. These windows were
developed using Applet as well as Swing framework. Use of all these three windows is
not mandatory; they can be used based upon user’s security requirements. As the name
of this tab says, windows involved in this tab are used in the process of encoding an
32
input. A user can perform base64 conversion of a message, password based encryption
This window consists of all kinds of operations related to encoding, which are required
place .The decrypted data opens only by entering the encrypt key correctly. After
SYSTEM ARCHITECTURE :
Architecture
Figure represents the architecture that is implemented. The modules of the steganographic
tool are also included in the architecture.
Figure System Architecture
A user is able to do all the operations as shown in figure manually by using encrypt
called block cipher. The block size used here is 64 bits. The core idea behind this
standard is Fiestel network. This standard involves 16 identical stages in its process.
Each block of 64 bits is divided into two blocks; left and right of 32-bits. The right part
is given as input to a Fiestel function. An XOR operation is applied between the output
of Fiestel function and the left part and the resultant is considered as the right part of
the second stage. For the left part in the second stage, the right part from the previous
The same procedure is contained for 16 iterations to get a final output of the 64-bit
block.
This is how each block of 64-bits is encrypted with DES.
Decryption on the other hand, is just a reverse process to encryption which can also be
called as inversion where an XOR operation is applied between the right part and the
output of the Fiestel function. The resultant is considered as the left part to the next
stage. And the left part is just copied as the right part of the next stage. This process is
34
Figure 2: Inverse circuit of encryption circuit [6].
know that an image will be stored in the form of bytes. In this kind of encoding, by
using the LSB of each byte, 1-bit information can be stored in the image as secret
message [8]. Accordingly 1-bit per byte can be stored in 8-bit images while 3-bits can
be stored in 24-bit images for every 24-bits. Depending upon the color palette of a
cover image, a secret message can be stored in two LSB’s which cannot be identified
by human visual system (HVS) [8] [9]. But the main drawback of this encoding method
is that images after encoding can be intercepted easily i.e, information can be changed
JSTEG :
This was the first publicly available steganographic system for JPEG images.
This encoding technique is similar to that of the LSB technique. This technique uses the
concept of discrete cosine transformation (DCT) [11] [13]. The JPEG image format
uses a discrete DCT to transform successive 8 × 8 pixel blocks of the image into 64
DCT coefficients each. Here, encoding is done by sequentially replacing the LSB of
DCT coefficients with message’s data. Andreas Westfeld and Andreas Pfitzmann
noticed that steganographic systems that change least-significant bits sequentially cause
distortions detectable by steganalysis [1] [8] [11]. The disadvantage with this system is,
embedding step changes the LSB of colors in an image, that is, embedding uniformly
distributed message bits reduces the frequency difference between adjacent colors.
EMBEDDING PROCESS :
various points of the image. Typically, a pixel could carry 8-bits or 24-bits of data
depending upon the image quality. An 8-bit image is smaller in size which can be
dependable, but one disadvantage is that, it exhibits only 256 colors. This may affect
adversely while encoding. Hence, while handling an 8-bit image, gray scale color
palette is used. Use of 24-bit images increases efficiency because it can exhibit many
colors (more than 16 million) [10] [12]. A file with bigger size (usually in Mega Bytes)
BASE64 CONVERSION :
As part of multi-level approach the base64 conversion is taken as the first step. The
Each byte is composed of 8-bits, and each bit is capable of storing one value, either ‘0’
or ‘1’ which we all know as ASCII standard. The ASCII standard is an 8-bit character
36
set which has 256 (28) characters that form text. Among those 256 characters, only few
are readable and printable, but the idea here is to generate a readable text, which could
be done by decreasing the number of character set [6] [11]. To reduce the character set,
the Base64 mechanism reads only 6-bits as a character instead of 8-bits. Now we will
have only 64 (26) characters which are represented by upper case alphabet (26), lower
case alphabet (26), numbers 0-9 (10) and symbols ‘+’,’/’ that is a total of 64 characters.
But every byte has 8bits, so reading just 6-bits would be troublesome. Using 3 bytes
24-bits are formed and these 24-bits are chopped into 4 equal parts of 6-bits each.
ENCODING :
characters (A-Z, a-z, 0-9, +, /). For this, a chart is used as shown in figure 3.
For example, consider a string “Hello World!” .Base64 interpretation for given string is
as follows [6]:
3. Convert the 24 bits from three 8 bit groups to four 6 bit groups.
01001000 01100101 01101100 becomes 010010 000110 010101 101100.
4. Convert each of the four 6 bit groups into decimal.
010010 = 18
000110 = 6
010101 = 21
101100 = 44
5. Use each of the four decimals to look up the base64 character code.
18 = 'S'
6 = 'G'
21 = 'V'
44 =‘s’
6. You now have your first three ASCII characters ("Hel") encoded as base64
("SGVs").
DECODING :
The decoding process is relatively simple process. The most important thing
here is that while encoding 8-bits were used for each character. But now for each
character only 6bits should be used, so to decode the information 4 characters are to be
considered at a time
[6].
38
01100010 = 98
01100001 = 97
01110011 = 115
4. Use each of the three decimals to look up the ASCII character for that
value. 98 = 'b'
97 = 'a'
115 = 's'
We now have the first four base64 characters ("YmFz") decoded as ASCII
("bas").
In the same manner, data of any format can be encoded and decoded on the basis of 64
(26) characters.
makes use of the service provided by JAVA. A small function call for encryption and
decryption returns the encrypted and decrypted file by directing the input respectively.
Here PBE is used with MD5 and DES. An 8 character password is given as
input to this algorithm. The MD5 hashing generates a 128 bit stream with the given
input
(password) [5] [6] [13]. This 128 bit stream is used as key input which is necessary for
out in the form of blocks which is called block ciphering based upon a password.
EMBEDDING :
Embedding is a process that inserts the bits of information into the byte array stream of
Insertion of data should not change the information. That means, after inserting
information into the cover image, and when the information is retrieved by receiver
from image, the retrieved information should be same as the inserted information [7]
[8] [10]. The information to be inserted is encrypted twice before insertion, so the
consistent. The main problem could be only with the characters followed by symbol ‘\’.
Some of the characters followed by back slash ‘\’ could form an escape sequence
The cover image is processed and interpreted in the form of bytes. That is,
information of each pixel of the cover image is stored in the form of a byte for
corresponding RGB values [8], [10]. The last bit of each interpreted byte of all the
pixels is replaced with one bit of information that is to be inserted. In the same way,
each and every bit of information that are be hidden is inserted into available pixels of
THRESHOLD :
The insertion of bits of information is not straight-forward, but is done by selecting
appropriate pixels to insert. That means, a threshold value is given as input by the user.
And the pixel that satisfies the threshold (pixels value is greater than the threshold) is
eligible for insertion. Before checking the threshold value of a pixel, its position is also
considered to be even [7] in terms of row and the column index. Finally any pixel that
is in an even position and whose value is greater than the user supplied threshold value
40
EMBEDDING PROCESS :
The following steps describe the embedding process:
a) Process the information that has to be inserted to remove escape sequences. The
b) The cover image is processed in the form of bytes by the colors of pixels and
code:
3, l++) {
c) Check the available size of the cover image to insert information and throw an
Picture"); }
Now information and cover image both are in bytes form, so filtering of pixels and
insertion of information can be done.
d) To insert a value into a last bit of byte, the pixel should be in even position both
in row and column. And also the value of the pixel should be greater than the
input threshold. The following lines of code give a brief look at the internal
operation:
for (byte j = 0; j < 8; j++, k+=2) // filter by position (even position only)
e) This insertion is done until the end of information or till the end of last pixel of
cover image.
f) The process of retrieving information is done in similar manner. The last bit of
a pixel satisfying both position and threshold conditions is read into a variable.
42
for (int i = 0; i < bytes.length;) {
cur = 0;
for (int j = 0; j < 8 && i < bytes.length; j++, i+=2) // i value double
increment
{
if (bytes[i] > ThresholdBean.getThreshold())
information.append((char) cur);
FEATURES OF JAVA :
Generally, Java is a simple, robust and secure programming language. Here are the
most important features of Java:
1. Java is Simple:
The Java programming language is easy to learn. Java code is easy to read and write.
2. Java is Familiar:
Java is similar to C/C++ but it removes the drawbacks and complexities of C/C++ like
pointers and multiple inheritances. So if you have background in C/C++, you will find Java
familiar and easy to learn.
5. Java is Robust:
With automatic garbage collection and simple memory management model (no pointers like
C/C++), plus language features like generics, try-with-resources,… Java guides programmer
toward reliable programming habits for creating highly reliable applications.
8. Java is Multithreaded:
The Java platform is designed with multithreading capabilities built into the language. That
means you can build applications with many concurrent threads of activity, resulting in
highly interactive and responsive applications.
44
Java code is compiled into intermediate format (bytecode), which can be executed on any
systems for which Java virtual machine is ported. That means you can write a Java program
once and run it on Windows, Mac, Linux or Solaris without re-compiling. Thus the slogan
“Write once, run anywhere” of Java.
Besides the above features, programmers can benefit from a strong and vibrant Java
ecosystem:
Java is powered by Oracle - one of the leaders in the industry. Java also gets
enormous support from big technology companies like IBM, Google, Redhat,… so it has
been always evolving over the years.
There are a lot of open source libraries which you can choose for building your
applications.
There are many superior tools and IDEs that makes your Java development easier.
There are many frameworks that help you build highly reliable applications quickly.
The community around Java technology is very big and mature, so that you can get
support easily.
That’s why Java has been ranking as #1 programming language in the world by popularity,
according to statistics by Tiobe Index.
So congratulate you on choosing Java as the programming language for developing awesome
applications.
CHAPTER-7
SYSTEM TESTING
The process of examining whether the developed system is working according to the
original objectives and requirements is called software testing. Once the program is created
and the documentation and related data structures are designed the software testing process
begins. The project is said to be incomplete without software testing. It is crucial for
correcting errors.
To ensure that the system works according to the requisite specification, we need to
test experimentally the system with the test data. Then test it with actual data, when the
system is working properly and check its performance. Software testing is a critical
component of in software quality assurance the software testing is significant component
which characterizes the critical analysis of specification, design and coding.
7.1 NEED FORTESTING:
Implement the program using the real data processed by the program.
7.2TESTING STRATEGIES:
The key idea behind testing is to discover or find errors. By keeping this in mind, the
Test cases are developed. The system will process a test case as normal input. The test case
is a set of data.
The purpose of testing is to find out faults. Testing is the process of tiresome to find out
every possible fault or weakness in a work result. It provides a way to check the
functionality of components, sub assemblies, or finished manufactured goods. It is the
process of implementing software with the intent of makes certain that the Software system
meets its requirements and user expectations and does not fail in an improper manner. There
are various types of test. Each test type addresses a specific testing constraint.
46
The basic levels of testing are:
7.4.1UnitTesting:
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid outputs.
All decision branches and internal code flow should be validated. It is the testing of
individual software units of the application .it is done after the completion of an
individual unit before integration. This is a structural testing, that relies on
knowledge of its construction and is invasive. Unit tests perform basic tests at
component level and test a specific business process, application, and/or system
configuration. Unit tests ensure that each unique path of a business process performs
accurately to the documented specifications and contains clearly defined inputs and
expected results.
Functional tests give efficient revelation that functions tested are available as
particular by the business and technical necessities, system citations, and user
instruction manual.
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration oriented system integration test.
System testing is based on process descriptions and flows, emphasizing pre-driven
process links and integration points.
White Box Testing is a testing in which in which the software tester has
48
knowledge of the inner workings, structure and language of the software, or at least
its purpose. It is purpose. It is used to test areas that cannot be reached from a black
box level.
Black Box Testing is testing the software without any knowledge of the inner
mechanism, structure or language of the module being tested. Black box tests, as
most other kinds of tests, must be written from a perfect source document, such as
design or requirements document. It is a testing in which the software under test is
care for, as a black box .you cannot see into it. The test provides inputs and responds
to outputs without taking into consideration how the software works.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
7.5.TESTCASES:
Test Plan:
A test plan is a document that contains a complete set of test cases for a system, along
with other information about the testing process. The test plan should be returned long before
the testing starts.
Test plan identifies: 1. A task set to be applied as testing commences
2. The work products to be produced as each testing task is executed
3. The manner, in which the results of testing are evaluated, recorded
and reuse when regression testing is conducted. In some cases the test
plan is indicated with the project plan.
Test Plan1:
Input Audio file type Input:
Sender selects an audio from the list of supported files Process: Message
is embedded in the selected audio and new audio file is saved .
Action:
Display alert showing the successful embedding of message # Aspect to be tested
Test Case Expected Result Audio file type File type .wav Accept the file & embed msg in it
Save the output image as .mp3 file 2 Audio file type File type .mp3 Accept the file & embed
message in it. Output image is saved as .mid file .
Test Plan2:
Output audio file name Input:
provides a file name for the output audio Process: Embed the message and
save new audio as a .wav or .mp3 file .
Action:
Creates the output audio file of given name with .wav or .mp3 as extension #
Aspect to be tested Test Case Expected Result Output file name o/p file name with extension
is given Create the output file Creates o/p file with .wav extens–ion appended to the given
name 2 Output file name No name is given for the output file Provide the alert box to enter
the o/p file name. Creates the output file with name ‘output’ .
Test Plan3:
Message to be encoded Input:
Sender provides the message to be embedded Process: Embed the message in
selected source audio and save as a new audio.
Action:
Display alert showing the status of message embedding # Aspect to be tested
Test Case Expected Result Message Audio can hold the message of provided length Embed
the message in the audio Alert is given showing successful embedding of message 2 Message
Audio cannot hold the message of provided length Display a msg that the audio cannot hold
the given message Alert is given that ‘target file cannot hold the message’ .
50
Test Plan4:
Supported audio files for encoding and decoding a message Input: source selects
the source audio to embed a message. output selects the stegoed audio to get the message
contained in it.
Process:
‘Supported audio files’ as Files of Type shows .wav and .mp3 files etc. Result:
Display list of all the supported audio. # Aspect to be tested Test Case Expected Result Files
of type in the dialog box Files of type: Supported audio files All .wav and .mp3 files are
shown Lists all the wav and mp3 files 2 Files of type in the dialog box Files of type: All
audios All files at the selected location are shown Lists all the files at the selected location
Test Plan5:
Output file Input:
selects the source audio and provides the message to embed Process: Edits the
audio to hold the message and save it as a new audio.
Result:
Display alert showing the status of message embedding # Aspect to be tested Test
Case Expected Result 1 Output file Selected file to be decoded contains data Decoded
message is given to the receiver Message is decoded and given to receiver 2 Output file
Selected file to be decoded doesn’t contain any data Display a message that the image file
doesn’t have any data Alert is given that ‘please enter the ’
CHAPTER-8
EXPERIMENTAL RESULTS
INPUT RESULTS :
“HIDE A PDF FILE IN AN IMAGE” is the project we done here. The project is
implemented using Steganography techniques . Steganography is a technique which is used
to hide the confidential data in other data ( includes images, text , audio , etc ..,).
The following are the input which ate used in this project :
1. PDF File for encryption
2. Stego image
3. Username and password
4. Output Stego image
52
5. Encrypted PDF File to Decrypt
OUTPUT RESULTS :
In this project , a PDF FILE is the output. After completion of the encryption and
decryption of the input PDF File a newly generated decrypted PDF File will occur at
Drive(D) of the device defaulty .
The Decrypted PDF File is the output for the project.
The following are the step wise working process of the project which is shown by the
screenshots :
2. AFTER CLICKING ON THE RUN BUTTON THE FOLLOWING LOGIN CREDENTIALS PAGE WILL
APPEAR :
3.THIS IS THE FORMAT THE PROJECT IS GOING TO WORK :
54
4.CLICK ON OPEN TILE TAB :
56
9. AFTER UPLOADING BOTH INPUT AND OUTPUT STEGO IMAGES , THE FOLLOWING
SCREEN WILL APPEAR :
58
12.AFTER THAT IT ASKS TO ENTER SECRET KEY TO SEE THE OUTPUT :
60
CHAPTER-9
CONCLUSION AND FUTURE ENHANCEMENTS
Conclusion:
To hide confidential information steganography can be effectively used. The
objective of any Steganographic method is to hide maximum secret information which is
immune to external attacks and also should not convey the fact that the cover medium is
carry secret information. This thesis has used LSB substitution technique for time domain
and different transforms for frequency domain.
The random key made use of while LSB technique is employed has proved to be
better than simple LSB substitution. When the personal is key is made use of in the
techniques have not altered the resolution of the image much and appears to be negligible
as been seen with the obtained results. Hence the hidden data getting damaged buy the
third person is almost impossible. The algorithm can be implemented in both grayscale
and color image since it has made use of 8 bit and 24bit images of size for both cover and
secret image.
A new Steganography technique was presented, implemented and analyzed. The proposed
method hides the secret message based on searching about the identical bits between the
secret messages and image pixels values. The proposed method was compared with the LSB
benchmarking method for hiding the secret message which hide the secret message directly in
the least two significant bits of the image pixels.
Future Enhancement:
In our thesis work we propose a new approach which give good quality of the image after
encoding the original image by using the LSB technique because LSB technique has a
drawback it affects the resolution the original image after encoding, so that image quality go
burst. The future work on this project is to improve the compression ratio of the image to the
text. The main intention of the project is to develop a steganographic application that
provides good security. The proposed approach provides higher security and can protect the
message from stego attacks. The image resolution doesn’t change much and is negligible.
MODULES:
We have only one user module.
User:
1.User can login, encrypted, decrypted and logout.
2.encryption have added images, add messages and key.
3.decrpytion have add messages and key.
62
References
[1] Nagham Hamid, Abid Yahya, R.Badlishah Ahmad and Osamah M. Al-Qershi,“Image
Steganography Techniques: An Overview”, International Journal of Computer Science and Security
(IJCSS), Volume (6), Issue (3) ,2012.
[2] Yedla Dinesh and Addanki Purna Ramesh, “Efficient Capacity Image Steganography by
Using Wavelets”, International Journal of Engineering Research and Applications (IJERA), Vol. 2,
Issue 1, Jan-Feb 2012, pp.251-259.
[3]Prof. Akhil Khare, Meenu Kumari and Pallavi Khare, “Efficient Algorithm for Digital
Image Steganography”, Journal of Information, Knowledge and Research in Computer Science and
Applications, Nov 09 to Oct 10 Volume 1, Issue 1.
[4]Elham Ghasemi, Jamshid Shanbehzadeh and Nima Fassihi, “High Capacity Image Steganography
using Wavelet Transform and Genetic Algorithm”, Proceedings of the International Multi Conference
of Engineers and Computer Scientists 2011, Vol1 March 16-18, 2011.
[5]Yue Wu and Joseph P. Noonan, “Image Steganography Scheme using Chaos and Fractals with the
Wavelet Transform”, International Journal of Innovation, Management and Technology, Vol. 3, No.
3, June 2012.
[6]Souvik Bhattacharyya and Gautam Sanyal, “A Robust Image Steganography using DWT
Difference Modulation (DWTDM)”, International Journal on Computer Network and Information
Security, 2012, 7, 27-40 Published Online July 2012 in MECS.
[7]Lokesh Kumar, “Novel Security Scheme for Image Steganography using Cryptography
Technique”, International Journal of Advanced Research in Computer Science and Software
Engineering, Volume 2, Issue 4, April 2012
[8]Ravi Saini and Rajkumar Yadav, “A New Data Hiding Method Using Pixel Position And Logical
And Operation”, International Journal of Computer and Electronics Research, Volume 1, Issue 1,
June 2012
[9]K. Venkata Ramana, Dr.B.Raveendra Babu and Sri Ch.Ratna Babu, “A Randomized Secure Data
Hiding Algorithm Using File Hybridization for Information Security”, International Journal on
Computer Science and Engineering (IJCSE), Vol. 3 No. 5 May 2011.
[10]Ravuru Rakesh, Shantan Devathi, Prashanth Sekhar Chandra Sekaran and Siram Sanath Kumar,
“Adaptive Randomization in Image Steganography Pertaining to MostSignificant Nibble”,
International Journal of Computer Applications, Volume 22– No.3, May 2011.
64