Professional Documents
Culture Documents
A Parallel and Forward Private Searchable Public-Key Encryption For Cloud-Based Data Sharing
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
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
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.
This project consists of eight chapters with an overview of “probably secure dynamic
Id based anonymous two factor authenticated key exchange protocol”
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.
KMMIPS:Tirupati Page 2
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
Chapter 6 System Design: It contains the description of all the tables and its
attributes, design principles, user interface design.
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
2.1.1 Disadvantages:
2.2.1 Advantages
KMMIPS:Tirupati Page 4
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
2.3Modules:
Data Owner
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.
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL 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.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
login
login Data Owners- view new
registrations, Accepted list
logout
logout
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()
KMMIPS:Tirupati Page 10
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
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
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:
KMMIPS:Tirupati Page 12
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
login
login
Data Owners- view new registrations, Accepted list
View files
Logout
Logout Logout
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
data
receiver
CSP
4.8 ER Diagram:
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:
5.2Software requirements:
Java Technology
Java technology is both a programming language and a platform.
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 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.
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
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.
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.
And for dynamically updating the cache table we go for MS Access database.
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.
KMMIPS:Tirupati Page 25
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
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.
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.
<body> This tag represents the document's body which keeps other
HTML tags like <h1>, <div>, <p> etc.
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
KMMIPS:Tirupati Page 30
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
KMMIPS:Tirupati Page 31
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
KMMIPS:Tirupati Page 32
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
KMMIPS:Tirupati Page 33
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
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:
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.
The output form of an information system should accomplish one or more of the
following objectives.
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.
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">
</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
</head>
<body>
<div align="center">
<ul>
<li >
<div class="navbar">
</button>
<div class="dropdown-content">
<a href="dologin.jsp">Login</a>
</div>
</div>
</div></li>
<li >
<div class="navbar">
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="dulogin.jsp">Login</a>
</div>
</div>
</div></li>
</ul>
</div>
<h2>CSP Login</h2>
<b> <table>
<tr>
<tr>
-->
</table>
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">
</head>
<body>
<div align="center">
<ul>
<li >
<div class="navbar">
</button>
<div class="dropdown-content">
<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">
</button>
<div class="dropdown-content">
<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>
</div>
</html>
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">
</head>
<body>
<div>
<ul>
<li >
<div class="navbar">
<button class="dropbtn">File
</button>
<div class="dropdown-content">
<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">
<button class="dropbtn">Profile
</button>
<div class="dropdown-content">
<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>
</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.
KMMIPS:Tirupati Page 46
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
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.
KMMIPS:Tirupati Page 47
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
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.
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
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
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
KMMIPS:Tirupati Page 60
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
KMMIPS:Tirupati Page 61
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
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
KMMIPS:Tirupati Page 69
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
KMMIPS:Tirupati Page 70
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
KMMIPS:Tirupati Page 71
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
KMMIPS:Tirupati Page 72
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
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
KMMIPS:Tirupati Page 75
A Parallel and Forward Private Searchable Public-Key Encryption for
Cloud-Based Data Sharing
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.
[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.
[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.
KMMIPS:Tirupati Page 81