You are on page 1of 73

CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING

ENABLED PROXY RE ENCRYPTION

1. INTRODUCTION

Computer security:

Also known as cyber security or IT Security is information security as applied


to computers and networks. The field covers all the processes and mechanisms by
which computer-based equipment, information and services are protected from
unintended or unauthorized access, change or destruction. Computer security also
includes protection from unplanned events and natural disasters. Otherwise, in the
computer industry, the term security -- or the phrase computer security -- refers to
techniques for ensuring that data stored in a computer cannot be read or compromised
by any individuals without authorization. Most computer security measures
involve data encryption and passwords. Data encryption is the translation of data into
a form that is unintelligible without a deciphering mechanism. A password is a secret
word or phrase that gives a user access to a particular program or system.

Working conditions and basic needs in the secure computing:


If you don't take basic steps to protect your work computer, you put it and all
the information on it at risk. You can potentially compromise the operation of other
computers on your organization's network, or even the functioning of the network as a
whole.
1.Physical security:
Technical measures like login passwords, anti-virus are essential. (More about
those below) However, a secure physical space is the first and more important line of
defense is the place you keep your workplace computer secure enough to prevent theft
or access to it while you are away? While the Security Department provides
coverage across the Medical center, it only takes seconds to steal a computer,
particularly a portable device like a laptop or a PDA. A computer should be secured
like any other valuable possession when you are not present.

Human threats are not the only concern. Computers can be compromised by
environmental mishaps (e.g., water, coffee) or physical trauma. Make sure the
physical location of your computer takes account of those risks as well.

1
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Access passwords:

The University's networks and shared information systems are protected in part
by login credentials (user-IDs and passwords). Access passwords are also an essential
protection for personal computers in most circumstances. Offices are usually open
and shared spaces, so physical access to computers cannot be completely controlled.
To protect your computer, you should consider setting passwords for particularly
sensitive applications resident on the computer (e.g., data analysis software), if the
software provides that capability.
1. Prying eye protection:

Because we deal with all facets of clinical, research, educational and


administrative data here on the medical campus, it is important to do everything
possible to minimize exposure of data to unauthorized individuals.

2. Anti-virus software:

Up-to-date, properly configured anti-virus software is essential. While


we have server-side anti-virus software on our network computers, you still need it on
the client side (your computer)
3. Firewalls:

Anti-virus products inspect files on your computer and in email. Firewall


software and hardware monitor communications between your computer and the
outside world. That is essential for any networked computer.

1.Software updates:

It is critical to keep software up to date, especially the operating system, anti-


virus and anti-spyware, email and browser software. The newest versions will
contain fixes for discovered vulnerabilities.
Almost all anti-virus have automatic update features (including SAV). Keeping the
"signatures" (digital patterns) of malicious software detectors up-to-date is essential
for these products to be effective.

2
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

2.Keep secure backups:


.
Even if you take all these security steps, bad things can still happen. Be
prepared for the worst by making backup copies of critical data, and keeping those
backup copies in a separate, secure location. For example, use supplemental hard
drives, CDs/DVDs, or flash drives to store critical, hard-to-replace data.
Benefits of secure computing:
Protect yourself-civil liability:
You may be held legally liable to compensate a third party should they
experience financial damage or distress as a result of their personal data being stolen
from you or leaked by you.
Protect your credibility-compilance:
You may require compliancy with the Data Protection Act, the FSA, SOX or
other regulatory standards. Each of these bodies stipulates that certain measures be
taken to protect the data on your network.

Protect your income- Competitive advantage:


There are a number of “hackers-for-hire” advertising their services on the
internet selling their skills in breaking into company’s servers to steal client databases,
proprietary software, merger and acquisition information, personnel detailset al.
Protect your business-Blackmail:
A seldom-reported source of income for “hackers” is to·break into your
server,change all your passwords and lock you out of it. The password is then sold
back to you. Note: the “hackers” may implant a backdoor program on your server so
that they can repeat the exercise at will.
Protect your investment-Free storage:
Your server’s harddrive space is used (or sold on) to house the hacker's video
clips, music collections, pirated software or worse. Your server or computer then
becomes continuously slow and your internet connection speeds deteriorate due to the
number of people connecting to your server in order to download the offered wares.

Cloud computing:

3
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Cloud computing is the use of computing resources (hardware and software)


that are delivered as a service over a network (typically the Internet). The name comes
from the common use of a cloud-shaped symbol as an abstraction for the complex
infrastructure it contains in system diagrams. Cloud computing entrusts remote
services with a user's data, software and computation. Cloud computing consists of
hardware and software resources made available on the Internet as managed third-
party services. These services typically provide access to advanced software
applications and high-end networks of server computers.
The goal of cloud computing is to apply traditional supercomputing, or high-
performance computing power, normally used by military and research facilities, to
perform tens of trillions of computations per second, in consumer-oriented
applications such as financial portfolios, to deliver personalized information, to
provide data storage or to power large, immersive computer games.
The cloud computing uses networks of large groups of servers typically running low-
cost consumer PC technology with specialized connections to spread data-processing
chores across them. This shared IT infrastructure contains large pools of systems that
are linked together. Often, virtualization techniques are used to maximize the power
of cloud computing.

Characteristics and Services Models:


The salient characteristics of cloud computing based on the definitions
provided by the National Institute of Standards and Terminology (NIST) are outlined
below:
 On-demand self-service: A consumer can unilaterally provision computing
capabilities, such as server time and network storage, as needed automatically
without requiring human interaction with each service’s provider.
 Broad access network: Capabilities are available over the network and
accessed through standard mechanisms that promote use by heterogeneous
thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
 Resource pooling: The provider’s computing resources are pooled to serve
multiple consumers using a multi-tenant model, with different physical and
virtual resources dynamically assigned and reassigned according to consumer

4
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

demand. There is a sense of location-independence in that the customer


