Project Report

51
Introduction to Steganography Tools Project outline Our Project is based on the tools which deals with the security issues related with the message passing over internet. Before the Internet, computer security was limited to 'closed systems' or network computers such as offices or banks where only people physically in the office could use the computer system. It was quite easy for the network supervisor to set up user names and passwords and since that time people have become used to logging on before they can use these types of computers or resources. With the advent of the Internet, computers users can now work in an 'open system' and security has become much more complicated. Even though you can now connect your home or office computer to the Internet and perform remote transactions without leaving the building you still want to be sure that the transaction is secure. The transaction takes place through the Internet by bouncing the information through various computers before it reaches, for example, the bank's Steganography tool Page 1

Transcript of Project Report

Page 1: Project Report

Introduction to Steganography Tools

Project outline

Our Project is based on the tools which deals with the security issues related

with the message passing over internet.

Before the Internet, computer security was limited to 'closed systems' or network

computers such as offices or banks where only people physically in the office could use the

computer system. It was quite easy for the network supervisor to set up user names and

passwords and since that time people have become used to logging on before they can use

these types of computers or resources.

With the advent of the Internet, computers users can now work in an 'open system' and

security has become much more complicated. Even though you can now connect your home

or office computer to the Internet and perform remote transactions without leaving the

building you still want to be sure that the transaction is secure. The transaction takes place

through the Internet by bouncing the information through various computers before it

reaches, for example, the bank's computer. You want to be sure that no one observes the

transaction along the way and collects or modifies your transaction information.

This is where computer security comes in. There are many different types of security systems

though most use a process called encryption. When you connect to your bank or other

service to make a transaction you are often required to send your account number or user

name as well as a Personal Identification Number (PIN) or password for verification. This

information should only be sent after establishing a secure connection. If you are using an

Internet browser you will see a small closed lock appear in the window of the browser. Once

you are connected to a secure server any information you send or receive is scrambled or

encrypted using a mathematical formula and then reassembled or decrypted at the other end.

The computer user usually will not notice this happening as they perform their secure

Steganography tool Page 1

Page 2: Project Report

transaction. Anyone with criminal intent who intercepts your transaction will be treated to a

stream of garbled nonsense - (e.g.. qANQR1DBwU4D560EJv6XqrMQB)!

Steganography issues and technologies are extremely complicated; however, here we

intend to make the salient issues and solutions.

E-mail is not a perfectly secure communication medium; however, it might surprise you to

learn just how inherently insecure email can be. Messages thought deleted can still exist in

backup folders on remote servers’ years after being sent. Hackers can read and modify

messages in transit, use your usernames and passwords to login to your online services, and

steal your identity and critical information!

As the amount of crucial business conducted via email increases, so does the amount of

Spam, viruses, hacking, fraud, and other malicious activity. Unless precautions are taken,

email can leave you and your business open to escalating security and privacy risks.

Our project contains four modules with the help of these modules we have tried to remove all

the above mentioned risk involved in message transfer through mail.

Steganography

In Steganography a digital picture (which contain large amounts of data) are used to

hide messages on the Internet and on other communication media. It is not clear how

commonly this is actually done. For example: a 24-bit bitmap will have 8 bits representing

each of the three color values (red, green, and blue) at each pixel. If we consider just the blue

there will be 28 different values of blue. The difference between 11111111 and 11111110 in

the value for blue intensity is likely to be undetectable by the human eye. Therefore, the least

significant bit can be used (more or less undetectably) for something else other than color

information. If we do it with the green and the red as well we can get one letter of ASCII text

for every three pixels. Stated somewhat more formally, the objective for making

steganographic encoding difficult to detect is to ensure that the changes to the carrier (the

original signal) due to the injection of the payload (the signal to covertly embed) are visually

(and ideally, statistically) negligible; that is to say, the changes are indistinguishable from the

noise floor of the carrier.

Steganography tool Page 2

Page 3: Project Report

Project aim

Every good software must have a goal or aim behind which it is developed. Our

