Professional Documents
Culture Documents
Final Report 3
Final Report 3
INTRODUCTION
1.1 INTRODUCTION
“Video Steganography” is a technique to hide any kind of files in any extension into a
carrying Video file. When information is hidden inside video in program or person hiding
the information will usually use the discrete cosine transform (DCT) method. DCT works
by slightly changing the each of the images in the video, only so much though so it is not
noticeable by the human eye. To be more precise about how DCT works, DCT alters values
of certain parts of the images, it is usually rounds them up. For example if part of an image
has a value of 6.667 it will round up to 7. Steganography in videos is similar to that of
steganography in images, apart from information is hidden in each frame of video. White
space and tabs occur naturally in documents, so there is not really any possible way using
method of steganography would cause someone to be suspicious.
The main purpose for preparing this document is to give a general insight into the
analysis and requirements of the existing system or situation and for determining the
operating characteristics of the system. The main objective of this system is that to avoid
drawing suspicion to the transmission of hidden message. The goal of cryptography is to
make data unreadable by a third party, the goal of stenography is to hide the data from a
third party through the use of advanced computer software, authors of images and software
can place a hidden trademark in their product, allowing them to keep a check on piracy.
This is commonly known as watermarking. Hiding serial numbers or a set of characters
that distinguishes an object from a similar object is known as finger printing. Together,
these two are intended to fight piracy. The latter is used to detect copyright violators and
the former is used to prosecute them. But these are only examples of the much wider field
of steganography.
1
CHAPTER-2
LITERATURE REVIEW
2.2.1 INTRODUCTION
A feasibility study is a high-level capsule version of the entire System analysis and
Design Process. The study begins by classifying the problem definition. Feasibility is to
determine if it’s worth doing. Once an acceptance problem definition has been generated,
the analyst develops a logical model of the system. A search for alternatives is analyzed
carefully. There are 3 parts in feasibility study.
2
2.2.2 TECHNICAL FEASIBILITY
Evaluating the technical feasibility is the trickiest part of a feasibility study. This is
because, at this point in time, not too many detailed design of the system, making it difficult
to access issues like performance, costs on (on account of the kind of technology to be
deployed) etc. A number of issues have to be considered while doing a technical analysis.
Understand the different technologies involved in the proposed system before commencing
the project we have to be very clear about what are the technologies that are to be required
for the development of the new system. Find out whether the organization currently
possesses the required technologies. Is the required technology available with the
organization.
Is there sufficient support for the project from management from users? If the
current system is well liked and used to the extent that persons will not be able to
see reasons for change, there may be resistance.
Are the current business methods acceptable to the user? If they are not, Users may
welcome a change that will bring about a more operational and useful systems.
Have the user been involved in the planning and development of the project?
Early involvement reduces the chances of resistance to the system and in general
and increases the likelihood of successful project.
3
2.2.4 ECONOMIC FEASIBILITY
Encryption software protects internet connected computers from crackers and other
online intruders. The technology is widely used to encrypt credit card information, bank
account numbers and other type of financial records so they can send safely and securely
across the internet. Protect much of the intellectual content that’s marketed on the web,
such as music, Videos, articles, and software, restricting its availability to paying
customers. This system helps to hide the information while sending the important and
confidential documents in video files; it will be invisible for the third person. This system
is helpful for the defense and security departments sending and receiving the confidential
matters in emergency situations.
The project plays a vital role in the development life cycle (SDLC) .As it describes the
complete requirement of the system. It is meant for use by the developers and will be the
4
basic during testing phase. Any changes made to the requirements in the future will have
to go through formal change approval process. Actually computerized process in recent
years have contributed to augment security requirements both at the final user level and at
the enterprise level since the massive utilization of computers and the internet with global
availability. Throughout time computational security needs have been focused on different
features, Secrecy and confidentiality, identification, verification, non repudiation, integrity
control and availability.
The cover data should not be significantly degraded by the embedded data, and the
embedded data should be as imperceptible as possible. The embedded data should be as
immune as possible to modifications from intelligent attacks or anticipated manipulations.
Thus it is necessary that the hidden message should be encrypted before stenography.
5
CHAPTER-3
SYSTEM ANALYSIS
3.1 INTRODUCTION
The first step in developing anything is to state the requirements. This applies just as
much to leading edge research as to simple programs and to personal programs, as well as
to large team efforts. Being vague about your objective only postpones decisions to a later
stage where changes are much more costly.
The problem statement should state what is to be done and not how it is to be done. It
should be a statement of needs, not a proposal for a solution. A user manual for the desired
system is a good problem statement. The requestor should indicate which features are
mandatory and which are optional, to avoid overly constraining design decisions. The
requestor should avoid describing system internals, as this restricts implementation
flexibility. Performance specifications and protocols for interaction with external systems
are legitimate requirements. Software engineering standards, such as modular
construction, design for testability, and provision for future extensions, are also proper.
6
Most problem statements are ambiguous, incomplete, or even inconsistent. Some
requirements are just plain wrong. Some requirements, although precisely stated, have
unpleasant consequences on the system behavior or impose unreasonable implementation
costs. Some requirements seem reasonable at first but do not work out as well as the request
or thought. The problem statement is just a starting point for understanding the problem,
not an immutable document. The purpose of the subsequent analysis is to fully understand
the problem and its implications. There is no reasons to expect that a problem statement
prepared without a fully analysis will be correct.
The analyst must work with the requestor to refine the requirements so they
represent the requestor’s true intent. This involves challenging the requirements and
probing for missing information. The psychological, organizational, and political
considerations of doing this are beyond the scope of this book, except for the following
piece of advice: If you do exactly what the customer asked for, but the result does not meet
the customer’s real needs, you will probably be blamed anyway.
7
3.2 SYSTEM REQUIREMENTS
The minimum software requirement specifications for developing this project are as
follows:
The Collection of internal electronic circuits and external physical devices used in
building a computer is called Hardware.
The minimum hardware requirement specification for developing this project is as follows:
Processor : Pentium IV
8
3.3 SOFTWARE DESCRIPTION
3.3.1 GENERAL
Initially the language was called as “oak” but it was renamed as “Java” in 1995. The
primary motivation of this language was the need for a platform-independent (i.e.,
architecture neutral) language that could be used to create software to be embedded in
various consumer electronic devices.
9
3.3.4 Java AWT
Java programming language class library provides a user interface toolkit called the
Abstract Windowing Toolkit, or the AWT. The AWT is both powerful and flexible.
Because the Java programming language is platform-independent, the AWT must also be
platform-independent. The AWT was designed to provide a common set of tools for
graphical user interface design that work on a variety of platforms. The user interface
elements provided by the AWT are implemented using each platform's native GUI toolkit,
thereby preserving the look and feel of each platform. This is one of the AWT's strongest
points. (as shows in fig 3.1)
10
Fig 3.2 Inheritance relationship between the user interface component classes provided by the AWT.
The AWT provides five layout managers as shows in fig 3.3. They range from very simple
to very complex. The Flow Layout class places components in a container from left to
right.
11
3.3.5 Java.awt.event
An action or occurrence, often generated by the user, to which the program might
respond—for example, key presses, button clicks, or mouse movements. Events do not
adhere to this traditional approach because they occur outside of program control. When
an event happens, the application is notified, causing the execution of a piece of code. In
Java, events are generated by objects. An event is represented by a vautil.EventObject
subclass that carries event information. There are subclasses for each kind of event.
12
CHAPTER-4
SYSTEM DESIGN
The problem statement should state what is to be done and not how it is to be done. It
should be a statement of needs, not a proposal for a solution. A user manual for the desired
system is a good problem statement. The requestor should indicate which features are
mandatory and which are optional, to avoid overly constraining design decisions. The
requestor should avoid describing system internals, as this restricts implementation
flexibility. Performance specifications and protocols for interaction with external systems
are legitimate requirements. Software engineering standards, such as modular
construction, design for testability, and provision for future extensions, are also proper.
A problem statement may have more or less detail. A requirement for a conventional
product, such as a payroll program or a billing system, may have considerable detail. A
requirement for a research effort in a new area may lack many details, but presumably the
research has some objective, which should be clearly stated.
13
as the functionality to model real world “objects”. Each object has attribute and methods.
Objects are grouped into classes. Here each object is responsible for itself.
The main focus of the analysis phase of Software development is on “What needs to
be done”. The objects discovered during the analysis can serve as the framework or Design.
The class’s attributes, methods and association identified during analysis must be designed
for implementation language. New classes must be introduced to store intermediate results
during the program execution.
During the Design phase, we elevate the model into logical entities, some of which
might relate more to the computer domain as people or employees. Here his goal is to
design the classes that we need to implement the system the difference is that, at this level
we focus on the view and access classes, such as how to maintain information or the best
way o interact with a user or present information.
During the design phase the classes identified in object-oriented analysis Must be
revisited with a shift focus to their implementation. New classes or attribute and Methods
must be an added for implementation purposes and user interfaces. The object-oriented
design process consists of the following activities:
14
1. Apply design axioms to design classes, their attributes, methods, associations, structure,
protocols Refine and complete the static UML class diagram by adding details to the
UML diagram. This step consists of following activities.
• Create mirror classes: For every business class identified and created. For
example, if there are three business classes, create three access layer classes.
*Redundant classes: Do not keep two classes that perform similar translate results
*Method classes: Revisit the classes that consist of only one or two methods
• Design the macro level user interface, identifying view layer objects.
• Design the micro level user interface, which includes these activities: Design
the view layer objects by applying the design axioms Built a prototype of
the view layer interface. • Test usability and user satisfaction
• Iterate and refine.
15
3. Iterate refine the whole design process. From the class diagram, you can begin to
extrapolate which classes you will have to built and which existing classes you can
reuse. As you do this, also begin this, also begin thinking about the inheritance structure.
If you have several classes that seem relates but have specific differences.
Design also must be traceable across requirements, analysis, design from the Requirements
model.
a. Analysis
b. Design
16
There are two types of DFD’s they are
In the Context Level the whole system is shown as a single process. as shows in fig 4.1
17
4.3.2 TOP LEVEL DFD
The Top Level DFD gives the overview of the whole system identifying the major system
processes and data flow. This level focuses on the single process that is drawn in the
context diagram as shows in fig 4.2 by ‘Zooming in’ on its contents and illustrates what it
does in more detail.
18
4.4 UML DIAGRAMS
A use case diagram is a diagram that shows a set of use cases and actors and relationships.
as shows in fig 4.3
Use case commonly contain
Use cases
Actors
Dependency, generalization and association relationships
<<extend
>>
Encryption
Keys
User
Decryption
<<extend
>>
receive message Video file
19
4.4.2 ACTIVITY DIAGRAM
An activity diagram shows the flow from activity to activity. An activity is an ongoing
non-atomic execution within a state machine. Activities ultimately result in some action,
which is made up of executable atomic computations that result in a change
in state of the system or the return of a value. as shows in fig 4.4
Like all other diagrams, activity diagrams may contain notes and constrains
20
Encryption Process
Send
Message
Videofile
Encryption
Create Delete
Videofile
21
Decryption Process
Videofile
Decryption
Create Delete
Videofile
Receive
Message
22
4.4.3 SEQUENCE AND COLLABORATION DIAGRAM
Graphically, a sequence diagram is a table that shows objects arranged along x-axis and
messages, ordered in increasing time, along the y-axis.
Contents
23
User Sequence
: User Send Message Video File KEY Video File Receive Message
1: Createmessage ()
2: checkvideo ()
.FLV file
response()
3: copymessage ()
response()
4: convert()
acknowledgement()
5: Encrypt()/Decrypt ()
validate()
disconnectREQ()
disconnectAckReq()
6: Encrypt/Decrypt () file
.FLV file
response()
7: receive()
response()
24
4.4.4 COLLABORATION DIAGRAM
Collaboration is a society of classes, interfaces, and other elements that work together
to provide some cooperative behavior that’s bigger than the sum of all its parts.
Contents
Objects
Links
Messages
Like all other diagrams, sequence diagrams may contain notes and constrains. as shows in
fig 4.6
25
User Collaboration
3: .FLV file
1: 1: Createmessage ()
2: 2: checkvideo ()
Send
Message
4: response ()
: User
16: 7: receive()
Video File
17: response ()
8: acknowledgement ()
11: disconnectREQ ()
12: disconnec tA ckReq ()
10: validate()
7: 4: convert()
9: 5: Encrypt()/Decrypt ()
KEY Receive
Message
26
4.4.5 COMPONENT DIAGRAM
A component diagram in the Unified Modeling Language, depicts how components are
wired together to form larger components and or software systems. Components are wired
together by using an assembly connector to connect the required interface of one component
with the provided interface of another component. Components diagrams can
be used to illustrate the structure of arbitrarily complex systems. as shows in fig 4.7
Encryption
User Message
Decryption
27
4.4.6 DEPLOYMENT DIAGRAM
A deployment diagram is a diagram that shows the configuration of run time processing
nodes and the components that live on them.
Contents
• Nodes
• Dependency and association relationships.
Like all other diagrams, deployment diagrams may contain notes and constraints.
Deployment diagrams may also contain components, each of which must live on some
node.
Deployment diagrams may also contain packages or subsystems, both of which are used
to group elements of your model into larger chunks. as shows in fig 4.8 User
deployment
Database Server
MySQL Server
28
USER
AWT
Application
Applet
29
4.4.7 CLASS DIAGRAM
30
4.5 ER DIAGRAM
Entity Relationship Diagrams (ERDs) illustrate the logical structure of databases. An
entity-relationship (ER) diagram is a specialized graphic that illustrates the
interrelationships between entities in a database. ER diagrams often use symbols to
represent three different types of information. Boxes are commonly used to represent
entities. Diamonds are normally used to represent relationships and ovals are used to
represent attributes.
Entity relationship diagrams are a way to represent the structure and layout of a
database. It is used frequently to describe the database schema. ER diagrams are very
useful as the provide a good conceptual view of any database, regardless of the underlying
hardware and software.
Video file
ID: VARCHAR(20) message:
VARCHAR2(2000) Video file:
LARGE BINARY
e_message:
VARCHAR(2000)
d_message:
VARCHAR(2000)
31
4.6 MODULE DESCRIPTION
The sender can send a message to the destination more securely. This can be done by
attaching a video file to the message. So the third party can be unaware the secret message.
They think that a video file is sending and they not at all know about this secret sending of
the message.
In this a sender can encrypt a file by entering a key. The same key must be entered
same key must entered during the decryption process.
This process can be done by entering the key that previously entered during the
Encryption process. If the entered key is wrong the message won’t be received
correctly.
In this the Receiver can receive the hidden message by the decryption process. In this
the user enters the same key as the sender sends. The receiver can receive the message by
correctly entering the key.
32
CHAPTER-5
33
CHAPTER-6
SOURCE CODE
//A Simple Java program for a video stegnography System (Code) Part 2
//Part 1 (PSEUDOCODE )
//CODE
import java.util.*;
import java.util.LinkedList;
class car11{
public static void main(String args[]){
LinkedList <vehicle>list1 = new LinkedList<vehicle>();
LinkedList <vehicle>list2 = new LinkedList<vehicle>();
Scanner in=new Scanner(System.in);
System.out.println("");
System.out.println("\t"+" *****WELCOME TO ROYAL CAR PARK *****");
System.out.println("\t"+" NAME: PGA groups");
System.out.println("\t"+" Reg#: 151CS ");
System.out.println("\t"+" RollNo: 229,145,121
");
System.out.println("");
System.out.println("\t"+"Car Park contains : " + list1);
int inputNum1=0;
int carNum1;
int Num2;
try{
while(true){
System.out.println("1.Enter Garage\n2.Exit from garage\n3.Display Car List\n4.Exit
menu");
34
inputNum1=in.nextInt();
switch(inputNum1){
case 1:if(list1.size()<=9)
{
int numOfCars=0;
vehicle vehicleID=null;
for(int h=0;h<list1.size();h++){
vehicleID=list1.get(h);
numOfCars=vehicleID.no;
System.out.println("Car numbers in the Car Park now "+numOfCars);
}System.out.println("");
System.out.println("Car Park has another : " + (10-numOfCars)+" vacansies");
System.out.println("\t"+"...Please come next car...");
System.out.println("");
System.out.println("Car number "+(list1.size()+1)+" is the next to enter garage");
System.out.print("Enter the car number given above ");
carNum1=in.nextInt();
if((list1.size()+1)==carNum1){
list1.add(new vehicle(carNum1));
}
else{
System.out.println("Please enter correct car number ");
}
}
else{
System.out.println("");
System.out.println("Sorry!!!!");
System.out.println("No parking space available.Please wait until a vacancy comes");
35
int inputNum2=0;
for(int h=0;h<list2.size();h++){
System.out.print(list2.get(h).no+" ");
}
System.out.println(" Cars are waiting to enter garage");
System.out.println("Would you like to enter waiting list???");
System.out.println("1.yes\n2.no");
inputNum2=in.nextInt();
switch(inputNum2){
case 1:
System.out.println("Car number "+(list2.size()+11)+" is the next to enter garage");
System.out.print("Enter the car number given above ");
int waitingCarNum;
waitingCarNum=in.nextInt();
if((list2.size()+11)==waitingCarNum)
{
for(int i=0;i<list2.size()-1;i++){
vehicle temp=list2.get(i);
System.out.println(temp.no);
}
list2.add(new vehicle(waitingCarNum));
System.out.println("Waiting List ");
for(int h=0;h<list2.size()-1;h++){
System.out.print(list2.get(h).no+" ");
}
System.out.println("");
}
else{
36
System.out.println("Please enter correct car number ");
}
/*vehicle ghg=list2.getFirst();
if((list2.size()+11)==waitingCarNum){
list2.add(new vehicle(waitingCarNum));
System.out.println( "add to waiting list "+waitingCarNum);
System.out.println("New waiting list"+list2);
System.out.println("Thank you.Please wait...");
}
else{
System.out.println("Sir.Please enter correct car number ");
}*/
break;
case 2:
System.out.println("Thank you");
break;
}
break;
}
break;
case 2:
System.out.println("1.Depart from main garage\n2.Depart From Waiting List");
int inputNum3=in.nextInt();
try{
switch(inputNum3) {
case 1:
if(list1.size()==0){
System.out.println("Garage is empty. If you wish you can Enter your car now");
37
}
else{
System.out.println("Car numbers in the Car park.Choose yours ");
vehicle qsa=null;
int ssd=0;
for(int h=0;h<list1.size();h++ ){
qsa=list1.get(h);
ssd=qsa.no;
System.out.println("in Park "+ssd);
}
System.out.println("Enter the number of your car");
int RemoveCar=0;
RemoveCar = in.nextInt();
//System.out.println("");
//System.out.println("");
//vehicle qa=null;
//vehicle qa=list1.getFirst();
int sd=0;
int which=RemoveCar;// wanted car
//int =list1.peek().no;//mulma id eka
//try{
for(int h=0;h<list1.size();h++){
vehicle qa=list1.get(h);
if(qa.no!=which){
qa=list1.get(h);
continue;
}
else{
38
vehicle kl=null;
for(int u=0;u<list1.size()-1;u++){
kl=list1.get(u);
if(kl.no!=which){
//kl.incmoves(2);
kl.mvs+=2;
}
else
break;
}
for(int v=list1.size();(list1.get(h).no!=which);v--){
//kl.incmoves(1);
kl.mvs+=1;
}
System.out.println("moves "+ list1.get(h).incmoves(1));
list1.remove(h);
break;
}
/*qa=list1.get(h);
sd=qa.no;
System.out.println("Park now "+sd);
*/
}
//}
//catch(Exception e){
// System.out.println(e);
//}
if(list2.size()>0){
39
System.out.println("So car number "+list2.getFirst()+" to car park:");
list1.add(list2.getFirst());
list1.add(new vehicle(list2.getFirst().no));
list2.remove(0);
System.out.println("New car list in car park : " + list1);
System.out.println("");
}
else{
System.out.println("No cars in waiting list to enter garage");
}
}break;
case 2: if(list2.size()==0){
System.out.println("There is no cars waiting in the list");
}
else{
System.out.println("Cars in waiting list"+list2);
System.out.print("Enter your car number");
int removeWaitCar=in.nextInt();
}
break;
}
}
catch(Exception e){
System.out.println("You have entered wrong Index number.please check");
}
break;
case 3:
System.out.println("What do you want to see?" );
40
System.out.println("1.Main garage\n2.Waiting list");
int displayNum=in.nextInt();
try{
switch(displayNum){
case 1:
vehicle carID1=null;
int carList1=0;
for(int h=0;h<list1.size();h++){
carID1=list1.get(h);
carList1=carID1.no;
System.out.println("Park now "+carList1);
}
break;
case 2:
vehicle carID2=null;
int carList2=0;
for(int h1=0;h1<list2.size();h1++){
carID2=list2.get(h1);
carList2=carID2.no;
System.out.println(carList2+" is in the Waiting list now");
}break;
//default: System.exit(0);
}
}
catch(Exception e){
System.out.println("You have enter wrong option number.please check again");
41
}
break;
case 4:
System.out.println("Have a nice day");
default: System.exit(0);
}// switch
}
}
catch(Exception e){
System.out.println(e+"You may have entered a wrong charactor.please check");
}
}
}
class vehicle{
int no;
int mvs;
public vehicle(int abc){
no=abc;
mvs=0;
}
public int incmoves(int x){
return (mvs+x);
}
42
CHAPTER 8
FUTURE ENHANCEMENTS
In near future, the most important use of steganography techniques will probably lie in
the field of digital watermarking. Content providers are eager to protect their copyrighted
works against illegal distribution and watermarks provide a way of tracking the owners of
these materials. Although it will not prevent the distribution itself, it will enable the content
provider to start legal actions against the violators of the copyrights as they can now be
tracked down.
43
CHAPTER-7
REFERENCE
F.A.P.Petitcolas, R.J.Anderson, M.G.Kuhn, “Information Hiding-A Survey”,
Proceeding of the IEEE, vol. 87, no. 7,June 1999, pp.1062-1078.
J. J. Chae, B. S. Manjunath, “Data Hiding in Video”,Proceedings of the 6th IEEE
International Conference on Image Processing, 1999, pp.311-315.
Westfeld A, “F5-A Steganographic Algorithm”, Proceeding of 4th International
Conference on Information Hiding, LNCS 2137, Springer-Verlag, 2001, pp.289-
302.
J. Anderson Ross A.P. Petitcolas Fabien "On the limits of steganography"
<em>IEEE Journal on Selected Areas in Communications (J-SAC)</em> vol. 16
no. 4 pp. 474-481 May 1998.
T Mrkel JHP Eloff MS Olivier "An Overview of Image Steganography"
<em>Proceedings of the fifth annual Information Security South Africa
Conference</em> 2005.
U Kin Tak Zesheng Tang Dongxu Qi "A non-uniform rectangular partition coding
of digital image and its application" <em>Proceedings of the 2009 IEEE
International Conference on Information and Automation</em> pp. 995-999 2009.
Dongxu Qi Wei Ding Huashan Li "Tangram Algorithm: Image Transformation
For Storing And Transmitting Visual Secrets" <em>Proc. Of the 5th International
Conference on Computer-Aided Design & Computer Graphics</em>
International Academic Publishers vol. 1 pp. 135-139 1997–11.
Wei Ding Dongxu Qi "Digital Image Transformation and Information Hiding and
Disguising Technology" <em>Chinese J. Computers.</em> vol. 21 no. 9 pp.
838-843 1998.
<em>Journal of Computer Science and Technology</em> vol. 13 pp. 17-21 1998.
44