Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 81

A Parallel and Forward Private Searchable Public-Key Encryption for

Cloud-Based Data Sharing

1.
Introduction
Cloud-based data sharing has emerged as a promising solution for convenient and
on-demand access to large amounts of data shared. Its numerous benefits, including
lower cost, better resource utilization, and greater agility, have attracted extensive
attention in industry or academia. The cloud-based data sharing systems are already
widely applied in a lot of different industries such as education, logistics, healthcare,
finance. However, with the continuous occurrence of security issues (e.g., celebrity
photos being leaked in I Cloud), users are increasingly concerned about privacy
protection while enjoying the convenience of cloud storage. Therefore, secure
mechanisms balancing privacy and utilization of data are urgently needed to facilitate
the widespread application of cloud-based data sharing.

1.1Organization Profile

“Sathyameva Jayathe”-Truth always Triumph is the motto of our KMM Educational


Society, Tirupathi.

Nothing is permanent except change. The ongoing advances in computer


communications technology continue to have profound on the way people work and
play. Both the technology itself and the expectations of the people who use it are
altering the features of the information systems in changing the very nature of the
society in which the systems are used. The development of the information systems
has played a dominant role in evolution of information economy.

KMM Institute of post graduate studies very popularly known as KMMIPS has
emerged as a major Technological Institute managed by KMM SOCIAL AND
EDUCATIONAL DEVELOPMENT SOCIETY, Tirupathi. The KMM society has taken
the lead role to establish the institute in academic year 2001-2002. Sprawled over an
area of 25 acres, permanent infrastructural facilities are being developed near

KMMIPS:Tirupati Page 1
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Tirupathi - Madanapalli highway at Ramireddipalle. KMMIPS has already secured


the approval from the all India Council of Technical Education (AICTE), New Delhi,
and Government of Andhra Pradesh and is affiliated to Sri Venkateswara University,
Tirupathi.

The institution is governed by the chairman Sri S.Srinivasulu Garu, retired IRS
(Indian Revenue Service) officer with the support of an advisory body consisting of
the eminent personalities from different fields.

Company: KMM Educational Institutions, Tirupathi.

Contact: Madanapalli Highway Road, Ramipeddipalli, Tirupathi.

Operating Since: 2000

Managing Director: Sri S.Srinivaulu

Legal Status: Educational Society

1.2 Project Report Layout:

This project consists of eight chapters with an overview of “probably secure dynamic
Id based anonymous two factor authenticated key exchange protocol”

Chapter 1 Introduction: It provides an introduction to the research topic namely “ A


Parallel and Forward Private Searchable Public-Key Encryption for Cloud-Based
Data Sharing”

Chapter 2 Genesis of the Study: It outlines the Existing problem, the solution
proposed, methodology used and looks at how the preliminary investigation carried
out, what are all its scope and objectives and limitations of existing manual system.

Chapter 3 Feasibility Study: It is used to test the feasibility of the project i.e.,
Operational, Technical and Economical feasibilities of the system.

Chapter 4 System Analysis: It deals with software requirement analysis. The


various entities and their requirements and their relationships are discussed using E-
R Diagrams.

KMMIPS:Tirupati Page 2
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Chapter 5 System requirements: It explains about the various hardware and


software requirements and their features.

Chapter 6 System Design: It contains the description of all the tables and its
attributes, design principles, user interface design.

Chapter 7 System Testing: It presents software-testing strategies and techniques


like white box testing, back box testing.

Chapter 8 Implementation: It gives the software and hardware implementation


details of the system.

Chapter 9 Conclusion: This chapter deals with the conclusion and the
enhancements need to be in future.

KMMIPS:Tirupati Page 3
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

2. Genesis of
Study
2.1 Existing Method

In existing system we have, new technology leads to new security challenges,


especially data privacy in cloud-based sharing applications. Searchable encryption is
considered one of the best solutions to balance data privacy and usability. This
existing searchable encryption schemes do not meet the requirements for both high
search capability and robust security simultaneously due to the lack of some must-
have features such as parallel search and forward security.

2.1.1 Disadvantages:

 These policies do not include parallel search and forward security.


 Simultaneously high search capability and robust security did not meet the
requirements.

2.2 Proposed Method

In proposed system we propose variant searchable encryption with parallel and


forward privacy, namely parallel and forward private searchable public-key
encryption (PFP-SPE). The PFP-SPE scheme achieves both parallelism and forward
privacy at the expense of slightly higher storage costs.

2.2.1 Advantages

1. In this we will implement parallel search and forward security.


2. At the same time it meets high search capability and strong security
requirements.

KMMIPS:Tirupati Page 4
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

2.3Modules:

Data Owner

After extracting keyword-index pairs from the outsourced dataset, DO encrypts


them and builds the encrypted outsource dataset. Then, (s) he uploads the
encrypted dataset to CS, along with the encrypted keyword-index pairs.
Meanwhile, (s) he must also send the authentication cipher to the data receiver.

3. Data receiver
4. An authorized DR first submits a trapdoor to obtain the matching ciphertexts, and
then enjoys the relevant data services.
5. Cloud service provider
6. When receiving a search query, the CS finds all matching ciphertexts and returns
them to the DR.

KMMIPS:Tirupati Page 5
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

3.Feasibility
study
The feasibility of the project is analyzed in this phase and business proposal is put
forth with a very general plan for the project and some cost estimates. During system
analysis the feasibility study of the proposed system is to be carried out. This is to
ensure that the proposed system is not a burden to the company. For feasibility
analysis, some understanding of the major requirements for the system is essential.

Three key considerations involved in the feasibility analysis are

 ECONOMICAL FEASIBILITY
 TECHNICAL FEASIBILITY
 SOCIAL FEASIBILITY

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

KMMIPS:Tirupati Page 6
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

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

3.3social 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.

KMMIPS:Tirupati Page 7
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

4.System
Analysis
UML stands for Unified Modeling Language. UML is a standardized general-purpose
modeling language in the field of object-oriented software engineering. The standard
is managed, and was created by, the Object Management Group.
The goal is for UML to become a common language for creating models of object
oriented computer software. In its current form UML is comprised of two major
components: a Meta-model and a notation. In the future, some form of method or
process may also be added to; or associated with, UML.
The Unified Modeling Language is a standard language for specifying, Visualization,
Constructing and documenting the artifacts of software system, as well as for
business modeling and other non-software systems.
The UML represents a collection of best engineering practices that have proven
successful in the modeling of large and complex systems.

KMMIPS:Tirupati Page 8
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

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.

