0% found this document useful (0 votes)
257 views

Verifiable and Multi-Keyword Searchable Attribute-Based Encryption Scheme For Cloud Storage

This document describes a project thesis submitted by Vemuri Janakiram for the degree of Master of Computer Applications. The thesis is titled "A Smart Public Transport Service System" and was conducted under the guidance of Mrs. S. Surekha. The document includes declarations by the student and supervisor, certificates from the supervisor and head of the department, acknowledgements, an abstract, and a table of contents describing the included chapters which discuss intelligent transportation systems, image processing, machine learning for face detection, and the organization of the thesis.

Uploaded by

PravashSahoo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
257 views

Verifiable and Multi-Keyword Searchable Attribute-Based Encryption Scheme For Cloud Storage

This document describes a project thesis submitted by Vemuri Janakiram for the degree of Master of Computer Applications. The thesis is titled "A Smart Public Transport Service System" and was conducted under the guidance of Mrs. S. Surekha. The document includes declarations by the student and supervisor, certificates from the supervisor and head of the department, acknowledgements, an abstract, and a table of contents describing the included chapters which discuss intelligent transportation systems, image processing, machine learning for face detection, and the organization of the thesis.

Uploaded by

PravashSahoo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 83

A Project Thesis On

“A Smart Public Transport Service System”


Project Work Submitted in partial fulfilment of the requirements for the award of the
degree of

MASTER OF COMPUTER APPLICATIONS


in
COMPUTER SCIENCE AND ENGINEERING

Submitted by
Vemuri Janakiram
[Reg.no.16021F0005]

Under the esteemed guidance of


Mrs. S. Surekha
Assistant Professor

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


UNIVERSITY COLLEGE OF ENGINEERING KAKINADA (A)
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY
KAKINADA
KAKINADA-533003, A.P, INDIA
2016-2019
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
UNIVERSITY COLLEGE OF ENGINEERING KAKINADA (A)
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY
KAKINADA KAKINADA - 533003, A.P, INDIA

DECLARATION BY THE STUDENT

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.

Place : Kakinada Signature :


Date : Name : VEMURI JANAKIRAM
Roll No. : 16021F0005
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
UNIVERSITY COLLEGE OF ENGINEERING KAKINADA (A)
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY KAKINADA KAKINADA
- 533003, AP, INDIA

CERTIFICATE FROM THE SUPERVISOR

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.

Signature of the Supervisor


Mrs. S. Surekha
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
UNIVERSITY COLLEGE OF ENGINEERING KAKINADA (A)
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY
KAKINADA KAKINADA - 533003, AP, INDIA

CERTIFICATE FROM HEAD OF THE DEPARTMENT

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.

Signature of Head of the Department


Dr. K. Sahadevaiah
ACKNOWLEDGEMENTS

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.

At first I would like to thank to my supervisor Mrs. S.Surekha, Assistant Professor


of the Department of CSE, for accepting and supporting me as a Project student. I
sincerely convey my gratefulness and heartfelt to honourable and esteemed project
guide for her supervision, guidance, encouragement, and counsel throughout my Project.
Without her invaluable advice and assistance, it would not have been possible for me to
complete this thesis. Her words of encouragement have often inspired me and improved
my hopes for completing the project work.

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

In an attribute-based searchable encryption (ABSE) scheme, data owners can encrypt


their data with access policy for security consideration, and encrypt keywords to obtain
keyword index for privacy keyword search, and data users can search interesting keyword on
keyword indexes by keyword search trapdoor. However many existing searchable encryption
schemes only support single keyword search and most of existing attribute-based encryption
(ABE) schemes have high computational costs at user client. These Ss significantly limit the
application of attribute-based searchable encryption schemes in practice. In this paper, we
propose a verifiable and multi-keyword searchable attribute-based encryption (VMKS-ABE)
scheme for cloud storage, in our new scheme multi-keyword can be searched and the search
privacy is protected. That is, the cloud sever can search the multi-keyword with keyword
search trapdoor but it does not know any information of the keywords searched. In the
proposed scheme, many computing tasks are outsourced to the cloud proxy server, which
greatly reduces the computing burden at user client. Besides, the scheme also supports the
verification of the correctness of outsourced private key. The proposed scheme is proved
secure that the keyword index is indistinguishable under the adaptive keyword attacks in the
general group model, and the ciphertext is selective secure under selective plaintext attacks in
the random oracle model. The security and experimental results show that our scheme is
suitable for practicability
i
CONTENTS
Acknowledgements
Abstract i