project also has an aim for which we have developed our project. The objective behind

developing the project ‘Steganography tools’ is that, we want to develop software that would

ensure the security of the message that has to delivered. This security is to provided by the

client or user itself.

We also wanted to provide reliable, accurate, flexible and user-friendly software. The

main objectives of our project are as follows: -

Reliability:-The project is reliable in working. If there may be any error in any tool of the

project, then it is easily handled and also it is easy to use for the user of it. The errors that

would be made by the user are easily handled.

Accuracy: - The project also provides accuracy to the user. The data that is entered by the

user is stored as it is entered, in an accurate form. It can be viewed any time as needed and it

will be displayed in their accurate form.

Flexibility:-The project is flexible in working. It can be run on each system and can be

moved to any other system. It can accept any small changes. If needed a slight change can be

made in future to it. Thus, it is flexible.

User-friendly:- The interface of the software is very user-friendly. Thus the user of it will

feel very easy to work on it. This is a need for the software because the software is also for a

general person and also for the professionals.

Easy to use: - The software is easy to use for the user. The project has a user-friendly

interface and easy tools to handle all the options. Thus, it is easy to use software.

Steganography tool Page 3

Page 4: Project Report

Introduction to programming Language

Introduction to Java

Java is an object-oriented programming language with a built-in application

programming interface (API) that can handle graphics and user interfaces and that can be

used to create applications or applets. Because of its rich set of API's, similar to Macintosh

and Windows, and its platform independence, Java can also be thought of as a platform in

itself. Java also has standard libraries for doing mathematics.

Much of the syntax of Java is the same as C and C++. One major difference is that

Java does not have pointers. However, the biggest difference is that you must write object

oriented code in Java. Procedural pieces of code can only be embedded in objects. In the

following we assume that the reader has some familiarity with a programming language. In

particular, some familiarity with the syntax of C/C++ is useful.

In Java we distinguish between applications, which are programs that perform the

same functions as those written in other programming languages, and applets, which are

programs that can be embedded in a Web page and accessed over the Internet. Our initial

focus will be on writing applications. When a program is compiled, a byte code is produced

that can be read and executed by any platform that can run Java.

Features of Java

Platform Independence

o The Write-Once-Run-Anywhere ideal has not been achieved (tuning for

different platforms usually required), but closer than with other languages.

Object Oriented

o Object oriented throughout - no coding outside of class definitions, including

main ().

o An extensive class library available in the core language packages.

Steganography tool Page 4

Page 5: Project Report

Compiler/Interpreter Combo

o Code is compiled to byte codes that are interpreted by a Java virtual machines

(JVM).

o This provides portability to any machine for which a virtual machine has been

written.

o The two steps of compilation and interpretation allow for extensive code

checking and improved security.

Robust

o Exception handling built-in, strong type checking (that is, all data must be

declared an explicit type), local variables must be initialized.

Several dangerous features of C & C++ eliminated:

o No memory pointers 

o No preprocessor

o Array index limit checking

Automatic Memory Management

o Automatic garbage collection - memory management handled by JVM.

Security

o No memory pointers

o A program runs inside the virtual machine sandbox.

o Array index limit checking

o Code pathologies reduced by

byte code verifier - checks classes after loading

Steganography tool Page 5

Page 6: Project Report

Class loader - confines objects to unique namespaces. Prevents loading

a hacked "java.lang.SecurityManager" class, for example.

Security manager - determines what resources a class can access such

as reading and writing to the local disk.

Dynamic Binding

o The linking of data and methods to where they are located, is done at run-time.

o New classes can be loaded while a program is running. Linking is done on the

fly.

o Even if libraries are recompiled, there is no need to recompile code that uses

classes in those libraries.

This differs from C++, which uses static binding. This can result in fragile

classes for cases where linked code is changed and memory pointers then

point to the wrong addresses.

Good Performance

o Interpretation of byte codes slowed performance in early versions, but

advanced virtual machines with adaptive and just-in-time compilation and

other techniques now typically provide performance up to 50% to 100% the