generally has no control or knowledge over the exact location of the provided
resources but may be able to specify location at a higher level of abstraction
(e.g., country, state, or data center). Examples of resources include storage,
processing, memory, network bandwidth, and virtual machines.
 Rapid elasticity: Capabilities can be rapidly and elastically provisioned, in
some cases automatically, to quickly scale out and rapidly released to quickly
scale in. To the consumer, the capabilities available for provisioning often
appear to be unlimited and can be purchased in any quantity at any time.

 Measured service: Cloud systems automatically control and optimize


resource use by leveraging a metering capability at some level of abstraction
appropriate to the type of service (e.g., storage, processing, bandwidth, and for
both the provider and consumer of the utilized service. active user accounts).
Resource usage can be managed, controlled, and reported providing
transparency

Services Models:

Cloud Computing comprises three different service models, namely


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

5
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Structure of service models

Benefits of cloud computing:


1. Achieve economies of scale – increase volume output or productivity with
fewer people. Your cost per unit, project or product plummets.
2. Reduce spending on technology infrastructure . Maintain easy access to
your information with minimal upfront spending. Pay as you go (weekly,
quarterly or yearly), based on demand.
3. Globalize your workforce on the cheap. People worldwide can access the
cloud, provided they have an Internet connection.
4. Streamline processes. Get more work done in less time with less people.
5. Reduce capital costs. There’s no need to spend big money on hardware,
software or licensing fees.
6. Improve accessibility. You have access anytime, anywhere, making your life
so much easier!
7. Monitor projects more effectively. Stay within budget and ahead of
completion cycle times.
8. Less personnel training is needed. It takes fewer people to do more work on
a cloud, with a minimal learning curve on hardware and software issues.

6
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

9. Minimize licensing new software. Stretch and grow without the need to buy
expensive software licenses or programs.

10. Improve flexibility. You can change direction without serious “people” or
“financial” issues at stake.

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

2. LITERATURE REVIEW

1) Designing a system for patients controlling providers

7
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

AUTHORS: J. C. Leventhal, J. A. Cummins, P. H. Schwartz, D. K. Martin, and W.


M. Tierney

BACKGROUND:
Electronic health records (EHRs) are proliferating, and financial incentives
encourage their use. Applying Fair Information Practice principles to EHRs
necessitates balancing patients' rights to control their personal information with
providers' data needs to deliver safe, high-quality care. We describe the technical and
organizational challenges faced in capturing patients' preferences for patient-
controlled EHR access and applying those preferences to an existing EHR.
METHODS:
We established an online system for capturing patients' preferences for who
could view their EHRs (listing all participating clinic providers individually and
categorically-physicians, nurses, other staff) and what data to redact (none, all, or by
specific categories of sensitive data or patient age). We then modified existing data-
viewing software serving a state-wide health information exchange and a large urban
health system and its primary care clinics to allow patients' preferences to guide data
displays to providers.

2) Public key encryption with keyword search

AUTHORS: D. Boneh, G. Di Crescenzo, R. Ostrovsky, and G. Persiano


We study the problem of searching on data that is encrypted using a public key
system. Consider user Bob who sends email to user Alice encrypted under Alice’s
public key. An email gateway wants to test whether the email contains the keyword
“urgent” so that it could route the email accordingly. Alice, on the other hand does not
wish to give the gateway the ability to decrypt all her messages. We define and
construct a mechanism that enables Alice to provide a key to the gateway that enables
the gateway to test whether the word “urgent” is a keyword in the email without
learning anything else about the email. We refer to this mechanism as Public Key
Encryption with keyword Search. As another example, consider a mail server that
stores various messages publicly encrypted for Alice by others. Using our mechanism
Alice can send the mail server a key that will enable the server to identify all

8
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

messages containing some specific keyword, but learn nothing else. We define the
concept of public key encryption with keyword search and give several constructions.
3) Public key encryption schemes supporting equality test with authorisation of
different granularity
AUTHORS: Q. Tang
In this paper, we extend the work about public key encryption schemes
supporting fine-grained authorisation (FG-PKEET), done by Tang (2011b). First of
all, we correct some flaws in Tang (2011b) and discuss how to extend the proposed
cryptosystem to support approximate equality test. Secondly, we present a comparison
between FG-PKEET and other similar primitives including AoN-PKEET by Tang
(2011a) and PKEET by Yang et al. (2010), and demonstrate their differences in
complexity and achieved security. Thirdly, to mitigate the inherent offline message
recovery attacks, we extend FG-PKEET to a two-proxy setting, where two proxies
need to collaborate in order to perform an equality test. Finally, we propose a
cryptosystem and prove its security in the two-proxy setting.
4) Efficient verifiable public key encryption with keyword search based on KP-
ABE
AUTHORS: P. Liu, J. Wang, H. Ma, and H. Nie
As a very attractive cryptographic primitive, the public key encryption with
keyword search (PEKS) enables users to search on encrypted data, and hence is
applicable to the setting of cloud computing. Although the existing PEKS schems can
allow a user to search encrypted data confidentially, most of them failed to verify the
searched result and the system did not specify the users who can make a request for
encrypted data files stored on the cloud server. Recently, a novel cryptographic
solution, called verifiable attribute-based keyword search (VABKS) was proposed by
Zheng. It allows a data user, whose credentials satisfy the data owner's access control
policy, to search the encrypted data file and verify the searched result. However, the
scheme exists an unrealistic assumption of secure channel as in the Boneh's scheme.

In this paper, we propose a new scheme which "removes secure channel" and
construct a novel method for verifying the searched result from the cloud server based
on key policy attribute-based keyword search (KP-ABKS) of VABKS. It can be
effectively to verify the correctness and integrity of the data file which the data user

9
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