Contents ii

List of Figures iv

Chapter 1 Introduction 1-11

1.1 Intelligent Transportation System in Smart City 2-4


1.2 Image Processing 5-7
1.3 Machine Learning for Human Face Detection 7-10
1.4 Organization of the Thesis 11

Chapter 2 Literature Survey 12-17

2.1 Related Work 13-15


2.1.1 New Approach for Passenger Counting 13

2.1.2 Bus Scheduling Feasibility Study of Rainy Day 13


Based on the Mobile Phone Signal Data

2.1.3 Smart City-wide Package Distribution Using Crowd 14


sourced Public Transportation Systems

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

2.1.7 Fast Single Image-Defogging


16
2.1.8 Image Defogging using Enhancement
Technique 16-17

2.1.9 Visual Improvement for Dense Foggy & Hazy


Weather Images, Using Multimodal Enhance -
ment Techniques 17

2.1.10 Colour Image to Grayscale Image Conversion


ii
Chapter 3 System Analysis 18-23

3.1 Methodology 19-23


3.1.1 Image Pre-processing 20-22
3.1.2 Human Face Detection 23
3.1.3 Message Transferring 23

Chapter 4 System Requirements 24-25


4.1 Hardware Tools 25
4.2 Software Tools 25

Chapter 5 System Implementation 26-42


5.1 Image Pre-processing 27
5.1.1 grayscale conversion 27-28
5.1.2 Image Scaling 28-29
5.1.3 Image enhancement 29-32
5.2 Human Face Detection 33-37
5.3 Message Transferring 37-42

Chapter 6 System Design 43-46


6.1 Use case Diagram 44
6.2 Sequence Diagram 45

6.3 Activity Diagram 46

Chapter 7 Test Cases 47-48

Chapter 8 Experimental Analysis 49-52

8.1 Simulation Results 50-52

Chapter 9 Conclusion and Future Scope 53-55


9.1 Conclusion 54

9.2 Future Scope 55

Chapter 10 References 56-59

iii
LIST OF FIGURES

S.No. Fig. No. Figure Name Page No.


1 1.1 Different Technologies in Smart city 2
2 1.2 Steps in digital image processing 6
3 1.3 RGB Image Representation 7

4 1.4 Different Types of Machine Learning 8


Algorithms
5 1.5 Haar Cascade Features 10
6 3.1 System methodology 19
7 3.2 Flow chart for image pre-processing 20
8 3.3 Gray scale Conversion 20
9 3.4 Image scaling 21

10 3.5 Steps for implementation of image 21


defogging
11 3.6 Conversion of hazy image to dehazy image 22
12 3.7 Detecting human faces in the image 23
13 5.1 Image enhancement 32
14 5.2 Human face detection 33
15 5.3 Message Transferring 38
16 6.1 Use case diagram 44
17 6.2 Sequence diagram 45
18 6.3 Activity diagram 46

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

CLOUD computing technology is a service-based, Internet-centric, safe, convenient data


storage and network computing service. It is an internet-based model for enabling a
convenient and on-demand network access to a shared pool of configurable computing
resources. One of the important service of cloud computing is database as a service.
Database-as-a-Service (DBaaS) is a service that is managed by a cloud operator that supports
applications, without the application team assuming responsibility for traditional database
administration functions. With a DBaaS, the application developers should not need to be
database experts, nor should they have to hire a database administrator (DBA) to maintain the
database.
True DBaaS will be achieved when application developers can simply call a database
service and it works without even having to consider the database. The ultimate goal of a
DBaaS is that the customer doesn’t have to think about the database. Today, cloud users
don’t have to think about server instances, storage and networking, they just work.
Virtualization enables clouds to provide these services to customers while automating much
of the traditional pain of buying, installing, configuring and managing thes capabilities. Now
database virtualization is doing the same thing for the cloud database and it is being provided
as Database as a Service (DBaaS).

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.

Characteristics and Services Models:

The salient characteristics of cloud computing based on the definitions provided


by the National Institute of Standards and Terminology (NIST) are outlined below:
On-demand self-service: A consumer can unilaterally provision computing capabilities,
such as server time and network storage, as needed automatically without requiring human
interaction with each service’s provider.

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:

  Cloud Computing comprises three different service models, namely Infrastructure-


as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS). The
three service models or layer are completed by an end user layer that encapsulates the end user
perspective on cloud services. The model is shown in figure below. If a cloud user accesses
services on the infrastructure layer, for instance, she can run her own applications on the
resources of a cloud infrastructure and remain responsible for the support, maintenance, and
security of these applications herself. If she accesses a service on the application layer, these
tasks are normally taken care

