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

Efficient regular language search for secure cloud storage

The document presents a Project Stage-I report on 'Efficient Regular Language Search For Secure Cloud Storage' submitted by students at Guru Nanak Institutions Technical Campus for their Bachelor of Technology in Computer Science & Engineering. It outlines a proposed encryption scheme aimed at enhancing data security in cloud storage while allowing efficient data retrieval without compromising privacy. The report includes acknowledgments, project descriptions, methodologies, and a comprehensive literature survey on existing systems and their limitations.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Efficient regular language search for secure cloud storage

The document presents a Project Stage-I report on 'Efficient Regular Language Search For Secure Cloud Storage' submitted by students at Guru Nanak Institutions Technical Campus for their Bachelor of Technology in Computer Science & Engineering. It outlines a proposed encryption scheme aimed at enhancing data security in cloud storage while allowing efficient data retrieval without compromising privacy. The report includes acknowledgments, project descriptions, methodologies, and a comprehensive literature survey on existing systems and their limitations.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 78

A Project Stage-I Report on

Efficient Regular Language Search For Secure


Cloud Storage
Submitted to the

GURU NANAK INSTITUTIONS TECHNICAL CAMPUS


(Autonomous)

In partial fulfillment of the requirement for the award of the degree of

BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE & ENGINEERING

Submitted by

Rallabandi Meghana (21WJ1A05R2)


Pagadala Likith Reddy (21WJ1A05P1)
Nameda Deepak (21WJ1A05M7)

Under the Esteemed Guidance Of

(MS. K. SREEDEVI)
Assoiciate Professor of CSE, GNITC

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

GURU NANAK INSTITUTIONS TECHNICAL CAMPUS(Autonomous)


SCHOOL OF ENGINEERING & TECHNOLOGY

(Approved by AICTE, New Delhi, permanently affiliated to JNTUH,


An Autonomous, NBA, NAAC A+ Accredited Institution)
Ibrahimpatnam, Hyderabad – 501506, Telangana
2024 – 2025
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

CERTIFICATE

This is to certify that the Project Stage-I entitled “Efficient Regular Language

Search For Secure Cloud Storage” is being presented with report by Rallabandi

Meghana bearing Roll.No.21WJ1A05R2, Pagadala Likith Reddy bearing

Roll.No.21WJ1A05P1, Nameda Deepak bearing Roll.No.21WJ1A05M7 in partial

fulfillment for the award of Degree of Bachelor of Technology in Computer Science &

Engineering to Guru Nanak Institutions Technical Campus (Autonomous) affiliated to

Jawaharlal Nehru Technological University, Hyderabad during the academic Year 2024-

2025.

—------------------------------- —---------------------------------
INTERNAL GUIDE PROJECT CO-ORDINATOR

Ms. K. Sreedevi Mrs. B. Hyma


Associate Professor Assistant Professor

—------------------------------- —---------------------------------
HEAD OF THE DEPARTMENT EXTERNAL EXAMINER
Dr. Ravindra Changala
PROJECT COMPLETION CERTIFICATE
This is to certify that the following students of final year B. Tech, Department Of
Computer Science and Engineering - Guru Nanak Institutions Technical Campus
(GNITC) have completed their training and project at GNITC successfully.

STUDENT NAME ROLL NO

1. Rallabandi Meghana 21WJ1A05R2

2. Pagadala Likith Reddy 21WJ1A05P1

3. Nameda Deepak 21WJ1A05M7

The training was conducted on JAVA Technology for the completion of the project titled
“Efficient Regular Language Search For Secure Cloud Storage” in September
2024. The project has been completed in all aspects.
Acknowledgement
We want to express our sincere gratitude to our guide Ms. K. Sreedevi, Associate
Professor of CSE, Department of Computer Science & Engineering, for her excellent
guidance and invaluable support, which helped us to accomplish our Bachelor's degree
and prepared us to achieve more life goals in the future. Her total support of our
dissertation and countless technical and professional development contributions made
for a delightful and fruitful experience.

We are very much grateful to our Project Coordinator, Mrs. Hyma Birudaraju,
Assistant Professor of CSE, GNITC, Hyderabad, who is not only shown utmost
patience but was fertile in suggestions, vigilant in directions of error, and have been
infinitely helpful.

We were also thankful to Dr. Ravindra Changala, Associate Professor & HOD of
CSE, GNITC, Hyderabad, for being so helpful with valuable insights and guidance
during our project.

We wish to express our sincere thanks to Dr. Rishi Sayal, Professor & Associate
Director of CSE, GNITC for providing us with the conductive environment for carrying
through our academic schedules and project with ease.

On a more personal note, we thank our beloved parents and friends for their moral support
during our project.

Rallabandi Meghana (21WJ1A05R2)

Pagadala Likith Reddy (21WJ1A05P1)

Nameda Deepak (21WJ1A05M7)


EFFICIENT REGULAR LANGUAGE SEARCH

FOR SECURE CLOUD STORAGE


Efficient Regular Language Search For Secure Cloud Storage

ABSTRACT

Cloud computing provides flexible data management and ubiquitous data access. However, the
storage service provided by cloud server is not fully trusted by customers. Searchable encryption
could simultaneously provide the functions of confidentiality protection and privacypreserving
data retrieval, which is a vital tool for secure storage. In this paper, we propose an efficient large
universe regular language searchable encryption scheme for the cloud, which is privacy-preserving
and secure against the off-line keyword guessing attack (KGA). A notable highlight of the proposal
over other existing schemes is that it supports the regular language encryption and deterministic
finite automata (DFA) based data retrieval. The large universe construction ensures the extend
ability of the system, in which the symbol set does not need to be predefined. Multiple users are
supported in the system, and the user could generate a DFA token using his own private key without
interacting with the key generation center. Furthermore, the concrete scheme is efficient and
formally proved secure in standard model. Extensive comparison and simulation show that this
scheme has function and performance superior than other schemes.

i
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage

CHAPTER NO. TITLE PAGE NO.

ABSTRACT i-ix
LIST OF FIGRUES
LIST OF NOTATIONS

1. CHAPTER 1 : INTRODUCTION 1-9


1.1 GENERAL
1.2 OBJECTIVE
1.3 EXISTING SYSTEM
1.3.1 EXISTING SYSTEM DISADVANTAGES
1.3.2 LITERATURE SURVEY
1.4 PROPOSED SYSTEM
1.4.1 PROPOSED SYSTEM ADVANTAGES

2. CHAPTER 2 : PROJECT DESCRIPTION 10-19


2.1 GENERAL
2.2 PROBLEM DEFINATION
2.3 METHODOLOGIES
2.3.1 MODULES NAME
2.3.2 MODULES EXPLANATION
2.3.3 MODULE DIAGRAM
2.3.4 GIVEN INPUTAND EXPECTED OUTPUT
2.4 TECHNIQUE OR ALGORITHM

3. CHAPTER 3 : REQUIREMENTS 20-22


3.1 GENERAL
3.2 HARDWARE REQUIREMENTS
3.3 SOFTWARE REQUIREMENTS
3.4 FUNCTIONAL SPECIFICATION
3.5 NON-FUNCTIONAL SPECIFICATION

ii
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage

4. CHAPTER 4 : SYSTEM DESIGN 23-38


4.1 GENERAL
4.1.1 USE CASE DIAGRAM
4.1.2 CLASS DIAGRAM
4.1.3 OBJECT DIAGRAM
4.1.4 STATE DIAGRAM
4.1.5 SEQUENCED DIAGRAM
4.1.6 COLLABARATION DIAGRAM
4.1.7 ACTIVITY DIAGRAM
4.1.8 COMPONENT DIAGRAM
4.1.9 DATA FLOW DIAGRAM
4.1.10 E-R DIAGRAM
4..2 DEPLOYMENT DIAGRAM
4.2.1 SYSTEM ARCHETECTURE

