0% found this document useful (0 votes)
4 views

Model Prjct Java

The project report details the development of a software system aimed at detecting fraudulent communication among students during online multiple-choice exams. It employs statistical methods to analyze response patterns and communication behaviors to identify potential cheating. The project is part of the requirements for a Master's degree in Computer Applications at Sri Y.N. College, under the guidance of Mr. K.S. Chakravarthy.

Uploaded by

ajaykumarak0531
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Model Prjct Java

The project report details the development of a software system aimed at detecting fraudulent communication among students during online multiple-choice exams. It employs statistical methods to analyze response patterns and communication behaviors to identify potential cheating. The project is part of the requirements for a Master's degree in Computer Applications at Sri Y.N. College, under the guidance of Mr. K.S. Chakravarthy.

Uploaded by

ajaykumarak0531
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 103

A PROJECT REPORT ON

DETECTING FRAUDULENT STUDENT COMMUNICATION IN A


MULTIPLE CHOICE ONLINE TEST ENVIRONMENT

Project work submitted in partial fulfillment of the requirements for the award of the degree of

MASTER OF COMPUTER APPLICATIONS

Submitted by

B. SRI AMARNATH
(Regd.No.2203013)

Under the esteemed guidance of

Mr. K.S.CHAKRAVARTHY, MCA.


Assistant Professor

DEPARTMENT OF COMPUTER SCIENCE


Dr. C. S. RAO P.G. CENTRE, SRI Y.N. COLLEGE(A)
(Affiliated to Adikavi Nannaya University)
Accredited by NAAC with ‘A+’ Grade (4th cycle)
College with Potential for Excellence awarded by UGC
NARSAPUR – 534275, W.G. District

2022-2024
A PROJECT REPORT ON

DETECTING FRAUDULENT STUDENT COMMUNICATION IN A MULTIPLE


CHOICE ONLINE TEST ENVIRONMENT

Project work submitted in partial fulfillment of the requirements for the award of degree of

MASTER OF COMPUTER APPLICATIONS

Submitted by

B.SRI AMARNATH
(Regd.No.2203013)

Under the esteemed guidance of

Mr. K.S.CHAKRAVARTHY, MCA .

Assistant Professor

DEPARTMENT OF COMPUTER SCIENCE


Dr. C. S. RAO P.G. CENTRE, SRI Y.N. COLLEGE(A)
(Affiliated to Adikavi Nannaya University)
Accredited by NAAC with an ‘A+’ Grade (4th cycle)
College with Potential for Excellence awarded by UGC
NARSAPUR – 534275, W.G. District
2022-2024
DEPARTMENT OF COMPUTER SCIENCE
Dr. C. S. RAO P.G. CENTRE, SRI Y.N. COLLEGE(A)
(Affiliated to Adikavi Nannaya University)
Accredited by NAAC with an ‘A+’ Grade (4th cycle)
College with Potential for Excellence awarded by UGC
NARSAPUR – 534275

CERTIFICATE
This is to certify that Mr. BULUSU SRI AMARNATH, Regd. No: 2203013, has
developed a software project titled "Detecting Fraudulent Student
Communication in a Multiple Choice Online Test Environment”for HMI
Engineering Services as a partial Fulfillment for the award of the degree of MASTER
OF COMPUTER APPLICATIONS in the Department of Computer Science, Dr.
C.S. RAO P.G. CENTRE, SRI Y. N. COLLEGE(A), Narsapur. This work is
not submitted to any University for the Award of any Degree/Diploma.

INTERNAL EXAMINER EXTERNAL EXAMINER


ACKNOWLEDGEMENTS

My most sincere and grateful acknowledgment is due to sanctum Sri Y.N


College(A) for giving us the opportunity to fulfill our aspiration and become Post
Graduation.

I express my heart-full thanks to our Dr. N. CHINTHA RAO, Director, Dr. C.


S. Rao P.G. Centre, Sri Y.N College(A) for providing us with the necessary facilities
to carry out this project.

I express my Sincere thanks to Mr. P.W. SYAM BABU, Head, MCA


Department, Sri Y.N College(A), for his kind encouragement in the completion of the
project work.

I would also like to express my heart-full thanks to Mr.K.S.CHAKRAVARTHY,


Asst. Professor, MCA Department, project guide for his assistance, which helped me
in completing this project successfully.

I express my profound gratitude to Mr. DINESH HIRAWAT, HMI


ENGINEERING SERVICES, for being a source of inspiration and constantly
encouraging me throughout my course to pursue new ideas and could like to express my
sincere gratitude for the valuable guidance and suggestions that he has indeed us to
finish my project in time.

I am grateful to all the faculty of the MCA Dept. of Dr. C. S. Rao P.G. Centre,
Sri Y.N College(A), my classmates, and my friends for their valuable suggestions and
cooperation in completing the project work.

B.S.AMARNATH
DECLARATION

I, B.SRI AMARNATH do hereby declare that the project entitled “Detecting


Fraudulent Student Communication in a Multiple Choice Online Test
Environment” using JAVA Language; Java AWT, Swings, Networking, oracle ,
windows10, work done by myself submitted to Sri Y.N College(A), Narsapur
affiliated to ADIKAVI NANNAYA UNIVERSITY, Rajamahendravaram, Andhra
Pradesh, in partial fulfillment of requirements for the award of Master of Computer
Applications and has not been submitted to any other institute/university nor published
else anywhere.

Station: Narsapur.
Date of Submission:

(B.S.AMARNATH)
ABSTRACT
ABSTRACT

Online evaluation systems, pervasive nowadays, are known to be susceptible to higher


fraud risks. This work proposes a novel and robust method to detect potential fraud
acts in online multiple-choice question (MCQ) exams. For the first time, the
communication probability between the examines is statistically assessed based on the
concordance of responses and answer time against null expectations and is
subsequently used to identify potential fraud behavior. The model is sensitive to the
direction of communication acts, distinguishing content consumption from production,
as well as multiwise communication channels. Online remote tests from engineering
courses at Tecnico Lisboa are used as a case study. We show that the cumulative
contribution of concordant responses between students, when recurrent, offers a way
of signaling fraud behavior. Separating content production from consumption reveals
the underlying student role played in potential fraud acts. Collusion behavior is
assessed against null models of fraud and conformity, and therefore being statistically
framed and offering a solid criterion to guide tutors in ascertaining fraud and
discouraging communication
INDEX

S.NO DESCRIPTION PAGE NO

ABSTRACT

1. INTRODUCTION

1.1 INTRODUCTION 1

1.2 ORGANISATION PROFILE 2

2. LITERATURE SURVEY 3

3. SYSTEM ANALYSIS
3.1 INTODUCTION 5

3.2 STUDY OF THE SYSTEM 9

3.3 FEASIBILITY STUDY

3.3.1 OPERATIONAL FEASIBILITY 10

3.3.2 ECONOMIC FEASIBILITY 10

3.3.3 TECHNICAL FEASIBILITY 10

3.4 EXISTING SYSTEM 11

3.5 PROPOSED SYSTEM 12

3.6 SOFTWARE REQUIREMENTS SPECIFICATIONS

3.6.1 INTRODUCTION 13

3.6.2 PURPOSE 14

3.6.3 FUNCTIONAL REQUIREMENT 14

3.6.4 REQUIREMENT LOOKUP TABLE 15

3.6.5 NON FUNCTIONAL REQUIREMENTS 16

3.6.6 SOFTWARE AND HARDWARE REQUIREMENT 17


ENVIRONMENT
4. SYSTEM DESIGN
4.1 INTODUCTION 18

4.2 NORMALIZATION 19

4.3 DATA BASE TABLES 21

4.4 SYSTEM ARCHITECTURE 23

4.5 UML DIAGRAMS 24

5. IMPLEMENTATION
5.1 IMPLEMENTATION 32

5.2 OUTPUT SCREENS 34

6. SYSTEM TESTING
6.1 INTRODUCTION 39

6.2 LEVELS OF TESTING 39

6.3 TEST CASES 41

7. TECHNOLOGY DESCRIPTION & CODING

7.1 INTRODUCTION 44

7.2 SAMPLE CODE 63

8. CONCLUSION 73

9. BIBLIOGRAPHY

9.1 REFFERENCES 74
LIST OF FIGURES
S.NO TITLES PAGE NO

1. SOFTWARE DEVELOPMENT LIFE CYCLE 6


2. SPIRAL MODEL 8
3. ARCHITECTURE DIAGRAM 24
4. USE CASE DIAGRAM 25
5. CLASS DIAGRAM 26
6. SEQUENCE DIAGRAM 28
7. DATA FLOW DIAGRAM 29
8. FLOW CHART OF USER 30
9. FLOW CHART OF ADMIN 31
10. LEVELS OF TESTING 39
11. APACHE TOMCAT SERVER 62
LIST OF TABLES
S.NO TITLES PAGE NO
1. REQUIREMENT LOOKUP TABLE 15

2. DATA BASE TABLE FOR USER 21

3. DATA BASE TABLE FOR ADMIN 22

4. TEST CASES THROUGH SCREENS 42


1. INTRODUCTION

1.1. INTRODUCTION

The growing use of Internet needs to take attention while we send and receive
personal information in a secured manner. For this, there are many approaches
that can transfer the data into different forms so that their resultant data can be
understood if it can be returned back into its original form. This technique is
known as encryption. However, a major disadvantage of this method is that the
existence of data is not hidden. If someone gives enough time then the
unreadable encrypted data may be converted into its original form.
A solution to this problem has already been achieved by using a
“steganography” technique to hide data in a cover media so that other cannot
notice it. The characteristics of the cover media depends on the amount of data
that can be hidden, the perceptibility of themessage and its robustness.
In this document, I propose a new system for hiding data stands on many
methods and algorithms for image hiding where I store on data file, called sink
file in an image file called as container image. The primary objective is to use
steganography techniques so as to provide more security and simultaneously
using less storage.

In this project, we propose to develop a system to hiding data by using


"STEGANOGRAPHY" technique as I used many methods stands on some
techniques to have at the back-end a software for hiding data based on hiding
algorithms.

After studying the data hiding algorithms we found many ways to hiding data by
using the multimedia files and the main question for me was "Where hidden data
hides?" as we found by our search to know where the data hides it's important to
know what is the filetype of the data that it shall be hidden and the cover file type
so it is possible to alter graphic or sound files slightly without losing their overall
viability for the viewer and listener. With audio, you can use bits of file that
contain sound not audible to the human ear. With graphic images, you can
remove redundant bits of color from the image and still produce a picture that
looks intact to human eye and is difficult to discern from its original. It is in
those bitsthat stego hides its data.

1
By the final of our research we developed a software uses an algorithm, to
embed data in an image; The purposed system is called "Steganography", the
aim of this project is to encrypt the data; the meaning of encrypt is to hide the
data over an image using different steganographic algorithms, in this system LSB
is the algorithms that we use to hiding the data.

In this project we primarily concentrated on the data security issues when


sending the data over the network using steganographic techniques.
The main objectives of our project are to product security tool based on
steganography techniques to hider message carried by stego-media which should
not be sensible to human beings and avoid drawing suspicion to the existence of
hidden message.Our project scope is developed for hiding information in any
image file to ensure the safety of exchange the data between different parties and
provide better security duringmessage transmission.
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. We will use LSB
technique; the proposed approach is to use the suitable algorithm for embedding
the data in an image files; we will show a brief of this algorithm that we used to
hidingdata.

1.2. STEGANOGRAPHY ARCHITECTURE

Steganography is the art of hiding and transmitting data through apparently