Structure of service models

Benefits of cloud computing:


1. Achieve economies of scale – increase volume output or productivity with fewer
people. Your cost per unit, project or product plummets.

2. Reduce spending on technology infrastructure. Maintain easy access to


your information with minimal upfront spending. Pay as you go (weekly, quarterly or
yearly), based on demand.
3. Globalize your workforce on the cheap. People worldwide can access the
cloud, provided they have an Internet connection.
4. Streamline processes. Get more work done in less time with less people.
5. Reduce capital costs. There’s no need to spend big money on hardware, software
or licensing fees.
6. Improve accessibility. You have access anytime, anywhere, making your life so
much easier!
7. Monitor projects more effectively. Stay within budget and ahead of completion
cycle times.
8. Less personnel training is needed. It takes fewer people to do more work on a
cloud, with a minimal learning curve on hardware and software issues.
9. Minimize licensing new software. Stretch and grow without the need to buy
expensive software licenses or programs.
10.Improve flexibility. You can change direction without serious “people” or
“financial” issues at stake.

Advantages:

1. Price:Pay for only the resources used.


2. Security: Cloud instances are isolated in the network from other instances
for improved security.
3. Performance: Instances can be added instantly for improved
performance. Clients have access to the total resources of the Cloud’s core
hardware.
4. Scalability: Auto-deploy cloud instances when needed.
5. Uptime: Uses multiple servers for maximum redundancies. In case of
server failure, instances can be automatically created on another server.
6. Control: Able to login from any location. Server snapshot and a software
library lets you deploy custom instances.
7. Traffic: Deals with spike in traffic with quick deployment of additional
instances to handle the load.

Software Environment

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:

High performance
Interpreted
Multithreaded
Robust
Dynamic Simple
Architecture neutral
Object oriented
Portable
Distributed
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.
The Java Platform
A platform is the hardware or software environment in which a
program runs. We’ve already mentioned some of the most popular
platforms like Windows 2000, Linux, Solaris, and MacOS. Most platforms
can be described as a combination of the operating system and hardware.
The Java platform differs from most other platforms in that it’s a software-
only platform that runs on top of other hardware-based platforms.

The Java platform has two components:


 The Java Virtual Machine (Java VM)
 The Java Application Programming Interface (Java API)
You’ve already been introduced to the Java VM. It’s the base for the Java
platform and is ported onto various hardware-based platforms.
The Java API is a large collection of ready-made software components that
provide many useful capabilities, such as graphical user interface (GUI)
widgets. The Java API is grouped into libraries of related classes and
interfaces. These libraries are known as packages. The next section, What
Can Java Technology Do? Highlights what functionality some of the
packages in the Java API provide.
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.
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:
 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.
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 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.
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 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:

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

Java has 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.
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.
Networking:

TCP/IP stack

The TCP/IP stack is shorter than the OSI one:

TCP is a connection-oriented protocol; UDP (User Datagram Protocol) is a


connectionless protocol.
IP datagram:
The IP layer provides a connectionless and unreliable delivery system. It
considers each datagram independently of the others. Any association between
datagram must be supplied by the higher layers. The IP layer supplies a
checksum that includes its own header. The header includes the source and
destination addresses. The IP layer handles routing through an Internet. It is also
responsible for breaking up large datagram into smaller ones for transmission
and reassembling them at the other end.
UDP:

UDP is also connectionless and unreliable. What it adds to IP is a


checksum for the contents of the datagram and port numbers. These are used to
give a client/server model - see later.

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.

2. Time Series Chart Interactivity:


Implement a new (to JFreeChart) feature for interactive time series charts
--- to display a separate control that shows a small version of ALL the time series
data, with a sliding "view" rectangle that allows you to select the subset of the
time series data to display in the main chart.

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

J2ME uses configurations and profiles to customize the Java Runtime