5. CHAPTER 5 :SOFTWARE SPECIFICATION 39-45


5.1 GENERAL
5.2 FEATURES OF JAVA
5.2.1 THE JAVA FRAMEWORK
5.2.2 OBJECTIVE OF JAVA
5.2.3 JAVA SWING OVERVIEW
5.2.4 EVOLUTION OF COLLECTION
FRAMEWORK
5.3 THREAD
5.5 CONCLUSION

6. CHAPTER 6 : IMPLEMENTATION 46-52


6.1 GENERAL
6.1.1 IMPLEMENTATION

7. CHAPTER 7 : SNAPSHOTS 53-55


7.1 GENERAL
7.2 VARIOUS SNAPSHOTS

8. CHAPTER 8 : SOFTWARE TESTING 56-58


8.1 GENERAL
8.2 DEVELOPING METHODOLOGIES
8.3 TYPES OF TESTING

iii
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage

9. CHAPTER 9 : APPLICATIONS AND FUTURE 59


ENHANCEMENT
8.1 GENERAL
8.2 FUTURE ENHANCEMENTS

10. 60-64

CHAPTER 10 :
9.1 CONCLUSION
9.2 REFERENCES

iv
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage

LIST OF FIGURES
FIGURE NO NAME OF THE FIGURE PAGE NO.

2.3.2 Module Diagram 12-16

4.2 Use case Diagram 24

4.3 Class Diagram 25

4.4 Object Diagram 26

4.5 State Diagram 27

4.6 Sequence Diagram 28

4.7 Collaboration Diagram 29

4.8 Activity Diagram 30

4.9 Component Diagram 31

4.10 Data flow Diagram 32-34

4.11 E-R Diagram 35

4.12 Deployment Diagram 36

4.13 System Architecture 37

v
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage

LIST OF NOTATIONS

vi
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage

vii
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage

viii
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage

LIST OF ABBREVATION
S.NO ABBREVATION EXPANSION

1. DB DataBase

2. JVM Java Virtual Machine

3. JSP Java Server Page

4. CB Collective Behavior

5. RSSS Ramp secret sharing scheme

6. JRE Java Runtime Environment

ix
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 1
INTRODUCTION
1.1 GENERAL:
Cloud storage is an emerging model of storage to provide scalable, elastic and pay-as-youuse
service to cloud computing users. For individual usage, the subscribers enjoy the freedom to access
to their data anywhere, anytime with any device. When cloud storage is utilized by a group of users,
it allows team members to synchronize and manage all shared documents. Moreover, it also saves
the user a lot of capital investment of expensive storage equipments. Cloud delivers convenience
to the customers and at the same time arouses many security and privacy problems. Since the data
are physically stored on the multiple servers of the cloud service provider, the customers cannot
fully in charge of their data. They worry about the privacy of the stored documents since the server
may be intruded by hacker or the data could be misused by the internal staff for commercial
purpose. The customers prefer to adopt the encryption technology to protect the data confidentiality,
which meanwhile arouses another problem: how to execute data retrieval on the large volume of
ciphertext. It is almost unimaginable to ask the cloud subscriber to download all of their stored
information and then decrypt and search on the recovered plaintext documents. No customer could
tolerate the huge transmission overhead and the waiting time for the data retrieval result.

1.2. OBJECTIVE
In this paper, we propose an efficient large universe regular language searchable encryption
scheme for the cloud, which is privacy-preserving and secure against the off-line keyword guessing
attack (KGA). A notable highlight of the proposal over other existing schemes is that it supports
the regular language encryption and deterministic finite automata (DFA) based data retrieval.
Proposed a mobile architecture to realize remote-resident multimedia service secure access. The
secure framework for business clouds was studied, which realizes that the cloud services are safe
and secure and the large volume of data can be securely processed.

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

1.3 Existing System:


Cloud computing provides flexible data management and ubiquitous data access. However, the
storage service provided by cloud server is not fully trusted by customers. Searchable encryption
could simultaneously provide the functions of confidentiality protection and privacypreserving data
retrieval, which is a vital tool for secure storage.

1.3.1 Existing System Disadvantages:

 The user can only sign documents on that particular computer.

 The security of the private key depends entirely on the security of the computer

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

1.3.2 LITERATURE SURVEY

TITLE : Data Security and Access Control in Cloud Computing: A Comprehensive Survey.

AUTHOR : R. S. R. K. Shree Krishna, J. S. J. Arora

YEAR : 2023

DESCRIPTION

Data security and access control in cloud computing are critical components that ensure the
protection of sensitive information in a shared and often public environment. As organizations
increasingly migrate to cloud platforms, the risk of data breaches and unauthorized access rises,
making robust security measures essential. Key strategies include encryption, which protects data
at rest and in transit, and the implementation of strong authentication mechanisms to verify user
identities. Access control models, such as Role-Based Access Control (RBAC) and AttributeBased
Access Control (ABAC), help define who can access specific resources and under what conditions.
Additionally, regulatory compliance with standards like GDPR and HIPAA further drives the need
for effective data security measures. Continuous monitoring and auditing of access logs can identify
potential security threats and ensure adherence to policies, creating a layered defense strategy that
is vital for safeguarding cloud-stored data. Overall, a comprehensive approach to data security and
access control not only protects organizational assets but also fosters trust among users and
stakeholders in cloud computing environments.

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
TITLE : Dynamic remote data auditing for securing big data storage in cloud computing

AUTHOR : N. K. K. Shafique, R. M. K. A. Sayyed

YEAR : 2023

DESCRIPTION

Cloud computing,is an evolving computing trend which permits users to avail various services remotely
through internet. This new technique changes the direction at which the various resources could be
utilized for their business by the different caters users in the current trend. It embraces unique feature
such as multitenancy,elasticity and virtualization at different level brings forth the security and privacy
challenges for the user’s information caused by sharing of resources between multiple cloud tenants.
With the intention of protecting the user’s valuable information,several access control schemes were
studied and novel techniques were proposed. The broad coverage needs to be done with respect to access
control solutions for cloud environment due to the heterogeneousnature of cloud users demanding for
varying degree of security level. In this article,the comparative studies are performed for recent access
control mechanisms ina cloud environment,its merits and demerits have pointed out and the future
direction towards the access control solutions and conclusion are provided. © 2016,International Journal
of Pharmacy and Technology. All rights reserved.

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
TITLE : Recent Advances in Access Control Mechanisms for Cloud Storage Systems.

AUTHOR : L. P. A. P. M. G. R. Ramos, S. A. B. M. U. B. P. L. T. A. M. F. L. P. C.

YEAR : 2023

DESCRIPTION

Recently cloud has become one of the hot topics in IT environment. This model of computing has
made a tremendous change in the computing field. The three main service models of cloud
computing are Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a
Service (IaaS).Also, Cloud Computing has four deployment models:Private Cloud, Public Cloud
and, Community Cloud and Hybrid Cloud.

As the sensitive data are moved to the cloud storage, the owner of the data is unaware of where the
data actually resides. This may be the vulnerable point that the data may be exposed to some
unauthorized parties. This brings forth many new challenges for securing data in cloud. The user
can access the data through web enabled devices. Providing access control to the data through web
is the major concern in data security. Many traditional access control mechanisms have been
followed to secure data. The purpose of introducing access control mechanisms is used to identify
the authorized user. The access control is very important in data accessing in cloud environment
[1]. Providing access control alone to the authorized user is not only the solution, it is also very
important to encrypt the stored data. The most commonly used access control methods are based
on user identity.

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
TITLE : Access Control in Cloud Computing: A Survey