innocuous carriers in an effort to conceal the existence of the data, the word
Steganography literally means covered or hiding writing as derived from Greek.
Steganography has its place in security. It is not intended to replace
cryptography but supplement it.
Hiding a message with Steganography methods reduces the chance of a message
being detected. If the message is also encrypted then it provides another layer of
protection.Therefore, some Steganographic methods combine traditional
Cryptography with Steganography; the sender encrypts the secret message prior
to the overall communication process, as it is more difficult for an attacker to
detect embedded cipher text in a cover. It has been used through the ages by
ordinary people, spies, rulers, government,and armies. There are many stories
about Steganography.
2
For example, ancient Greece used methods for hiding messages such as hiding
In the field of Steganography, some terminology has developed. The adjectives
'cover', 'embedded', and 'stego' were defined at the information hiding workshop
held in Cambridge, England. The term "cover" refers to description of the
original, innocent massage, data, audio, video, and so on. Steganography is not a
new science; it dates back to ancient times.
Hidden information in the cover data is known as the "embedded" data and
information hiding is a general term encompassing many sub disciplines, is a
term around a wide range of problems beyond that of embedding message in
content. The term hiding here can refer to either making the information
undetectable or keeping the existence of theinformation secret.
Information hiding is a technique of hiding secret using redundant cover data
such as images, audios, movies, documents, etc. This technique has recently
become important in a number of application areas. For example, digital
video, audio, and images areincreasingly embedded with imperceptible marks,
which may contain hidden signatures or watermarks that help to prevent
unauthorized copy. It is a performance that inserts secret messages into a cover
file, so that the existence of the messages is not apparent.

Research in information hiding has tremendous increased during the past decade
with commercial interests driving the field. Although the art of concealment
“hidden information” as old as the history, but the emergence of computer and
the evolution of sciences and techniques breathe life again in this art with the use
of new ideas, techniques, drawing on the computer characteristics in the way
representation of the data, well-known computer representation of all data
including ( Multimedia) is binary these representations are often the digital levels
and areas and change values-aware of slight not aware or felt by Means sensual
of human such as hearing, sight, the advantage use of these properties to hide data
in multimedia by replace the values of these sites to the values of data to be
hidden, taking into account the acceptable limits for the changeover, and not
exceeded to prevent degradation media container with a change becomes aware
and felt by human. It should be noted here that although the art of hidden
information come in the beginning of the computer and its techniques However,
the seriousness of the work in the stenography as a stand-alonescience started in

1995.

3
1.3. Steganography Types

As it is known there is much communication between people and organizations


through the use of the phone, the fax, computer communications, radio, and of
course all of these communications should be secure. There are basically three
Steganography types: -
1. Pure Steganography.
2. Secret key Steganography.
3. Public key Steganography.

1. Pure Steganography

Pure Steganography is a Steganography system that doesn't require prior


exchange of some secret information before sending message; therefore, no
information is required to start the communication process: the security of the
system thus depends entirely on itssecrecy.

Figure 1-1: Pure Steganography

In most applications, pure Steganography is preferred, since no stego-key must


be shared between the communication partners, although a pure Steganography
protocols don't provide any security if an attacker knows the embedding method.

2. Secret Key Steganography

A secret key Steganography system is similar to a symmetric cipher, where


the sender chooses a cover and embeds the secret message into the cover using a
secret key. If the secret key used in the embedding process is known to the
receiver, he can reverse theprocess and extract the secret message.

4
Anyone who doesn't know the secret key should not be able to obtain evidence
ofthe encoded information.

Figure 1-2: Secret Key Steganography

3. Public Key Steganography

Public key Steganography does not depend on the exchange of a secret key. It
requires two keys, one of them private (secret) and the other public: the public
key is stored in a public database, whereas the public key is used in the
embedding process. The secret key is used to reconstruct the secret message.

Figure 1-3: Public Key Steganography

1.4.Steganography Algorithms

For encryption and decryption of text messages using the secret keys
steganographic system uses algorithms known as steganographic algorithms.
The mostly used algorithms for embedding data into images are:
1. LSB (Least Significant Bit) Algorithm (Our domain)
2. JSteg Algorithm

3. F5 Algorithm

5
1. LSB Algorithm

LSB embedding is the most common technique to embed message bits DCT
coefficients. This method has also been used in the spatial domain where the least
significant bit value of a pixel is changed to insert a zero or a one. A simple
example would be to associate an even coefficient with a zero bit and an odd one
with a one-bit value.
In order to embed a message bit in a pixel or a DCT coefficient, the sender
increases or decreases the value of the coefficient/pixel to embed a zero or a one.
The receiver then extracts the hidden message bits by reading the coefficients in
the same sequence and decoding them in accordance with the encoding
technique performed on it.
The advantage of LSB embedding is that it has good embedding capacity and the
change is usually visually undetectable to the human eye. If all the coefficients
are used, it can provide a capacity of almost one bit per coefficients using the
frequency domain technique. On the other hand, it can provide a greater capacity
for the spatial domain embedding with almost 1 bit per pixel for each color
component. However, sending a raw image such as a Bitmap (BMP) to the
receiver would create suspicion in and of itself, unlessthe image file is very small.
Fridrich et al. proposed a steganalysis method which provides a high detection
rate for shorter hidden messages. Westfeld and Pfitzmann proposed another
steganalysis algorithm for BMP images where the message length is comparable
to the pixel count. Most of the popular formats today are compressed in the
frequency domain and therefore it is not a common practice to embed bits
directly in the spatial domain. Hence, frequency domain embeddings are the
preferred choice for image steganography.

6
1.5.ORGANISATION PROFILE

HMI ENGINEERING SERVICES

We are glad to inform, Human Machine Interface Engineering Services could


propose the above, based on their exposure and Experience in emerging
Technologies covering Systems Integration, Research & Development and
Corporate Training, since last two decades. HMIES is associated with
Engineering & Process Industry in various Spheres Design, Develop, Execute
& Maintain Industrial equipment& Systems Industry needs requirements, enable
us to develop Electronic products with enhanced features through our research
and development activity. Our industry based experience and exposure, helped us
to strengthen our industrial activity, develop Perfect Technologies for
Professional Solutions, build professional relationship with corporate and
conduct Corporate Training Services.

7
2. LITERATURE SURVEY

2.1.INTRODUCTION
In this chapter, we will provide an overview of steganography using LSB to hide
the files inside images using the C#.NET technical computing language, it is
development environment is used in a variety of domains, such as image and
signal processing, C# offers many “toolboxes”, and a simple interface to high-
performance libraries, one of the most advantages is a large user community with
lots of free code and knowledge sharing and theability to process both still images
and video. It is popular because of its ease and simplicity. Also, we will mention
some programs that have the same approach it is using an encryption. Then, we
will give the recommendation that help to develop our program.
In this project, use a method of encrypting any data file in an image file. This
process of hiding the data helps to sharing the information with others over the
internet network without any potential risk. The proposed system will help to
hide the content with in the image and encryption of data file with in the image
will help to make the document much securer.
In this research,developed the proposed system by using steganographic
algorithm which is LSB and a technique for hiding capacity and efficiency of
hiding the message with in an image.

2.2. SIMILAR SYSTEMS COMPARISON


2.2.1.White Noise Storm

White Noise Storm is a DOS based tool that could easily embed secret
messages incover images without any degradation. However, the integrity of
the cover image could be severely affected by noise. The tool uses LSB
steganography technique to embed secret messages in PCX files. The main
disadvantage of this tool is the loss of many bits that can be used to hold
information. Additionally, it uses large cover images to store information that it
could be stored in a smaller cover images using other tools.

8
2.2.2. StegoDos

StegoDos is public domain software that only works on 320x200 pixel images
with256 colors. The tool uses LSB steganography technique to hide secret
messages. The main disadvantage of the tool is the size restriction that limits the
user’s cover image to 320x200 pixels in-order to have a stego-image that is
similar to the original one. Another disadvantage is the dependence on the
end-of- file character to end the message that does not have any significance
work since the message after retrieval appears to contain garbage.

Figure 2-1: StegoDos

2.2.3.StegCure

StegCure uses three different LSB steganography techniques. In compared with


the other tools, StegCure offers a better security and has a user-friendly
functionality with interactive graphical user interface (GUI) and integrated
navigation capabilities. Also, it can prevent any attacks by restricting the user to
one attempt to retrieve the secret message.

9
Figure 2-2: StegCure

2.3. SIMILAR TOOLS COMPARISON


Table below shows a comparison between our proposed system tool and other
imagesteganography tools.
White Noise Storm [3]
StegoDos StegCure
Proposed System
[3] [4]

Capacity of Limited hiding capacity Limited hiding Limited hiding Optimum hiding
Secret capacity capacity capacity
Message
Variable size
Image Size - 320x200 -

Lossless
Image (Ex. GIF BMP & PNG
PCX GIF
Format and
BMP)
Efficiency Low Low Medium Medium

Shared Key No Yes No Yes

Table 2-1: Similar tools comparison

2.4. RECOMMENDATIONS
After studying similar tools to our proposed system LSB substitution is used to embed
the message into an image.It works by adjusting the LSB of the carrier image’s pixels
whereas, the last bit of each byte in the image is changed to a bit of the secret message
that is known standard LSB (1-LSB). Also, use 2-LSB method that differs from the
standard LSB method by allowing more data to be hidden into the cover image. The
idea of this method is almost similar to the standard LSB, except that it replaces the 2-
LSB of each byte of the cover image instead of one bit.

10
The LSB insertion differs depending on the number of bits in an image. In 8-bit images,
the last bit of each byte in the image is changed to a bit of the secret message.
However, it has a major limitation, which is embedding only small size data into
images. While in 24- bit images, the last bit of each RGB component is changed which
allows more data to be hidden.

11
3. SYSTEM ANALYSIS

3.1. INTRODUCTION
After analyzing the requirements of the task to be performed, the next step is to
analyze the problem and understand its context. The first activity in the phase is
studying the existing system and other is to understand the requirements and
domain of the new system. Both the activities are equally important, but the first
activity serves as a basis of giving the functional specifications and then
successful design of the proposed system. Understanding the properties and
requirements of a new system is more difficult and requires creative thinking and
understanding of existing running system is also difficult, improper
understanding of present system can lead diversion from solution.

Software Development Life Cycle

The Systems Development Life Cycle (SDLC), or Software Development Life


Cycle in systems engineering, information systems and software engineering, is
the process of creating or altering systems, and the models and methodologies
use to develop these systems.

Figure 3-1: SOFTWARE DEVELOPMENT LIFE CYCLE

12
Requirement Analysis and Design

Analysis gathers the requirements for the system. This project involves creating a
steganography system that allows users to hide and retrieve information within
digital images. The business needs were identified as developing a secure and
user-friendly system for embedding and extracting data from images. The design
included high-level components such as an embedder program, an extractor
program, and a user interface. Detailed low-level designs involved embedding
data into the least significant bits of image pixels and extracting it back. The
interface design provided a simple GUI for user interaction, and data design
specified the input as image files and secret messages and the output as modified
images or retrieved messages. Much care is taken during this phase. The logical
system of the product is developed in this phase.

Implementation

The implementation phase used Python 3.6 for core logic, Tkinter for the GUI,
and Pillow for image processing. The code was written to embed and extract
secret data from images, ensuring the system's core functionality was robust and
efficient. With respect to the type of application, the right programming
language is chosen.

Testing

In this phase, the system is tested. The system underwent thorough testing,
including unit testing for individual functions, integration testing for the
complete process through the GUI, and volume testing with images of different
sizes and data amounts to ensure performance stability. Acceptance testing
ensured the final product met user requirements.

Maintenance

Inevitably the system will need maintenance. The system is designed to


accommodate changes and updates, ensuring ongoing maintenance and
improvement. This includes handling new image formats, larger data payloads,
and fixing any discovered bugs or vulnerabilities, ensuring the software remains
reliable and secure over time.The software should be developed to accommodate
changes that could happen during the post implementation period.
13
SDLC METHDOLOGIES

