Encryption Project

Download as pdf or txt
Download as pdf or txt
You are on page 1of 65

IDENTITY-BASED ENCRYPTION

TRANSFORMATION FOR FLEXIBLE SHARING OF


ENCRYPTED DATA IN PUBLIC CLOUD
A Project report submitted to Jawaharlal Nehru Technological University,
Kakinada, In the partial fulfillment for the award of the Degree in

BACHELOR OF TECHNOLOGY

IN
COMPUTER SCIENCE & ENGINEERING
(CYBER SECURITY)

SUBMITTED BY

BOMMINENI SRIKANTH (20F91A4608)

MADDISETTI NAGENDRA (20F91A4629)

MALINENI SAI KIRAN (20F91A4630)

SHAIK KHAJA USMAN (20F91A4653)

UNDER THE NOBLE GUIDANCE OF

Mr.B.ENOSH.ANDROSH, ASSOC PROFESSOR

PRAKASAM ENGINEERING COLLEGE


(An ISO 9001-2008 & NAAC Accredited Institution)

(Affiliated to Jawaharlal Nehru Technological University, Kakinada)

O.V. ROAD, KANDUKUR-523105, A.P.


2020-2024
PRAKASAM ENGINEERING COLLEGE
(An ISO 9001-2008 & NAAC Accredited Institution)

(Affiliated to Jawaharlal Nehru Technological University, Kakinada)

O.V. ROAD, KANDUKUR-523105, A.P.

DEPARTMENT OF

COMPTER SCIENCE & ENGINEERING


(CYBER SECURITY)
BONAFIDE CERTIFICATE
This is to certify that the project report entitled “IDENTITY–BASED
ENCRYPTION TRANSFORMATION FOR FLEXIBLE SHARING OF ENCRYPTED
DATA IN PUBLIC CLOUD” is a Bonafide work of MALINENI SAIKIRAN (20F91A4630),
SHAIK KHAJA USMAN(20F91A4653), MADISETTI NAGENDRA(20F91A4629),
BOMMINENI SRIKANTH(20F91A4608) in the partial fulfillment of the requirement for the
award of the degree in Bachelor of Technology in COMPUTER SCIENCE & ENGINEERING
-CYBER SECURITY for the academic year 2020-2024. This work is done under our supervision.

Signature of the Guide Signature of the HOD


Mr.B.ENOSH. ANDROSHA Dr.K.SUBBA REDDY
Assoc.Professor M.Tech,Ph.D

Signature of The External Examiner


DECLARATION

We do here declare that the seminar report entitled “IDENTITY – BASED


ENCRYPTION TRANSFORMATION FOR FLEXIBLE SHARING OF
ENCRYPTED DATA IN PUBLIC CLOUD” is a genuine work carried out by us
under the guidance of Mr.B.ENOSH.ANDROSH, Assoc Professor in partial
fulfillment for the award of the degree of “COMPUTER SCIENCE AND
ENGINEERING(CYBER-SECURITY)” of Jawaharlal Nehru Technological
University, Kakinada.

BOMMINENI SRIKANTH (20F91A4608)


MADDISETTI NAGENDRA (20F91A4629)
MALINENI SAI KIRAN (20F91A4630)
SHAIK KHAJA USMAN (20F91A4653)
ACKNOWLEDGEMENT
We feel to render our thankful acknowledgement to the following distinguished
personalities, who stretched their helping hand to us, in completing our project work.

We are thankful to our guide Mr.B.ENOSH. ANDROSH, ASSOC Professor who


has channeled our thoughts and timely suggestions.

We express our deep sense of gratitude to Dr.K.SUBBA REDDY, Head of the


Department, Department of CSE-CYBER SECURITY for having shown keen
interest at every stage of development of our thesis and guiding us in every aspect.

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.

We would also like to thank all our Faculties in Prakasam Engineering


College for their constant encouragement and for being a great group of
knowledgeable and cooperative people to work with.

BOMMINENI SRIKANTH (20F91A4608)


