DOCCUMENT
DOCCUMENT
DOCCUMENT
1 Motivation
The motivation for doing this project was primarily an interest in undertaking
a challenging project in an interesting area of research (Information Security). The
opportunity to learn about a new area of computing not covered in lectures was
appealing
Group key management for secured protocols for peer cluster communication
is to collaboratively generate key for peer to peer group communication by using the
queue batch algorithm. This mainly avoids the centralized server. The dynamic nature
allows the existing members to leave while new members are joining instead of
re-keying. The group key is used for future communication among the members of the
group.
1
1.5 Organization of Document:
Chapter1:
Chapter1 provides the introduction of the project. Here, the basic idea of
the project has been brought up and also the need of the project is clearly defined
which includes the algorithms required for developing the product. Here the
drawbacks of project are also mentioned, in regard to provide the prior information to
user .Because manual provides the detailed information to the user. The group key
management is to allow different user’s to access an account with a public key and
also for security purpose , they also have a private key, In order to access the account
for individually. The group key management is mainly to generate private and public
keys for the user’s .Which provides security to the information from attackers.
Chapter2:
Chapter2 deals with the literature survey, which provides the
information regarding the need of developing the project by comparing it with the
existing one
And on a major defines the overcoming steps taken by the proposed system to
existing system. In regard to this project, here it mainly describes the concept of re-
keying in the proposed system. The re-keying is done by using the queue batch
algorithm. Using re-keying after group of join and leave operations key is generated.
Using this re-keying the resource utilization is reduced to some extent.
Chapter3:
Chapter3 is the real start of our project, known as Analysis, the above
two chapters are Theoretical, where we just assume the things ,and refer the book.
Analysis mainly depends on analyzing the time taken to complete the project in a
periodic manner and also the specifies the software and hardware requirements which
are mainly used for developing the project in further phases. In this we analyze the
2
Time duration that could be taken in ordered to complete the project, in a certain
periodic durations.
Chapter4:
Chapter4 describes the design phase of the project. The whole process is
represented in pictorial format using the Data Flow’s, Entity-Relationship’s and
Unified Modeling Language. The user can get an idea of project by the diagrams
in a easy way. So every project manual provides the pictorial presentation of the
whole project.
Chapter5:
Chapter5 shows the Implementation and Results, implementation
refers to the
Development of the code for the project with the selected software and hardware
requirements .basically the code is generated by modulating the project into required
Modules and then distribute the modules within the group, later with in certain time
the code is generated, if not the time is extended. The result specifies the output of the
code generated. In the manual we never show the code, but provide the output screens
and their functionalities.
Chapter6:
Chapter6 specifies the Testing & Validation, in which Testing refers to
the testing methodologies in order to test the code, to make the code too efficient that
it
is free from errors and bugs. Validation refer to, expect the exisitency of the project
with the new era, which in includes the new upcoming products/projects. Simply can
be said as planning the lifespan of project.
Chapter7:
Chapter7 is the conclusion part, where it provides the glance look out of
the project about it’s functionalities, features and validation.
Chapter8:
3
This chapter8 is the last one , specified as Bibliography which consists of
additional reference sites and books.
2.1 Introduction
The existing system involves either centralized key server and individual re-
keying is done for join or leave operations in case of distributive key generation
algorithms. In case of individual re-keying, after every join or leave operation each
member individually re-keys’. More resources are used for re-keying because it is
done for each join or leave operations. In case of using a centralized server, the risk of
single point failure is more.
2.3 Disadvantages of Existing System
It can be concluded that the proposed system is the upgraded version of the
existing system, wherein it has capability of re-keying after batch of joins and leaves
and also collaboratively generate common keys for p2p communication in a group.
4
3.1 Introduction
Definition of SRA:
Requirement Analysis
This stage is to obtain a clear picture of the needs and requirements of the end-
user and also the organization. Analysis involves interaction between the clients and
the analysis. Usually analysts research a problem from any questions asked and
reading existing documents. The analysts have to uncover the real needs of the user
even if they don’t know them clearly. During analysis it is essential that a complete
and consistent set of specifications emerge for the system.
Each Requirement analysis method has a unique point of view. However all
analysis methods are related by a set of operational principles. They are
• The information domain of the problem must be represented and understood.
• The functions that the software is to perform must be defined.
5
• The behavior of the software as a consequence of external events must be
defined.
• The models that depict information function and behavior must be partitioned
in a hierarchical or layered fashion.
• The analysis process must move from essential information to implementation
detail
Requirement Specification:
Specification Principles:
6
External Interface Requirements:
User Interface:
This includes GUI standards, error messages for invalid inputs by users,
standard buttons and functions that will appear on the screen.
Hardware Interface:
We use TCP/IP protocol for establishing connection and transmitting data over
the network. We use Ethernet for LAN.
Software Interface:
We use Oracle for storing database of clients who connects to the server
Security Requirements:
Product is adaptable to any changes. Such as the product can be modified to transfer
not only text but also image, audio, video files. Product is reliable due to the file
encryption and authentication. That means the data is not lost or goes into wrong
hands. Product is portable i.e. it can run between only two connected systems or a
large network of computers. Product is maintainable i.e. in future the properties of
the product can be changed to meet the requirements.
7
3.2.2 Software Requirements
LANGUAGE : JAVA
FRONT END TOOL : SWING
BACK END TOOL : SQL SERVER
OPERATING SYSTEM : WINDOWS 98.
A graphical tool used to describe and analyze the moment of data through a
system manual or automated including the process, stores of data, and delays in the
system. Data Flow Diagrams are the central tool and the basis from which other
components are developed. The transformation of data from input to output, through
processes, may be described logically and independently of the physical components
associated with the system. The DFD is also know as a data flow graph or a bubble
chart.
8
Context Diagram:
1. Physical DFD
Structured analysis states that the current system should be first understand
correctly. The physical DFD is the model of the current system and is used to ensure
that the current system has been clearly understood. Physical DFDs shows actual
devices, departments, people etc., involved in the current system
2. Logical DFD
Logical DFDs are the model of the proposed system. They clearly should
show the requirements on which the new system should be built. Later during design
activity this is taken as the basis for drawing the system’s structure charts.
9
DFD Symbols :
Dataflow:
Process:
Source:
Data Store:
10
3.4 Feasibility Analysis
Economic Feasibility:
This procedure is to determine the benefits and savings that are expected from
a candidate system and compare them with costs. If benefits outweigh costs, then the
decision is made to design and implement the system. Otherwise, further justification
or alterations in proposed system will have to be made if it is to have a chance of
being approved. This is an ongoing effort that improves in accuracy at each phase of
the system life cycle.
Operational Feasibility:
People are inherently resistant to change, and computers have been known to
facilitate change. It is understandable that the introduction of a candidate system
requires special effort to educate, sell, and train the staff on new ways of conducting
business.
3.5 Conclusion
4.1 Introduction
11
The whole project has been represented in pictorial format. Which provides an ease of
understanding the project. The representation can be in data flow,entity relation and
uml diagrams.
12
4.2DataFlowDiagrams
13
Fig 4.2.0 Data Flow Diagram
4.3.1 Introduction:
14
UML is a result of the evolution of object-oriented modeling languages. It was
developed by Rational Software Company by unifying some of the leading object-
oriented modeling methods,
The authors of these languages are sometimes called the three amigos of software
engineering. They were participating in the around twenty people strong group which
was formed in ’94 and submitted UML 1.0 to the Object Management Group (OMG)
in ’97. The current version of UML is 1.4 (published in Sep 2001) and there is
ongoing work within OMG on a new major version 2.0, planned to be released during
late 2003 or early 2004.
UML is used for modeling software systems; such modeling includes analysis and
design. By an analysis the system is first described by a set of requirements, and then
by identification of system parts on a high level. The design phase is tightly connected
to the analysis phase. It starts from the identified system parts and continues with
detailed specification of these parts and their interaction. For the early phases of
software projects UML provide support for identifying and specifying requirements as
use cases. Class diagrams or component diagrams can be used for identification of
system parts on a high level. During the design phase class diagrams, interaction
diagrams, component diagrams and state chart diagrams can be used for
comprehensive descriptions of the different parts in the system.
15
Edraw Trial
Use Case Version
Diagram
login
view groups
user
view files
send files
4.3.3Sequence Diagram
16
E d ra
U Mw T ria
L S eq u e n cle V
D iaegrs
ramio n
u s er lo gin view g ro u ps vie w file s s e nd file s
u na m e ,p w d va lid at e
vie w
vie w
s en d
E d ra w T ria l V e rs io n
E d ra w T ria l V e rs io n
17
E d ra
U Mw T uria
L S eq e n cle V e rs
D iag ramio n
s e n d file s
us er lo g in
file s
u n a m e ,p w d va lid a te
s end
s end
E d ra w T ria l V e rs io n
E d ra w T ria l V e rs io n
18
E d ra
U Mw
L ST
e q ria
u en cl e V egrs
D ia ra mio n
g ro u p s
us er lo g in vie w g ro u p s
vie w
vie w
E d ra w T ria l V e rs io n
E d ra w T ria l V e rs io n
19
4.3.3.3 View & Delete File
validate
uname,pwd
send
open
delete
Fig 4.3.3.4 Sequence Diagram For View File & Delete Files
20
4.3.4 Class Diagram For Total Flow Of Actions:
Sign up
user design
user username
password password
design jframe
member
m em bers s1
view groups s1
view files
s end files set()
reset()
SIGN IN
g ro u p ke y
ke y
o k()
21
5.1 Introduction
This shows the result of whole project.Where the user can interact to the model.
5.2 Methods of Implementation
Simple Architecture-neutral
Object-oriented Portable
Distributed High-performance
Interpreted Multithreaded
Robust Dynamic
Secure
Each Java program is both compiled and interpreted. With a compiler, you
translate a Java program into an intermediate language called Java bytecodes--the
platform-independent codes interpreted by the Java interpreter. With an interpreter, each
Java bytecode instruction is parsed and run on the computer. Compilation happens just
once; interpretation occurs each time the program is executed. This figure illustrates how
this works.
Java Compilation
You can think of Java byte codes as the machine code instructions for the Java
Virtual Machine (Java VM). Every Java interpreter, whether it's a Java development tool
22
or a Web browser that can run Java applets, is an implementation of the Java VM. The
Java VM can also be implemented in hardware.
Java byte codes help make "write once, run anywhere" possible. You can compile
your Java program into byte codes on any platform that has a Java compiler. The byte
codes can then be run on any implementation of the Java VM. For example, the same
Java program can run on Windows NT, Solaris, and Macintosh.
A platform is the hardware or software environment in which a program runs. The Java
platform differs from most other platforms in that it's a software-only platform that runs
on top of other, hardware-based platforms. Most other platforms are described as a
combination of hardware and operating system.
23
• The Java Virtual Machine (Java VM)
• The Java Application Programming Interface (Java API)
SWING
The Swing toolkit includes a rich set of components for building GUIs and
adding interactivity to Java applications. Swing includes all the components you
would expect from a modern toolkit: table controls, list controls, tree controls,
buttons, and labels. Swing is far from a simple component toolkit, however. It
includes rich undo support, a highly customizable text package, integrated
internationalization and accessibility support. To truly leverage the cross-platform
capabilities of the Java platform, Swing supports numerous look and feels, including
the ability to create your own look and feel. The ability to create a custom look and
feel is made easier with Synth, a look and feel specifically designed to be customized.
Swing wouldn't be a component toolkit without the basic user interface primitives
such as drag and drop, event handling, customizable painting, and window
management.
Swing is part of the Java Foundation Classes (JFC). The JFC also include
other features important to a GUI program, such as the ability to add rich graphics
functionality and the ability to create a program that can work in different languages
and by users with different input devices.
The Swing toolkit includes a rich array of components: from basic components, such
as buttons and check boxes, to rich and complex components, such as tables and text.
Even deceptively simple components, such as text fields, offer sophisticated
functionality, such as formatted text input or password field behavior. There are file
browsers and dialogs to suit most needs, and if not, customization is possible. If none
of Swing's provided components are exactly what you need, you can leverage the
basic Swing component functionality to create your own.
24
THE SQL SERVER
25
• Take full advantage of your hardware resources by running multiple, isolated
applications on a single computer using SQL Server 2000 multi-instance
support
Conclusion
Through the usage of java we have created front end of project where it
describes view of the project to the user through which he/she can write or retrive data
Into/from the application.And through the usage of DATABASE MANAGEMENT
system we have created backend of the project for storing the records and files
regarding details.
26
5.3.1 Module Design & Organization
List of Modules
MODULE 1:
To efficiently maintain the group key in a dynamic peer group with more than
two members, we use the tree-based group Diffie–Hellman (TGDH) protocol .Each
member maintains a set of keys, which are arranged in a hierarchical binary tree. We
assign a node ID to every tree node. For a given node, we associate a secret (or
private)key Kv and a blinded (or public) key BKv . All arithmetic operations are
performed in a cyclic group of prime order with the generator. Therefore, the blinded
key of node can
be generated by
27
Each leaf node in the tree corresponds to the individual secret and blinded keys of a
group member Mi. Every member holds all the secret keys along its key path starting
from its associated leaf node up to the root node. Therefore, the secret key held by the
root node is shared by all the members and is regarded as the group key. The figure
below illustrates a possible key tree with six members M1 to M6. For example,
member M1 and holds the keys at nodes 7, 3, 1, and 0. The secret key at node 0 is the
group key of this peer group.
The node ID of the root node is set to 0. Each non leaf node consists of two child
nodes whose node ID’s are given by 2v+1 and 2v+2 . Based on the Diffie-Hellman
protocol, the secret key of a non leaf node can be generated by the secret key of one
child node of v and the blinded key of another child node of v. Mathematically, we
have
Unlike the keys at non leaf nodes, the secret key at a leaf node is selected by
its corresponding group member through a secure pseudo random number generator.
Since the blinded keys are publicly known, every member can compute the keys along
its key path to the root node based on its individual secret key.
To illustrate, consider the key tree in Fig. 1. Every member Mi generates its own
secret key and all the secret keys along the path to the root node. For example,
member M1 generates the secret key K7 and it can request the
28
Blinded key BK8 from M2, BK4 from M3, and BK2 from either M4, M5, or
M6.Given M1’s secret key K7 and the blinded key BK8, M1 can generate the secret
key K3 according to the above given formula. Given the blinded key BK4 and the
newly generated secret key K3, M1 can generate the secret key K1 based on given
formula. Given the secret key K1 and the blinded key BK2, M1 can generate the
secret key K0 at the root. From that point on, any communication in the group can be
encrypted based on the secret key (or group key) K0.
29
FLOW CHART FOR MODULE 1
Database
30
MODULE 2:
31
FLOW CHART FOR MODULE 2
32
MODULE 3: SHARING THE RESOURCES WITHIN THE GROUP
The new group key is been generated after the batch of join and leave using
the Queue Batch algorithm in the 2nd module. From now onwards this new group key
is used for encryption for all data sharing among the members of the peer group. In
this module we would be able to show all the communication and data sharing among
all the members present in our work group.
33
5.3.2 Output Screens:
5.3.2.0 Login Window:
34
35
Screen 5.3.2.0: Login
36
5.3.2.1 Sign Up:
37
5.3.2.3 Sign In Window
38
5.3.2.4 SQL Server Window
39
5.3.2.5 View Group Window:
40
5.3.2.6 View Files Window:
41
5.3.2.7 Send Files Window:
42
5.3.2.8 After Deletion:
43
6.1 Introduction
Software Testing is a critical element of software quality assurance and
represents the ultimate review of specification, design and coding, Testing presents an
interesting anomaly for the software engineer.
This type of testing starts from upper level modules.Since the detailed
activities usually performed in the lower level routines are not provided stubs are
written.A stub is a module shell called by upper level module and that when reached
properly will return a message to the calling module indicating that proper interaction
occured.No attempt is made to verify the correctness of the lower level module.
44
Testing Strategies:
A Strategy for software testing integrates software test cases into a series of
well planned steps that result in the successful construction of software. Software
testing is a broader topic for what is referred to as Verification and Validation.
Verification refers to the set of activities that ensure that the software correctly
implements a specific function. Validation refers he set of activities that ensure that
the software that has been built is traceable to customer’s requirements
6.2.1 Unit Testing:
In this strategy some test cases are generated as input conditions that fully
execute all functional requirements for the program.This testing has been uses to find
errors in the following categories:
a) Incorrect or missing functions
b) Interface errors
c) Errors in data structure or external database access
d) Performance errors
e) Initialization and termination errors.
6.2.3 White Box Testing:
In this the test cases are generated on the logic of each module by drawing
flow graphs of that module and logical decisions are tested on all the cases.It has been
used to generate the test cases in the following cases:
• Guarantee that all independent paths have been executed.
• Execute all logical decision on their true and false sides.
• Execute all loops at their boundaries and within their operational bounds.
• Execute internal data structures to ensure their validity.
45
6.2.4 Integration Testing:
Modules integrated by moving down the program design hierarchy. Can use depth
first or breadth first top down integration
Verifies major control and decision points early in design process. Top-level
structure tested most. Depth first implementation allows a complete function to be
implemented, tested and demonstrated. Can do depth first implementation of critical
functions early. Top down integration forced (to some extent) by some development tools
in programs with graphical user interfaces.
Bottom-up Integration:
This method as the name suggests, begins construction and testing with atomic modules
i.e., modules at the lowest level. Because the modules are integrated in the bottom up
manner the processing required for the modules subordinate to a given level is always
available and the need for stubs is eliminated
46
6.2.8 Performance Testing:
47
The key agreement setting is performed in which there is no centralized
key server to maintain or distribute the group key. We show that one can use the
TGDH protocol to achieve such distributive and collaborative key agreement. To
reduce the rekeying complexity, we propose to use an interval-based approach to
carry out rekeying for multiple join and leave requests at the same time.
FUTURE ENHANCEMENT
48
Websites:
• http://en.wikipedia.org/wiki/Diffie-Hellman
• http://pajhome.org.uk/crypt/rsa/rsa.html
• http://java.sun.com/j2se/1.4.2/docs/guide/security/jce/JCERefGuide.
html
Books :
49