GOALS:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so that
they can develop and exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core
concepts.
3. Be independent of particular programming languages and development
process.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of OO tools market.
6. Support higher level development concepts such as collaborations,
frameworks, patterns and components.
7. Integrate best practices.
4.1 USE CASE DIAGRAM:

A use case diagram in the Unified Modeling Language (UML) is a type of behavioral
diagram defined by and created from a Use-case analysis. Its purpose is to present
a graphical overview of the functionality provided by a system in terms of actors,
their goals (represented as use cases), and any dependencies between those use
cases. The main purpose of a use case diagram is to show what system functions
are performed for which actor. Roles of the actors in the system can be depicted.

KMMIPS:Tirupati Page 9
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

registration registration login

login
login Data Owners- view new
registrations, Accepted list

File - Upload, view


File - search, send request, view fil
e request response, Download
Data Receivers - view new CSP
data receiver data owner
registrations, Accepted list
Profile - view, update

Profile - view, update

View requests, generate key logout

logout

logout

4.2 CLASS DIAGRAM:

In software engineering, a class diagram in the Unified Modeling Language (UML) is


a type of static structure diagram that describes the structure of a system by showing
the system's classes, their attributes, operations (or methods), and the relationships
among the classes. It explains which class contains information.

data owner
data receiver
id
id CSP
name
name email
email
email password
password
password
address
address login()
registration() Data Owners- view new registrations, Accepted list()
registration() Data Receivers - view new registrations, Accepted list()
login()
login() logout()
File - Upload, view()
File - search, send request, view file request response, Download()
Profile - view, update()
Profile - view, update()
View requests, generate key()
Logout()
Logout()

4.3 SEQUENCE DIAGRAM:

A sequence diagram in Unified Modeling Language (UML) is a kind of interaction


diagram that shows how processes operate with one another and in what order. It is
a construct of a Message Sequence Chart. Sequence diagrams are sometimes
called event diagrams, event scenarios, and timing diagrams.

KMMIPS:Tirupati Page 10
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

data owner data receiver system CSP


registration
registration
login
view and accept new data owners registrations
view accepted data owners list
view and accept new data receivers registrations
view accepted data rceivers list
login

login

upload file
view files

view files
search file
view search results
send request
view request
accept and generate key
view respoce
download

logout
logout
logout

4.4 COLLABORATION DIAGRAM:

In collaboration diagram the method call sequence is indicated by some numbering


technique as shown below. The number indicates how the methods are called one
after another. We have taken the same order management system to describe the
collaboration diagram. The method calls are similar to that of a sequence diagram.

KMMIPS:Tirupati Page 11
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

But the difference is that the sequence diagram does not describe the object
organization whereas the collaboration diagram shows the object organization.

data data
owner receiver

1: registration
8: login
10: upload file
11: view files
16: view request 2: registration
17: accept and generate key 9: login
21: logout 13: search file
14: view search results
15: send request
18: view respoce
19: download
20: logout

system CSP

3: login
4: view and accept new data owners registrations
5: view accepted data owners list
6: view and accept new data receivers registrations
7: view accepted data rceivers list
12: view files
22: logout

4. 5 ACTIVITY DIAGRAM:

Activity diagrams are graphical representations of workflows of stepwise activities


and actions with support for choice, iteration and concurrency. In the Unified
Modeling Language, activity diagrams can be used to describe the business and
operational step-by-step workflows of components in a system. An activity diagram
shows the overall flow of control.

KMMIPS:Tirupati Page 12
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

data receiver data owner CSP

registration registration login

login
login
Data Owners- view new registrations, Accepted list

File – search, send request File – Upload, view


Data Receivers - view new registrations, Accepted list

view file request response, Download Profile – view, update

View files

Profile – view, update View requests, generate key

Logout

Logout Logout

4.6 COMPONENT DIAGRAM

Component diagrams are used to describe the physical artifacts of a system. This
artifact includes files, executables, libraries etc. So the purpose of this diagram is
different, Component diagrams are used during the implementation phase of an
application. But it is prepared well in advance to visualize the implementation details.
Initially the system is designed using different UML diagrams and then when the
artifacts are ready component diagrams are used to get an idea of the
implementation.

KMMIPS:Tirupati Page 13
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

data owner

system database
data
receiver

csp

4.7 DEPLOYMENT DIAGRAM

Deployment diagram represents the deployment view of a system. It is related to the


component diagram. Because the components are deployed using the deployment
diagrams. A deployment diagram consists of nodes. Nodes are nothing but physical
hard ware’s used to deploy the application.

data
receiver

data system data


owner base

CSP

4.8 ER Diagram:

An Entity–relationship model (ER model) describes the structure of a database with


the help of a diagram, which is known as Entity Relationship Diagram (ER Diagram).
An ER model is a design or blueprint of a database that can later be implemented as
a database. The main components of E-R model are: entity set and relationship set.

KMMIPS:Tirupati Page 14
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

An ER diagram shows the relationship among entity sets. An entity set is a group of
similar entities and these entities can have attributes. In terms of DBMS, an entity is
a table or attribute of a table in database, so by showing relationship among tables
and their attributes, ER diagram shows the complete logical structure of a database.
Let’s have a look at a simple ER diagram to understand this concept.

KMMIPS:Tirupati Page 15
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

5.system
Requirements
5.1 Hardware requirements:

• System : Pentium IV 2.4 GHz.


• Hard Disk : 40 GB.
• Floppy Drive : 1.44 Mb.
• Monitor : 15 VGA Colour.
• Mouse : Logitech.
• Ram : 512 Mb.

5.2Software requirements:

 Operating System : Windows XP


 Programming Language : JAVA
 Java Version : JDK 1.6 & above.

5.3 About software:

Java Technology
Java technology is both a programming language and a platform.

The Java Programming Language


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

KMMIPS:Tirupati Page 16
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

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

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.

KMMIPS:Tirupati Page 17
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

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

KMMIPS:Tirupati Page 18
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

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.

What Can Java Technology Do?


The most common types of programs written in the Java programming language are
applets and applications. If you’ve surfed the Web, you’re probably already familiar
with applets. An applet is a program that adheres to certain conventions that allow it
to run within a Java-enabled browser.