This document plays a vital role in the development of life cycle (SDLC) as it
describes the complete requirement of the system. It means for use by
developers and will be the basic during testing phase. Any changes made to the
requirements in the future will have to go through formal change approval
process.

SPIRAL MODEL was defined by Barry Boehm in his 1988 article, “A spiral
Model of Software Development and Enhancement. This model was not the first
model to discuss iterative development, but it was the first model to explain why
the iteration models.

As originally envisioned, the iterations were typically 6 months to 2 years long.


Each phase starts with a design goal and ends with a client reviewing the
progress thus far. Analysis and engineering efforts are applied at each phase of
the project, with an eye toward the end goal of the project.
The following diagram shows how a spiral model acts like:

Figure 3-2: SPIRAL MODEL

The steps for Spiral Model can be generalized as follows:

 The new system requirements are defined in as much details as possible.

14
 This usually involves interviewing a number of users representing all the
external or internal users and other aspects of the existing system.

 A preliminary design is created for the new system.

 A first prototype of the new system is constructed from the preliminary design.
This is usually a scaled-down system, and represents an approximation of the
characteristics of the final product.

 A second prototype is evolved by a fourfold procedure:

o Evaluating the first prototype in terms of its strengths, weakness and risks.

o Defining the requirements of the second prototype.

o Planning and designing the second prototype.

o Constructing and testing the second prototype.

 At the customer option, the entire project can be aborted if the risk is deemed
too great. Risk factors might involve development cost overruns, operating-
cost miscalculation, or any other factor that could, in the customer’s
judgment, result in a less-than-satisfactory final product.

 The existing prototype is evaluated in the same manner as was the previous
prototype, and if necessary, another prototype is developed from it according
to the fourfold procedure outlined above.

 The preceding steps are iterated until the customer is satisfied that the refined
prototype represents the final product desired.

 The final system is constructed, based on the refined prototype.

 The final system is thoroughly evaluated and tested. Routine maintenance is


carried on a continuing basis to prevent large scale failures and to minimize
down time.

15
PROCESS MODELS USED WITH JUSTIFICATION SDLC MODEL:

Software Development Life Cycle (SDLC)

Figure 3-3: SOFTWARE DEVELOPMENT LIFE CYCLE

The Software Development Lifecycle (SDLC) for small to medium database


application development efforts. This project uses iterative development
lifecycle, where components of the application are developed through a series of
tight iteration. The first iteration focus on very basic functionality, with
subsequent iterations adding new functionality to the previous work and or
correcting errors identified for the components in production.

The six stages of the SDLC are designed to build on one another, taking outputs
from the previous stage, adding additional effort, and producing results that
leverage the previous effort and are directly traceable to the previous stages.
During each stage, additional information is gathered or developed, combined
with the inputs, and used to produce the stage deliverables. It is important to
not that the additional information is restricted in scope, new ideas that would
take the project in directions not anticipated by the initial set of high-level
requirements or features that are out-of-scope are preserved for later
consideration.

16
Too many software development efforts go awry when development team and
customer personnel get caught up in the possibilities of automation. Instead of
focusing on high priority features, the team can become mired in a sea of nice to
have features that are not essential to solve the problem, but in themselves are
highly attractive. This is the root cause of large percentage of failed and or
abandoned development efforts and is the primary reason the development team
utilizes the iterative model.

3.2. STUDY OF THE SYSTEM

To provide flexibility to the users, the interfaces have been developed that are
accessible through a browser. The GUI’S at the top level have categorized as

 Administrative user interface.

 The operational or generic user interface

The ‘administrative user interface’ concentrates on the consistent information


that is practically, part of the organizational activities and which needs proper
authentication for the data collection. These interfaces help the administrative
with all the transactional states like data insertion, data deletion and data updating
along with the extensive data search capabilities.

The ‘operational or generic user interface’ helps the end users of the system in
transactions through the existing data and required services. The operational user
interface also helps the ordinary users in managing their own information in a
customized manner as per the included.

3.3. FEASIBILITY STUDY

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 understanding of the major requirements
for the system is essential.

17
Three key considerations involved in the feasibility analysis are

 ECONOMICAL FEASIBILITY

 TECHNICAL FEASIBILITY

 SOCIAL FEASIBILITY

1. ECONOMICAL FEASIBILITY

This study is carried out to check the economic impact that the system will have
onthe organization. The amount of fund that the company can pour into the
research anddevelopment 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.

2. TECHNICAL FEASIBILITY

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 technicalresources. 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.

3. SOCIAL FEASIBILITY

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 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.

18
3.4. EXISTING SYSTEM

In the increasing use of the internet necessitates secure transmission and


reception of personal information. Encryption is a technique that encrypts data to
prevent unauthorized access, but it doesn't inherently conceal its existence.
Concealment methods involve physically hiding data, while cryptographic
techniques like secret sharing and obfuscation obscure it. Traditional analog
techniques like microdots and invisible writing have limitations compared to
digital methods. Stealth techniques disguise data within content to avoid
detection.

DRAWBACKS:

1. Limited Data Capacity:

Image-based steganography can only hide a relatively small amount of data


within an image without noticeable distortion. The capacity is limited by the
need to maintain the quality and appearance of the image.

2. Detection Risks:

Despite the covert nature of steganography, there is always a risk that advanced
detection techniques, such as statistical analysis or steganalysis tools, can
identify hidden data. Once detected, the covert data can be compromised.

3. Security Vulnerabilities:

If the steganographic method or algorithm used is not robust, it can be


vulnerable to attacks. For example, if an attacker knows the method used to
embed data, they can potentially extract or alter the hidden information.

4. Data Integrity Concerns:

During the process of embedding data into an image, there is a risk of altering
the image's integrity, which can inadvertently degrade the hidden data.
Additionally, if the image undergoes compression or editing, the embedded
data might get corrupted or lost.
19
5. Compatibility Issues:

Not all image formats or software support steganography equally well. Some
formats are more prone to compression, which can strip away the hidden data.
Compatibility issues can arise when transferring or processing steganographic
images across different platforms or applications.

6. Complexity and Overhead:

Implementing steganography can introduce complexity in terms of the


algorithms and processes needed to embed and extract data. This complexity
can lead to additional computational overhead and resource consumption,
making the system less efficient.

7. Legal and Ethical Concerns:

The use of steganography can raise legal and ethical issues, particularly if it is
used to hide malicious content or bypass security measures. There may be legal
ramifications for using steganography to conceal illicit activities or sensitive
information without proper authorization.

3.5. PROPOSED SYSTEM


In the proposed system we concentrate on finding some algorithm to hide the
data inside images using steganography technique. An algorithm is designed to
hide all the data inputted within the image to protect the privacy of the data.
Then, the system is developed based on the new steganography algorithm.

This proposed system provides the user with two options encrypt and decrypt
the data, in encryption the secret information is hiding in with image file, and
on the other side the decryption is getting the hidden information from the stego
image file, and also the user can show the image size after and before the
encryption.
The processes of encryption and decryption of the data file consists of:

 Providing security for the data to be transmitted through network using


steganography.

20
 Proposing an approach for hiding the data within an image using a
steganographic algorithm which provides better accuracy and quality of hiding.

Microsoft Techniques is used through the .NET framework to extensively


analyze the functions of the LSB algorithm in steganography. Texts and other
file formats are encrypted and embedded into an image file which is then
transferred to the destination.

ADVANTAGES:
1. Inconspicuous Communication:

Steganography allows for the covert embedding of data within images, making
it difficult to detect the presence of hidden information. This inconspicuous
nature makes it an effective method for secret communication.

2. Enhanced Security:

When combined with encryption, steganography provides an additional layer


of security. Even if the hidden data is detected, it remains protected by
encryption, making unauthorized access more challenging.

3. Integration with Multimedia:

Steganography can be easily integrated with various multimedia formats,


including images, audio, and video. This versatility allows for the seamless
embedding of data within everyday media files.

4. Privacy Preservation:

By hiding data within images, steganography helps preserve the privacy of the
information being communicated. It can protect sensitive data from being
exposed or intercepted by unauthorized parties.

5. Resilience to Attacks:

Well-designed steganographic methods can be resilient to common image


processing techniques such as resizing, cropping, or compression. This
robustness ensures that the hidden data remains intact even if the carrier image
is modified.
21
6. Cost-Effective:

Implementing steganography typically requires minimal additional resources or


costs. It can be executed using existing digital images and standard software,
making it a cost-effective solution for secure communication.

7. Easy Implementation:

Many steganographic techniques are straightforward to implement and use.


There are numerous tools and software available that simplify the process of
embedding and extracting hidden data within images, making it accessible
even to users with limited technical expertise.

3.6. SOFTWARE REQUIREMENT SPECIFICATION

3.6.1. INTRODUCTION AND PURPOSE

The purpose of this Software Requirements Specification (SRS) document is to


define the requirements for a steganography application that uses images to
embed and retrieve hidden messages. This document details the functionalities,
performance, and constraints of the software to ensure secure and effective
communication. The application will allow users to embed secret messages
within image files, extract hidden messages from image files, ensure minimal
impact on image quality, and optionally encrypt messages for added security.
Steganography, the practice of hiding messages within other non-secret data, is
employed using the Least Significant Bit (LSB) technique, which embeds
information in the least significant bits of image pixel values. The application
will feature a graphical user interface (GUI) for ease of use. It will support
multiple operating systems, including Windows, macOS, and Linux, and will
use standard image processing and encryption libraries such as OpenCV and
PyCryptodome. End users, who are individuals requiring secure
communication, and technical users, such as developers or researchers
interested in steganography techniques, will benefit from this application. The
operating environment includes Windows 10 and above, macOS, and Linux,
with dependencies on Python, OpenCV, and PyCryptodome.

22
Design constraints include minimal impact on the visual quality of images and
support for various image formats like PNG and JPEG. Assumptions are that
users have basic knowledge of file handling, and the software relies on stable
libraries for image processing and encryption. Functional requirements include
allowing users to select an image file, input a secret message, embed the
message using LSB, encrypt the message if desired, and extract the hidden
message. Performance requirements state that embedding and extraction should
complete within 10 seconds for standard image sizes, and the application
should handle images up to 10 MB efficiently. Usability requirements ensure
the GUI is intuitive, with clear instructions and feedback. Security
requirements dictate the use of AES encryption if selected, and ensure no data
leakage during processes. Interface requirements include a user interface for
file selection, text input, and progress indicators. Reliability requirements
ensure the system handles errors gracefully and maintains data integrity. Other
nonfunctional requirements include optimizing performance, securing sensitive
data, maintaining modular and well-documented code, and ensuring portability
across operating systems.

Appendices include a glossary defining steganography,LSB, and AES,


references to relevant research and documentation, and a list of tools and
libraries used. This SRS outlines the requirements for developing a reliable and
user-friendly steganography application for covert communication.

3.6.2. FUNCTIONAL REQUIREMENTS:


Steganography involves several key processes, including embedding and
extraction, each supported by functional requirements that ensure the security,
quality, compatibility, robustness, performance, and usability of the
steganographic system. These processes are essential for effectively concealing
and retrieving hidden messages within cover media while maintaining the
system's overall effectiveness and security.

 Security: Ensure the confidentiality of the hidden message through


encryption and secure embedding techniques.
 Quality of Service: Maintain the quality of the cover medium (e.g., image
quality, audio fidelity) to avoid detection of the hidden message.
23
 Compatibility: Ensure compatibility with different types of cover media
and extraction tools.
 Robustness: Ensure that the hidden message remains intact and
retrievable even after potential modifications to the stego-object.
 Performance: Achieve efficient embedding and extraction processes
without significant delays or errors.
 User Interface: Provide a user-friendly interface for users to embed and
extract messages easily.

1. Embedding Process

Embedding is the process of hiding a secret message (data) within a cover