Environment (JRE). As a complete JRE, J2ME is comprised of a configuration,
which determines the JVM used, and a profile, which defines the application by
adding domain-specific classes. 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. We'll discuss configurations in detail in the The profile defines the
application; specifically, it adds domain-specific classes to the J2ME
configuration to define certain uses for devices. We'll cover profiles in depth in
the The following graphic depicts the relationship between the different virtual
machines, configurations, and profiles. It also draws a parallel with the J2SE API
and its Java virtual machine. While the J2SE virtual machine is generally
referred to as a JVM, the J2ME virtual machines, KVM and CVM, are subsets of
JVM. Both KVM and CVM can be thought of as a kind of Java virtual machine
-- it's just that they are shrunken versions of the J2SE JVM and are specific to
J2ME.
2. Developing J2ME applications
Introduction In this section, we will go over some considerations you need
to keep in mind when developing applications for smaller devices. We'll take a
look at the way the compiler is invoked when using J2SE to compile J2ME
applications. Finally, we'll explore packaging and deployment and the role
preverification plays in this process.
3. Design considerations for small devices
Developing applications for small devices requires you to keep certain
strategies in mind during the design phase. It is best to strategically design an
application for a small device before you begin coding. Correcting the code
because you failed to consider all of the "gotchas" before developing the
application can be a painful process. Here are some design strategies to consider:
 Keep it simple. Remove unnecessary features, possibly making those
features a separate, secondary application.
 Smaller is better. This consideration should be a "no brainer" for all
developers. Smaller applications use less memory on the device and
require shorter installation times. Consider packaging your Java
applications as compressed Java Archive (jar) files.
 Minimize run-time memory use. To minimize the amount of memory used
at run time, use scalar types in place of object types. Also, do not depend
on the garbage collector. You should manage the memory efficiently
yourself by setting object references to null when you are finished with
them. Another way to reduce run-time memory is to use lazy instantiation,
only allocating objects on an as-needed basis. Other ways of reducing
overall and peak memory use on small devices are to release resources
quickly, reuse objects, and avoid exceptions.

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

(from a development point of view) than CDC. CLDC is also the


configuration that we will use for developing our drawing tool application.
An example of a small wireless device running small applications is a
Palm hand-held computer.
 Connected Device Configuration (CDC) is used with the C virtual
machine (CVM) and is used for 32-bit architectures requiring more than 2
MB of memory. An example of such a device is a Net TV box.

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

devices. MIDP is a common, industry-standard profile for mobile devices


that is not dependent on a specific vendor. It is a complete and supported
foundation for mobile application development. MIDP contains the following
packages, the first three of which are core CLDC packages, plus three MIDP-
specific packages.
* java.lang
* java.io
* java.util
* javax.microedition.io
* javax.microedition.lcdui
* javax.microedition.midlet
* javax.microedition.rms
Chapter 2 Literature Survey

12
2.1 Related Work

2.1.1 Attribute-based Keyword Search Efficiency Enhancement


Via an Online/Offline Approach
AUTHOR: Qiuxiang Dong, Zhi Guan

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

2.1.2 Practical Techniques for Searches on Encrypted Data [2]


AUTHOR: Dawn Xiaodong Song David

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

The Methodology develop a system for identifying the persons in an image


and count the number of persons. then the information will be send to the respective
authority, for providing better services to the passengers. The Methodology can be
categorized into three phases.

System Methodology
Input Image

Pre-processing

Image enhanc-
Gray scale
conversion Scaling ement for hazy
PHASE - I image

Human face Count the number


PHASE - II detection of detected faces

PHASE - III Send the information to the respective


Authority

Figure 3.1: System Methodology

19
3.1.1 Image Pre-processing:

The need of the pre-processing is an improvement of the image data that


suppresses unwanted distortions or enhances some image features important for
further processing. The chances of correct detection depend on quality of image
captured. Quality of image is dependent on efficiency of camera, distance between
person and camera, lighting condition and whether the person looks at camera etc.
In such case, pre-processing the captured image can give better results in face
detection. Various image processing techniques can be used to enhance the
captured image and there increase in the detection rate.

Pre-processing

Gray scale Image


conversion Scaling enhancement
for hazy

Figure 3.2: Steps in Image Pre-processing

i. Color to Grey Scale Conversion

Conversion of colour image to grayscale image is one of the image


processing applications used in different fields effectively. To detect human faces
color image is not needed it occupies more space by using gray scale image also
human faces can be detected and it takes less space .so gray scale conversion
improves the system performance.

a. Color Image b. Gray Scaled Image

Figure 3.3: Gray Scale Conversion

20
ii. Scaling

To maintain desirable visual quality of an image across all conditions, a


proper way of scaling is required. Image scaling technique decreases the
computational complexity of face detection and it can increase the system
performance. Figure 3.4a is the original image with dimensions 480*640 it is scaled
with the dimensions 150*200 shown in Figure3.4b.

a. Original Image (480, 640) b. Scaled Image (150, 200)

Figure 3.4: Image Scaling

iii. Image enhancement for hazy image