desired for. By our simulation for the verification, it proves that our scheme is more
practical than VABKS.
5) Public key encryption with keyword search secure against keyword guessing
attacks without random oracle
AUTHORS: L. Fang, W. Susilo, C. Ge, and J. Wang
The notion of public key encryption with keyword search (PEKS) was put
forth by Boneh et al. to enable a server to search from a collection of encrypted emails
given a “trapdoor” (i.e., an encrypted keyword) provided by the receiver. The nice
property in this scheme allows the server to search for a keyword, given the trapdoor.
Hence, the verifier can merely use an untrusted server, which makes this notion very
practical. Following Boneh et al.’s work, there have been subsequent works that have
been proposed to enhance this notion. Two important notions include the so-
called keyword guessing attack and secure channel free, proposed by Byun et al. and
Baek et al., respectively. The former realizes the fact that in practice, the space of the
keywords used is very limited, while the latter considers the removal of secure
channel between the receiver and the server to make PEKS practical.
Unfortunately, the existing construction of PEKS secure against keyword guessing
attack is only secure under the random oracle model, which does not reflect its
security in the real world. Furthermore, there is no complete definition that captures
secure channel free PEKS schemes that are secure against chosen keyword attack,
chosen ciphertext attack, and against keyword guessing attacks, even though these
notions seem to be the most practical application of PEKS primitives. In this paper,
we make the following contributions.

3. PROBLEM SPECIFICATION

In this project the privacy and security of the sensitive personal information are the
major concerns of the users, which could hinder further development and widely

10
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

adoption of the systems. The searchable encryption (SE) scheme is a technology to


incorporate security protection and favorable operability functions together, which
can play an important role in the e-health record system. In this paper, we introduce a
novel cryptographic primitive named as conjunctive keyword search with designated
tester and timing enabled proxy reencryption function (Re-dtPECK), which is a kind
of a time-dependent SE scheme.
It could enable patients to delegate partial access rights to others to operate search
functions over their records in a limited time period. The length of the time period for
the delegatee to search and decrypt the delegator’s encrypted documents can be
controlled. Moreover, the delegatee could be automatically deprived of the access and
search authority after a specified period of effective time. It can also support the
conjunctive keywords search and resist the keyword guessing attacks

3.1 OPERATIONAL STRUCTURE:

FIG-1: The operational structure of the technique

3.2 METHODOLOGY

1) We design a novel searchable encryption scheme supporting secure conjunctive


keyword search and authorized delegation function. Compared with existing schemes

11
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

this work can achieve timing enabled proxy re-encryption with effective delegation
revocation.
2) Owner-enforced delegation timing preset is enabled. Distinct access time period
can be predefined for different
delegatee.
3) The proposed scheme is formally proved secure againstchosen-keyword chosen-
time attack. Furthermore, offlinekeyword guessing attacks can be resisted too. Thetest
algorithm could not function without data server’sprivate key. Eavesdroppers could
not succeed in guessing keywords by the test algorithm.
• 4) The security of the scheme works based on the standard model rather than
random oracle model. This is the first primitive that supports above functions and is
built in the standard model.

4. SOFTWARE REQUIREMENT SPECIFICATION

4.1 INTRODUCTION:

12
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

A software requirement specification (SRS) is a complete description of the behavior


of the system to be developed. It includes a set of usecases that describes all of the
interaction that users will have with the software. Usecases are also known as
functional requirements. In addition to usecases, the SRS also contains nonfunctional
requirements. These are requirements which impose constraints on the design or
implementation.

4.1.1. Purpose
The purpose of this SRS document is providing a detailed overview of our
software product, its parameter and goals. This document describes the projects target
audience and its user interface, hardware and software requirements. It defines how
client, team and audience see the product and its functionality. This project main
purpose is to provide security by using cryptography.

4.1.2. Scope
 This software is secure to use and its performance is high.
 A user can encrypt his/her files and transfer them over a network
 This software is also useful for the military applications etc. which require
the secret transfer of message.

4.1.3. Objective
The main objective of this project is to encrypt and decrypt data or
information from the users system to send it securely and remotely to any target
system. The process of encryption and decryption is done with the cession key and
public and private key given to the users used for wrapping up of key.

4.2 REQUIREMENTS SPECIFICATION:

4.2.1. Software requirements

System : Pentium IV 2.4 GHz.


13
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Hard Disk : 40 GB.


Floppy Drive : 1.44 Mb.
Monitor : 15 VGA Colour.
Mouse : Logitech.
Ram : 512 Mb.

4.2.2. Hardware requirements

Operating system : Windows XP/7.


Coding Language : JAVA/J2EE
Data Base : MYSQL

4.2.3. Functional requirements


Functional requirement describes the interaction between the system and its
environment independent of its implementation. The environment includes the user
and any other external system with which the system interacts. And also functional
requirements for a system describe the functionality of the services that the system is
expected to provide. These are dependent on the type of the software which is being
developed, the expected users of the software and the type of system which is being
developed. These are the statements of services the system should behave in particular
situations.

Functional requirements specify which outputs should be produced from the


given inputs. They describe the relationships between the inputs and outputs of the
system. For each functional requirement a detailed description of all data inputs and
their source and the range of valid inputs will be specified.

 A user can encrypt text and transfer it remotely.


 At the destination side, the text encrypted is decrypted using key

4.2.4 External Interface Requirements

14
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

External Interface Requirements describes aspects of the system that are not
directly related to the functional behavior of the system. They specify the properties
of the target software such as reliability, maintainability or the environment in which
the software is run.
Usability
It is for user to learn to operate, prepare inputs and interpret outputs of a
system for the designed system.
Reliability
It is the ability of the system or component to perform its required functions
under stated conditions for a specified period of time.
Performance
It includes response time, throughput availability and accuracy.
Supportability
It is ease of the system after deployment. It includes adaptability and
maintainability

4.2.5 Performance Requirements


The system has to exhibit high performance because this process involves the data
encryption on the bit basis. Sometimes this becomes very crucial.
The performances requirements include the following:
 Fast and accurate data retrieval.
 The performance of the project mainly depends on the encryption and
decryption methodology used.

15
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

5. ANALYSIS

5.1 EXISTING SYSTEM:


 Proxy re-encryption (PRE) enables a proxy with a re-encryption key to