AUTHOR : H. M. Ali, A. H. S. Almazroi, F. A. Alzahrani

YEAR : 2022

DESCRIPTION

Access control in cloud computing is a fundamental aspect that safeguards sensitive information
and ensures that only authorized users can interact with data. Various access control frameworks,
such as Role-Based Access Control (RBAC) and Attribute-Based Access Control (ABAC), enable
organizations to tailor permissions based on specific roles or attributes, facilitating a more precise
governance model. In addition, policy-driven approaches allow entities to establish rules that adapt
to compliance mandates and organizational requirements. Effective access management
techniques, including data encryption and Access Control Lists (ACLs), further fortify security by
delineating user permissions and protecting data from unauthorized access. Despite advancements,
challenges remain, particularly in scalability and maintaining compliance with regulations like
GDPR and HIPAA. To mitigate these issues, strategies such as automated identity management
and continuous auditing are essential. Moreover, the integration of innovative technologies,
including machine learning and blockchain, offers potential enhancements in access control
mechanisms, fostering a more secure and efficient cloud environment. Ultimately, a robust access
control framework is crucial for preserving data integrity and promoting trust in cloud services.

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
TITLE : Two-factor data security protection mechanism for cloud storage system

AUTHOR : T. Z. K. V. K. Satyanarayana, S. M. N. K. C. Ravi Kumar

YEAR : 2022

DESCRIPTION

In this paper, we propose a two-factor data security protection mechanism with factor revocability
for cloud storage system. Our system allows a sender to send an encrypted message to a receiver
through a cloud storage server. The sender only needs to know the identity of the receiver but no
other information (such as its public key or its certificate). The receiver needs to possess two things
in order to decrypt the ciphertext. The first thing is his/her secret key stored in the computer. The
second thing is a unique personal security device which connects to the computer. It is impossible
to decrypt the ciphertext without either piece. More importantly, once the security device is stolen
or lost, this device is revoked. It cannot be used to decrypt any ciphertext. This can be done by the
cloud server which will immediately execute some algorithms to change the existing ciphertext to
be un-decryptable by this device. This process is completely transparent to the sender. Furthermore,
the cloud server cannot decrypt any ciphertext at any time.

The security and efficiency analysis show that our system is not only secure but also practical.

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
TITLE : Survey on Attribute-Based Access Control (ABAC)

AUTHOR : S. Hu, H. Wang, S. J. Lee

YEAR : 2021

DESCRIPTION

Access control ensures that authorized users are able to access data and unauthorized users are
unable to access data. Most of the data stored in clouds is highly sensitive. So, it is not only important
to control the access of data but hide it from the cloud service provider, which cannot be fully trusted.
User based access control models are too restrictive because of the huge user base and often
unknown identities of target recipients. Role based model might are not suitable for fine grained
access control. Attribute based access control thus provides fine grained access control. A
cryptographic primitive known as attribute based encryption (ABE) have been widely used for not
only access control but hiding the data from the storage server. ABE has been widely used for access
control in cloud. We present a survey of Attribute based access control techniques for clouds, their
features, advantages and disadvantages. The problem becomes tricky for mobile device, due to their
limited resources. We look at variants of ABAC for mobile clouds. This area of research is very
recent and there is a lot of scope of future work, which will also be discussed.

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

1.4 Proposed System

We propose an efficient large universe regular language searchable encryption scheme for the
cloud, which is privacy-preserving and secure against the off-line keyword guessing attack (KGA).
A notable highlight of the proposal over other existing schemes is that it supports the regular
language encryption and deterministic finite automata (DFA) based data retrieval.

1.4.1 Proposed System Advantages

 An encrypting algorithm scrambles the message and it can only be unscrambled with

a key created at the same time.

 Cipher algorithms are either symmetric or asymmetric for encryption security. For

example: Symmetric - the exact same key is used to encrypt and decrypt data.

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 2
PROJECT DESCRIPTION

2.1 GENERAL:
Although cloud computing is regarded as a promising service mode for the next generation
network, the security and privacy concerns are the major barrier that inhibits its wide acceptance
in real application. Investigated multi-layered security of cloud computing, which includes firewall,
access control, identity management, intrusion prevention and convergent encryption. Proposed a
mobile architecture to realize remote-resident multimedia service secure access. The secure
framework for business clouds was studied, which realizes that the cloud services are safe and
secure and the large volume of data can be securely processed.

2.3 METHODOLOGIES

2.3.1 MODULES NAME:


This project having the following six modules:

➢ User Interface Design ➢ Key Generation Center ➢ Data Owner


➢ Cloud Server ➢ Data User

2.3.2 MODULE EXPLANATION

 User Interface Design

In this module we design the windows for the project. These page are used for secure login for
all users. To connect with server user must give their username and password then only they can
able to connect the server. If the user already exits directly can login into the server else user must

10

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
register their details such as username, password and Email id, into the server. Server will create
the account for the entire user to maintain upload and download rate. Name will be set as user id.

Logging in is usually used to enter a specific page.

 Key Generation Center:

KGC is the abbreviation of key generation center, in which all the entities of the system trust
fully. KGC is responsible for generating the public parameter for the entire system. Meanwhile,
KGC creates a pair of public / private keys for each legal user in the system. The private key is sent
to the user through a secret channel. The public keys of the users are made public and Maintained
by KGC using a secure management mechanism.

 Data Owner:

Data Owner utilizes the cloud storage service to store the personal sensitive data. The data

owner utilizes regular language to describe the file, and encrypts the file, which are then outsourced

to the cloud

 Cloud Server:

Cloud Server provides cloud storage service for the users. The digital data are usually stored in
logical pools and multiple physical servers. The cloud server is responsible to keep the data
ubiquitously available and accessible by authorized users. Cloud server processes amazing data
processing and computation ability. Cloud server responds on the search query from the data user
and searches the match documents.

 Data User:

Data user requests the cloud server to perform the test calculations over the encrypted data. The
data user generates a search token utilizing his private key, which is sent to the cloud server to issue
a query. The data user may utilize mobile device to generate the search token such that the related
algorithms should be efficient and have low transmission overhead.

11

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
2.3.3 MODULE DIAGRAM:

12

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

13

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
 Data Owner

14

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

15

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

 Data User

16

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

2.3.4 GIVEN INPUT EXPECTED OUTPUT:

 User Interface

Input: Enter login name and password.

Output: If valid user means directly open the home page otherwise show the error message and redirect to the
registration page.

 Key Generation Center:

Input: KGC is the abbreviation of key generation center

Output: KGC creates a pair of public / private keys for each legal user in the system.

 Data Owners

Input: Data Owners name, Password

Output: Data Owners Upload files, encrypting files, key generating, view upload files.

 Cloud Server

Input: Cloud Server Login Verifying.

Output: Cloud server checking Data Owner stored data, Users Details, Send key to users.

 Data User

Input: User register, login, Search Files.

Output: User Search Files details by using different models, If CS given authority decrypts files, download files.

17

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
2.4 TECHNIQUE USED OR ALGORITHM USED

 Search Encryption Algorithm.