speed of C++ programs.

Threading

o Lightweight processes, called threads, can easily be spun off to perform

multiprocessing.

o Can take advantage of multiprocessors where available

o Great for multimedia displays.

Built-in Networking

Steganography tool Page 6

Page 7: Project Report

o Java was designed with networking in mind and comes with many classes to

develop sophisticated Internet communications.

Features such as eliminating memory pointers and by checking array limits greatly help to

remove program bugs. The garbage collector relieves programmers of the big job of memory

management. These and the other features can lead to a big speedup in program development

compared to C/C++ programming.

Advantages of Java

The advantages of Java are as follows:

Java is easy to learn.

Java was designed to be easy to use and is therefore easy to write, compile, debug,

and learn than other programming languages.

Java is object-oriented.

This allows you to create modular programs and reusable code.

Java is platform-independent.

By using Java, one program can be run on many different platforms. This means that

you do not need to put your efforts on developing a different version of software for

each platform.

There are many programmers who can understand and write code in Java, so that

many people can participate in developing open source software.

In many cases, a Java virtual machine can prevent an incorrectly written application

program from causing problems to the rest of your computing environment.

Steganography tool Page 7

Page 8: Project Report

One of the most significant advantages of Java is its ability to move easily from one computer

system to another. The ability to run the 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.

Because of Java's robustness, ease of use, cross-platform capabilities and security features, it

has become a language of choice for providing worldwide Internet solutions.

About Net Beans IDE

The NetBeans IDE is an open-source integrated development environment written

entirely in Java using the NetBeans Platform. NetBeans IDE supports development of all Java

application types (Java SE, web, EJB and mobile applications) out of the box. Among other

features are an Ant-based project system, version control (supporting CVS, Subversion,

Mercurial and Clear case) and refactoring.

The NetBeans Platform allows applications to be developed from a set of modular software

components called modules. A module is a Java archive file that contains Java classes written

to interact with the NetBeans Open APIs and a manifest file that identifies it as a module.

Applications built on modules can be extended by adding new modules. Since modules can

be developed independently, applications based on the NetBeans platform can be extended by

third party developers.

Modularity: All the functions of the IDE are provided by modules. Each module provides a

well defined function, such as support for the Java language, editing, or support for the CVS

versioning system, and SVN. NetBeans contains all the modules needed for Java

development in a single download, allowing the user to start working immediately. Modules

also allow NetBeans to be extended. New features, such as support for other programming

languages, can be added by installing additional modules. For instance, Sun Studio, Sun Java

Steganography tool Page 8

Page 9: Project Report

Studio Enterprise, and Sun Java Studio Creator from Sun Microsystems are all based on the

NetBeans IDE.

Current Versions: NetBeans IDE 6.5 extended the existing Java EE features (including Java

Persistence support, EJB 3 and JAX-WS). Additionally, the NetBeans Enterprise Pack

supports development of Java EE 5 enterprise applications, including SOA visual design

tools, XML schema tools, web services orchestration (for BPEL), and UML modeling. The

NetBeans IDE Bundle for C/C++ supports C/C++ projects.

NetBeans IDE 6.0 builds upon the previous version 5.5.1, which introduced comprehensive

support for developing IDE modules and rich client applications based on the NetBeans

platform, a new GUI builder (formerly known as "Project Matisse"), new and redesigned

CVS support, Web logic 9 and JBoss 4 support, and many editor enhancements. NetBeans

6.0 is being delivered as part of the Ubuntu 8.04 and the Debian Linux distributions.

The current version is NetBeans IDE 6.5.1, which was released in March 2009.

License: From July 2006 through 2007, NetBeans IDE was licensed under Sun's Common

Development and Distribution License (CDDL), a license based on the Mozilla Public

License (MPL). In October 2007, Sun announced that NetBeans would henceforth be offered

under a dual license of the CDDL and the GPL version 2 licenses, with the GPL linking

exception for GNU Classpath.

Steganography tool Page 9

Page 10: Project Report

Developing Java Applications