MADDISETTI NAGENDRA (20F91A4629)
MALINENI SAI KIRAN (20F91A4630)
SHAIK KHAJA USMAN (20F91A4653)
INDEX
TABLE OF THE CONTENT PAGENO
LIST OF FIGURES i
ABSTRACT ii
CHAPTER 1: INTRODUCTION 1-3
CHAPTER 2: LITERATURE SURVEY 4-7
CHAPTER 3: SYSTEM ANALYSIS 8-15
3.1. Existing systems
3.2. Proposed system
3.3. Feasibility analysis
3.3.1 Operational feasibility
3.3.2 Economic feasibility
3.3.3 Technical feasibility

CHAPTER 4: SYSTEM REQUIREMENTS 16


4.1 Hardware requirements
4.2 Software requirements
CHAPTER 5: SYSTEM DESIGN 17-35
5.1 Architecture diagram
5.2 Use case diagram
5.3 Sequence diagram
5.4 Class diagram
5.5 Data flow diagram
5.6 Flow chart diagram
5.7 J2EE Software Environment
Chapter 6: IMPLEMENTATION 36-43
6.1 Sample Coding
CHAPTER 7: INPUT AND OUTPUT 44-46
7.1 Output screens
CHAPTER 8: SYSTEM TESTING 47-51
8.1 TESTING METHODOLOGIES
8.1.1 Unit Testing
8.1.2 Integration Testing
8.2 Types of Integration Testing

8.2.1 Top-Down Integration


8.2.2 Bottom-Up Integration
8.3 System Testing
8.4 Unit Testing
8.5 Test Cases
CHAPTER 9: EXPERIMENTAL RESULTS 52
CHAPTER 10: CONCLUSION 53
CHAPTER 11: REFERENCES 54-57
LIST OF FIGURES

Fig.No Figure Name Page.No

3.2 Advanced Encryption standard 13

5.1 Architecture Diagram 17

5.2 Use Case Diagram 18

5.3 Class Diagram 19

5.4 Data Flow Diagram 20-21

5.5 Flow Chart Diagram 22-25

5.6 Sequence Diagram 26

5.7.1 Java Technology 27

5.7.2 Java Program 28

5.7.3 Java Platform 28

5.7.4 Java IDE 29


5.8 Application Layer 30

i
ABSTRACT

With the rapid development of cloud computing, an increasing number of


individuals and organizations are sharing data in the public cloud. To protect the
privacy of data stored in the cloud, a data owner usually encrypts his data in such
a way that certain designated data users can decrypt the data. This raises a serious
problem when the encrypted data needs to be shared to more people beyond those
initially designated by the data owner. To address this problem, we introduce and
formalize an identity based encryption transformation (IBET) model by
seamlessly integrating two well established encryption mechanisms, namely
identity-based encryption (IBE) and identity- based broadcast encryption (IBBE).
In IBET, data users are identified and authorized for data access based on their
recognizable identities, which avoids complicated certificate management in
usual secure distributed systems. More importantly, IBET provides a
transformation mechanism that converts an IBE ciphertext into an IBBE
ciphertext so that a new group of users not specified during the IBE encryption
can access the underlying data. We design a concrete IBET scheme based on
bilinear groups and prove its security against powerful attacks. Thorough
theoretical and experimental analyses demonstrate the high efficiency and
practicability of the proposed scheme.

ii
CHAPTER 1
INTRODUCTION

Cloud computing provides powerful and flexible storage services for