medium (stego-object). The goal is to conceal the existence of the embedded
data from unintended recipients. Here's how embedding typically works

 Selection of Cover Medium: Choose an appropriate cover medium, such as


an image, audio file, video, or text document, based on the type of
steganographic technique being used.
 Encoding the Secret Message: Convert the secret message into a format
suitable for embedding. This may involve encryption to enhance security and
ensure the secrecy of the embedded message.
 Embedding Algorithm: Use a steganographic algorithm (e.g., LSB
embedding, filtering techniques) to embed the secret message into the cover
medium. This process should ensure that the cover medium remains visually or
audibly indistinguishable from the original.
 Testing for Effectiveness: Verify the effectiveness of the embedding process
by analyzing the stego-object for any noticeable alterations compared to the
original cover medium.

24
2. Extraction Process

Extraction is the process of retrieving the hidden message from the stego-object
without altering the cover medium. This is done using specific extraction
techniques and algorithms Stego-Object Identification: Identify the type of
stego-object (e.g., image, audio file) that contains the hidden message.

 Extracting Algorithm: Use an extraction algorithm appropriate for the


steganographic technique used during embedding (e.g., LSB extraction,
filtering techniques).
 Message Decoding: Decode the extracted data to recover the original secret
message. This may involve decryption if encryption was applied during the
embedding process.
 Message Reconstruction: Convert the decoded data back into its original
format (e.g., text, image) for use by the intended recipient.

25
3.6.3. REQUIREMENT LOOKUP TABLE

Requirement Description
Image Formats Common formats include BMP, PNG, and
JPEG. BMP and PNG are preferred due to
lossless compression.
Embedding Techniques LSB (Least Significant Bit), DCT (Discrete
Cosine Transform), DWT (Discrete Wavelet
Transform), PVD (Pixel Value Differencing).
Capacity The amount of data that can be hidden depends
on the image size and format. Typically
measured in bits per pixel (bpp).
Imperceptibility The embedded data should not be noticeable to
the human eye. Evaluate using PSNR (Peak
Signal-to-Noise Ratio).
Robustness The ability to withstand image
manipulation like cropping,
resizing, and compression.

Tools and Common tools include Steghide, OpenStego,


Software F5, and custom scripts using libraries like
OpenCV or PIL.
Security Use of cryptographic techniques
to secure the embedded data.

Extraction Methods and tools to retrieve hidden data


accurately without degrading the cover image.
Legal and Ethical Ensure compliance with laws and ethical
standards regarding data hiding and privacy.
Applications Use cases include secure
communication, digital
watermarking, and copyright
protection.

Performance Metrics Evaluate based on embedding capacity,


imperceptibility, and robustness.
Algorithm Complexity Consider computational
efficiency and the complexity of
the embedding/extraction
algorithms.

Noise Sensitivity Impact of image noise on the


hidden data. Some techniques
are more resilient to noise than
others.

Compression Tolerance Ability to withstand compression, especially in


lossy formats like JPEG.

Table 3-1: Requirement Lookup Table


26
3.6.4. NON- FUNCTIONAL REQUIREMENTS:
 For user interfaces we take in consideration that they should has a standard
look and being user friendly at the same time to make sure that users'
attention will not be distracted and interface to provide more flexibility and
scalability.
 The program will be in the English language.
 The program must be fast in processing.
 The program must to hide the image within the image and then extract
image fromthe image properly.

 All function must be works well then system will be a high quality.

3.6.5. Software & Hardware Requirement Environment


SOFTWARE REQUIREMENTS:

Steganography requires specialized software tools to embed and extract hidden


messages from cover media. Here are the key software requirements:
 Technology : Python
 Web Server : FLASK
 Client Side Technologies : HTML, CSS, JavaScript
 Database Management Systems: SQLite
 Frame Work : .NET

HARDWARE REQUIREMENTS:

 Computer/Laptop: Intel Core i5 or higher

 RAM : 8 GB or more

 Operating System: Windows, macOS, or Linux

27
4. SYSTEM DESIGN

4.1. INTRODUCTION

Software design is a pivotal phase in the software development process,


essential for crafting a well-structured and effective solution. Once the purpose
and specifications of the software are defined, designers and developers
collaborate to create a detailed plan. This plan translates requirements into a
blueprint that guides the implementation phase. It involves identifying
challenges, planning the architectural view of the software, and implementing
algorithms and data structures to meet performance and scalability needs.
Principles such as abstraction, modularity, encapsulation, and hierarchy guide
this process, ensuring the design is modular, reusable, scalable, and
maintainable. Ultimately, a well-executed software design sets the foundation
for developing high-quality software that fulfills user needs efficiently.

4.2. NORMALIZATION

It is a process of converting a relation to a standard form. The process is used


to handle the problems that can arise due to data redundancy i.e. repetition of
data in the database, maintain data integrity as well as handling problems that
can arise due to insertion, updation, deletion anomalies.

Decomposing is the process of splitting relations into multiple relations to


eliminate anomalies and maintain anomalies and maintain data integrity. To do
this we use normal forms or rules for structuring relation.

 Insertion anomaly: Inability to add data to the database due to


absence of other data.

 Deletion anomaly: Unintended loss of data due to deletion of other


data.

 Update anomaly: Data inconsistency resulting from data


redundancy and partialupdate.

28
Normal Forms

These are the rules for structuring relations that eliminate anomalies.

FIRST NORMAL FORM

A relation is said to be in first normal form if the values in the relation are
atomic for every attribute in the relation. By this we mean simply that no
attribute value can be a set of values or, as it is sometimes expressed, a
repeating group.

SECOND NORMAL FORM

A relation is said to be in second Normal form is it is in first normal


form and itshould satisfy any one of the following rules.

 Primary key is a not a composite primary key

 No non key attributes are present

 Every non key attribute is fully functionally dependent on full set of


primary key.

THIRD NORMAL FORM

A relation is said to be in third normal form if their exits no transitive


dependencies.

Transitive Dependency:

 If two non key attributes depend on each other as well as on the


primary key then theyare said to be transitively dependent.
 The above normalization principles were applied to decompose the
data in multipletables thereby making the data to be maintained in a
consistent state.

29
4.3. DATA BASE TABLES
Stakeholder Description
User That have major controlling of the whole
systems process and able to access or use
all modules of the application.

Program The Application itself which can


perform the user operation in main
process encrypt ( hide image in another
image), decrypt (unhide image from
Stego-image).
Table 4-1: Stakeholders

Choose an image: Select the picture, open the image, the image review.
Processing image: Typing image in the image box pressing the button for
thetreatment process

Hide image: The program hides image.


A use case is a written description of how users will perform tasks on
your website. It outlines, from a user's point of view, a system's behavior
as it responds to a request. Each use case is represented as a sequence of
simple steps, beginning with a user's goal and ending when that goal is
fulfilled.
The description of our project as follows;

30
Actors User
Description The user wants to hide image in another image file
Data Cover image, Image to covered (Message)
Response 1.Select the Embed from the tabs.
2.Select the algorithm type.
3. Select the cover file by click browse until the open file dialog "Choose a
Cover" file appears.
4. From the "Choose a Cover File" dialog choose the cover file and click
open.
5. Select the embed file by click browse until the open file dialog "Choose a
File To Embed" appear.
6. From the " Choose a File To Embed " dialog choose the embed file and
click open.
7. Select the output file by click browse until the save file dialog "Save as .."
appear.
8. Select the path where you want to save the file and type the file name then
click save.
9. Finally click on the embed button to hiding the embed file information
inside the cover file.
10. After the hiding data, message box will appear to tell user the hiding
operation is successfully.

Comments In case the cover image can’t hide the image that user trying to hide the system
will show alert message to the user.
Stimuli Start hiding process by clicking on Embed button.
Figure 4-1: Database for – Embedding process

31
Actors User
Description The user wants to extract image from stego-image file
Data Stego-Image
Response To start extracting a file you must the following steps:
1.Select the Extract from the tabs.
2. Select the algorithm type.
3. Select the cover file by click browse until the open file dialog "Choose a
Cover" file appears.
4. From the "Choose a Cover File" dialog choose the cover file and click
open.
5. Select the output file by click browse until the save file dialog "Save as .."
appear.
6. Select the path where you want to save the file and type the file name then
click save.
9.Finally click on the extract button to extracting the embed file information.
10.After the extracting data, message box will appear to tell user the
extracting operation is successfully.

Comments The system will show message after the extracting process to let the user know
that the process is end.
Stimuli Start hiding process by clicking on Extract button.
Figure 4-2: Database for– Extracting process

4.4. SYSTEM ARCHITECTURE

Figure 4-3: SYSTEM ARCHITECTURE

32
4.5. UML DIAGRAMS:

Unified Modeling Language (UML) diagrams are visual representations used


in software engineering and systems analysis to illustrate the structure,
behavior, and relationships of a system. UML provides a standardized set of
graphical notations that enable developers, designers, and stakeholders to
communicate and document various aspects of a system in a clear and
consistent manner. UML diagrams serve as a visual tool for understanding,
designing, and documenting software systems.

Here are some commonly used UML diagrams:

 Use case Diagram


 Class Diagram
 Sequence Diagram
 Activity Diagram
 Data flow Diagram

1. Use Case Diagram
Use case diagrams are considered for high level requirement analysis of a system.
So when the requirements of a system are analyzed functionalities are captured in
use cases. So,it can say that uses cases are nothing but the system functionalities
written in an organized manner.

33
Figure 4-4: Use case diagram

2. Class Diagram
A class diagram is a picture for describing generic descriptions of possible
systems. Class diagrams and collaboration diagrams are alternate
representations of object models. Class diagrams contain classes and object
diagrams contain objects, but it is possible to mix classes and objects when
dealing with various kinds of metadata, so the separation is not rigid.

Figure 4-5: Class diagram

Class diagrams are more prevalent than object diagrams. Normally you will
build class diagrams plus occasional object diagrams illustrating complicated
data structures or message-passing structures.
34
3. BEHAVIORAL VIEW
As we mentioned previously that activity diagram, and sequence diagram
provide the behavioral view for our project. Behavioral diagrams are used to
describe the interactionbetween the actors and the system. All the activities that
are performed by the actors and the system are introduced in some way.

4. Sequence Diagram
A sequence diagram shows object interactions arranged in time sequence. It
depicts the objects and classes involved in the scenario and the sequence of
messages exchanged between the objects needed to carry out the functionality
of the scenario.

Figure 4-6: Sequence diagram

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

Figure 4-7: System Activites Activity Diagram

36
6. Data Flow Diagram
A data flow diagram (DFD) is a graphical representation of the "flow" of data
through an information system, modeling its process aspects. Often they are a
preliminary step used to create an overview of the system which can later
be elaborated. DFDs can also be used for the visualization of data processing
(structured design).
A DFD shows what kinds of information will be input to and output from the
system, where the data will come from and go to, and where the data will be
stored.
It does not show information about the timing of processes, or information
about whetherprocesses will operate in sequence or in parallel.

Figure 4-8: Context Diagram

37
5. IMPLIMENTATION

5.1 INTRODUCTION

Implementation refers to the process of putting the planned activities into action
and executing the project plan. It involves transforming the ideas, designs, or
strategies into tangible outcomes or deliverables. Implementation is a critical
phase where the project team works on executing the tasks, processes, or
activities necessary to achieve the project's objectives.

Here are some key aspects of implementation in a project:

Task Execution:

 Embedding Messages: Implementation involves the actual embedding of


secret messages into image files using steganographic techniques. This
includes selecting appropriate images, encoding the message, and embedding it
while ensuring that the image quality remains visually indistinguishable from
the original.
 Extracting Messages: The implementation also includes developing
algorithms to extract hidden messages from stego-images without altering the
cover medium.

Resource Management:

 Human Resources: Assigning responsibilities to team members for


embedding, extracting, and testing.
 Equipment: Ensuring that the necessary hardware and software tools are