Once you install NetBeans IDE 4.1, you should be able to see "NetBeans 4.1" in your

programs list.  Try opening your tool by going to start -> programs -> Net Beans 4.1 ->

NetBeans IDE.

Let us create a simple console application using the same IDE.  With the NetBeans IDE open,

go through the following steps:

Go to File -> New project (or you can directly press the "New Project" button) as

highlighted in the following figure.

Steganography tool Page 10

Page 11: Project Report

You will be presented with a "New Project" window.  Select "General" in the

"categories" and "Java Application" in the "Projects" (as shown in the figure below).

After selecting accordingly click "next."  You will be presented with the "New Java

Application" window.

Give the "Project Name" as "HelloWorld," provide your own location, and switch off

the "Create Main Class" check box.  Your window must look something like the one

below.

Once it looks like the above, click on "Finish."  At this moment, you will not see any

code (like you did in the previous section). 

Go to the "Projects" window, open up "DesktopHelloWorld," right click on "Source

Packages," go to new -> JFrame Form  as shown below.

Steganography tool Page 11

Page 12: Project Report

In the "New JFrame" window, provide the class name "SampleJFrame" and provide

package name "SamplePack." Finally click finish.

Now you will be able to see the "form design" mode (which is very similar to VB6 or

VB.NET).  For this demonstration, you simply right click on the form (in design

mode), and go to Set Layout -> Null Layout.

From the "Pallete" window, click on "JButton" and click on "form design." It will be

automatically added to the form.  Make sure that the dragging and dropping of

controls is not permitted yet.  You can observe that the "Pallete" window is very

similar to the "ToolBox" in VB6.

You can drag and resize the button according to your wishes.  Try playing with all of

its properties.  If you don't see a properties window, right-click on the button and go

for "properties."  It is very similar to the properties window that you see in VB6.

Provide "Show" as a value for the "text" property for the button.  You can even

rename the button by directly right clicking and selecting rename from the "inspector"

window (as shown below).

Steganography tool Page 12

Page 13: Project Report

Similarly add a "JLabel," set its "text" to empty and rename it "lblMsg."

Next, double click on the button (which opens the code window) and modify your

code as follows:

public class SampleJFrame extends javax.swing.JFrame {   

    public SampleJFrame() {

        initComponents();

        setSize(400,400);

    }

.

.

.

    private void jButton1ActionPerformed

(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

        this.lblMsg.setText("Hello World!");

    }

.

.

.

    }

Steganography tool Page 13

Page 14: Project Report

Hit F5 to execute your project (along with debugging). It will present you with the

following figure.

Just hit "Ok" and get going on.

You must see the output as in the figure below.

Steganography tool Page 14

Page 15: Project Report

Once you hit "Show," you must see the figure below.

Steganography tool Page 15

Page 16: Project Report

Feasibility Study

Problem Definition

Problem definition is the first step of any project for giving

good solution to the problem. It should be clearly stated. It is a clear understanding of the

problem.

In today’s world dependence of human beings on computer is increasing

rapidly everyone wants to have a bit of knowledge about computers & its applications. In

every department of working field it is going to be fully computerized in the nearest future. In

today’s world everybody is on the run. Every single second is precious. And nobody wants to

stay behind. That’s why we have hell lot of technologies and applications to keep us one step

ahead. One of these was internet that helps people remain connected on the run. There are

various features that internet provides for communication among peoples some of those

features are…chatting, blogging, e-mailing, social networking sites etc.

These facilities are so much useful that even the best organizations are

becoming over dependent on them. Every information that they require is transmitted over

internet. Apart from the facilities provided by internet & its services there is a threat of the

data to be exposed even to the unauthorized person which in turn will not be able to maintain

the security issues related with the message transferred.

Existing System

The security provided now a days by the email servers are not fully visible

to the client or users to ensure their message security. Even the expert eavesdroppers or

hackers can easily retrieve or can misuse our data. In other words to say that the security

provided to us are only server side not by the users sending their data. So to provide the

security belief to the user it is better to be done even also on client side done by user.