individuals and organizations [1]. It brings about lots of benefits of sharing data
with geographically dispersed data users, and significantly reduces local burden
of storage management and maintenance. However, concerns on data security
and privacy are becoming one of the major obstacles impeding more
widespread usage of cloud storage [2], since data owners lose physical control
of their data after data are outsourced to cloud servers maintained by a cloud
services provider (CSP). Data owners may worry about whether their sensitive
data has been accessed by unauthorized users or malicious CSPs. Cryptographic
encryptions are widely suggested as standard approaches to protect the security
and privacy of data out sourced to clouds.[3]. With encryption mechanisms,
data owners first encrypt their data and then outsource it to cloud servers. Then
the data in clouds are stored in ciphertext format and can only be accessed by
the users having matching decryption keys. In a public cloud storage system,
where different data owners may employ different encryption mechanisms
according to their own data-sharing requirements, it is often that a data owner
wants to share his data with only one user and thus encrypts the data to generate
a particular ciphertext that can only be decrypted by the specific user.
However, as data sharing requirement change, the same data owner would like
to share his data with more users, which, therefore, requires transforming the
cipher text format so that multiple users can decrypt.
There are many scenarios in which the ciphertext transformation mentioned
above is highly desirable. Consider a group of medical insurance agents draft a
health insurance plan for a client. To do so, each agent needs to collect the
client’spersonal information.
1
(e.g., electronic health records, occupations data, financial reports) from various
data sources such as hospitals, employers, tax departments. The required data
may be stored in remote cloud servers and especially, may be encrypted under
different encryption mechanisms. To allow the agents to read and make use of
the required data, a naive way is to let each agent acquire the corresponding
decryption keys from the authorities who manage respective data. However,
this would pose great concerns on data privacy. The authorities would ask a
natural question: “If I give my decryption key to the agents, how to assure that
all the agents would not leak the decryption key or use the decryption key to
access other clients’ stored data?” This paper attempts to solve such problem
technically so that the authorities can transform the ciphertexts from one
encryption system to another, without handing over their decryption keys. In
particular, we consider an encryption transformation mechanism that connects
two types of well established encryption systems, i.e., identity-based encryption
(IBE) and identity-based broadcast encryption (IBBE). We take electronic
health records sharing as a motivation of our work.

Suppose a patient is equipped with implantable or wearable medical sensors to


collect personal physiological records. These records are aggregated at a mobile
device and then uploaded to a remote server. To protect personal privacy, the
patient may encrypt his health records by some encryption mechanism, e.g.,
IBE, so that only his doctor can read the health records and then make proper
diagnosis.
At some point, the doctor finds a complicated situation about the patient’s
health and consequently, decides to consult a group of experts from different
hospitals. For full understanding of the patient’s health condition, the experts
first need to read the health records (see Fig. 1). Since the records are encrypted
previously, the experts are impossible to directly read the data.
2
Meanwhile, the encryption method taken by the patient and the corresponding
decryption key are unknown to the experts. This results in a dilemma for the
experts: “How could we read the patient’s health records in order to provide our
treatment advices?”

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

3.1 EXISTING SYSTEM:

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].

Inter-domain Transformation. Blaze et al. [15] first introduced the concept of


proxy re-encryption to handle ciphertext transformation within an encryption
system. With this PRE, a user can transform a ciphertext generated under
Alice’s public key into a ciphertext under Bob’s public key. Ateniese et al.
[16] classified PRE into different categories: bidirectional and
unidirectional PRE, single-hop and multi hop PRE, interactive and non-
interactive PRE. Many efforts have been made to improve efficiency and
security of PRE and most of them focus on unidirectional PRE, Libert and
Vergnaud .

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:

In this paper, the system implemented to answer the above question by


studying encryption transformation between two different encryption systems.
For the first time, we propose a novel notion called identity-based encryption
transformation (IBET). We also define the notion (including algorithm
definition and security model) of IBET. Then we design a concrete IBET
scheme in bilinear groups, which provides the following attractive features.
• Identity-based data storage. Data owner can securely outsource their data
to a remote cloud server which is not fully trusted. The data are encrypted and
stored in the server in IBE/IBBE ciphertext format so that only the users
authorized by the data owners can access them. All users, including data
owners and data consumers, are recognized with their unique identities, which
avoids the usage of complicated public-key certificates.
• Cross-domain encryption transformation. Our IBET scheme achieves a
cross- domain encryption transformation which can be viewed as a bridge
connecting
IBE and IBBE. In particular, a data owner (or an authorized data
consumer)can transform the data stored in IBE ciphertext format into the data
in IBBE ciphertext format, so that a set of users specified by the data owner
(or the authorized data consumer) can simultaneously access the data.
• Strong security guarantee. Our IBET scheme achieves a strong security
in the sense that: 1) it can deter any unauthorized access to the data stored in
the cloud server; 2) it can prevent leakage of some private information about

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.

3.1 Advanced Encryption Standard