available for image processing and steganography techniques.
 Technology: Utilizing libraries and frameworks for image manipulation and
steganography algorithms.

Communication and Collaboration:

 Team Coordination: Establishing clear communication channels to


coordinate tasks and share progress updates among team members.

38
 Stakeholder Engagement: Engaging with stakeholders to provide updates
on progress and gather feedback on implementation milestones.

Risk Management:

 Identifying Risks: Proactively identifying potential risks such as detection of


hidden messages, loss of image quality, or algorithm weaknesses.
 Mitigation Strategies: Developing contingency plans and mitigation
strategies to address risks and ensure project success.

Monitoring and Control:

 Progress Tracking: Monitoring the progress of embedding and extraction


tasks, tracking milestones, and ensuring adherence to the project timeline.
 Quality Control: Conducting tests and reviews to verify that the embedded
messages can be successfully extracted without errors.

Stakeholder Engagement:

 User Testing: Involving stakeholders, such as end-users or clients, in testing


the steganography tool to ensure usability and functionality meet expectations.
 Feedback Incorporation: Iteratively incorporating feedback from
stakeholders to refine the implementation and improve the tool's performance.

Documentation and Reporting:

 Progress Reports: Maintaining documentation of progress, including status


updates, test results, and changes made during implementation.
 Change Requests: Documenting and managing change requests related to
the steganography algorithms or tool functionalities.

Quality Assurance:

 Testing: Performing quality assurance tests to verify the accuracy and


reliability of embedded message extraction.
 Inspections: Conducting inspections of the stego-images to ensure that they
remain visually consistent with the original images.

39
Training and Knowledge Transfer:

 User Training: Providing training to users on how to use the steganography


tool effectively.
 Knowledge Transfer: Transferring knowledge of steganography techniques
and tool usage to stakeholders and team members.

5.2. OUTPUT SCREENS

Figure 5-1: Embed File - Encryption Phase

40
To start hiding a file you must the following steps:

1. Select the Embed from the tabs.

2. Select the algorithm type.


3. Select the cover file by click browse until the open file dialog "Choose a
Cover" fileappears.
4. From the "Choose a Cover File" dialog choose the cover file and click open.

5. Select the embed file by click browse until the open file dialog "Choose a File
ToEmbed" appear.
6. From the " Choose a File To Embed " dialog choose the embed file and click
open.
7. Select the output file by click browse until the save file dialog "Save as .."
appear.
8. Select the path where you want to save the file and type the file name then
click save.
9. Finally click on the embed button to hiding the embed file information inside
the coverfile.
10.After the hiding data, message box will appear to tell user the hiding operation
issuccessfully.

41
Figure 5-2: Extract File - Decryption Phase

To start extracting a file you must the following


steps:
1.Select the Extract from the tabs.

2. Select the algorithm type.


3. Select the cover file by click browse until the open file dialog "Choose a Cover"
fileappears.
4. From the "Choose a Cover File" dialog choose the cover file and click open.
5.Select the output file by click browse until the save file dialog "Save as .."
appear.
6.Select the path where you want to save the file and type the file name then click
save.
7.Finally click on the extract button to extracting the embed file information.
8.After the extracting data, message box will appear to tell user the extracting
operationis successfully.

42
Figure 5-3:Choose a cover file dialog

From this screen you must select the cover file by choose the right path and select the
fileand then click open button.

Figure 5-4: Choose a file to embed dialog

From this screen you must select the embed file by choose the right path and select the
fileand then click open button.

43
Figure 5-5: Save as dialog

From this screen you must select the right path and type the file name to save the
file inthe selected path then click save button.

Figure 5-6:Select Encryption Type Message box

Select encryption type message box to notify the user of select the encryption type
fromthe list.

44
Figure 5-7: Decrypt file successfully message

Successfully hide file message box to notify the user of the extract operation is
successfully.

Figure 5-8: Hide file successfully message

Successfully hide file message box to notify the user of the embed operation is
successfully.

45
6. SYSTEM TESTING

6.1 INTRODUCTION
The purpose of testing is to discover errors. Testing is the process of trying to
discover every conceivable fault or weakness in a work product. It provides a
way to check the functionality of components, sub assemblies, assemblies and/or
a finished product It is the process of exercising software with the intent of
ensuring that the Software system meets its requirements and user expectations
and does not fail in an unacceptable manner. There are various types of test.
Each test type addresses a specific testing requirement.

6.2. LEVELS OF TESTING


Process of creating a program consists of the following phases: 1. defining a
problem; 2. Designing a program; 3. building a program; 4. analyzing
performances of a program, and 5. final arranging of a product.
According to this classification, software testing is a component of the third
phase, and means checking if a program for specified inputs gives correctly and
expected results. So the main aim of testing is to analyze the performance and to
evaluate the errors that occur when the program is executed with different input
sources and running in different operatingenvironments.
Software testing (Figure 3.1) is an important component of software quality
assurance, and many software organizations are spending up to 40% of their
resources on testing. For life- critical software (e.g., flight control) testing can be
highly expensive. Because of that, many studies about risk analysis have been
made.This term means the probability that a software project will experience
undesirable events, such as schedule delays, cost overruns, or outright
cancellation.
There are a many definitions of software testing, but one can shortly define that
as: A process of executing a program with the goal of finding errors. So, testing
means that one inspects behavior of a program on a finite set of test cases (a set
of inputs, execution preconditions, and expected outcomes developed for a
particular objective, such as to exercise a particular program path or to verify
compliance with a specific requirement) forwhich valued inputs always exist.

46
In practice, the whole set of test cases is considered as infinite, therefore
theoretically there are too many test cases even for the simplest programs. In this
case, testing could require months and months to execute. So, how to select the
most proper set of test cases? In practice, various techniques are used for that,
and some of them are correlated with risk analysis, while others with test
engineering expertise.

Testing is an activity performed for evaluating software quality and for improving
it. Hence, the goal of testing is systematical detection of different classes of errors
(error can be defined as a human action that produces an incorrect result) in a
minimum amount of time and with a minimum amount of effort.

Figure 5-9: Test Information Flow

47
There are different types of approaches for testing a .NET framework based
application. The types of testing are:

1. Unit testing
2. Validation testing
3. Integration testing
4. User acceptance testing
5. Output testing
6. Black box and white box testing.

1. Unit Testing
Unit testing is the approach of taking a small part of testable application and
executing it according to the requirements and testing the application behavior.
Unit testing is used for detecting the defects that occur during execution (MSDN,
2010).
When an algorithm is executed, the integrity should be maintained by the data
structures. Unit testing is made use for testing the functionality of each algorithm
during execution.
Unit testing can be used in the bottom up test approach which makes the
integration test much easier. Unit testing reduces the ambiguity in the units. Unit
testing uses regression testing, which makes the execution simpler. Using
regression testing, the fault can be easilyidentified and fixed.
In this project, the purposed system of hiding the data using different phases
likes encryption, decryption, etc. So, for getting the correct output all the
functions that are used are executed and tested at least once making sure that all
the control paths, error handling and control structures are in proper manner.
Unit testing has its applications for extreme programming, testing unit frame
works and good support for language level unit testing.

2. Validation Testing

Validation is the process of finding whether the product is built correct or not. The
software application or product that is designed should fulfill the requirements
and reach theexpectations set by the user. Validation is done while developing or

48
at the final stage of development process to determine whether it is satisfies the
specified requirements of user.

Using validation test the developer can qualify the design, performance and its
operations. Also the accuracy, repeatability, selectivity, Limit of detection and
quantification can be specified using Validation testing (MSDN, 2010).
3. Output Testing

After completion of validation testing the next process is output testing. Output
testing is the process of testing the output generated by the application for the
specified inputs. This process checks weather the application is producing the
required output as per the user's specification or not.
The output testing can be done by considering mainly by updating the test plans,
the behavior of application with different type of inputs and with produced
outputs, making the best use of the operating capacity and considering the
recommendations for fixing the issues(MSDN, 2010).
4. Integration Testing

Integration testing is an extension to unit testing, after unit testing the units are
integrated with the logical program. The integration testing is the process of
examining the working behavior of the particular unit after embedding with
program. This procedure identifies the problems that occur during the
combination of units.
The integration testing can be commonly done in three approaches:

1. Top-down approach
2. Bottom-up approach
3. Umbrella approach

1. Top-down approach:

In the top-down approach the highest level module should be considered first and
integrated. This approach makes the high level logic and data flow to test first and
reduce the necessityof drivers.
One disadvantage with top-down approach is its poor support and functionality is
limited (MSDN, 2010).

49
2. Bottom-up approach:

Bottom-up approach is opposite to top-down approach. In this approach, the


lowest level units are considered and integrated first. Those units are known as
utility units. The utility units are tested first so that the usage of stubs is reduced.
The disadvantage in this method is that it needs the respective drivers which
make the test complicated, the support is poor and the functionality is limited
(MSDN, 2010).
3. Umbrella approach:

The third approach is umbrella approach, which makes use of both the top-
bottom and bottom - top approaches. This method tests the integration of units
along with its functional data and control paths. After using the top - bottom and
bottom-top approaches, the outputsare integrated in top - bottom manner.
The advantage of this approach is that it provides good support for the release of
limited functionality as well as minimizing the needs of drivers and hubs. The
main disadvantage is that it is less systematic than the other two approaches
(MSDN,2010).

5. USER ACCEPTANCE TESTING

User acceptance testing is the process of obtaining the confirmation from


the user that the system meets the set of specified requirements. It is the
final stage of project; the user performs various tests during the design of
the applications and makes further modifications according to the
requirements to achieve the final result.
The user acceptance testing gives the confidence to the clients about the
performance of system.

Types of Testing
 Black box or functional testing
 White box testing or structural testing

50
Black Box Testing
Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as
most other kinds of tests, must be written from a definitive source document,
such as specification or requirements document, such as specification or
requirements document. It is a testing in which the software under test is
treated, as a black box .you cannot “see” into it. The test provides inputs and
responds to outputs without considering how the software works.

Black box testing attempts to find errors in the following categories:


 Incorrect or missing functions
 Interface errors
 Errors in data structure
 Performance errors
 Initialization and termination errors
As shown in the following figure of Black box testing, we are not thinking of
the internal workings,just we think about

o What is the output to our system?


o What is the output for given input to our system?

input Output

The Black box is an imaginary box that hides its internal workings.
White Box Testing
White Box Testing is a testing in which in which the software tester has
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.Two types
of path testing are statement testing coverage and branch testing coverage.

51
input

output

WORKING

The White Box testing strategy, the internal workings.

Test Plan:
Testing process starts with a test plan. This plan identifies all the testing related
activities that must be performed and specifies the schedules, allocates the
resources, and specified guidelines for testing. During the testing of the unit the
specified test cases are executed and the actual result compared with expected
output. The final output of the testing phase is the test report and the error
report.

6.3TEST CASES

STEP TEST ACTION EXPECTED ACTUAL


CONDITION RESULT RESULT
1. Embed File
1.1 Select Cover Click Check browse Done
Image images
1.2 Select Embed Click Check browse Done
Image images
1.3 Select Output Click Check browse Done
Image images
1.4 Click Embed Click Check embed Done
Button function
2. Extract
2.1 Select Cover Click Check browse Done
Image images
2.2 Select Output Click Check browse Done
Image images
2.3 Click Extract Click Check extract Done
Button function

Table 6-1: Test Cases

52
7. TECHNOLOGY DESCRIPTION AND CODING

7.1 INTRODUCTION INTRODUCTION TOPYTHON


Python is currently the most widely used multi-purpose, high-level
programming language. Python allows programming in Object-Oriented and
Procedural paradigms. Python programs generally are smaller than other
programming languages like Java. Programmers have to type relatively less
and indentation requirement of the language, makes them readable all the
time. Python language is being used by almost all tech-giant companies like
– Google, Amazon, Facebook, Instagram, Dropbox, Uber… etc.
The biggest strength of Python is huge collection of standard library which
can be used for the applications as shown in the following figure.