Steganography tool Page 16

Page 17: Project Report

Bottlenecks of the Existing System

It is hard to believe that the emails we send is replicated on many

different servers & it becomes a part of the network traffic even if we are not sending or

emailing. The messages or data that we send is in the original form in which we email so it

becomes even easier for the hackers to understand our message that we want it to be secure &

private.

The proposed project

This project intends to design, program and implement the tools that

can be used to ensure the security, integrity, confidentiality of the messages or data at the user

level. In this project we provide the tools to encrypt or decrypt the data, hide the data in

image, audio, video files using the private secret key & then to send the file as email to the

user who knows that secret key will only be able to access the message. Another important

tool in the project provides the facility to send the larger files as email. Using that tool user

can compress or decompress the larger which he is intending to email.

Another module included in the project is Address Book which is can

be used to store personal information about the relatives, friends, employees in an

organizations etc.

Steganography tool Page 17

Page 18: Project Report

System Analysis

Expected features

The goal is to design a system that would be flexible, yet

practical to implement. According to the aforesaid objectives the primary requirement is to

design a system that should:

Be Platform Independent

As the internet more precisely the email facility that we use now a days are platform

independent i.e. it can run on any on any operating system (Linux, Windows Xp/Vista, mac,

etc). So it was a challenge to develop such tools that may be able to run on any platform with

ease without any type of complications. So we developed a toolkit that is implemented using

Java technology as it is well known that it is one of the features of Java that it is platform

independent.

Provide user-friendly interface

The system should be easily available and installable. The

users should not find any problem in using the system. It should incorporate good user-

friendly interface and easy to use services/features. This will attract more and more people to

register to the software and use its services.

Provide ease of usability

The system should be easy to use. It must not require a

technical expert to install any additional hardware or software. This may be done by

providing the understandable interface that can be understood & easily used by even any non

technical user.

Steganography tool Page 18

Page 19: Project Report

Impervious to virus attacks

In the technology era, one of the major threats posed by any

organization or individual when using a computer system is the dreaded attack by virus

(malicious programs). While connecting to the Internet for sending emails or by the use

unauthentic floppy disks and CD-ROMs, there exists higher chances of a virus infection,

hence, the application should be impervious to virus attack, making the system safe.

Be extensible

The code design should always be extensible, so new features can be

added incrementally without requiring redesign and while allowing for backward

compatibility. And additions or enhancements should never require redesign or any changes

in the previous implementation. Otherwise it is considered to be the major flaw in the design.

Any software should be designed keeping in mind that the new features would just be added

to the system without re-engineering or redesigning the whole system.

System Requirements

For developing the System

The following section describes the hardware and the software requirements for

developing this project.

Hardware Requirements

Pentium III 933 MHz

128 MB RAM

Hard Disk: 10GB.

Memory: 512MB free.

Java supported Mobile phone.

Keyboard, Mouse PS2.

Software Requirements

Steganography tool Page 19

Page 20: Project Report

The technologies used to build the application are as follows.

Jdk 1.6.0

NetBeans IDE 6.0

Jre 1.6.0

jCreator v4.50.

Functional Requirements

There are various functional requirements that we need to manage in our projects to

fulfill all those requirements. Those functional requirements are listed below for each

module.

Steganography

a. Steganography is used for hiding message from other.

b. Mainly we hide text into images and audio files

c. Input are text , images, audio files

d. Key is used for Steganography which is used for hiding and retrieving data.

e. Key must be same among the sender and receiver.

Steganography tool Page 20

Page 21: Project Report

System Design

Block diagram

STEGANOGRAPHY

Output

Image/audio file

Block diagram of Steganography

Steganography tool Page 21

Image /audio file

Embedding text in image/audio

Message

+ Image/audio file

TEXT

Message

KEY

Page 22: Project Report

Data flow diagram

Data flow diagram

A data-flow diagram (DFD) is a graphical representation of the "flow" of data through an

information system. DFDs can also be used for the visualization of data processing

(structured design).