The Advanced Encryption Standard (AES) is a symmetric encryption algorithm


used to secure sensitive data. Here are some key points about AES:

Symmetric Encryption: AES is a symmetric encryption algorithm, which means


the same key is used for both encryption and decryption.

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.

Rounds: AES performs multiple rounds of encryption and decryption operations


based on the key size. For AES-128, there are 10 rounds; for AES- 192, 12
rounds; and for AES-256, 14 rounds.

Substitution-Permutation Network: AES uses a substitution-permutation


network (SPN) structure, which involves substitution and permutation operations
to provide strong encryption.
12
Security: AES is widely regarded as secure and is used in various applications,
including secure communications, data storage, and digital signatures.

Implementation: AES is implemented in software and hardware, making itsuitable


for a wide range of devices and systems.

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

3.3.1 OPERATIONAL FEASIBILITY


Operational Feasibility deals with the study of prospects of the system to be
developed. This system operationally eliminates all the tensions of the Admin and
helps him in effectively tracking the project progress. This kind of automation will
surely reduce the time and energy, which previously consumed in manual work.
Based on the study, the system is proved to be operationally feasible.

3.3.2 Economic Feasibility


Economic Feasibility or Cost-benefit is an assessment of the economic
justification for a computer-based project. As hardware was installed from the
beginning & for lots of purposes thus the cost on project of hardware is low. Since
the system is a network based, any number of employees connected to the LAN
within that organization can use this tool from at anytime. The Virtual Private
Network is to be developed using the existing resources of the organization. So,
the project is economically feasible.

3.3.3 TECHNICAL FEASIBILITY


According to Roger S. Pressman, Technical Feasibility is the assessment of the
technical resources of the organization. The organization needs IBM compatible
machines with a graphical web browser connected to the Internet and Intranet.

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

4.1 H/W System Configuration: -

Processor - Pentium–IV

RAM - 4 GB(min)

Hard Disk - 20 GB

Key Board - Standard Windows

Keyboard Mouse - Two or Three Button

Mouse Monitor - SVGA

4.2 Software Requirements: -


Operating System - Windows XP

Coding Language - Java/J2EE (JSP, Servlet)

Front End - J2EE

Back End - MySQL

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

Register and Login


,Search Patients On Cloud
,Request Secret Key
Register and ,Secret Key Response
Login
,Upload Patient
Details Login
,View Uploaded View Secret Key Request
Patient Details ,View All Attackers

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 :

5.5.1 Cloud server :-

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

The Java programming language is a high-level language that can be


characterized by all of the following buzzwords:

▪ Simple
▪ Architecture neutral
▪ Object oriented
▪ Portable
▪ Distributed
▪ High performance
▪ Interpreted
▪ Multithreaded
▪ Robust
▪ Dynamic
▪ Secure

With most programming languages, you either compile or interpret a program


so that you can run it on your computer. The Java programming language is
unusual in that a program is both compiled and interpreted. With the compiler,
first you translate a program into an intermediate language called Java byte codes
the platform-independent codes interpreted by the interpreter on the Java platform.
The interpreter parses and runs each Java byte code instruction on the computer.
Compilation happens just once; interpretation occurs each time the program is
executed. The following figure illustrates how this works.

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

Java Program Interpreter

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

DBMS-proprietary protocol JDBC

DBMS Database serve

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

Client machine (GUI)

Application
HTTP, RMI, or CORBA calls Server (Java)