Capturing images in hazy or foggy weather conditions, are severely degrades


the image quality. Therefore, improving image quality image enhancement
techniques are used. The steps for implementation of image defogging method is
shown the Figure 3.5.

Input Estimate Estimate output


intensity of Clarify
transmission
f(x) atmospheric
map{t(x)}
image f(x)
light(A)

Figure 3.5: Steps for Implementation of Image Defogging

The image defogging framework is done based on below concepts:

 Estimate intensity of atmospheric light


 Estimate transmission map
 Clarify image

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.

 Estimate transmission map:A coarse map representing the fog density in a


local area is obtained from the input foggy image. Next, a fine map
representing detailed image edge information is obtained. Finally, these two
maps are combined to create a precise transmission map t(x) representing
the fog density for each pixel. We call it a dark channel based on a local area
a coarse map. Where, defogging parameters are less than 1 and greater than
0.

 Clarify image:Finally, clarified the image to set transmission map t(x) set as
maximum with constant value to avoiding dividing by zero.

a. Hazy Image b. Dehazy Image

Figure 3.6: Conversion of Hazy Image to Dehazy Image

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.

Figure 3.7 : Detecting Human Faces in the Image

In figure 3.7, it shows the number of detected faces in the given image.

3.1.3 Message Transferring

In phase III, count number of persons identified in an image and the


information will be send to the respective authority. By developing an interface the
information will be send to the respective authority. Python offers multiple options for
developing GUI (Graphical User Interface). Out of all the GUI methods, tkinter is
most commonly used method. It is a standard Python interface to the Tk GUI toolkit
shipped with Python. Python with tkinter outputs the fastest and easiest way to
create the GUI applications.

23
Chapter 4 System Requirements

24
I implemented the project under these system configuration tools,

4.1 HARDWARE TOOLS

core i3 or
Processor : Higher

Speed : 1.1 Ghz

RAM : 4GB(min)

Hard Disk : 10 GB

Web cam with good resolution

4.2 SOFTWARE TOOLS

Windows
Operating System : 7/10/linux

Programming Language : Java

Tool/IDE : NetBeans

25
Chapter 5 System implementation
5.1
Chapter 6 System Design

43
6.1 Use Case Diagram

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

Login

View Profile

Request Search Key

View Files
DataUser

Search Based on MultiKeyword

Request for Download File

Download Fille

Logout
Registration

Login

View Profile

View Search Transaction On My


File

DataOwner
Upload

View Uploaded Files

Logout
Login

View Users

View DataOwners

View Files

View All Transactions

Cloud
View All Transaction Roles

Result

Time Delay

Throughput

Logout
Login

View Permited Files To Cloud

Send Current Time Files to Proxy


Authority

View Waiting Files for Permission t


o Send to Cloud

Logout

Login

Permited Files and send To Cloud

Proxy
View All Permited Files

Logout
Login

View Search Key Request and


generate

OkGSP
View File Request and Give
Permission

Logout

Login

View Search Key Request and


generate

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

6.2 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.
Figure 6.2: Sequence Diagram

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

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

Action: check the camera cables connected properly or not.

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.1: User Interface

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

Figure 8.4 Capturing Images from the Web-Camera

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.

[4] R. Curtmola, J. Garay, S. Kamara, and R. Ostrovsky, “Searchable symmetric encryption:


Improved definitions and efficient constructions,” Journal of Computer Security, vol. 19, no.
5, 2011, pp. 895-93.

[5] M. Bellare, A. Boldyreva, and A. O’Neill, "Deterministic and Efficiently Searchable


Encryption," the 27th annual international cryptology conference on Advances in cryptology,
Berlin, Germany: Springer, Aug. 2007, pp. 535-552.

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

[8] Q. Dong, Z. Guan, and Z. Chen, "Attribute-Based Keyword Search Efficiency


Enhancement via an Online/Offline Approach," the 21th IEEE International Conference on
Parallel and Distributed Systems, Dec. 2015, pp. 298-305.
[9] Y. Ye, J. Han, W. Susilo, T. H. Yuen, and J. Li, "ABKS-CSC: attributebased keyword
search with constant-size ciphertexts," Security & Communication Networks, vol. 9, no. 18,
pp. 5003-5015, Oct. 2016, doi: org/10.1002/sec.1671.

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

[11] A. Sahai and B. Waters, "Fuzzy identity-based encryption," In Advances in Cryptology


– EUROCRYPT, Cramer R. Eds. Berlin, Germany: Springer, 2005, pp. 457-473.

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

