documentation for identity based secure distrbuted data storage schemes

97
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 1

Upload: sahithi-naraparaju

Post on 24-Jan-2015

310 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: documentation for identity based secure distrbuted data storage schemes

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

Page 2: documentation for identity based secure distrbuted data storage schemes

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

Page 3: documentation for identity based secure distrbuted data storage schemes

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

Page 4: documentation for identity based secure distrbuted data storage schemes

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

Page 5: documentation for identity based secure distrbuted data storage schemes

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

responsible for assessing technical feasibility. Both then work together to prepare a cost–

benefit analysis of the proposed system to determine its economic feasibility.

5

Page 6: documentation for identity based secure distrbuted data storage schemes

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

Availability of technically qualified staff in-house for the duration of the project and

subsequent maintenance phase;

6

Page 7: documentation for identity based secure distrbuted data storage schemes

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

Page 8: documentation for identity based secure distrbuted data storage schemes

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.

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

8

Page 9: documentation for identity based secure distrbuted data storage schemes

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.

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.

9

Page 10: documentation for identity based secure distrbuted data storage schemes

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

Page 11: documentation for identity based secure distrbuted data storage schemes

11

Page 12: documentation for identity based secure distrbuted data storage schemes

3.1 MODULES:

1. Data Storage Systems

2. File Systems.

3. Storage-based Intrusion Detection Systems.

4. Cryptographic File System.

12

Page 13: documentation for identity based secure distrbuted data storage schemes

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

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.

13

Page 14: documentation for identity based secure distrbuted data storage schemes

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).

14

Page 15: documentation for identity based secure distrbuted data storage schemes

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.

15

Page 16: documentation for identity based secure distrbuted data storage schemes

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.

16

Page 17: documentation for identity based secure distrbuted data storage schemes

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:

Structural and Behavioral Diagrams

17

Page 18: documentation for identity based secure distrbuted data storage schemes

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 :

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.

18

Page 19: documentation for identity based secure distrbuted data storage schemes

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.

19

Page 20: documentation for identity based secure distrbuted data storage schemes

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 containing class. A Composition

relationship is indicated by a line with a

filled diamond.

Dependency When a class uses another class, perhaps as

20

Page 21: documentation for identity based secure distrbuted data storage schemes

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.

.

21

Page 22: documentation for identity based secure distrbuted data storage schemes

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.

22

Page 23: documentation for identity based secure distrbuted data storage schemes

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.

23

Page 24: documentation for identity based secure distrbuted data storage schemes

Activatio

n

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.

24

Page 25: documentation for identity based secure distrbuted data storage schemes

Messag

e

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.

25

Page 26: documentation for identity based secure distrbuted data storage schemes

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.

26

Page 27: documentation for identity based secure distrbuted data storage schemes

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

sequence diagram has two dimensions: vertical dimension represents time; the horizontal

27

Page 28: documentation for identity based secure distrbuted data storage schemes

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.

28

Page 29: documentation for identity based secure distrbuted data storage schemes

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

29

Page 30: documentation for identity based secure distrbuted data storage schemes

Figure 3.7: Activity diagram for user

Chapter-IV

30

Page 31: documentation for identity based secure distrbuted data storage schemes

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.

31

Page 32: documentation for identity based secure distrbuted data storage schemes

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.

32

Page 33: documentation for identity based secure distrbuted data storage schemes

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.

33

Page 34: documentation for identity based secure distrbuted data storage schemes

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.

34

Page 35: documentation for identity based secure distrbuted data storage schemes

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.

35

Page 36: documentation for identity based secure distrbuted data storage schemes

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>

36

Page 37: documentation for identity based secure distrbuted data storage schemes

<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>

37

Page 38: documentation for identity based secure distrbuted data storage schemes

<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

{

38

Page 39: documentation for identity based secure distrbuted data storage schemes

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'>

39

Page 40: documentation for identity based secure distrbuted data storage schemes

<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>

40

Page 41: documentation for identity based secure distrbuted data storage schemes

</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>

41

Page 42: documentation for identity based secure distrbuted data storage schemes

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>

42

Page 43: documentation for identity based secure distrbuted data storage schemes

<%--

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'>

43

Page 44: documentation for identity based secure distrbuted data storage schemes

<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>

44

Page 45: documentation for identity based secure distrbuted data storage schemes

</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>

45

Page 46: documentation for identity based secure distrbuted data storage schemes

<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>

46

Page 47: documentation for identity based secure distrbuted data storage schemes

Chapter-V

TESTINGTESTING

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.

47

Page 48: documentation for identity based secure distrbuted data storage schemes

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.

48

Page 49: documentation for identity based secure distrbuted data storage schemes

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.

49

Page 50: documentation for identity based secure distrbuted data storage schemes

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.

50

Page 51: documentation for identity based secure distrbuted data storage schemes

Chapter-VI

RESULTS

Screen shot 1: welcome page

51

Page 52: documentation for identity based secure distrbuted data storage schemes

52

Page 53: documentation for identity based secure distrbuted data storage schemes

Screen shot 2: Registration page

53

Page 54: documentation for identity based secure distrbuted data storage schemes

Screenshot 3: Login page

54

Page 55: documentation for identity based secure distrbuted data storage schemes

Screen shot 4: Choosing a file from system

55

Page 56: documentation for identity based secure distrbuted data storage schemes

Screen shot 5: uploading file

56

Page 57: documentation for identity based secure distrbuted data storage schemes

Screen shot 6: login page for proxy

57

Page 58: documentation for identity based secure distrbuted data storage schemes

Screenshot 7: Proxy server file details (providing key to owner file)

58

Page 59: documentation for identity based secure distrbuted data storage schemes

Screenshot 8: Login page for user

59

Page 60: documentation for identity based secure distrbuted data storage schemes

Screenshot 9: Menu page for user(after login)

60

Page 61: documentation for identity based secure distrbuted data storage schemes

Screen shot 10: Proxy server user authentication page

61

Page 62: documentation for identity based secure distrbuted data storage schemes

Screen shot 11:User enter’s the random key

62

Page 63: documentation for identity based secure distrbuted data storage schemes

Screen shot 12: User chooses a file to view

63

Page 64: documentation for identity based secure distrbuted data storage schemes

Screen shot 13:Proxy server asks for password ( to view file)

64

Page 65: documentation for identity based secure distrbuted data storage schemes

Screen shot 14: File is accessed in encrypted format

65

Page 66: documentation for identity based secure distrbuted data storage schemes

Screen shot 15:Proxy server asks for password(to decrypt file).

66

Page 67: documentation for identity based secure distrbuted data storage schemes

Screen shot 16 : Decrypted File is accessed to user.

67

Page 68: documentation for identity based secure distrbuted data storage schemes

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.

68

Page 69: documentation for identity based secure distrbuted data storage schemes

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.

69

Page 70: documentation for identity based secure distrbuted data storage schemes

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.

70

Page 71: documentation for identity based secure distrbuted data storage schemes

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

71

Page 72: documentation for identity based secure distrbuted data storage schemes

72