Scanned Document Actions/Initiating...(End of document) Title Scanned Document ...
Document
-
Upload
mohana-sundaram -
Category
Documents
-
view
36 -
download
0
description
Transcript of Document
1.INTRODUCTION
1.1 PROJECT OVERVIEW:
We are of the belief that the easiest way to keep something from prying eyes is to
place it right in front of the person looking for it and make it look as innocuous as
possible.
Everyone has a taste for a certain kind of music. Hence, it is more than likely
that the person will have that kind of music on the storage device of his computer.
Also, it is quite common case where people share and transfer different music files to
one another. If one were able to hide the message can be. Also, transfer of this
message can be done quite conveniently without raising any eyebrows.
Our aim is to come up with a technique of hiding the message in the Picture file
in such a way, that there would be no perceivable changes in the in the Picture file
after the message insertion. At the same time, if the message that is to be hidden were
encrypted, the level of security would be raised to quite a satisfactory level. Now,
even if the hidden message were to be discovered the person trying to get the message
would only be able to lay his hands on the encrypted message with no way of being
able to decrypt it.
There are several data hiding techniques available today. In each technique,
the host data type is fixed, but the embedded data type can be varied as per
requirement. Data hiding technique should be capable of embedding data in a host
signal with the following restrictions and features:
The host signal should be nonobjectionally degraded and the embedded data
should be minimally perceptible. What that means is that the observer should
not be able to notice the presence of the data even if it were perceptible.
The embedded data should be directly encoded into the media rather than into
a header or a wrapper so that the data remain intact across varying data file
formats.
1
The embedded data should be immune to modifications ranging from
intentional and intelligent attempts at removal to anticipated manipulations e.g.
channel noise, re-sampling, cropping, etc.
Asymmetrical coding of the embedded data is desirable since the purpose of
data hiding is to keep the data in the host signal but not necessarily to make the
data difficult to access.
The embedded data should be self clocking or arbitrarily re-entrant. This
ensures that the embedded data can be recovered even when only fragments of
information are available.
Goals of the System The goal of this project is to embed textual information into a popular media
using stegonography. It can be assume that the text is relatively short when compared
to the media file. A good example of this is the relationship between a recoded song,
and its lyrics. The Picture file containing the recording is much larger than the song
lyrics stored as a plain ASCII files. Therefore it is probably safe to assume that the
smaller file could be stegonographically embedded into the larger one without
impacting the quality. Similar argument could be made about video data and close
captioning information.
This project concentrates on the song/lyrics dynamics in order to create a
stegonographically driven karaoke machine. The song lyrics will be seamlessly
embedded into an Picture file, and then displayed on the screen when the file is
played. This research will include implementation of stegonographic algorithm for
encoding data inside Picture files, as well as technique to dynamically extract that data
and play it back.
2
2.SYSTEM ANALYSIS
2.1 EXISTING SYSTEM:
Nowadays, several methods are used for communicating secret messages for
defense purposes or in order to ensure the privacy of communication between two
parties. So we go for hiding information in ways that prevent its detection.
Some of the methods used for privacy communication are the use of invisible
links; covert channels are some of existing systems that are used to convey the
messages.
Since at present everything is done manually, it is having a lot of drawbacks.
The major Drawback of the present system is the bulk amount of physical volume of
the data making information search and retrieval is tedious Process. There are chances
for damage of papers containing information. So this process is time consuming
process.
Drawbacks
Increased time
Low accuracy
High labor charges
Increased uncertainty
Data security is less
2.2 PROPOSED SYSTEM:
In the proposed system we can overcome the difficulties of the existing system. In our
system we are introducing all the three concept to secure the information which is
send by the user. The data/information which the sender wants to send will be
encrypted and then if the information is too bigger in size there is an option to
3
compress the data using compression technique and later that data/information is
embedded in the audio/video or image files. For encrypting and decrypting the
data/information we have used DES algorithm. Hiding the text or file inside least
significant of an image. By using this intruder could not be able to see the content
since there is no change will be seen compare to original images. The proposed
system uses Picture file as a carrier medium which add another step in security. The
objective of the newly proposed system is to create a system that makes it very
difficult for an opponent to detect the existence of a secret message by encoding it in
the carrier medium as a function of some secret key and that remains as the advantage
of this system.
DES algorithm is used to encrypt the message which is hided in the image. DES is
used to give the extra protection for a data which has to be hide. Compression
technology has been used to compress the size of the message in order to save
memory.
In this system have several advantages over existing system. They are
1. Data security is high.
2. It avoids data redundancy and ensures data integrity.
3. It doesn’t take more labor time.
Introduction to the Software Development Life Cycle (SDLC)
This section of the document will describe the Software Development Life Cycle (SDLC) for
small to medium database application development efforts. This chapter presents an overview
of the SDLC, alternate lifecycle models, and associated references. This chapter also
describes the internal processes that are common across all stages of the SDLC and describes
the inputs, outputs, and processes of each stage.
The SDLC Waterfall
Small to medium database software projects are generally broken down into six stages:
4
The relationship of each stage to the others can be roughly described as a waterfall, where the
outputs from a specific stage serve as the initial inputs for the following stage.
To follow the waterfall model, one proceeds from one phase to the next in a purely sequential
manner. For example,
After completing the “Project Planning” phase, one will be completing the
"requirements definitions" phase.
When and only when the requirements are fully completed, one proceeds to design.
This design should be a plan for implementing the requirements given.
When and only when the design is fully completed, an implementation of that design
is made by coders. Towards the later stages of this implementation phase, disparate
software components produced by different teams are integrated.
After the implementation and integration phases are complete, the software product is
tested and debugged; any faults introduced in earlier phases are removed here.
Then the software product is installed, and later maintained to introduce new
functionality and remove bugs.
Thus the waterfall model maintains that one should move to a phase only when it’s
proceeding phase is completed and perfected. Phases of development in the waterfall model
are thus discrete, and there is no jumping back and forth or overlap between them.
5
The central idea behind the waterfall model - time spent early on making sure that
requirements and design are absolutely correct is very useful in economic terms (it will save
you much time and effort later). One should also make sure that each phase is 100% complete
and absolutely correct before proceeding to the next phase of program creation.
It is argued that the waterfall model in general can be suited to software projects which are
stable (especially with unchanging requirements) and where it is possible and likely that
designers will be able to fully predict problem areas of the system and produce a correct
design before implementation is started.
The waterfall model also requires that implementers follow the well made, complete design
accurately, ensuring that the integration of the system proceeds smoothly.
The waterfall model however is argued by many to be a bad idea in practice, mainly because
of their belief that it is impossible to get one phase of a software product's lifecycle
"perfected" before moving on to the next phases and learning from them (or at least, the
belief that this is impossible for any non-trivial program). For example clients may not be
aware of exactly what requirements they want before they see a working prototype and can
comment upon it - they may change their requirements constantly, and program designers and
implementers may have little control over this.
If clients change their requirements after a design is finished, that design must be modified to
accommodate the new requirements, invalidating quite a good deal of effort if overly large
amounts of time have been invested into the model.
In response to the perceived problems with the "pure" waterfall model, many modified
waterfall models have been introduced namely Royce's final model, sashimi model, and other
alternative models. These models may address some or all of the criticism of the "pure"
waterfall model. There are other alternate SDLC models such as “Spiral” and “V” which
have been explained in the later part of this chapter.
After the project is completed, the Primary Developer Representative (PDR) and Primary
End-User Representative (PER), in concert with other customer and development team
personnel develop a list of recommendations for enhancement of the current software.
6
Prototypes
The software development team, to clarify requirements and/or design elements, may
generate mockups and prototypes of screens, reports, and processes. Although some of the
prototypes may appear to be very substantial, they're generally similar to a movie set:
everything looks good from the front but there's nothing in the back.
When a prototype is generated, the developer produces the minimum amount of code
necessary to clarify the requirements or design elements under consideration. No effort is
made to comply with coding standards, provide robust error management or integrate with
other database tables or modules. As a result, it is generally more expensive to retrofit a
prototype with the necessary elements to produce a production module than it is to develop
the module from scratch using the final system design document. For these reasons,
prototypes are never intended for business use, and are generally crippled in one way or
another to prevent them from being mistakenly used as production modules by end-users.
Allowed Variations
In some cases, additional information is made available to the development team that requires
changes in the outputs of previous stages. In this case, the development effort is usually
suspended until the changes can be reconciled with the current design, and the new results are
passed down the waterfall until the project reaches the point where it was suspended.
The PER and PDR may, at their discretion, allow the development effort to continue while
previous stage deliverables are updated in cases where the impacts are minimal and strictly
limited in scope. In this case, the changes must be carefully tracked to make sure all their
impacts are appropriately handled.
7
Other SDLC Models
Apart from the waterfall model other popular SDLC modules are the “Spiral” model and “V”
model which have been explained in this section.
Spiral Lifecycle
The spiral model starts with an initial pass through a standard waterfall lifecycle, using a
subset of the total requirements to develop a robust prototype. After an evaluation period, the
cycle is initiated again, adding new functionality and releasing the next prototype. This
process continues with the prototype becoming larger and larger with each iteration, hence
the “spiral.”
The Spiral model is used most often in large projects and needs constant review to stay on
target. For smaller projects, the concept of agile software development is becoming a viable
alternative. Agile software development tends to be rather more extreme in their approach
than the spiral model.
8
The theory is that the set of requirements is hierarchical in nature, with additional
functionality building on the first efforts. This is a sound practice for systems where the entire
problem is well defined from the start, such as modeling and simulating software. Business-
oriented database projects do not enjoy this advantage. Most of the functions in a database
solution are essentially independent of one another, although they may make use of common
data. As a result, the prototype suffers from the same flaws as the prototyping lifecycle. For
this reason, the software development teams usually decide against the use of the spiral
lifecycle for database projects.
V-Model
The V-model was originally developed from the waterfall software process model. The four
main process phases – requirements, specification, design and Implementation – have a
corresponding verification and validation testing phase. Implementation of modules is tested
by unit testing, system design is tested by Integration testing, system specifications are tested
by system testing and finally Acceptance testing verifies the requirements. The V-model gets
its name from the timing of the phases. Starting from the requirements, the system is
developed one phase at a time until the lowest phase, the implementation phase, is finished.
At this stage testing begins, starting from unit testing and moving up one test level at a time
until the acceptance testing phase is completed. During development stage the program will
be tested at all levels simultaneously.
V-Model
9
The different levels in V-Model are unit tests, integration tests, system tests and acceptance
test. The unit tests and integration tests ensure that the system design is followed in the code.
The system and acceptance tests ensure that the system does what the customer wants it to
do. The test levels are planned so that each level tests different aspects of the program and so
that the testing levels are independent of each other. The traditional V-model states that
testing at a higher level is started only when the previous test level is completed.
Verification and Validation
Verification: Are we building the product right?
The software should conform to its specification. The process of evaluating a system or
component to determine whether the products of a given development phase satisfy the
conditions imposed at the start of that phase and form formal proof of program correctness.
Validation: Are we building the right product?
The software should do what the user really requires. The process of evaluating a system or
component during or at the end of the development process to determine whether it satisfies
specified requirements.
The V & V process
V & V is a whole life-cycle process and it must be applied at each stage in the software
process. It has two principal objectives
The discovery of defects in a system
The assessment of whether or not the system is usable in an operational situation.
Verification Vs Validation
Verification Validation
Am I building the product right Am I building the right product
The review of interim work steps and
interim deliverables during a project to
ensure they are acceptable. To
determine if the system is consistent,
adheres to standards, uses reliable
techniques and prudent practices, and
performs the selected functions in the
Determining if the system complies with the
requirements and performs functions for which
it is intended and meets the organization’s
goals and user needs. It is traditional and is
performed at the end of the project.
10
correct manner.
Am I accessing the data right (in the
right place; in the right way)
Am I accessing the right data (in terms of the
data required to satisfy the requirement)
Low level activity High level activity
Performed during development on key
artifacts, like walkthroughs, reviews
and inspections, mentor feedback,
training, checklists and standards
Performed after a work product is produced
against established criteria ensuring that the
product integrates correctly into the
environment
Demonstration of consistency,
completeness, and correctness of the
software at each stage and between each
stage of the development life cycle.
Determination of correctness of the final
software product by a development project
with respect to the user needs and
requirements
3.SYSTEM CONFIGURATION
3.1 SOFTWARE ENVIRONMENT:-
Operating System : Window XP
Development Environment : MicrosoftVisualC#.NET
Platform : ASP.NET
Languages : C#.Net
3.2 HARDWARE ENVIRONMENT:-
Processor : Pentium IV
RAM : 1GB
Hard Disk : 250 GB
Mother Board : Intel chipset board
Mouse : Logitech two button
11
Key Board : 104 keys keyboard
Monitor : 17” LCD Color Monitor
.
12
4. SYSTEM STUDY
4.1 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.
Three key considerations involved in the feasibility analysis are
1. Economical feasibility
2. Technical feasibility
3. Social feasibility
4.1.1. Economical feasibility:
This study is carried out to check the economic impact that the system will have
on the organization. The amount of fund that the company can pour into the research
and development of the system is limited. The expenditures must be justified. Thus
the developed system as well within the budget and this was achieved because most of
the technologies used are freely available. Only the customized products had to be
purchased.
13
4.1.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
technical resources. This will lead to high demands being placed on the client. The
developed system must have a modest requirement, as only minimal or null changes
are required for implementing this system.
4.1.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.
14
5.1OVERVIEW OF .NET
What is .NET?
When .NET was announced in late 1999, Microsoft positioned the technology
as a platform for building and consuming Extensible Markup Language (XML) Web
services. XML Web services allow any type of application, be it a Windows- or
browser-based application running on any type of computer system, to consume data
from any type of server over the Internet. The reason this idea is so great is the way in
which the XML messages are transferred: over established standard protocols that
exist today. Using protocols such as SOAP, HTTP, and SMTP, XML Web services
make it possible to expose data over the wire with little or no modifications to your
existing code.
Figure 1.1 presents a high-level overview of the .NET Framework and how XML
Web services are positioned.
Figure 3.1. Stateless XML Web services model.
15
Since the initial announcement of the .NET Framework, it's taken on many new
and different meanings to different people. To a developer, .NET means a great
environment for creating robust distributed applications. To an IT manager, .NET
means simpler deployment of applications to end users, tighter security, and simpler
management. To a CTO or CIO, .NET means happier developers using state-of-the-art
development technologies and a smaller bottom line. To understand why all these
statements are true, you need to get a grip on what the .NET Framework consists of,
and how it's truly a revolutionary step forward for application architecture,
development, and deployment.
NET Framework
The .NET Framework Class Library
The second most important piece of the .NET Framework is the .NET
Framework class library (FCL). As you've seen, the common language runtime
handles the dirty work of actually running the code you write. But to write the code,
you need a foundation of available classes to access the resources of the operating
system, database server, or file server. The FCL is made up of a hierarchy of
namespaces that expose classes, structures, interfaces, enumerations, and delegates
that give you access to these resources.
The Structure of a .NET Application
To understand how the common language runtime manages code execution,
you must examine the structure of a .NET application. The primary unit of a .NET
application is the assembly. An assembly is a self-describing collection of code,
resources, and metadata. The assembly manifest contains information about what is
contained within the assembly.
The assembly manifest provides:
Identity information, such as the assembly’s name and version number
16
A list of all types exposed by the assembly
A list of other assemblies required by the assembly
A list of code access security instructions, including permissions required by
the assembly and permissions to be denied the assembly
Each assembly has one and only one assembly manifest, and it contains all the
description information for the assembly. However, the assembly manifest can be
contained in its own file or within one of the assembly’s modules.
Compilation and Execution of a .NET Application
When you compile a .NET application, it is not compiled to binary machine
code; rather, it is converted to IL. This is the form that your deployed application
takes—one or more assemblies consisting of executable files and DLL files in IL
form. At least one of these assemblies will contain an executable file that has been
designated as the entry point for the application.
When execution of your program begins, the first assembly is loaded into
memory. At this point, the common language runtime examines the assembly manifest
and determines the requirements to run the program. It examines security permissions
requested by the assembly and compares them with the system’s security policy. If the
system’s security policy does not allow the requested permissions, the application will
not run. If the application passes the system’s security policy, the common language
runtime executes the code. It creates a process for the application to run in and begins
application execution.
The .NET Framework base class library contains the base classes that provide
many of the services and objects you need when writing your applications. The class
17
library is organized into namespaces. A namespace is a logical grouping of types that
perform related functions. Namespaces are logical groupings of related classes. The
namespaces in the .NET base class library are organized hierarchically. The root of
the .NET Framework is the System namespace. Other namespaces can be accessed
with the period operator. A typical namespace construction appears as follows:
System
System.Data
System.Data.SQLClient
The first example refers to the System namespace. The second refers to the
System.Data namespace. The third example refers to the System.Data.SQLClient
namespace. Table 1.1 introduces some of the more commonly used .NET base class
namespaces.
Table 1-1. Representative .NET Namespaces
Namespace Description
System
This namespace is the root for many of the low-level types
required by the .NET Framework. It is the root for primitive
data types as well, and it is the root for all the other
namespaces in the .NET base class library.
System.Collections
This namespace contains classes that represent a variety of
different container types, such as ArrayList, SortedList,
Queue, and Stack. You also can find abstract classes, such
as CollectionBase, which are useful for implementing your
own collection functionality.
System.ComponentModel This namespace contains classes involved in component
creation and containment, such as attributes, type
18
Table 1-1. Representative .NET Namespaces
Namespace Description
converters, and license providers.
System.Data
This namespace contains classes required for database
access and manipulations, as well as additional namespaces
used for data access.
System.Data. CommonThis namespace contains a set of classes that are shared by
the .NET managed data providers.
System.Data.OleDbThis namespace contains classes that make up the managed
data provider for OLE DB data access.
System.Data.SQLClientThis namespace contains classes that are optimized for
interacting with Microsoft SQL Server.
System.DrawingThis namespace exposes GDI+ functionality and provides
classes that facilitate graphics rendering.
System.IOIn this namespace, you will find types for handling file
system I/O.
System.MathThis namespace is home to common mathematics functions
such as extracting roots and trigonometry.
System.ReflectionThis namespace provides support for obtaining information
and dynamic creation of types at runtime.
System.SecurityThis namespace is home to types dealing with permissions,
cryptography, and code access security.
19
Table 1-1. Representative .NET Namespaces
Namespace Description
System.ThreadingThis namespace contains classes that facilitate the
implementation of multithreaded applications.
System.Windows.Forms
This namespace contains types involved in creating
standard Windows applications. Classes that represent
forms and controls reside here as well.
Table 3.1. Representative .NET Namespaces
The namespace names are self-descriptive by design. Straightforward names
make the .NET Framework easy to use and allow you to rapidly familiarize yourself
with its contents.
20
5.2 LANGUAGE SPECIFICTION
Introduction to Object-Oriented Programming
Programming in the .NET Framework environment is done with objects.
Objects are programmatic constructs that represent packages of related data and
functionality. Objects are self-contained and expose specific functionality to the rest
of the application environment without detailing the inner workings of the object
itself. Objects are created from a template called a class. The .NET base class library
provides a set of classes from which you can create objects in your applications. You
also can use the Microsoft Visual Studio programming environment to create your
own classes. This lesson introduces you to the concepts associated with object-
oriented programming.
Objects, Members, and Abstraction
An object is a programmatic construct that represents something. In the real
world, objects are cars, bicycles, laptop computers, and so on. Each of these items
exposes specific functionality and has specific properties. In your application, an
object might be a form, a control such as a button, a database connection, or any of a
number of other constructs. Each object is a complete functional unit, and contains all
of the data and exposes all of the functionality required to fulfill its purpose. The
ability of programmatic objects to represent real-world objects is called abstraction.
Classes Are Templates for Objects
Classes were discussed in Chapter 1 and represent user-defined reference types.
Classes can be thought of as blueprints for objects: they define all of the members of
an object, define the behavior of an object, and set initial values for data when
appropriate. When a class is instantiated, an in-memory instance of that class is
created. This instance is called an object. To review, a class is instantiated using the
New (new) keyword as follows:
Visual Basic .NET
21
' Declares a variable of the Widget type
Dim myWidget As Widget
' Instantiates a new Widget object and assigns it to the myWidget
' variable
myWidget = New Widget()
When an instance of a class is created, a copy of the instance data defined by
that class is created in memory and assigned to the reference variable. Individual
instances of a class are independent of one another and represent separate
programmatic constructs.
There is generally no limit to how many copies of a single class can be
instantiated at any time. To use a real-world analogy, if a car is an object, the plans for
the car are the class. The plans can be used to make any number of cars, and changes
to a single car do not, for the most part, affect any other cars.
Objects and Members
Objects are composed of members. Members are properties, fields, methods, and
events, and they represent the data and functionality that comprise the object. Fields
and properties represent data members of an object. Methods are actions the object
can perform, and events are notifications an object receives from or sends to other
objects when activity happens in the application.
Object Models
Simple objects might consist of only a few properties, methods, and perhaps an
event or two. More complex objects might require numerous properties and methods
and possibly even subordinate objects. Objects can contain and expose other objects
as members.
22
Similarly, every instance of the Form class contains and exposes a Controls
collection that comprises all of the controls contained by the form. The object model
defines the hierarchy of contained objects that form the structure of an object.
Encapsulation
Encapsulation is the concept that implementation of an object is independent of
its interface. Put another way, an application interacts with an object through its
interface, which consists of its public properties and methods. As long as this interface
remains constant, the application can continue to interact with the component, even if
implementation of the interface was completely rewritten between versions.
Polymorphism
Polymorphism is the ability of different classes to provide different
implementations of the same public interfaces. In other words, polymorphism allows
methods and properties of an object to be called without regard for the particular
implementation of those members. There are two principal ways through which
polymorphism can be provided: interface polymorphism and inheritance
polymorphism.
Interface Polymorphism
An interface is a contract for behavior. Essentially, it defines the members a
class should implement, but states nothing at all about the details of that
implementation. An object can implement many different interfaces, and many diverse
classes can implement the same interface. All objects implementing the same interface
are capable of interacting with other objects through that interface.
23
Inheritance Polymorphism
Inheritance allows you to incorporate the functionality of a previously
defined class into a new class and implement different members as needed. A class
that inherits another class is said to derive from that class, or to inherit from that class.
A class can directly inherit from only one class, which is called the base class. The
new class has the same members as the base class, and additional members can be
added as needed. Additionally, the implementation of base members can be changed
in the new class by overriding the base class implementation. Inherited classes retain
all the characteristics of the base class and can interact with other objects as though
they were instances of the base class.
Microsoft Visual Basic.Net
With its release for the .NET platform, the Visual Basic language has
undergone dramatic changes.
For example:
The language itself is now fully object-oriented.
Applications and components written in Visual Basic .NET have full
access to the .NET Framework, an extensive class library that provides
system and application services.
All applications developed using Visual Basic .NET run within a
managed runtime environment, the .NET common language runtime.
24
6. DATABASE DESIGN
UserDBnam unam pas dat uid
abinaya abinaya abinaya 2/2/2013 U2
rajan rajan rajan 3/7/2013 10:57:04 AM U2
VideoDatavsource vtext ttext tsorce key
D:\output\The Winning moment(Ind vs Aus) Sachin Tendulkar SIXES- Feb 2013 (2).avi
The Winning moment(Ind vs Aus) Sachin Tendulkar SIXES- Feb 2013 (2).avi
C:\Users\JAVA SCHOOL\Desktop\in.txt
in.txt 5637
D:\output\The Winning moment(Ind vs Aus) Sachin Tendulkar SIXES- Feb 2013 (2).avi
The Winning moment(Ind vs Aus) Sachin Tendulkar SIXES- Feb 2013 (2).avi
D:\output\dffg.txt dffg.txt 6
25
6. SECURITY CONSIDERATION
File Encryption and Decryption using PBE
Password-Based Encryption (PBE) derives an encryption key from a password. In
order to make the task of getting from password to key very time-consuming for an attacker,
most PBE implementations (as the one shown below) will mix in a random number, known
as a salt, to create the key.
PBE algorithm supported in j2se1.4 (Other algorithms are supported in later versions of the
SunJCE and other providers)
PBEwithMD5andDES
The use of passwords in security protocols is particularly delicate because of the
possibility of off-line guessing attacks. We study password-based protocols in the
context of a recent line of research that aims to justify symbolic models in terms of
more concrete, computational ones. We offer two models for reasoning about the
concurrent use of symmetric, asymmetric, and password-based encryption in protocol
messages. In each of the models we define a notion of equivalence between messages
and also characterize when passwords are used securely in a message or in a set of
messages. Our new definition for the computational security of password-based
encryption may be of independent interest.
The main results of this paper are two soundness theorems. We show that under
certain (standard) assumptions about the computational implementation of the
cryptographic primitives, symbolic equivalence implies computational equivalence.
More importantly, we prove that symbolically secure uses of passwords are also
computationally secure.
26
7.1.USE CASE DIAGRAM
DEFINITION
A Use case diagram is a graph of actors, a set of use cases
enclosed by a system boundary, communication (participation) association
between the actor and the use cases, and generalization among the use cases.
Use cases are scenarios for understanding system requirements. A use- case
model can be instrumental in project development, planning, and documentation
of system requirements.
A use case is an interaction between user and a system. It captures
the goal of the users and the responsibility of the system to its users. The use-
case model describes the uses of the system and shows the courses of events
that can be performed.
SYMBOLS USED:
: DATA FLOW
: ATTRIBUTE
: ACTOR
27
Level-1
User Id
Password
ERROR IN INPUT
Fig 7.1 LOGIN PROCESS
28
LOGIN PROCESS
Validate User
SCREEN
Level -2
Fig 7.2 EMBED PROCESS
29
MAIN SCREENADMIN Add Picture
Add Text File
Add Password
PBE Encryption
Output Picture
Level -3
Fig 7.3 EXTRACT PROCESS
30
MAIN SCREENADMIN Add Picture
Password Verification
Extract
Output Picture/Text
Output Picture
7.2 SYSTEM FLOW DIAGRAM:
A System Flow Diagram-SFD shows the relationships between the major
components in the system. SFD does not show minor components, piping
systems and designations. It shows the triggering event(s), sequential flow of
process steps, decision points, and deliverable or outcome of a single process. It
is a graphical illustration of the flow of processes and interactions among the
actors involved in a particular example
Figure 7.2.1 System Flow Diagram.
31
8. SYSTEM IMPLEMENTATION
8.1 Module design
Data hiding and extracting from an Picture file is done in two main
modules.
1) Embed module.
2) Extract module.
PICTURE ENCRYPTION
1. Embed module (To embed the text file into the Picture file)
In this module, the first step is selecting an input Picture file. The
selection is made through opening a new dialog box and the path selected is
displayed through a textbox. The second step is selecting an output Picture file
in which text data or a text file is embedded. The third step is choosing a text
file or typing any text message for embedding.
Fourth step is selecting a key file. In the fifth step whatever the files that
we have selected are viewed and verification of the path is done. In the sixth
process data is embedded in to the Picture file using low bit encoding technique.
After embedding the content both the Picture files are played and a listener
cannot find any difference between the Pictures.
32
2. Extract module (To extract the text file from the Picture file)
In this module, the first step is the process of selecting the encrypted
Picture file. This is the file that a user has to extract information from the output
Picture. Second process involved in selecting a new text file to display the
embedded message. Symmetric encryption method is used here, so the key
selected during the embedding process is used in decrypting the message. All
the process done till now are displayed using a list box and finally the
embedded message can be viewed with the help of a file or in a textbox.
VIDEO ENCRYPTION
1. Embed module (To embed the text file into the Video file)
In this module, the first step is selecting an input Video file. The
selection is made through opening a new dialog box and the path selected is
displayed through a textbox. The second step is understanding and analyzing the
video quality and stream. Because the file stream is to be important while
restructure the video. This module will automatically maintain a a medium
stream for running low quality as well as high quality video to provide a
consistency to Users.
2. Extract module (To extract the text file from the Picture file)
In this module, the first step is the process of selecting the encrypted
Video file. This is the file that a user has to extract information from the output
Video. Second process involved in selecting a new text file to display the
embedded message. Symmetric encryption method is used here, so the key
33
selected during the embedding process is used in decrypting the message. All
the process done till now are displayed using a list box and finally the
embedded message can be viewed with the help of a file or in a textbox.
Input design
The Input design is the link that is the information system into the world
of its users. The design is the process of converting an external user oriented
description of the input to the system into a machine oriented form. Five
objectives guiding the design of inputs focus on controlling the amount of input
required, avoiding delays, controlling errors, avoiding extra steps and keeping
the steps simple.
Input screens from the primary interface between user and the software.
The input screens are designed are in such a way that it has a simple and user-
friendly layout. Necessary options are provided to reduce typing, which
automatically controls errors creeping in.
Input validations are performed to enforce all the necessary system
constraints; error messages are displayed, whenever the data entered is invalid.
The message also displays the corrective to be taken by the user.
The process of developing the program software is referred to as physical
design. Designing the process by identifying the reports and the other outputs
the system will produce. Coding the program for each module with its logic is
performed in this step. Proper software specification is also done in this step.
The input design is the process of converting the external user oriented
description of the input to system into a machine-oriented format.
34
Input was designed with following objectives:-
To produce a cost effective method.
To get the highest level of accuracy.
With the above objectives in mind, the major activities that were done
during the input design phase are follows.
The data was collected from its source.
Transfer of data to an input form it sources.
Data was converted to a computer acceptable form.
The converted data was verified.
Data was checked for its accuracy.
Data was transmitted to the computer.
Validation of input data was done.
Data collection was to eliminate the error.
The input forms are
1. Login form
2. Embed form
3. Extract form
35
INPUT DESIGN
1. Login form
The Sign in form is used to login into the application. The user will
enter the valid user id and the password. If the user id and the password match,
then it takes the user to the organization.
This form contains the fields
User id
Password.
The user clicks the sign in button to login. The user id and password does
not match, and then the login form displays the message as invalid user. The
advantage of this form is, the user can find the password, if they forget. This is
done by the forget password option. Also the new user can create their own
login.
Extract Wizards
Wizard 1 :
First step is selecting an input Picture file. The selection is made through
opening a new dialog box and the path selected is displayed through a
textbox.
Wizard 2 :
The second step is selecting an output Picture file in which text data or
a
text file is embedded.
Wizard 3 :
The third step is choosing a text file or typing any text message for
embedding.
Wizard 4 :
Fourth step is Select a key file.
36
Wizard 5 :
In the fifth step whatever the files that we have selected are viewed
and verification of the path is done.
Wizard 6 :
In the sixth process data is embedded in to the Picture file using low bit
encoding technique.
After embedding the content both the Picture files are played and a
listener cannot find any difference between the Pictures.
Extract Wizard
The Hidden message is extracted from the Picture file and can be viewed
through the following process.
Wizard 1 :
Selection of the Encrypted Picture file. This is the name of the file
given in step 2 of the Embedding module.
Wizard 2 :
Selection of a new text file. This is the name of the file given by the
receiver to save the embedded message.
Wizard 3 :
Selection of the Key file. This is the same file as selected in step 4
of the Embedding module.
Wizard 4:
In the fourth step whatever the files that we have selected are viewed
and verification of the path is done.
Wizard 5 :
Extracting the data from the encrypted Picture file.
Wizard 5 :
Viewing the extracted message
37
SYSTEM ARCHITECTURE
A system architecture or systems architecture is the conceptual
design that defines the structure and/or behavior of a system. An architecture
description is a formal description of a system, organized in a way that supports
reasoning about the structural properties of the system. It defines the system
components or building blocks and provides a plan from which products can be
procured, and systems developed, that will work together to implement the
overall system.
Program Design Language (Pseudo Code)
Pseudo code is a compact and informal high-level description of a
computer programming algorithm that uses the structural conventions of some
programming language, but is intended for human reading rather than machine
reading. Pseudo-code typically omits details that are not essential for human
understanding of the algorithm, such as variable declarations, system-specific
code and subroutines.
The programming language is augmented with natural language
descriptions of the details, where convenient, or with compact mathematical
notation. The purpose of using pseudo code is that it is easier for humans to
understand than conventional programming language code, and that it is a
compact and environment-independent description of the key principles of an
algorithm. It is commonly used in textbooks and scientific publications that are
documenting various algorithms, and also in planning of computer program
development, for sketching out the structure of the program before the actual
coding takes place.
38
Embedding form:
Calculate the length of the message in bytes
Prep end the length to the message
Put the message on a byte queue
While (there are still bytes to be written)
{
Header = read 4 bytes from the file
If (Header is_valid && contains padding byte)
{
Seek to the end of frame
Pop the byte from the queue
Write the popped byte into file
}
}
Length = integer > 4
Counter = 0
While (counter < length)
{
Header = read 4 bytes from the file
If (Header is_valid && contains padding byte)
{ If (counter == 4)
{
Length = to_integer (pop 4 bytes from queue)
}
Seek to the end of frame
Read a byte from the file
Push the read byte onto queue
}
39
}
8.2 Sample Coding
//Embedding method:
Public void EmbedData ()
{
Stream source Stream = null;
File Stream destination Stream = null;
Wave Stream Picture Stream = null;
//create a stream that contains the message, proceeded by its length
Stream message Stream = GetMessageStream ();
//open the key file
Stream key Stream =new File Stream (obj1.PropKeyFileName,
FileMode.Open);
textBox6.Text ="Key File Data gathered...";
Try
{
//how many samples do we need?
Long countSamplesRequired =
WaveUtility.CheckKeyForMessage (key Stream,
messageStream.Length);
textBox6.Text +="\r\n" + countSamplesRequired.ToString () +”
Samples Required...”
Console.WriteLine (countSamplesRequired.ToString ());
If (countSamplesRequired > Int32.MaxValue)
{
Throw new Exception ("Message too long or bad key! This
message/key combination requires"+countSamplesRequired+"
Samples, only "+Int32.MaxValue+" samples are allowed.");
40
}
//use a .wav file as the carrier
Source Stream = new File Stream (obj1.PropPictureFileName,
FileMode.Open);
//this. Cursor = Cursors.WaitCursor;
//create an empty file for the carrier wave
Destination Stream = new File Stream
(obj1.PropOutputPictureFile,
FileMode.Create);
textBox6.Text +="\r\n" + "Output Picture File Created...";
//copy the carrier file's header
PictureStream= new WaveStream(sourceStream,
destinationStream);
If (PictureStream.Length <= 0)
{
Throw new Exception ("Invalid WAV file");
}
/are there enough samples in the carrier wave?
If (countSamplesRequired > PictureStream.CountSamples)
{
String errorReport = "The carrier file is too small for this message
And key”+PictureStream.CountSamples+ "\r\n
+"Samples needed:"+countSamplesRequired;
Throw new Exception (error Report);
}
41
//hide the message
Wave Utility utility=new Wave Utility (Picture Stream,
Destination Stream);
textBox6.Text +="\r\n" + "Start Hiding...";
MessageBox.Show ("Starting...");
Utility. Hide (message Stream, key Stream);
textBox6.Text +="\r\n" + "Finished Hiding...";
}
Catch (Exception ex)
{
MessageBox.Show (ex. Message);
}
Finally
{
If (key Stream! = null) {keyStream.Close () ;}
If (messageStream! = null) {messageStream.Close () ;}
If (PictureStream! = null) {PictureStream.Close () ;}
If (sourceStream! = null) {sourceStream.Close () ;}
If (destinationStream! = null) {destinationStream.Close () ;}
This.Cursor = Cursors. Default ;}
//Extract method:
Public void Extractdata ()
{
this.Cursor = Cursors.WaitCursor;
FileStream sourceStream = null;
WaveStream PictureStream = null;
//create an empty stream to receive the extracted message
42
MemoryStream messageStream = new MemoryStream();
//open the key file
Stream keyStream = new FileStream(txtKeyFile.Text,
FileMode.Open);
textBox6.Text ="Key File Opened...\r\n";
Try
{
//open the carrier file
sourceStream = new FileStream(txtInputPictureFile.Text,
FileMode.Open);
textBox6.Text +="Picture File Opened...\r\n";
PictureStream = new WaveStream(sourceStream);
WaveUtility utility = new WaveUtility(PictureStream);
//exctract the message from the carrier wave
textBox6.Text +="Start Extracting ...\r\n";
utility.Extract(messageStream, keyStream);
textBox6.Text +="Finished Extracting ...\r\n";
messageStream.Seek(0, SeekOrigin.Begin);
//save result to a file
FileStream fs = new FileStream(txtOutputTextFile.Text,
FileMode.Create);
byte[] buffer = new byte[messageStream.Length];
messageStream.Read(buffer, 0, buffer.Length);
messageStream.Seek (0, System.IO.SeekOrigin.Begin );
txtExtractedMessage.Text= new
StreamReader(messageStream).ReadToEnd();
fs.Write(buffer, 0, buffer.Length);
fs.Close();
43
}
Else
{
// display result
txtExtractedMessage.Text = new
StreamReader(messageStream).ReadToEnd();
}
}
Catch (Exception ex)
{
this.Cursor = Cursors.Default;
MessageBox.Show(ex.Message);
}
Finally
{ If (keyStream != null){ keyStream.Close(); }
If (messageStream != null){ messageStream.Close(); }
If (PictureStream != null){ PictureStream.Close(); }
If (sourceStream != null){ sourceStream.Close(); }
this.Cursor = Cursors.Default; }
44
8.3 Screen Shots
.
45
.
46
47
.
.
.
48
49
50
51
52
53
54
Sample Coding:
Public Class Form1 Dim PicBuffer As System.IO.FileInfo Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click openPic.Title = "Open Picture Files" openPic.ShowDialog() End Sub
Private Sub openPic_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles openPic.FileOk PictureBox1.Image = Image.FromFile(openPic.FileName) PicBuffer = New System.IO.FileInfo(openPic.FileName) ResizeFileName(openPic.FileName, PicBuffer.Name) End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim Ready As Boolean = True Dim PicFileStream As System.IO.FileStream Try PicFileStream = PicBuffer.OpenRead Catch ex As Exception Ready = False MsgBox("Please load a picture before clicking this button", MsgBoxStyle.Critical, "Error") End Try If Ready = True Then Dim PicBytes As Long = PicFileStream.Length Dim PicExt As String = PicBuffer.Extension Dim PicByteArray(PicBytes) As Byte PicFileStream.Read(PicByteArray, 0, PicBytes) Dim SentinelString() As Byte = {73, 116, 83, 116, 97, 114, 116, 115, 72, 101, 114, 101} If RadioButton1.Checked = True Then Dim PlainText As String = TextBox1.Text Dim PlainTextByteArray(PlainText.Length) As Byte For i As Integer = 0 To (PlainText.Length - 1) PlainTextByteArray(i) = CByte(AscW(PlainText.Chars(i))) Application.DoEvents() Next Dim PicAndText(PicBytes + PlainText.Length + SentinelString.Length) As Byte For t As Long = 0 To (PicBytes - 1) PicAndText(t) = PicByteArray(t) Next Dim count As Integer = 0 For r As Long = PicBytes To (PicBytes + (SentinelString.Length) - 1) PicAndText(r) = SentinelString(count) count += 1 Next count = 0 For q As Long = (PicBytes + SentinelString.Length) To (PicBytes + SentinelString.Length + PlainText.Length - 1)
55
PicAndText(q) = PlainTextByteArray(count) count += 1 Next buildPic.ShowDialog() Dim NewFileName As String = buildPic.FileName My.Computer.FileSystem.WriteAllBytes(NewFileName, PicAndText, False)
ElseIf RadioButton2.Checked Then TextBox3.Clear() Dim OutterSearch, InnerSearch, StopSearch As Boolean OutterSearch = True InnerSearch = True StopSearch = False Dim count As Long = 0 Dim leftCounter As Long Dim rightCounter As Integer leftCounter = 0 rightCounter = 0 Do While (count < (PicBytes - SentinelString.Length) And StopSearch = False) If (PicByteArray(count) = SentinelString(0)) Then leftCounter = count + 1 rightCounter = 1 InnerSearch = True Do While (InnerSearch = True) And (rightCounter < SentinelString.Length) _ And (leftCounter < PicByteArray.Length) If (PicByteArray(leftCounter) = SentinelString(rightCounter)) Then rightCounter += 1 leftCounter += 1 If (rightCounter = (SentinelString.Length - 1)) Then StopSearch = True End If Else InnerSearch = False count += 1 End If Loop Else count += 1 End If Loop If StopSearch = True Then 'leftCounter contains the starting string that is being retrieved Do While (leftCounter < PicBytes) 'Bytes need to be converted to an integer 'then to an unicode character which will be the plaintext TextBox3.AppendText(ChrW(CInt(PicByteArray(leftCounter)))) leftCounter += 1 Loop Else TextBox3.Text = "The Picture does not contain any text" End If
End If
56
End If
End Sub
Sub ResizeFileName(ByVal LongFileName As String, ByVal ShortFileName As String) If LongFileName.Length > 71 Then Dim LongFileNameSize As Integer = LongFileName.Length Dim ShortFileNameSize As Integer = ShortFileName.Length Dim Cut As Integer = 71 - (5 + ShortFileNameSize) Dim i As Integer TextBox2.Clear() For i = 0 To (Cut) - 1 TextBox2.AppendText(LongFileName.Chars(i)) Next For i = 0 To 4 TextBox2.AppendText(".") Next For i = 0 To (ShortFileNameSize - 1) TextBox2.AppendText(ShortFileName(i)) Next Else TextBox2.Text = LongFileName End If
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged TextBox1.Enabled = False End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged TextBox1.Enabled = True End Sub
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
End Sub
Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter
End SubEnd Class
Imports System.Data.OleDbPublic Class Form10 Public Fnam, temp As String Public ch As Char Public Sql As SQLDB Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then TextBox2.Text = OpenFileDialog1.FileName
57
AxWindowsMediaPlayer1.URL = OpenFileDialog1.FileName Fnam = OpenFileDialog1.FileName
End If For i = 0 To Fnam.Length - 1 ch = Fnam(i) temp = temp & ch If ch = "\" Then temp = "" End If
Next
End Sub
Private Sub Form10_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Sql = New SQLDB Sql.LoadSql()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Sql.SqlCommand = New OleDbCommand("select * from VideoData", Sql.SqlConnection) Sql.SqlDataReader = Sql.SqlCommand.ExecuteReader While Sql.SqlDataReader.Read
MsgBox(Sql.SqlDataReader.GetValue(1))
If temp = Sql.SqlDataReader.GetValue(1) And TextBox1.Text = Sql.SqlDataReader.GetValue(4) Then
MsgBox("Decrypted")
RichTextBox1.LoadFile(Sql.SqlDataReader.GetValue(2), RichTextBoxStreamType.PlainText)
End If End While End SubEnd Class
Public Class Form11
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then TextBox1.Text = OpenFileDialog1.FileName RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
End If End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Val As String = Nothing
58
Dim Result As New System.Text.StringBuilder For Each Character As Byte In System.Text.ASCIIEncoding.ASCII.GetBytes(RichTextBox1.Text) Result.Append(Convert.ToString(Character, 2).PadLeft(8, "0")) Result.Append(" ") Next Val = Result.ToString.Substring(0, Result.ToString.Length - 1) RichTextBox2.Text = Val
RichTextBox2.SaveFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
End SubEnd Class
Imports System.TextImports System.Text.RegularExpressions
Public Class Form12
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then TextBox1.Text = OpenFileDialog1.FileName RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
End If End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim BinaryText As String = RichTextBox1.Text Dim Characters As String = Regex.Replace(BinaryText, "[^01]", "") Dim ByteArray((Characters.Length / 8) - 1) As Byte For Index As Integer = 0 To ByteArray.Length - 1 ByteArray(Index) = Convert.ToByte(Characters.Substring(Index * 8, 8), 2) Next RichTextBox2.Text = (ASCIIEncoding.ASCII.GetString(ByteArray)) RichTextBox2.SaveFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText) End SubEnd Class
Public Class Form2 Public Sql As SQLDB
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
59
Sql = New SQLDB
End SubEnd Class
Public Class Form4
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form1.Show() Form1.RadioButton2.Visible = False Form1.RadioButton1.Visible = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form1.Show() Form1.RadioButton2.Visible = True Form1.RadioButton1.Visible = False End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click End
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Form7.Show()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Form10.Show()
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Form11.Show() Me.Hide()
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click Form12.Show() Me.Hide()
End SubEnd Class
Imports System.Data.OleDbPublic Class Form5 Public Sql As SQLDB
60
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Hide() Form4.Show()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Sql.SqlCommand = New OleDbCommand("select * from UserDB", Sql.SqlConnection) Sql.SqlDataReader = Sql.SqlCommand.ExecuteReader While Sql.SqlDataReader.Read If Sql.SqlDataReader.GetValue(0) = TextBox1.Text Then TextBox2.Text = Sql.SqlDataReader.GetValue(1) TextBox3.Text = Sql.SqlDataReader.GetValue(2) TextBox4.Text = Sql.SqlDataReader.GetValue(3) TextBox5.Text = Sql.SqlDataReader.GetValue(4) End If End While End Sub
Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Sql.SqlCommand = New OleDbCommand("delete * from UserDB", Sql.SqlConnection) Sql.SqlCommand.ExecuteNonQuery()
End SubEnd Class
Imports System.Data.OleDbPublic Class Form6 Public SQl As SQLDB
Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click Form3.Show() Me.Hide()
End Sub Dim i As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click SQl.SqlCommand = New OleDbCommand("select * from UserDB", SQl.SqlConnection) SQl.SqlDataReader = SQl.SqlCommand.ExecuteReader While SQl.SqlDataReader.Read If TextBox1.Text = SQl.SqlDataReader.GetValue(0) And TextBox2.Text = SQl.SqlDataReader.GetValue(1) Then Me.Hide() Form4.Show() i = 2 Exit While Else
61
i = 1 End If
End While If i = 1 Then MsgBox("Invalid User") End End If
End Sub
Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SQl = New SQLDB SQl.LoadSql()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End
End SubEnd Class
Public Class Form7 Public Fnam, temp As String Public ch As Char Dim i As Integer Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then TextBox1.Text = OpenFileDialog1.FileName AxWindowsMediaPlayer1.URL = OpenFileDialog1.FileName Fnam = OpenFileDialog1.FileName
End If For i = 0 To Fnam.Length - 1 ch = Fnam(i) temp = temp & ch If ch = "\" Then temp = "" End If Next
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Form8.vtext = temp Form8.vsource = OpenFileDialog1.FileName
Form8.Show()
End Sub
Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
62
End SubEnd Class
Public Class Form8 Public vsource, tsource, ttext, vtext As String Public Fnam, temp As String Public ch As Char Dim i As Integer Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Form9.vsource = vsource Form9.vtext = vtext Form9.ttext = ttext Form9.tsource = tsource
Form9.Show()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then TextBox1.Text = OpenFileDialog1.FileName RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
Fnam = OpenFileDialog1.FileName
End If For i = 0 To Fnam.Length - 1 ch = Fnam(i) temp = temp & ch If ch = "\" Then temp = "" End If Next ttext = temp tsource = Fnam End Sub
Private Sub Form8_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End SubEnd Class
Imports System.Data.OleDbPublic Class Form9 Public vsource, tsource, ttext, vtext As String Public Sql As SQLDB
Private Sub Form9_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load RichTextBox1.LoadFile(tsource, RichTextBoxStreamType.PlainText) AxWindowsMediaPlayer1.URL = vsource Sql = New SQLDB Sql.LoadSql()
63
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Sql.SqlCommand = New OleDbCommand("insert into VideoData values('" & vsource & "','" & vtext & "','" & tsource & "','" & ttext & "','" & TextBox1.Text & "')", Sql.SqlConnection) Sql.SqlCommand.ExecuteNonQuery() MsgBox("Encrypted") Me.Hide() Form4.Show()
End SubEnd Class
64
IMPLEMENTATION
IMPLEMENTATION PHASE
Implementation refers to post-sales process of guiding a client from purchase
to use of the software or hardware that was purchased. This includes Requirements
Analysis, Scope Analysis, Customizations, Systems Integrations, User Policies, User
Training and Delivery. These steps are often overseen by a Project Manager using
Project Management Methodologies set forth in the Project Management Body of
Knowledge. Software Implementations involve several professionals that are
relatively new to the knowledge based economy such as Business Analysts, Technical
Analysts, Solutions Architect, and Project Managers.
The implementation is the final and important phase. It involves User training,
system testing and successful running of the developed system. The users test the
developed system when changes are made according to the needs. The testing phase
involves the testing of the developed system using various kinds of data. An elaborate
testing of data is prepared and system is tested using the tests data.
Implementation is the stage where theoretical design turned into a working
system. Implementation is planed carefully to propose system to avoid unanticipated
problems. Many preparations involved before and during the implementation of
proposed system. The system needed to be plugged in to the organization’s network
then it could be accessed from anywhere, after a user logins into the portal. The tasks
that had to be done to implement the system were to create the database tables in the
organization database domain. Then the administrator was granted his role so that the
system could be accessed.
The next phase in the implementation was to educate the system. A
demonstration of all the functions that can be carried out by the system was given to
examination department person, who will make extensive use of the system.
65
Technical analysis
In finance, technical analysis is security analysis discipline for forecasting the
direction of prices through the study of past market data, primarily price and volume.[1] Behavioral economics and quantitative analysis build on and incorporate many of
the same tools of technical analysis [2] [3][4] [5], which, being an aspect of active
management, stands in contradiction to much of modern portfolio theory. The efficacy
of both technical and fundamental analysis is disputed by efficient-market hypothesis
which states that stock market prices are essentially unpredictable.
Social Analysis
The role title has a wider meaning in relation to solving problems, but is more often
used in the narrower domain of Technical architecture - the context for the remainder
of this definition. In this context, the Solutions Architect is a very experienced
architect with cross-domain, cross-functional and cross-industry expertise. He/she
outlines solution architecture descriptions, then monitors and governs their
implementation.
66
9.SYSTEM TESTING
9.1 SYSTEM TESTING
Testing is the process of executing the program with the intent of
finding errors. During testing, the program to be tested is executed with a set of
test cases and the output of the program for the test cases is evaluated to
determine the program is performing as it is expected. Error is the testing
fundamental and is defined as the difference between the actual output of a
software and a correct output i.e., difference between the actual and ideal testing
is usually relied upon to detect these faults in the coding phase for this, different
levels of testing are used which performs different tasks and aim to the test
different aspects of the system.
GOALS OF TESTING:
The famous statement by Dijkstra (in Dahl et al. 1972) is a perfect
synthesis of the goals of the testing. If the results delivered by the system are
different from the expected ones in just one case, in this unequally shows that
the system is incorrect: by contrast, a correct behavior of the system on a finite
number of cases does not guarantee correctness in the general case. For
instance, we could have built a program that behaves properly for even integer
numbers but not odd numbers. Clearly, any number of tests with even input
values will face to show the error.
Testing should be based on sound and systematic techniques so that, after
testing, we may have a better understanding of the product’s reliability.
67
Testing should help locate errors, not just detect their presence. The result
of testing should not be viewed as simply providing a Boolean answer to the
question of whether the software works properly or not.
Tests should be organized in a way that helps to isolate errors. This
information can then be used in debugging.
Testing should be repeatable, i.e., tests should be arranged in such a way
that separating the same experiment-supplying the same input data to the same
piece of code – produces the same results.
Finally testing should be accurate – this will increase the reliability of
testing. Here we should observe that the accuracy of the testing activity depends
on the level of precision and may be even formality of software specifications.
68
9.2 TESTING METHODOLOGIES:
9.2.1 Unit Testing
In it different modules are tested against the specifications produced
during design for the modules. It is essential for verification of the code
produced during the code phase and the goal is to test the internal logic of the
module.
9.2.2 Integration Testing
The goal here is to see if the modules can be integrated properly, the
emphasis being on testing interfaces between modules. After structural testing
and functional testing we get error free modules these modules are to be
integrated to get the required results of the system. After checking the module
another module is tested and is integrated with the previous module.
After the integration the test phases are generated and the results are tested.
9.2.3 System Testing
Here the entire software is tested. The reference document for this
process is the requirement document and the goal is to see whether the software
needs its requirements.
The system was tested for various test cases with various inputs.
9.2.4 Validation Testing
In this testing the software is tested to determine whether it suits to that
particular environment. Validation testing provides the final assurance that the
69
software meets all functional, behavioral and performance requirements.
Validation refers to the process of using the software in a live environment to
find errors. During the course of validation the system failure may occur and
software will be changed.
Tested all the fields whether accepting the valid input or not.
9.2.5 Acceptance Testing
It is sometimes performed with realistic data of the client to
demonstrate that the software is working satisfactorily. Testing here focus on
the external behavior of the system, the internal logic of the program is not
emphasized.
In acceptance test the system is tested for various inputs. Thus different types
of testing are performed.
9.2.6 Black Box Testing
Here the structure of the program is not considered. Only the test
cases are decided solely on the basis of the requirements or specification of the
program or module and the internal details of the module or the program is not
considered for the selection of test cases. This is also called “Black Box
Testing” or “Functional Testing”.
.
Incorrect or missing functions.
Performance errors.
Database access errors
Initialization and termination
70
9.2.7 White Box Testing
It is considered with testing the implementation of the program. The
intention of the structural testing is not to exercise all the different input and
output conditions but to exercise the different programming and data files used
in the program. This testing is also called “White Box Testing” or Structural
Testing.
71
10.1 CONCLUSION
Data hiding system transmits secrets through apparently innocuous
covers in an effort to conceal the existence of a secret. Picture file data hiding
and its derivatives are growing in use and application. In areas where
cryptography and strong encryption are being outlawed, citizens are looking at
data hiding system to circumvent such policies and pass messages covertly.
Although the algorithm presented is a simple one and not without its
drawbacks, it represents a significant improvement over simplistic
steganographic algorithms that do not use keys. By using this algorithm, two
parties can be communicated with a fairly high level of confidence about the
communication not being detected.
In designing the “Data hiding system” utmost care was taken to meet
user requirements as much as possible. The analysis and design phase was
reviewed. Care was taken strictly to follow the software engineering concepts.
And principles so as to maintain good quality in the developed system as per the
user requirements.
Merits of the System
1. The project must be platform independent and portable.
2. The implementation should not be tied to a single mp3 decoder.
3. As per 1 and 2, Post Encoding Stegonography should be used.
4. The software should use Padding Byte Stuffing as the primary
stegonographic method.
72
5. A graphical mp3 player interface with a text box for displaying lyrics
should be part of implementation.
6. The lyrics should be synchronized with the song
7. There should be clear separation between the stegonographic layer and
display layer.
10.2 FUTURE ENHANCEMENTS
Because of the problems with finding Padding Bytes it would be very
interesting to implement the stegonographic module with another method. The
Unused Header Bit approach seems to be the most appropriate one. It could be
easily modified to work within the existing framework of the stegonographic
module.
It would also be worth it to slightly redesign the class structure to achieve
better encapsulation. StegIO class should be made abstract, and the actual
reading and writing tasks should be moved into its subclasses. This is purely a
cosmetic change, but it would greatly improve the readability and
maintainability of the code base.
The manual synchronization method also should be improved or replaced
with an automated one. It would be a very interesting project to see if it would
be possible to generate time offset information by analyzing an mp3 file, when
given a lyrics file.
Support for other Picture formats such as (wav, mp3) can easily be added
this needs additional sound encoding/decoding method to be implemented.
73
11. BIBLIOGRAPHY
1. ELIAS. M. AWAD “SYSTEM ANALYSIS AND DESIGN”
- Galgotia Publications, II Edition, 2003.
2. MARTIN “PRINCIPLE OF DATABASE MANAGEMENT”
- Tata Mcgraw hill Publications, III Edition, 2000.
3. BRIAN SILER AND JEFF SPOTTS “USING VISUAL BASIC.NET 2008
- Prentice Hall India Publications, 2002.
4. JOHN PAUL MELLER “THE COMPLETE REFERENCE
VISUAL BASIC.NET 2008 ”
- Tata Mcgraw hill Publications, III Edition, 2001.
5. TAXALI “MS OFFICE”
- Tata Mcgraw hill Publications, II Edition, 2004.
74