convert a ciphertext encrypted by a delegator’s public key into those that can
be decrypted by delegatee’s private key.
 Proxy re-encryption with public keyword search (Re-PEKS) has introduced
the notion of keyword search into PRE. The users with a keyword trapdoor
can search the ciphertext while the hidden keywords are unknown to the
proxy.
 Later, Wang et al. has suggested an improved scheme to support the
conjunctive keyword search function. All these Re-PEKS schemes are proved
secure in random oracle model. Nevertheless, that a proof in random oracle
model may probably bring about insecure schemes.

DISADVANTAGES OF EXISTING SYSTEM:


 Existing systems have high communication or computation cost.
 On the other hand, existing schemes require an index list of the queried
keywords when a trapdoor is generated, which will leak information and
impair the query privacy.
 If an adversary finds that the trapdoors or encrypted indexes have lower
entropies, the KG attacks could be launched if the adversary endeavors to
guess the possible candidate keywords.

5.2 PROPOSED SYSTEM:


 In this paper, we endeavor to solve the problem wi
 th a novel mechanism proposed to automatically revoke the delegation right
after a period of time designated by the data owner previously.
 It implies that all users including data owner are constrained by the time
period. The beauty of the proposed system is that there is no time limitation
for the data owner because the time information is embedded in the re-
encryption phase. The data owner is capable to preset diverse effective access
time periods for different users when he appoints his delegation right.
 An effective time period set by the data owner can be expressed with a
beginning and closing time (for instance, 01/01/2014-12/01/ 2014). A time
server is used in the system, which is responsible to generate a time token for

16
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

the users. After receiving an effective time period T from the data owner, the
time server generates a time seal ST by using his own private key and the
public key of the delegatee. In that way, the time period T is encapsulated in
the time seal ST .
 By the re-encryption algorithm executed by the proxy server, the time period
T will be embedded in the re-encrypted ciphertext. It is the timing enabled
proxy re-encryption function. When the delegatee issues a query request, he
should generate a trapdoor for the queried keywords using his private key and
time seal ST . Only if the time period encapsulated in the trapdoor matches
with the effective time period embedded in the proxy re-encrypted ciphertext,
the cloud service provider will respond to the search query. Otherwise, the
search request will be rejected. In that way, the access right of the delegatee
will expire automatically. The data owner needs not to do any other operation
for the delegation revocation.

ADVANTAGES OF PROPOSED SYSTEM:


 To the best of our knowledge, this is the first work that enables automatic
delegation revoking based on timing in a searchable encryption system. A
conjunctive keyword search scheme with designated tester and timing enabled
proxy reencryption function (Re-dtPECK) is proposed, which has the
following merits.
 We design a novel searchable encryption scheme supporting secure
conjunctive keyword search and authorized delegation function. Compared
with existing schemes, this work can achieve timing enabled proxy re-
encryption with effective delegation revocation.
 Owner-enforced delegation timing preset is enabled. Distinct access time
period can be predefined for different delegatee.
 The proposed scheme is formally proved secure against chosen-keyword
chosen-time attack. Furthermore, offline keyword guessing attacks can be
resisted too. The test algorithm could not function without data server’s
private key. Eavesdroppers could not succeed in guessing keywords by the test
algorithm.
 The security of the scheme works based on the standard model rather than
random oracle model. This is the first primitive that supports above functions
and is built in the standard model.

17
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

5.3 FEASIBILITY STUDY:


5.3.1. Technical Feasibility
The technical feasibility centers on the existing computer system & to what
extent it can support the proposed systems. That is, does the organization have the
technology & skills necessary to carry out the projects & if not, how should these be
obtained. As the application has been developed using JAVA and J2EE which utilize
minimum resources of the personal computer, this project is technically feasible.

5.3.2. Operational Feasibility


There is a great deal of support and encouragement for the system from the
company. End Users are aquatinted with the operating environment and need a
briefing of its operation. In order to process, every user welcomes the idea of secure
encryption and decryption facility.

5.3.3 Economical Feasibility


Economical Feasibility is the most frequently used for evaluating the
effectiveness of a system. More commonly known as cost/ benefit analysis, the
procedure is to determine the benefits and savings that are expected from a candidate
system & compare them with costs. If benefits to design & implement the system,
otherwise, further justification or alterations in the proposed system will have to be
made if it is to have a chance of being approved. This is an ongoing effort that
improves in accuracy at each phase of system life cycle.

6. DESIGN

6.1. OBJECT ORIENTED DESIGN:

18
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Object –Oriented design is a strategy where system designers think in terms of


‘things’ instead of operations or functions. The existing system is made up of
interacting objects that maintains their own local state and provides operations on the
state information. An object oriented design process involves designing the objects
and relationships between these classes. When the design is realized as an executing
program, the required objects are created dynamically using class definitions.
An important advantage of an object-oriented approach is that it simplifies the
problem of making changes to the design. The reason for this is that object state
representation does not influence the design. Changing the internal details of objects
is unlikely to affect any other system objects. Further more, because objects are
loosely coupled, it is usually straightforward to introduce new objects with out
significant effects on the rest of the system.
UML is the international standard notation for object-oriented analysis and
design. The Object Management Group defines it. The heart of object-oriented
problem solving is the construction of a model. The model abstracts the essential
details of the underlying problem from its usually complicated real world. Several
modeling tools are wrapped under the heading of the UML™, which stands for
Unified Modeling Language™.

6.2 UML DIAGRAMS:

Modeling is an activity that has been carried out over the years in software
development. When writing applications by using the simplest languages to the most
powerful and complex languages, you still need to model. Modeling can be as
straightforward as drawing a flowchart listing the steps carried out by an application.
Why do we use modeling? Defining a model makes it easier to break up a complex
application or a huge system into simple, discrete pieces that can be indivi dually
studied. We can focus more easily on the smaller parts of a system and then
understand the "big picture." Hence, the reasons behind modeling can be summed up
in two words:
 Readability
 Reusability

