a novel privacy preserving public auditing for shared data in cloud
TRANSCRIPT
Chapter 1
INTRODUCTION In Today's cloud Computing is one of the greatest development which
uses progressed computational force and it enhances information sharing and
information putting away capacities. Primary trouble in cloud computing was issues of
information uprightness, information security and information access by unapproved
clients. TTA (Trusted Third Party) is utilized to store and offer information in cloud
computing. Change and sharing of information is truly straightforward as a gathering.
To confirm respectability of the mutual information, individuals in the gathering needs
to register marks on all common information squares. Distinctive squares in shared
information are for the most part marked by diverse clients because of information
changes performed by diverse clients. Client renouncement is one of the greatest
security dangers in information partaking in gatherings. Amid client denial shared
information square marked by renounced client needs to download and resign by existing
client. This assignment is extremely inefficacious because of the vast size of shared
information obstructs on cloud. Data intigrity is the new open evaluating system for
the keeping up honesty of imparted information to productive client disavowal in the
cloud. This instrument is in light of intermediary resignatures idea which permits the
cloud to resign squares for the benefit of existing clients amid client disavowal, so that
downloading of shared information pieces is not needed. Data intigrity is general society
examiner which reviews the respectability of shared information without recovering
the whole information from the cloud. It additionally screen cluster to confirm various
examining errands all the while.
1
1.1 Brief Information about the project
Cloud computing is the delivery of computing services over the Internet. Whether
they realize it or not, many people using cloud computing services for their personal
needs. For example, many people use social networking sites or webmail, and these cloud
services. Photographs that people once kept on their own computers are now being stored
on servers owned by third parties. These are also examples of cloud services.
Cloud services are popular because people can access their email, social
networking site or photo service,data shareing from any where in the world, at any time,
at minimal or no charge. Some cloud providers may, however, use the personal
information of users for advertising purposes or to learn more about the users for other
reasons.Users should also protect their own personal information by using any privacy
settings that the service may offer.Instead of keeping data on your own hard drive or
updating applications for your needs, you use a service over the Internet, at another
location, to store your information or use its applications. Doing so may give rise to
certain privacy implications. Cloud computing service providers are those companies that
you turn to for cloud services. There are different clouds such as Amazon and Microsoft
offering cloud services, and there are smaller companies too. They are all striving to offer
cutting edge ,innovative solutions that are compelling enough that you will consider
making you move to the cloud.In this we can easily share data from one to other and we
can protect our data by using different clouds such as email, dropbox and etc.
1.2 Motivation. To motivate the public auditing system of data storage security in Cloud Computing and provide a privacy preserving auditing protocol, my scheme supports an external auditor to audit user’s out sourced data in the cloud without learning knowledge on the data content.To the best of our knowledge, my scheme is the first to support scalable and efficient public auditing in the Cloud Computing. In particular, my scheme achieves batch auditing where multiple delegated auditing tasks from different users can be performed simultaneously by the TPA. to prove the security and justify the performance of proposed schemes through concrete experiments and
2
comparisons with the state of the art. In cloud, Data trustworthiness is one of
the discriminating issue, as there is absence of character protection, where the clients are
unacquainted with the inspector of the information, over topographically scattered data
centers. This elements of cloud computing developed different concerns identified with
client's personality, information up rightness and clients accessibility. At last this impacts
to propose an improved model so as to review the information respectability and keeping
the personality protection with proficient client disavowal while sharing.
Disadvantages:
Failing to preserve identity privacy on shared data during public auditing will
reveal significant confidential information to public verifiers.
Protect these confidential information is essential and critical to preserve
identity privacy from public verifiers during public auditing.
1.3 Objectives of the project: Data respectability is one of the discriminating issue, as there is absence of
personality protection, where the clients are unacquainted with the inspector of the
information, over topographically scattered data centers.This elements of cloud
computing developed different concerns identified with client's character, information
respectability and clients accessibility. At last this impacts to propose an improved model
to review the information uprightness and keeping the character protection with
proficient client disavowal while sharing. Analyzing the above exploration work we have
proposed another system through which we review the information trustworthiness as
well as preserve personality security with client repudiation.
Advantages:
We present an advanced scheme to support stronger security by encrypting the
file with differential privilege keys.
Reduce the storage size of the tags for integrity check. To enhance the security of
cloud data and protect the data confidentiality.
3
1.4 Organization of the thesis The chapters of the thesis are organized as follows
Chapter 1: Introduction It provides an introduction to the research topic namely “A Novel privacy preserving public auditing for shared data in cloud”. The research objectives adopted to achieve the goals of research are also described.Chapter 2: Literature Review It covers background work related to the thesis. Chapter 3: Proposed System
This chapter gives brief explanation about the algorithms used in the system.
Chapter 4: System Design In this chapter the simulation results of different scenarios are presented. The data were collected and then analyzed to accomplish the objectives of the thesis.Chapter 5: System Implementation It covers the design and implementation of entire project descriptions.Chapter 6: Results
This chapter represents the workflow of transitions.
Chapter 7: System Testing The purpose of testing is to discover errors. Testing is the process of trying to
discover every conceivable fault or weakness in a work product.
Chapter 8: Conclusion and Future scope This chapter deals with the conclusion and the enhancements need to be in
future.
4
Chapter 2
LITRATURE SURVEYINTRODUCTION
A Literature review is a body of text that aims to review the critical
points of current knowledge including substantive findings as well as theoretical and
methodological contributions to a particular topic. While started to do this project,
referred the following papers of integrity checking models in cloud storage and decided
to do this project with the existing system, and came to a conclusion that what can be
done in the proposed system.
2.1 A View of Cloud Computing
Authors: M. Armbrust, A. Fox, R. Griffith, In this paper , M. Armbrust, and A. Fox, R. Griffith propose The emergence of
cloud computing brings users abundant opportunities to utilize the power of cloud to
perform computation on data contributed by multiple users. These cloud data should be
encrypted under multiple keys due to privacy concerns. However, existing secure
computation techniques are either limited to single key or still far from practical.
2.2 Security Challenges for the Public Cloud
Authors:K. Ren, C. Wang, and Q. Wang In this paper,K. Ren, C. Wang, and Q. Wang propose to the Cloud computing is
the newest term for the long dreamed vision of computing as a utility.The cloud provides
convenient on demand network access to a centralized pool of configurable computing
resources that can be rapidly deployed with great efficiency and minimal management
over head.Although cloud computing’s benefits are tremendous, security and privacy
concerns are the primary obstacles to wide adoption.
5
2.3 Cloud Data Protection for the Masses
Authors. Song, E. Shi, I. Fischer, and U. Shankar In this paper,D. Song, E. Shi, I. Fischer, and U. Shankar propose a new cloud
computing paradigm, data protection as a service(www.mydatacontrol.com).DPaaS is a
suite of security primitives offered by a cloud platform which enforces data security and
privacy and offers evidence of privacy to data owners, even in the presence of potentially
compromised or malicious applications.It’s impossible to develop a single data protection
solution for the cloud because the term means too many different things.
2.4 Privacy-Preserving Public Auditing for Data Storage Security in
Cloud Computing
Authors:C. Wang, Q. Wang, K. Ren, and W. Lou In this paper, Wang, Q. Wang, K. Ren, and W. Lou propose a privacy-preserving
public auditing system for data storage security in Cloud Computing.We utilize the
homomorphic authenticator and random masking to guarantee that TPA would not learn
any knowledge about the data content stored on the cloud server during the efficient
auditing process.
2.5 Computing Encrypted Cloud Data Efficiently under Multiple Keys
Authors:B. Wang, M. Li, S.S. Chow, and H. Li.In this paper ,B. Wang, M. Li, S.S. Chow, and H. Li The emergence of cloud computing
brings users abundant opportunities to utilize the power of cloud to perform computation
on data contributed by multiple users. These cloud data should be encrypted under
multiple keys due to privacy concerns. However, existing secure computation techniques
are either limited to single key or still far from practical.
2.6 Oruta: Privacy-Preserving Public Auditing for Shared Data in the
Cloud
Authors: B. Wang, B. Li, and H. Li, In this paper B. Wang, B. Li, and H. Li propose the first privacy preserving
mechanism that allows public auditing on shared data stored in the cloud.With this
mechanism, the identity of the signer on each block in shared data is kept private from a
6
third party auditor (TPA), who is still able to verify the integrity of shared data without
retrieving the entire file.An interesting problem in my future work is how to efficiently
audit the integrity of shared data with dynamic groups while still preserving the identity
of the signer on each block from the third party auditor.
3.PROPOSED SYSTEM Triple DES is based on the DES ( Data Encryption Standard ) algorithm,
therefore it is very easy to modify existing software to use Triple DES. It also has the
advantage of proven reliability and a longer key length that eliminates many of the
attacks that can be used to reduce the amount of time it takes to break DES. However,
even this more powerful version of DES may not be strong enough to protect data for
very much longer. As such, the DES algorithm itself has become obsolete and is no
longer used.
A symmetric encryption algorithm that processes the data a bit or a byte at a time
with a key resulting in a randomized ciphertext or plaintext.Encryption is the process of
converting a plaintext message into ciphertext which can be decoded back into the
original message. An encryption algorithm along with a key is used in the encryption and
decryption of data. There are several types of data encryptions which form the basis of
network security.
In conventional symmetric encryption a single key is used. With this key, the
sender can encrypt a message and a recipient can decrypt the message but the security of
the key becomes problematic. In asymmetric encryption, the encryption key and the
decryption key are different. One is a public key by which the sender can encrypt the
message and the other is a private key by which a recipient can decrypt the message.
An encryption mechanism where two keys are used. A public key is used to
encrypt the message and a secret private key to decrypt the message.A single secret key
which is used in conventional symmetric encryption which is used to encrypt and decrypt
a message.
Triple DES is the common name for the Triple Data Encryption Algorithm
(TDEA) block cipher.It is so named because it applies the Data Encryption Standard
7
(DES) cipher algorithm three times to each data block. Triple DES provides a relatively
simple method of increasing the key size of DES to protect against brute force attacks,
without requiring a completely new block cipher algorithm.
The standards define three keying options:
Keying option 1: All three keys are independent.
Keying option 2: K1 and K2 are independent, and K3 = K1.
Keying option 3: All three keys are identical, i.e. K1 = K2 = K3.
Keying option 1 is the strongest, with 3 x 56 = 168 independent key bits.
Keying option 2 provides less security, with 2 x 56 = 112 key bits. This option is stronger
than simply DES encrypting twice, e.g. With K1 and K2, because it protects against
meet-in-the-middle attacks.
Keying option 3 is no better than DES, with only 56 key bits. This option provides
backward compatibility with DES, because the first and second DES operations simply
cancel out. It is no longer recommended by the National Institute of Standards and
Technology (NIST) and not supported by ISO/IEC 18033-3.
In general Triple DES with three independent keys (keying option 1) has a
key length of 168 bits (three 56-bit DES keys), but due to the meet-in-the-middle attack
the effective security it provides is only 112 bits. Keying option 2, reduces the key size to
112 bits. However, this option is susceptible to certain chosen-plaintext or known-
plaintext attacks and thus it is designated by NIST to have only 80 bits of security.The
following diagram simplifies the working detail of Triple DES Algorithm.
8
Figure: Working Of Triple Des Algorithm
Triple DES uses a "key bundle" that comprises three DES keys, K1, K2 and K3,
each of 56 bits (excluding parity bits).
The encryption algorithm is:
Step-1:
Ciphertext = EK3(DK2(EK1(plaintext)))
I.e., DES encrypt with K1, DES decrypt with K2, then DES encrypt with K3.
Step-2:
Decryption is the reverse:
Plaintext = DK1(EK2(DK3(Ciphertext)))
I.e., decrypt with K3, encrypt with K2, then decrypt with K1.
9
Chapter 4
SYSTEM DESIGNThe design of a system is essentially a blueprint or a plan for a solution for the
system. The design process for software systems often has two levels. At the first level
the focus is on deciding which modules are needed for the system, the specifications for
these modules, plus how the modules should be interconnected. In the second level, the
internal design of the modules, or how the specifications of the module can be satisfied,
is decided.
4.1 System architecture:This architecture shows how to keep the files secure by encrypting the files that
are uploaded in the public cloud by the user and also the permissions that provided by
private cloud in the form of file token to the user.
10
Figure: Architecture Of System Design
4.2 Data DictionaryAfter carefully understanding the requirements of the client the entire data storage
requirements are divided into tables. The below tables are normalized to avoid any
anomalies during the file uploading and downloading of data entry.
4.2.1 Table for Registration
Column Name Data Type
Username Varchar(45)
Password Varchar(45)Group Varchar(45)Mail Varchar(45)Phone number Varchar(45)Place Varchar(45)
Table 4.1 Registration
4.2.2 Table for user request
Column Name Datatype
11
Username Varchar(22)Password Varchar(22)
Table 4.2 User Request
4.2.3 Table for Download file
Column Name Datatype
UserName Varchar(22)
Password Varchar(22)
Filename Varchar(22)
Download Varchar(22)
Table 4.3 Download file
4.2.4 Table for Files
Column Name Data Type
Idfiles Int(10)
Filename Varchar(45)
Content BLOB Owner_name Varchar(45)
Upload_time Varchar(45)Size Varchar(45)File_key Varchar(45)
Table 4.2.4 Files
4.2.5 Table for permissions
Column Name Data Type
12
Username Varchar(10)
Password Varchar(20)
Fileld Varchar(20)
Update Varchar(20) Download Varchar(20)
4.2.5 Permissions
4.2.6 Table for rights
Column Name Data Type
Username Varchar(45)
Password Varchar(45)
Key Varchar(45)
Upload Varchar(45) Update Varchar(45)
Download Varchar(45)
Table 4.2.6 Rights
4.3 UML DIAGRAMS
UML stands for Unified Modeling Language. UML is a standardized general-
purpose modeling language in the field of object-oriented software engineering. The
standard is managed, and was created by, the Object Management Group.
The Unified Modeling Language is a standard language for specifying,
Visualization, Constructing and documenting the artifacts of software system, as well as
for business modeling and other non-software systems.
4.3.1 USE CASE DIAGRAM:This diagram consists of set of use cases and their relationships.The below
diagram consists of actors like user, attribute authority,cloud server provider and the oval
shapes consists of actions done by the actors. Here, the user can register and generate key
attribute and then file are encrypt and upload to down load same file decrypted to the
cloud server. The cloud server provider then accepts the secretkey and sends response to
13
the user. attiribute are checks the user uploaded file then only it can be uploaded and it
encrypts the file to provide security.
4.3.2 CLASS DIAGRAM: In software engineering, a class diagram in the Unified Modeling Language
(UML) is a type of static structure diagram that describes the structure of a system by
showing the system's classes, their attributes, operations (or methods), and the
relationships among the classes. It explains which class contains information.
14
user
namepasswordemailidmobilenum
fileupload()downloadfile()Request key()
Admin
namepassword
activateuseracc()acceptuserreq()generateKey()
Cloud server provider
NamePassword Get Key()encryptfile()
There are three classes like user, admin and cloud server provider.The user has
attributes like name, password, email id,mobilenum and functions like request key, file
upload to public cloud, file download, file updation. The Csp has operations like check
for name,password,getKey, encrypting file. The admin has attributes like name, password
and operations like activating user details, generating key and provide rights.
4.3.3 SEQUENCE DIAGRAM
A sequence diagram in Unified Modeling Language (UML) is a kind of
interaction diagram that shows how processes operate with one another and in what
order. It is a construct of a Message Sequence Chart. Sequence diagrams are sometimes
called event diagrams, event scenarios, and timing diagrams.
15
4.3.4 ACTIVITY DIAGRAM: Activity diagrams are graphical representations of workflows of stepwise
activities and actions with support for choice, iteration and concurrency. In the Unified
Modeling Language, activity diagrams can be used to describe the business and
operational step-by-step workflows of components in a system. An activity diagram
shows the overall flow of control.
16
Chapter 5
IMPLEMENTATION5.1 MODULES:
Owner registration
Owner login
User registration
17
User login
Third Party Auditor registration
Third Party Auditor login
Data Sharing
5.2 MODULES DESCRIPTION
5.2.1 Owner Registration:
In this module an owner has to upload files in a cloud server, all users are
should register first. Who are registered those are can be able to do it. Users to fill the
details in the registration form. These details are maintained in a database.
5.2.2 Owner Login:
In this module,any of the above mentioned person have to login, they should
login by giving their email id and password .
5.2.3 User Registration:
In this module if a user wants to access the data which is stored in a cloud,
he/she should register their details first. These details are maintained in a Database.
5.2.4 User Login:
Who are used to the data in cloud so first to login to the user details
5.2.5 Third Party Auditor Registration:
The TPA ought to be accurately check the Integrity of shared information
effectively.
5.2.6 Third Party Auditor Login:
At the point when a client is denied from the gathering, the squares marked by
that client can be re-marked productively. And, just existing individuals in the gathering
can just produce legitimate marks on shared information and the individuals which are
denied from the gathering can't figure the substantial marks on shared information.
5.2.7 Data Sharing:
18
The Third Party Auditor the trustworthiness of shared information can be
review by Third Party Auditor without recovering the whole information from the cloud,
regardless of the fact that a few squares in shared information have been re-marked by
the cloud. For accomplishing these properties we are going to utilize some predefined
cryptographic primitives.
5.3 Software Environment:Software environment is the term commonly used to refer to support
an application. A software environment for a particular application could include
the operating system, the database system, specific development tools or compiler.
19
The Java Programming Language
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.
You can think of Java byte codes as the machine code instructions for the Java
Virtual Machine (Java VM). Every Java interpreter, whether it’s a development
tool or a Web browser that can 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.
20
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.
The Java platform has two components:
The Java Virtual Machine (Java VM)
The Java Application Programming Interface (Java API)
You’ve already been introduced to the Java VM. It’s the base for the Java
platform and is ported onto various hardware-based platforms.
The Java API is a large collection of ready-made software components that
provide many useful capabilities, such as graphical user interface (GUI) widgets.
The Java API is grouped into libraries of related classes and interfaces; these
libraries are known as packages. The next
section,What Can Java Technology Do? Highlights what functionality some of
the packages in the Java API provide.
The following figure depicts a program that’s running on the Java platform.
As the figure shows, the Java API and the virtual machine insulate the program
from the hardware.
21
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
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.
What Can Java Technology Do?
The most common types of programs written in the Java programming language
are applets and applications. If you’ve surfed the Web, you’re probably already
familiar with applets. An applet is a program that adheres to certain conventions
that allow it to run within a Java-enabled browser.However, the Java
programming language is not just for writing cute, entertaining applets for the
Web. The general-purpose, high-level Java programming language is also a
powerful software platform. Using the generous API, you can write many types of
programs.
An application is a standalone program that runs directly on the Java platform. A
special kind of application known as a server serves and supports clients on a
network. Examples of servers are Web servers, proxy servers, mail servers, and
print servers. Another specialized program is a servlet. A servlet can almost be
thought of as an applet that runs on the server side. Java Servlets are a popular
choice for building interactive web applications, replacing the use of CGI scripts.
Servlets are similar to applets in that they are runtime extensions of applications.
Instead of working in browsers, though, servlets run within Java Web servers,
configuring or tailoring the server.
How does the API support all these kinds of programs? It does so with packages
of software components that provides a wide range of functionality. Every full
implementation of the Java platform gives you the following features:
22
The essentials: Objects, strings, threads, numbers, input and output, data
structures, system properties, date and time, and so on.
Applets: The set of conventions used by applets.
Networking: URLs, TCP (Transmission Control Protocol), UDP (User
Data gram Protocol) sockets, and IP (Internet Protocol) addresses.
Internationalization: Help for writing programs that can be localized for
users worldwide. Programs can automatically adapt to specific locales and
be displayed in the appropriate language.
Security:Both low level and high level, including electronic signatures,
public and private key management, access control, and certificates.
Software components:Known as JavaBeansTM, can plug into existing
component architectures.
Object serialization:Allows lightweight persistence and communication
via Remote Method Invocation (RMI).
Java Database Connectivity (JDBCTM):
Provides uniform access to a wide range of relational databases.
The Java platform also has APIs for 2D and 3D graphics, accessibility, servers,
collaboration, telephony, speech, animation, and more. The following figure
depicts what is included in the Java 2 SDK.
23
How Will Java Technology Change My Life?
We can’t promise you fame, fortune, or even a job if you learn the Java
programming language. Still, it is likely to make your programs better and
requires less effort than other languages. We believe that Java technology will
help you do the following:
Get started quickly: Although the Java programming language is a
powerful object-oriented language, it’s easy to learn, especially for
programmers already familiar with C or C++.
Write less code: Comparisons of program metrics (class counts, method
counts, and so on) suggest that a program written in the Java programming
language can be four times smaller than the same program in C++.
Write better code: The Java programming language encourages good
coding practices, and its garbage collection helps you avoid memory leaks.
Its object orientation, its JavaBeans component architecture, and its wide-
ranging, easily extendible API let you reuse other people’s tested code and
introduce fewer bugs.
Develop programs more quickly: Your development time may be as
much as twice as fast versus writing the same program in C++. Why? You
write fewer lines of code and it is a simpler programming language than
C++.
24
Avoid platform dependencies with 100% Pure Java: You can keep
your program portable by avoiding the use of libraries written in other
languages. The 100% Pure JavaTM Product Certification Program has a
repository of historical process manuals, white papers, brochures, and
similar materials online.
Write once, run anywhere: Because 100% Pure Java programs are
compiled into machine-independent byte codes, they run consistently on
any Java platform.
Distribute software more easily: You can upgrade applets easily from a
central server. Applets take advantage of the feature of allowing new
classes to be loaded “on the fly,” without recompiling the entire program.
ODBC
Microsoft Open Database Connectivity (ODBC) is a standard programming
interface for application developers and database systems providers. Before ODBC
became a de facto standard for Windows programs to interface with database systems,
programmers had to use proprietary languages for each database they wanted to connect
to. Now, ODBC has made the choice of the database system almost irrelevant from a
coding perspective, which is as it should be. Application developers have much more
important things to worry about than the syntax that is needed to port their program from
one database to another when business needs suddenly change.
Through the ODBC Administrator in Control Panel, you can specify the particular
database that is associated with a data source that an ODBC application program is
written to use. Think of an ODBC data source as a door with a name on it. Each door will
lead you to a particular database. For example, the data source named Sales Figures
might be a SQL Server database, whereas the Accounts Payable data source could refer
to an Access database. The physical database referred to by a data source can reside
anywhere on the LAN.
The ODBC system files are not installed on your system by Windows 95. Rather,
they are installed when you setup a separate database application, such as SQL Server
Client or Visual Basic 4.0. When the ODBC icon is installed in Control Panel, it uses a
file called ODBCINST.DLL. It is also possible to administer your ODBC data sources
25
through a stand-alone program called ODBCADM.EXE. There is a 16-bit and a 32-bit
version of this program and each maintains a separate list of ODBC data sources. From a
programming perspective, the beauty of ODBC is that the application can be written to
use the same set of function calls to interface with any data source, regardless of the
database vendor. The source code of the application doesn’t change whether it talks to
Oracle or SQL Server.
JDBC
In an effort to set an independent database standard API for Java; Sun
Microsystems developed Java Database Connectivity, or JDBC. JDBC offers a generic
SQL database access mechanism that provides a consistent interface to a variety of
RDBMSs. This consistent interface is achieved through the use of “plug-in” database
connectivity modules, or drivers. If a database vendor wishes to have JDBC support, he
or she must provide the driver for each platform that the database and Java run on.
To gain a wider acceptance of JDBC, Sun based JDBC’s framework on ODBC.
As you discovered earlier in this chapter, ODBC has widespread support on a variety of
platforms. Basing JDBC on ODBC will allow vendors to bring JDBC drivers to market
much faster than developing a completely new connectivity solution.
JDBC was announced in March of 1996. It was released for a 90 day public
review that ended June 8, 1996. Because of user input, the final JDBC v1.0 specification
was released soon after. The remainder of this section will cover enough information
about JDBC for you to know what it is about and how to use it effectively. This is by no
means a complete overview of JDBC. That would fill an entire book.
JDBC Goals
Few software packages are designed without goals in mind. JDBC is one that,
because of its many goals, drove the development of the API. These goals, in conjunction
with early reviewer feedback, have finalized the JDBC class library into a solid
framework for building database applications in Java.
The goals that were set for JDBC are important. They will give you some insight as to
why certain classes and functionalities behave the way they do. The eight design goals
for JDBC are as follows:
1. SQL Level API
26
The designers felt that their main goal was to define a SQL
interface for Java. Although not the lowest database interface level possible, it is at a
low Enough level for higher level tools and APIs
to be created.Conversely,it is at a high enough level for application programmers to
use it confidently.Attaining this goal allows for future tool vendors to “generate”
JDBC code and to hide many of JDBC’s complexities from the end user.
2. SQL Conformance
SQL syntax varies as you move from database vendor to database vendor. In an
effort to support a wide variety of vendors, JDBC will allow any query statement to
be passed through it to the underlying database driver. This allows the connectivity
module to handle non-standard functionality in a manner that is suitable for its users.
3. JDBC must be implemental on top of common database interfaces
The JDBC SQL API must “sit” on top of other common SQL level APIs. This
goal allows JDBC to use existing ODBC level drivers by the use of a software
interface. This interface would translate JDBC calls to ODBC and vice versa.
4. Provide a Java interface that is consistent with the rest of the Java system
Because of Java’s acceptance in the user community thus far, the designers feel
that they should not stray from the current design of the core Java system.
5. Keep it simple
This goal probably appears in all software design goal listings. JDBC is no
exception. Sun felt that the design of JDBC should be very simple, allowing for only
one method of completing a task per mechanism. Allowing duplicate functionality
only serves to confuse the users of the API.
6. Use strong, static typing wherever possible
Strong typing allows for more error checking to be done at compile time; also,
less error appear at runtime.
7. Keep the common cases simple
Because more often than not, the usual SQL calls used by the programmer are
simple SELECT’s, INSERT’s, DELETE’s and UPDATE’s, these queries should be
simple to perform with JDBC. However, more complex SQL statements should also
be possible.
27
What is a Java Web Application?
A Java web application generates interactive web pages containing various types of
markup language (HTML, XML, and so on) and dynamic content. It is typically
comprised of web components such as JavaServer Pages (JSP), servlets and JavaBeans to
modify and temporarily store data, interact with databases and web services, and render
content in response to client requests.
Because many of the tasks involved in web application development can be repetitive or
require a surplus of boilerplate code, web frameworks can be applied to alleviate the
overhead associated with common activities. For example, many frameworks, such as
JavaServer Faces, provide libraries for templating pages and session management, and
often promote code reuse.
What is Java EE?
Java EE (Enterprise Edition) is a widely used platform containing a set of
coordinated technologies that significantly reduce the cost and complexity of developing,
deploying, and managing multi-tier, server-centric applications. Java EE builds upon the
Java SE platform and provides a set of APIs (application programming interfaces) for
developing and running portable, robust, scalable, reliable and secure server-side
applications.
Some of the fundamental components of Java EE include:
Enterprise JavaBeans (EJB): a managed, server-side component architecture used
to encapsulate the business logic of an application. EJB technology enables rapid
and simplified development of distributed, transactional, secure and portable
applications based on Java technology.
Java Persistence API (JPA): a framework that allows developers to manage data
using object-relational mapping (ORM) in applications built on the Java Platform.
JavaScript and Ajax Development
JavaScript is an object-oriented scripting language primarily used in client-side
interfaces for web applications. Ajax (Asynchronous JavaScript and XML) is a Web 2.0
technique that allows changes to occur in a web page without the need to perform a page
refresh.Java Script tool kits can be leveraged to implement Ajax-enabled components and
functionality in web pages.
28
Web Server and Client
Web Server is a software that can process the client request and send the response
back to the client. For example, Apache is one of the most widely used web server. Web
Server runs on some physical machine and listens to client request on specific port.
A web client is a software that helps in communicating with the server. Some of the most
widely used web clients are Firefox, Google Chrome, Safari etc. When we request
something from server (through URL), web client takes care of creating a request and
sending it to server and then parsing the server response and present it to the user.
HTML and HTTP
Web Server and Web Client are two separate softwares, so there should be some
common language for communication. HTML is the common language between server
and client and stands for HyperText Markup Language.
Web server and client needs a common communication protocol, HTTP (HyperText
Transfer Protocol) is the communication protocol between server and client. HTTP runs
on top of TCP/IP communication protocol.
Some of the important parts of HTTP Request are:
HTTP Method – action to be performed, usually GET, POST, PUT etc.
URL – Page to access
Form Parameters – similar to arguments in a java method, for example
user,password details from login page.
Sample HTTP Request:
GET /FirstServletProject/jsps/hello.jsp HTTP/1.1
1.Host: localhost:8080
2.Cache-Control:
3.no-cache
Some of the important parts of HTTP Response are:
Status Code – an integer to indicate whether the request was success or not.
Some of the well known status codes are 200 for success, 404 for Not Found and
403 for Access Forbidden.
Content Type – text, html, image, pdf etc. Also known as MIME type
Content – actual data that is rendered by client and shown to user.
29
MIME Type or Content Type: If you see above sample HTTP response header, it
contains tag “Content-Type”. It’s also called MIME type and server sends it to client to
let them know the kind of
data it’s sending. It helps client in rendering the data for user. Some of the mostly used
mime types are text/html, text/xml, application/xml etc.
Why we need Servlet and JSPs?
Web servers are good for static contents HTML pages but they don’t know how to
generate dynamic content or how to save data into databases, so we need another tool that
we can use to generate dynamic content. There are several programming languages for
dynamic content like PHP, Python, Ruby on Rails, Java Servlets and JSPs.Java Servlet
and JSPs are server side technologies to extend the capability of web servers by providing
support for dynamic response and data persistence.
Web Container
Tomcat is a web container, when a request is made from Client to web server, it passes
the request to web container and it’s web container job to find the correct resource to
handle the request (servlet or JSP) and then use the response from the resource to
generate the response and provide it to web server. Then web server sends the response
back to the client.When web container gets the request and if it’s for servlet then
container creates two Objects HTTP Servlet Request and HTTP Servlet Response. Then
it finds the correct servlet based on the URL and creates a thread for the request. Then it
invokes the servlet service() method and based on the HTTP method service() method
invokes doGet() or doPost() methods. Servlet methods generate the dynamic page and
write it to response. Once servlet thread is complete, container converts the response
to HTTP response and send it back to client. Some of the important work done by web
container are:
Communication Support – Container provides easy way of communication
between web server and the servlets and JSPs. Because of container, we don’t
need to build a server socket to listen for any request from web server, parse the
request and generate response. All these important and complex tasks are done by
container and all we need to focus is on our business logic for our applications.
30
Lifecycle and Resource Management – Container takes care of managing the
life cycle of servlet. Container takes care of loading the servlets into memory,
initializing servlets, invoking servlet methods and destroying them. Container also
provides utility like JNDI for resource pooling and management.
Multithreading Support – Container creates new thread for every request to the
servlet and when it’s processed the thread dies. So servlets are not initialized for
each request and saves time and memory.
JSP Support – JSPs doesn’t look like normal java classes and web container
provides support for JSP. Every JSP in the application is compiled by container
and converted to Servlet and then container manages them like other servlets.
Miscellaneous Task – Web container manages the resource pool, does memory
optimizations, run garbage collector, provides security configurations, support for
multiple applications, hot deployment and several other tasks behind the scene
that makes our life easier.
Web Application Directory Structure
Java Web Applications are packaged as Web Archive (WAR) and it has a defined
structure. You can export above dynamic web project as WAR file and unzip it to check
the hierarchy. It will be something like below image.
31
Deployment Descriptor
web.xml file is the deployment descriptor of the web application and contains mapping
for servlets (prior to 3.0), welcome pages, security configurations, session timeout
settings etc.
Thats all for the java web application startup tutorial, we will explore Servlets and JSPs
more in future posts.
MySQL:
MySQL, the most popular Open Source SQL database management system, is
developed, distributed, and supported by Oracle Corporation.
The MySQL Web site (http://www.mysql.com/) provides the latest information about
MySQL software.
MySQL is a database management system.
A database is a structured collection of data. It may be anything from a simple
shopping list to a picture gallery or the vast amounts of information in a corporate
network. To add, access, and process data stored in a computer database, you need a
database management system such as MySQL Server. Since computers are very good
at handling large amounts of data, database management systems play a central role
in computing, as standalone utilities, or as parts of other applications.
MySQL databases are relational.
A relational database stores data in separate tables rather than putting all the data in
one big storeroom. The database structures are organized into physical files optimized
for speed. The logical model, with objects such as databases, tables, views, rows, and
columns, offers a flexible programming environment. You set up rules governing the
relationships between different data fields, such as one-to-one, one-to-many, unique,
required or optional, and “pointers” between different tables. The database enforces
these rules, so that with a well-designed database, your application never sees
inconsistent, duplicate, orphan, out-of-date, or missing data. The SQL part of
“MySQL” stands for “Structured Query Language”. SQL is the most common
standardized language used to access databases. Depending on your programming
32
environment, you might enter SQL directly (for example, to generate reports), embed
SQL statements into code written in another language, or use a language-specific API
that hides the SQL syntax.
SQL is defined by the ANSI/ISO SQL Standard. The SQL standard has been evolving
since 1986 and several versions exist. In this manual, “SQL-92” refers to the standard
released in 1992, “SQL:1999” refers to the standard released in 1999, and “SQL:2003”
refers to the current version of the standard. We use the phrase “the SQL standard” to
mean the current version of the SQL Standard at any time.
5.3 Sample code 5.3.1 Registration.jsp
<%@page import="Action.mail_Senddd"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="Action.TrippleDes"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%
String user = request.getParameter("user");
String pass = request.getParameter("pass");
String s = request.getParameter("sex");
String mail = request.getParameter("mail");
String contact = request.getParameter("contact");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/"A
Novel, "root", "root");
Statement st = con.createStatement();
33
int i = st.executeUpdate("insert into regpage values('" + user + "','" + pass + "','" + s +
"','" + mail + "','" + contact + "','" + new TrippleDes().encrypt(s) + "')");
if (i != 0) {
mail_Senddd.sendMail(new TrippleDes().encrypt(s), user, mail);
response.sendRedirect("Login.jsp?msg=Register success");
} else {
response.sendRedirect("Register.jsp?msgr=Reg fail");
}
%>
5.3.2 Home.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--Design by http://www.bluewebtemplates.com
Released for free under a Creative Commons Attribution 3.0 License-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head> <title>A Novel</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
<!-- CuFon: Enables smooth pretty custom font rendering. 100% SEO friendly. To
disable, remove this section -->
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/arial.js"></script>
<script type="text/javascript" src="js/cuf_run.js"></script>
<!-- CuFon ends --> </head> <body>
<div class="main"> <div class="header">
<div class="header_resize">
<divclass="logo"><br></br>
<br></br>
<img src="images/144.jpg" />
</div>
<div class="menu_nav"> <ul>
34
<liclass="active"><a href="Home.jsp"><strong>Home</strong></a></li>
<li><a href="Reg.jsp"><strong>Member_Register</strong></a></li>
<li><ahref="Mem_Log.jsp"><strong>Group_Member</strong> </a></li>
<li><a href="Group_Manager_Login.jsp"><strong>Group_Manager</strong></a></li>
<li><ahref="PublicAudting.jsp"><strong>Public_Audting</strong></a></li>
</ul> </div>
<div class="clr"></div>
</div> </div>
<div class="content">
<div class="content_resize">
<div align="center" >
<h2>ABSTRACT </h2><p align="justify" style="font: sans-serif"> In
today's cloud Computing is one of the greatest development which uses progressed
computational force and it enhances information sharing and information putting away
capacities. Primary trouble in cloud computing was issues of information uprightness,
information security and information access by unapproved clients. TTA (Trusted Third
Party) is utilized to store and offer information in cloud computing. Change and sharing
of information is truly straightforward as a gathering. To confirm respectability of the
mutual information, individuals in the gathering needs to register marks on all common
information squares. Distinctive squares in shared information are for the most part
marked by diverse clients because of information changes performed by diverse clients.
Client renouncement is one of the greatest security dangers in information partaking in
gatherings. Amid client denial shared information square marked by renounced client
needs to download and resign by existing client. This assignment is extremely
inefficacious because of the vast size of shared information obstructs on cloud. data
intigrity is the new open evaluating system for the keeping up honesty of imparted
information to productive client disavowal in the cloud.This instrument is in light of
intermediary resignatures idea which permits the cloud to resign squares for the benefit of
existing clients amid client disavowal, so that downloading of shared information pieces
is not needed.data intigrity is general society examiner which reviews the respectability
35
of shared information without recovering the whole information from the cloud. It
additionally screen cluster to confirm various examining errands all the while.
</p>
</div>
<div class="sidebar">
</div> <div class="clr"></div>
</div>
<div class="footer">
<div class="footer_resize">
<div class="clr"></div>
</div>
</div>
</div>
</body>
</html>
Chapter 6
SYSTEM TESTINGINTRODUCTION
The main idea is to ascertain errors. It is the procedure of trying to find
out each possible mistake or disadvantage in a work product. It produces a way to verify
the functionality of components, sub assemblies, assemblies and/or a finished product. It
is the sprocedure for analyzing software with objective of establishing that software
system meets its necessities and user prospective and does not fail in an improper
manner. There are different kinds of test. Each test kind addresses a detailed testing
condition.
6.1 Types of tests:
6.1.1 Integration Testing:
Integration tests are planned to test integrated software workings to decide if they
actually run as one program.Testing is event driven and is more alarmed with the basic
outcome of screens or fields. Integration tests reveal that although the workings were
36
individually satisfaction, as shown by successfully unit testing, the combination of
workings is correct and steady. This testing is particularly intended at exposing the
problems that arise from the blend of workings.
6.1.2 Functional test
Functional tests provide systematic demonstrations that functions tested are
available as specified by the business and technical requirements, system documentation,
and user manuals.
Functional testing is centered on the following items:
Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be rejected.
Functions : identified functions must be exercised.
Output : identified classes of application outputs must be exercised.
Systems/Procedures: interfacing systems or procedures must be invoked.
Organization and preparation of functional tests is focused on requirements, key
functions, or special test cases. In addition, systematic coverage pertaining to identify
Business process flows; data fields, predefined processes, and successive processes must
be considered for testing. Before functional testing is complete, additional tests are
identified and the effective value of current tests is determined.
6.1.3 System Test
System testing ensures that the entire integrated software system meets requirements.
It tests a configuration to ensure known and predictable results. An example of system
testing is the configuration oriented system integration test. System testing is based on
process descriptions and flows, emphasizing pre-driven process links and integration
points.
6.1.4 Acceptance Testing
User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.
6.1.5 Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
6.2 Test cases:
37
6.2.1 Test Case for Registration
Test Case ID Input Description Expected Result
NCADPO _01 Login id blank Login id and
password is
mandatory
Enter login id and password
NCADPO _02 Password
blank
Password is
mandatory
Enter user password
NCADPO _03 group
blank/invalid
Group is mandatory
Enter group
NCADPO _04 Email id blank Email id is mandatory
Enter email id
Table 6.2.1 Test Case for Registration
6.2.2 Test case for Login
Test case ID Input Description Expected Result
NCADPO_01Login id blank,
password blank
Login id and
password fields
are mandatory
Enter login id &password
NCADPO _02Valid id and
blank password
Password
mandatoryEnter owner password
NCADPO _03Valid password
and blank id
Login id is
mandatoryEnter login id
NCADPO _04Valid id and
passwordLogin success Login
NCADPO _05In valid id, in
valid password
In valid id, in
valid password
Enter user id & Password
correctly
Table 6.2.2 Test case for Login.
38
6.2.3 Test Case for Registration form Password
Test Case ID Input Description Expected Result
NCADPO _01 Blank password Blank password given by user
Enter user password
NCADPO _02 Password with symbols or any character or digits
Password with symbols or any character or digits given by administrator
Accepted
Table 6.2.3 Test Case for Password
6.2.4 Test Case for Registration form Email id
Test Case ID Input Description Expected Result
NCADPO_01 Blank email id A blank email id field is left by the user
Display that email id is mandatory
NCADPO _02 Email id without @
Email id without @ is given by user
Display that email id is mandatory
NCADPO _03 Email id with /Without dot (.) after @
Email id with/ Without dot (.) after @is given by the user
Display that email id is mandatory
NCADPO _04 Valid Email id With @
Valid Email id With @is given.
Accepted
Table 6.4 Test Case for Email id
39
From the above test cases it can be observed that, software system meets its requirements
plus user expectations and does not fail in an unacceptable manner.
Chapter 7
SCREEN SHOTS
7.1 Home Page
40
This is a home page which appears as the user enters into the website. Once
user clicks on register the control navigates to registration page
7.2 Registration page
41
In this module if a user wants to access the data which is stored in a cloud,
he/she should register their details first. These details are maintained in a Database.User
can register with the valid details and he can login after registartion. If any invalid or
blank inputs then the resultant test case7.2 is below.
7.2 Resultant Test case of user registration.
Test Case ID Input Description Expected
Result
Status
NCADPO _01 Login id blank Login id is mandatory Enter login id P
NCADPO _02 Password blank Password id is
mandatory
Enter user
password
P
NCADPO _03 Mobile noblank/
invalid
Mobile no is
mandatory
Enter mobile no P
NCADPO _04 Email id blank Emailid is mandatory Enter email id P
7.3 Group Manager Login
42
The above figure 7.3 It is one of the option that shows in homepage.The work of
this screenshot is the admin to check the complete user details such as
uploading,downloading and updating files with the date and time.These all can be done
after the login of admin only. In this module,any of the above mentioned person have to
login, they should login by giving their email id and password
7.4 Member Login
43
Who are used to the data in cloud so first to login to the valid username and
password.then after to click on to the submit button.
7.5.View Group
44
In this page to display the registration details,once login to the registration page then
after to show users group and also view login details, and view file details.
7.6.Public Verifier
45
In this module, if a third party auditor TPA (maintainer of clouds) wants to do
some cloud offer, they should register first. After third party auditor gets logged in, He/
She can see how many data owners have uploaded their files into the cloud.
46
In this page to shows the Tpa is gives valid user id name and password it is successfully verified
In this page to shows the Tpa is gives Invalid user id,name and password Now will shows Error.
Chapter-8
47
CONCLUSION AND SCOPE CONCLUSION
Cloud computing is world's greatest development which uses progressed
computational power and enhances information sharing and information putting away
abilities. It expands the simplicity of utilization by giving access through any sort of web
association. As every coin has two sides it likewise has some drawbacks. Protection
security is a fundamental issue for cloud storage. To guarantee that the dangers of
protection have been moderated a mixture of systems that may be utilized as a part of
request to accomplish security. This paper showcase some security systems and diverse
strategies for defeating the issues in protection on untrusted information stores in cloud
computing. There are still some methodologies which are not secured in this paper. This
paper classes the techniques in the writing as encryption based strategies, access control
based systems, inquiry uprightness/decisive word hunt plans, and auditability plans.
Despite the fact that there are numerous systems in the writing for considering the
concerns in security, no methodology is very created to give a protection safeguarding
stockpiling that defeats the various protection concerns. In this manner to handle all these
protection concerns, we have to create privacy safeguarding system which handle every
one of the stresses in protection security and reinforce cloud storage administration.
Future scope
I am, going to raise the privacy level of data and confidentiality of the data in a
better way through the multiple cloud environment Security cloud is one of the present
research project to improve its appropriateness by using map reduce technique.It helps
the cloud clients obtain something from data identification while uploading and to
improve the accuracy of data which is stored in cloud.
REFERENCES
48
[1] B. Wang, B. Li, and H. Li, “Oruta: Privacy-Preserving Public Auditing for Shared
Data in the Cloud,” Proc. IEEE Fifth Int’l Conf. Cloud Computing, pp. 295-302, 2012.
[2] M. Armbrust, A. Fox, R. Griffith, A.D. Joseph, R.H. Katz, A. Konwinski, G. Lee,
D.A. Patterson, A. Rabkin, I. Stoica, and M. Zaharia, “A View of Cloud Computing,”
Comm. ACM, vol. 53, no. 4, pp. 50-58, Apr. 2010.
[3] K. Ren, C. Wang, and Q. Wang, “Security Challenges for the Public Cloud,” IEEE
Internet Computing, vol. 16, no. 1, pp. 69-73, 2012.
[4] D. Song, E. Shi, I. Fischer, and U. Shankar, “Cloud Data Protection for the Masses,”
Computer, vol. 45, no. 1, pp. 39-45, 2012.
[5] C. Wang, Q. Wang, K. Ren, and W. Lou, “Privacy-Preserving Public Auditing for
Data Storage Security in Cloud Computing,” Proc. IEEE INFOCOM, pp. 525-533, 2010.
[6] B. Wang, M. Li, S.S. Chow, and H. Li, “Computing Encrypted Cloud Data Efficiently
under Multiple Keys,” Proc. IEEE Conf. Comm. and Network Security (CNS ’13), pp.
90-99, 2013.
[7] R. Rivest, A. Shamir, and L. Adleman, “A Method for Obtaining Digital Signatures
and Public Key Cryptosystems,” Comm. ACM, vol. 21, no. 2, pp. 120-126, 1978.
[8] The MD5 Message-Digest Algorithm (RFC1321). https://tools. ietf.org/html/rfc1321,
2014.
[9] G. Ateniese, R. Burns, R. Curtmola, J. Herring, L. Kissner, Z. Peterson, and D. Song,
“Provable Data Possession at Untrusted Stores,” Proc. 14th ACM Conf. Computer and
Comm. Security (CCS ’07), pp. 598-610, 2007.
[10] H. Shacham and B. Waters, “Compact Proofs of Retrievability,” Proc. 14th Int’l
Conf. Theory and Application of Cryptology and Information Security: Advances in
Cryptology (ASIACRYPT ’08), pp. 90-107, 2008.
49
[11] C. Erway, A. Kupcu, C. Papamanthou, and R. Tamassia, “Dynamic Provable Data
Possession,” Proc. 16th ACM Conf. Computer and Comm. Security (CCS’09), pp. 213-
222, 2009.
[12] Q. Wang, C. Wang, J. Li, K. Ren, and W. Lou, “Enabling Public Verifiability and
Data Dynamic for Storage Security in Cloud Computing,” Proc. 14th European Conf.
Research in Computer Security (ESORICS’09), pp. 355-370, 2009.
[13] C. Wang, Q. Wang, K. Ren, and W. Lou, “Ensuring Data Storage Security in Cloud
Computing,” Proc. 17th Int’l Workshop Quality of Service (IWQoS’09), pp. 1-9, 2009.
[14] B. Chen, R. Curtmola, G. Ateniese, and R. Burns, “Remote Data Checking for
Network Coding-Based Distributed Storage Systems,” Proc. ACM Workshop Cloud
Computing Security Workshop (CCSW’10), pp. 31-42, 2010.
[15] Y. Zhu, H. Wang, Z. Hu, G.-J. Ahn, H. Hu, and S.S Yau, “Dynamic Audit Services
for Integrity Verification of Outsourced Storages in Clouds,” Proc. ACM Symp. Applied
Computing (SAC’11), pp. 1550-1557, 2011.
[16] N. Cao, S. Yu, Z. Yang, W. Lou, and Y.T. Hou, “LT Codes-Based Secure and
Reliable Cloud Storage Service,” Proc. IEEE INFOCOM, 2012.
[17] B. Wang, B. Li, and H. Li, “Certificateless Public Auditing for Data Integrity in the
Cloud,” Proc. IEEE Conf. Comm. and Network Security (CNS’13), pp. 276-284, 2013.
[18] C. Wang, S.S. Chow, Q. Wang, K. Ren, and W. Lou, “Privacy-Preserving Public
Auditing for Secure Cloud Storage,” IEEE Trans. Computers, vol. 62, no. 2, pp. 362-375,
Feb. 2013.
[19] B. Wang, B. Li, and H. Li, “Public Auditing for Shared Data with Efficient User
Revocation in the Cloud,” Proc. IEEE INFOCOM, pp. 2904-2912, 2013.
[20] B. Wang, B. Li, and H. Li, “Panda: Public Auditing for Shared Data with Efficient
User Revocation in the Cloud,” IEEE Trans. Services Computing, 20 Dec. 2013, DOI:
10.1109/TSC.2013.2295611.
50