Searchable encryption technology not only exerts encryption protection of the data, but also
supports efficient search function without undermining the data privacy. The data user generates a
token of the content that he wants to search using his private key. Receiving the token, the cloud
server searches on the encrypted data without decrypting the ciphertext. The most important point
is that the server learns nothing about the plaintext of the encrypted data or the searched content
during the data retrieval procedure. However, most of the available searchable encryption schemes
only support some basic search patterns, such as single keyword search, conjunctive keyword
search and boolean search. Since the cloud computing is a fierce competition industry, it is of vital
importance to provide good user experience. It is urgent to design novel searchable encryption
schemes with expressive search pattern for cloud storage.
Searchable encryption [6,8–11,15] is a basic tool in PKS to construct the secure index and can be
categorized into Symmetric searchable encryption (SSE) and Asymmetric searchable encryption
(ASE). Most searchable encryption schemes cannot hide data access and search patterns. In
addition, they only support exact match in the context of keyword search. As a result, one of the
main contributions in the existing PKS schemes is to construct a secure index that support similar
keyword search. Detailed survey of existing searchable encryption schemes is provided in Ref. [16].
In this section, we briefly describe the basic structure of searchable encryption in symmetric and
asymmetric settings. We emphasize that all the following structures of symmetric and asymmetric
encryption schemes are standard definitions and our goal is to highlight the key ideas behind each
one.

The symmetric searchable encryption (SSE) scheme involves three different entities: data owner,
data user, and remote server. In this setting, the data owner encrypts his/her own document collection
and uploads the encrypted collection to a remote third-party server so that only the legitimate users,
holding the secret key, can retrieve the documents based on a given keyword or a set of keywords.
Under SSE, only the data owner can contribute searchable contents, and the data owner and the user
share the same secret key. Generally, the definition of any SSE scheme. Searchable encryption
schemes follow the security definitions. More specifically, data confidentiality and keyword privacy
must be achieved. For efficiency purpose, it is required that nothing should be leaked from the
outsourced encrypted document collection and index beyond the search pattern and access patterns
of the user queries. The access pattern refers to the outcome of the search result, that is, which

18

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
documents contain the keyword, whereas the search pattern refers to the possibility of inferring
whether two queries were performed for the same keyword and any information derived thereafter
from this statement.
Most existing works related to searchable encryption schemes assume the semi-honest adversary
model. In the semi-honest model (also referred to as honest-but-curious), the adversary (e.g., cloud)
is assumed to follow the prescribed steps of the protocol (i.e., executes all searching operations and
returns all search results honestly), but may attempt to learn extra information from the protocol
transcript [24,25]. For example, an adversary may try to learn and infer the underlying plaintext
information of the encrypted document collection or searchable index.

19

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 3

REQUIREMENTS ENGINEERING
3.1 GENERAL
However, most of the available searchable encryption schemes only support some basic search
patterns, such as single keyword search, conjunctive keyword search and boolean search. Since the
cloud computing is a fierce competition industry, it is of vital importance to provide good user
experience. It is urgent to design novel searchable encryption schemes with expressive search
pattern for cloud storage.

3.2 HARDWARE REQUIREMENTS


The hardware requirements may serve as the basis for a contract for the implementation of
the system and should therefore be a complete and consistent specification of the whole system.
They are used by software engineers as the starting point for the system design. It shoulds what the
system do and not how it should be implemented.

HARDWARE

• PROCESSOR : PENTIUM IV 2.6 GHz, Intel Core 2 Duo.

• RAM : 512 MB DD RAM

• MONITOR : 15” COLOR

• HARD DISK : 40 GB

20

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
3.3 SOFTWARE REQUIREMENTS
The software requirements document is the specification of the system. It should include both a
definition and a specification of requirements. It is a set of what the system should do rather than
how it should do it. The software requirements provide a basis for creating the software
requirements specification. It is useful in estimating cost, planning team activities, performing
tasks and tracking the teams and tracking the team’s progress throughout the development activity.

• Front End : J2EE (JSP, SERVLET)

• Back End : MY SQL 5.5

• Operating System : Windows 10

• IDE : Eclipse

3.4 FUNCTIONAL REQUIREMENTS


A functional requirement defines a function of a software-system or its component. A function is
described as a set of inputs, the behaviour, and outputs. The outsourced computation is data is more
secured. To address these problems, we propose Searchable encryption technology not only exerts
encryption protection of the data, but also supports efficient search function without undermining
the data privacy. The data user generates a token of the content that he wants to search using his
private key. Receiving the token, the cloud server searches on the encrypted data without decrypting
the ciphertext. The most important point is that the server learns nothing about the plaintext of the
encrypted data nor the searched content during the data retrieval procedure. However, most of the
available searchable encryption schemes only support some basic search patterns, such as single
keyword search, conjunctive keyword search and boolean search. Since the cloud computing is a
fierce competition industry, it is of vital importance to provide good user experience. It is urgent to
design novel searchable encryption schemes with expressive search pattern for cloud storage.

21

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
3.5 NON-FUNCTIONAL REQUIREMENTS

EFFICIENCY

1) Small Universe Construction. It has to predefine the size of the symbol set when the
system is setup. The size of the master public key grows with the symbol set, which

consumes a large storage space when the predefined symbol set is large. To add a new

symbol to the system, the KGC has to re-build the entire system.

2) Low Efficiency. In the encryption and search token generation algorithms, the data user
has to execute a lot of energy consuming exponentiation calculations, which incurs huge

computation overhead. Besides, the transmission overhead is also very high.

3) Dependent Trapdoor Generation. The data user has to interact with the key generation

center (KGC) to generate a search query. In another word, the data user cannot

independently issues a DFA query.

4) Vulnerable to KGA. Liang’s scheme cannot resist off-line keyword guessing attack (KGA)
which is pointed out to be an unsolved open problem. In KGA, the attacker makes use of
the low entropy characteristic of the keyword to choose the keyword in a much smaller
space. Then, the attacker tests the correctness of the guessed keyword in an offline manner.

Such attack severely impairs the security of searchable encryption schemes.

22

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 4
DESIGN ENGINEERING
4.1 GENERAL

Design Engineering deals with the various UML [Unified Modelling language] diagrams
for the implementation of project. Design is a meaningful engineering representation of a thing that
is to be built. Software design is a process through which the requirements are translated into
representation of the software. Design is the place where quality is rendered in software
engineering. Design is the means to accurately translate customer requirements into finished
product.

23

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

EXPLANATION:

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. In a class diagram designed for efficient
access control in cloud-based user data storage and sharing, several key entities interact to manage
permissions and data securely.

24

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

4.3 Class Diagram

EXPLANATION

In this class diagram represents how the classes with attributes and methods are linked together
to perform the verification with security. The DataOwner class is responsible for managing the
data, with attributes like ownerID, username, email, and a list of dataList containing items they
own. The User class captures information about individuals who access the data, featuring
attributes such as userID, username, email, and a list of permissions granted to them.

25

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

4.4 Object Diagram

EXPLANATION:

This object diagram provides a snapshot of the system's state, showcasing the instances of various
classes and their relationships. It highlights how a specific data owner, user, and their associated
data items interact within a cloud environment, emphasizing the access control policies that govern
user permissions..

26

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

4.5 State Chart Diagram

EXPLANATION:

State diagram are a loosely defined diagram to show workflows of stepwise activities and
actions, with support for choice, iteration and concurrency. A state diagram for an efficient access
control system in cloud-based user data storage and sharing illustrates the various states that a data
item can transition through during its lifecycle. Initially, a DataItem is in the Stored state once it is
uploaded to the cloud server. From this state, the item can transition to the Shared state when a data
owner grants access to specific users through an access control policy.

27

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

4.6 Sequence Diagram

EXPLANATION:

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. A sequence diagram for an
efficient access control system in cloud-based user data storage and sharing illustrates the
interactions between various components during a user accessing a data item. The process begins
when the DataOwner initiates the sharing of a DataItem by creating an AccessControlPolicy.

28

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

4.7 Collaboration Diagram

EXPLANATION:

A collaboration diagram, also called a communication diagram or interaction diagram, is