19
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Readability brings clarity—ease of understanding. Understanding a system is


the first step in either building or enhancing a system. This involves knowing what a
system is made up of, how it behaves, and so forth. Modeling a system ensures that it
becomes readable and, most importantly, easy to document. Depicting a system to
make it readable involves capturing the structure of a system and the behavior of the
system.
Reusability is the byproduct of making a system readable. After a system has
been modeled to make it easy to understand, we tend to identify similarities or
redundancy, be they in terms of functionality, features, or structure.
Even though there are many techniques and tools for modeling, in this article series,
we will be concerning ourselves with modeling object-oriented systems and
applications using the Unified Modeling Language. The Unified Modeling Language,
or UML, as it is popularly known by its TLA (three-letter acronym!), is the language
that can be used to model systems and make them readable. This essentially means
that UML provides the ability to capture the characteristics of a system by using
notations. UML provides a wide array of simple, easy to understand notations for
documenting systems based on the object-oriented design principles. These notations
are called the nine diagrams of UML.UML does not have any dependencies with
respect to any technologies or languages. This implies that you can use UML to model
applications and systems based on either of the current hot technologies; for example,
J2EE. Every effort has been made to keep UML as a clear and concise modeling
language without being tied down to any technologies.
Functional Model
It describes the functionality of the system from user’s point of view and is
represented through use case diagrams in UML.
Object Model
It describes the structure of the systems in terms of objects, attributes,
associations and operations and is represented through class diagrams.

Dynamic Model
It describes the internal behavior of the system and is represented through
sequence diagrams, state chart diagrams and activity diagrams.

6.2.1. Usecase Diagram


20
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

A use case diagram in the Unified Modeling Language (UML) is a type of


behavioral diagram defined by and created from a Use-case analysis. Its purpose is to
present a graphical overview of the functionality provided by a system in terms of
actors, their goals (represented as use cases), and any dependencies between those use
cases. The main purpose of a use case diagram is to show what system functions are
performed for which actor. Roles of the actors in the system can be depicted.

Use case Notations:


A use case is described by a template composed of six fields.
Name: It is unique across the system having no ambiguity to
developers.
Participating actors: The actors interacting with the use case
Entry conditions: DescribesRegister
the conditions that need to be satisfied before the use
case is initiated.
Flow of events: Describes theLogin
sequence of actions of the use case
Exit condition: Describes the conditions that need to be satisfied after the
Activate user and
completionowner
of the use case.

EHR upload to cloud

File Details

Proxy
File Re-Encrypt Server
Owner
Set time for file
access
File view

Request Send to
admin
View request

Admin
Response to user

Decrypt file view


USER

Download file
21

Time Seal
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

22
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

6.2.2. CLASS DIAGRAM:

In software engineering, a class diagram in the Unified Modeling Language (UML) is


a type of static structure diagram that describes the structure of a system by showing
the system's classes, their attributes, operations (or methods), and the relationships
among the classes. It explains which class contains information.

ower
proxy server Time seal
+login
+register +login +login
+register +register
+fileupload()
+fike details() +file details() +file details()
+file view() +file reencryption() +set time()

user
Admin
+login
+login +register
+register
+search ehr file()
+user and owner() +r5equest to admin()
+file details() +file view()
+secret key send to user() +file download()

23
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

6.2.3. SEQUENCE DIAGRAM:

A sequence diagram in Unified Modeling Language (UML) is a kind of interaction


diagram that shows how processes operate with one another and in what order. It is a
construct of a Message Sequence Chart. Sequence diagrams are sometimes called
event diagrams, event scenarios, and timing diagrams.

24
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

6.2.4 ACTIVITY DIAGRAM


Activity diagram represent the dynamics of the system. They are used to show
the flow of control form activity to activity in this system, what activities can be dine
in parallel and any alternate paths through the flow.

Start

Owner Proxy Time Seal Admin User


Server

LOGIN LOGIN LOGIN LOGIN LOGIN

File Upload File Details File Details Activate user Search file
and Owner

File Details Set time for Send request to


File access Secret key admin
File
Re_encrypt send to User
File view

25
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

6.2.5.COLLABRATION DIAGRAM
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).

download to recrypt cloud


0wer

keys download&decrypt

user

6.2.6. Statechart Diagram:

encryption

decryption

envelope key
generation

26
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

6.2.7 Component Diagram:


The different high-level reusable parts of a system are represented in a
component diagram. A component is one such constituent part of a system. In addition
to representing the high-level parts, the component diagram also captures the inter-
relationship between these parts.

encryptio
n

frame

decryptio
n

admin rsa
frame

6.2.8 Deployment Diagram:


The deployment diagram provides a different perspective of the application.
The deployment diagram captures the configuration of the runtime elements of the
application. This diagram is by far more useful when a system is built and ready to be
deployed. But, this does not mean that you should start on your deployment diagram
after your system is built.

server

decrypt administ
encrypt rator
or or

27
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

7. IMPLEMENTATION

MODULES
 Delegator owner Module
 Delegate Module
 Conjunctive keywords
 Proxy re-encryption
 Time Seal Server

MODULES DESCRIPTION
Delegator owner Module:
The authority delegation is realized mainly by proxy re-encryption
mechanism. The proxy server makes use of the re-encryption key to transform the
ciphertext encrypted by delegator’s public key into another form, which can be
searched by the delegatee using his own private key.
Delegate Module:
The delegatee will be divested of the search authority when the effective time
expires. In order to achieve the time controlled access right revocation, the predefined
time information is embedded in the re-encrypted ciphertext with a
time seal. With the help of the time seal, the delegatee is able to generate a valid
delegation trapdoor by TrapdoorR algorithm. If the time information hidden in the re-
encrypted ciphertext is inconsistent with that in the delegation trapdoor, the equation
in TestR algorithm will not hold.
Conjunctive keywords search:
Compared with the single keyword search, the conjunctive keyword search
function provides the users more convenience to return the accurate results that fulfills
users’ multiple requirements. The users do not have to query an individual keyword
and rely on an intersection calculation to obtain what they needs. To the best of our
knowledge, there is no existing proxy re-encryption searchable encryption scheme
could provide the conjunctive keywords search capability without requiring a random
oracle. Our scheme has solved this open problem. The scheme could provide both the
conjunctive keywords search and the delegation function. Unfortunately, it is proved
in the random oracle (R.O.) model, which greatly impairs the security level.
Proxy re-encryption:

28
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

The proxy re-encryption technology is practical in EHR systems. It will


greatly facilitate patient delegating the search and access rights. Schemes in could not
provide the proxy re-encryption searchable encryption function to the users.
Time controlled revocation:
An important design goal is to enable time controlled access right revocation.
The delegation appointment will terminate when the preset effective time period
disagrees with the current time. It should prevent the authorized user from accessing
the records overtime.

8.TESTING

29
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

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

TYPES OF TESTS

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

Integration testing
Integration tests are designed to test integrated software components to
determine if they actually run as one program. Testing is event driven and is more
concerned with the basic outcome of screens or fields. Integration tests demonstrate
that although the components were individually satisfaction, as shown by successfully
unit testing, the combination of components is correct and consistent. Integration
testing is specifically aimed at exposing the problems that arise from the combination
of components.

Functional test:

30
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

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.

Organization and preparation of functional tests is focused on requirements, key


functions, or special test cases. In addition, systematic coverage pertaining to identify
Business process flows; data fields, predefined processes, and successive processes
must be considered for testing. Before functional testing is complete, additional tests
are identified and the effective value of current tests is determined.

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.

White Box Testing


White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at least its
purpose. It is purpose. It is used to test areas that cannot be reached from a black box
level.

Black Box Testing

31
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as most
other kinds of tests, must be written from a definitive source document, such as
specification or requirements document, such as specification or requirements
document. It is a testing in which the software under test is treated, as a black box
.you cannot “see” into it. The test provides inputs and responds to outputs without
considering how the software works.
6.1 Unit Testing:
Unit testing is usually conducted as part of a combined code and unit test phase of the
software lifecycle, although it is not uncommon for coding and unit testing to be
conducted as two distinct phases.
Test objectives
 All field entries must work properly.
 Pages must be activated from the identified link.
 The entry screen, messages and responses must not be delayed.

Features to be tested
 Verify that the entries are of the correct format
 No duplicate entries should be allowed
 All links should take the user to the correct page.
6.2 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.
6.3 Acceptance Testing
User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.

32
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

7.RESULTS AND DISCUSSIONS


1.1 OUTPUT SCREENS :
ADMIN PANEL

33
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

34
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

35
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

36
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

37
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

38
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

39
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Logout Owner

40
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Logout Proxy server

41
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

42
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

Logout time seal

43
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

44
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

45
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

46
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

47
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

48
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

49
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

50
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

51
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

52
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

53
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

54
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

9.2.RESULTS

The desired technique has been implemented successfully using JAVA


programming language

the operation time of each algorithm of our scheme with the different values of l,

which is the number of keywords.

our scheme takes 9ms more than other schemes due to that one more group element is

55
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

randomly selected for generating the public key of the data server. Tiny difference can
be virtually ignored because key generation algorithm is executed only once by the
TTP.

The execution times of the ReKeyGen and TimeSeal algorithms are about 0.01ms and
19ms. The execution timeof Trapdoor, TrapdoorR, Test, TestR, dPECK and Re-
dtPECK algorithm grows with the number l of keywords that is extracted from
patient’s EHR document.The experimental results indicate that the proposed scheme
can achieve a high efficiency, which is desirable for the realworld EHR cloud
application

56
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

It is easy to find that our scheme almost always has a smaller


execution time. In scheme takes 9ms more than other
schemes due to that one more group element is randomly
selected for generating the public key of the data server

The execution time of Trapdoor, TrapdoorR, Test, TestR, dPECK and Re-dtPECK
algorithm grows with the number l of keywords that is extracted from patient’s EHR

57
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

document. The experimental results indicate that the proposed scheme can achieve a
high efficiency, which is desirable for the realworld EHR cloud applications.

10. CONCLUSION & FUTURE ENHANCEMENT

In this paper, we have proposed a novel Re-dtPECK scheme to realize the timing
enabled privacy-preserving keyword search mechanism for the EHR cloud storage,
which could support the automatic delegation revocation. The experimental results
and security analysis indicate that our scheme holds much higher security than the
existing solutions with a reasonable overhead for cloud applications. To the best of
our knowledge, until now this is the first searchable encryption scheme with the
timing enabled proxy re-encryption function and the designated tester for the privacy–
preserving HER cloud record storage. The solution could ensure the confidentiality of
the EHR and the resistance to the KG attacks. It has also been formally proved secure
based on the standard model under the hardness assumption of the truncated
decisional l-ABDHE problem and the DBDH problem. Compared with other classical
searchable encryption schemes, the efficiency analysis shows that our proposed
scheme can achieve high computation and storage efficiency besides its higher
security.

58
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

11. REFERENCES

[1] J. C. Leventhal, J. A. Cummins, P. H. Schwartz, D. K. Martin, and W. M. Tierney,


“Designing a system for patients controlling providers’ access to their electronic
health records: Organizational and technical challenges,” J. General Internal Med.,
vol. 30, no. 1, pp. 17–24, 2015.

[2]Microsoft. Microsoft HealthVault. [Online]. Available: http://www.healthvault.com,


accessed May 1, 2015.

[3] Google Inc. Google Health. [Online]. Available: https://www.google.com/health,


accessed Jan. 1, 2013.

[4] D. Boneh, G. Di Crescenzo, R. Ostrovsky, and G. Persiano, “Public key


encryption with keyword search,” in Proc. EUROCRYPT, vol. 3027. Interlaken,
Switzerland, May 2004, pp. 506–522.

59
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