[13] J. Bethencourt, A. Sahai, and B. Waters, "Ciphertext-Policy AttributeBased Encryption,"


in proc. IEEE Symposium on Security and Privacy, Washington, DC, USA: IEEE Computer
Society, May 2007, pp. 321334.

[14] B. Waters, "Ciphertext-Policy Attribute-Based Encryption: An Expressive, Efficient, and


Provably Secure Realization," In Public Key Cryptography – PKC, D. Catalano, N. Fazio, R.
Gennaro, A. Nicolosi Eds. Berlin, Germany: Springer, 2011, pp. 53-70.

[15] M. Green, S.Hohenberger, and B.Waters, "Outsourcing the decryption of ABE


ciphertexts," Usenix Conference on Security, USENIX Association Berkeley, CA, USA ,
2011, pp. 34-49.

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

[17] J. Li, H. Wang, and Y. Zhang, "Ciphertext-Policy Attribute-Based Encryption with


Hidden Access Policy and Testing," Transactions on Internet & Information Systems, vol. 10,
no. 7, pp. 3339-3352, Jul. 2016, doi: 10.3837/tiis.2016.07.026.
[18] Y. Zhang, D. Zheng, and R. H. Deng, "Security and privacy in smart health: Efficient
policy-hiding attribute-based access control," IEEE Internet of Things Journal,vol. 3, no. 1,
pp. 1-1, pp. 2130-2145, Apr. 2018, doi: 10.1109/JIOT.2018.2825289.

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

[23] S. Wang, K. Guo, Y. Zhang, and H. Wang, “Traceable ciphertext-policy attribute-based


encryption scheme with attribute level user revocation for cloud storage," PLOS ONE, vol.
13, no. 10, pp. 1-23, Sep. 2018, doi. 10.1371/journal.pone.0203225.

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

[38] J. Li, X. Lin, Y. Zhang, and J. Han, "KSF-OABE: Outsourced Attribute-Based


Encryption with Keyword Search Function for Cloud Storage, " IEEE Transactions on
Services Computing, vol. 10, no. 5 pp. 715-725, Oct. 2017, doi:10.1109/TSC.2016.2542813.
Existing System:
Cloud computing makes computer system resources, especially storage and computing power,
available on demand without direct active management by the user. The cloud providers are not fully
trusted. So, it is necessary to outsource data in the encrypted form. A new cryptographic primitive
called key policy attribute based temporary keyword search is introduced. By using the key policy
only, the extracted keywords are required to obtain the files from the cloud. In the proposed system,
along with the key policy the quick search algorithm is introduced. In an attribute-based searchable
encryption (ABSE) scheme, data owners can encrypt their data with access policy for security
consideration, and encrypt keywords to obtain keyword index for privacy keyword search,
and data users can search interesting keyword on keyword indexes by keyword search
trapdoor. However many existing searchable encryption schemes only support single
keyword search and most of existing attribute-based encryption (ABE) schemes have high
computational costs at user client. These problems significantly limit the application of
attribute-based searchable encryption schemes in practice.

Proposed System :

we propose a verifiable and multi-keyword searchable attribute-based encryption (VMKS-


ABE) scheme for cloud storage, in our new scheme multi-keyword can be searched and the
search privacy is protected. That is, the cloud sever can search the multi-keyword with
keyword search trapdoor but it does not know any information of the keywords searched. In
the proposed scheme, many computing tasks are outsourced to the cloud proxy server, which
greatly reduces the computing burden at user client. Besides, the scheme also supports the
verification of the correctness of outsourced private key. The proposed scheme is proved
secure that the keyword index is indistinguishable under the adaptive keyword attacks in the
general group model, and the ciphertext is selective secure under selective plaintext attacks in
the random oracle model. The security and experimental results show that our scheme is
suitable for practicability.Considering that most of existing CP-ABE schemes cannot support
attribute revocation and multi-keyword search, we present a CP-ABE scheme with multi-
keyword search and supporting attribute revocation in cloud storage. The innovations can be
summarized as follows:
Our scheme supports attribute revocation, when a data user's attribute is revoked, the version
number of attribute, non-revoked data users' secret keys and related ciphertexts will be
updated, such that data user whose attribute is revoked does not decrypt updated ciphertext
anymore.
After data owners upload overall ciphertext of encrypted data to cloud server, the keyword
search is used to quickly find required file. Compared to a single keyword search, the multi-
keyword search is closer to real application. For the consideration of this issue, our scheme
supports multi-keyword search.

You might also like