Verifiable and Multi-Keyword Searchable Attribute-Based Encryption Scheme For Cloud Storage
Verifiable and Multi-Keyword Searchable Attribute-Based Encryption Scheme For Cloud Storage
Submitted by
Vemuri Janakiram
[Reg.no.16021F0005]
I hereby declare that the work described in this thesis, entitled “A Smart Public
Transport Service System”, which is being submitted by me in partial fulfilment of the
requirements for the award of degree of Master of Computer Applications in the
department of Computer Science & Engineering to the University College of
Engineering Kakinada (Autonomous), Jawaharlal Nehru Technological University,
Kakinada– 533003, A.P., is the result of investigations carried out by me under the
guidance of Mrs.S.Surekha, Assistant Professor of Computer Science and
Engineering, University College of Engineering, Jawaharlal Nehru Technological
University, Kakinada-533003.
The work is original and has not been submitted to any other University or
Institute for the award of any degree or diploma.
This is to certify that the thesis entitled “A Smart Public Transport Service
System”, that is being submitted by VEMURI JANAKIRAM, Roll No.16021F0005, in
partial fulfilment of the requirements for the award of degree of Master of Computer
Applications in the Department of Computer Science & Engineering to the University
College of Engineering Kakinada (Autonomous), Jawaharlal Nehru Technological
University Kakinada is a record of bonafide project work carried out by him under my
guidance and supervision.
The results embodied in this thesis have not been submitted to any other
University or Institute for the award of any degree or diploma.
This is to certify that the thesis entitled “A Smart Public Trasport Service
System”, that is being submitted by VEMURI JANAKIRAM, Roll No. 16021F0005, in
partial fulfilment of the requirements for the award of degree of Master of Computer
Applications in the Department of Computer Science & Engineering to the University
College of Engineering Kakinada (Autonomous), Jawaharlal Nehru Technological
University Kakinada is a record of bonafide project work carried out by him at our
department.
The successful completion of any task is not possible without proper suggestion,
guidance and environment. Combination of these three factors acts like backbone to my
“A Smart Public Transport Service System”, project.
My Sincere thanks to head of department Dr. K. Sahadevaiah sir and all the
teaching and non-teaching staff of Department of Computer Science and Engineering for
their support throughout my project work.
Finally, I would like to thank my family and friends for their support and motivation,
which helped me to complete the project successfully.
Vemuri Janakiram
Roll No: 16021F0005
University College of Engineering (Autonomous),
Jawaharlal Nehru Technological University,
Kakinada - 533003, E.G.District, AP.
ABSTRACT
Contents ii
List of Figures iv
14
2.1.4 Intelligent Bus Monitoring and Management
System
15
2.1.5 Realization of Multiple Human Head Detection
15
2.1.6 Improving Face Recognition with Image Pre-
Processing
15-16
iii
LIST OF FIGURES
iv
Chapter 1 Introduction
1
1.1 Verifiable and Multi-keyword Searchable Attribute-based
Encryption Scheme for Cloud Storage
With the fast development of information technology, cloud storage now plays a very
crucial role in our daily life. For the sake of insuring data security, the important data that are
uploaded to cloud server needs to be kept confidential, which requires data owners to encrypt
private files before uploading. Meanwhile, it is also necessary to quickly find required files for
data users by keyword searching from a vast amount of encrypted data. Therefore, in order to
enable a secure keyword search and protect data user's search privacy, setting the keyword
index of file is essential. That means that, although cloud server provides a search service, it
does not know any information of keyword searching by data users. Consequently, it has
important theoretical value and practical significance to study secure and practical attribute-
based encryption schemes that sustaining both attribute revocation and multi-keyword search.
With the development of the information technology, more and more information exchanges
on the Internet. Therefore, not only the computers but also the mobile devices produce high-
volume of data. As a result, cloud storage has become more and more popular with the low
cost and vast capacity. While the information uploaded to the cloud may be sensitive and data
owners want to keep them secret and prevent them from being exposed. What concerns data
owners is that the cloud server is capable of manipulating their data in the cloud storage, so a
method of encryption on the important data before uploading has been adopted. On the other
hand, the goal of file storage is that we can find 1 data when we need them. Although
encryption helps in keeping data safe, it makes performing computation on the data difficult,
such as search operations. One of naive methods is to download all encrypted files and decrypt
them, then we can perform search operations on the plaintext files. This results in the huge
bandwidth overhead and extra cost on the storage of downloaded files. The searchable
encryption(SE) can solve the problem of searching on the ciphertext and take full advantage of
the cloud computing. Let’s consider a scenario: In a hospital, all patients’ information are
uploaded to the hospital system in the form of ciphertexts, which include their names,
telephone numbers, disease types, record time, the name of their doctors and so on. As a
patient, he should be able to search all the information about himself and nothing about other
people. As a doctor, to track the patients’ recovery, he can search the names and telephone
numbers of his patients. Even the doctor of a patient A changed for some reason, the new
doctor still can search the name and telephone number of A without encrypting A’s
information again. The sstatistical department can search the number of the patients who
affected some type of diseases during a certain period of time. Therefore, in this scenario, the
different authorities should be given to different people so that they can search different
information according to their roles. However, most existing schemes are not able to achieve
this. In the general symmetric searchable encryption(SSE) setting, when a data user wants to
search on the files, he should request a search token from the data owner. After sending the
search token to the cloud, the data users will receive search results computed by the cloud
server. In this case, we can see that the keyword that the data user searched is known by the
data owner which is not desirable. What’s more, multi-owners to multi-users scheme model is
more practical than one-owners to one users. And, the computing capacity of mobile phones
and wearable devices are so week that they only perform efficient algorithms. The problem of
the computation complexity and space complexity of is worth noting. And the response speed
of search operations should be improved.
With the development of cloud computing, many of information can be shared through
computer networks. The cloud server (CS) can provide users with a variety of services, such as
outsourcing commission calculations and data storage. Users can store their large amounts of
data to the CS and share data with other users. For the purpose of the security of storage data
and user’s privacy, data is usually stored in encrypted form in CS. However, under this
environment users will encounter a difficulty problem of how to search keyword in ciphertext.
Searchable Encryption (SE) is a cryptographic technology that has been developed for many
years, which supports users’ keyword search in ciphertext. In the meanwhile, it can save a lot
of network and computational overhead for user, and take advantage of the huge computing
power of CS. The SE technology mainly solves the problem of how to use the server to
complete the search for interesting keywords when the data is encrypted and stored in CS, but
CS is not completely trusted. How to improve the efficiency of keyword search while reducing
local computing load is still a problem to be solved. Most of existing schemes support single-
keyword search. Single-keyword search waste network bandwidth and computing resources,
as this search method returns a large number of results, this means that the search result is not
accurate. That is, when a data user uses multi- keyword search, the cloud sever will return
relatively few number of files containing these multikeyword, thus the search result is much
more accurate than when a data user uses one keyword search. In order to solve this problem,
multi-keyword search is proposed. Most of existing attribute-based encryption (ABE) schemes
have high computational costs at user client. These problems greatly limit the applications of
ABE schemes in practice. To solve the problems of network bandwidth waste and high
computational cost, we propose a verifiable and multi-keyword searchable attribute-based
encryption (VMKS-ABE) scheme for cloud storage, in which many computing tasks are
outsourced to cloud proxy server to reduce local computing burden, the scheme also supports
the verification of the correctness of outsourced private keys. In our new scheme multi-
keyword can be searched and the search privacy is protected, which can greatly improve the
accuracy of keyword search.
4
1.2 Cloud Computing
This project proposes secureDBaaS. Here all databases are encrypted and stored in the
cloud. It allows multiple and distributed users to access their own databases concurrently and
independently. Each user uses adaptive encryption scheme for encrypting databases.
SecureDBaaS guarantees confidentiality of information at rest, in motion and in use when data
are managed through cloud database services. SecureDBaaS eliminate any intermediate proxy
server, so a user can achieve availability, scalability and elasticity of DBaaS. Same as
confidentiality secureDBaaS maintain the concurrency. The clients access the encrypted
database through sql queries and decrypt the database through corresponding algorithms. The
rest of the paper is organized as follows: Section II represents literature survey, section III
represents problem definition, section IV provides system architecture, section V represents
the methodology, section VI, VII and VIII represents results and discussion, conclusion and
future scope of the paper.
Broad network access: Capabilities are available over the network and accessed through
standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g.,
mobile phones, laptops, and PDAs).
Resource pooling: The provider’s computing resources are pooled to serve multiple
consumers using a multi-tenant model, with different physical and virtual resources
dynamically assigned and reassigned according to consumer demand. There is a sense of
location-independence in that the customer generally has no control or knowledge over the
exact location of the provided resources but may be able to specify location at a higher level
of abstraction (e.g., country, state, or data center). Examples of resources include storage,
processing, memory, network bandwidth, and virtual machines.
Rapid elasticity: Capabilities can be rapidly and elastically provisioned, in some cases
automatically, to quickly scale out and rapidly released to quickly scale in. To the consumer,
the capabilities available for provisioning often appear to be unlimited and can be purchased
in any quantity at any time.
Measured service: Cloud systems automatically control and optimize resource use by
leveraging a metering capability at some level of abstraction appropriate to the type of
service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can
be managed, controlled, and reported providing transparency for both the provider and
consumer of the utilized service.
Characteristics of cloud computing
Services Models:
Advantages:
Software Environment
Java Technology
Java technology is both a programming language and a platform.
High performance
Interpreted
Multithreaded
Robust
Dynamic Simple
Architecture neutral
Object oriented
Portable
Distributed
Secure
You can think of Java byte codes as the machine code instructions for
the Java Virtual Machine (Java VM). Every Java interpreter, whether it’s a
development tool or a Web browser that can run applets, is an implementation of
the Java VM. Java byte codes help make “write once, run anywhere” possible.
You can compile your program into byte codes on any platform that has a Java
compiler. The byte codes can then be run on any implementation of the Java VM.
That means that as long as a computer has a Java VM, the same program written
in the Java programming language can run on Windows 2000, a Solaris
workstation, or on an iMac.
The Java Platform
A platform is the hardware or software environment in which a
program runs. We’ve already mentioned some of the most popular
platforms like Windows 2000, Linux, Solaris, and MacOS. Most platforms
can be described as a combination of the operating system and hardware.
The Java platform differs from most other platforms in that it’s a software-
only platform that runs on top of other hardware-based platforms.
The Java platform 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.
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.
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 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
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 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 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.
2. 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.
3. 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.
4. 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.
5. Use strong, static typing wherever possible
Strong typing allows for more error checking to be done at compile
time; also, less error appear at runtime.
6. 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.
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.
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.
Networking:
TCP/IP stack
TCP:
TCP supplies logic to give a reliable connection-oriented protocol above
IP. It provides a virtual circuit that two processes can use to communicate.
Internet addresses:
In order to use a service, you must be able to find it. The Internet uses an
address scheme for machines so that they can be located. The address is a 32 bit
integer which gives the IP address. This encodes a network ID and more
addressing. The network ID falls into various classes according to the size of the
network address.
Network address:
Class A uses 8 bits for the network address with 24 bits left over for other
addressing. Class B uses 16 bit network addressing. Class C uses 24 bit network
addressing and class D uses all 32.
Subnet address
Internally, the UNIX network is divided into sub networks. Building 11 is
currently on one sub network and uses 10-bit addressing, allowing 1024 different
hosts.
Host address
8 bits are finally used for host addresses within our subnet. This places a
limit of 256 machines that can be on the subnet.
Total address:
The 32 bit address is usually written as 4 integers separated by dots.
Port addresses:
A service exists on a host, and is identified by its port. This is a 16 bit
number. To send a message to a server, you send it to the port for that service of
the host that it is running on. This is not location transparency! Certain of these
ports are "well known".
Sockets:
A socket is a data structure maintained by the system to handle network
connections. A socket is created using the call socket. It returns an integer that
is like
a file descriptor. In fact, under Windows, this handle can be used with
Read File and Write File functions.
#include <sys/types.h>
#include <sys/socket.h>
int socket(int family, int type, int protocol);
Here "family" will be AF_INET for IP communications, protocol
will be zero, and type will depend on whether TCP or UDP is used. Two
processes wishing to communicate over a network create a socket each.
These are similar to two ends of a pipe - but the actual pipe does not yet
exist.
JFree Chart:
JFreeChart is a free 100% Java chart library that makes it easy for
developers to display professional quality charts in their applications.
JFreeChart's extensive feature set includes:
A consistent and well-documented API, supporting a wide range of chart
types;
A flexible design that is easy to extend, and targets both server-side and
client-side applications;
Support for many output types, including Swing components, image files
(including PNG and JPEG), and vector graphics file formats (including PDF,
EPS and SVG)
JFreeChart is "open source" or, more specifically, free software. It is
distributed under the terms of the GNU Lesser General Public Licence
(LGPL), which permits use in proprietary applications.
1. Map Visualizations:
Charts showing values that relate to geographical areas. Some examples
include: (a) population density in each state of the United States, (b) income per
capita for each country in Europe, (c) life expectancy in each country of the
world. The tasks in this project include:
Sourcing freely redistributable vector outlines for the countries of the
world, states/provinces in particular countries (USA in particular, but also other
areas):
Creating an appropriate dataset interface (plus default implementation), a
rendered, and integrating this with the existing XYPlot class in JFreeChart;
Testing, documenting, testing some more, documenting some more.
3. Dashboards:
There is currently a lot of interest in dashboard displays. Create a flexible
dashboard mechanism that supports a subset of JFreeChart chart types (dials,
pies, thermometers, bars, and lines/time series) that can be delivered easily via
both Java Web Start and an applet.
4. Property Editors:
The property editor mechanism in JFreeChart only handles a small subset
of the properties that can be set for charts. Extend (or reimplement) this
mechanism to provide greater end-user control over the appearance of the charts.
J2ME (Java 2 Micro edition):-
Sun Microsystems defines J2ME as "a highly optimized Java run-time
environment targeting a wide range of consumer products, including pagers,
cellular phones, screen-phones, digital set-top boxes and car navigation
systems." Announced in June 1999 at the JavaOne Developer Conference, J2ME
brings the cross-platform functionality of the Java language to smaller devices,
allowing mobile wireless devices to share applications. With J2ME, Sun has
adapted the Java platform for consumer products that incorporate or are based on
small computing devices.
1. General J2ME architecture
4. Configurations overview
The configuration defines the basic run-time environment as a set of core classes
and a specific JVM that run on specific types of devices. Currently, two
configurations exist for J2ME, though others may be defined in the future:
Connected Limited Device Configuration (CLDC) is used specifically
with the KVM for 16-bit or 32-bit devices with limited amounts of
memory. This is the configuration (and the virtual machine) used for
developing small J2ME applications. Its size limitations make CLDC
more interesting and challenging
5.J2ME profiles:
What is a J2ME profile?
As we mentioned earlier in this tutorial, a profile defines the type of
device supported. The Mobile Information Device Profile (MIDP), for example,
defines classes for cellular phones. It adds domain-specific classes to the J2ME
configuration to define uses for similar devices. Two profiles have been defined
for J2ME and are built upon CLDC: KJava and MIDP. Both KJava and MIDP
are associated with CLDC and smaller devices. Profiles are built on top of
configurations. Because profiles are specific to the size of the device (amount of
memory) on which an application runs, certain profiles are associated with
certain configurations.
A skeleton profile upon which you can create your own profile, the
Foundation Profile, is available for CDC.
Profile 1: KJava
KJava is Sun's proprietary profile and contains the KJava API. The KJava
profile is built on top of the CLDC configuration. The KJava virtual machine,
KVM, accepts the same byte codes and class file format as the classic J2SE
virtual machine. KJava contains a Sun-specific API that runs on the Palm OS.
The KJava API has a great deal in common with the J2SE Abstract Windowing
Toolkit (AWT). However, because it is not a standard J2ME package, its main
package is com.sun.kjava. We'll learn more about the KJava API later in this
tutorial when we develop some sample applications.
Profile 2: MIDP
MIDP is geared toward mobile devices such as cellular phones and pagers.
The MIDP, like KJava, is built upon CLDC and provides a standard run-time
environment that allows new applications and services to be deployed
dynamically on end user
12
2.1 Related Work
Searchable encryption is a primitive, which not only protects data privacy of data owners but
also enables data users to search over the encrypted data .Cloud instances are isolated in the network
from other instances for improved security. The data owners needs to use every authorized user’s
public key to encrypt data and the application is restricted in real environment. New attacks which
recovers the contents of individual user queries by assuming no leakage from the system except the
number of results is presented [3]. By exploiting the behavior of specific applications, we can
immediately have an attack without making further assumptions like prior work does about the
underlying system
It is desirable to store data on data storage servers such as mail servers and file servers in
encrypted form to reduce security and privacy risks. They are secure and they provide provable
secrecy for encryption, which means that the un-trusted server cannot learn anything about the
plaintext given by the cipher text [7]. It is impossible to learn about the plaintext than the search
result by the un-trusted servers. The current security mechanism poses a risk for organizations
that outsources their data management to the un-trusted servers. Encrypting and decrypting
sensitive data at the client side is the common approach in this situation but it has high
communication and computation overheads if only a subset of the data is required, for example,
selecting records in database table based on the keyword search. New cryptographic schemes are
been proposed that support encrypted queries over encrypted data but all depend on a single set
of secret keys, this implies that the single user access or share keys among multiple users, with
key revocation requiring costly data re-encryption
2.1.3 Public Key Encryption With Keyword Search Based On
Factoring [3] AUTHOR: Wenjun Luo, Jianming Tan
Public key encryption with keyword search (PKES) enables senders to send
encrypted data to F receiver like traditional public key encryption (PKE) schemes. The PKES
used in the factoring scheme is secure and it is computationally efficient. The public
parameters in the scheme is short, it is in need of public modules and a random element of the
set of integers. This problem is the focus of active research and several security definitions
and the constructions which have been proposed. In this paper we are going to review
existing security definitions, which point out their short- comings, and propose a new
stronger definition which is proved to be equivalent. We then present the constructions which
is secure under our new definitions. And also to satisfy stronger security guarantees, these
constructions are more efficient than all previous constructions.
2.1.4 Fuzzy Keyword Search Over Encrypted Data in Cloud Computing [4]
AUTHOR: Li, Dong Zheng, Yinghui
The information is being centralized into the cloud and data is encrypted before
outsourcing. It greatly enhances system usability by returning the matching file when user is
searching. It only supports exact keyword search. And also to satisfy stronger security
guarantees, these constructions are more efficient than all previous constructions. Further
work on SSE only considers the setting where the owner of the data is capable of submitting
search queries. The natural extension where an arbitrary group of parties other than the owner
can submit search queries is considered in this process. The SSE in this multi-user setting,
and present an efficient construction is defined.
Chapter 3 System Analysis
S18
3.1 Methodology
System Methodology
Input Image
Pre-processing
Image enhanc-
Gray scale
conversion Scaling ement for hazy
PHASE - I image
19
3.1.1 Image Pre-processing:
Pre-processing
20
ii. Scaling
21
Estimate intensity of atmospheric light:The intensity of atmospheric light is
estimated by first identifying the top 0.1% brightest pixels in the dark channel
(fdark(x)). From among these pixels, the one with highest intensity is selected
as the one representing the atmospheric light.
Clarify image:Finally, clarified the image to set transmission map t(x) set as
maximum with constant value to avoiding dividing by zero.
22
3.1.2 Human Face Detection
In phase II, detecting the multiple faces in an image who are waiting for the
bus.opencv is used for detecting the human faces in the input image. OpenCV
comes with a trainer as well as detector. OpenCV already contains many pre-trained
classifiers for face, eyes etc. Those XML files are stored in the
opencv/data/haarcascades/ folder.
In figure 3.7, it shows the number of detected faces in the given image.
23
Chapter 4 System Requirements
24
I implemented the project under these system configuration tools,
core i3 or
Processor : Higher
RAM : 4GB(min)
Hard Disk : 10 GB
Windows
Operating System : 7/10/linux
Tool/IDE : NetBeans
25
Chapter 5 System implementation
5.1
Chapter 6 System Design
43
6.1 Use Case Diagram
Login
View Profile
View Files
DataUser
Download Fille
Logout
Registration
Login
View Profile
DataOwner
Upload
Logout
Login
View Users
View DataOwners
View Files
Cloud
View All Transaction Roles
Result
Time Delay
Throughput
Logout
Login
Logout
Login
Proxy
View All Permited Files
Logout
Login
OkGSP
View File Request and Give
Permission
Logout
Login
OkGSP
View File Request and Give
Permission
Logout
Class Diagrram:
DataOwner
id CloudProxyServer
name
id
password
password
email
phone
Login()
city Cloud Permit Files and send To Cloud()
state
id View All Permited Files()
qualification
password Logout()
name
Register()
type
Login()
ViewAllUploadedFiles()
Login()
UploadFile()
ViewAllUsers()
ViewFileRequest()
ViewAllDataOwner()
Logout()
ViewAllUploadedFiles()
ViewAllDownloadedFiles()
Logout()
OKGSP DataUser
Id id
password name
name password
email
Login() phone
vView Search Key Request and generate() city
View File Request and Give Permission() state
Logout() qualification
Register()
Login()
FileRequest()
download()
viewalluploadedfiles()
logout()
45
6.3 Activity Diagram
46
Chapter 7 Test cases
47
Test Cases
Case-1
If the camera cables were not connected properly,it shows the error “Unable
to Capture the Image”.
Case-2
If there is no internet connection, it shows the “Network Error”.
Action: check the internet connection.
Case-3
If the image is fully dark, it shows the error “No Passengers Found”.
Action: get the enhanced image by using image enhancement option.
Case-4
If the image is blurred, it shows the error “Unable to Detect Human Faces”.
Action: change the camera positions and use image enhancement options.
48
Chapter 8 Experimental Analysis
49
8.1 Experimental Results
Figure 8.2: Number of Persons Waiting for the Bus at Platform No. 10
50
Figure 8.3: Number of Persons Waiting for the Bus at Platform No. 30
51
Figure 8.5: Image Enhancement for Hazy Image
52
Chapter 9 Conclusion and Future Scope
53
9.1 Conclusion
In this article we proposed VMKS-ABE scheme. In our scheme, we combine the verifiable of
the correctness of outsourced private key with multi-keyword search based on attribute
encryption. In the general group model, the security of keyword index is proved. Under the
random oracle model, the ciphertext is proved to be selectively secure. Since the security in
the general group model is much weak than in the standard model, it is worth constructing
verifiable and multi-keyword searchable scheme in the standard model.
54
9.2 Future Scope
This work can be further extended for, recognizing the gender (male or
female) ratio. if the female ratio is more, then the respective authorities will route
more she buses as per the requirement.
55
Chapter 10 References
56
[1] D.X. Song, D. Wanger, and A. Perrig, "Practical Techniques for Searches on Encrypted
Data," IEEE Symposium on Security & Privacy, Washington, DC, USA: IEEE Computer
Society, May 2000, pp. 44-55.
[2] C. Dong, G. Russello, N. Dulay, "Shared and Searchable Encrypted Data for Untrusted
Servers," Lecture Notes in Computer Science, Berlin, Germany: Springer, Jul. 2008, pp.127-
143.
[3] S. Li and M. Xu, "Attribute-Based Public Encryption with Keyword Search," Chinese
Journal of Computers, vol. 37, no. 5, 1018-1024, Jun. 2014, doi:
10.3724/SP.J.1016.2014.01017.
[6] J. Li, Q. Wang, C. Wang, N. Cao, K. Ren, and W. Lou, "Fuzzy keyword search over
encrypted data in cloud computing," International Journal of Engineering Research and
Applications, vol. 4, no. 7, pp. 441-445, May 2014, doi: 10.1109/INFCOM.2010.5462196.
[7] W. Sun, S. Yu, W. Lou, Y. Hou, and H. Li, "Protecting Your Right: Verifiable Attribute-
Based Keyword Search with Fine-Grained OwnerEnforced Search Authorization in the
Cloud," IEEE INFOCOM, vol. 27, no. 4, pp. 226-234, Jul. 2014, doi:
10.1109/INFOCOM.2014.6847943.
[10] Q. Chai and G. Gong, "Verifiable symmetric searchable encryption for semi-honest-but-
curious cloud servers," IEEE International Conference on Communications, Jun. 2012, pp.
917-922.
[12] V. Goyal, O. Pandey, A. Sahai, and B. Waters, "Attribute-based encryption for fine-
grained access control of encrypted data," in Proc. 13th ACM Conf. Comput. Commun.
Secur. (CCS), New York, NY, USA: ACM, 2006, pp. 89-98.
[16] H. Cui, R. H. Deng, G. Wu, and J. Lai, "An Efficient and Expressive Ciphertext-Policy
Attribute-Based Encryption Scheme with Partially Hidden Access Structures." Computer
Networks, vol. 133, no. 14, pp. 157-165, May 2018, doi: org/10.1016/j.comnet.2018.01.034.
[19] Z. Wan, J. Liu, and R. H. Deng , "HASBE: A Hierarchical AttributeBased Solution for
Flexible and Scalable Access Control in Cloud Computing," IEEE Transactions on
Information Forensics and Security , vol. 7, no. 2, pp. 743-754, 2012, doi:
10.1109/TIFS.2011.2172209.
[20] H. Deng, Q. Wu, B. Qin, J. Domingo-Ferrer, L. Zhang, J. Liu, and W. Shi, "Ciphertext-
policy hierarchical attribute-based encryption with short ciphertexts," Information Sciences,
vol. 275, no. 10, pp. 370-384, Aug. 2014. doi: 10.1016/j.ins.2014.01.035
[21] D. Li, C. Jie, J. Liu, Q. Wu, and W. Liu, "Efficient CCA2 Secure Revocable Multi-
authority Large-Universe Attribute-Based Encryption." In: S. Wen, W. Wu, A. Castiglione
Eds. Cyberspace Safety and Security, Oct.2017, pp. 103-118.
[22] Z. Kai, L. Hui, J. Ma, and X. Liu, "Efficient large-universe multiauthority ciphertext-
policy attribute-based encryption with white-box traceability," Information Sciences, vol. 61,
no. 3, pp.16-28, Mar. 2018, doi: 10.1007/s11432-016-9019-8.
[24] H. Wang, Z. Zheng, L. Wu, Y. Wang, H. Wang, Z. Zheng, L. Wu, Y. Wang, H. Wang,
and Z. Zheng, "Adaptively secure outsourcing ciphertext-policy attribute-based encryption,"
Journal of Computer Research & Development, vol.52, no. 10, pp. 2270-2280, Aug. 2015,
doi:10.7544/issn1000-1239.2015.20150497.
[25] Z. Rui, M. Hui, and L. Yao, "Fine-grained access control system based on fully
outsourced attribute-based encryption," Journal of Systems and Software, vol. 125, pp. 344-
353, Mar. 2017, doi: 10.1016/j.jss.2016.12.018.
[26] J. Lai, R. H. Deng, C. Guan, and Weng J, "Attribute-Based Encryption With Verifiable
Outsourced Decryption," IEEE Transactions on Information Forensics & Security, vol. 8,no.
8, pp. 1343-1354, 2013, doi: 10.1109/TIFS.2013.2271848.
[27] X. Mao, J. Lai, Q. Mei, K. Chen, and J. Weng, "Generic and Efficient Constructions of
Attribute-Based Encryption with Verifiable Outsourced Decryption," IEEE Transactions on
Dependable & Secure Computing, vol. 13, no. 5, pp. 533-546, Apr. 2016, doi:
10.1109/TDSC.2015.2423669.
[28] J. Li, X. Huang, J. Li, X. Chen, and Y. Xiang, "Securely Outsourcing Attribute-Based
Encryption with Checkability," IEEE Transactions on Parallel & Distributed Systems, vol.
25, no. 8, pp. 2201-2210, Oct. 2013, doi: 10.1109/TPDS.2013.271.
[29] H. Wang, D. He, J. Shen, Z. Zheng, C. Zhao, and M. Zhao, "Verifiable outsourced
ciphertext-policy attribute-based encryption in cloud computing," Soft Computing, vol. 21,
no. 24, pp. 7325-7335, Jul. 2017, doi: 10.1007/s00500-016-2271-2.
[30] J. Li, Y. Wang, Y. Zhang, and J. Han, "Full Verifiability for Outsourced Decryption in
Attribute Based Encryption," IEEE Transactions on Services Computing, pp. 1343-1354,
May 2017, doi: 10.1109/TSC.2017.2710190.
[31] J. Li, Y. Wei, J. Han, Y. Zhang, and S. Jian, "User Collusion Avoidance CP-ABE With
Efficient Attribute Revocation for Cloud Storage," IEEE Systems Journal, vol. 12, no. 2, pp.
1767-1777, Jun. 2018, doi: 10.1109/JSYST.2017.2667679.
[32] H. Yin, J. Zhang, Y. Xiong, L. Ou, F. Li, S. Liao, and K. Li, "CP-ABSE: A Ciphertext-
Policy Attribute based Searchable Encryption Scheme," IEEE Access, pp. 1-13, Jan. 2019,
doi: 10.1109/ACCESS.2018.2889754.
[33] D. Zheng, A. Wu, Y. Zhang, and Q. Zhao, "Efficient and PrivacyPreserving Medical
Data Sharing in Internet of Things With Limited Computing Power," IEEE Access, vol.6, pp.
28019-28027, May 2018, doi: 10.1109/ACCESS.2018.2840504.
[34] B. Dan, X. Boyen, and EJ. Goh, "Hierarchical identity based encryption with constant
size ciphertext," the 24th International Conference on Theory and Applications of
Cryptographic Techniques, Berlin, Germany: Springer, May 2005, pp. 440-456.
[35] J. T. Schwartz, "Fast polynomial algorithms for verification of polynomial identities,"
Journal of the Acm, vol. 27, no. 4, pp. 701-717, Jan. 1980, doi: 10.1007/3-540-09519-5_72.
[36] Y. Miao, J. Ma, X. Liu, F. Wei, Z. Liu, and XA. Wang, "m2-ABKS: Attribute-Based
Multi-Keyword Search over Encrypted Personal Health Records in Multi-Owner Setting,"
Journal of Medical Systems, vol. 40, no.11 pp. 246-258, Nov. 2016, doi:10.1007/s10916-016-
0617
[37] K. Zhang, J. Ma, J. Liu, and H. Li, "Adaptively secure multi-authority attribute-based
encryption with verifiable outsourced decryption," Science China, vol. 59, no. 9, pp. 99-105,
Aug. 2016, doi: 10.1007/s11432-016-0012-9.
Proposed System :