However, the Java programming language is not just for writing cute, entertaining
applets for the Web. The general-purpose, high-level Java programming language is
also a powerful software platform. Using the generous API, you can write many
types of programs.
An application is a standalone program that runs directly on the Java platform. A
special kind of application known as a server serves and supports clients on a
network. Examples of servers are Web servers, proxy servers, mail servers, and
print servers. Another specialized program is a servlet. A servlet can almost be
thought of as an applet that runs on the server side. Java Servlets are a popular
choice for building interactive web applications, replacing the use of CGI scripts.
Servlets are similar to applets in that they are runtime extensions of applications.
Instead of working in browsers, though, servlets run within Java Web servers,
configuring or tailoring the server.
How does the API support all these kinds of programs? It does so with packages of
software components that provides a wide range of functionality. Every full
implementation of the Java platform gives you the following features:

KMMIPS:Tirupati Page 19
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

The essentials: Objects, strings, threads, numbers, input and output, data
structures, system properties, date and time, and so on.
Applets: The set of conventions used by applets.
Networking: URLs, TCP (Transmission Control Protocol), UDP (User Data gram
Protocol) sockets, and IP (Internet Protocol) addresses.
Internationalization: Help for writing programs that can be localized for users
worldwide. Programs can automatically adapt to specific locales and be displayed in
the appropriate language.
Security: Both low level and high level, including electronic signatures, public and
private key management, access control, and certificates.
Software components: Known as JavaBeansTM, can plug into existing component
architectures.
Object serialization: Allows lightweight persistence and communication via Remote
Method Invocation (RMI).
Java Database Connectivity (JDBCTM): Provides uniform access to a wide range of
relational databases.
The Java platform also has APIs for 2D and 3D graphics, accessibility, servers,
collaboration, telephony, speech, animation, and more. The following figure depicts
what is included in the Java 2 SDK.

KMMIPS:Tirupati Page 20
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

How Will Java Technology Change My Life?

We can’t promise you fame, fortune, or even a job if you learn the Java programming
language. Still, it is likely to make your programs better and requires less effort than
other languages. We believe that Java technology will help you do the following:

Get started quickly: Although the Java programming language is a powerful object-
oriented language, it’s easy to learn, especially for programmers already familiar with
C or C++.
Write less code: Comparisons of program metrics (class counts, method counts,
and so on) suggest that a program written in the Java programming language can be
four times smaller than the same program in C++.
Write better code: The Java programming language encourages good coding
practices, and its garbage collection helps you avoid memory leaks. Its object
orientation, its JavaBeans component architecture, and its wide-ranging, easily
extendible API let you reuse other people’s tested code and introduce fewer bugs.
Develop programs more quickly: Your development time may be as much as twice
as fast versus writing the same program in C++. Why? You write fewer lines of code
and it is a simpler programming language than C++.
Avoid platform dependencies with 100% Pure Java: You can keep your program
portable by avoiding the use of libraries written in other languages. The 100% Pure
JavaTM Product Certification Program has a repository of historical process manuals,
white papers, brochures, and similar materials online.
Write once, run anywhere: Because 100% Pure Java programs are compiled into
machine-independent byte codes, they run consistently on any Java platform.
Distribute software more easily: You can upgrade applets easily from a central
server. Applets take advantage of the feature of allowing new classes to be loaded
“on the fly,” without recompiling the entire program.
ODBC
Microsoft Open Database Connectivity (ODBC) is a standard programming interface
for application developers and database systems providers. Before ODBC became a
de facto standard for Windows programs to interface with database systems,
programmers had to use proprietary languages for each database they wanted to

KMMIPS:Tirupati Page 21
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

connect to. Now, ODBC has made the choice of the database system almost
irrelevant from a coding perspective, which is as it should be. Application developers
have much more important things to worry about than the syntax that is needed to
port their program from one database to another when business needs suddenly
change.
Through the ODBC Administrator in Control Panel, you can specify the particular
database that is associated with a data source that an ODBC application program is
written to use. Think of an ODBC data source as a door with a name on it. Each door
will lead you to a particular database. For example, the data source named Sales
Figures might be a SQL Server database, whereas the Accounts Payable data
source could refer to an Access database. The physical database referred to by a
data source can reside anywhere on the LAN.
The ODBC system files are not installed on your system by Windows 95. Rather,
they are installed when you setup a separate database application, such as SQL
Server Client or Visual Basic 4.0. When the ODBC icon is installed in Control Panel,
it uses a file called ODBCINST.DLL. It is also possible to administer your ODBC data
sources through a stand-alone program called ODBCADM.EXE. There is a 16-bit
and a 32-bit version of this program and each maintains a separate list of ODBC
data sources.
From a programming perspective, the beauty of ODBC is that the application can be
written to use the same set of function calls to interface with any data source,
regardless of the database vendor. The source code of the application doesn’t
change whether it talks to Oracle or SQL Server. We only mention these two as an
example. There are ODBC drivers available for several dozen popular database
systems. Even Excel spreadsheets and plain text files can be turned into data
sources. The operating system uses the Registry information written by ODBC
Administrator to determine which low-level ODBC drivers are needed to talk to the
data source (such as the interface to Oracle or SQL Server). The loading of the
ODBC drivers is transparent to the ODBC application program. In a client/server
environment, the ODBC API even handles many of the network issues for the
application programmer.

KMMIPS:Tirupati Page 22
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

The advantages of this scheme are so numerous that you are probably thinking
there must be some catch. The only disadvantage of ODBC is that it isn’t as efficient
as talking directly to the native database interface. ODBC has had many detractors
make the charge that it is too slow. Microsoft has always claimed that the critical
factor in performance is the quality of the driver software that is used. In our humble
opinion, this is true. The availability of good ODBC drivers has improved a great deal
recently. And anyway, the criticism about performance is somewhat analogous to
those who said that compilers would never match the speed of pure assembly
language. Maybe not, but the compiler (or ODBC) gives you the opportunity to write
cleaner programs, which means you finish sooner. Meanwhile, computers get faster
every year.
JDBC
In an effort to set an independent database standard API for Java; Sun
Microsystems developed Java Database Connectivity, or JDBC. JDBC offers a
generic SQL database access mechanism that provides a consistent interface to a
variety of RDBMSs. This consistent interface is achieved through the use of “plug-in”
database connectivity modules, or drivers. If a database vendor wishes to have
JDBC support, he or she must provide the driver for each platform that the database
and Java run on.
To gain a wider acceptance of JDBC, Sun based JDBC’s framework on ODBC. As
you discovered earlier in this chapter, ODBC has widespread support on a variety of
platforms. Basing JDBC on ODBC will allow vendors to bring JDBC drivers to market
much faster than developing a completely new connectivity solution.
JDBC was announced in March of 1996. It was released for a 90 day public review
that ended June 8, 1996. Because of user input, the final JDBC v1.0 specification
was released soon after.
The remainder of this section will cover enough information about JDBC for you to
know what it is about and how to use it effectively. This is by no means a complete
overview of JDBC. That would fill an entire book.
JDBC Goals
Few software packages are designed without goals in mind. JDBC is one that,
because of its many goals, drove the development of the API. These goals, in

