Final Document
Final Document
1. INTRODUCTION
Computer security:
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:
2. Anti-virus software:
1.Software updates:
2
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
Cloud computing:
3
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
4
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
Services Models:
5
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
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
7
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
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.
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
3.2 METHODOLOGY
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.1 INTRODUCTION:
12
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
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.
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
15
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
5. ANALYSIS
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.
17
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
6. DESIGN
18
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
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
Dynamic Model
It describes the internal behavior of the system and is represented through
sequence diagrams, state chart diagrams and activity diagrams.
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
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
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
24
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
Start
File Upload File Details File Details Activate user Search file
and Owner
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).
keys download&decrypt
user
encryption
decryption
envelope key
generation
26
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
encryptio
n
frame
decryptio
n
admin rsa
frame
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
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
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.
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
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
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
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 operation time of each algorithm of our scheme with the different values of l,
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
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.
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
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.
[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.
[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;
// System.out.println("ciper text:"+byteCipherText);
}
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;
System.out.println("secret key:"+sec);
// 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
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
client.login("drive05", "drive15");
client.enterLocalPassiveMode();
//String filename = "/home/ibn/Desktop/report.txt";
fis = new FileInputStream(file);
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;
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");
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
@Override
protected PasswordAuthentication getPasswordAuthentication() {
}
}
}
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;
//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);
// System.out.println("ciper text:"+byteCipherText);
}
catch(Exception e)
{
System.out.println(e);
}
return cipherText;
72
CONJUCTIVE KEYWORD SEARCH WITH DESIGNATED TESTER AND TIMING
ENABLED PROXY RE ENCRYPTION
}
}
73