[5] Q. Tang, “Public key encryption schemes supporting equality test with
authorisation of different granularity,” Int. J. Appl. Cryptogr., vol. 2, no. 4, pp. 304–
321, 2012.

[6] P. Liu, J. Wang, H. Ma, and H. Nie, “Efficient verifiable public key encryption
with keyword search based on KP-ABE,” in Proc. IEEE 9th Int. Conf. Broadband
Wireless Comput., Commun. Appl. (BWCCA), Nov. 2014, pp. 584–589.

[7] L. Fang, W. Susilo, C. Ge, and J. Wang, “Public key encryption with keyword
search secure against keyword guessing attacks without random oracle,” Inf. Sci., vol.
238, pp. 221–241, Jul. 2013.

[8] M.-S. Hwang, S.-T. Hsu, and C.-C. Lee, “A new public key encryption with
conjunctive field keyword search scheme,” Inf. Technol. Control, vol. 43, no. 3, pp.
277–288, 2014.

[9] D. Boneh and B. Waters, “Conjunctive, subset, and range queries on encrypted
data,” in Proc. 4th Theory Cryptogr. Conf., vol. 4392. Amsterdam, The Netherlands,
Feb. 2007, pp. 535–554.

[10] B. Zhang and F. Zhang, “An efficient public key encryption with conjunctive-
subset keywords search,” J. Netw. Comput. Appl., vol. 34, no. 1, pp. 262–267, 2011.

[11] J. W. Byun and D. H. Lee, “On a security model of conjunctive keyword search
over encrypted relational database,” J. Syst. Softw., vol. 84, no. 8, pp. 1364–1372,
2011.

[12] M. Ding, F. Gao, Z. Jin, and H. Zhang, “An efficient public key encryption with
conjunctive keyword search scheme based on pairings,” in Proc. 3rd IEEE Int. Conf.
Netw. Infrastruct. Digit. Content (IC-NIDC), Beijing, China, Sep. 2012, pp. 526–530.

[13] J. Shao, Z. Cao, X. Liang, and H. Lin, “Proxy re-encryption with keyword
search,” Inf. Sci., vol. 180, no. 13, pp. 2576–2587, 2010.

60
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

[14] W.-C. Yau, R. C.-W. Phan, S.-H. Heng, and B.-M. Goi, “Proxy re-encryption
with keyword search: New definitions and algorithms,” in Proc. Int. Conf. Security
Technol., vol. 122. Jeju Island, Korea, Dec. 2010, pp. 149–160.

[15] L. Fang, W. Susilo, C. Ge, and J. Wang, “Chosen-ciphertext secure anonymous


conditional proxy re-encryption with keyword search,” Theoretical Comput. Sci., vol.
462, pp. 39–58, Nov. 2012.

[16] X. A. Wang, X. Huang, X. Yang, L. Liu, and X. Wu, “Further observation on


proxy re-encryption with keyword search,” J. Syst. Softw., vol. 85, no. 3, pp. 643–654,
2012.

[17] R. Canetti, O. Goldreich, and S. Halevi, “The random oracle methodology,


revisited,” J. ACM, vol. 51, no. 4, pp. 557–594, 2004.

[18] M. Bellare, A. Boldyreva, and A. Palacio, “An uninstantiable randomoracle-


model scheme for a hybrid-encryption problem,” in Proc. Int. Conf. Theory Appl.
Cryptogr. Techn. (EUROCRYPT), vol. 3027. Interlaken, Switzerland, May 2004, pp.
171–188.

[19] J. W. Byun, H. S. Rhee, H.-A. Park, and D. H. Lee, “Offline keyword guessing
attacks on recent keyword search schemes over encrypted data,” in Proc. 3rd VLDB
Workshop Secure Data Manage. (SDM), vol. 4165. Seoul, Korea, Sep. 2006, pp. 75–
83.

[20] W.-C. Yau, R. C.-W. Phan, S.-H. Heng, and B.-M. Goi, “Keyword guessing
attacks on secure searchable public key encryption schemes with a designated tester,”
Int. J. Comput. Math., vol. 90, no. 12, pp. 2581–2587, 2013.

[21] J. Baek, R. Safavi-Naini, and W. Susilo, “Public key encryption with keyword
search revisited,” in Proc. Int. Conf. ICCSA, vol. 5072. Perugia, Italy, Jun./Jul. 2008,
pp. 1249–1259.

61
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

[22] L. Guo and W. C. Yau, “Efficient secure-channel free public key encryption with
keyword search for EMRs in cloud storage,” J. Med. Syst., vol. 39, no. 2, pp. 1–11,
2015.

[23] H. S. Rhee, J. H. Park, W. Susilo, and D. H. Lee, “Trapdoor security in a


searchable public-key encryption scheme with a designated tester,” J. Syst. Softw., vol.
83, no. 5, pp. 763–771, 2010.

[24] C. Hu and P. Liu, “A secure searchable public key encryption scheme with a
designated tester against keyword guessing attacks and its extension,” in Proc. Int.
Conf. Adv. Comput. Sci., Environ., Ecoinform., Edu. (CSEE), vol. 512. Wuhan, China,
Aug. 2011, pp. 131–136.

12. CODE

Encryption
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package algorithm;

/**
*
* @author java4
*/
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileWriter;

62
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

import java.util.Scanner;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import javax.swing.JOptionPane;
import sun.misc.BASE64Encoder;

public class Encryption