FIG.7-1 : PYTHON Advantages of Python

Let’s see how Python dominates over other languages.

1. ExtensiveLibraries

Python downloads with an extensive library and it contain code for various
purposes like regular expressions, documentation-generation, unit-testing,
web browsers, threading, databases, CGI, email, image manipulation, and
more. So, we don’t have to write the complete code for thatmanually.

53
2. Extensible

As we have seen earlier, Python can be extended to other languages. You


can write some of your code in languages like C++ or C. This comes in
handy, especially in projects.
3. Embeddable

Complimentary to extensibility, Python is embeddable as well. You can put


your Python code in your source code of a different language, like C++.
This lets us add scrting.

4. Improved Productivity

The language’s simplicity and extensive libraries render programmers more


productive than languages like Java and C++ do. Also,the fact that you
need to write less and get more things done.
5. IOT Opportunities

Since Python forms the basis of new platforms like Raspberry Pi, it finds the
future bright for the Internet Of Things. This is a way to connect the
language with the real world.
6. Simple and Easy

When working with Java, you may have to create a class to print ‘Hello
World’. But in Python, just a print statement will do. It is also quite easy to
learn, understand, and code. This is why when people pick up Python,
they have a hard time adjusting to other more verbose languages likeJava.
7. Readable

Because it is not such a verbose language, reading Python is much like


reading English. This is the reason why it is so easy to learn, understand,
and code. It also does not need curly braces to define blocks, and
indentation is mandatory. This further aids the readability of the code.
8. Object-Oriented

This language supports both the procedural and object-oriented


programming paradigms. While functions help us with code reusability,
classes and objects let us model the real world. A class allows the
encapsulation of data and functions into one.

54
9. Free andOpen-Source

Like we said earlier, Python is freely available. But not only can you
downloadPython for free, but you can also download its source code, make
changes to it, and even distribute it. It downloads with an extensive
collection of libraries to help you with yourtasks.
10. Portable

When you code your project in a language like C++, you may need to make
some changes to it if you want to run it on another platform. But it isn’t the
same with Python. Here, you need to code only once, and you can run it
anywhere. This is called Write Once Run Anywhere (WORA). However,
you need to be careful enough not to include any system- dependent
features.
11. Interpreted

Lastly, we will say that it is an interpreted language. Since statements are


executed one by one, debugging is easier than in compiled languages.

Advantages of Python Over Other Languages

1. Less Coding

Almost all of the tasks done in Python requires less coding when the same
task is done in other languages. Python also has an awesome standard
library support, so you don’t have to search for any third-party libraries to
get your job done. This is the reason that many people suggest learning
Python tobeginners.
2. Affordable

Python is free therefore individuals, small companies or big organizations


can leverage the free available resources to build applications. Python is
popular and widely used so it gives you better community support.
The 2019 Github annual survey showed us that Python has overtaken
Java in the most popular programming language category.

55
3. Python is for Everyone

Python code can run on any machine whether it is Linux, Mac or Windows.
Programmers need to learn different languages for different jobs but with
Python, you can professionally build web apps, perform data analysis and
machine learning, automate things, do web scraping and also build games
and powerful visualizations. It is an all-rounder programming language.
Disadvantages of Python
So far, we’ve seen why Python is a great choice for your project. But if you
choose it, you should be aware of its consequences as well. Let’s now see
the downsides of choosing Python over another language.
1. SpeedLimitations
We have seen that Python code is executed line by line. But since Pythonis
interpreted, it often results in slow execution. This, however, isn’t a
problem unless speed is a focal point for the project. In other words, unless
high speed is a requirement, the benefits offered by Python are enough to
distract us from its speed limitations.
2. Weak in Mobile Computing andBrowsers
While it serves as an excellent server-side language, Python is much rarely
seen on the client-side. Besides that, it is rarely ever used to implement
smartphone-based applications. One such application is calledCarbonnelle.
The reason it is not so famous despite the existence of Brython is that it isn’t
that secure.

3. DesignRestrictions
As you know, Python is dynamically-typed. This means that you don’t
need to declare the type of variable while writing the code. It uses duck-
typing. But wait, what’s that? Well, it just means that if it looks like a duck,
it must be a duck. While this is easy on the programmers during coding, it
can raise run-timeerrors.
4. Underdeveloped Database AccessLayers
Compared to more widely used technologies like JDBC (Java DataBase
Connectivity) and ODBC (Open DataBase Connectivity), Python’s
database access layers are a bit underdeveloped. Consequently, it is less
often applied in hugeenterprises.
56
5. Simple

No, we’re not kidding. Python’s simplicity can indeed be a problem. Take
my example. I don’t do Java, I’m more of a Python person. To me, its syntax
is so simple that the verbosity of Java code seemsunnecessary.This was all
about the Advantages and Disadvantages of Python Programming
Language.

Machine Learning
Before we take a look at the details of various machine learning methods,
let's start by looking at what machine learning is, and what it isn't. Machine
learning is often categorized as a subfield of artificial intelligence, but I find
that categorization can often be misleading at first brush. The study of
machine learning certainly arose from research in this context, but in the
data science application of machine learning methods, it's more helpful to
think of machine learning as a means of building models ofdata.
Fundamentally, machine learning involves building mathematical models to
help understand data. "Learning" enters the fray when we give these
models tunable parameters that can be adapted to observed data; in this way
the program can be considered to be "learning" from the data. Once these
models have been fit to previously seen data, they can be used to predict and
understand aspects of newly observed data. I'll leave to the reader the more
philosophical digression regarding the extent to which this type of
mathematical, model- based "learning" is similar to the "learning" exhibited
by the human brain.Understanding the problem setting in machine learning
is essential to using these tools effectively, and so we will start with some
broad categorizations of the types of approaches we'll discusshere.

57
Categories Of Machine Leaning
At the most fundamental level, machine learning can be categorized into
two main types: supervised learning and unsupervised learning.
 Supervised learning involves somehow modeling the relationship between
measured features of data and some label associated with the data; once this model
is determined, it can be used to apply labels to new, unknown data. This is further
subdivided into classification tasks and regression tasks: in classification,the
labelsare discrete categories, while in regression, the labels are continuous
quantities. We will see examples of both types of supervised learning in the
following section.
 Unsupervised learning involves modeling the features of a dataset without
reference to any label, and is often described as "letting the dataset speak for
itself." These models include tasks such as clustering and dimensionality reduction.
Clustering algorithms identify distinct groups of data, while dimensionality
reduction algorithms search for more succinct representations of the data. We will
see examples of both types of unsupervised learning in the followingsection.
Need for Machine Learning
Human beings, at this moment, are the most intelligent and advanced
species on earth because they can think, evaluate and solve complex
problems. On the other side, AI is still in its initial stage and haven’t
surpassed human intelligence in many aspects. Then the question is that
what is the need to make machine learn? The most suitable reason for doing
this is, “to make decisions, based on data, with efficiency andscale”.
Lately, organizations are investing heavily in newer technologies like
Artificial Intelligence, Machine Learning and Deep Learning to get the key
information from data to perform several real-world tasks and solve
problems. We can call it data-driven decisions taken by machines,
particularly to automate the process. These data-driven decisions can be
used, instead of using programing logic, in the problems that cannot be
programmed inherently. The fact is that we can’t do without human
intelligence, but other aspect is that we all need to solve real-world
problems with efficiency at a hugescale.

58
Challenges in Machines Learning
While Machine Learning is rapidly evolving, making significant strides with
cyber security and autonomous cars, this segment of AI as whole still has a
long way to go. The reason behind is that ML has not been able to overcome
number of challenges. The challenges that ML is facing currently are −
• Quality of data − Having good-quality data for ML algorithms is one of
the biggest challenges. Use of low-quality data leads to the problems
related to data preprocessing and featureextraction.
• Time-Consuming task − Another challenge faced by ML models is the
consumption of time especially for data acquisition, feature extraction
andretrieval.
• Lack of specialist persons − As ML technology is still in its infancy
stage, availability
of expert resources is a tough job.
• No clear objective for formulating business problems − Having no
clear objective and well-defined goal for business problems is another key
challenge for ML because this technology is not that matureyet.

• Issue of overfitting &underfitting− If the model is overfitting or


underfitting, it cannot be represented well for the problem.
• Curse of dimensionality − Another challenge ML model faces is too
many features of data points. This can be a realhindrance.
• Difficulty in deployment − Complexity of the ML model makes it quite
difficult to be deployed in reallife.

Applications of Machines Learning


Machine Learning is the most rapidly growing technology and according to
researchers we are in the golden year of AI and ML. It is used to solve many
real-world complex problems which cannot be solved with traditional
approach. Following are some real-world applications of ML −
• Emotionanalysis

• Sentimentanalysis

• Error detection andprevention

• Weather forecasting andprediction


59
• Stock market analysis andforecasting

• Speechsynthesis

• Speechrecognition

• Customersegmentation

• Objectrecognition

• Frauddetection

• Fraudprevention

• Recommendation of products to customer in onlineshopping

How to Start Learning Machine Learning?

Arthur Samuel coined the term “Machine Learning” in 1959 and


defined it as a “Field of study that gives computers the capability to
learn without being explicitly programmed”.
And that was the beginning of Machine Learning! In modern times,
Machine Learning is one of the most popular (if not the most!) career
choices. According to Indeed, Machine Learning Engineer Is The Best Job
of 2019 with a 344% growth and an average base salary of $146,085
peryear.

But there is still a lot of doubt about what exactly is Machine Learning and
how to start learning it? So this article deals with the Basics of Machine
Learning and also the path you can follow to eventually become a full-
fledged Machine Learning Engineer. Now let’s get started!!!

How to start learning ML?


This is a rough roadmap you can follow on your way to becoming an
insanely talented Machine Learning Engineer. Of course, you can always
modify the steps according to your needs to reach your desired end-goal!

60
Step 1 – Understand the Prerequisites
In case you are a genius, you could start ML directly but normally, there are
some prerequisites that you need to know which include Linear Algebra,
Multivariate Calculus, Statistics, and Python. And if you don’t know these,
never fear! You don’t need a Ph.D. degree in these topics to get started but
you do need a basicunderstanding.
1. Learn Linear Algebra and Multivariate Calculus

Both Linear Algebra and Multivariate Calculus are important in Machine


Learning. However, the extent to which you need them depends on your role
as a data scientist. If you are more focused on application heavy machine
learning, then you will not be that heavily focused on mathsas there are
many common libraries available. But if you want to focus on R&D in
Machine Learning, then mastery of Linear Algebra and Multivariate
Calculus is very important as you will have to implement many ML
algorithms fromscratch.
2. LearnStatistics

Data plays a huge role in Machine Learning. In fact, around 80% of your
time as an ML expert will be spent collecting and cleaning data. And
statistics is a field that handles the collection, analysis, and presentation of
data. So it is no surprise that you need to learn it!!! Some of the key concepts
in statistics that are important are Statistical Significance, Probability
Distributions, Hypothesis Testing, Regression, etc. Also, Bayesian Thinking
is also a very important part of ML which deals with various concepts like
Conditional Probability, Priors, and Posteriors, Maximum Likelihood, etc.
3. LearnPython

Some people prefer to skip Linear Algebra, Multivariate Calculus and


Statistics and learn them as they go along with trial and error. But the one
thing that you absolutely cannot skip is Python! While there are other
languages you can use for Machine Learning like R, Scala, etc. Python is
currently the most popular language for ML. In fact, there are many Python
libraries that are specifically useful for Artificial Intelligence and Machine
Learning such as Keras, TensorFlow, Scikit-learn, etc.
61
Step 2 – Learn Various ML Concepts
Now that you are done with the prerequisites, you can move on to actually
learning ML (Which is the fun part!!!) It’s best to start with the basics and
then move on to the more complicated stuff. Some of the basic concepts in
ML are:
1. Terminologies of MachineLearning
 Model – A model is a specific representation learned from data by applying