JDBC
Server machine (business

Database server DBMS

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.

Tomcat 6.0 web server


Tomcat is an open-source web server developed by Apache Group. Apache
Tomcat is the servlet container that is used in the official Reference
Implementation for the Java Servlet and Java Server Pages technologies. The Java
Servlet and Java Server Pages specifications are developed by Sun under the Java
Community Process. Web Servers like Apache Tomcat support only web
components while an application server supports web components as well as
business components (BEAs WebLogic, is one of the popular application server).
To develop a web application with jsp/servlet install any web server like JRun,
Tomcat etc to run your application.

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 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0


Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HOME PAGE</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="css/coin-slider.css" />
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/cufon-aller-700.js"></script>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript" src="js/coin-slider.min.js"></script>
<style type="text/css">
<!--
.style3 {font-size: 36px}
.style4 {font-weight: bold}
.style11 {color:
#FF0000;font-weight:
bold;
}
-->
</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="index.html"><span>Home </span></a></li>
<li><a href="u_DataConsumersLogin.jsp"><span>Data
Consumers</span></a></li>
<li><a href="o_DataOwnerLogin.jsp">Data Owner</a></li>
36
<li><a href="c_CloudLogin.jsp">Cloud Service Provider</a></li>

<li><a href="d_DomainLogin.jsp">Registry Authority</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>Project Concept </h2>
<p class="infopost">&nbsp;</p>
<divclass="clr"></div>
<div class="img"><img src="images/img1.jpg" width="215" height="332"alt="" class="fl" /></div>
<div class="post_content">
<p align="justify"><span class="style11"> </span></p>
</div>
<divclass="clr"></div>
</div>
</div>
<div class="sidebar">
<div class="gadget">
<h2 class="star">Menu</h2>
<divclass="clr"></div>
<ul class="sb_menu style4">
<li><a href="index.html">Home</a></li>
<li><a href="u_DataConsumersLogin.jsp">Data Consumers</a></li>
<li><a href="o_DataOwnerLogin.jsp">Data Owner </a></li>
<li><a href="c_CloudLogin.jsp">Cloud Server</a></li>
<li><a href="d_DomainLogin.jsp">Registry Authority</a></li>
</ul>
</div>
</div>
<divclass="clr"></div>
</div>
</div>
<div class="fbg"></div>
<div class="footer"></div>
</div>
<div align=center></div>
</body>
</html>

37
BACKEND :

6.2.2 CLOUD LOGIN.JSP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0


Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cloud Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="css/coin-slider.css" />
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/cufon-aller-700.js"></script>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript" src="js/coin-slider.min.js"></script>
<style type="text/css">
<!--
.style3 {font-size: 36px}
.style4 {
color: #FF0000; font-
weight: bold;
}
-->
</sty
le>
</he
ad>
<bo
dy>
<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 Encryption Transformation for
Flexible Sharing of Encrypted Data in Public Cloud</span></a></h1>
</div>
<divclass="clr"></div>
<div class="menu_nav">
<ul>
<li><a href="index.html"><span>Home </span></a></li>
<li><a href="u_DataConsumersLogin.jsp"><span>Data
Consumers</span></a></li>
<li><a href="o_DataOwnerLogin.jsp">Data Owner</a></li>
<li class="active"><a href="c_CloudLogin.jsp">Cloud ServiceProvider</a></li>
<li><a href="d_DomainLogin.jsp">Registry Authority</a></li>
</ul>
</div>
<divclass="clr"></div>
<div class="slider">
<div id="coin-slider">
<div align="justify">

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>&nbsp;</p>
<p>&nbsp;</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>

6.2.3 Patient details.jsp :

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


8859-1"%>
<%@page import ="java.util.*"%>
<%@ include file="connect.jsp" %>
<%@page import
="java.util.*,java.security.Key,java.util.Random,javax.crypto.Cipher,javax.cryp to.spec.SecretKeySpec,org.bouncycastle.util.encoders.Base64"%>
<%@ page import="java.sql.*,java.util.Random,java.io.PrintStream,java.io.FileOutputStrea
m,java.io.FileInputStream,java.security.DigestInputStream,java.math.BigInteger,
java.security.MessageDigest,java.io.BufferedInputStream"
%
>
<%@ page import
="java.security.Key,java.security.KeyPair,java.security.KeyPairGenerator,javax. crypto.Cipher"%>
<%@page import
="java.util.*,java.text.SimpleDateFormat,java.util.Date,java.io.FileInputStream
,java.io.FileOutputStream,java.io.PrintStream"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cloud Main</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="css/coin-slider.css" />
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/cufon-aller-700.js"></script>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript" src="js/coin-slider.min.js"></script>

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>

<td><div align="center" class="style15"><%=s4%><a


href="C_View_Patient_Details_More.jsp?pname=<%=s4%>">::View
Report</a></div></td>
<td><div align="center" class="style15"><%=dt%></div></td>
<td width="66"><div align="center"
class="style15"><%=disease%></div></td>
<td width="127"><div
align="center"class="style15"><%=s6%></div></td>
<td width="127"><div
align="center"class="style15"><%=bg%></div></td>
< td w
idth="127"><textarea
name="textarea"><%=tdoor%></textarea>

</tr>
<%

}
42
connection.close();
}
catch(Exception e)
{
out.println(e.getMessage());
}
%
>
</ <p>&nbsp;</p>
ta <p><a href="c_CloudMain.jsp">Back</a></p>
bl <p>&nbsp;</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>