{

public String encrypt(String text,SecretKey secretkey)


{
String plainData=null,cipherText=null;
try
{
plainData=text;

Cipher aesCipher = Cipher.getInstance("AES");//getting AES instance


aesCipher.init(Cipher.ENCRYPT_MODE,secretkey);//initiating ciper
encryption using secretkey

byte[] byteDataToEncrypt = plainData.getBytes();


byte[] byteCipherText = aesCipher.doFinal(byteDataToEncrypt);//encrypting
data

// System.out.println("ciper text:"+byteCipherText);

cipherText = new BASE64Encoder().encode(byteCipherText);//converting


encrypted data to string
63
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

System.out.println("\n Given text : "+plainData+" \n Cipher Data :


"+cipherText);

}
catch(Exception e)
{
System.out.println(e);
}
return cipherText;
}

Decryption:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package algorithm;

/**
*
* @author java4
*/
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.util.Scanner;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
64
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

import javax.crypto.spec.SecretKeySpec;
import javax.swing.JOptionPane;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Decryption


{

public String decrypt(String txt,String skey)


{
String decryptedtext = null;
try
{

//converting string to secretkey


byte[] bs=Base64.decode(skey);
SecretKey sec=new SecretKeySpec(bs, "AES");
System.out.println("converted string to seretkey:"+sec);

System.out.println("secret key:"+sec);

Cipher aesCipher = Cipher.getInstance("AES");//getting AES instance


aesCipher.init(Cipher.ENCRYPT_MODE,sec);//initiating ciper encryption
using secretkey

byte[] byteCipherText =new BASE64Decoder().decodeBuffer(txt); //encrypting


data

// System.out.println("ciper text:"+byteCipherText);

aesCipher.init(Cipher.DECRYPT_MODE,sec,aesCipher.getParameters());//initiating
ciper decryption
65
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

byte[] byteDecryptedText = aesCipher.doFinal(byteCipherText);


decryptedtext = new String(byteDecryptedText);

System.out.println("Decrypted Text:"+decryptedtext);
}

catch(Exception e)
{
System.out.println(e);
}
return decryptedtext;
}

}
Ftpcon:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package algorithm;

/**
*
* @author java4
*/
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.net.ftp.FTPClient;
public class Ftpcon {
FTPClient client = new FTPClient();
FileInputStream fis = null;
boolean status;
66
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

public boolean upload(File file){


try{
// client.enterLocalPassiveMode();
client.connect("ftp.drivehq.com");

client.login("drive05", "drive15");
client.enterLocalPassiveMode();
//String filename = "/home/ibn/Desktop/report.txt";
fis = new FileInputStream(file);

status= client.storeFile(" /kk/"+file.getName(), fis);

client.logout();
fis.close();

}
catch(Exception e){
System.out.println(e);
}
if(status){
System.out.println("success");
return true;
}
else{
System.out.println("failed");
return false;

}
67
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

MailUti:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package algorithm;

/**
*
* @author Java4
*/
import java.io.UnsupportedEncodingException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class MailUtil {

private String SMTP_HOST = "smtp.gmail.com";


private String FROM_ADDRESS = "cloudcomputing96@gmail.com";
private String PASSWORD = "clouddata123456";
private String FROM_NAME = "cloud";

public boolean sendMail(String[] recipients, String[] bccRecipients, String subject,


String message) {
68
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

try {
Properties props = new Properties();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", SMTP_HOST);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.debug", "false");
props.put("mail.smtp.ssl.enable", "true");

Session session = Session.getInstance(props, new SocialAuth());


Message msg = new MimeMessage(session);

InternetAddress from = new InternetAddress(FROM_ADDRESS,


FROM_NAME);
msg.setFrom(from);

InternetAddress[] toAddresses = new InternetAddress[recipients.length];


for (int i = 0; i < recipients.length; i++) {
toAddresses[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, toAddresses);

InternetAddress[] bccAddresses = new InternetAddress[bccRecipients.length];


for (int j = 0; j < bccRecipients.length; j++) {
bccAddresses[j] = new InternetAddress(bccRecipients[j]);
}
msg.setRecipients(Message.RecipientType.BCC, bccAddresses);

msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
return true;
69
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

} catch (UnsupportedEncodingException ex) {


Logger.getLogger(MailUtil.class.getName()).log(Level.SEVERE, null, ex);
return false;

} catch (MessagingException ex) {


Logger.getLogger(MailUtil.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
}

class SocialAuth extends Authenticator {

@Override
protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(FROM_ADDRESS, PASSWORD);

}
}
}
Re-Encryption:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package algorithm;

/**
*
* @author java4
*/
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import java.io.ByteArrayOutputStream;
70
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

import java.io.FileInputStream;
import java.io.FileWriter;
import java.util.Scanner;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import javax.swing.JOptionPane;
import sun.misc.BASE64Encoder;

public class Re_Encryption


{
//public static void main(String args[])
//{
// Scanner s=new Scanner(System.in);
// System.out.println("Enter text for encrypt");
// String t=s.next();
// new encryption().encrypt(t);
//}
public String encrypt(String text,SecretKey secretkey)
{
String plainData=null,cipherText=null;
try
{
plainData=text;

//secretkey generating
// KeyGenerator keyGen = KeyGenerator.getInstance("AES");
// keyGen.init(128);
// SecretKey secretKey = keyGen.generateKey();
// System.out.println("secret key:"+secretKey);
71
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

//
// //converting secretkey to String
// byte[] b=secretKey.getEncoded();//encoding secretkey
// String skey=Base64.encode(b);
// System.out.println("converted secretkey to string:"+skey);

// //converting string to secretkey


// byte[] bs=Base64.decode(skey);
// SecretKey sec=new SecretKeySpec(bs, "AES");
// System.out.println("converted string to seretkey:"+sec);

Cipher aesCipher = Cipher.getInstance("AES");//getting AES instance


aesCipher.init(Cipher.ENCRYPT_MODE,secretkey);//initiating ciper
encryption using secretkey

byte[] byteDataToEncrypt = plainData.getBytes();


byte[] byteCipherText = aesCipher.doFinal(byteDataToEncrypt);//encrypting
data

// System.out.println("ciper text:"+byteCipherText);

cipherText = new BASE64Encoder().encode(byteCipherText);//converting


encrypted data to string

System.out.println("\n Given text : "+plainData+" \n Cipher Data :


"+cipherText);

}
catch(Exception e)
{
System.out.println(e);
}
return cipherText;
72
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION

}
}

13. PAPER PUBLISHED

73

You might also like