some machine learning algorithm. A model is also called ahypothesis.
 Feature – A feature is an individual measurable property of the data. A set
of numeric features can be conveniently described by a feature vector.
Feature vectors are fed as input to the model. For example, in order to
predict a fruit, there may be features like color, smell, taste,etc.
 Target (Label) – A target variable or label is the value to be predicted by
our model. For the fruit example discussed in the feature section, the label
with each set of input would be the name of the fruit like apple, orange,
banana,etc.
 Training – The idea is to give a set of inputs(features) and it’s expected
outputs(labels), so after training, we will have a model (hypothesis) that will
then map new data to one of the categories trainedon.
 Prediction – Once our model is ready, it can be fed a set of inputs to which
it will provide a predictedoutput (label).

2. Types of MachineLearning
 Supervised Learning – This involves learning from a training dataset with
labeled data using classification and regression models. This learning
process continues until the required level of performance isachieved.
 Unsupervised Learning – This involves using unlabelled data and then
finding the underlying structure in the data in order to learn more and more
about the data itself using factor and cluster analysismodels.
 Semi-supervised Learning – This involves using unlabelled data like
Unsupervised Learning with a small amount of labeled data. Using labeled
data vastly increases the learning accuracy and is also more cost-effective
than Supervised Learning.

62
 Reinforcement Learning – This involves learning optimal actions through
trial and error. So the next action is decided by learning behaviors that are
based on the current state and that will maximize the reward in the future.

Advantages of Machine learning


1. Easily identifies trends and patterns-
Machine Learning can review large volumes of data and discover specific
trends and patterns that would not be apparent to humans. For instance, for
an e-commerce website like Amazon, it serves to understand the browsing
behaviors and purchase histories of its users to help cater to the right
products, deals, and reminders relevant to them. It uses the results to reveal
relevant advertisements to them.
2. No human intervention needed (automation)
With ML, you don’t need to babysit your project every step of the way.
Since it means giving machines the ability to learn, it lets them make
predictions and also improve the algorithms on their own. A common
example of this is anti-virus softwares; they learn to filter new threats as
they are recognized. ML is also good at recognizing spam.
3. Continuous Improvement
As ML algorithms gain experience, they keep improving in accuracy and
efficiency. This lets them make better decisions. Say you need to make a
weather forecast model. As the amount of data you have keeps growing,
your algorithms learn to make more accurate predictions faster.

4. Handling multi-dimensional and multi-varietydata


Machine Learning algorithms are good at handling data that are multi-
dimensional and multi-variety, and they can do this in dynamic or uncertain
environments.
5. WideApplications
You could be an e-tailer or a healthcare provider and make ML work for
you. Where it does apply, it holds the capability to help deliver a much more
personal experience to customers while also targeting the right customers.

63
Disadvantages of Machine Learning

1. DataAcquisition

Machine Learning requires massive data sets to train on, and these should be
inclusive/unbiased, and of good quality. There can also be times where they
must wait for new data to be generated.
2. Time andResources

ML needs enough time to let the algorithms learn and develop enough to
fulfill their purpose with a considerable amount of accuracy and relevancy.
It also needs massive resources to function. This can mean additional
requirements of computer.

3. Interpretation ofResults

Another major challenge is the ability to accurately interpret results


generated by the algorithms. You must also carefully choose the algorithms
for your purpose.
4. Higherror-susceptibility

Machine Learning is autonomous but highly susceptible to errors. Suppose


you train an algorithm with data sets small enough to not be inclusive. You
end up with biased predictions coming from a biased training set. This leads
to irrelevant advertisements being displayed to customers. In the case of
ML, such blunders can set off a chain of errors that can go undetected for
long periods of time. And when they do get noticed, it takes quite some time
to recognize the source of the issue, and even longer to correctit.

Python Development Steps


Guido Van Rossum published the first version of Python code (version
0.9.0) at alt.sources in February 1991. This release included already
exception handling, functions, and the core data types of list, dict, str and
others. It was also object oriented and had a module system.
Python version 1.0 was released in January 1994. The major new features
included in this release were the functional programming tools lambda, map,
filter and reduce, which Guido Van Rossum never liked.Six and a half years
64
later in October 2000, Python 2.0 was introduced. This release included list
comprehensions, a full garbage collector and it was supporting
unicode.Python flourished for another 8 years in the versions 2.x before the
next major release as Python 3.0 (also known as "Python 3000" and
"Py3K") was released. Python 3 is not backwards compatible with Python
2.x. The emphasis in Python 3 had been on the removal of duplicate
programming constructs and modules, thus fulfilling or coming close to
fulfilling the 13th law of the Zen of Python: "There should be one -- and
preferably only one -- obvious way to do it."Some changes in Python7.3:
Print is now afunction

Views and iterators instead of lists

The rules for ordering comparisons have been simplified. E.g. a


heterogeneous list cannot be sorted, because all the elements of a list
must be comparable to each other.
There is only one integer type left, i.e. int. long is int aswell.

The division of two integers returns a float instead of an integer. "//" can
be used

How to Install Python on Windows and Mac


There have been several updates in the Python version over the years. The
question is how to install Python? It might be confusing for the beginner who
is willing to start learning Python but this tutorial will solve your query. The
latest or the newest version of Python is version 3.7.4 or in other words, it is
Python3.
Note: The python version 3.7.4 cannot be used on Windows XP or earlier
devices.

Before you start with the installation process of Python.First, you need to know
about your System Requirements. Based on your system type i.e. operating
system and based processor, you must download the python version. My
system type is a Windows 64-bit operating system. So the steps below are to
install python version 3.7.4 on Windows 7 device or to install Python 3.
Download the Python Cheat shee there.The steps on how to install Python on
Windows10,8 and 7 are divided into 4 parts to help understand better.

65
Download the Correct version into the system

Step 1: Go to the official site to download and install python using Google
Chrome or any other web browser. OR Click on the following link:
https://www.python.org

Now, check for the latest and the correct version for your operating system.

Step 2: Click on the Download Tab.

66
Step 3: You can either select the Download Python for windows 3.7.4
button in Yellow Color or you can scroll further down and click on
download with respective to their version. Here, we are downloading the
most recent python version for windows3.7.4

Step 4: Scroll down the page until you find the Files option.

Step 5: Here you see a different version of python along with the operating
system.

67
 To download Windows 32-bit python, you can select any one from the three
options: Windows x86 embeddable zip file, Windows x86 executable
installer or Windows x86 web-basedinstaller.
 To download Windows 64-bit python, you can select any one from the three
options: Windows x86-64 embeddable zip file, Windows x86-64 executable
installer or Windows x86-64 web-basedinstaller.
Here we will install Windows x86-64 web-based installer. Here your first part
regarding which version of python is to be downloaded is completed. Now
we move ahead with the second part in installing python i.e. Installation
Note: To know the changes or updates that are made in the version you can
click on the Release Note Option.

Installation of Python

Step 1: Go to Download and Open the downloaded python version to carry


out the installation process.

Step 2: Before you click on Install Now, Make sure to put a tick on Add
Python 3.7 to PATH.

68
Step 3: Click on Install NOW After the installation is successful. Click on
Close.

With these above three steps on python installation, you have successfully and
correctly installed Python. Now is the time to verify the installation.
Note: The installation process might take a couple of minutes.

69
Verify the Python Installation

Step 1: Click on Start

Step 2: In the Windows Run Command, type “cmd”.

Step 3: Open the Command prompt option.

Step 4: Let us test whether the python is correctly installed. Type python –V
and press Enter.

Step 5: You will get the answer as 3.7.4

Note: If you have any of the earlier versions of Python already installed. You must
first uninstall the earlier version and then install the new one.
Check how the Python IDLE works
Step 1: Click on Start

70
Step 2: In the Windows Run command, type “python idle”.

Step 3: Click on IDLE (Python 3.7 64-bit) and launch the program

Step 4: To go ahead with working in IDLE you must first save the file. Click on File
>Click on Save

Step 5: Name the file and save as type should be Python files. Click on SAVE. Here
I have named the files as Hey World.
Step 6: Now for e.g. enter print

71
7.2. SAMPLE CODE:
1. EMBED FILE CODING