6.2.4 DATA BASE :

<%@ page import="java.sql.*"%>


<%@ page import="java.util.*" %>
<%
Connection connection =
null;try {

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.

Screen-2 :-User Module.


Description:-In this module the data is encrypted data.

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

8.1 TESTING METHODOLOGIES

The following are the Testing Methodologies:

o Unit Testing.
o Integration Testing.
o System testing
o User Acceptance Testing.
o Output Testing.

8.1.1 Unit Testing

Unit testing focuses verification effort on the smallest unit of Software design
that is the module.

Unit testing exercises specific paths in a module’s control structure to ensure


complete coverage and maximum error detection. This test focuses on each
module individually, ensuring that it functions properly as a unit. Hence, the
naming is Unit Testing.

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.

The following are the types of Integration Testing:


1. Top Down Integration

This method is an incremental approach to the construction of program


structure. Modules are integrated by moving downward through the control
hierarchy, beginning with the main program module. The module subordinates
to the main program module are incorporated into the structure in either a depth-
first or breadth-first manner.
In this method, the software is tested from the main module, and individual
stubs are replaced when the test proceeds downwards.
2. Bottom-up Integration

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.

8.1.4 Output Testing


After performing the validation testing, the next step is output testing of
the proposed system, since no system could be useful if it does not produce the
required output in the specified format. Asking the users about the format
required by them tests the outputs generated or displayed by the system under
consideration. Hence the output format is considered in 2 ways – one is on screen
and another in printed format.
8.2 MAINTENANCE

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.

Software testing is a critical element of software quality assurance and


represents the ultimate review of specification design and coding. Testing
represents an interesting anomaly for the software. Thus, a series of tests are
performed for the proposed system before the system is ready

50
8.4 SYSTEM TESTING:

Software once validated must be combined with other system elements


(e.g. Hardware, people, database). System testing verifies that all the elements are
proper and that overall system function performance is achieved. It also tests to
find discrepancies between the system and its original objective, current
specifications and system documentation.

8.5 UNIT TESTING:

In unit testing different modules are tested against the specifications


produced during the design for the modules. Unit testing is essential for
verification of the code produced during the coding phase, and hence the goal is
to test the internal logic of the modules. Using the detailed design description as a
guide, important Conrail paths are tested to uncover errors within the boundary
of the modules. This testing is carried out during the programming stage itself. In
this type of testing step, each module was found to be working satisfactorily as
regards the expected output from the module.

In Due Course, the latest technological advancements will be taken into


consideration. As part of the technical build-up, many components of the
networking system will be generic in nature so that future projects can either use
or interact with this. The future holds a lot to offer to the development and
refinement .

51
CHAPTER 9
EXPERIMENTALRESULTS

Screen-1

Description: In this page we can see the how many keyword transaction
results .

Screen-2

Description: Attacker count details .

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.

[5] D. Boneh and M. Franklin, “Identity-based encryption from the weil


pairing,” SIAM Journal on Computing, vol. 32, no. 3, pp. 586–615, 2003.
[6] J. Wei, W. Liu, and X. Hu, “Secure data sharing in cloud computing
using revocable-storage identity-based encryption,” IEE.

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.

[22] K. Liang, M. H. Au, J. K. Liu, W. Susilo, D. S.Wong, G. Yang,

Y. Yu, and A. Yang, “A secure and efficient ciphertext-policy attribute


based proxy re-encryption for cloud data sharing,” Future Generation
Computer Systems, vol. 52, pp. 95–108, 2015.

[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

You might also like