Efficient regular language search for secure cloud storage
Efficient regular language search for secure cloud storage
BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE & ENGINEERING
Submitted by
(MS. K. SREEDEVI)
Assoiciate Professor of CSE, GNITC
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
fulfillment for the award of Degree of Bachelor of Technology in Computer Science &
Jawaharlal Nehru Technological University, Hyderabad during the academic Year 2024-
2025.
—------------------------------- —---------------------------------
INTERNAL GUIDE PROJECT CO-ORDINATOR
—------------------------------- —---------------------------------
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.
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.
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
ABSTRACT i-ix
LIST OF FIGRUES
LIST OF NOTATIONS
ii
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage
iii
Department of CSE, GNITC
Efficient Regular Language Search For Secure Cloud Storage
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.
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
4. CB Collective Behavior
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.
The security of the private key depends entirely on the security of the computer
TITLE : Data Security and Access Control in Cloud Computing: A Comprehensive Survey.
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.
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.
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.
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.
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.
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.
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.
An encrypting algorithm scrambles the message and it can only be unscrambled with
Cipher algorithms are either symmetric or asymmetric for encryption security. For
example: Symmetric - the exact same key is used to encrypt and decrypt data.
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
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
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
12
13
14
15
Data User
16
User Interface
Output: If valid user means directly open the home page otherwise show the error message and redirect to the
registration page.
Output: KGC creates a pair of public / private keys for each legal user in the system.
Data Owners
Output: Data Owners Upload files, encrypting files, key generating, view upload files.
Cloud Server
Output: Cloud server checking Data Owner stored data, Users Details, Send key to users.
Data User
Output: User Search Files details by using different models, If CS given authority decrypts files, download files.
17
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
19
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.
HARDWARE
• HARD DISK : 40 GB
20
• IDE : Eclipse
21
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
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
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.
22
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
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
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
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
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
EXPLANATION:
28
EXPLANATION:
29
EXPLANATION:
30
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
32
33
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
EXPLANATION:
35
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
37
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
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.
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
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
• 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
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
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
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
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
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
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
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.
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
• 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
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
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
CHAPTER 6
IMPLEMENTATION
6.1 GENERAL CODING:
Index.jsp
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
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
<!-- <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
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ownregister</title>
</head>
if((form1.Name.value== "")||(form1.password.value==
if((form1.Name.value.length)<6||(form1.Name.value.length)>10)
{
47
/**
/**
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>
<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 invalid="valid";
; Statement st=con.createStatement();
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();
System.out.println("catabbbbbbbbbbbbbbbbbbb");
String pwd=rs1.getString(2);
String uadd=rs1.getString(5);
import dbconnection.DBConnect;
} if(key!=null &&
status.equals("valid"))
(DFA).","Alert",JOptionPane.WARNING_MESSAGE);
response.sendRedirect("renival.jsp?key="+key); }
else{
response.sendRedirect("keyalert.jsp");
}}
50
package servlet;
@WebServlet("/Calog")
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;
51
ServletException, IOException {
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");
String key=null;
fileSize=0.0;
String filecontent="";
String encryptedcontent="";
String decryptedcontent="";
52
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
54
55
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.
Functional tests provide systematic demonstrations that functions tested are available as
specified by the business and technical requirements, system documentation, and user manuals.
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.
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
57
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.
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.
The Acknowledgements will be received by the Sender Node after the Packets are received
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
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
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.
59
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
[3] Sookhak M, Gani A, KhanMK, et al. Dynamic remote data auditing for securing big data
60
model with crowd sourcing on cloud for big data feature learning[J]. IEEE Internet of
c-Means Algorithm for Big Data Clustering with Cloud Computing[J]. IEEE Transactions
[6] Liu J K, Liang K, Susilo W, et al. Two-factor data security protection mechanism for cloud
[7] Boneh D, Waters B. Conjunctive, subset, and range queries on encrypted data[C]//Theory
[8] Q. Zheng, S. Xu, and G. Ateniese. VABKS: verifiable attribute-based keyword search over
[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
10431050.
61
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
[15] J, Tan X, Chen X, et al. Opor: Enabling proof of irretrievability in cloud computing with
195205.
[16] Tiwari D, Gangadharan G R. A novel secure cloud storage architecture combining proof of
[17] Omote K, Thao T P. MD-POR: multisource and direct repair for network coding-based
2015:3.
[18] Hopcroft JE, Motwani R, Ullman JD. Automata theory, languages, and computation.
[19] Lucas SM, Reynolds TJ. Learning deterministic finite automata with a smart state labeling
2005 Jul;27(7):1063-74.
62
[21] de Parga MV, Garcła P, Lpez D. A polynomial double reversal minimization algorithm for
[22] Sarkar P, Kar C. Adaptive E-learning using Deterministic Finite Automata[J]. International
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
10(1): 4.
[25] D.X. Song, D.Wagner, A. Perrig, ”Practical techniques for searches on encrypted data”, in:
[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].
63
secure scheme under keyword guessing attack[J]. IEEE Transactions on computers, 2013,
62(11): 2266-2277.
[30] Cui B, Liu Z, Wang L. Key-Aggregate Searchable Encryption (KASE) for Group Data
64