#region Embedded the file into the cover by using Hiding methos
public static Bitmap EncryptLayer(Bitmap OriginalBitmapPicture, long
startPosition, long endPosition, bool blnHideFileNameData, long
lngFileNameLength,byte[] BytesOfHiddenFileData, string fileName, long
lngfileSize)
{
// Get the height and width of the original bitmap picture
int height = OriginalBitmapPicture.Height;
int width = OriginalBitmapPicture.Width;

// Declare the index of the LSB as conistant


const int LSB = 7;

// Save the original bitmap image in another bitmap picture called


StegoBitmapPicture to make the updates
Bitmap StegoBitmapPicture = OriginalBitmapPicture;

// Declare the variables i, j to use them for get the pixels of theint i = 0, j =
imag
e 0;

// ArrStegoData to store the binary value of every byte of the char ofthe
file that we want to hide
bool[] ArrStegoData = new bool[8];

// blnArrOfRedByte, blnArrOfGreenByte, blnArrOfBlueByte to store


boolean values of the binaries of the RGB of the original file image
bool[] blnArrOfRedByte = new
bool[8]; bool[] blnArrOfGreenByte
= new bool[8];bool[]
blnArrOfBlueByte = new bool[8];

// pixel to get the values of the original image pixel


Color pixel = new Color(); // Pixel (R,G,B) = (0-255, 0-255, 0-255)

// ArrOfRedByte, ArrOfGreenByte, ArrOfBlueByte to store the binary


values of the RGB of the original image pixel
byte ArrOfRedByte, ArrOfGreenByte,

ArrOfBlueByte;bool

blnCheckIfFinishedHidingTheFileName =

false;
72
// Check if hide the file name data are stored or not - if it hidedthen
the value must be false
// else if the value is true then start hidding the file name dataif
(blnHideFileNameData)
{
int
intFileNameCharIndex =
0;int
intFileDataCharIndex =
0;

for (i = 0; i < height; i++)


for (j = 0; j < width; j++) // we multiply by 3 not * because
we store in byte everytime

//Put here we shall take in our considration the picture


length if we arrived to the last pixel then

if (intFileNameCharIndex == lngFileNameLength) //
finishedhiding the file information
{
blnCheckIfFinishedHidingTheFileName = true;
}

if (blnCheckIfFinishedHidingTheFileName == false)
{

// Convert the byte for every char of the file name

ConvertByteToBoolean((byte)fileName[intFileNameCharIndex], ref ArrStegoData);

// Get the pixel of the input image


pixel = OriginalBitmapPicture.GetPixel(j, i);

//Get the values of RGB of the


pixelArrOfRedByte = pixel.R;
ArrOfGreenByte = pixel.G;
ArrOfBlueByte = pixel.B;

73
// Convert the bytes of the RGB colors to binary values
ConvertByteToBoolean(ArrOfRedByte, ref
blnArrOfRedByte);
ConvertByteToBoolean(ArrOfGreenByte,
blnArrOfGreenByte
refConvertByteToBoolean(ArrOfBlueByte,
);
ref
blnArrOfBlueByte);

// Now we want to store the 8 bits of the file name


that we want to hide by changing the LSB of every color byte
// but on every pixel we can store 3 bits of the byte
// so here to save the sorting we must divide the store
process on three stages
// first store first three values from j = 0 to j = 2
// second the next three bits from j =3 to j=5
// finally the final two bits on j =6 and 7

if (j % 3 == 0)
{
blnArrOfRedByte[LSB] = ArrStegoData[0];
blnArrOfGreenByte[LSB] = ArrStegoData[1];
blnArrOfBlueByte[LSB] = ArrStegoData[2];
}
else if (j % 3 == 1)
{
blnArrOfRedByte[LSB] = ArrStegoData[3];
blnArrOfGreenByte[LSB] = ArrStegoData[4];
blnArrOfBlueByte[LSB] = ArrStegoData[5];
}
else
{
blnArrOfRedByte[LSB] = ArrStegoData[6];
Color newPixelColor =
Color.FromArgb((int)ConvertBooleanToByte(blnArrOfRedByte),
(int)ConvertBooleanToByte(blnArrOfGreenByte),
(int)ConvertBooleanToByte(blnArrOfBlueByte));
StegoBitmapPicture.SetPixel(j, i, newPixelColor);
}
else
{
if (intFileDataCharIndex ==
BytesOfHiddenFileData.Length) // finished hiding the file information
{
goto endPosition;
}

ConvertByteToBoolean((byte)BytesOfHiddenFileData[intFileDataCharIndex], ref
ArrStegoData);
pixel = OriginalBitmapPicture.GetPixel(j, i);
74
ArrOfRedByte = pixel.R;
ArrOfGreenByte = pixel.G;
ArrOfBlueByte = pixel.B;

ConvertByteToBoolean(ArrOfRedByte, ref
blnArrOfRedByte);
ConvertByteToBoolean(ArrOfGreenByte,
blnArrOfGreenByte
refConvertByteToBoolean(ArrOfBlueByte,
);
ref
blnArrOfBlueByte);

if (j % 3 == 0)
{
blnArrOfRedByte[LSB] = ArrStegoData[0];
blnArrOfGreenByte[LSB] = ArrStegoData[1];
blnArrOfBlueByte[LSB] = ArrStegoData[2];
}
else if (j % 3 == 1)
{
blnArrOfRedByte[LSB] = ArrStegoData[3];
blnArrOfGreenByte[LSB] = ArrStegoData[4];
blnArrOfBlueByte[LSB] = ArrStegoData[5];
}
else
{
blnArrOfRedByte[LSB] = ArrStegoData[6];
blnArrOfGreenByte[LSB] = ArrStegoData[7];
intFileDataCharIndex++;
}
Color newPixelColor =
Color.FromArgb((int)ConvertBooleanToByte(blnArrOfRedByte),

(int)ConvertBooleanToByte(blnArrOfGreenByte),
(int)ConvertBooleanToByte(blnArrOfBlueByte));
StegoBitmapPicture.SetPixel(j, i, newPixelColor);

}
}
}
endPosition:

//int initm = j;

long lngtempFileSize = lngfileSize, lngtempFileNameSize =


lngFileNameLength;

ArrOfRedByte = (byte)(lngtempFileSize % 100);


lngtempFileSize /= 100;
ArrOfGreenByte = (byte)(lngtempFileSize % 100);
75
lngtempFileSize /= 100;
ArrOfBlueByte = (byte)(lngtempFileSize % 100);

Color flenColor = Color.FromArgb(ArrOfRedByte, ArrOfGreenByte,


ArrOfBlueByte);
StegoBitmapPicture.SetPixel(width - 1, height - 1, flenColor);

ArrOfRedByte = (byte)(lngtempFileNameSize % 100);


lngtempFileNameSize /= 100;
ArrOfGreenByte = (byte)(lngtempFileNameSize % 100);
lngtempFileNameSize /= 100;
ArrOfBlueByte = (byte)(lngtempFileNameSize % 100);

Color fnlenColor = Color.FromArgb(ArrOfRedByte, ArrOfGreenByte,


ArrOfBlueByte);
StegoBitmapPicture.SetPixel(width - 2, height - 1, fnlenColor);

return StegoBitmapPicture;
}
#endregion

76
2. EXTRACT FILE CODING

#region Get the embeded file from the cover file by using the unhiding method
public static void DecryptLayer(int width, int height, Bitmap
StegoBitmapPicture, string strOutputFileName)
{

int i, j = 0;

bool[] ArrStegoData = new bool[8];

bool[] blnArrOfRedByte = new


bool[8]; bool[] blnArrOfGreenByte
= new bool[8];bool[]
blnArrOfBlueByte = new bool[8];

byte ArrOfRedByte, ArrOfGreenByte, ArrOfBlueByte;

Color pixel = new Color();


// Get the Stored file size that we saved in the encryption on thepixel
(width - 1, height - 1)
pixel = StegoBitmapPicture.GetPixel(width - 1, height -
1);long fSize = pixel.R + pixel.G * 100 + pixel.B *
10000;

// Get the Stored file name size that we saved in the encryption on the
pixel (width - 2, height - 1)
pixel = StegoBitmapPicture.GetPixel(width - 2, height -
1);long fNameSize = pixel.R + pixel.G * 100 + pixel.B *
10000;
byte[] res = new
byte[fSize];string
resFName = "";
byte temp;

int
intFileNameCharIndex
= 0;int
intFileDataCharIndex =
0;

bool blnCheckIfFinishedHidingTheFileName
= false;bool
blnCheckIfFinishedHidingTheFileData =
77
false;
//Read file name:
for (i = 0; i < height; i++)
for (j = 0; j < width;
j++)
{
pixel = StegoBitmapPicture.GetPixel(j, i);

if (intFileNameCharIndex == fNameSize)
{
blnCheckIfFinishedHidingTheFileName = true;
}

if (blnCheckIfFinishedHidingTheFileName == false)
{
ArrOfRedByte =
pixel.R;
ArrOfGreenByte =
pixel.G;
ArrOfBlueByte =
pixel.B;

ConvertByteToBoolean(ArrOfRedByte, ref blnArrOfRedByte);


ConvertByteToBoolean(ArrOfGreenByte, ref
blnArrOfGreenByte)
; ConvertByteToBoolean(ArrOfBlueByte, ref
blnArrOfBlueByte);if (j % 3 == 0)
{
ArrStegoData[0] = blnArrOfRedByte[7];
ArrStegoData[1] = blnArrOfGreenByte[7];
ArrStegoData[2] = blnArrOfBlueByte[7];
}
else if (j % 3 == 1)
{
ArrStegoData[3] = blnArrOfRedByte[7];
ArrStegoData[4] = blnArrOfGreenByte[7];
ArrStegoData[5] = blnArrOfBlueByte[7];
}

78
else
{
ArrStegoData[6] =
blnArrOfRedByte[7]; ArrStegoData[7]
= blnArrOfGreenByte[7]; temp =
ConvertBooleanToByte(ArrStegoData)
;resFName += (char)temp;
intFileNameCharIndex++;
}
}
else
{
if (intFileDataCharIndex == fSize) // finished hiding the
file information
{
blnCheckIfFinishedHidingTheFileName =
true;goto endPosition;
}

if (blnCheckIfFinishedHidingTheFileData == false)
{
pixel = StegoBitmapPicture.GetPixel(j, i);

ArrOfRedByte =
pixel.R;
ArrOfGreenByte =
pixel.G;
ArrOfBlueByte =
pixel.B;

ConvertByteToBoolean(ArrOfRedByte, ref
blnArrOfRedByte);
ConvertByteToBoolean(ArrOfGreenByte,
blnArrOfGreenByte
refConvertByteToBoolean(ArrOfBlueByte,
);
ref
blnArrOfBlueByte);

79
if (j % 3 == 0)
{
ArrStegoData[0] = blnArrOfRedByte[7];
ArrStegoData[1] =
blnArrOfGreenByte[7];ArrStegoData[2] =
blnArrOfBlueByte[7];
}
else if (j % 3 == 1)
{
ArrStegoData[3] = blnArrOfRedByte[7];
ArrStegoData[4] =
blnArrOfGreenByte[7];ArrStegoData[5] =
blnArrOfBlueByte[7];
}
else
{
ArrStegoData[6] =
blnArrOfRedByte[7]; ArrStegoData[7]
= blnArrOfGreenByte[7]; temp =
ConvertBooleanToByte(ArrStegoData)
;res[intFileDataCharIndex] = temp;
intFileDataCharIndex++;
}
}
}
}

endPosition:

File.WriteAllBytes(strOutputFileName + resFName, res);

}
#endregion

80
8. CONCLUSION AND FUTURE ENHANCEMENT

Although only some of the main image steganographic techniques were


discussed in this document, one can see that there exists a large selection of
approaches to hiding information in images. All the major image file formats have
different methods of hiding messages, with different strong and weak points
respectively. Where one technique lacks in payload capacity, the other lacks in
robustness. For example, the patchwork approach has a very high level of
robustness against most type of attacks, but can hide only a very small amount of
information.
Least significant bit (LSB) in both BMP and GIF makes up for this, but both
approaches result in suspicious files that increase the probability of detection
when in the presence of awarden.
The proposed approach in this project uses a new steganographic approach called
image steganography. The application creates a stego image in which the
personal data is embedded inside the cover file image.
Used the Least Significant Bit algorithm in this project for developing the
application which is faster and reliable and compression ratio is moderate
compared to other algorithms.
The major limitation of the application is designed for images cover files. It
accepts only images as a carrier file.
The future work on this project is to improve the compression ratio of the image
to the text. This project can be extended to a level such that it can be used for the
different types of multimedia files.

81
9. BIBLIOGRAPHY

9.1 REFERENCES
1. Rosziati Ibrahim and Teoh Suk Kuan, Steganography Imaging
System (SIS): Hiding Secret Message inside an Image
http://www.iaeng.org/publication/WCECS2010/WCECS2010_pp1
44-148.pdf
2. Zaidoon Kh. AL-Ani, A.A.Zaidan, B.B.Zaidan and Hamdan.O.Alanazi, Overview:
Main Fundamentals for Steganography
3. http://arxiv.org/ftp/arxiv/papers/1003/1003.4086.pdf

4. Bere Sachin Sukhadeo, User Aware Image Tag


Refinement
http://www.ijcsmr.org/eetecme2013/paper19.pd
f
5. Youssef Bassil , A Simulation Model for the Waterfall Software
Development Life Cycle, 2011
http://arxiv.org/ftp/arxiv/papers/1205/1205.6904.pdf
6. ANALYSIS MODEL WATERFALL MODEL
http://www.scribd.com/doc/87322736/Analysis-Model-
Waterfall-Model
7. Data Flow Diagram Symbols
http://www.idi.ntnu.no/~sif8035/pdf/flesn
/notation.pdf
8. Donald S. Le Vie, Jr., Understanding Data Flow
Diagrams
http://ratandon.mysite.syr.edu/cis453/notes/DFD_over
_Flowcharts.pdf
9. B. Beizer, Software Testing Techniques. London:
International Thompson Computer Press, 1990.
10. B. Beizer, Black Box Testing. New York: John Wiley & Sons, Inc., 1995.

11. A. Bertolino, "Chapter 5: Software Testing," in IEEE


SWEBOK Trial Version 1.00, May 2001.
12. Testing Overview and Black-Box Testing

82
Techniques
http://agile.csc.ncsu.edu/SEMaterials/Black
Box.pdf
13. Jovanović, Irena , Software Testing Methods and
Techniques,
http://www.internetjournals.net/journals/tir/2009/January
/Paper%2006.pdf
14. Hong Cai1 and Sos S.Agaian2, BREAKING F5 IN COLOR IMAGES WITH
LOW EMBEDDING RATES

15. Yao Wang, DCT and Transform Coding

16. N.F.Johanson and S.Jajodia. “Exploring Steganography: Seeing The Unseen,”


IEEE CJ, February 1998, pp. 26-43.

17. L.Y.Poretal.,“StegCure:A Comprehensive Steganographic Tool Using


Enhanced LSB Scheme,” WSEAS Transactions on Computers, vol. 7, no. 8,
August 2008, pp. 1309-1318.

83

You might also like