KMMIPS:Tirupati Page 23
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

conjunction with early reviewer feedback, have finalized the JDBC class library into a
solid framework for building database applications in Java.
The goals that were set for JDBC are important. They will give you some insight as
to why certain classes and functionalities behave the way they do. The eight design
goals for JDBC are as follows:
SQL Level API
The designers felt that their main goal was to define a SQL interface for Java.
Although not the lowest database interface level possible, it is at a low enough level
for higher-level tools and APIs to be created. Conversely, it is at a high enough level
for application programmers to use it confidently. Attaining this goal allows for future
tool vendors to “generate” JDBC code and to hide many of JDBC’s complexities from
the end user.
SQL Conformance
SQL syntax varies as you move from database vendor to database vendor. In an
effort to support a wide variety of vendors, JDBC will allow any query statement to be
passed through it to the underlying database driver. This allows the connectivity
module to handle non-standard functionality in a manner that is suitable for its users.
JDBC must be implemental on top of common database interfaces
The JDBC SQL API must “sit” on top of other common SQL level APIs. This goal
allows JDBC to use existing ODBC level drivers by the use of a software interface.
This interface would translate JDBC calls to ODBC and vice versa.

Provide a Java interface that is consistent with the rest of the Java system
Because of Java’s acceptance in the user community thus far, the designers feel that
they should not stray from the current design of the core Java system.

Keep it simple
This goal probably appears in all software design goal listings. JDBC is no exception.
Sun felt that the design of JDBC should be very simple, allowing for only one method
of completing a task per mechanism. Allowing duplicate functionality only serves to
confuse the users of the API.

Use strong, static typing wherever possible

KMMIPS:Tirupati Page 24
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Strong typing allows for more error checking to be done at compile time; also, less
error appear at runtime.

Keep the common cases simple


Because more often than not, the usual SQL calls used by the programmer are
simple SELECT’s, INSERT’s, DELETE’s and UPDATE’s, these queries should be
simple to perform with JDBC. However, more complex SQL statements should also
be possible.

Finally we decided to proceed the implementation using Java Networking.

And for dynamically updating the cache table we go for MS Access database.

Java ha two things: a programming language and a platform.

Java is a high-level programming language that is all of the following

Simple Architecture-neutral

Object-oriented Portable

Distributed High-performance

Interpreted multithreaded

Robust Dynamic

Secure

Java is also unusual in that each Java program is both compiled and
interpreted. With a compile you translate a Java program into an
intermediate language called Java byte codes the platform-independent
code instruction is passed and run on the computer.

Compilation happens just once; interpretation occurs each time the


program is executed. The figure illustrates how this works.

KMMIPS:Tirupati Page 25
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Java Program Interpreter

Compilers My Program

You can think of Java byte codes as the machine code instructions for the Java
Virtual Machine (Java VM). Every Java interpreter, whether it’s a Java development
tool or a Web browser that can run Java applets, is an implementation of the Java
VM. The Java VM can also be implemented in hardware.

Java byte codes help make “write once, run anywhere” possible. You can compile
your Java program into byte codes on my platform that has a Java compiler. The
byte codes can then be run any implementation of the Java VM. For example, the
same Java program can run Windows NT, Solaris, and Macintosh.

HTML
HTML stands for Hyper Text Markup Language, which is the most widely used
language on Web to develop web pages. HTML was created by Berners-Lee in late
1991 but "HTML 2.0" was the first standard HTML specification which was
published in 1995. HTML 4.01 was a major version of HTML and it was published in
late 1999. Though HTML 4.01 version is widely used but currently we are having
HTML-5 version which is an extension to HTML 4.01, and this version was
published in 2012.

Hypertext refers to the way in which Web pages (HTML documents) are linked
together. Thus the link available on a webpage is called Hypertext.

As its name suggests, HTML is a Markup Language which means you use HTML to
simply "mark up" a text document with tags that tell a Web browser how to structure
it to display.

KMMIPS:Tirupati Page 26
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Originally, HTML was developed with the intent of defining the structure of
documents like headings, paragraphs, lists, and so forth to facilitate the sharing of
scientific information between researchers.

These are some basic tags of html

Tag Description

<!DOCTYPE...> This tag defines the document type and HTML version.

<html> This tag encloses the complete HTML document and mainly
comprises of document header which is represented
by <head>...</head> and document body which is represented
by <body>...</body> tags.

<head> This tag represents the document's header which can keep
other HTML tags like <title>, <link> etc.

<title> The <title> tag is used inside the <head> tag to mention the


document title.

<body> This tag represents the document's body which keeps other
HTML tags like <h1>, <div>, <p> etc.

<h1> This tag represents the heading.

<p> This tag represents a paragraph.

Networking:
TCP/IP stacks:
TCP/IP stack is shorter than the OSI one:
TCP is a connection-oriented protocol; UDP (User Datagram Protocol) is a protocol.
IP datagram’s

KMMIPS:Tirupati Page 27
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