On a DFD, data items flow from an external data source or an internal data store to an

internal data store or an external data sink, via an internal process.

A DFD provides no information about the timing or ordering of processes, or about whether

processes will operate in sequence or in parallel. It is therefore quite different from a

flowchart, which shows the flow of control through an algorithm, allowing a reader to

determine what operations will be performed, in what order, and under what circumstances,

but not what kinds of data will be input to and output from the system, nor where the data

will come from and go to, nor where the data will be stored (all of which are shown on a

DFD).

Notations

Steganography tool Page 22

Page 23: Project Report

Image

Image

&

Message

Image

Message

DFD of Steganography

Steganography tool Page 23

HIDINGSTEGANOGRAPH

Y INTERFACE

EXTRACTING

Page 24: Project Report

Interface Design DescriptionThe project build is design with the fact keeping in mind, to have a very good interface in

order to have the interaction with the user to have a full utilization of the tools so that the user

may have better knowledge of the objective with which the project was developed.

Some Of the Interfaces are provided in this project report is as follows…

Steganography

Steganography tool Page 24

Page 25: Project Report

Message saved in an image file with the secret key.

Message is retrieved from the image using the same secret key

Steganography tool Page 25

Page 26: Project Report

Testing

Software testing

Software Testing is an empirical investigation conducted to provide stakeholders with

information about the quality of the product or service under test, with respect to the context

in which it is intended to operate. Software Testing also provides an objective, independent

view of the software to allow the business to appreciate and understand the risks at

implementation of the software. Test techniques include, but are not limited to, the process of

executing a program or application with the intent of finding software bugs. It can also be

stated as the process of validating and verifying that a software program/application/product

meets the business and technical requirements that guided its design and development, so that

it works as expected and can be implemented with the same characteristics.

Software Testing, depending on the testing method employed, can be implemented at any

time in the development process, however the most test effort is employed after the

requirements have been defined and coding process has been completed.

Static vs. dynamic testing

There are many approaches to software testing. Reviews, walkthroughs or inspections are

considered as static testing, whereas actually executing programmed code with a given set of

test cases is referred to as dynamic testing. The former can be, (and unfortunately in practice

often is) omitted, whereas the latter takes place when programs begin to be used for the first

time - which is normally considered the beginning of the testing stage. This may actually

begin before the program is 100% complete in order to test particular sections of code

(modules or discrete functions). For example, Spreadsheet programs are, by their very nature,

tested to a large extent "on the fly" during the build process as the result of some calculation

or text manipulation is shown interactively immediately after each formula is entered.

Steganography tool Page 26

Page 27: Project Report

Software verification and validation

Software testing is used in association with verification and validation

Verification: Have we built the software right (i.e., does it match the specification?)?

It is process based.

Validation: Have we built the right software (i.e., is this what the customer wants?)? It

is product based.

The terms verification and validation are commonly used interchangeably in the industry; it is

also common to see these two terms incorrectly defined. According to the IEEE Standard

Glossary of Software Engineering Terminology:

Verification is the process of evaluating a system or component to determine whether

the products of a given development phase satisfy the conditions imposed at the start

of that phase.

Validation is the process of evaluating a system or component during or at the end of

the development process to determine whether it satisfies specified requirements.

Testing methods

Software testing methods are traditionally divided into black box testing and white box

testing. These two approaches are used to describe the point of view that a test engineer takes

when designing test cases.

Black box testing

Black box testing treats the software as a "black box," without any knowledge of internal

implementation. Black box testing methods include: equivalence partitioning, boundary value

analysis, all-pairs testing, fuzz testing, model-based testing, traceability matrix, exploratory

testing and specification-based testing.

Specification-based testing 

Steganography tool Page 27

Page 28: Project Report

Specification-based testing aims to test the functionality of software according to the

applicable requirements. Thus, the tester inputs data into, and only sees the output

from, the test object. This level of testing usually requires thorough test cases to be

provided to the tester, who then can simply verify that for a given input, the output

value (or behavior), either "is" or "is not" the same as the expected value specified in

