Encryption Project
Encryption Project
Encryption Project
BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE & ENGINEERING
(CYBER SECURITY)
SUBMITTED BY
DEPARTMENT OF
We hereby, express our regards and extend our gratitude to our PRINCIPAL,
Dr.CH. RAVI KUMAR , for giving this opportunity to do the thesis as a part of
our course.
We are very grateful and our sincere thanks to our secretary & correspondent
Dr.K.RAMAIAH Sir of PRAKASAM ENGINEERING COLLEGE for giving
this opportunity.
i
ABSTRACT
ii
CHAPTER 1
INTRODUCTION
A trivial solution would be that the doctor first decrypts all the encrypted
records and then sends out the data in plaintext (not encrypted) format to each
expert. This, however, may be impractical for the doctor since a considerable
computation and communication costs may be caused due to the massive
health data uploaded everyday. More importantly, there is a risk of privacy
disclosure by sending data in plaintext format.
There exists a cryptographic tool called proxy re-encryption (PRE) that would
be of help here. PRE can transform the doctor’s ciphertext into a ciphertext that
can be decrypted by one expert. Then, for n experts, PRE needs to run n times
repeatedly for transferring the patient’s health data to all experts, which is
inefficient. We observe that IBBE achieves a useful encryption mechanism that
allows multiple users to simultaneously decrypt a ciphertext. Thus, we ask:
“Can we find an efficient way to transform the encrypted data in IBE ciphertext
format into an IBBE ciphertext so that multiple users can decrypt at the same
time?”
3
CHAPTER 2
LITERATURE SURVERY
1. Offering strong data protection to cloud users while enabling rich applications
is a challenging task. Researchers explore a new cloud platform architecture
called Data Protection as a Service, which dramatically reduces the per-
application development effort required to offer data protection, while still
allowing rapid development and maintenance.
2. Key-exposure resistance has always been an important issue for in-depth cyber
defense in many security applications. Recently, how to deal with the key
exposure problem in the settings of cloud storage auditing has been proposed
and studied. To address the challenge, existing solutions all require the client to
update his secret keys at every time period, which may inevitably bring in new
local burdens to the client, especially those with limited computation resources,
such as mobile phones. In this paper, we focus on how to make the key updates
as transparent as possible for the client and propose a new paradigm called
cloud storage auditing with verifiable outsourcing of key updates. In this
paradigm, key updates can be safely outsourced to some authorized party, and
thus the key-update burden on the client will be kept minimal. In particular, we
lever age the third-party auditor (TPA) in many existing public auditing
designs, let it play the role of the authorized party in our case, and make it in
charge of both the storage auditing and the secure key updates for key-exposure
resistance. In our design, TPA only needs to hold an encrypted version of the
client's secret key while doing all these burdensome tasks on behalf of the
client. The client only needs to download the encrypted secret key from the
TPA when uploading new files to the cloud. Besides, our design also equips the
4
client with capability to further verify the validity of the encrypted secret keys
provided by the TPA. All these salient features are carefully designed to make
the whole auditing procedure with key exposure resistance as transparent as
possible for the client. We formalize the definition and the security model of
this paradigm. The security proof and the performance simulation show that our
detailed design instantiations are secure and efficient.
3. Secure search techniques over encrypted cloud data allow an authorized user to
query data files of interest by submitting encrypted query keywords to the cloud
server in a privacy-preserving manner. However, in practice, the returned query
results may be incorrect or incomplete in the dishonest cloud environment. For
example, the cloud server may intentionally omit some qualified results to save
computational resources and communication overhead. Thus, a well-
functioning secure query system should provide a query results verification
mechanism that allows the data user to verify results. In this paper, we design a
secure, easily integrated, and fine-grained query results verification mechanism,
by which, given an encrypted query results set, the query user not only can
verify the correctness of each data file in the set but also can further check how
many or which qualified data files are not returned if the set is incomplete
before decryption. The verification scheme is loose-coupling to concrete secure
search techniques and can be very easily integrated into any secure query
scheme. We achieve the goal by constructing secure verification object for
encrypted cloud data. Furthermore, a short signature technique with extremely
small storage cost is proposed to guarantee the authenticity of verification
object and a verification object request technique is presented to allow the
query user to securely obtain the desired verification object. Performance
evaluation shows that the proposed.
5
4. For ranked search in encrypted cloud data, order preserving encryption (OPE)
is an efficient tool to encrypt relevance scores of the inverted index. When using
deterministic OPE, the ciphertexts will reveal the distribution of relevance
scores. Therefore, Wang et al. proposed a probabilistic OPE, called one-to-many
OPE, for applications of searchable encryption, which can flatten the
distribution of the plaintexts. In this paper, we proposed a differential attack on
one-to-many OPE by exploiting the differences of the ordered ciphertexts. The
experimental results show that the cloud server can get a good estimate of the
distribution of relevance scores by a differential attack. Furthermore, when
having some background information on the outsourced documents, the cloud
server can accurately infer the encrypted keywords using the estimated
distributions.
5. Outsourcing medical data and their search services to a third party cloud have
been a popular trend for many medical practices, because using healthcare cloud
services can help cut down the cost of Electronic Health Records (EHR) systems
in terms of front-end ownership cost and IT maintenance burdens. Healthcare
cloud applications need searchable encryption with the following two
capabilities for protecting data privacy and access privacy: (1) the healthcare
providers need to share the encrypted data with authorized users and enable
querying over encrypted data, and (2) they also need to keep the query keywords
and associated search operations private such that healthcare data hosting
service providers cannot gain access to unauthorized content or trace and infer
sensitive data stored in the healthcare cloud. This survey paper describes the
notion of searchable encryption (SE) in the context of healthcare applications
6
and characterize the SE use cases into four scenarios in healthcare. Then we
provide a comprehensive overview of the four representative SE techniques:
searchable symmetric encryption (SSE), public key encryption with
keyword search (PEKS), attribute-based encryption with keyword search
(ABKS), and proxy re-encryption with keyword search (PRES) according to
different EHR retrieving scenarios and requirements. We categorize and
compare the different SE schemes in terms of their security, efficiency, and
functionality. The survey is designed to benefit both experienced
researchers in the computer science (CS)field and non-specialists who are
domain scientists or healthcare professionals with limited CS and
information security background. Thus, we are in favor of technological
overview of the state of art searchable encryption models and the underlying
key techniques, instead of detailed proofs and constructions of the
respective SE algorithms. We describe how the existingSE schemes relate
to and differ from one another, and point out the connections b.
7
CHAPTER 3
SYSTEM ANALYSIS
Wei et al. [7] exploited IBE to secure data sharing in mobile computing
environments. He et al. [8] employed IBE to construct a handshake scheme in
healthcare social network to secure data exchanged in patients. Identity-based
broadcast encryption (IBBE) [9] extends IBE to support multi-receiver
encryption in the sense that a user encrypts a message once for multiple
intended receivers. In light of such useful feature, Deng et al. [10] utilized
IBBE in cloud storage systems to allow multiple authorized visitors to access
the same outsourced file. To revoke some recipients from the initial receiver
set of the IBBE ciphertext, a number of revocable IBBE schemes are
proposed [11], [12],[13], [14].
8
[17] presented the first unidirectional PRE scheme. Cao et al.
[18] proposed the autonomous path PRE scheme to enable a user to designate
a path of preferred authorized visitors to his outsourced data. Guo et al. [19]
introduced accountability into unidirectional PRE to identify the proxy which
abuses its re-encryption keys.
Liang et al. [22] overcome this security issue by proposing the cloud-based
revocable IBPRE scheme. This scheme requires the interaction between data
owners and a key generator authority for each transformation, which may
result an efficiency problem. Xu et al. [23] proposed an IBBE-based PRE
scheme byintroducing IBBE into PRE.
Apart from IBPRE, there are other extensions of PRE, such as attribute-based
PRE [24], [25], time-based PRE [26], function-based PRE [27], etc. However,
these PRE schemes mainly provides ciphertext transformation in the same
encryption system, that is, ciphertexts cannot be converted into another
format.
Disadvantages :
In the existing work, the system does not provide Data integrity proof.
This system is less performance due to lack of strong encryption techniques.
9
Proposed System:
10
the one who authorizes to transform encrypted data; 3) the transformation
would not revealany useful information about the sensitive data.
Advantages
➢ Data security protection: If data have been encrypted before out sourced,
then only the clients holding correct decryption keys can access (these client are
also called authorized clients). The encrypted data are unreadable to CSP or
unauthorized clients (those having no correct decryption keys).
➢ Controllable transformation: Only the files specified by the data owner
in the authorization token can be transformed by CSP. CSP and other clients
cannot cooperatively deduce a valid authorization token in order to transform
unspecified files, nor detect sensitive information about the data encrypted in
unspecified files.
11
REQUEST CLARIFICATION
After the approval of the request to the organization and project guide, with an
investigation being considered, the project request must be examined to determine
precisely what the system requires.
Here our project is basically meant for users within the company whose systems
can be interconnected by the Local Area Network(LAN). In today’s busy schedule
man need everything should be provided in a readymade manner. So taking into
consideration of the vastly use of the net in day-to-day life, the corresponding
development of the portal came into existence.
Key Sizes: AES supports key sizes of 128, 192, and 256 bits. The larger the key
size, the more secure the encryption.
Block Cipher: AES operates on data blocks of 128 bits. It encrypts and decrypts
data in blocks, making it efficient for large volumes of data.
Fig:3.2
13
3.2 FEASIBILITY ANALYSIS
An important outcome of preliminary investigation is the determination that the
system request is feasible. This is possible only if it is feasible within limited
resource and time. The different feasibilities that have to be analysed are,
• Operational Feasibility
• Economic Feasibility
• Technical Feasibility
14
The system is developed for platform independent environment. Java Server
Pages, JavaScript, HTML, SQL server and WebLogic Server are used to develop
the system. The technical feasibility has been carried out. The system is
technically feasible for development and can be developed with the existing
facility.
15
CHAPTER-4
SYSTEMREQUIREMENTS
SYSTEM REQUIREMENTS
Processor - Pentium–IV
RAM - 4 GB(min)
Hard Disk - 20 GB
16
CHAPTER-5
SYSTEM DESIGN
5.1 Architecture Diagram Login
View Data Owners and
Authorize
,View Receivers and Authorize
,View Patient Details
,View Transactions Details
,View Search Details
,View Secret Key Response Details
,View Attacker Details
,View Keyword Used Results
,View Attacker Count Results
Fig 5.1
17
5.2 USE CASE DIGRAM:
Fig5.2
18
5.3 CLASS DIAGRAM
Fig:5.3
19
5.4 Data Flow Diagram
20
21
5.5 Flow Chart :
Fig:5.5.1
22
5.5.2 Data consumer:-
Fig:5.5.2
23
5.5.3 Data Owner:-
: Fig:5.5.3
24
5.5.4 Registry Authority:-
Fig:5.5.4
25
5.6 SEQUENCE DIAGRAM
Fig:5.6
26
5.7 Software Environment
▪ Simple
▪ Architecture neutral
▪ Object oriented
▪ Portable
▪ Distributed
▪ High performance
▪ Interpreted
▪ Multithreaded
▪ Robust
▪ Dynamic
▪ Secure
Fig:5.7.1
27
Run applets, is an implementation of the Java VM. Java byte codes help make
“write once, run anywhere” possible. You can compile your program into byte
codes on any platform that has a Java compiler. The byte codes can then be run on
any implementation of the Java VM. That means that as long as a computer has a
Java VM, the same program written in the Java programming language can run
on Windows 2000, a Solaris workstation, or on an iMac.
Fig:5.7.2
The Java Platform :
A platform is the hardware or software environment in which a program runs.
We’ve already mentioned some of the most popular platforms like Windows
2000, Linux, Solaris, and MacOS. Most platforms can be described as a
combination of the operating system and hardware. The Java platform differs
from most other platforms in that it’s a software-only platform that runs on top of
other hardware-based platforms.
Fig:5.7.3
Native code is code that after you compile it, the compiled code runs on a
specific hardware platform. As a platform-independent environment, the Java
28
platform can be a bit slower than native code. However, smart compilers, well-
tuned interpreters, and just-in-time byte code compilers can bring performance
close to that of native code without threatening portability.
Fig:5.7.4
Compilers My Program
Java byte codes help make “write once, run anywhere” possible. You can compile
your Java program into byte codes on my platform that has a Java compiler. The
byte codes can then be run any implementation of the Java VM. For example, the
same Java program can run Windows NT, Solaris, and Macintosh.
29
Fig:5.7.5 Application Layer
Java
PC Compiler Java Interpreter
SourceCode
(PC)
……….. Byte code
MacintoshCompiler Java
………..
Interpreter
SPARC (Macintosh)
(Platform
Independent)
Java
Interpreter
(Sparc)
Fig-5.8
30
Compiling and interpreting Java Source Code
During run-time the Java interpreter tricks the byte code file into thinking that it
is running on a Java Virtual Machine. In reality this could be a Intel Pentium
Windows 95 or Sun SARC station running Solaris or Apple Macintosh running
system and all could receive code from any computer through Internet and run
the Applets.
Simple
Java was designed to be easy for the Professional programmer to learn and to use
effectively. If you are an experienced C++ programmer, learning Java will be
even easier. Because Java inherits the C/C++ syntax and many of the object
oriented features of C++. Most of the confusing concepts from C++ are either left
out of Java or implemented in a cleaner, more approachable manner. In Java there
are a small number of clearly defined ways to accomplish a given task.
Object-Oriented
Java was not designed to be source-code compatible with any other language.
This allowed the Java team the freedom to design with a blank slate. One outcome
of this was a clean usable, pragmatic approach to objects. The object model in
Java is simple and easy to extend, while simple types, such as integers, are kept as
high-performance non-objects.
Robust
The multi-platform environment of the Web places extraordinary demands on a
program, because the program must execute reliably in a variety of systems. The
ability to create robust programs was given a high priority in the design of Java.
Java is strictly typed language; it checks your code at compile time and run time.
Java virtually eliminates the problems of memory management and deallocation,
which is completely automatic. In a well-written Java program, all run time errors
can and should be managed by your program.
31
Two-tier and Three-tier Models
The JDBC API supports both two-tier and three-tier models for database access.
In the two- tier model, a Java applet or application talks directly to the database.
This requires a JDBC driver that can communicate with the particular database
management system being accessed. A user's SQL statements are delivered to the
database, and the results of those statements are sent back to the user. The
database may be located on another machine to which the user is connected via a
network. This is referred to as a client/server configuration, with the user's
machine as the client, and the machine housing the database as the server. The
network can be an Intranet, which, for example, connects employees within a
corporation, or it can be the Internet.
JAVA
Client machine Application
Fig-5.9
In the three-tier model, commands are sent to a "middle tier" of services, which then
send SQL statements to the database. The database processes the SQL statements
and sends the results.
Java applet or
Html browser
Application
HTTP, RMI, or CORBA calls Server (Java)
JDBC
Server machine (business
Fig.5.10
32
back to the middle tier, which then sends them to the user. MIS directors find the
three-tier model very attractive because the middle tier makes it possible to
maintain control over access and the kinds of updates that can be made to
corporate data. Another advantage is that when there is a middle tier, the user can
employ an easy-to-use higher-level API which is translated by the middle tier into
the appropriate low-level calls. Finally, in many cases the three-tier architecture
can provide performance advantages.
Until now the middle tier has typically been written in languages such as C or
C++, which offer fast performance. However, with the introduction of
optimizing compilers that translate Java byte code into efficient machine-
specific code, it is becoming practical to implement the middle tier in Java. This
is a big plus, making it possible to take advantage of Java's robustness,
multithreading, and security features. JDBC is important to allow database
access from a Java middle tier.
33
Modules
⚫ Data Owner
In this module, the provider requests for symmetric encryption key permission
from OWNER and upload the patient details in ABE with the key and also Upload
Patient Details, View Uploaded Patient Details.
• Data Consumer
In this module, consume register and logs in and do following operations such as Search
Patients On Cloud, Request Secret Key, Secret Key Response.
• CLOUD SERVER
The Cloud Server authorizes both user and owner, view all the uploaded patient details
and give the access control permissions to the corresponding requested user. View the
response from the OWNER about the key requested. After will do following operations
such as ViewData Owners and Authorize, View Receivers and Authorize ,View
34
Patient Details, View Transactions Details, View Search Details, View Secret Key
Response Details, View Attacker Details, View Keyword Used Results, View Attacker
Count Results.
• Registry Authority
In this module, the Registry Authority will generate the key requested by User. And also
View Secret Key Request, View All Attackers.
35
CHAPTER 6
IMPLEMENTATION
6.2 CODING:
6.2.1 FRONTEND :
<div class="slider">
<div id="coin-slider">
<div align="justify"><a href="#"><img src="images/slide1.jpg" width="960" height="360" alt=""
/></a><a href="#"><img src="images/slide2.jpg"
37
BACKEND :
38
<p><a href="#"><img src="images/slide1.jpg" width="960" height="360" alt="" /></a><a
href="#"><img src="images/slide2.jpg" width="960"height="360" alt="" /></a></p>
</div>
</div>
<divclass="clr"></div>
</div>
<divclass="clr"></div>
</div>
</div>
<div class="content">
<div class="content_resize">
<div class="mainbar">
<div class="article">
<h2><span>Cloud Login : </span></h2>
<p class="infopost"><img src="images/Login.png" width="154"height="154" /></p>
<form action="c_CloudAuthentication.jsp" method="post"id="leavereply">
<label for="name"><span class="style4"><br />Cloud Server Name(required)<br />
</span></label>
<span class="style4">
<input name="userid" type="text" class="box" id="name" value="" />
<label for="email"><br />
<br />
Password (required)</label>
</span>
<strong>
<label for="email"></label>
</strong>
<label for="email"><br />
</label>
<p>
<input type="password" id="pass" name="pass" class="box" />
</p>
<p>
<input name="imageField" type="submit" class="LOGIN"id="imageField" value="Login" />
<input type="reset" name="imageField" id="imageField"class="RESET" />
</p>
<p> </p>
<p> </p>
</form>
<div class="clr"></div>
<div class="clr"></div>
</div>
</div>
<div class="sidebar">
<div class="gadget">
<h2 class="star">Menu</h2>
<divclass="clr"></div>
<ul class="sb_menu">
<li><strong><a href="index.html">Home</a></strong></li>
<li><strong><a href="u_DataConsumersLogin.jsp">Data
Consumers</a></strong></li>
39
<li><strong><a href="o_DataOwnerLogin.jsp">Data Owner
</a></strong></li>
<li><strong><a href="c_CloudLogin.jsp">Cloud Server
</a></strong></li>
<li><strong><a href="d_DomainLogin.jsp">Registry
Authority</a></strong></li>
</ul>
</div>
<div class="gadget">
<h2 class="star"><br />
</h2>
</div>
</div>
<divclass="clr"></div>
</div>
</div>
<div class="fbg"></div>
<div class="footer"></div>
</div>
<div align=center></div>
</body>
</html>
40
<style type="text/css">
<!--
.style3 {font-size: 36px}
.style14 {color: #FFFFFF}
.style15 {color: #FF0000}
-->
</style>
</head>
<body>
<div class="main">
<div class="header">
<divclass="header_resize">
<div class="searchform"></div>
<div class="logo">
<h1><a href="index.html"><span class="style3">Identity Based EncryptionTransformation for
FlexibleSharing of Encrypted Data in Public Cloud</span></a></h1>
</div>
<divclass="clr"></div>
<div class="menu_nav">
<ul>
<li class="active"><a href="c_CloudMain.jsp">Cloud ServiceProvider</a></li>
<li><a href="c_CloudLogin.jsp">Logout</a></li>
</ul>
</div>
<divclass="clr"></div>
<div class="slider">
<div id="coin-slider">
<div align="justify"><a href="#"><img src="images/slide1.jpg" width="960" height="360" alt=""
/></a><a href="#"><img src="images/slide2.jpg"width="960" height="360" alt="" /></a><a href="#"><img
src="images/slide3.jpg"width="960" height="360" alt="" /></a></div>
</div>
</div>
<divclass="clr"></div>
</div>
</div>
<div class="content">
<div class="content_resize">
<div class="mainbar">
<div class="article">
<h2><span>Patient Details : </span></h2>
<table width="573" border="1.5" style="border-collapse:collapse"cellpadding="0" cellspacing="0"
align="center">
<%
String s1="",s2="",s3="",s4="",s5="",s6="",s7="",s8,s9="",s10,s11,s12,s13,tdoor;
int i=0,j=0,k=0;
t
r {
y
%>
<tr>
<td width="31" height="48" bgcolor="#FF0000"><div align="center"class="style21 style14"><span
class="style23"> ID </span></div></td>
41
<td width="91" bgcolor="#FF0000"><div align="center"class="style21 style14"><span
class="style23">Patient Reposrt Name
</span></div></td>
<td width="137" bgcolor="#FF0000"><div align="center" class="style21 style14"><span
class="style23">Patient Name</span></div></td>
<td width="107" bgcolor="#FF0000"><div align="center" class="style21 style14"><span
class="style23">Date and Time</span></div></td>
<td width="66" bgcolor="#FF0000"><div align="center"class="style21 style14"><span
class="style23">Disease</span></div></td>
<td width="127" bgcolor="#FF0000"><div align="center"class="style21 style14"><span
class="style23">Age</span></div></td>
<td width="127" bgcolor="#FF0000"><div align="center"class="style21
style14"><span class="style23">Blood Group</span></div></td>
<td width="127" bgcolor="#FF0000"><div
align="center"class="style21style14"><span class="style23">Trapdoor</span></div></td>
</tr>
<%
String query="Select * from pdata "; Statement st=connection.createStatement(); ResultSet
rs=st.executeQuery(query);while ( rs.next() )
{
i=rs.getInt(1); s2=rs.getString(2); // rnametdoor=rs.getString(4); // tdoor
s3=rs.getString(7); // Date and Time -encs4=rs.getString(8);// Patient Name s5=rs.getString(10);// Disease-enc
s6=rs.getString(11); // Age
s7=rs.getString(12); // bgString keys ="ef50a0ef2c3e3a5f";byte[] keyValue =
keys.getBytes();
Key key = new SecretKeySpec(keyValue, "AES");Cipher c = Cipher.getInstance("AES");
c.init(Cipher.DECRYPT_MODE, key);
Stringdt= new
String(Base64.decode(s3.getBytes()));
String disease = new
String(Base64.decode(s5.getBytes()));
Stringbg = new
String(Base64.decode(s7.getBytes()));
%>
<tr>
<td height="65"><div
align="center"class="style15"><%=i%></div></td>
<td><div align="center" class="style15"><%=s2%></div></td>
</tr>
<%
}
42
connection.close();
}
catch(Exception e)
{
out.println(e.getMessage());
}
%
>
</ <p> </p>
ta <p><a href="c_CloudMain.jsp">Back</a></p>
bl <p> </p>
e <div class="clr"></div>
> <divclass="clr"></div>
</div>
</div>
<div class="sidebar">
<div class="gadget">
<h2 class="star">Menu</h2>
<divclass="clr"></div>
<ul class="sb_menu">
<li><strong><a href="c_CloudMain.jsp">Home</a></strong></li>
<li><strong><a href="c_CloudLogin.jsp">Logout</a></strong></li>
</ul>
</div>
</div>
<divclass="clr"></div>
</div>
</div>
<div class="fbg"></div>
<div class="footer"></div>
</div>
<div align=center></div>
</body>
</html>
Class.forName("com.mysql.jdbc.Driver")
; connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/IBET","root",""); String sql="";
}
catch(Exception e)
{
System.out.println(e);}
43
CHAPTER 7
INPUT AND OUTPUT
7.1 INPUT:
Screen-1:-Upload page.
Description:- Takes details of the patient to upload.
44
7.2 OUTPUT:
Screen-1
Description:- In this page we request for secret key to get the from the cloud.
Screen-2:-
Description:-In this page we can download the file by requesting the
access to cloud owner .
45
Screen-3: -Patient report details.
Description: -In this page we can see the file that user want to download.
46
CHAPTER 8
SYSTEM TESTING
8. SYSTEM TESTING
o Unit Testing.
o Integration Testing.
o System testing
o User Acceptance Testing.
o Output Testing.
Unit testing focuses verification effort on the smallest unit of Software design
that is the module.
During this testing, each module is tested individually and the module
interfaces are verified for the consistency with design specification. All important
processing path are tested for the expected results. All error handling paths are
also tested.
47
8.1.2 Integration Testing
Integration testing addresses the issues associated with the dual problems
of verification and program construction. After the software has been integrated a
set of high order tests are conducted. The main objective in this testing process is
to take unit tested modules and builds a program structure that has been dictated
by design.
This method begins the construction and testing with the modules at the
lowest level in the program structure. Since the modules are integrated from the
bottom up, processing required for modules subordinate to a given level is always
available and the need for stubs is eliminated. The bottom-up integration strategy
may be implemented with the following steps:
▪ The low-level modules are combined into clusters into clusters that performs .
▪ Drivers are removed and clusters are combined moving upward in the program
structure.
48
The bottom-up approach tests each module individually and then each module is
module is integrated with a main module and tested for functionality.
8.1.3 User Acceptance Testing
User Acceptance of a system is the key factor for the success of any
system. The system under consideration is tested for user acceptance by
constantly keeping in touch with the prospective system users at the time of
development and making changes where ever required. The system developed
provides a friendly user interface that can easily be understood even by a person
who is new to the system.
This covers a wide range of activities including correcting code and design
errors. To reduce the need for maintenance in the long run, we have more
accurately defined the user’s requirements during the process of system
development. Depending on the requirements, this system has been developed to
satisfy the needs to the largest possible extent. With development in technology,
it may be possible to add many more features based on the requirements in
future. The coding and designing is simple and easy to understand which will
make maintenance easier.
49
8.3 TESTING STRATEGY :
A strategy for system testing integrates system test cases and design
techniques into a well- planned series of steps that results in the successful
construction of software. The testing strategy must cooperate with test planning,
test case design, test execution, and the resultant data collection and
evaluation. A strategy for software testing must accommodate low-level tests that
are necessary to verify that a small source code segment has been correctly
implemented as well as high-level tests that validate major system functions
against user requirements.
50
8.4 SYSTEM TESTING:
51
CHAPTER 9
EXPERIMENTALRESULTS
Screen-1
Description: In this page we can see the how many keyword transaction
results .
Screen-2
52
CHAPTER 10
CONCLUSION
In this paper, we studied how to securely and efficiently transform encrypted data
in clouds. To address this issue, we proposed an identity-based encryption
transformation(IBET)model, which connects the well-studied IBE and IBBE
systems. IBET allows data owners to secure outsourced data with identity-based
access control, which eliminates complicated cryptographic certificates for all
users. Moreover, IBET provides a transformation mechanism for data owners to
authorize cloud service providers (CSP) to transform a file in IBE-ciphertext
format into a file in IBBE- ciphertext format so that a set of authorized users can
access the underlying data. We proposed a concrete IBET scheme that is secure
against powerful attacks. Thorough experimental analyses demonstrate the
efficiency and practicability of the scheme.
53
CHAPTER 11
REFERENCES
[1] D. Song, E. Shi, I. Fischer, and U. Shankar, “Cloud data protection for
the masses,” Computer, vol. 45, no. 1, pp. 39–45, 2012.
[2] J. Yu, K. Ren, and C. Wang, “Enabling cloud storage auditing with
verifiable outsourcing of key updates,” IEEE Transactions on Information
Forensics and Security, vol. 11, no. 6, pp. 1362–1375,2016.
[3] H. Yin, Z. Qin, J. Zhang, L. Ou, and K. Li, “Achieving secure,
universal, and fine-grained query results verification for secure search scheme
over encrypted cloud data,” IEEE Transactions on Cloud Computing, 2017.
[4] K. Li, W. Zhang, C. Yang, and N. Yu, “Security analysis on one-to
many order preserving encryption-based cloud data search,” IEEE Transactions
on Information Forensics and Security, vol. 10, no. 9, pp.1918–1926, 2015.
[5] R. Zhang, R. Xue, and L. Liu, “Searchable encryption for health care clouds:
a survey,” IEEE Transactions on Services Computing, vol. 11, no. 6, pp. 978–
996, 2018.
54
[7] C.Delerabl´ee,“Identity-based broadcast encryption with constant size
ciphertexts and private keys,” in International Conference on the Theory and
Application of Cryptology and Information Security. Springer, 2007, pp. 200–
215.
[8] H. Deng, Q. Wu, B. Qin, W. Susilo, J. Liu, and W. Shi, “Asymmetric
cross-crypto system re-encryption applicable to efficient and secure mobile
access to outsourced data,” in Proceedings of the 10th ACM Symposium on
Information, Computer and Communications Security. ACM, 2015, pp. 393–
404.
[9] J. Lai, Y. Mu, F. Guo, W. Susilo, and R. Chen, “Anonymous identity-
based broadcast encryption with revocation for filesharing,” in Australasian
Conference on Information Security and Privacy. Springer, 2016, pp. 223–239.
[10] J. Lai, Y. Mu, F. Guo, and R. Chen, “Fully privacy-preserving id-based
broadcast encryption with authorization,” The Computer Journal, vol. 60, no.
12, pp. 1809–1821, 2017.
[11] W. Susilo, R. Chen, F. Guo, G. Yang, Y. Mu, and Y.-W. Chow,
“Recipient revocable identity-based broadcast encryption: how
to revoke some recipients in IBBE without knowledge of the plaintext,” in
Proceedings of the 11th ACM on Asia Conference on Computer and
Communications Security. ACM, 2016, pp. 201–210.
[12] J. Lai, Y. Mu, F. Guo, W. Susilo, and R. Chen, “Fully privacy preserving
and revocable id-based broadcast encryption for data
55
[13] M. Blaze, G. Bleumer, and M. Strauss, “Divertible protocols and atomic
proxy cryptography,” in EUROCRYPT 1998. Springer Berlin Heidelberg, 1998,
pp. 127–144.
[14] G. Ateniese, K. Fu, M. Green, and S. Hohenberger, “Improved proxy re-
encryption schemes with applications to secure distributed storage,” Information
and System Security (TISSEC), ACM Transactions on, vol. 9, no. 1, pp. 1–30,
2006.
[15] B. Libert and D. Vergnaud, “Unidirectional chosen-ciphertext secure proxy
re-encryption,” in PKC 2008. Springer Berlin Heidelberg, 2008, pp. 360–379.
[16] Z. Cao, H. Wang, and Y. Zhao, “Ap-pre: Autonomous path proxy re-
encryption and its application,” IEEE Transactions on Dependable and Secure
Computing, 2017.
[17] H. Guo, Z. Zhang, J. Xu, N. An, and X. Lan, “Accountable proxy re-
encryption for secure data sharing,” IEEE Transactions on Dependable and
Secure Computing, 2018.
[18] M.Green and G. Ateniese, “Identity-based proxy re-encryption,” in ACNS
2007. Springer Berlin Heidelberg, 2007, pp. 288–306.
[19] C. K. Chu and W. G. Tzeng, “Identity-based proxy re-encryption without
random oracles,” in ISC 2007. Springer Berlin Heidelberg, 2007, pp. 189–202.
[20] K. Liang, J. K. Liu, D. S. Wong, and W. Susilo, “An efficient cloud
based revocable identity-based proxy re-encryption scheme for
public clouds data sharing,” in European Symposium on Research in Computer
Security. Springer, 2014, pp. 257–272.
[21] P. Xu, T. Jiao, Q. Wu, W. Wang, and H. Jin, “Conditional identity based
broadcast proxy re-encryption and its application to cloud
56
email,” IEEE Transactions on Computers, vol. 65, no. 1, pp. 66–79,2016.
[24] C. Ge, W. Susilo, L. Fang, J. Wang, and Y.Shi, “Acca- secure key-
policy attribute-based proxy re-encryption in the adaptive corruption model
for drop box data sharing system,” Designs, Codes and Cryptography, pp.
1–17, 2018
57