With a particular deciding objective to use an organization you must have the ability
to search it. The Web uses an area arrangement for machines that can be found with
the objective. The area is a 32 bit entire number which gives IP address. This
encodes a framework ID and all the all the more having a tendency to. The
framework ID falls into distinctive classes according to the compass of the framework
address.
UDP: UDP is likewise connectionless and temperamental. What it add’s to IP
address is checksum for the substance of the port numbers and datagram. These
are utilized to give a customer/server model
TCP: TCP supplies rationale to give a dependable association situated convention
above IP. It gives a VC(virtual circuit that two methods can use to convey.
Internet addresses
With a specific end goal to utilize an administration you must have the capacity to
discover it. The Web utilizes a location plan for machines with the goal that can be
got. The location is a 32 bit whole number which gives the IP address. This encodes
a system ID and all the more tending to. The system ID falls into different classes as
per the span of the system address.
Network address
Class A utilizes 8 bits to network IP address with 24bits leftover to another
addressing. Class B utilizes 16bit network addressing. Class C utilizes 24bit network
addressing and class D utilizes all 32bits.
Subnet address
Internally UNIX network system is divided into partitions. Constructing 11 is presently
on one partition and utilizes 10bit addressing allows 1024 various hosts.
Host address
8bits are at last utilized for host addresses inside our subnet. This places a breaking
point of 256 machines that can be on the subnet.

Port addresses
An administration exists on a host and is distinguished by its port. This is a 16 bit
number. To make an impression on a server you send it to the port for that
administration of the host that it is running on. This is not area straightforwardness!
Sure of these ports are "no doubt understood".

KMMIPS:Tirupati Page 28
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Sockets
An attachment is an information structure kept up by the framework to handle system
associations. An attachment is made utilizing the call attachment. It gives back a
whole number that is similar to a record descriptor. Actually under Windows this
handle can be utilized with Read File and Write File capacities.
#include <sys/types'>
#include <sys/socket's>
Into attachment (into family into sort into convention);
Here "family" will be AF_INET for IP interchanges convention will be zero and sort
will rely on upon whether TCP or UDP is utilized. Two methods wishing to impart
over a system make an attachment each. These are like two closures of a channel -
however the real pipe does not yet exist.
Free Chart
Free Chart is a free Java graph library, which makes simple for designers to show
proficient quality graphs in their applications. A predictable and very much reported
Programming interface supporting an extensive variety of diagram sorts; An
adaptable outline that is anything but difficult to develop and targets both server-side
and customer side applications. Support for some yield sorts including Swing
segments picture records (counting PNG and JPEG) and vector representation
record configurations (counting PDF EPS and SVG);
Free Outline is "open source" or all the more particularly free programming. It is
conveyed under the terms of the GNU Lesser Overall population Permit (LGPL)
which allows use in restrictive applications.
Map Visualizations
Outlines demonstrating values that identify with topographical ranges. A few
illustrations include: (a) populace thickness in every condition of the United States
(b) pay every capita for every nation in Europe (c) future in every nation of the world.
The undertakings in this task include:
Sourcing uninhibitedly redistributable vector traces for the nations of the world
states/territories specifically nations (USA specifically additionally different ranges);
Making a suitable dataset interface (in addition to default usage) a rendered and
incorporating this with the current XY Plot class in Free Graph. Testing archiving
testing some all the more recording some more.

KMMIPS:Tirupati Page 29
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Time Series Chart Interactivity


Actualize another (to Free Graph) highlight for intelligent time arrangement diagrams
- to show a different control that demonstrates a little form of ALL the time
arrangement information with a sliding "perspective" rectangle that permits you to
choose the subset of the time arrangement information to show in the principle
diagram.
Dashboards
There is as of now a ton of enthusiasm for dashboard shows. Make an adaptable
dashboard component that backing a subset of Free Chart sorts (dials pies
thermometers bars and lines/time arrangement) that can be conveyed effortlessly
through apple and Java Web Start.
Property Editors
The property manager system in Free Chart just handles a little subset of the
properties that can be set for graphs. Amplify (or re-execute) this instrument to give
more prominent end-client control over the presence of the diagrams.
What is a Java Web Application?
A Java web application produces intelligent site pages containing different sorts of
markup dialect (HTML XML et cetera) and element content. It is commonly involved
web segments for example Java Server Pages (JSP) servlets and JavaBeans to
change and incidentally store information cooperate with databases and web
administrations and render content because of customer solicitations. Since a large
portion of the errands included in web application improvement can be redundant or
oblige an excess of standard code web structures can be connected to mitigate the
overhead connected with regular exercises. Case in point numerous structures for
example Java Server Countenances give libraries to templating pages and session
administration and frequently advance code reuse.
What is Java EE?
Java EE (Undertaking Version) is a generally utilized stage containing an
arrangement of composed advancements that altogether diminish the expense and
intricacy of creating sending and overseeing multi-level server-driven applications.
Java EE expands upon the Java SE stage and gives an arrangement of APIs
(application programming interfaces) for creating and running versatile, vigorous,
secure, adaptable and also dependable server-side applications.

KMMIPS:Tirupati Page 30
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

A portion of the basic segments of Java EE include:


• Enterprise JavaBeans (EJB): An oversaw server-side part building design used to
exemplify the business rationale of an application. EJB innovation empowers fast
and rearranged improvement of dispersed value-based secure and convenient
applications in view of Java innovation.
• Java Diligence Programming interface (JPA): a structure that permits engineers to
oversee information utilizing article social mapping (ORM) in applications based on
the Java S.

JavaScript and Ajax Development


JavaScript is an item arranged scripting dialect essentially utilized as a part of
customer side interfaces for web applications. Ajax (Offbeat JavaScript and XML) is
a Web 2.0 strategy that permits changes to happen in a website page without the
need to perform a page invigorate. JavaScript tool boxes can be utilized to execute
Ajax empowered parts and usefulness in site pages.
Web Server and Client
Web Server is a product that can prepare the customer demand and send the
reaction back to the customer. For example Apache is a best amongst the generally
utilized web server. Web Server runs on some physical machine and listens to
customer demand on particular port. A web customer is a product that assists in
corresponding with the server. Probably the most broadly utilized web customers are
Firefox Google Chrome Safari and so forth. When we ask for something from server
(through URL) web customer deals with making a solicitation and sending it to server
and after that parsing the server reaction and present it to the client.
HTML and HTTP
Web Server and Web Customer are two different programming projects so there
ought to be some regular dialect for correspondence. HTML is the regular dialect in
the middle of server and customer and stands for Hypertext Markup Dialect. Web
server and customer needs a typical correspondence convention HTTP (Hypertext
Exchange Convention) is the correspondence convention in the middle of server and
customer. HTTP keeps running on top of TCP/IP correspondence convention.
A portion of the critical parts of HTTP Solicitation are:
 HTTP System – activity to be performed generally GET POST PUT and so on.

KMMIPS:Tirupati Page 31
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

 URL – Page to get to


 Form Parameters – like contentions in a java technique for instance user
password points
of interest .
Sample HTTP Request:
1. GET /FirstServletProject/jsps/hello.jsp HTTP/1.1
2. Host: localhost:8080
3. Cache-Control: no-cache
Some of the important parts of HTTP Response are:
 Status Code – An integer to indicate whether the request was success or not.
Some of the well known status codes are 200 for success 404 for Not Found and
403 for Access Forbidden.
 Content Type – Text html image pdf etc. Also known as MIME type
 Content – Actual data that is rendered by client and shown to user. MIME Type or
Content Type: On the off chance that you see above specimen HTTP reaction
header it contains label "Substance Sort". It's likewise called Pantomime sort and
server sends it to customer to tell them the sort of information it's sending. It helps
customer in rendering the information for client. A portion of the for the most part
utilized pantomime sorts are content/html content/xml application/xml and so on.
Understanding URL:URL is acronym of Widespread Asset Locator and it's utilized
to find the server and asset. Each asset on the web has it's own interesting location.
We have to see the parts of URL with a sample.
http://localhost:8080/FirstServletProject/jsps/hello.jsp
http:// – This is the first piece of URL and gives the correspondence convention to be
utilized as a part of server-customer correspondence.
Local host: The special location of the server the greater part of the times it's the
hostname of the server that maps to one of a kind IP address. At times various
hostnames point to same IP addresses and web server virtual host deals with
sending solicitation to the specific server instance.
8080 : This is the port on which server is tuning in its discretionary and in the event
that we don't give it in URL then demand goes to the default port of the convention.
Port numbers 0 to 1023 are held ports for surely understood administrations for
instance 80 for HTTP 443 for HTTPS 21 for FTP and so forth.

KMMIPS:Tirupati Page 32
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

FirstServletProject/jsps/hello.jsp:Resource requested from server. It can be static


html JSP servlets PHPetc.
Why we need Servlet and JSPs?
Web servers are useful for static substance HTML pages however they don't know
how to produce element substance or how to spare information into databases so we
require another instrument that we can use to create element content. There are a
few programming dialects for element substance like PHP Python Ruby on Rails
Java Servlets and JSPs.
Java Servlet and JSPs are server side advancements to expand the ability of web
servers by giving backing to element reaction and information constancy.
Web Container
Tomcat is a web holder when a solicitation is produced using Customer to web
server it passes the solicitation to web compartment and it's web holder occupation
to locate the right asset to handle the solicitation (servlet or JSP) and afterward
utilize the reaction from the asset to create the reaction and give it to web server. At
that point web server sends the reaction back to the customer.
At the point when web holder gets the solicitation and on the off chance that it's for
servlet then compartment makes two Items HTTPServletRequest and
HTTPServletResponse. At that point it discovers the right servlet in view of the URL
and makes a string for the solicitation. At that point it conjures the servlet
administration () strategy and in light of the HTTP technique administration () system
summons do Get() or doPost() routines. Servlet systems produce the dynamic page
and compose it to reaction. When servlet string is finished compartment changes
over the reaction to HTTP reaction and sends it back to customer. Some of the
important works done by web container are:
 Communication Support – Compartment gives simple method for
correspondence between web server and the servlets and JSPs. As a result of
compartment we don't have to manufacture a server attachment to listen for any
solicitation from web server parse the solicitation and produce reaction. All these
critical and complex undertakings are finished by holder and everything we need to
center is on our business rationale for our applications.
 Lifecycle and Resource Management – Container deals with dealing with the life
cycle of servlet. Compartment deals with stacking the servlets into memory

KMMIPS:Tirupati Page 33
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

introducing servlets conjuring servlet routines and pulverizing them. Holder


additionally gives utility like JNDI to asset pooling and administration.
Multithreading Support – Container makes new string for each solicitation to the
servlet and when it's handled the string kicks the bucket. So servlets are not instated
for every solicitation and spares time and memory.
 JSP Support – JSPs doesn't look like typical java classes and web holder gives
backing to JSP. Each JSP in the application is incorporated by compartment and
changed over to Servlet and after that holder oversees them like different servlets.
 Miscellaneous Task – Web holder deals with the asset pool does memory
advancements run junk gives security arrangements support for numerous
applications hot organization and a few different errands behind the scene that
makes our life less demanding.
Web Application Directory Structure
Java Web Applications are bundled as Web Chronicle (WAR) and it has a
characterized structure. You can send out above element web extend as WAR
record and unfasten it to check the chain of importance. It will be something like
underneath picture.

Deployment Descriptor
Web.xml record is the organization descriptor of the web application and contains
mapping for servlets (preceding 3.0) appreciated pages security setups session
timeout settings and so forth. That’s just for the java web application startup

KMMIPS:Tirupati Page 34
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

instructional exercise we will investigate Servlets and JSPs all the more in future
posts.

KMMIPS:Tirupati Page 35
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

6. System
Design
6.1 Input Design

The input design is the link between the information system and the user. It
comprises the developing specification and procedures for data preparation and
those steps are necessary to put transaction data in to a usable form for processing
can be achieved by inspecting the computer to read data from a written or printed
document or it can occur by having people keying the data directly into the system.
The design of input focuses on controlling the amount of input required, controlling
the errors, avoiding delay, avoiding extra steps and keeping the process simple. The
input is designed in such a way so that it provides security and ease of use with
retaining the privacy. Input Design considered the following things:

 What data should be given as input?


 How the data should be arranged or coded?
 The dialog to guide the operating personnel in providing input.
 Methods for preparing input validations and steps to follow when error occur.
OBJECTIVES

1. Input Design is the process of converting a user-oriented description of the input


into a computer-based system. This design is important to avoid errors in the data
input process and show the correct direction to the management for getting correct
information from the computerized system.

2. It is achieved by creating user-friendly screens for the data entry to handle large
volume of data. The goal of designing input is to make data entry easier and to be
free from errors. The data entry screen is designed in such a way that all the data
manipulates can be performed. It also provides record viewing facilities.

KMMIPS:Tirupati Page 36
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

3. When the data is entered it will check for its validity. Data can be entered with the
help of screens. Appropriate messages are provided as when needed so that the
user will not be in maize of instant. Thus the objective of input design is to create an
input layout that is easy to follow

6.2OUTPUT DESIGN
A quality output is one, which meets the requirements of the end user and presents
the information clearly. In any system results of processing are communicated to the
users and to other system through outputs. In output design it is determined how the
information is to be displaced for immediate need and also the hard copy output. It is
the most important and direct source information to the user. Efficient and intelligent
output design improves the system’s relationship to help user decision-making.

1. Designing computer output should proceed in an organized, well thought out


manner; the right output must be developed while ensuring that each output element
is designed so that people will find the system can use easily and effectively. When
analysis design computer output, they should Identify the specific output that is
needed to meet the requirements.

2. Select methods for presenting information.

3. Create document, report, or other formats that contain information produced by


the system.

The output form of an information system should accomplish one or more of the
following objectives.

 Convey information about past activities, current status or projections of the


 Future.
 Signal important events, opportunities, problems, or warnings.
 Trigger an action.
 Confirm an action.

KMMIPS:Tirupati Page 37
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

7.Implementation
7.1 Algorithm:
Embedded algorithms with Pip-Spy Shadow: Setup, Khaisism, Encryption, Door and
Search, Suitable for us.

Setup (λ): This algorithm is mandatory for snow ice. If the security parameter is
specified, it provides the machine parameter parameter.

KeyGen (param): This algorithm generates public / personal keeps for each user.
The beginning of the system parameter form, which provides the public / personal
key pair (peak, sk).

Encryption (param, DB (w), w, skdo, PKdr, ST): This set of rules is best used by
using DO. The gadget is maintained using the parameter form, dataset DB (w), DO's
game key skdo name, DR's public key PKdr and Country Map ST DO, DO encrypted
dataset EDB (w) and updated country map ST.

Trapdoor (param, skdr, PKdo, w, VI): This algorithm is used by DR. Gadget
parameter form that authenticates TrapDwark Twiki, DR's secret key skdr, DO's
public key PKdo, searchable keyword and DR-assisted version Map VI.

Search (param, Tw, EDB): These rules do not apply to the entire file c. When the
ADB system parameter, trapdoor twi and encrypted dataset are provided, it gives the
expected result.

7.2 Sample code:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

KMMIPS:Tirupati Page 38
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

<%

String name=request.getParameter("email");

String pwd=request.getParameter("pwd");

session.setAttribute("name", name);

if(name.equals("csp@gmail.com")&&pwd.equals("csp")){

response.sendRedirect("csphome.jsp");

else {

response.sendRedirect("csp.jsp?m=fail");

%>

</body>

</html>

<!DOCTYPE html>

<html>

<head>

<meta charset="ISO-8859-1">

KMMIPS:Tirupati Page 39
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

<title>A Parallel and Forward Private Searchable Public Key Encryption</title>

<link rel="stylesheet" type="text/css" href="style.css">

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-


awesome/4.7.0/css/font-awesome.min.css">

</head>

<body>

<div align="center">

<%@include file="title.jsp" %>

<ul>

<li ><a href="index.html">Home</a></li>

<li >

<div class="navbar">

<div class="dropdown" >

<button class="dropbtn">Data Owner

<i class="fa fa-caret-down"></i>

</button>

<div class="dropdown-content">

<a href="doreg.jsp">Registration </a>

<a href="dologin.jsp">Login</a>

</div>

</div>

</div></li>

<li >

<div class="navbar">

<div class="dropdown" >

<button class="dropbtn">Data Receiver

<i class="fa fa-caret-down"></i>

KMMIPS:Tirupati Page 40
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

</button>

<div class="dropdown-content">

<a href="dureg.jsp">Registration </a>

<a href="dulogin.jsp">Login</a>

</div>

</div>

</div></li>

<li class="active"><a href="csp.jsp">CSP</a></li>

</ul>

</div>

<div align="center" class="input-icons">

<h2>CSP Login</h2>

<form action="clback.jsp" method="post">

<b> <table>

<tr>

<td><i class="fa fa-envelope icon"></i>

<input class="input-field" type="email" name="email" required="required"


placeholder="Email"></td></tr>

<tr>

<td><i class="fa fa-key icon"></i>

<input class="input-field" type="password" name="pwd" required="required"


placeholder="password"></td></tr>

<!-- <tr align="center"><td width="100px"><input type="submit"


value="ADD" style="color: red;font-weight: bold; "> </td></tr>

-->

</table>

<button class="button" type="submit" style="vertical-align:middle"><span>Login


</span></button>

KMMIPS:Tirupati Page 41
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

</b>

</form>

</div>

</html>

<!DOCTYPE html>

<html>

<head>

<meta charset="ISO-8859-1">

<title>A Parallel and Forward Private Searchable Public Key Encryption</title>

<link rel="stylesheet" type="text/css" href="style.css">

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-


awesome/4.7.0/css/font-awesome.min.css">

</head>

<body>

<div align="center">

<%@include file="title.jsp" %>

<ul>

<li class="active" ><a href="csphome.jsp">Home</a></li>

<li >

<div class="navbar">

<div class="dropdown" >

<button class="dropbtn">Data Owner

<i class="fa fa-caret-down"></i>

</button>

<div class="dropdown-content">

<a href="dore.jsp">New Registrations </a>

<a href="dol.jsp">List</a>

KMMIPS:Tirupati Page 42
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

</div>

</div>

</div></li>

<li >

<div class="navbar">

<div class="dropdown" >

<button class="dropbtn">Data Receiver

<i class="fa fa-caret-down"></i>

</button>

<div class="dropdown-content">

<a href="dure.jsp">New Registrations </a>

<a href="dul.jsp">List</a>

</div>

</div>

</div></li>

<li><a href="files.jsp">Flies</a></li>

<li><a href="csp.jsp">Logout</a></li>

</ul>

</div>

<div align="center">

<br>

<img alt="integrity" src="int.jpg" height="500px" width="900px">

</div>

</html>

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

KMMIPS:Tirupati Page 43
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

<!DOCTYPE html>

<html>

<head>

<meta charset="ISO-8859-1">

<title>A Parallel and Forward Private Searchable Public Key Encryption</title>

<link rel="stylesheet" type="text/css" href="style.css">

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-


awesome/4.7.0/css/font-awesome.min.css">

</head>

<body>

<%@include file="title.jsp" %>

<div>

<ul>

<li class="active" ><a href="dohome.jsp">Home</a></li>

<li >

<div class="navbar">

<div class="dropdown" >

<button class="dropbtn">File

<i class="fa fa-caret-down"></i>

</button>

<div class="dropdown-content">

<a href="upload.jsp">Upload </a>

<a href="view.jsp">View</a>

</div>

</div>

</div></li>

<li >

KMMIPS:Tirupati Page 44
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

<div class="navbar">

<div class="dropdown" >

<button class="dropbtn">Profile

<i class="fa fa-caret-down"></i>

</button>

<div class="dropdown-content">

<a href="profile.jsp">View </a>

<a href="doupdatepro.jsp">Update</a>

</div>

</div>

</div></li>

<li><a href="requests.jsp">Requests</a></li>

<li><a href="index.html">Logout</a></li>

</ul>

</div>

<div align="center">

<br>

<img alt="integrity" src="int.jpg" height="500px" width="900px">

</div>

KMMIPS:Tirupati Page 45
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

8.System
Testing
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.

Types Of Tests
8.1Unit 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.

8.2 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

KMMIPS:Tirupati Page 46
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

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.

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.

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

8.4White 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.

KMMIPS:Tirupati Page 47
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

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

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 strategy and approach


Field testing will be performed manually and functional tests will be written in detail.

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.

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

KMMIPS:Tirupati Page 48
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

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.

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.

KMMIPS:Tirupati Page 49
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

9.Conclusio
n
In this paper, we investigate the new architecture of a practical dynamic searchable
encryption scheme with efficiency and strong security. Fortunately, we also present a
new cryptographic primitive, namely parallel and forward private searchable public-
key encryption, and give a concrete construction. In our scheme, the star-chain data
structure makes it more search effective and supports forward privacy.

KMMIPS:Tirupati Page 50
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Appendic
es
HOME

KMMIPS:Tirupati Page 51
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

CSP LOGIN

KMMIPS:Tirupati Page 52
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

CSP HOME

KMMIPS:Tirupati Page 53
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

New data owner registration

KMMIPS:Tirupati Page 54
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Data owners

KMMIPS:Tirupati Page 55
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

New data receivers registration

KMMIPS:Tirupati Page 56
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Data receivers

KMMIPS:Tirupati Page 57
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

files

KMMIPS:Tirupati Page 58
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

file view

KMMIPS:Tirupati Page 59
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

data owner registration

KMMIPS:Tirupati Page 60
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

data owner login

KMMIPS:Tirupati Page 61
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

data owner home

KMMIPS:Tirupati Page 62
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

upload file

KMMIPS:Tirupati Page 63
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

view file

KMMIPS:Tirupati Page 64
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

file data

KMMIPS:Tirupati Page 65
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

profile view

KMMIPS:Tirupati Page 66
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

profile update

KMMIPS:Tirupati Page 67
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

file requests

KMMIPS:Tirupati Page 68
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

data receiver registration

KMMIPS:Tirupati Page 69
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

data receiver login (login with email and password)

KMMIPS:Tirupati Page 70
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Data user login (login with email and password)

KMMIPS:Tirupati Page 71
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Data receiver OTP (login with email and password)

KMMIPS:Tirupati Page 72
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Data receiver home

KMMIPS:Tirupati Page 73
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Search1

KMMIPS:Tirupati Page 74
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Search2 (Search results)

KMMIPS:Tirupati Page 75
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Search3 (view data)

KMMIPS:Tirupati Page 76
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Check responce

KMMIPS:Tirupati Page 77
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

View profile

KMMIPS:Tirupati Page 78
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Update profile

KMMIPS:Tirupati Page 79
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

Bibliograp
hy
[1] Q. Huang and H. Li, ‘‘An efficient public-key searchable encryption scheme
secure against inside keyword guessing attacks,’’ Inf. Sci., vols. 403–404, pp. 1–14,
Sep. 2017.

[2] Y. Zhang, J. Katz, and C. Papamanthou, ‘‘All your queries are belong to us: The
power of file-injection attacks on searchable encryption,’’ in Proc. USENIX Secur.
Symp., 2016, pp. 707–720.

[3] P. Xu, S. He, W. Wang, W. Susilo, and H. Jin, ‘‘Lightweight searchable public-key
encryption for cloud-assisted wireless sensor networks,’’ IEEE Trans. Ind. Informat.,
vol. 14, no. 8, pp. 3712–3723, Aug. 2018.

[4] H. Li, Q. Huang, J. Shen, G. Yang, and W. Susilo, ‘‘Designated-server identity-


based authenticated encryption with keyword search for encrypted emails,’’ Inf. Sci.,
vol. 481, pp. 330–343, May 2019.

[5] R. Bost, ‘‘6oøoς forward secure searchable encryption,’’ in Proc. ACM SIGSAC
Conf. Comput. Commun. Secur., 2016, pp. 1143–1154.

[6] K. S. Kim, M. Kim, D. Lee, J. H. Park, and W.-H. Kim, ‘‘Forward secure dynamic
searchable symmetric encryption with efficient updates,’’ in Proc. ACM SIGSAC
Conf. Comput. Commun. Secur. (CCS), 2017, pp. 1449–1463.

[7] X. Song, C. Dong, D. Yuan, Q. Xu, and M. Zhao, ‘‘Forward private searchable
symmetric encryption with optimized i/o efficiency,’’ IEEE Trans. Dependable Secure
Comput., to be published.

[8] M. Ma, D. He, N. Kumar, K.-K.-R. Choo, and J. Chen, ‘‘Certificateless searchable
public key encryption scheme for industrial Internet of Things,’’ IEEE Trans. Ind. Inf.,
vol. 14, no. 2, pp. 759–767, Feb. 2018.

KMMIPS:Tirupati Page 80
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing

[9] L. Wu, B. Chen, K.-K.-R. Choo, and D. He, ‘‘Efficient and secure searchable
encryption protocol for cloud-based Internet of Things,’’ J. Parallel Distrib. Comput.,
vol. 111, pp. 152–161, Jan. 2018.

[10] M. Ma, D. He, H. Wang, N. Kumar, and K.-K.-R. Choo, ‘‘An efficient and
provably secure authenticated key agreement protocol for fogbased vehicular ad-hoc
networks,’’ IEEE Internet Things J., vol. 6, no. 5, pp. 8065–8075, Oct. 2019. [11] R.
Bost and P.-A. Fouque, ‘‘Security-efficiency tradeoffs in searchable encryption,’’ on
Privacy Enhancing technol., vol. 2019, no. 4, pp. 132–151, Oct. 2019.

[12] L. Liu, J. Su, X. Liu, R. Chen, K. Huang, R. H. Deng, and X. Wang, ‘‘Toward
highly secure yet efficient KNN classification scheme on outsourced cloud data,’’
IEEE Internet Things J., vol. 6, no. 6, pp. 9841–9852, Dec. 2019.

[13] P. Vijayakumar, V. Chang, L. Jegatha Deborah, B. Balusamy, and P. Shynu,


‘‘Computationally efficient privacy preserving anonymous mutual and batch
authentication schemes for vehicular ad hoc networks,’’ Future Gener. Comput.
Syst., vol. 78, pp. 943–955, Jan. 2018.

[14] W. Kong, J. Shen, P. Vijayakumar, Y. Cho, and V. Chang, ‘‘A practical group
blind signature scheme for privacy protection in smart grid,’’ J. Parallel Distrib.
Comput., vol. 136, pp. 29–39, Feb. 2020.

[15] Y. Yang, X. Zheng, W. Guo, X. Liu, and V. Chang, ‘‘Privacy-preserving smart


IoT-based healthcare big data storage and self-adaptive access control system,’’ Inf.
Sci., vol. 479, pp. 567–592, Apr. 2019. [16] M. S. Islam, M. Kuzu, and M.
Kantarcioglu, ‘‘Access pattern disclosure on searchable encryption: Ramification,
attack and mitigation,’’ in Proc. Ndss, vol. 20, Feb. 2012, p. 12

KMMIPS:Tirupati Page 81

You might also like