documentation for identity based secure distrbuted data storage schemes
1. Chapter-I
INTRODUCTION
1.1 OBJECTIVE:
The objective of this document is to present a detailed description of identity
based secure distributed data storage schemes. Secure distributed data storage can shift
the burden of maintaining a large number of files from the owner to proxy servers. Proxy
servers can convert encrypted files for the owner to encrypted files for the receiver
without the necessity of knowing the content of the original files. To provide
confidentiality and integrity of data outsourced this IBSDDS scheme was proposed.
Our schemes can capture the following properties: (1) The file owner can decide
the access permission independently without the help of the private key generator (PKG);
(2) For one query, a receiver can only access one file, instead of all files of the owner; (3)
Our schemes are secure against the collusion attacks, namely even if the receiver can
compromise the proxy servers, he cannot obtain the owner’s secret key. Although the
first scheme is only secure against the chosen plaintext attacks (CPA), the second scheme
is secure against the chosen cipher text attacks (CCA). To the best of our knowledge, it is
the first IBSDDS schemes where an access permissions is made by the owner for an
exact file and collusion attacks can be protected in the standard model.
1.2 PROBLEM STATEMENT:
Users are especially concerned on the confidentiality, integrity and query of the
outsourced files as cloud computing is a lot more complicated than the local data storage
systems, as the cloud is managed by an untrusted third party.
1
2. 1.3 EXISTING SYSTEM:
Cloud computing provides users with a convenient mechanism to manage their personal
files with the notion called database-as-a-service (DAS). In DAS schemes, a user can
outsource his encrypted files to untrusted proxy servers. Proxy servers can perform some
functions on the outsourced cipher texts without knowing anything about the original
files. Unfortunately, this technique has not been employed extensively. The main reason
lies in that users are especially concerned on the confidentiality, integrity and query of
the outsourced files as cloud computing is a lot more complicated than the local data
storage systems, as the cloud is managed by an untrusted third party. After outsourcing
the files to proxy servers, the user will remove them from his local machine. Therefore,
how to guarantee the outsourced files are not accessed by the unauthorized users and not
modified by proxy servers is an important problem that has been considered in the data
storage research community. Furthermore, how to guarantee that an authorized user can
query the outsourced files from proxy servers is another concern as the proxy server only
maintains the outsourced cipher texts. Consequently, research around these topics grows
significantly.
1.3.1. Disadvantages
· Users are especially concerned on the confidentiality, integrity and query of the
outsourced files as cloud computing is a lot more complicated than the local data
storage systems, as the cloud is managed by an untrusted third party.
· The outsoured files are not accessed by the unauthorized users and not modified
by proxy servers is an important problem that has been considered in the data
storage research community.
1.4 PROPOSED SYSTEM:
In this paper, we propose two identity-based secure distributed data storage (IBSDDS)
schemes in standard model where, for one query, the receiver can only access one of the
owner’s files, instead of all files. In other words, access permission (re-encryption key) is
bound not only to the identity of the receiver but also the file. The access permission can
2
3. be decided by the owner, instead of the trusted party (PKG). Furthermore, our schemes
are secure against the collusion attacks.
1.4.1 Advantages:
· It has two schemes of security, the first scheme is CPA secure, the second
scheme achieves CCA security.
· To the best of our knowledge, it is the first IBSDDS schemes where an access
permission is made by the owner for an exact file and collusion attacks can be
protected in the standard model.
· To achieve a stronger security and implement file based access control, the
owner must be online to authenticate requesters and also to generate access
permissions for them. Therefore, the owner in our schemes needs do more
computations than that in PRE schemes. Although PRE schemes can provide
the similar functionalities of our schemes when the owner only has one file,
these are not flexible and practical.
3
4. Chapter-II
SYSTEM ANALYSIS
2.1 LITERATURE SURVEY:
Atomic proxy crypto system where a semi-trusted proxy server can transfer a cipher
text of the original decryptor to a cipher text for the designated decryptor without
knowing plain text. It is used in e-mail forwarding.
Identity based crypto system introduced by shamir. It is a system where the public key
can be arbitrary string and secret key is issued by trusted third party.
Identity-based proxy encryption (IBPE) was proposed by Ivan and Dodis .
In these schemes, the master secret key which is used to extract secret keys for users is
split into 2 parts one is sent to proxy server other is sent to user.
· The user can decrypt cipher text with the help of proxy server, but these
schemes are not secure against collusion attacks.
· Identity- based proxy re-encryption proposed by green and ateniese. Where
proxy server can transfer a cipher text of original decryptor to cipher text of
designated decryptor after he gets a re-encryption key.
2.2 REQUIREMENTS SPECIFICATION:
2.2.1 Hardware specifications:
· Processor - Pentium –IV
· Speed - 1.1 GHz
· RAM - 1GB MB
· Hard Disk - 80 GB
4
5. 2.2.2 Software Specifications:
· Operating System : WindowsXP/7 /8
· Web Server : Tomcat 7.0
· Front End : HTML, Java, JSP
· Scripts : JavaScript.
· Server side Script : Java Server Pages.
· Database : My sql
· Database Connectivity : JDBC.
2.3 FEASIBILITY STUDY:
Introduction:
A feasibility analysis involves a detailed assessment of the need, value and
practicality of a p systems development... Feasibility analysis n forms the transparent
decisions at crucial points during the developmental process as we determine whether it
is operationally, economically and technically realistic to proceed with a particular course
of action.
Feasibility analysis can be used in each of the steps to assess the financial,
technical and operational capacity to proceed with particular activities.
Types of feasibility:
A feasibility analysis usually involves a thorough assessment of the
financial (value), technical (practicality), and operational (need) aspects of a proposal. In
systems development projects, business managers are primarily responsible for assessing
the operational feasibility of the system, and information technology (IT) analysts are
5
6. responsible for assessing technical feasibility. Both then work together to prepare a cost–
benefit analysis of the proposed system to determine its economic feasibility.
Operational feasibility:
A systems development project is likely to be operationally feasible if it
meets the 'needs' and expectations of the organization. User acceptance is an important
determinant of operational feasibility. It requires careful consideration of:
corporate culture;
staff resistance or receptivity to change;
management support for the new system;
the nature and level of user involvement in the development and implementation of the
system; direct and indirect impacts of the new system on work practices;
anticipated performance and outcomes of the new system compared with the existing
system;
training requirements and other change management strategies; and
‘pay back’ periods (ie trade-off between long-term organisational benefits and short-term
inefficiencies during system development and implementation).
Technical feasibility:
A systems development project may be regarded as technically feasible or
practical if the organization has the necessary expertise and infrastructure to develop,
install, operate and maintain the proposed system. Organizations will need to make this
assessment based on:
Knowledge of current and emerging technological solutions
6
7. Availability of technically qualified staff in-house for the duration of the project and
subsequent maintenance phase;
Availability of infrastructure in-house to support the development and maintenance of the
proposed system;
Where necessary, the financial and/or technical capacity to procure appropriate
infrastructure and expertise from outside;
Capacity of the proposed system to accommodate increasing levels of use over the
medium term;
The capacity of the proposed system to meet initial performance expectations and
accommodate new functionality over the medium term.
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.
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.
7
8. 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.
2.3.1 Functional and Non-Functional Requirements:
1. Functoinal Requirements:
a. Inputs:
Browsing and uploading of files..
b. Processing:
Cluster server: There are 3 cluster servers Cluster server1 stores files of server1.Cluster
server2 stores files of server2.cluster server3 stores files of server3.
Load server: Stores all files
Slip server cluster:
· Browses the file
· Selects the path
· Download the fie
Output: SIP user agent clients select file and location to download the file. To download
the selected file server will send file to the SIP user agent.
8
9. 2. Non Functional Requirements
Performance is measured in terms of the output provided by the application.
Requirement specification plays an important part in the analysis of a system. Only when
the requirement specifications are properly given, it is possible to design a system, which
will fit into required environment. It rests largely in the part of users of the existing
system to give the requirement specifications because they are the people who finally use
the system.
The requirement specification for any system can be broadly stated as given below:
· The system should be able to interface with the existing system.
· The system should be accurate.
· Te system should be better than existing system.
Portability: It should run on specified platforms successfully. To achieve this we should
test the product on all platforms before launching the product. If our project runs
successfully on different platforms then our system is portable in nature.
· Reliability: The system should perform its intended functions under
specified conditions. If our system satisfies all the specified conditions
then it is Reliable in nature.
· Reusability: The system should be extremely reusable as a whole or part.
Make the system modularize and make sure that modules are loosely
coupled. This project is having reusability nature because we can reuse
whole or part of this project on other systems.
· Robustness: The system on the whole should be robust enough to perform
well under different circumstances without any inconsistencies.
· Testability: The product of a given development phase should satisfy the
conditions imposed at the start of that phase.
9
10. · Usability: It should be perfect and comfortable for users to work.
· Security: The system is completely based on the security. This system
will provide security base on the password.
Chapter-III
SYSTEM DESIGN
Data Flow Diagram / Use Case Diagram / Flow Diagram:
The DFD is also called as bubble chart. It is a simple graphical formalism
that can be used to represent a system in terms of the input data to the system, various
processing carried out on these data, and the output data is generated by the system.
10
11. ADMIN
Yes No
Check
unauthorized user
End Process
Auditing Details
View User View Data
Registration Derails
View Detail s Of
Data No Of Changed Data
No Of Un Changed Data
11
12. Check
unauthorized user
Yes No
Upload Data
View Data
End Process
USER
Changed Data With Un Changed Data
Alert Messgae
12
13. Check
unauthorized user
Yes No
Views All User
Data
Unchanging Data
End Process
Auditor
Store
Changing Data
3.1 MODULES:
1. Data Storage Systems
2. File Systems.
3. Storage-based Intrusion Detection Systems.
4. Cryptographic File System.
13
14. 3.1.1 Module1: Data Storage Systems:
Data storage systems enable users to store their data to external proxy servers to enhance
the access and availability, and reduce the maintenance cost. Samarati and Vimercati.
Addressed the privacy issues in data utility, and pointed out the main research directions
in the protection of the externally stored data. Kher and Kim surveyed the data storage
systems comprehensively and classified them into three kinds based on their security
services: networked file systems (NFS), storage-based intrusion detection systems
(SBIDS) and cryptographic file systems (CFS).
3.1.2 Module 2: File Systems:
In these systems, proxy servers are assumed to be trusted. They authenticate receivers
and validate access permissions. The interactions between the proxy servers and receivers
are executed in a secure channel. Therefore, these systems cannot provide an end-to-end
data security, namely they cannot ensure the confidentiality of the data stored at the
proxy server In these schemes, a receiver authenticates himself to the proxy server using
his password. Then, the proxy sever passes the authentication result to the file owner. The
owner will make access permission according to the received information.
3.1.3 Module 3: Storage-based Intrusion Detection Systems:
In these systems, an intrusion detection scheme is embedded in proxy servers or the file
owner to detect the intruder’s behaviors, such as adding backdoors, inserting Trojan
horses and tampering with audit logs. These schemes can be classified into two types:
host-based system and network-based system. In the host-based systems, an intrusion
detection scheme is embedded in the host to detect the local intrusion actions. On the
contrary, in network-based systems, an intrusion detection scheme is embedded in the
proxy servers to detect the external intruder’s actions. The main advantage of these
14
15. systems is that proxy servers can still detect the intrusion action seven if the host is
compromised as the proxy server is independent from the host.
3.1.4 Module 4: Cryptographic File System:
In these systems, an end to-end security is provided by cryptographic protocols which are
executed by the file owner to prevent proxy servers and unauthorized users from
modifying and accessing the sensitive files. These systems can be divided into two types:
shared file system and non-shared system. In shared file systems the owner can share his
files with a group of users. Cryptographic techniques deployed in these systems are key
sharing, key agreement and key revocation. In non-shared file systems in order to share a
file with another user, the owner can compute an access key for the user using his secret
key. In these two systems, the integrity of the sensitive files is provided by digital
signature schemes and message authentication codes (MAC).
15
16. 3.2 DESIGN REPRESENTATION:
Definition:
UML is a general-purpose visual modeling language that is used to specify, visualize,
construct, and document the artifacts of the software system.
UML is a language:
It will provide vocabulary and rules for communications and function on conceptual and
physical representation. So it is modeling language.
UML Specifying:
Specifying means building models that are precise, unambiguous and complete. In
particular, the UML address the specification of all the important analysis, design and
implementation decisions that must be made in developing and displaying a software
intensive system.
UML Visualization:
The UML includes both graphical and textual representation. It makes easy to visualize
the system and for better understanding.
UML Constructing:
UML models can be directly connected to a variety of programming languages and it is
sufficiently expressive and free from any ambiguity to permit the direct execution of
models.
16
17. UML Documenting:
UML provides variety of documents in addition raw executable codes.
Figure 3.4 Modeling a System Architecture using views of UML
The use case view of a system encompasses the use cases that describe the behavior of
the system as seen by its end users, analysts, and testers.
The design view of a system encompasses the classes, interfaces, and collaborations that
form the vocabulary of the problem and its solution.
The process view of a system encompasses the threads and processes that form the
system's concurrency and synchronization mechanisms.
The implementation view of a system encompasses the components and files that are
used to assemble and release the physical system.
The deployment view of a system encompasses the nodes that form the system's hardware
topology on which the system executes.
17
18. Uses of UML :
The UML is intended primarily for software intensive systems. It has been used
effectively for such domain as
Enterprise Information System
Banking and Financial Services
Telecommunications
Transportation
Defense/Aerosp
Retails
Medical Electronics
Scientific Fields
Distributed Web
Building blocks of UML:
The vocabulary of the UML encompasses 3 kinds of building blocks
Things
Relationships
Diagrams
Things:
Things are the data abstractions that are first class citizens in a model. Things are of 4
types
Structural Things, Behavioral Things ,Grouping Things, An notational Things
Relationships:
Relationships tie the things together. Relationships in the UML are
Dependency, Association, Generalization, Specialization
UML Diagrams:
A diagram is the graphical presentation of a set of elements, most often rendered as a
connected graph of vertices (things) and arcs (relationships).
There are two types of diagrams, they are:
18
19. Structural and Behavioral Diagrams
Structural Diagrams:-
The UML‘s four structural diagrams exist to visualize, specify, construct and
document the static aspects of a system. ican View the static parts of a system using one
of the following diagrams. Structural diagrams consists of Class Diagram, Object
Diagram, Component Diagram, Deployment Diagram.
Behavioral Diagrams :
19
20. The UML’s five behavioral diagrams are used to visualize, specify, construct, and
document the dynamic aspects of a system. The UML’s behavioral diagrams are roughly
organized around the major ways which can model the dynamics of a system.
Behavioral diagrams consists of Use case Diagram, Sequence Diagram, Collaboration
Diagram, State chart Diagram, Activity Diagram.
UML Diagrams:
The Unified Modeling Language (UML) is a visual modeling language used to
specify, visualize, construct and document a software intensive system. The embedded
real-time software systems encountered in applications such as telecommunications,
school systems, aerospace, and defense typically tends to be large and extremely
complex. It is crucial in such systems that the software is designed with a sound
architecture. A good architecture not only simplifies construction of the initial system,
but also, readily accommodates changes forced by a steady stream of new requirements.
The UML represents a collection of best engineering practices that have proven
successful in the modeling of large and complex systems. The UML is a very important
part of developing objects oriented software and the software development process. The
UML uses mostly graphical notations to express the design of software projects. Using
the UML helps project teams communicate, explore potential designs, and validate the
architectural design of the software.
The primary goals in the design of the UML are: Provide users with a ready-to-use,
expressive visual modeling language so they can develop and exchange meaningful
models. Provide extensibility and specialization mechanisms to extend the core concepts.
Be independent of particular programming languages and development processes.
Provide a formal basis for understanding the modeling language. Support higher-level
development concepts such as collaborations, frameworks, patterns and components.
Integrate best practices.
20
21. Class Diagram:
UML Class diagram shows the static structure of the model. The class diagram is a
collection of static modeling elements, such as classes and their relationships, connected
as graph to each other and to their contents
Graphical Notation:
The elements on a Class diagram are classes and the relationships between them.
Class Classes are the building blocks in object-oriented
programming. A Class is depicted
using a rectangle divided into three sections.
The top section is the name of the Class. The
middle section defines the properties of the
Class. The bottom section lists the methods
of the class.
Association An Association is a generic relationship
between two classes, and is modeled by a line
connecting the two classes. This line can be
qualified with the type of relationship, and can
also feature multiplicity rules (e.g. one-to-one,
one-to-many, many-to-many) for the
relationship.
Composition If a class cannot exist by itself, and instead
must be a member of another class, then that
class has a Composition relationship with the
21
22. containing class. A Composition relationship
is indicated by a line with a filled diamond.
Dependency When a class uses another class, perhaps as a
member variable or a parameter, and so
"depends" on that class, a Dependency
relationship is formed. A Dependency
relationship is indicated by a dotted arrow.
Aggregation Aggregations indicate a whole-part
relationship, and are known as "has-a"
relationships. An Aggregation relationship is
indicated by a line with a hollow diamond.
Generalization A Generalization relationship is the equivalent
of an inheritance relationship in object-oriented
terms (an "is-a" relationship). A
Generalization relationship is indicated by an
arrow with a hollow arrowhead pointing to the
base, or "parent", class.
.
22
23. Use Case Diagram:
A use case diagram is a graph of actors, a set of use cases enclosed by a system
boundary, communication (participation) associations between the actors and users and
generalization among use cases. The use case model defines the outside (actors) and
inside (use case) of the system’s behavior
Graphical Notation The basic components of Use Case diagrams are the Actor, the
Use Case, and the Association.
Actor An Actor, as mentioned, is a user of the system, and
is depicted using a stick figure. The role of the user
is written beneath the icon. Actors are not limited to
humans. If a system communicates with another
application, and expects input or delivers output,
then that application can also be considered an
actor.
Use Case A Use Case is functionality provided by the system,
Use Cases are depicted with an ellipse. The name of
the use case is written within the ellipse.
Association Associations are used to link Actors with Use
Cases, and indicate that an Actor participates in the
Use Case in some form. Associations are depicted
by a line connecting the Actor and the Use Case.
· Behind each Use Case is a series of actions to achieve the proper functionality, as
well as alternate paths for instances where validation fails, or errors occur. These
actions can be further defined in a Use Case description.
23
24. Sequence Diagram:
Sequence diagram are an easy and intuitive way of describing the behavior of a
system by viewing the interaction between the system and its environment. A Sequence
diagram shows an interaction arranged in a time sequence. A sequence diagram has two
dimensions: vertical dimension represents time; the horizontal Dimension represents
different objects. The vertical line is called is the object’s life line. The lifeline represents
the object’s existence during the interaction.
Graphical Notation
In a Sequence diagram, classes and actors are listed as columns, with
vertical lifelines indicating the lifetime of the object over time.
Object Objects are instances of classes, and are arranged
horizontally. The pictorial representation for an Object is a
class (a rectangle) with the name prefixed by the object
name (optional) and a semi-colon.
Actor Actors can also communicate with objects, so they too can
be listed as a column. An Actor is modeled using the
ubiquitous symbol, the stick figure.
Lifeline The Lifeline identifies the existence of the object over
time. The notation for a Lifeline is a vertical dotted line
extending from an object.
24
25. Activation Activations, modeled as rectangular boxes on the lifeline,
indicate when the object is performing an action.
Message Messages, modeled as horizontal arrows between
Activations, indicate the communications between objects.
Collaboration Diagram:
Like the other Behavioral diagrams, Collaboration diagrams model the
interactions between objects. This type of diagram is a cross between an object diagram
and a sequence diagram. Unlike the Sequence diagram, which models the interaction in a
column and row type format, the Collaboration diagram uses the free-form arrangement
of objects as found in an Object diagram. This makes it easier to see all interactions
involving a particular object.
In order to maintain the ordering of messages in such a free-form diagram,
messages are labeled with a chronological number. Reading a Collaboration diagram
involves starting at message 1.0, and following the messages from object to object.
Graphical Notation:
Object Objects are instances of classes, and are one of the entity types
that can be involved in communications. An Object is drawn as
a rectangular box, with the class name inside prefixed with the
object name (optional) and a semi-colon.
Actor Actors can also communicate with Objects, so they too can be
listed on Collaboration diagrams. An Actor is depicted by a
stick figure.
25
26. Message Messages, modeled as arrows between objects, and labeled
with an ordering number, indicate the communications between
objects.
ACTIVITY DIAGRAM:
The activities that occur within a use case or within an objects behavior typically
occur in a sequence .an activity diagram is designed to be simplified look at what
happens during an operations or a process.
Each activity is represented by a rounded rectangle the processing within an
activity goes to compilation and than an automatic transmission to the next activity
occurs. An arrow represents the transition from one activity to the next. The activity
diagram has a starting point represented by a filled in circle, and an endpoint represented
by a bull’s eye. An activity diagram describes a system in terms of activities. Activities
are the state that represents the execution of a set of operations. These are similar to flow
chart diagram and dataflow.
COMPONENT DIAGRAM
A component diagram shows the organization and dependencies among a set of
component diagrams address the static implementation view of a system. They are related
to class diagrams in that a component typically maps to one or more classes, interfaces or
collaborations.
3.2.1 Class Diagram:
Class diagrams are widely used to describe the types of objects in a system and their
relationships. Class diagrams model class structure and contents using design elements
such as classes, packages and objects. Class diagrams describe three different
perspectives when designing a system, conceptual, specification, and implementation.
26
27. These perspectives become evident as the diagram is created and help solidify the design.
Class diagrams are arguably the most used UML diagram type. It is the main building
block of any object oriented solution. It shows the classes in a system, attributes and
operations of each class and the relationship between each class. In most modeling tools a
class has three parts, name at the top, attributes in the middle and operations or methods
at the bottom. In large systems with many classes related classes are grouped together to
to create class diagrams. Different relationships between diagrams are show by different
types of Arrows. Below is a image of a class diagram. Follow the scenario. The processes
are represented vertically and interactions are show as arrows. This article explains the
purpose and the basics of Sequence diagrams.
Figure 3.3: Class diagram
3.2.2 Use case Diagram:
A use case is a set of scenarios that describing an interaction between a user and a
system. A use case diagram displays the relationship among actors and use cases. The
two main components of a use case diagram are use cases and actors.
27
28. An actor is represents a user or another system that will interact with the system
you are modeling. A use case is an external view of the system that represents some
action the user might perform in order to complete a task.
Contents:
· Use cases
· Actors
· Dependency, Generalization, and association relationships
· System boundary
Fig 3.4: Use-case Diagram
3.3.3 Sequence Diagram:
Sequence diagrams in UML shows how object interact with each other and the order
those interactions occur. It’s important to note that they show the interactions for a
particular user. A Sequence diagram shows an interaction arranged in a time sequence. A
28
29. sequence diagram has two dimensions: vertical dimension represents time; the horizontal
Dimension represents different objects. The vertical line is called is the object’s life line.
The lifeline represents the object’s existence during the interaction.
Figure 3.5 Sequence diagram
3.3.4 Activity Diagram:
The activities that occur within a use case or within an objects behavior typically
occur in a sequence .an activity diagram is designed to be simplified look at what
happens during an operations or a process.
29
30. Each activity is represented by a rounded rectangle the processing within an
activity goes to compilation and than an automatic transmission to the next activity
occurs. An arrow represents the transition from one activity to the next. The activity
diagram has a starting point represented by a filled in circle, and an endpoint represented
by a bull’s eye. An activity diagram describes a system in terms of activities. Activities
are the state that represents the execution of a set of operations. These are similar to flow
chart diagram and dataflow.
Activity diagrams describe the workflow behavior of a system. Activity diagrams
are similar to state diagrams because activities are the state of doing something. The
diagrams describe the state of activities by showing the sequence of activities performed.
Activity diagrams can show activities that are conditional or parallel.
Figure 3.6 Activity diagram for owner
30
32. Chapter-IV
IMPLEMETATION
4.1 TECHNOLOGIES:
4.1.1 Introduction To Java:
Java has been around since 1991, developed by a small team of Sun Microsystems
developers in a project originally called the Green project. The intent of the project was
to develop a platform-independent software technology that would be used in the
consumer electronics industry. The language that the team created was originally called
Oak.
The first implementation of Oak was in a PDA-type device called Star Seven (*7)
that consisted of the Oak language, an operating system called GreenOS, a user interface,
and hardware. The name *7 was derived from the telephone sequence that was used in
the team's office and that was dialed in order to answer any ringing telephone from any
other phone in the office.
Around the time the First Person project was floundering in consumer electronics,
a new craze was gaining momentum in America; the craze was called "Web surfing." The
World Wide Web, a name applied to the Internet's millions of linked HTML documents
was suddenly becoming popular for use by the masses. The reason for this was the
introduction of a graphical Web browser called Mosaic, developed by ncSA. The browser
simplified Web browsing by combining text and graphics into a single interface to
eliminate the need for users to learn many confusing UNIX and DOS commands.
Navigating around the Web was much easier using Mosaic.
It has only been since 1994 that Oak technology has been applied to the Web. In
1994, two Sun developers created the first version of Hot Java, and then called Web
Runner, which is a graphical browser for the Web that exists today. The browser was
coded entirely in the Oak language, by this time called Java. Soon after, the Java
compiler was rewritten in the Java language from its original C code, thus proving that
Java could be used effectively as an application language. Sun introduced Java in May
1995 at the Sun World 95 convention.
32
33. Web surfing has become an enormously popular practice among millions of
computer users. Until Java, however, the content of information on the Internet has been
a bland series of HTML documents. Web users are hungry for applications that are
interactive, that users can execute no matter what hardware or software platform they are
using, and that travel across heterogeneous networks and do not spread viruses to their
computers. Java can create such applications.
The Java programming language is a high-level language that can be
characterized by all of the following buzzwords:
· Simple
· Architecture neutral
· Object oriented
· Portable
· Distributed
· High performance
· Interpreted
· Multithreaded
· Robust
· Dynamic
· Secure
With most programming languages, you either compile or interpret a program so
that you can run it on your computer. The Java programming language is unusual in that
a program is both compiled and interpreted. With the compiler, first you translate a
program into an intermediate language called Java byte codes —the platform-independent
codes interpreted by the interpreter on the Java platform. The interpreter
parses and runs each Java byte code instruction on the computer. Compilation happens
just once; interpretation occurs each time the program is executed. The following figure
illustrates how this works.
33
34. Figure 4.1: Working Of Java
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 development tool or a
Web browser that can run applets, is an implementation of the Java VM. Java byte codes
help make “write once, run anywhere” possible. You can compile your 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. That means that as long as a computer has a Java VM,
the same program written in the Java programming language can run on Windows 2000,
a Solaris workstation, or on an iMac.
The Java Platform:
A platform is the hardware or software environment in which a program runs.
We’ve already mentioned some of the most popular platforms like Windows 2000,
Linux, Solaris, and MacOS. Most platforms can be described as a combination of the
operating system and hardware. 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.
The Java platform has two components:
The java virtual machine (Java VM)
The java application programming interface (Java API)
You’ve already been introduced to the Java VM. It’s the base for the Java
platform and is ported onto various hardware-based platforms.
The Java API is a large collection of ready-made software components that
provide many useful capabilities, such as graphical user interface (GUI) widgets.
The Java API is grouped into libraries of related classes and interfaces; these
libraries are known as packages. The next section, What Can Java Technology Do?,
highlights what functionality some of the packages in the Java API provide.
34
35. The following figure depicts a program that’s running on the Java platform. As
the figure shows, the Java API and the virtual machine insulate the program from the
hardware.
Figure 4.2: The Java Platform
Native code is code that after you compile it, the compiled code runs on a specific
hardware platform. As a platform-independent environment, the Java platform can be a
bit slower than native code. However, smart compilers, well-tuned interpreters, and just-in-
time byte code compilers can bring performance close to that of native code without
threatening portability.
Working Of Java:
For those who are new to object-oriented programming, the concept of a class will
be new to you. Simplistically, a class is the definition for a segment of code that can
contain both data and functions. When the interpreter executes a class, it looks for a
particular method by the name of main, which will sound familiar to C programmers.
The main method is passed as a parameter an array of strings (similar to the argv[] of C),
and is declared as a static method.
To output text from the program, execute the println method of System.Out,
which is java’s output stream. UNIX users will appreciate the theory behind such a
stream, as it is actually standard output. For those who are instead used to the Wintel
platform, it will write the string passed to it to the user’s program.
35
36. 4.1.2 Swing:
Introduction To Swing:
Swing contains all the components. It’s a big library, but it’s designed to have
appropriate complexity for the task at hand – if something is simple, you don’t have to
write much code but as you try to do more your code becomes increasingly complex.
This means an easy entry point, but you’ve got the power if you need it.
Swing has great depth. This section does not attempt to be comprehensive, but
instead introduces the power and simplicity of Swing to get you started using the library.
Please be aware that what you see here is intended to be simple. If you need to do more,
then Swing can probably give you what you want if you’re willing to do the research by
hunting through the online documentation from Sun.
Benefits Of Swing:
Swing components are Beans, so they can be used in any development
environment that supports Beans. Swing provides a full set of UI components. For speed,
all the components are lightweight and Swing is written entirely in Java for portability.
Swing could be called “orthogonality of use;” that is, once you pick up the
general ideas about the library you can apply them everywhere. Primarily because of the
Beans naming conventions.
Keyboard navigation is automatic – you can use a Swing application without the
mouse, but you don’t have to do any extra programming. Scrolling support is effortless –
you simply wrap your component in a JScrollPane as you add it to your form. Other
features such as tool tips typically require a single line of code to implement.
Swing also supports something called “pluggable look and feel,” which means
that the appearance of the UI can be dynamically changed to suit the expectations of
users working under different platforms and operating systems. It’s even possible to
invent your own look and feel.
36
47. <tr>
<td>
Email Id:
</td>
<td>
<input type="email" name="pwd" value="<%=email1%>" />
</td>
</tr>
<tr>
<td>
Password
:</td>
<td>
<input type="password" name="email" />
<br />
</td>
</tr>
<tr>
<td>
<input type="submit" value="submit" />
<input type="reset" value="Reset"/>
</td>
</tr>
</table>
</form>
<% } %>
<center>
<p>Note: Please make sure your details are correct before submitting form and that all
fields marked with * are completed!.</p>
</center>
</body> </html>
47
48. Chapter-V
TESTING
TESTING
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.
A successful test is one that uncovers an as-yet- undiscovered error. System testing is the
stage of implementation, which is aimed at ensuring that the system works accurately and
efficiently as expected before live operation commences. It verifies that the whole set of
programs hang together. System testing requires a test consists of several key activities
and steps for run program, string, system and is important in adopting a successful new
system. This is the last chance to detect and correct errors before the system is installed
for user acceptance testing.
The software testing process commences once the program is created and the
documentation and related data structures are designed. Software testing is essential for
correcting errors. Otherwise the program or the project is not said to be complete.
Software testing is the critical element of software quality assurance and represents the
ultimate the review of specification design and coding. Testing is the process of
executing the program with the intent of finding the error. A good test case design is one
that as a probability of finding a yet undiscovered error. A successful test is one that
uncovers a yet undiscovered error. Any engineering product can be tested in one of the
two ways:
The purpose of testing is to discover errors. Testing is the process of trying to
discover every conceivable fault or weakness in a work product. It provides a way to
check the functionality of components, sub assemblies, assemblies and/or a finished
product It is the process of exercising software with the intent of ensuring that the
Software system meets its requirements and user expectations and does not fail in an
unacceptable manner. There are various types of test. Each test type addresses a specific
testing requirement.
48
49. TYPES OF TESTS
Unit testing
Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All decision
branches and internal code flow should be validated. It is the testing of individual
software units of the application .it is done after the completion of an individual unit
before integration. This is a structural testing, that relies on knowledge of its construction
and is invasive. Unit tests perform basic tests at component level and test a specific
business process, application, and/or system configuration. Unit tests ensure that each
unique path of a business process performs accurately to the documented specifications
and contains clearly defined inputs and expected results.
Integration testing
Integration tests are designed to test integrated software components to determine
if they actually run as one program. Testing is event driven and is more concerned with
the basic outcome of screens or fields. Integration tests demonstrate that although the
components were individually satisfaction, as shown by successfully unit testing, the
combination of components is correct and consistent. Integration testing is specifically
aimed at exposing the problems that arise from the combination of components.
Functional test
Functional tests provide systematic demonstrations that functions tested are
available as specified by the business and technical requirements, system documentation,
and user manuals.
Functional testing is centered on the following items:
Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be rejected.
Functions : identified functions must be exercised.
Output : identified classes of application outputs must be exercised.
Systems/Procedures : interfacing systems or procedures must be invoked.
49
50. Organization and preparation of functional tests is focused on requirements, key
functions, or special test cases. In addition, systematic coverage pertaining to identify
Business process flows; data fields, predefined processes, and successive processes must
be considered for testing. Before functional testing is complete, additional tests are
identified and the effective value of current tests is determined.
System Test
System testing ensures that the entire integrated software system meets requirements.
It tests a configuration to ensure known and predictable results. An example of system
testing is the configuration oriented system integration test. System testing is based on
process descriptions and flows, emphasizing pre-driven process links and integration
points.
White Box Testing
White Box Testing is a testing in which in which the software tester has knowledge
of the inner workings, structure and language of the software, or at least its purpose. It is
purpose. It is used to test areas that cannot be reached from a black box level.
Black Box Testing
Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as most other
kinds of tests, must be written from a definitive source document, such as specification or
requirements document, such as specification or requirements document. It is a testing in
which the software under test is treated, as a black box .you cannot “see” into it. The test
provides inputs and responds to outputs without considering how the software works.
5.1 Unit Testing:
Unit testing is usually conducted as part of a combined code and unit test phase of
the software lifecycle, although it is not uncommon for coding and unit testing to be
conducted as two distinct phases.
Test objectives
· All field entries must work properly.
· Pages must be activated from the identified link.
· The entry screen, messages and responses must not be delayed.
50
51. Features to be tested
· Verify that the entries are of the correct format
· No duplicate entries should be allowed
· All links should take the user to the correct page.
5.2 Integration Testing
Software integration testing is the incremental integration testing of two or more
integrated software components on a single platform to produce failures caused by
interface defects.
The task of the integration test is to check that components or software
applications, e.g. components in a software system or – one step up – software
applications at the company level – interact without error.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
5.3 Acceptance Testing
User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
51
69. Chapter VII
CONCLUSION
Distributed data storage schemes provide the users with convenience to outsource their
files to untrusted proxy servers. Identity-based secure distributed data storage (IBSDDS)
schemes are a special kind of distributed data storage schemes where users are identified
by their identities and can communicate without the need of verifying the public key
certificates. In this paper, we proposed two new IBSDDS schemes in standard model
where, for one query, the receiver can only access one file, instead of all files.
Furthermore, the access permission can be made by the owner, instead of the trusted
party. Notably, our schemes are secure against the collusion attacks. The first scheme is
CPA secure, while the second one is CCA secure.
69
70. Chapter-VIII
Future enhancements
Our future enhancements for identity-based secure distributed data storage
(IBSDDS) are to allow user to upload PDF files and excel sheets. Future research will
include advancements like uploading the pictures, images, videos in encrypted format
for user convenience.
70
71. BIBLIOGRAPHY
PUBLICATIONS:
1.H. Hacig¨ um¨ us, B. R. Iyer, C. Li, and S. Mehrotra, “Executing SQL over encrypted
data in the database-service-provider model,” in Proceedings: SIGMOD Conference -
SIGMOD’02 (M. J. Franklin, B. Moon, and A. Ailamaki, eds.), vol. 2002, (Madison,
Wisconsin, USA), pp. 216–227, ACM, Jun. 2002. [2]
2. L. Bouganim and P. Pucheral, “Chip-secured data access: Confi- dential data on
untrusted servers,” in Proc. International Conference on Very Large Data Bases -
VLDB’02, (Hong Kong, China), pp. 131– 142, Morgan Kaufmann, Aug. 2002.
3. U. Maheshwari, R. Vingralek, and W. Shapiro, “How to build a trusted database
system on untrusted storage,” in Proc. Symposium on Operating System Design and
Implementation - OSDI’00, (San Diego, California, USA), pp. 135–150, USENIX, Oct.
2000.
4. A. Ivan and Y. Dodis, “Proxy cryptography revisited,” in Proc. Network and
Distributed System Security Symposium - NDSS’03, (San Diego, California, USA), pp.
1–20, The Internet Society, Feb. 2003.
A. Shamir, “Identity-based cryptosystems and signature scheme,” in Proc. Advances in
Cryptology - CRYPTO’84 (G. R. Blakley and D. Chaum, eds.), vol. 196 of Lecture Notes
in Computer Science, (Santa Barbara, California, USA), pp. 47–53, Springer, Aug. 1984.
5. D. Boneh and M. Franklin, “Identity-based encryption from the weil pairing,” in Proc.
Advances in Cryptology - CRYPTO’01 (J. Kil- ian, ed.), vol. 2139 of Lecture Notes in
Computer Science, (Santa Barbara, California, USA), pp. 213–229, Springer, Aug. 2001.
6. M. Green and G. Ateniese, “Identity-based proxy re-encryption,” in Proc. Applied
Cryptography and Network Security - ACNS’07 (J. Katz and M. Yung, eds.), vol. 4521
of Lecture Notes in Computer Science, (Zhuhai, China), pp. 288–306, Springer, Jun.
2007.
7. Jinguang Han, Student Member, IEEE, Willy Susilo, Senior Member, IEEE, and Yi
Mu, Senior Member, IEEE-“Identity-Based Secure Distributed Data Storage Schemes”-
IEEE TRANSACTIONS ON COMPUTERS, 2013.
71
72. 8.L. Wang, L. Wang, M. Mambo, and E. Okamoto, “New identity- based proxy re-encryption
schemes to prevent collusion attacks,” in Proc. Pairing-Based Cryptography -
Pairing’10 (M. Joye, A. Miyaji, and A. Otsuka, eds.), vol. 6487 of Lecture Notes in
Computer Science, (Yamanaka Hot Spring, Japan), pp. 327–346, Springer, Dec. 2010.
L. Wang, L. Wang, M. Mambo, and E. Okamoto, “Identity- based proxy cryptosystems
with revocability and hierarchical confidentialities,” in Proc. International Conference on
Information and Communications Security - ICICS’10 (M. Soriano, S. Qing, and J. L´
opez, eds.), vol. 6476 of Lecture Notes in Computer Science, (Barcelona, Spain), pp.
383–440, Springer, Dec. 2010.
9. B. Waters, “Efficient identity-based encryption without ran- dom oracles,” in Proc.
Advances in Cryptology - EUROCRYPT’05 (R. Cramer, ed.), vol. 3494 of Lecture Notes
in Computer Science, (Aarhus, Denmark), pp. 114–127, Springer, May 2005.
10. R. Canetti, S. Halevi, and J. Katz, “Chosen-ciphertext security from identity-based
encryption,” in Proc. Advances in Cryptology - EUROCRYPT’04 (C. Cachin and J.
Camenisch, eds.), vol. 3027 of Lecture Notes in Computer Science, (Interlaken,
Switzerland), pp. 207–222, Springer, May 2004.
11.D. Boneh, C. Gentry, and B. Waters, “Collusion resistant broadcast encryption with
short ciphertexts and private keys,” in Proc. Advances in Cryptology - Crypto’05 (V.
Shoup, ed.), vol. 3621 of Lecture Notes in Computer Science, (Santa Barbara, California,
USA), pp. 258–275, Springer, Aug. 2005.
Web sites referred:
http://www.java.sun.com
http://www.roseindia.com
72