the test case.

Specification-based testing is necessary, but it is insufficient to guard against certain

risks.

Advantages and disadvantages 

The black box tester has no "bonds" with the code, and a tester's perception is very

simple: a code must have bugs. Using the principle, "Ask and you shall receive,"

black box testers find bugs where programmers don't. But, on the other hand, black

box testing has been said to be "like a walk in a dark labyrinth without a flashlight,"

because the tester doesn't know how the software being tested was actually

constructed. That's why there are situations when (1) a black box tester writes many

test cases to check something that can be tested by only one test case, and/or (2) some

parts of the back end are not tested at all.

Therefore, black box testing has the advantage of "an unaffiliated opinion," on the one hand,

and the disadvantage of "blind exploring," on the other.

White box testing

White box testing, by contrast to black box testing, is when the tester has access to the

internal data structures and algorithms (and the code that implement these)

Types of white box testing

The following types of white box testing exist:

API testing (application programming interface) - Testing of the application

using Public and Private APIs.

Steganography tool Page 28

Page 29: Project Report

Code coverage - creating tests to satisfy some criteria of code coverage. For

example, the test designer can create tests to cause all statements in the

program to be executed at least once.

Fault injection methods.

Mutation testing methods.

Static testing - White box testing includes all static testing.

Code completeness evaluation

White box testing methods can also be used to evaluate the completeness of a test

suite that was created with black box testing methods. This allows the software team

to examine parts of a system that are rarely tested and ensures that the most important

function points have been tested.

Two common forms of code coverage are:

function coverage, which reports on functions executed

And statement coverage, which reports on the number of lines executed to

complete the test.

They both return coverage metric, measured as a percentage.

Grey Box Testing

Grey box testing involves having access to internal data structures and algorithms for

purposes of designing the test cases, but testing at the user, or black-box level. Manipulating

input data and formatting output do not qualify as "grey box," because the input and output

are clearly outside of the "black-box" that we are calling the system under test. This

distinction is particularly important when conducting integration testing between two

modules of code written by two different developers, where only the interfaces are exposed

for test. Grey box testing may also include reverse engineering to determine, for instance,

boundary values or error messages.

Steganography tool Page 29

Page 30: Project Report

Acceptance testing

Acceptance testing can mean one of two things:

1. A smoke test is used as an acceptance test prior to introducing a build to the main

testing process.

2. Acceptance testing performed by the customer is known as user acceptance testing

(UAT).

Regression Testing

Regression testing is any type of software testing that seeks to uncover software

regressions. Such regression occurs whenever software functionality that was previously

working correctly stops working as intended. Typically regressions occur as an unintended

consequence of program changes. Common methods of regression testing include re-running

previously run tests and checking whether previously fixed faults have re-emerged.

Non Functional Software Testing

Special methods exist to test non-functional aspects of software.

Performance testing checks to see if the software can handle large quantities of data or

users. This is generally referred to as software scalability. This activity of Non

Functional Software Testing is often times referred to as Load Testing.

Stability testing checks to see if the software can continuously function well in or

above an acceptable period. This activity of Non Functional Software Testing is often

times referred to as enduration test.

Usability testing is needed to check if the user interface is easy to use and understand.

Security testing is essential for software which processes confidential data and to

prevent system intrusion by hackers.

Steganography tool Page 30

Page 31: Project Report

Internationalization and localization is needed to test these aspects of software, for

which a pseudo localization method can be used.

In contrast to functional testing, which establishes the correct operation of the software

(correct in that it matches the expected behavior defined in the design requirements), non-

functional testing verifies that the software functions properly even when it receives invalid

or unexpected inputs. Software fault injection, in the form of fuzzing, is an example of non-

functional testing. Non-functional testing, especially for software, is designed to establish

whether the device under test can tolerate invalid or unexpected inputs, thereby establishing

the robustness of input validation routines as well as error-handling routines. Various

commercial non-functional testing tools are linked from the Software fault injection page;

there are also numerous open-source and free software tools available that perform non-