an illustration of the relationships and interactions among software objects in the Unified Modeling
Language (UML). In a collaboration diagram, the same scenario highlights the relationships and
roles of the involved components rather than the time sequence of events. Here, the DataOwner is
shown collaborating with the CloudServer to create an AccessControlPolicy, which links the User
to the DataItem

29

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
4.8 Activity Diagram

EXPLANATION:

Activity diagrams are graphical representations of workflows of stepwise activities and


actions with support for choice, iteration and concurrency. An activity diagram for an efficient
access control system in cloud-based user data storage and sharing outlines the flow of actions
taken when a data owner shares a data item with a user. The process begins with the DataOwner
logging into the cloud system and selecting a DataItem to share.

30

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
4.9 Component Diagram

EXPLANATION:

In the Unified Modeling Language, a component diagram depicts how components are wired
together to form larger components and or software systems. A component diagram for an efficient
access control system in cloud-based user data storage and sharing illustrates the high-level
architecture of the system, detailing the various components and their relationships. At the core of
the diagram is the Cloud Server, which serves as the central repository for storing data items and
managing user access.

31

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
4.10 Data Flow Diagram:
Level 0:

32

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
Level 1:

33

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
Level 2:

EXPLANATION:

A data flow diagram (DFD) for an efficient access control system in cloud-based user data storage
and sharing visually represents the flow of data within the system, highlighting how information is
processed and exchanged among various components. The diagram begins with the DataOwner,
who initiates the process by uploading a DataItem to the Cloud Server. This data item is then stored
in the DataItem Repository.
34

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
4.11 E-R Diagram:

EXPLANATION:

Entity-Relationship Model (ERM) is an abstract and conceptual representation of data.


Entityrelationship modeling is a database modeling method, used to produce a type of conceptual
schema or semantic data model of a system, often a relational database. The User entity represents
individuals who can access shared data. It has a many-to-many relationship with the DataItem
entity through the AccessControlPolicy entity, which governs the permissions assigned to each user
for specific data items.

35

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
4.12 Deployment Diagram:

A deployment diagram for an efficient access control system in cloud-based user data storage and
sharing provides a visual representation of the system’s physical architecture and the relationships
between various hardware and software components. At the core of the diagram is the Cloud Server,
which acts as the central hub for data storage and processing. This server hosts several key software
components, including the Access Control Module, which manages user permissions and access
policies, and the DataItem Repository, where all data items are stored securely.

36

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

4.13 System Architecture

37

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
EXPLANATION:

KGC is the abbreviation of key generation center, who is fully trusted by all the entities in the
system. KGC is responsible to generate the public parameter for the whole system. Meanwhile,
KGC creates public/private key pair for each legal user in the system. The private key is sent to the
user via a secret channel. Users’ public keys are made public and maintained by KGC utilizing a
secure management mechanism (such as PKI: public key infrastructure. Data Owner utilizes the
cloud storage service to store the personal sensitive data. The data owner utilizes regular language
to describe the file, and encrypts the regular language and the file, which are then outsourced to the
cloud. Cloud Server provides cloud storage service for the users. The digital data are usually stored
in logical pools and multiple physical servers. The cloud server is responsible to keep the data
ubiquitously available and accessible by authorized users. Cloud server processes amazing data
processing and computation ability. Cloud server responds on the search query from the data user
and searches the match documents. Data user requests the cloud server to perform the test
calculations over the encrypted data. The data user generates a search token utilizing his private
key, which is sent to the cloud server to issue a query. The data user may utilize mobile device to
generate the search token such that the related algorithms should be efficient and have low
transmission overhead.

38

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 5

DEVELOPMENT TOOLS

1.1 GENERAL

This chapter is about the software language and the tools used in the development of the
project. The platform used here is JAVA. The Primary languages are JAVA, J2EE and J2ME. In this
project J2EE is chosen for implementation.

5.2 FEATURES OF JAVA

5.2.1 THE JAVA FRAMEWORK

Java is a programming language originally developed by James

Gosling at Microsystems and released in 1995 as a core component of Sun Microsystems' Java
platform. The language derives much of its syntax from C and C++ but has a simpler object model
and fewer low-level facilities. Java applications are typically compiled to byte code that can run on
any Java Virtual Machine (JVM) regardless of computer architecture. Java is general-purpose,
concurrent, class-based, and object-oriented, and is specifically designed to have as few
implementation dependencies as possible. It is intended to let application developers "write once,
run anywhere".

Java is considered by many as one of the most influential programming languages of the
20th century, and is widely used from application software to web applications the java framework
is a new platform independent that simplifies application development internet. Java technology's
versatility, efficiency, platform portability, and security make it the ideal technology for network
computing. From laptops to datacenters, game consoles to scientific supercomputers, cell phones
to the Internet, Java is everywhere!

39

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

5.2.2 OBJECTIVES OF JAVA

To see places of Java in Action in our daily life, explore java.com.

Why Software Developers Choose Java

Java has been tested, refined, extended, and proven by a dedicated community. And numbering

more than 6.5 million developers, it's the largest and most active on the planet. With its versatility,

efficiency, and portability, Java has become invaluable to developers by enabling them to:

• Write software on one platform and run it on virtually any other platform

• Create programs to run within a Web browser and Web services

• Develop server-side applications for online forums, stores, polls, HTML forms processing,

and more

• Combine applications or services using the Java language to create highly customized

applications or services

• Write powerful and efficient applications for mobile phones, remote processors, low-cost

consumer products, and practically any other device with a digital heartbeat

Some Ways Software Developers Learn Java

Today, many colleges and universities offer courses in programming for the Java platform. In
addition, developers can also enhance their Java programming skills by reading Sun's java.sun.com
Web site, subscribing to Java technology-focused newsletters, using the Java Tutorial and the New
to Java Programming Center, and signing up for Web, virtual, or instructor-led courses.

40

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
Object Oriented

To be an Object Oriented language, any language must follow at least the four characteristics.

1. Inheritance :It is the process of creating the new classes and using the behavior of
the existing classes by extending them just to reuse the existing code and adding

addition a features as needed.

2. Encapsulation: It is the mechanism of combining the information and providing the

abstraction.

3. Polymorphism: As the name suggest one name multiple form, Polymorphism is the way
of providing the different functionality by the functions having the same name based on

the signatures of the methods.

4. Dynamic binding: Sometimes we don't have the knowledge of objects about their
specific types while writing our code. It is the way of providing the maximum

functionality to a program about the specific type at runtime.

5.2.3 JAVA SWING OVERVIEW

Abstract Window Toolkit (AWT) is cross-platform

Swing[1] provides many controls and widgets to build user interfaces with. Swing class
names typically begin with a J such as JButton, JList, JFrame. This is mainly to
differentiate them from their AWT counterparts and in general is one-to-one
replacements. Swing is built on the concept of Lightweight components vs AWT and
SWT's concept of Heavyweight components. The difference between the two is that the
Lightweight components are rendered (drawn) using purely Java code, such as drawLine
and drawImage, whereas Heavyweight components use the native operating system to

41

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
render the components.

Some components in Swing are actually heavyweight components. The top-level classes
and any derived from them are heavyweight as they extend the AWT versions. This is
needed because at the root of the UI, the parent windows need to be provided by the OS.
These top-level classes include JWindow, JFrame, JDialog and JApplet. All Swing

components to be rendered to the screen must be able to trace their way to a root window

of one of those classes.

Note: It generally it is not a good idea to mix heavyweight components with lightweight

components (other than as previously mentioned) as you will encounter layering issues,
e.g., a lightweight component that should appear "on top" ends up being obscured by a
heavyweight component. The few exceptions to this include using heavyweight
components as the root pane and for popup windows. Generally speaking, heavyweight
components will render on top of lightweight components and will not be consistent with
the look and feel being used in Swing. There are exceptions, but that is an advanced
topic. The truly adventurous may want to consider reading this article from Sun on
mixing heavyweight and lightweight components.

5.2.4 Evolution of Collection Framework:

Almost all collections in Java are derived from the java.util.Collection interface. Collection
defines the basic parts of all collections. The interface states the add() and remove() methods for
adding to and removing from a collection respectively. Also required is the toArray() method,
which converts the collection into a simple array of all the elements in the collection. Finally, the
contains() method checks if a specified element is in the collection. The Collection interface is a
sub interface of java.util.Iterable, so the iterator() method is also provided. All collections have
an iterator that goes through all of the elements in the collection. Additionally, Collection is a
generic. Any collection can be written to store any class. For example, Collection<String> can hold
strings, and the elements from the collection can be used as strings without any casting required.
42

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
There are three main types of collections:

• Lists: always ordered, may contain duplicates and can be handled the same way as usual

arrays

• Sets: cannot contain duplicates and provide random access to their elements

• Maps: connect unique keys with values, provide random access to its keys and may host

duplicate values

LIST

Lists are implemented in the JCF via the java.util.List interface. It defines a list as essentially a
more flexible version of an array. Elements have a specific order, and duplicate elements are
allowed. Elements can be placed in a specific position. They can also be searched for within the
list. Two concrete classes implement List. The first is java.util.ArrayList, which implements the list
as an array. Whenever functions specific to a list are required, the class moves the elements around
within the array in order to do it. The other implementation is java.util.LinkedList. This class stores
the elements in nodes that each have a pointer to the previous and next nodes in the list. The list
can be traversed by following the pointers, and elements can be added or removed simply by
changing the pointers around to place the node in its proper place.

SET:

Java's java.util.Set interface defines the set. A set can't have any duplicate elements in it.
Additionally, the set has no set order. As such, elements can't be found by index. Set is implemented
by java.util.HashSet,java.util.LinkedHashSet, and java.util.TreeSet. HashSet uses a hash table.
More specifically, it uses a java.util.HashMap to store the hashes and elements and to prevent
duplicates. Java.util.LinkedHashSet extends this by creating a doubly linked list that links all of the
elements by their insertion order. This ensures that the iteration order over the set is predictable.
java.util.TreeSet uses a red-black tree implemented by a java.util.TreeMap. The redblack tree

43

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
makes sure that there are no duplicates. Additionally, it allows Tree Set to implement
java.util.SortedSet.

The java.util.Set interface is extended by the java.util.SortedSet interface. Unlike a regular set, the
elements in a sorted set are sorted, either by the element's compareTo() method, or a method
provided to the constructor of the sorted set. The first and last elements of the sorted set can be
retrieved, and subsets can be created via minimum and maximum values, as well as beginning or
ending at the beginning or ending of the sorted set. The SortedSet interface is implemented by
java.util.TreeSet java.util.SortedSet is extended further via the java.util.NavigableSet interface.
It's similar to SortedSet, but there are a few additional methods. The floor(), ceiling(), lower(), and
higher() methods find an element in the set that's close to the parameter. Additionally, a descending
iterator over the items in the set is provided. As with SortedSet, java.util.TreeSet implements
NavigableSet.

MAP:

Maps are defined by the java.util.Map interface in Java. Maps are simple data structures that
associate a key with a value. The element is the value. This lets the map be very flexible. If the key
is the hash code of the element, the map is essentially a set. If it's just an increasing number, it
becomes a list. Maps are implemented by java.util.HashMap, java.util.LinkedHashMap, and
java.util.TreeMap. HashMap uses a hash table. The hashes of the keys are used to find the values
in various buckets. LinkedHashMap extends this by creating a doubly linked list between the
elements. This allows the elements to be accessed in the order in which they were inserted into the
map. TreeMap, in contrast to HashMap and LinkedHashMap, uses a red-black tree. The keys are
used as the values for the nodes in the tree, and the nodes point to the values in the map

Thread:

Simply put, a thread is a program's path of execution. Most programs written today run as a single
thread, causing problems when multiple events or actions need to occur at the same time. Let's say,
for example, a program is not capable of drawing pictures while reading keystrokes. The program
must give its full attention to the keyboard input lacking the ability to handle more than one event at
44

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
a time. The ideal solution to this problem is the seamless execution of two or more sections of a
program at the same time.
Creating threads
Java's creators have graciously designed two ways of creating threads: implementing an interface
and extending a class. Extending a class is the way Java inherits methods and variables from a
parent class. In this case, one can only extend or inherit from a single parent class. This limitation
within Java can be overcome by implementing interfaces, which is the most common way to create
threads. (Note that the act of inheriting merely allows the class to be run as a thread. It is up to the
class to start() execution, etc.)
Interfaces provide a way for programmers to lay the groundwork of a class. They are used to design
the requirements for a set of classes to implement. The interface sets everything up, and the class
or classes that implement the interface do all the work. The different set of classes that implement
the interface have to follow the same rules.

5.5 Conclusion
Swing's high level of flexibility is reflected in its inherent ability to override the native host
operating system (OS)'s GUI controls for displaying itself. Swing "paints" its controls using the
Java 2D APIs, rather than calling a native user interface toolkit. The Java thread scheduler is very
simple. All threads have a priority value which can be changed dynamically by calls to the threads
setPriority() method . Implementing the above concepts in our project to do the efficient work
among the Server.

45

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 6

IMPLEMENTATION
6.1 GENERAL CODING:

Index.jsp

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


pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type" content="text/html; charset=ISO-8859-

1"><title>HomePage</title>

</head>

<body background="images/blackboard.png">

<br/><br/><br/><br/><br/><br/><br/><br/><br/>

<center>
<a style="color: white;font-size: 30px;font-family: "Times New Roman", Times, serif;;"
href="pcslogin.jsp"><span>CLOUD SERVER</span></a> <br/><br/><br/><br/>
<!-- <a style="color: white;font-size: 30px;font-family: "Times New Roman", Times, serif;;"
href="smlogin.jsp"><span>SYSTEM MANAGER</span></a><br/><br/> -->
<a style="color: white;font-size: 30px;font-family: "Times New Roman", Times, serif;;"
href="dataownerhome.jsp"><span>DATA OWNER</span></a><br/><br/><br/><br/>
<a style="color: white;font-size: 30px;font-family: "Times New Roman", Times, serif;;"
href="userhome.jsp"><span>USER</span></a><br/><br/>

46

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

<!-- <a style="color: white;font-size: 30px;font-family: "Times New Roman", Times, serif;;"
href="cahome.jsp"><span>CLOUD AUTHORITY</span></a> -->

</center>

</body>

</html>

Ownregister.jsp

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


pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>ownregister</title>

</head>

<script type="text/javascript"> function valid(val)

if((form1.Name.value== "")||(form1.password.value==

"")||(form1.RetypePassword.value== "")||(form1.gender.value== "")||(form1.address.value== ""))

alert("All Fields are mandatory"); return false;

if((form1.Name.value.length)<6||(form1.Name.value.length)>10)

{
47

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

public OwnerRegister() { super();

// TODO Auto-generated constructor stub

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/ protected void doGet(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {

// TODO Auto-generated method stub

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/ protected void doPost(HttpServletRequest request, HttpServletResponse response)


throws ServletException, IOException {
// TODO Auto-generated method stub String Oname=request.getParameter("Name");

String Passwd=request.getParameter("password");

String Confirm=request.getParameter("RetypePassword");

/*String Emailid=request.getParameter("Email");*/

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

/*String Dob=request.getParameter("dob");*/

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

<h2>

<a style="color: white;margin-left:1080px;" href="Index.jsp">LOGOUT</a></h2><br/><br/>


48

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
<table border="1" style="width:1000px;color:black;" align="center" bordercolor="yellow">

<tr><th style="color:tomato;">USERNAME</th>

<th style="color:tomato;">PASSWORD</th>

<th style="color:tomato;">ADDRESS</th>

<th style="color:tomato;">REQUEST</th>

</tr>

<%try{

String name=request.getParameter("uname"); System.out.println("name:

"+name); int i=0;

String invalid="valid";

Class.forName ("com.mysql.jdbc.Driver"); Connection


con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mjcc03_2018","root","root")

; Statement st=con.createStatement();

String query="UPDATE userreg SET status='"+invalid+"' WHERE username='"+name+"'";


i=st.executeUpdate(query); System.out.println(i); if(i==1){
//RequestDispatcher rd=request.getRequestDispatcher("/Loginca.jsp"); //rd.forward(request,

response);

String valid="invalid";

Class.forName ("com.mysql.jdbc.Driver");
Connection
con1=DriverManager.getConnection("jdbc:mysql://localhost:3306/mjcc03_2018","root","root");
Statement st1=con.createStatement();

String query1="select * from userreg where status='"+valid+"'";

System.out.println("catabbbbbbbbbbbbbbbbbbb");

ResultSet rs1=st1.executeQuery(query1); while(rs1.next()){


49

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
String usname=rs1.getString(1);

String pwd=rs1.getString(2);

String uadd=rs1.getString(5);

java.sql.ResultSet; import java.sql.Statement; import


javax.servlet.ServletException; import
javax.servlet.annotation.WebServlet; import
javax.servlet.http.HttpServlet; import
javax.servlet.http.HttpServletRequest; import
javax.servlet.http.HttpServletResponse; import
javax.swing.JFrame; import
javax.swing.JOptionPane;

import dbconnection.DBConnect;

} if(key!=null &&

status.equals("valid"))

JFrame f; f=new JFrame();

JOptionPane.showMessageDialog(f,"Conducting Deterministic Finite Automata

(DFA).","Alert",JOptionPane.WARNING_MESSAGE);

response.sendRedirect("renival.jsp?key="+key); }

else{

response.sendRedirect("keyalert.jsp");

}}

50

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
Calog.java

package servlet;

import java.io.IOException; import


javax.servlet.ServletException; import
javax.servlet.annotation.WebServlet; import
javax.servlet.http.HttpServlet; import
javax.servlet.http.HttpServletRequest; import
javax.servlet.http.HttpServletResponse;

@WebServlet("/Calog")

public class Calog extends HttpServlet {

private static final long serialVersionUID = 1L;

Upload.java

package servlet;

import implementation.implement1;
import interfaces.inter1; import
java.io.File; import
java.io.FileInputStream; import
java.io.FileOutputStream; import
java.io.IOException; import
java.util.Random;

import javax.servlet.RequestDispatcher; import


javax.servlet.ServletException; import
public Upload() { super();

// TODO Auto-generated constructor stub

51

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws


ServletException, IOException {

// TODO Auto-generated method stub

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

// TODO Auto-generated method stub

//String onme=request.getParameter("onam"); int status=0;

HttpSession s1=request.getSession(false);

String owname1=(String)s1.getAttribute("owname");

String onme=owname1;

System.out.println("onme Page:"+onme);

System.out.println("Servlet Page");

Part part = null;

FilePart filePart = null;

String key=null;

String filename =null;

String type = null; double

fileSize=0.0;

String filecontent="";

String encryptedcontent="";

String decryptedcontent="";

52

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 7

SNAPSHOTS

General:
This project is implements like web application using COREJAVA and the Server process is

maintained using the SOCKET & SERVERSOCKET and the Design part is played by Cascading

Style Sheet.

SNAPSHOTS

53

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

54

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

55

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 8
SOFTWARE TESTING

8.1 GENERAL
The purpose of testing is to discover errors. Testing is the process of trying to discover every
conceivable fault or weakness in a work product. It provides a way to check the functionality of
components, sub-assemblies, assemblies and/or a finished product It is the process of exercising
software with the intent of ensuring that the Software system meets its requirements and user
expectations and does not fail in an unacceptable manner. There are various types of test. Each test
type addresses a specific testing requirement.

8.2 DEVELOPING METHODOLOGIES


The test process is initiated by developing a comprehensive plan to test the general
functionality and special features on a variety of platform combinations. Strict quality control
procedures are used. The process verifies that the application meets the requirements specified in
the system requirements document and is bug free. The following are the considerations used to
develop the framework from developing the testing methodologies.

8.3 Types of Tests

8.3.1 Unit testing


Unit testing involves the design of test cases that validate that the internal program logic is
functioning properly, and that program input produce valid outputs. All decision branches and
internal code flow should be validated. It is the testing of individual software units of the application
.it is done after the completion of an individual unit before integration. This is a structural testing,
that relies on knowledge of its construction and is invasive. Unit tests perform basic tests at
component level and test a specific business process, application, and/or system configuration. Unit
tests ensure that each unique path of a business process performs accurately to the documented
specifications and contains clearly defined inputs and expected results.
56

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

8.3.2 Functional Test

Functional tests provide systematic demonstrations that functions tested are available as

specified by the business and technical requirements, system documentation, and user manuals.

Functional testing is centered on the following items:

Valid Input : identified classes of valid input must be accepted.

Invalid Input : identified classes of invalid input must be rejected.

Functions : identified functions must be exercised.

Output : identified classes of application outputs must be exercised.

Systems/Procedures : interfacing systems or procedures must be invoked.

8.3.3 System Test

System testing ensures that the entire integrated software system meets requirements. It tests a
configuration to ensure known and predictable results. An example of system testing is the
configuration oriented system integration test. System testing is based on process descriptions and
flows, emphasizing pre-driven process links and integration points.

8.3.4 Performance Test

The Performance test ensures that the output be produced within the time limits, and the time

taken by the system for compiling, giving response to the users and request being send to the system

for to retrieve the results.

57

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
8.3.5 Integration Testing

Software integration testing is the incremental integration testing of two or more integrated
software components on a single platform to produce failures caused by interface defects. The
task of the integration test is to check that components or software applications, e.g. components
in a software system or – one step up – software applications at the company level – interact without
error.

8.3.6 Acceptance Testing

User Acceptance Testing is a critical phase of any project and requires significant participation

by the end user. It also ensures that the system meets the functional requirements.

Acceptance testing for Data Synchronization:

 The Acknowledgements will be received by the Sender Node after the Packets are received

by the Destination Node

 The Route add operation is done only when there is a Route request in need

 The Status of Nodes information is done automatically in the Cache Updation process

8.2.7 Build the test plan

Any project can be divided into units that can be further performed for detailed processing. Then

a testing strategy for each of this unit is carried out. Unit testing helps to identity the possible bugs

in the individual component, so the component that has bugs can be identified and can be rectified

from errors.
58

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 9
APPLICATION
9.1 GENERAL

The provable data possession (PDP) provides a probabilistic proof method for cloud computing
to prove the user’s data integrity without downloading all the information. The PDP problem was
handled. Studied the design principle of PDP constructions and pointed out the limitations of the
existing PDP models. Proposed an identity based PDP model for multi-cloud storage, which
eliminates the troublesome certificate management and enables multiple types of verification.
Studied the proof of retrievability problem in cloud with resource-constrained devices. They
reduced the heavy computation cost of tag generation and realized dynamic data operations.
Combining proof of retrievability and revocation, proposed a new secure cloud storage
architecture. Put forth a lightweight coding based scheme to accommodate multiple users.

9.2 FUTURE ENHANCEMENT


We do know the encryption was shared key, symmetric stuff; but we don’t know exactly how it
works which limits the practical applications. However, encryption built on machine learning alone
is impressive enough to make us wonder where else encryption might go in the future. Any security
model, cryptographic or otherwise, is conceptually an arms race between the adversaries that wish
to subvert the technology and those that rely on the technology to secure their information.

59

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage

CHAPTER 10
CONCLUSION & REFERENCE

10.1 CONCLUSION

In this paper, we introduce a large universe searchable encryption scheme to protect the security
of cloud storage system, which realizes regular language encryption and DFA search function. The
cloud service provider could test whether the encrypted regular language in the encrypted
ciphertext is acceptable by the DFA embedded in the submitted search token. In the test procedure,
no plaintext of the regular language or the DFA will be leaked to the cloud server. We also put forth
a concrete construction with lightweight encryption and token generation algorithms. An example
is given to show how the system works. The proposed scheme is privacy-preserving and
indistinguishable against KGA, which are proved in standard model. The comparison and
experiment result confirm the low transmission and computation overhead of the scheme.

10.2 REFERENCE:

[1] Erl T, Cope R, Naserpour A. Cloud computing design patterns[M]. Prentice Hall Press,
2015.

[2] Li Z, Dai Y, Chen G, et al. Toward network-level efficiency for cloud storage

services[M]//Content Distribution for Mobile Internet: A Cloud-based Approach. Springer

Singapore, 2016: 167-196.

[3] Sookhak M, Gani A, KhanMK, et al. Dynamic remote data auditing for securing big data

storage in cloud computing[J]. Information Sciences, 2017, 380: 101-116.

60

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
[4] Zhang Q, Yang L T, Chen Z, Li P. Privacy-preserving double projection deep computation

model with crowd sourcing on cloud for big data feature learning[J]. IEEE Internet of

Things Journal, 2017, DOI: 10.1109/JIOT.2017.2732735.

[5] Zhang Q, Yang L T, Chen Z, Li P. PPHOPCM: Privacy-preserving High-order Possibilistic

c-Means Algorithm for Big Data Clustering with Cloud Computing[J]. IEEE Transactions

on Big Data, 2017, DOI: 10.1109/TBDATA.2017.2701816.

[6] Liu J K, Liang K, Susilo W, et al. Two-factor data security protection mechanism for cloud

storage system[J]. IEEE Transactions on Computers, 2016, 65(6): 1992-2004.

[7] Boneh D, Waters B. Conjunctive, subset, and range queries on encrypted data[C]//Theory

of Cryptography Conference. Springer Berlin Heidelberg, 2007: 535-554.

[8] Q. Zheng, S. Xu, and G. Ateniese. VABKS: verifiable attribute-based keyword search over

outsourced encrypted data. In INFOCOM, pp. 522C530. IEEE, 2014.

[9] Liang K, Huang X, Guo F, et al. Privacy-Preserving and Regular Language Search Over

Encrypted Cloud Data[J]. IEEE Transactions on Information Forensics and Security, 2016,

11(10): 2365-2376.

[10] Chang V, Ramachandran M. Towards achieving data security with the cloud computing

adoption framework [J]. IEEE Transactions on Services Computing, 2016, 9(1): 138-151.

[11] Zheng X H, Chen N, Chen Z, et al. Mobile cloud based framework for remote-resident

multimedia discovery and access[J]. Journal of Internet Technology, 2014, 15(6):

10431050.

61

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
[12] Chang V, Kuo Y H, Ramachandran M. Cloud computing adoption framework: A security

framework for business clouds [J]. Future Generation Computer Systems, 2016, 57: 24-41.

[13] Barsoum A. Provable data possession in single cloud server: A survey, classification and

comparative study[J]. International Journal of Computer Applications, 2015, 123(9).

[14] Wang H. Identity-based distributed provable data possession in multicolour storage[J].

IEEE Transactions on Services Computing, 2015, 8(2): 328-340.

[15] J, Tan X, Chen X, et al. Opor: Enabling proof of irretrievability in cloud computing with

resourceconstrained devices[J]. IEEE Transactions on cloud computing, 2015, 3(2):

195205.

[16] Tiwari D, Gangadharan G R. A novel secure cloud storage architecture combining proof of

retrievability and revocation[ C]//Advances in Computing, Communications and

Informatics (ICACCI), 2015 International Conference on. IEEE, 2015: 438-445.

[17] Omote K, Thao T P. MD-POR: multisource and direct repair for network coding-based

proof of retrievability[J]. International Journal of Distributed Sensor Networks, 2015,

2015:3.

[18] Hopcroft JE, Motwani R, Ullman JD. Automata theory, languages, and computation.

International Edition 24 (2006).

[19] Lucas SM, Reynolds TJ. Learning deterministic finite automata with a smart state labeling

evolutionary algorithm. IEEE Transactions on Pattern Analysis and Machine Intelligence.

2005 Jul;27(7):1063-74.

62

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
[20] Kobayashi K, Imura JI. Deterministic finite automata representation for model predictive

control of hybrid systems. Journal of Process Control. 2012 Oct 31;22(9):1670-80.

[21] de Parga MV, Garcła P, Lpez D. A polynomial double reversal minimization algorithm for

deterministic finite automata. Theoretical Computer Science. 2013 May 27;487:17-22.

[22] Sarkar P, Kar C. Adaptive E-learning using Deterministic Finite Automata[J]. International

Journal of Computer Applications, 2014, 97(21).

[23] Fernau H, Heggernes P, Villanger Y. A multi-parameter analysis of hard problems on

deterministic finite automata[J]. Journal of Computer and System Sciences, 2015, 81(4):

747-765.

[24] Farmanbar A, Firouzi S, Park S J, et al. Multidisciplinary insight into clonal expansion of

HTLV1Cinfected cells in adult T-cell leukemia via modeling by deterministic finite

automata coupled with highthroughput sequencing[J]. BMC medical genomics, 2017,

10(1): 4.

[25] D.X. Song, D.Wagner, A. Perrig, ”Practical techniques for searches on encrypted data”, in:

IEEE Symposium on Security and Privacy, 2000, pp. 44-55.

[26] Wang C, Cao N, Ren K, et al. Enabling secure and efficient ranked keyword search over

outsourced cloud data[J]. IEEE Transactions on parallel and distributed systems, 2012,

23(8): 1467-1479.

[27] Liu Q, Tan C C, Wu J, et al. Towards differential query services in cost-efficient clouds[J].

IEEE Transactions on parallel and Distributed Systems, 2014, 25(6): 1648-1658.

63

Department of CSE, GNITC


Efficient Regular Language Search For Secure Cloud Storage
[28] Xu P, Jin H, Wu Q, et al. Public-key encryption with fuzzy keyword search: A provably

secure scheme under keyword guessing attack[J]. IEEE Transactions on computers, 2013,

62(11): 2266-2277.

[29] Li H, Yang Y, Luan T H, et al. Enabling fine-grained multi-keyword search supporting

classified subdictionaries over encrypted cloud data[J]. IEEE Transactions on Dependable

and Secure Computing, 2016, 13(3): 312-325.

[30] Cui B, Liu Z, Wang L. Key-Aggregate Searchable Encryption (KASE) for Group Data

Sharing via Cloud Storage[J]. IEEE TRANSACTIONS ON COMPUTERS, 2014, 6(1): 1.


[31] Yang Y, Ma M. Conjunctive Keyword Search With Designated Tester and Timing Enabled

Proxy ReEncryption Function for EHealth Clouds[J]. IEEE Transactions on Information

Forensics and Security, 2016, 11(4):746-759.

64

Department of CSE, GNITC

You might also like