Beruflich Dokumente
Kultur Dokumente
INTRODUCTION
1.1 Purpose:
People are reluctant to admit it, but the world revolves around secrets. Without secrets, there
would be no privacy—everybody's personal and business information would be open to public
inspection. It would be impossible to safeguard a personal or business identity, keep a lid on
future plans, conduct financial transactions, or even maintain a bank account.
In the computer world, secrets are protected by encryption technologies. Unlike a password,
which is simply a key that provides access to information, encryption is designed to make an
entire body of information unreadable. In laymen's terms, encryption converts plain text into a
secret code for transmission over a public network, such as the Internet.
There are two main ways to encrypt information. One approach is to use asymmetric public-key
infrastructure (PKI) encryption. PKI cryptography is based on a pair of cryptographic keys—one
is private and known only to the user, while the other is public and known to the opposite party
in any exchange. PKI technology can be used in any data exchange requiring identification and
authorization of transacting parties. It provides privacy and confidentiality, access control, proof
of document transmission, and document archiving and retrieval support. While most security
vendors currently incorporate some type of PKI technology into their software, differences in
design and implementation prevent interoperability between products.
Scope
Secure Encryption System is a Network and Security Application which is used for Encrypting
and Decrypting a file. Secure Encryption system uses Rijndael Algorithm for Encryption and
Decryption methodology. A file is been encrypted and is been passed over the network and the
other end of system it is been decrypted. Rijndael Algorithm is one of most popular Algorithms
used for Encryption as well as Decryption methodologies.
1|Page
Maheshwara Engineering College
Secure Encryption System
2|Page
Maheshwara Engineering College
Secure Encryption System
The algorithm used in an encryption system normally remains the same for the life of the
equipment, so it is necessary to change keys frequently in order that identical encryption is not
applied to messages for a long period. It is generally desirable to change the keys on an irregular
but managed basis. Key management deals with the generation, storage, distribution, selection,
destruction and archiving of the key variables. Two basic types of encryption in use today are
known as private key (also called single or symmetrical key) encryption and public (or
asymmetrical) key encryption.
In private key encryption, the same key is used for both encryption and decryption. The key must
be kept secret so that unauthorized parties cannot, even with knowledge of the algorithm,
complete the decryption process. A person trying to share encrypted information with another
person has to solve the problem of communicating the encryption key without compromising it.
Public key encryption solves the problem of maintaining key security by having separate keys
for encryption and decryption, which uniquely match each other but are not predictable from
each other. The user retains a private decryption key and makes the public key available for use
by anyone interested in sending the user sensitive information. The relationship between the keys
is such that given the public key a person cannot easily derive the private key.
3|Page
Maheshwara Engineering College
Secure Encryption System
2.SYSTEM ANALYSIS
PROBLEM DEFINITION
Secure Encryption System is supposed to run with Java runtime environments version 1.4
and higher. This has the advantage of working under most operating systems in use
today.
Write the code to execute as Command mode and Graphical Interface
Provide interactive interface through which user can interact with different types of File
Size.
4|Page
Maheshwara Engineering College
Secure Encryption System
also be a consideration. The algorithm would need to operate fast and effectively on several
different platforms ranging from personal computers to smart cards.
Software Requirements are Windows as Operating System, Linux or Mac operating system. Java
2 standard edition, Java swings.
Hardware Requirements are P2 above processor, 128MB+ of main memory (RAM) and 100MB
hard disk and data base memory. LAN connection or internet connection.
.
5|Page
Maheshwara Engineering College
Secure Encryption System
Encryption:
Encryption is the process of transforming information from an unsecured form ("clear" or
"plaintext") into coded information ("cipher text"), which cannot be easily read by outside
parties. An algorithm and a key control the transformation process. The process must be
reversible so that the intended recipient can return the information to its original, readable form,
but reversing the process without the appropriate encryption information should be impossible.
This means that details of the key must also be kept secret.
Decryption:
The algorithm used in an encryption system normally remains the same for the life of the
equipment, so it is necessary to change keys frequently in order that identical encryption is not
applied to messages for a long period. It is generally desirable to change the keys on an irregular
but managed basis. Key management deals with the generation, storage, distribution, selection,
destruction and archiving of the key variables. Two basic types of encryption in use today are
known as private key (also called single or symmetrical key) encryption and public (or
asymmetrical) key encryption.
In private key encryption, the same key is used for both encryption and decryption. The key must
be kept secret so that unauthorized parties cannot, even with knowledge of the algorithm,
complete the decryption process. A person trying to share encrypted information with another
person has to solve the problem of communicating the encryption key without compromising it.
This is normally achieved by programming keys into all encrypt prior to deployment, and the
keys should be stored securely within the devices. Public key encryption solves the problem of
6|Page
Maheshwara Engineering College
Secure Encryption System
maintaining key security by having separate keys for encryption and decryption, which uniquely
match each other but are not
predictable from each other. The user retains a private decryption key and makes the public key
available for use by anyone interested in sending the user sensitive information. The relationship
between the keys is such that given the public key a person cannot easily derive the private key.
Senders use the recipient's public key to send encrypted messages. Recipients use their
corresponding private key to decrypt messages. The private key can also be used to encrypt
messages, which can be decrypted by anyone with knowledge of the public key (the purpose of
this is to provide verification of the origin rather than to achieve secrecy). Public key encryption
is relatively inefficient and is not suitable for either encrypting large volumes or operating at
high speeds. The RSA algorithm is a well-known form of public key encryption.
7|Page
Maheshwara Engineering College
Secure Encryption System
FEASIBILITY STUDY
3. FEASIBILITY STUDY:
The next step in analysis is to verify the feasibility of the proposed system. “All projects are
feasible given unlimited resources and infinite time“. But in reality both resources and time are
scarce. Project should confirm to time bounce and should be optimal in there consumption of
resources.
Feasibility has applied to Secure Encryption System pertains to the following areas:
Technical feasibility
Operational feasibility
TECHNICAL FEASIBILITY:
As we are developing this Secure Encryption System Application on Java 2 platform edition
which is an open source and free of cost. Once we started developing this application in Java 2
platform edition then they is no need of purchasing any special software or application software
for support. Java it self provides all necessary functionalities and resources for developing
Secure Encryption System Application. For Example like developing GUI can be developed by
AWT or Swing Framework which is much available in Java.
OPERATIONAL FEASIBILITY:
To determine the operational feasibility of the system we should take into consideration the
awareness level of the users. Users who are using this Secure Encryption system don’t require
much knowledge of how to use. Just Users should have basic concept of what is Secure
Encryption system? Every thing will be understood by user once he sees the application.
8|Page
Maheshwara Engineering College
Secure Encryption System
SYSTEM DESIGN
4.SYSTEM DESIGN:
System design is transition from a user oriented document to programmers or data base
personnel. The design is a solution, how to approach to the creation of a new system. This is
composed of several steps. It provides the understanding and procedural details necessary for
implementing the system recommended in the feasibility study. Designing goes through logical
and physical stages of development, logical design reviews the present physical system, prepare
input and output specification, details of implementation plan and prepare a logical design
walkthrough.
SOFTWARE DESIGN
1. Modularity and partitioning: software is designed such that, each system should consists of
4. Shared use: avoid duplication by allowing a single module is called by other that need the
function it provides
9|Page
Maheshwara Engineering College
Secure Encryption System
10 | P a g e
Maheshwara Engineering College
Secure Encryption System
11 | P a g e
Maheshwara Engineering College
Secure Encryption System
Use Case:
12 | P a g e
Maheshwara Engineering College
Secure Encryption System
Class Diagram:
AlgoFrame PasswordDialog MsgBox
main() jbinit() jbinint()
jbinit() actionPerformed() actionPerformed()
file TextFeild
location Button TextArea
Button
Border
13 | P a g e
Maheshwara Engineering College
Secure Encryption System
Sequence:
User
14 | P a g e
Maheshwara Engineering College
Secure Encryption System
Activity Diagram:
File Encryption
15 | P a g e
Maheshwara Engineering College
Secure Encryption System
Input design:
Inaccurate input data are most common cause of errors in data processing. Input interface design
takes an important role in controlling the errors. Messages are generated using the Exception
handling features of JAVA. The input forms are designed in a flexible way. Sample input forms
Output design:
Output design determines how to show all the information and data after processing the input
data. Sample output screens and reports are shown in the appendix.
IO (Input Output) Charts technique is used to know the set or specifications for each module.
For each module depicted in the hierarchy chart an IO chart is used to describe the input to,
theoutputs form and the process performed by the activity. The data dictionary is the source of
inputand outputs and algorithm description defines the process. The administrator and the user
can easily follow the project structure depicted by the graphic of the IO charts
16 | P a g e
Maheshwara Engineering College
Secure Encryption System
5.IMPLEMENTATION
5.1 Software
The life-cycle paradigm demands a systematic, sequential approach to software development that
begins at the system level and progresses through requirements analysis, design, coding, testing
and maintenance.
a) Analysis Phase:
The analysis phase consists of two sub phases: planning and requirements definition. During
planning the activities that are performed are - understand the customer’s problem, developing a
recommended solution. Requirements definition is concerned with identifying the basic
functions of a software component in a hardware/software/people system.
b) Design Phase:
Design is concerned with identifying software components, specifying relationships among
components, maintaining a record of design decisions. Design consists of architectural design
and detailed design.
i) Architectural Design involves identifying the software components, decoupling and
decomposing them in to processing modules and conceptual data structures and specifying the
interconnection between the components.
ii) Detailed Design is concerned with the details of how to package the processing modules and
how to implement the processing algorithms, data structures and interconnection between them.
17 | P a g e
Maheshwara Engineering College
Secure Encryption System
c) Implementation Phase:
The implementation phase of software development involves translation of design specifications
source code and debugging, documentation and unit testing of the source code.
d) Testing Phase:
It involves two kinds of testing:
i) In integration testing the individual program units or programs are integrated and tested.
ii) Acceptance Testing involves planning and execution of various types of tests in order to
demonstrations that the implemented software satisfies the stated requirements.
Java was conceived by James Gosling, Patrick Naughton, Chris Warth, Ed Frank and Mike
Sheridan at SUN Microsystems Incorporation in the year 1991.It took 18 months to develop the
1st working version. This language was initially called “OAK”, but was renamed “JAVA” in
1995, many more contributed to the design and evolution of the language.
Java Overview
Java is a powerful but lean object-oriented programming language. It has generated a lot of
excitement because it makes it possible to program for Internet by creating Applets. Programs
that can be embedded in web page. The context of an applet can be an animation with sound, an
interactive game or a ticker tape. With constantly updated stock prices. Applets can be just little
decorations to liven up web page, or they can be serious applications like Word processor or
Spreadsheet.
18 | P a g e
Maheshwara Engineering College
Secure Encryption System
But Java is more than a programming language for writing Applets. It is being used more and
more for writing standalone applications as well. It is becoming so popular that many people
believe it will become standard language for both general purpose and Internet programming.
There are many buzzwords associated with Java, but because of its spectacular growth in
popularity, a new buzzword has appeared ubiquitous. Indeed, all indications are that it will soon
be everywhere.
Java builds on the strength of C++. It has taken the best features of C++ and discarded the more
problematic and error prone parts. To this lean core, it has added garbage collection (automatic
memory management), multithreading (the capacity for one program to do more than one thing
at a time), security capabilities. This result is that Java is simple, elegant, and powerful and easy-
to-use.
Java is actually a platform consisting of 3 components:
Java Programming Language.
Java Library of Classes and Interfaces.
Java Virtual Machine
Java Is Portable
One of the biggest advantages Java offers is that it is portable. An application written in Java will
run on all the major platforms. Any computer with a Java-based browser can run the applications
or Applets written in the Java-Programming-Language. A programmer no longer has to write one
program to run on a Macintosh, another program to run on a Windows-machine still another to
run on a UNIX-machine and so on. In other words, with Java developers write their programs
only once.
The Virtual Machine is what gives Java is cross platform capabilities. Rather being compiled
into machine language, which is different for each OS’s and computer architecture, Java code is
compiled into Byte codes.With other languages, the program code is compiled into a language
that the computer can understand. The problem is that other computers with different machine
instruction set cannot understand that language. Java code on the other hand is compiled into
19 | P a g e
Maheshwara Engineering College
Secure Encryption System
Byte-Code rather than a machine language. These byte codes go to the JVM, which executes
them directly or translates them into the language that is understood by the machine running it.
In summary, these means that with the JDBC API extending Java, a programmer writing Java
code can access all the major RDBMS on any platform that supports the JVM.
Java Is Object-Oriented
The Java programming language is OBJECT-ORIENTED, which makes program design focus
on what you are dealing with, rather than on how your are going to do something. This makes it
more useful for programming in sophisticated projects, because one can break the things into
understandable components. A big benefit is that these components can then be reused.
Object-Oriented Languages use the paradigm of classes. In simplest term, a class includes both
the data and the functions to operate on data. You can create an instance of a class, also called an
object, which will have all the data members and functionality of its class. Because of this, you
can think of a class as being like template, with each object being a specific instance of a
particular type of class.
The class paradigm allows one to encapsulate data so that specific data values are those using the
data cannot see the function implementation. Encapsulation makes it possible to make the
changes in code without breaking other programs that use that code.
If for example, the implementation of a function is changed, the change is invisible to any
programmer who invokes that function, and does not affect his/her program, except hopefully to
improve it.
Java includes inheritance, or the ability to derive new classes from existing classes. The derived
class, is also called as Sub-Class, inherits all the data in the functions of the existing class.
20 | P a g e
Maheshwara Engineering College
Secure Encryption System
Context diagram:
A context diagram is a top level (also known as level 0) data flow diagram. It only contains one
process node (process 0) that generalizes the function of the entire system in relationship to
external entities.
The top-level diagram is often called a “context diagram”. It contains a single process, but it
plays a very important role in studying the current system.
The context diagram defines the system that will be studied in the sense that it determines the
boundaries.
Anything that is not inside the process identified in the context diagram will not be part of the
system study.
It represents the entire software element as a single bubble with input and output data indicated
by incoming and outgoing arrows respectively.
The first level DFD shows the main processes within the system. Each of these processes can be
broken into further processes until you reach pseudo code. The major processes in our system are
issue raising, issue resolving, search process and report generation on issues and generating a
This level explains each process of the system in a detailed manner. In first detailed level DFD
(generation of individual fields): how data flows through individual process/fields in it are
shown. In second detailed level DFD (generation of detailed process of the individual fields):
how data flows through the system to form a detailed description of the individual processes.
System components:
Symbolizes process
22 | P a g e
Maheshwara Engineering College
Secure Encryption System
The data flow diagram is one of the most important tools used for the system analysis.
ADEMACRO (1978) and SARSON (1979) populated the use of data flow diagrams as modeling
tool through their structured analysis methodologies. They suggested that a data flow diagram
should be the first tool used by the analyst to model the system components. There are four types
Process:
Process shows what system does. A process is represented by a circle as shown above. Each
process is given a unique name and a unique number. Each process takes one or more data inputs
Data flows:
Data flows made the passage of data and are represented by the line joining the system
components. An arrow is used to indicate the direction of data flow shown in the above and the
Data stores:
Data store is used to represent the repository of the data that maintains in the system. A process
can
23 | P a g e
Maheshwara Engineering College
Secure Encryption System
External Entities:
External entities are the out side the system but they either supply input into system or use
system output. The designer has to control over these entities. These are represented by a square
The context level data flow diagram shown above gives a brief idea about the flow of data
should be and it is also shows the control if some data are invalid.
24 | P a g e
Maheshwara Engineering College
Secure Encryption System
6.UML Concepts
The Unified Modeling Language (UML) is a standard language for writing software blue prints.
The UML is a language for
Visualizing
Specifying
Constructing
Documenting the artifacts of a software intensive system.
The UML is a language which provides vocabulary and the rules for combining words in that
vocabulary for the purpose of communication. A modeling language is a language whose
vocabulary and the rules focus on the conceptual and physical representation of a system.
Modeling yields an understanding of a system.
25 | P a g e
Maheshwara Engineering College
Secure Encryption System
Behavioral things
Grouping things
Annotational things
Structural things are the nouns of UML models. The structural things used in the project design
are:
First, a class is a description of a set of objects that share the same attributes, operations,
relationships and semantics.
Window
origin
size
open()
close()
move()
display()
Fig: Classes
Second, a use case is a description of set of sequence of actions that a system performs that
yields an observable result of value to particular actor.
26 | P a g e
Maheshwara Engineering College
Secure Encryption System
Fig: Nodes
Behavioral things are the dynamic parts of UML models. The behavioral thing used is:
Interaction:
An interaction is a behavior that comprises a set of messages exchanged among a set of objects
within a particular context to accomplish a specific purpose. An interaction involves a number of
other elements, including messages, action sequences (the behavior invoked by a message, and
links (the connection between objects).
Fig: Messages
Fig: Dependencies
27 | P a g e
Maheshwara Engineering College
Secure Encryption System
An association is a structural relationship that describes a set links, a link being a connection
among objects. Aggregation is a special kind of association, representing a structural relationship
between a whole and its parts.
Fig: Association
Fig: Generalization
Fig: Realization
sample Code:
public static Object makeKey (byte[] k) throws InvalidKeyException
public static byte[]
blockEncrypt (byte[] in, int inOffset, Object sessionKey)
public static byte[]
blockDecrypt (byte[] in, int inOffset, Object sessionKey)
public static synchronized Object makeKey (byte[] k, int blockSize)
throws InvalidKeyException
public static byte[]
blockEncrypt (byte[] in, int inOffset, Object sessionKey, int blockSize)
public static byte[]
28 | P a g e
Maheshwara Engineering College
Secure Encryption System
7 .SOFTWARE TESTING
Testing
Software testing is a critical element of software quality assurance and represents the ultimate
review of specification, design and code generation.
To ensure that during operation the system will perform as per specification.
TO make sure that system meets the user requirements during operation
To make sure that during the operation, incorrect input, processing and output will
be detected
To see that when correct inputs are fed to the system the outputs are correct
To verify that the controls incorporated in the same system as intended
Testing is a process of executing a program with the intent of finding an error
A good test case is one that has a high probability of finding an as yet
undiscovered error
The software developed has been tested successfully using the following testing strategies and
any errors that are encountered are corrected and again the part of the program or the procedure
or function is put to testing until all the errors are removed. A successful test is one that uncovers
an as yet undiscovered error.
29 | P a g e
Maheshwara Engineering College
Secure Encryption System
Note that the result of the system testing will prove that the system is working correctly. It will
give confidence to system designer, users of the system, prevent frustration during
implementation process etc.
White box testing is a testing case design method that uses the control structure of the procedure
design to derive test cases. All independents path in a module are exercised at least once, all
logical decisions are exercised at once, execute all loops at boundaries and within their
operational bounds exercise internal data structure to ensure their validity. Here the customer is
given three chances to enter a valid choice out of the given menu. After which the control exits
the current menu.
Black Box Testing attempts to find errors in following areas or categories, incorrect or missing
functions, interface error, errors in data structures, performance error and initialization and
termination error. Here all the input data must match the data type to become a valid entry.
The following are the different tests at various levels:
Unit Testing:
Unit testing is essentially for the verification of the code produced during the coding phase
and the goal is test the internal logic of the module/program. In the Generic code project,
the unit testing is done during coding phase of data entry forms whether the functions are
working properly or not. In this phase all the drivers are tested they are rightly connected or
not.
30 | P a g e
Maheshwara Engineering College
Secure Encryption System
Integration Testing:
All the tested modules are combined into sub systems, which are then tested. The goal is to
see if the modules are properly integrated, and the emphasis being on the testing interfaces
between the modules. In the generic code integration testing is done mainly on table
creation module and insertion module.
Validation Testing
This testing concentrates on confirming that the software is error-free in all respects. All the
specified validations are verified and the software is subjected to hard-core testing. It also aims at
determining the degree of deviation that exists in the software designed from the specification;
they are listed out and are corrected.
System Testing
This testing is a series of different tests whose primary is to fully exercise the computer-based
system. This involves:
Implementing the system in a simulated production environment and testing it.
Introducing errors and testing for error handling.
TEST CASE 1:
31 | P a g e
Maheshwara Engineering College
Secure Encryption System
8. OUTPUT SCREENS
32 | P a g e
Maheshwara Engineering College
Secure Encryption System
33 | P a g e
Maheshwara Engineering College
Secure Encryption System
34 | P a g e
Maheshwara Engineering College
Secure Encryption System
35 | P a g e
Maheshwara Engineering College
Secure Encryption System
36 | P a g e
Maheshwara Engineering College
Secure Encryption System
37 | P a g e
Maheshwara Engineering College
Secure Encryption System
38 | P a g e
Maheshwara Engineering College
Secure Encryption System
CONCLUSIONS
Historically, encryption's main use has been to protect files stored on a hard drive or floppy
disk. Encryption ensures that if a protected computer or disk should fall into the wrong hands,
the contained information will be indecipherable.
With most computers now connected to the Internet, there's a critical need to protect both
e-mail and attached files. Encryption allows users to send and receive information over public
networks without worrying about whether their communications will be intercepted and used by
unauthorized parties.
39 | P a g e
Maheshwara Engineering College
Secure Encryption System
APPENDIX
ABBREVATIONS:
40 | P a g e
Maheshwara Engineering College
Secure Encryption System
BIBILIOGRAPHY
Websites
www.eci.gov.in
www.google.com
www.apeci.com
www.askjeeves.com
41 | P a g e
Maheshwara Engineering College