functional testing.

Steganography tool Page 31

Page 32: Project Report

Embedding message Form

Input: Input image, audio, video files, Secret key, Message.

Process: Read the file and embed the message in the file.

Output: As per shown in Diagram.

Test Result: Successful.

Steganography tool Page 32

Page 33: Project Report

Extracting message Form

Input: Input image, audio, video files, Secret key.

Process: Read the file and extract the message from the file.

Output: As per shown in Diagram.

Test Result: Successful.

Steganography tool Page 33

Page 34: Project Report

Steganography tool Page 34

Page 35: Project Report

Conclusion

We have learnt many lessons during the development of this project. It taught a practical

lesson on the importance of software engineering. We found ourselves many times that

implementation was halt because there is uncertainty how the final system operates, it required us to

jump back and forth to revisit design stage, and do some more research on a particular topic.

Programming on embedded platform is a completely new to us. It required us to learn JAVA in which

we had never done programming before. Even though JAVA is a sub branch of J2SE which we have

been programming for the past few years in the course, there are many differences between them.

Programming in a completely new language was quite challenging at some time of the development

process, many new problems have been identified along the way, but the pleasure of seeing the

system run on actual e-mail technology was rather rewarding.

Research for this project has deepened our knowledge of current internet technology such as

the advantages and the limitations that E-mail have.

Although part of the system does not function probably, but we are pleased

with the final results. After all, software project is about experimenting and learning new topic, and

absorbing new experience which could be used in the future.

Steganography tool Page 35

Page 36: Project Report

Scope Of The project

Anyone who has ever done a project will have tales of how scope changes caused

grief. Scope is bound to change, and this is to be expected. As the detail becomes clearer,

more complications creep in. These are not foreseeable at the start and hopefully we build in

a contingency for what we cannot see.

The scope changes that usually cause problems are those where the perception of

what was in and out of scope was different between various parties. The Project Manager

assumed there would only be four or five reports, and the business assumed ten to twenty.

Nobody felt it was worth talking about because they assumed the other person thought the

same way they did.

Steganography is used by some modern printers, including HP and Xerox brand

color laser printers. Tiny yellow dots are added to each page. The dots are barely visible and

contain encoded printer serial numbers, as well as date and time stamps. When one considers

that messages could be encrypted steganographically in e-mail messages, particularly e-mail

spam, the notion of junk e-mail takes on a whole new light. Coupled with the "chaffing and

winnowing" technique, a sender could get messages out and cover their tracks all at once.

Steganography tool Page 36

Page 37: Project Report

Future Enhancements

Since there are one or two known system issues that still have not been solved, it

would be nice to see a full functional working version of the system as defined in the report

in the future.

The important tool provided in our project is steganography that provides the user to

send the private messages by hiding it into any image, audio, video files. To increase its

efficiency, reliability, performance we can implement it on the bit level, this will not effect

the entities of the files so as to increase the performance by preserving the entities of the files

up to some extent.

All of the above tools are the best tools to ensure the security related issues at the

client side. It will be better to use if it will be embed within the browser so as it can come

with the interface of the e mail portals used now a days. And it will be even more easy to use

by the users.

Steganography tool Page 37

Page 38: Project Report

Assumptions and Dependencies

Java run time environment is necessary to run this application because this application is developed on java. Any operating system can be used to run this application which will support java environment.

Definitions, Acronyms and Abbreviations

Windows An operating system produced by Microsoft Corporation that is used to operate the computer using a graphical user interface.

GUI                                        Graphical User Interface

SRS                                       Software Requirements Specification

JRE Java Runtime Environment

JDK Java Development Kit

SQL Structured Query Language

Steganography tool Page 38

Page 39: Project Report

References

1. www.wikipedia.org

2. Java 2 - The Complete Reference by Herbert Schildt.

3. Java-A beginner's Approach by NITISH UPETI.

4. E-books of JAVA.

5. Java 2 by E.balagurusamy

6. Introduction to SQL 2000.

7. www.google.co.in

Steganography tool Page 39