SlideShare a Scribd company logo
1 of 73
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
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
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
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
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
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
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
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
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
· 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
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
Check 
unauthorized user 
Yes No 
Upload Data 
View Data 
End Process 
USER 
Changed Data With Un Changed Data 
Alert Messgae 
12
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Figure 3.7: Activity diagram for user 
31
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
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
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
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
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
4.2 SAMPLE CODE: 
<%-- Document : accept Created on : Dec 7, 2013, 11:06:47 AM Author : Thanu--%> 
<%@page import="java.sql.*"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title> 
JSP Page 
</title> 
<style> 
</style> 
<link rel='stylesheet' type='text/css' href='styles.css' /> 
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'> 
</script> 
</head> 
<body bgcolor="#BDB76B"> 
<table align="center"> 
<tr> 
<td align="center"> 
<img src="images/3_1.jpg" hight="500" width="900" > 
</td> 
</table> 
<div id='cssmenu'> 
<ul> 
<li class='active'> 
<a href='index.jsp'> 
<span>Home</span> 
</a> 
</li> 
37
<li> 
<a href='login.jsp'> 
<span> 
Login 
</span> 
</a> 
</li> 
<li> 
<a href=''> 
<span> 
Server 
</span> 
</a> 
</li> 
<li class='last'> 
<a href=''> 
<span> 
Status</span> 
</a> 
</li> 
<li class='last'> 
<a href='index.jsp'> 
<span> 
logout 
</span> 
</a> 
</li> 
</ul> 
</div> 
<h3> 
<center> 
38
<font color="black"> Identity Based Secure Distributed Data Storage Schemes 
</h3> 
</center> 
<% String name=(String)session.getAttribute("id");%> 
<center> 
<h2>Welcome To Proxy_Server: 
<%=name%> 
</h2> 
</center> 
<% 
String id=request.getQueryString(); 
Class.forName("com.mysql.jdbc.Driver"); 
Connection con1 = 
DriverManager.getConnection("jdbc:mysql://localhost:3306/identity","root",""); 
Statement st1= con1.createStatement(); 
ResultSet rs=st1.executeQuery("select * from server where uid='"+id+"'"); 
while(rs.next()) 
{ 
String email=rs.getString(3); 
session.setAttribute("email1", email); 
Class.forName("com.mysql.jdbc.Driver"); 
Connection con = 
DriverManager.getConnection("jdbc:mysql://localhost:3306/identity","root",""); 
Statement st= con.createStatement(); 
int x=st.executeUpdate("update server set status='Activate' where uid='"+id+"'"); 
if(x==1) 
{ 
response.sendRedirect("proxycon1.jsp?Message=Success"); 
} 
else 
{ 
39
response.sendRedirect("areq.jsp?Message=Failed"); 
} 
} 
%> 
</body> 
</html> 
<%--Document : areqCreated on : Dec 7, 2013, 10:50:46 AMAuthor : Thanu--%> 
<%@page import="java.sql.*"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>JSP Page 
</title> 
<style> 
</style> 
<link rel='stylesheet' type='text/css' href='styles.css' /> 
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'> 
</script> 
</head> 
<body bgcolor="#BDB76B"> 
<table align="center"> 
<tr> 
<td align="center"> 
<img src="images/3_1.jpg" hight="500" width="900" > 
</td> 
</table> 
<div id='cssmenu'> 
<ul> 
<li class='active'> 
40
<a href='index.jsp'> 
<span>Home 
</span> 
</a> 
</li> 
<li> 
<a href='login.jsp'> 
<span> 
Login 
</span> 
</a> 
</li> 
<li> 
<a href=''> 
<span> 
Server 
</span> 
</a> 
</li> 
<li class='last'> 
<a href=''> 
<span> 
Status 
</span> 
</a> 
</li> 
<li class='last'> 
<a href='index.jsp'> 
<span> 
logout 
</span> 
41
</a> 
</li> 
</ul> 
</div> 
<h3> 
<center> 
<font color="black"> Identity Based Secure Distributed Data Storage Schemes 
</h3> 
</center> 
<% String name=(String)session.getAttribute("id");%> 
<center> <h2>Welcome To Proxy_Server:<%=name%> 
</h2> 
</center> 
<% 
Class.forName("com.mysql.jdbc.Driver"); 
Connection 
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/identity","root",""); 
Statement st= con.createStatement(); 
ResultSet rs=st.executeQuery("select * from server "); 
%> 
<table align="center" border="1" bordercolor="black"> 
<th> 
User Id 
</th> 
<th> 
User Name 
</th> 
<th> 
Email Id 
</th> 
<th> 
42
Status 
</th> 
<th> 
Authentication 
</th> 
<% 
while(rs.next()) 
{ 
String a=rs.getString(1); 
String b=rs.getString(2); 
String c=rs.getString(3); 
String d=rs.getString(5); 
%> 
<tr> 
<td> 
<%=a%> 
</td> 
<td> 
<%=b%> 
</td> 
<td> 
<%=c%> </td> 
<td> <%=d%> </td> 
<td> 
<a href="accept.jsp?<%=a%>">Accept</a> 
</td> 
</tr> 
<% } %> 
</table> 
</body> 
</html> 
43
<%-- 
Document : authproxy 
Created on : Dec 5, 2013, 5:29:55 PM 
Author : Thanu 
--%> 
<%@page import="java.sql.*"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title> 
JSP Page 
</title> 
<style> 
</style> 
<link rel='stylesheet' type='text/css' href='styles.css' /> 
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'> 
</script> 
</head> 
<body bgcolor="#BDB76B"> 
<table align="center"> 
<tr> 
<td align="center"> 
<img src="images/3_1.jpg" hight="500" width="900" > 
</td> 
</table> 
<div id='cssmenu'> 
<ul> 
<li class='active'> 
<a href='index.jsp'> 
44
<span> 
Home 
</span> 
</a> 
</li> 
<li> 
<a href='login.jsp'> 
<span> 
Login 
</span> 
</a> 
</li> 
<li> 
<a href=''> 
<span>Server 
</span> 
</a> 
</li> 
<li class='last'> 
<a href=''> 
<span> 
Status 
</span> 
</a> 
</li> 
<li class='last'> 
<a href='index.jsp'> 
<span> 
Logout 
</span> 
</a> 
45
</li> 
</ul> 
</div> 
<h3> 
<center> 
<font color="black"> Identity Based Secure Distributed Data Storage Schemes</h3> 
</center> 
<% 
String name=(String)session.getAttribute("id");%> 
<center> <h2>Welcome To Proxy_Server:<%=name%></h2></center> 
<% 
String email=(String) session.getAttribute("email"); 
Class.forName("com.mysql.jdbc.Driver"); 
Connection 
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/identity","root",""); 
Statement st=con.createStatement(); 
ResultSet rs=st.executeQuery("select * from filereg where email='"+email+"'"); 
while(rs.next()) 
{ 
String email1=rs.getString(6); 
String uid=rs.getString(1); 
%> 
<form method="post" action="proxycon.jsp"> 
<table align="center"> 
<tr> 
<td>User id:</td> 
<td><input type="username" name="uid" value="<%=uid%>"/></td></tr> 
<tr><td>Username:</td> 
<td><input type="username" name="username" value="<%=name%>"/> 
</td> 
</tr> 
46
<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" /> &nbsp;&nbsp; 
<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
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
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
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
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
Chapter-VI 
RESULTS 
Screen shot 1: welcome page 
52
53
Screen shot 2: Registration page 
54
Screenshot 3: Login page 
55
Screen shot 4: Choosing a file from system 
56
Screen shot 5: uploading file 
57
Screen shot 6: login page for proxy 
58
Screenshot 7: Proxy server file details (providing key to owner file) 
59
Screenshot 8: Login page for user 
60
Screenshot 9: Menu page for user(after login) 
61
Screen shot 10: Proxy server user authentication page 
62
Screen shot 11:User enter’s the random key 
63
Screen shot 12: User chooses a file to view 
64
Screen shot 13:Proxy server asks for password ( to view file) 
65
Screen shot 14: File is accessed in encrypted format 
66
Screen shot 15:Proxy server asks for password(to decrypt file). 
67
Screen shot 16 : Decrypted File is accessed to user. 
68
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
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
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
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
73

More Related Content

What's hot

Cued click point image based kerberos authentication protocol
Cued click point image based kerberos authentication protocolCued click point image based kerberos authentication protocol
Cued click point image based kerberos authentication protocolIAEME Publication
 
iaetsd Robots in oil and gas refineries
iaetsd Robots in oil and gas refineriesiaetsd Robots in oil and gas refineries
iaetsd Robots in oil and gas refineriesIaetsd Iaetsd
 
Identity based distributed provable data possession in multi-cloud storage
Identity based distributed provable data possession in multi-cloud storageIdentity based distributed provable data possession in multi-cloud storage
Identity based distributed provable data possession in multi-cloud storagePapitha Velumani
 
A Review on Key-Aggregate Cryptosystem for Climbable Knowledge Sharing in Clo...
A Review on Key-Aggregate Cryptosystem for Climbable Knowledge Sharing in Clo...A Review on Key-Aggregate Cryptosystem for Climbable Knowledge Sharing in Clo...
A Review on Key-Aggregate Cryptosystem for Climbable Knowledge Sharing in Clo...Editor IJCATR
 
Authentication Mechanisms For Signature Based Cryptography By Using Hierarchi...
Authentication Mechanisms For Signature Based Cryptography By Using Hierarchi...Authentication Mechanisms For Signature Based Cryptography By Using Hierarchi...
Authentication Mechanisms For Signature Based Cryptography By Using Hierarchi...Editor IJMTER
 
CONTROL CLOUD DATA ACCESS PRIVILEGE AND ANONYMITY WITH FULLY ANONYMOUS ATTRIB...
CONTROL CLOUD DATA ACCESS PRIVILEGE AND ANONYMITY WITH FULLY ANONYMOUS ATTRIB...CONTROL CLOUD DATA ACCESS PRIVILEGE AND ANONYMITY WITH FULLY ANONYMOUS ATTRIB...
CONTROL CLOUD DATA ACCESS PRIVILEGE AND ANONYMITY WITH FULLY ANONYMOUS ATTRIB...Shakas Technologies
 
Identity based encryption with cloud revocation authority and its applications
Identity based encryption with cloud revocation authority and its applicationsIdentity based encryption with cloud revocation authority and its applications
Identity based encryption with cloud revocation authority and its applicationsShakas Technologies
 
Control cloud data access privilege and anonymity with fully anonymous attrib...
Control cloud data access privilege and anonymity with fully anonymous attrib...Control cloud data access privilege and anonymity with fully anonymous attrib...
Control cloud data access privilege and anonymity with fully anonymous attrib...Pvrtechnologies Nellore
 
Attribute Based Encryption with Privacy Preserving In Clouds
Attribute Based Encryption with Privacy Preserving In Clouds Attribute Based Encryption with Privacy Preserving In Clouds
Attribute Based Encryption with Privacy Preserving In Clouds Swathi Rampur
 
Secure Data Sharing in Cloud (SDSC)
Secure Data Sharing in Cloud (SDSC)Secure Data Sharing in Cloud (SDSC)
Secure Data Sharing in Cloud (SDSC)Jishnu Pradeep
 
A Survey on Access Control Mechanisms using Attribute Based Encryption in cloud
A Survey on Access Control Mechanisms using Attribute Based Encryption in cloudA Survey on Access Control Mechanisms using Attribute Based Encryption in cloud
A Survey on Access Control Mechanisms using Attribute Based Encryption in cloudijsrd.com
 
IRJET- Privacy Preserving and Proficient Identity Search Techniques for C...
IRJET-  	  Privacy Preserving and Proficient Identity Search Techniques for C...IRJET-  	  Privacy Preserving and Proficient Identity Search Techniques for C...
IRJET- Privacy Preserving and Proficient Identity Search Techniques for C...IRJET Journal
 
Enhanced Security Through Token
Enhanced Security Through TokenEnhanced Security Through Token
Enhanced Security Through TokenIRJET Journal
 
766 a secure-data-sharing-in-cloud-storage-with-independent-key-generation-ce...
766 a secure-data-sharing-in-cloud-storage-with-independent-key-generation-ce...766 a secure-data-sharing-in-cloud-storage-with-independent-key-generation-ce...
766 a secure-data-sharing-in-cloud-storage-with-independent-key-generation-ce...revathirram
 
Secure Redundant Data Avoidance over Multi-Cloud Architecture.
Secure Redundant Data Avoidance over Multi-Cloud Architecture. Secure Redundant Data Avoidance over Multi-Cloud Architecture.
Secure Redundant Data Avoidance over Multi-Cloud Architecture. IJCERT JOURNAL
 
Secret keys and the packets transportation for privacy data forwarding method...
Secret keys and the packets transportation for privacy data forwarding method...Secret keys and the packets transportation for privacy data forwarding method...
Secret keys and the packets transportation for privacy data forwarding method...eSAT Publishing House
 

What's hot (20)

Cued click point image based kerberos authentication protocol
Cued click point image based kerberos authentication protocolCued click point image based kerberos authentication protocol
Cued click point image based kerberos authentication protocol
 
iaetsd Robots in oil and gas refineries
iaetsd Robots in oil and gas refineriesiaetsd Robots in oil and gas refineries
iaetsd Robots in oil and gas refineries
 
www.ijerd.com
www.ijerd.comwww.ijerd.com
www.ijerd.com
 
Identity based distributed provable data possession in multi-cloud storage
Identity based distributed provable data possession in multi-cloud storageIdentity based distributed provable data possession in multi-cloud storage
Identity based distributed provable data possession in multi-cloud storage
 
A Review on Key-Aggregate Cryptosystem for Climbable Knowledge Sharing in Clo...
A Review on Key-Aggregate Cryptosystem for Climbable Knowledge Sharing in Clo...A Review on Key-Aggregate Cryptosystem for Climbable Knowledge Sharing in Clo...
A Review on Key-Aggregate Cryptosystem for Climbable Knowledge Sharing in Clo...
 
Authentication Mechanisms For Signature Based Cryptography By Using Hierarchi...
Authentication Mechanisms For Signature Based Cryptography By Using Hierarchi...Authentication Mechanisms For Signature Based Cryptography By Using Hierarchi...
Authentication Mechanisms For Signature Based Cryptography By Using Hierarchi...
 
CONTROL CLOUD DATA ACCESS PRIVILEGE AND ANONYMITY WITH FULLY ANONYMOUS ATTRIB...
CONTROL CLOUD DATA ACCESS PRIVILEGE AND ANONYMITY WITH FULLY ANONYMOUS ATTRIB...CONTROL CLOUD DATA ACCESS PRIVILEGE AND ANONYMITY WITH FULLY ANONYMOUS ATTRIB...
CONTROL CLOUD DATA ACCESS PRIVILEGE AND ANONYMITY WITH FULLY ANONYMOUS ATTRIB...
 
Identity based encryption with cloud revocation authority and its applications
Identity based encryption with cloud revocation authority and its applicationsIdentity based encryption with cloud revocation authority and its applications
Identity based encryption with cloud revocation authority and its applications
 
Ijcnc050205
Ijcnc050205Ijcnc050205
Ijcnc050205
 
Control cloud data access privilege and anonymity with fully anonymous attrib...
Control cloud data access privilege and anonymity with fully anonymous attrib...Control cloud data access privilege and anonymity with fully anonymous attrib...
Control cloud data access privilege and anonymity with fully anonymous attrib...
 
Attribute Based Encryption with Privacy Preserving In Clouds
Attribute Based Encryption with Privacy Preserving In Clouds Attribute Based Encryption with Privacy Preserving In Clouds
Attribute Based Encryption with Privacy Preserving In Clouds
 
Secure Data Sharing in Cloud (SDSC)
Secure Data Sharing in Cloud (SDSC)Secure Data Sharing in Cloud (SDSC)
Secure Data Sharing in Cloud (SDSC)
 
A Survey on Access Control Mechanisms using Attribute Based Encryption in cloud
A Survey on Access Control Mechanisms using Attribute Based Encryption in cloudA Survey on Access Control Mechanisms using Attribute Based Encryption in cloud
A Survey on Access Control Mechanisms using Attribute Based Encryption in cloud
 
IRJET- Privacy Preserving and Proficient Identity Search Techniques for C...
IRJET-  	  Privacy Preserving and Proficient Identity Search Techniques for C...IRJET-  	  Privacy Preserving and Proficient Identity Search Techniques for C...
IRJET- Privacy Preserving and Proficient Identity Search Techniques for C...
 
Enhanced Security Through Token
Enhanced Security Through TokenEnhanced Security Through Token
Enhanced Security Through Token
 
766 a secure-data-sharing-in-cloud-storage-with-independent-key-generation-ce...
766 a secure-data-sharing-in-cloud-storage-with-independent-key-generation-ce...766 a secure-data-sharing-in-cloud-storage-with-independent-key-generation-ce...
766 a secure-data-sharing-in-cloud-storage-with-independent-key-generation-ce...
 
Secure Redundant Data Avoidance over Multi-Cloud Architecture.
Secure Redundant Data Avoidance over Multi-Cloud Architecture. Secure Redundant Data Avoidance over Multi-Cloud Architecture.
Secure Redundant Data Avoidance over Multi-Cloud Architecture.
 
Ijcatr04051002
Ijcatr04051002Ijcatr04051002
Ijcatr04051002
 
Ch15
Ch15Ch15
Ch15
 
Secret keys and the packets transportation for privacy data forwarding method...
Secret keys and the packets transportation for privacy data forwarding method...Secret keys and the packets transportation for privacy data forwarding method...
Secret keys and the packets transportation for privacy data forwarding method...
 

Viewers also liked

Identity based proxy-oriented data uploading and remote data integrity checki...
Identity based proxy-oriented data uploading and remote data integrity checki...Identity based proxy-oriented data uploading and remote data integrity checki...
Identity based proxy-oriented data uploading and remote data integrity checki...Shakas Technologies
 
Privacy Preserving Identity Management as a Service
Privacy Preserving Identity Management as a ServicePrivacy Preserving Identity Management as a Service
Privacy Preserving Identity Management as a Servicecygnusv
 
Privacy Preserving Access Control for Third Party Data Management Systems
Privacy Preserving Access Control for Third Party Data Management SystemsPrivacy Preserving Access Control for Third Party Data Management Systems
Privacy Preserving Access Control for Third Party Data Management SystemsNabeel Yoosuf
 
Identity Based Encryption
Identity Based EncryptionIdentity Based Encryption
Identity Based EncryptionPratik Poddar
 
Project book on WINDS OF CHANGE:FROM VENDOR LOCK-IN TO THE META CLOUD
Project book on WINDS OF CHANGE:FROM VENDOR LOCK-IN TO THE META CLOUDProject book on WINDS OF CHANGE:FROM VENDOR LOCK-IN TO THE META CLOUD
Project book on WINDS OF CHANGE:FROM VENDOR LOCK-IN TO THE META CLOUDNAWAZ KHAN
 
Audio Cryptography System
Audio Cryptography SystemAudio Cryptography System
Audio Cryptography SystemRaju Raj
 
An Overview of Identity Based Encryption
An Overview of Identity Based EncryptionAn Overview of Identity Based Encryption
An Overview of Identity Based EncryptionVertoda System
 
Lifi technology documentation
Lifi technology documentationLifi technology documentation
Lifi technology documentationSowjanya Jajaila
 
Data Security Using Audio Steganography
Data Security Using Audio SteganographyData Security Using Audio Steganography
Data Security Using Audio SteganographyRajan Yadav
 
87683689 ooad-lab-record
87683689 ooad-lab-record87683689 ooad-lab-record
87683689 ooad-lab-recordPon Venkatesh
 

Viewers also liked (12)

Identity based proxy-oriented data uploading and remote data integrity checki...
Identity based proxy-oriented data uploading and remote data integrity checki...Identity based proxy-oriented data uploading and remote data integrity checki...
Identity based proxy-oriented data uploading and remote data integrity checki...
 
Privacy Preserving Identity Management as a Service
Privacy Preserving Identity Management as a ServicePrivacy Preserving Identity Management as a Service
Privacy Preserving Identity Management as a Service
 
Privacy Preserving Access Control for Third Party Data Management Systems
Privacy Preserving Access Control for Third Party Data Management SystemsPrivacy Preserving Access Control for Third Party Data Management Systems
Privacy Preserving Access Control for Third Party Data Management Systems
 
Identity Based Encryption
Identity Based EncryptionIdentity Based Encryption
Identity Based Encryption
 
Project book on WINDS OF CHANGE:FROM VENDOR LOCK-IN TO THE META CLOUD
Project book on WINDS OF CHANGE:FROM VENDOR LOCK-IN TO THE META CLOUDProject book on WINDS OF CHANGE:FROM VENDOR LOCK-IN TO THE META CLOUD
Project book on WINDS OF CHANGE:FROM VENDOR LOCK-IN TO THE META CLOUD
 
Audio Cryptography System
Audio Cryptography SystemAudio Cryptography System
Audio Cryptography System
 
An Overview of Identity Based Encryption
An Overview of Identity Based EncryptionAn Overview of Identity Based Encryption
An Overview of Identity Based Encryption
 
Online examination system
Online examination systemOnline examination system
Online examination system
 
Lifi technology documentation
Lifi technology documentationLifi technology documentation
Lifi technology documentation
 
Got ipads, android tablets and windows devices
Got ipads, android tablets and windows devicesGot ipads, android tablets and windows devices
Got ipads, android tablets and windows devices
 
Data Security Using Audio Steganography
Data Security Using Audio SteganographyData Security Using Audio Steganography
Data Security Using Audio Steganography
 
87683689 ooad-lab-record
87683689 ooad-lab-record87683689 ooad-lab-record
87683689 ooad-lab-record
 

Similar to documentation for identity based secure distrbuted data storage schemes

Similar to documentation for identity based secure distrbuted data storage schemes (20)

Identity based secure distributed data storage schemes
Identity based secure distributed data storage schemesIdentity based secure distributed data storage schemes
Identity based secure distributed data storage schemes
 
Identity based secure distributed data storage
Identity based secure distributed data storageIdentity based secure distributed data storage
Identity based secure distributed data storage
 
Achieving Secure, sclable and finegrained Cloud computing report
Achieving Secure, sclable and finegrained Cloud computing reportAchieving Secure, sclable and finegrained Cloud computing report
Achieving Secure, sclable and finegrained Cloud computing report
 
Srs document for identity based secure distributed data storage schemes
Srs document for identity based secure distributed data storage schemesSrs document for identity based secure distributed data storage schemes
Srs document for identity based secure distributed data storage schemes
 
Secure Authorised De-duplication using Convergent Encryption Technique
Secure Authorised De-duplication using Convergent Encryption TechniqueSecure Authorised De-duplication using Convergent Encryption Technique
Secure Authorised De-duplication using Convergent Encryption Technique
 
Ppt 1
Ppt 1Ppt 1
Ppt 1
 
Pp1t
Pp1tPp1t
Pp1t
 
Pp1t
Pp1tPp1t
Pp1t
 
82ugszwcqn29itkwai2q 140424034504-phpapp01
82ugszwcqn29itkwai2q 140424034504-phpapp0182ugszwcqn29itkwai2q 140424034504-phpapp01
82ugszwcqn29itkwai2q 140424034504-phpapp01
 
Pp1t
Pp1tPp1t
Pp1t
 
Pp1t
Pp1tPp1t
Pp1t
 
Pp1t
Pp1tPp1t
Pp1t
 
Ppt1 130410095050-phpapp01
Ppt1 130410095050-phpapp01Ppt1 130410095050-phpapp01
Ppt1 130410095050-phpapp01
 
Pp1t
Pp1tPp1t
Pp1t
 
Pp1t
Pp1tPp1t
Pp1t
 
Ppt1 130410095050-phpapp01
Ppt1 130410095050-phpapp01Ppt1 130410095050-phpapp01
Ppt1 130410095050-phpapp01
 
Pp1t
Pp1tPp1t
Pp1t
 
Ppt1 130410095050-phpapp01
Ppt1 130410095050-phpapp01Ppt1 130410095050-phpapp01
Ppt1 130410095050-phpapp01
 
Ppt1 130410095050-phpapp01
Ppt1 130410095050-phpapp01Ppt1 130410095050-phpapp01
Ppt1 130410095050-phpapp01
 
Pp1t
Pp1tPp1t
Pp1t
 

More from Sahithi Naraparaju

SYSTEM ARCHITECTURE / UML DIAGRAMS FOR IDENTITY BASED SECURE DISTRIBUTED DATA...
SYSTEM ARCHITECTURE / UML DIAGRAMS FOR IDENTITY BASED SECURE DISTRIBUTED DATA...SYSTEM ARCHITECTURE / UML DIAGRAMS FOR IDENTITY BASED SECURE DISTRIBUTED DATA...
SYSTEM ARCHITECTURE / UML DIAGRAMS FOR IDENTITY BASED SECURE DISTRIBUTED DATA...Sahithi Naraparaju
 
literature survey for identity based secure distributed data storage
literature survey for identity based secure distributed data storage literature survey for identity based secure distributed data storage
literature survey for identity based secure distributed data storage Sahithi Naraparaju
 
66913017 java-ring-1217949449014046-9 (1)
66913017 java-ring-1217949449014046-9 (1)66913017 java-ring-1217949449014046-9 (1)
66913017 java-ring-1217949449014046-9 (1)Sahithi Naraparaju
 
Self protecteion in clustered distributed system new
Self protecteion in clustered distributed system newSelf protecteion in clustered distributed system new
Self protecteion in clustered distributed system newSahithi Naraparaju
 
CONSTANTS, VARIABLES & DATATYPES IN C
CONSTANTS, VARIABLES & DATATYPES IN CCONSTANTS, VARIABLES & DATATYPES IN C
CONSTANTS, VARIABLES & DATATYPES IN CSahithi Naraparaju
 
constants, variables and datatypes in C
constants, variables and datatypes in Cconstants, variables and datatypes in C
constants, variables and datatypes in CSahithi Naraparaju
 
Steps for Developing a 'C' program
 Steps for Developing a 'C' program Steps for Developing a 'C' program
Steps for Developing a 'C' programSahithi Naraparaju
 
Self protecteion in clustered distributed system new
Self protecteion in clustered distributed system newSelf protecteion in clustered distributed system new
Self protecteion in clustered distributed system newSahithi Naraparaju
 
A Batch-authenticated And Key Agreement Framework For P2p-based Online Social...
A Batch-authenticated And Key AgreementFramework For P2p-based Online Social...A Batch-authenticated And Key AgreementFramework For P2p-based Online Social...
A Batch-authenticated And Key Agreement Framework For P2p-based Online Social...Sahithi Naraparaju
 

More from Sahithi Naraparaju (13)

SYSTEM ARCHITECTURE / UML DIAGRAMS FOR IDENTITY BASED SECURE DISTRIBUTED DATA...
SYSTEM ARCHITECTURE / UML DIAGRAMS FOR IDENTITY BASED SECURE DISTRIBUTED DATA...SYSTEM ARCHITECTURE / UML DIAGRAMS FOR IDENTITY BASED SECURE DISTRIBUTED DATA...
SYSTEM ARCHITECTURE / UML DIAGRAMS FOR IDENTITY BASED SECURE DISTRIBUTED DATA...
 
over view of viruses
over view of virusesover view of viruses
over view of viruses
 
literature survey for identity based secure distributed data storage
literature survey for identity based secure distributed data storage literature survey for identity based secure distributed data storage
literature survey for identity based secure distributed data storage
 
66913017 java-ring-1217949449014046-9 (1)
66913017 java-ring-1217949449014046-9 (1)66913017 java-ring-1217949449014046-9 (1)
66913017 java-ring-1217949449014046-9 (1)
 
Self protecteion in clustered distributed system new
Self protecteion in clustered distributed system newSelf protecteion in clustered distributed system new
Self protecteion in clustered distributed system new
 
OVERVIEW OF ‘C’ PROGRAM
OVERVIEW OF ‘C’ PROGRAMOVERVIEW OF ‘C’ PROGRAM
OVERVIEW OF ‘C’ PROGRAM
 
CONSTANTS, VARIABLES & DATATYPES IN C
CONSTANTS, VARIABLES & DATATYPES IN CCONSTANTS, VARIABLES & DATATYPES IN C
CONSTANTS, VARIABLES & DATATYPES IN C
 
constants, variables and datatypes in C
constants, variables and datatypes in Cconstants, variables and datatypes in C
constants, variables and datatypes in C
 
Steps for Developing a 'C' program
 Steps for Developing a 'C' program Steps for Developing a 'C' program
Steps for Developing a 'C' program
 
pre processor directives in C
pre processor directives in Cpre processor directives in C
pre processor directives in C
 
Self protecteion in clustered distributed system new
Self protecteion in clustered distributed system newSelf protecteion in clustered distributed system new
Self protecteion in clustered distributed system new
 
A Batch-authenticated And Key Agreement Framework For P2p-based Online Social...
A Batch-authenticated And Key AgreementFramework For P2p-based Online Social...A Batch-authenticated And Key AgreementFramework For P2p-based Online Social...
A Batch-authenticated And Key Agreement Framework For P2p-based Online Social...
 
Haptic technology
Haptic technologyHaptic technology
Haptic technology
 

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
  • 31. Figure 3.7: Activity diagram for user 31
  • 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
  • 37. 4.2 SAMPLE CODE: <%-- Document : accept Created on : Dec 7, 2013, 11:06:47 AM Author : Thanu--%> <%@page import="java.sql.*"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> JSP Page </title> <style> </style> <link rel='stylesheet' type='text/css' href='styles.css' /> <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'> </script> </head> <body bgcolor="#BDB76B"> <table align="center"> <tr> <td align="center"> <img src="images/3_1.jpg" hight="500" width="900" > </td> </table> <div id='cssmenu'> <ul> <li class='active'> <a href='index.jsp'> <span>Home</span> </a> </li> 37
  • 38. <li> <a href='login.jsp'> <span> Login </span> </a> </li> <li> <a href=''> <span> Server </span> </a> </li> <li class='last'> <a href=''> <span> Status</span> </a> </li> <li class='last'> <a href='index.jsp'> <span> logout </span> </a> </li> </ul> </div> <h3> <center> 38
  • 39. <font color="black"> Identity Based Secure Distributed Data Storage Schemes </h3> </center> <% String name=(String)session.getAttribute("id");%> <center> <h2>Welcome To Proxy_Server: <%=name%> </h2> </center> <% String id=request.getQueryString(); Class.forName("com.mysql.jdbc.Driver"); Connection con1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/identity","root",""); Statement st1= con1.createStatement(); ResultSet rs=st1.executeQuery("select * from server where uid='"+id+"'"); while(rs.next()) { String email=rs.getString(3); session.setAttribute("email1", email); Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/identity","root",""); Statement st= con.createStatement(); int x=st.executeUpdate("update server set status='Activate' where uid='"+id+"'"); if(x==1) { response.sendRedirect("proxycon1.jsp?Message=Success"); } else { 39
  • 40. response.sendRedirect("areq.jsp?Message=Failed"); } } %> </body> </html> <%--Document : areqCreated on : Dec 7, 2013, 10:50:46 AMAuthor : Thanu--%> <%@page import="java.sql.*"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page </title> <style> </style> <link rel='stylesheet' type='text/css' href='styles.css' /> <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'> </script> </head> <body bgcolor="#BDB76B"> <table align="center"> <tr> <td align="center"> <img src="images/3_1.jpg" hight="500" width="900" > </td> </table> <div id='cssmenu'> <ul> <li class='active'> 40
  • 41. <a href='index.jsp'> <span>Home </span> </a> </li> <li> <a href='login.jsp'> <span> Login </span> </a> </li> <li> <a href=''> <span> Server </span> </a> </li> <li class='last'> <a href=''> <span> Status </span> </a> </li> <li class='last'> <a href='index.jsp'> <span> logout </span> 41
  • 42. </a> </li> </ul> </div> <h3> <center> <font color="black"> Identity Based Secure Distributed Data Storage Schemes </h3> </center> <% String name=(String)session.getAttribute("id");%> <center> <h2>Welcome To Proxy_Server:<%=name%> </h2> </center> <% Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/identity","root",""); Statement st= con.createStatement(); ResultSet rs=st.executeQuery("select * from server "); %> <table align="center" border="1" bordercolor="black"> <th> User Id </th> <th> User Name </th> <th> Email Id </th> <th> 42
  • 43. Status </th> <th> Authentication </th> <% while(rs.next()) { String a=rs.getString(1); String b=rs.getString(2); String c=rs.getString(3); String d=rs.getString(5); %> <tr> <td> <%=a%> </td> <td> <%=b%> </td> <td> <%=c%> </td> <td> <%=d%> </td> <td> <a href="accept.jsp?<%=a%>">Accept</a> </td> </tr> <% } %> </table> </body> </html> 43
  • 44. <%-- Document : authproxy Created on : Dec 5, 2013, 5:29:55 PM Author : Thanu --%> <%@page import="java.sql.*"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> JSP Page </title> <style> </style> <link rel='stylesheet' type='text/css' href='styles.css' /> <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'> </script> </head> <body bgcolor="#BDB76B"> <table align="center"> <tr> <td align="center"> <img src="images/3_1.jpg" hight="500" width="900" > </td> </table> <div id='cssmenu'> <ul> <li class='active'> <a href='index.jsp'> 44
  • 45. <span> Home </span> </a> </li> <li> <a href='login.jsp'> <span> Login </span> </a> </li> <li> <a href=''> <span>Server </span> </a> </li> <li class='last'> <a href=''> <span> Status </span> </a> </li> <li class='last'> <a href='index.jsp'> <span> Logout </span> </a> 45
  • 46. </li> </ul> </div> <h3> <center> <font color="black"> Identity Based Secure Distributed Data Storage Schemes</h3> </center> <% String name=(String)session.getAttribute("id");%> <center> <h2>Welcome To Proxy_Server:<%=name%></h2></center> <% String email=(String) session.getAttribute("email"); Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/identity","root",""); Statement st=con.createStatement(); ResultSet rs=st.executeQuery("select * from filereg where email='"+email+"'"); while(rs.next()) { String email1=rs.getString(6); String uid=rs.getString(1); %> <form method="post" action="proxycon.jsp"> <table align="center"> <tr> <td>User id:</td> <td><input type="username" name="uid" value="<%=uid%>"/></td></tr> <tr><td>Username:</td> <td><input type="username" name="username" value="<%=name%>"/> </td> </tr> 46
  • 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" /> &nbsp;&nbsp; <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
  • 52. Chapter-VI RESULTS Screen shot 1: welcome page 52
  • 53. 53
  • 54. Screen shot 2: Registration page 54
  • 56. Screen shot 4: Choosing a file from system 56
  • 57. Screen shot 5: uploading file 57
  • 58. Screen shot 6: login page for proxy 58
  • 59. Screenshot 7: Proxy server file details (providing key to owner file) 59
  • 60. Screenshot 8: Login page for user 60
  • 61. Screenshot 9: Menu page for user(after login) 61
  • 62. Screen shot 10: Proxy server user authentication page 62
  • 63. Screen shot 11:User enter’s the random key 63
  • 64. Screen shot 12: User chooses a file to view 64
  • 65. Screen shot 13:Proxy server asks for password ( to view file) 65
  • 66. Screen shot 14: File is accessed in encrypted format 66
  • 67. Screen shot 15:Proxy server asks for password(to decrypt file). 67
  • 68. Screen shot 16 : Decrypted File is accessed to user. 68
  • 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
  • 73. 73