Chapter 1
Chapter 1
INTRODUCTION
Customers can use cloud servers for a variety of cloud services, including data
delegation and outsourcing for large volumes of data. For instance, a user with
insufficient or insufficient storage capacity cannot calculate or save large data
volumes. After that, you'll be able to upload your data to the cloud server. When
clients outsource storage, the cloud server receives a large amount of data (data
owners). On the other hand, customer data can be deleted from a cloud server to make
room for new data (which is often rarely viewed). We can test whether the server
improves client data storage by utilising secure cloud storage solutions. By definition,
these protocols are secure cloud storage solutions for SCSS (DSCS).
Once data processing is outsourced, consumers are unable to process static
data (e.g. backup/archival data). Customers can modify their data as needed to
generate dynamic data. Clients without secure database cloud storage may be unable
to inspect and detect potentially hazardous changes to outsourced data. The client
submits a random auditing challenge and work storage evidence to the server. If an
auditor confidently conducts a public audit or verifies critical material, the public can
access secure cloud storage.
Figure 1 illustrates organisations that are connected and utilising secure cloud
storage technology. Each node (other than the sender/receiver node) in a network
coding system combines packets to create a new packet. These approaches are
effective and scalable, but they can be used to infect infected nodes when the correct
packages are used. These packages skip decoding the specified source node file in
favour of downloading additional packages. To mitigate such risks, SNC protocols
include encryption mechanisms. Each packet is associated with an authenticated
sender via a tag. Tags with homomorphic signatures, colloquially referred to as
MACs, are generated. The medium node can be received by incoming packets with
homomorphic properties (including tags) (and their tags).
This article demonstrates how to create an effective cloud storage DSCS
protocol using the SNC protocol. Chen et al.[16] previously demonstrated the
connection between secure cloud storage and secure network coding.
1
This demonstrates how various SNC protocol concepts can be combined to
create a cloud-based static protocol. On the other hand, the structure is incapable of
managing dynamic data in a variety of applications, resulting in insufficient remote
data updates (insert, remove, or change). Additional research is required to establish
the most effective control method for DSCS.
The system is secured through the use of a network coding system (SNC).
Distributed storage systems[17] have been developed to distribute client-related data
across multiple servers using Network Coding techniques. However, the primary
objective is to keep repair bandwidth to a minimum in the event that each server fails.
Additionally, we will investigate whether the SNC (Single Storage Server) protocol
can be used to create a secure and effective cloud storage system (for a single storage
server). While dynamic information is common in many applications due to its ability
to accommodate infinite changes (insert, delete, and edit), it is not always available in
new data at the file's end (while at the end of the file there are only new information
on the data file).
It is customary to preserve archives and current data by fusing new data with
older data sets. CCTV cameras, for example, store only attachment data and transmit
data such as financial transactions, patient information, and attached databases,
among other things. Additionally, the information in the Annex can be used to
monitor various log structures (e.g., certificates are kept using append-only log
structures in certificate transparency schemes [39]). (For example, certificates are
stored in append-only log structures in Certificate Transparency Plans.) The data
owner anticipates a large volume of data that can be updated only through the use of
one or more of these cloud server applications. In this case, it would be beneficial to
have a more robust mechanism for protecting dynamic data (specifically, data files)
(specifically append-only data files).
2
CHAPTER-2
LITERATURE REVIEW
3
The primary objective is to form a well-suited and stable coalition of
reputable CSPs in order to maximise each CSP's QOS and profitability. In comparison
to the Coalition Game Cloud Federation, the Game Cloud Federation concept
(CGCFF) According to simulation data, CGCFF-based federations outperform this
methodology in terms of satisfaction, quality, and profit.
2.3 Understanding network failures in data centers: measurement,
analysis, and implications
AUTHORS: P. Gill, N. Jain, and N. Nagappan
The data center's first large-scale network failure study will be launched. Our
research addresses the following critical issues: Which devices/links are susceptible to
failure, resulting in traffic disruptions and network effects? To address these concerns,
network operators consult a variety of sources of information. The key findings were
(1) Extremely trusted data centre networks, (3) commodity switches such as rs and
aggs that frequently suffer from short-term software failures, (4) charge sheets, and
(5) network redundancy.
4
2.5 Towards Trustworthy Multi-Cloud Services Communities: A
Trust-based Hedonic Coalitional Game
AUTHORS: O. Abdul Wahab; J. Bentahar; H. Otrok; A. Mourad
A record number of online services in cloud data centres. Interested in major
market services because they can provide discovery, composition, and scale resources
Traditional community models work in multi-cloud environments but not in a cloud
They do not consider malicious services illegally hijacked by a mix of services
provided by numerous suppliers. In a centralised architecture, a single cloud service
organisation monitors community progress. This study proposes three solutions:
Secret outcomes cannot be coordinated to deceive the structure for secrecy. It is based
on the original confidential values of social media services bootstrapping. Our
approach reduces risky services in three sophisticated cloud and service community
firms.
5
2.7 System Study
Feasibility Analysis
Early research concluded that the system can be exploited. This is only
possible with limited resources. Feasibility assessments include
Economical feasibility
Technical feasibility
Social feasibility
2.7.1 Economical Feasibility
A computer-based project's economic feasibility is evaluated. The cost of a
hardware project is low because the hardware has been used extensively. Because it is
network-based, anyone on the LAN can use it. The VPN must be built with firm
resources. So it works.
Examines the system's economic impact The system may require moderate
R&D. It has to be justified. A budget and most of the technology are public. Nulle
chose ne faut acheter
2.7.2 Technical Feasibility
To test the system's technological feasibility Accessible technical resources
are not required. What does this mean? Unmet client needs result. Built-in system
requires no or minimal changes.
The technological resources of Roger S. Pressman are evaluated. It uses IBM
images and web browsers. It was built for another platform. Java, JavaScript, HTML,
SQL, and WebLogic Tech-savvy achieved This facility can create the system.
2.7.3 Social Feasibility
Testing ensures user acceptance. The user is told to maximise technology.
Acceptance of the system is required. The only way to educate the user is to use it. He
must build trust as the system's end user.
Evaluating system viability socially Project management is facilitated without
administrative issues. Regardless, automation saves time and energy. The system
appears to be operationally viable.
6
CHAPTER-3
SYSTEM ANALYSIS
3.1 EXISTING SYSTEM
Then comes cloud computing. The wrong data and services are moved to
central data centres. Other issues remain unresolved. The ongoing study examines
cloud data storage integrity issues. We focus on creating a dynamic cloud auditor
(TPA) (TPA). TPA ensures data integrity in the cloud, reducing user involvement and
lowering cloud costs.
This provides dynamic data through most major data management systems,
including block updates, insertions, and deletions. Public audits and dynamic data
operations were previously not supported by remote data integrity efforts. The current
system highlights the limitations and potential security risks of direct extension, while
our protocol design can perform two critical tasks uninterrupted.
In order to ensure efficient dynamics, we use the Merkle Hash Tree Standard.
Multi-user TPA can perform multiple control jobs at the same time to improve audit
methods and expand core results. Safe and effective.
3.1.1 Disadvantages
The standard model is less secure because a DSCS is not publicly verifiable
(DSCS I).
3.2 PROPOSED SYSTEM
Customer data is distributed among servers using dispersed network storage
codes[17],[18] to ensure that it is not lost. When certain servers fail, the primary goal
is to reduce the amount of bandwidth available to other servers. It is instead a quick
and secure way to save SNC data that we are looking for.
Because every update (insert, delete, modify) can be used for a variety of
applications, dynamic data is extremely versatile when it is added (in which new
information about the file is located at the bottom) (in which fresh information about
the file is located on the bottom). Existing data sets are given greater authenticity
through the use of archival and current data. CCTV cameras, financial transaction
records, medical records, database attachments, and other similar technologies are
available.
o 7
7
Information is required to keep various log structures up to date (e.g., certificates
are stored using append-only log structures in certificate transparency schemes [39]).
(For. Most of the time, the data owner desires an unlimited cloud server for the
collection and storage of data. While secure cloud storage options are essential, an
efficient solution (specifically for add-only data files) is being investigated (specific
to add-only data files). Each SNC process for the DSCS prototype is described in
detail. We provide a diverse set of SNC protocols that can be used to develop
successful DSCS protocols.
Work is currently being done on the development of an open DSCS protocol[15]
(DSCS I) (DSCS I). DSCS I retains dynamic information and makes it simple for
customers to update external information (by inserting, removing, and editing) (insert,
remove and edit).
DSCS I discusses the specific performance and limitations of the system. Security
of the DSCS Protocol and DSCS I should be stated clearly and explicitly in the
system's documentation. When it comes to DSCS, I can only use data as an example
of generic dynamic data (based on[15]) when it comes to (based on[15]) (based
on[15]). We discovered, however, that individual SNC strategies can only guarantee
the full dynamics of cloud storage. Secure Cloud Storage II (DSCS II)[13] is being
constructed in order to store primarily Boneh and other SNC data.
3.2.1 Advantages
It is more successful as a result of the verified data possession (PDP) methods used
by the system.
It is more precise because it incorporates data structures that have been certified by
the DSCS.
8
3.3 SYSTEM REQUIREMENTS
9
CHAPTER-4
SYSTEM DESIGN
4.1 ARCHITECTURE:
10
4.2 DATA FLOW DIAGRAM:
1. The data flow diagram (also known as the bubble diagram) is a type of data flow
diagram. It is a visual technique that shows how data is received, processed, and
output from a system in action.
2. The data flow diagram (DFD) is one of the most important modelling tools (DFD).
It is employed in the modelling of system components. This includes the system
process, data processing, and the interaction between an external entity and the
system, among other things.
3. The DFD specifies how and by how much the system will change over time. This
diagram depicts the flow of information and changes from the input to the output.
4. The DFD is also referred to as the bubble chart in some circles. A DFD can be any
abstract system of any degree of abstraction. DFD can be divided into phases, each of
which represents an increase in information and flow.
11
12
4.3 FLOW CHART DIAGRAM:
13
4.4 UML DIAGRAMS
o UML is an abbreviation for Unified Modeling Languages. The Unified
Modeling Language (UML) is a generalised language for object engineering
that has been standardised. The Object Management Group is in charge of
monitoring and setting the standard.
o The goal is to establish UML as a standard language for software designed for
material construction. The Unified Modeling Language (UML) is composed
of two major components: a metamodel and a notation. UMLs may be
introduced in the future, or they may be linked to a method or process.
Software development, development, and business modelling are all done
using Unified Modeling, which is the industry standard language for
developing and visualising software.
o The Unified Modeling Language (UML) is the most comprehensive collection
of engineering practise for large and complex systems.
o The use of UML is critical in the development of software and the
manufacturing of software objects. The use of graphical annotations in
software design is prevalent in UML.
GOALS:
1. Provide consumers with appropriate expressive language models that are easy to
understand.
2. Create opportunities for growth and to confront major challenges. The following
are the fundamental goals of UML design:
3. Be able to function independently of specific programming or development
languages.
4. Establish a formal foundation for modelling language comprehension.
5. Encourage the use of OO tools to expand the market.
6. Provides support for concepts such as higher-level connections, frames, designs,
and components
7. Best Practice in its entirety
14
4.4.1 Class Diagram:
The class diagram is the most important component of an object-oriented
architectural design. It is widely used in the design of concepts as well as the
representation of specialised codes. Class diagrams for modelling may also be
employed. Diagram classes are the most important objects, application, and
programmable classes in any programme.
This graph contains three classes.
Specifies the highest point • The section Center emphasises the high quality of
the classes; • The section Bottom displays classes and activities.
Static connections allow a class diagram to recognise and organise different
types of system design in one place. In general, detailed modelling divides
ideas into subclasses, which can be useful.
15
4.4.2 Usecase Diagram:
The term "Use Case Diagram" refers to a behavioural diagram that is
constructed and developed through the use of case studies. It aims to illustrate
graphically how the system behaves in relation to actors, their objectives (represented
as uses), and their reliance on these instances of the system. A case diagram is
typically used to depict the system of any actor. The actors in the system have the
ability to play a role.
16
4.4.3 Sequence Diagram:
A UML diagram is a visual representation of how and when things happen.
The following diagram depicts the structure of the Message Sequence Chart.
Diagrams of events, events, and calendars are all terms used to describe sequence
diagrams. Sequence charts are diagrams that show how things happen in a specific
order. .
17
CHAPTER-5
IMPLEMENTATION
5.1 MODULES
Data Owner
This module is loaded by the cloud server's owner through the use of a File
Block. Cloud file blocks are encrypted and retained by the data owner for the purpose
of security considerations. The data owner has the ability to change the policy
associated with a data block by altering the execution time. The owner of the data has
the ability to control encrypted blocks of files. Additionally, the database owner has
the ability to set the encrypted access privilege for File Blocks.
Cloud Server
The cloud service provider is in charge of a data storage cloud. Cloud sharing
blocks are encrypted and stored by data owners. Cloud blocks that have been
encrypted are collected from databases in order to access and decode shared blocks.
Third Party Auditor
Third-party auditors (TPAs) have the authority of the user to audit outsourced
data on occasion, and this authority is granted under the auspices of data owner
delegations. Audit services are required to convert old secret keys to new secret keys
in order to provide cloud forensics and credibility.
End User
In addition to blocking files and blocking queries for files, End User Clud can
also request a sec-key cloud, which can contain a variety of cloud data.
18
5.2 SOFTWARE ENVIRONMENT INTRODUCTION TO JAVA
TECHNOLOGIES
History
The Java programming language was developed by James Gosling of Sun
Microsystems in 1991. The first version of Java, version 1.0, was released in 1995. At
various points in time, new Java versions were released. Java 1.7 is the most recent
version of the programming language. The Java programming language was
developed by Sun Microsystems. With the Java platform, non-Java code can be
executed on the Java virtual machine, which allows for greater flexibility.
Java Virtual Machine
When programmes are run on the Java Virtual Machine (JVM), the behaviour
of a physical computer is emulated by the software. Virtual Java machines are
required by some operating systems, including Linux and Windows.
Java compilers are used to convert Java programmes into byte code
applications. The Java programme is run on the Java virtual machine, which is a
virtual machine that runs Java programmes.
Java Runtime Environment vs. Java Development Kit
JRE and JDK (JDK) (JDK) are the two Java versions available (JDK). Java
virtual machine (JVM) (JVM) class libraries are included with the Java virtual
machine (JVM). It includes all of the necessary tools for running Java programmes.
The Java Development Kit (JDK) also includes tools for developing Java
programmes. The Java Development Kit (JDK) is comprised of three components: a
Java compiler, a Java virtual machine, and Java libraries (JDK). The Java
Development Kit (JDK) from Sun Microsystems is used to develop Java applications
(JDK). A JVM simulator is included in the JDK, in addition to C compilers and cc
tools such as a debugger. The Java Development Kit (JDK) makes use of ascii text
files to make software development easier (by allowing developers to use an editor,
for example) (by using an editor, for example). The programme files are compiled
into.class files, which are in turn compiled into JVM bytecode. Each class should
have its own.java file, which should be named after the class. The classes in the a.java
file are broken down and placed in the a.class file.
19
The command cc (or gcc) is the same as the command javac. As an alternative
to running a class (or, more precisely, the main function in a class), the classname
java command runs a class. (or, more precisely, the main function in a class) (or more
accurately, the function main in a class). For example, to compile the Hi.java
programme, enter the following command into the command prompt.
javac Hi.java
`java, and then run the application using the command line
java Hi
Compile-time and run-time errors (exceptions) contain the name and line
number of the file that was encountered during the compilation process. The creation
of the no.class file is caused by a compile-time error.
Characteristics Of Java:
Java has several characteristics, including:
Java has a variety of characteristics, some of which are as follows:
• Java programmes connect to the operating system through the Java virtual device,
which is independent of the platform on which they are running. Java programmes, as
a result, are extremely portable across different platforms. Windows and Linux do not
require any modifications to Java programmes that are designed to meet specific
requirements.
In contrast to other programming languages, Java is an object-oriented
programming language that does not use primitive data types.
• Generally, Java object conversion is a time-consuming process that requires the
involvement of a programmer in order to be completed successfully.
• Bytecode is used to write Java source code, which is a compilable and interpretable
language. The virtual Java machine (JVM) (JVM) is able to recognise these bytes as
being valid (JVM). A hotspot compiler is included in the Java Virtual Machine, which
converts byte code that is performance-critical into native code when the Java Virtual
Machine is running. When new objects are created, Java manages the allocation and
de-allocation of memory for them automatically. The software is unable to access the
memory in a direct manner. When removing objects from the trash, the trash collector
does not use a pointer.
20
It is very similar to the syntax of C++, which is why Java is so popular. Given
the language's sensitivity, the terms my value and my value have a variety of
interpretations in Java.
Development Process With Java
The Java source code is created by the programmer using a simple text editor.
When creating code, an integrated development environment (IDE) assists
programmers by automatically formatting and highlighting keywords as they type.
The Java compiler (or integrated development environment) is referred to as (javac)
by the programmer (javac) because it is written in the Java programming language
(javac). The Java compiler is responsible for generating byte code. Because.class files
contain code that can be executed by the Java Virtual Machine, they are called "class
files."
J2SE
J2SE is a set of Java API files that can be used in a variety of Java-based
applications. It is developed by Sun Microsystems. Its dynamic programming
language foundation, known as Java, is the building block of the programming
language. When it comes to Java API files, J2SE is a collection of files that can be
used by a wide variety of Java applications. It is one of three major editions of the
"JAVA" programming language, which is used to create applets and other web-based
applications. It is also known as the "Java Standard Edition" or simply "Java."
Developing Java applications and other Java-based applications is accomplished
through the use of the J2SE platform. The computer system is one of the most
common components. Platforms and structures have no bearing on the performance of
these Java subroutines. It's a small piece of software that runs in the background of
larger programmes and performs a wide range of basic and dynamic functions on the
computer. J2SE allows users to watch Flash movies or listen to audio files by simply
clicking on a link, which is provided by the software. When you click on a video or
music player button on a website, a browser-based application is launched on your
computer. J2SE is a programming language that is widely used in online gaming.
JavaBeans can also be developed using the J2SE programming language.
21
J2EE
The Java 2 Enterprise Edition (J2EE) is a Java 2 (J2EE) version (J2EE) of the
Java programming language (J2EE). The Java 2 Enterprise Edition (J2EE) framework
from Sun is used for the development, deployment, and administration of Web-based
business applications. The Java 2 Enterprise Edition (J2EE) platform is a collection of
services, application programming interfaces (APIs), and protocols for developing
online applications.
Key features and services of J2EE:
Support for both simple HTML and Java applets as well as client-side
programmes are among the most important capabilities and services provided by
J2EE. It prepares customer data through the use of Java server pages and servlet code.
• EJBs serve as a logical storage layer for the platform's logic execution. It is the EJB
server's responsibility to manage threads, competitors, security, and memory.
According to the author, they don't exist at all.
• JDBC is the most widely used Java database interface. It is a Java-based ODBC
implementation that was created.
The Java servlet API improves the consistency of the developer's work by
eliminating the need for a graphical user interface.
JDBC
Support for both simple HTML and Java applets as well as client-side
programmes are among the most important capabilities and services provided by
J2EE. It prepares customer data through the use of Java server pages and servlet code.
• EJBs serve as a logical storage layer for the platform's logic execution. It is the EJB
server's responsibility to manage threads, competitors, security, and memory.
According to the author, they don't exist at all.
• JDBC is the most widely used Java database interface. It is a Java-based ODBC
implementation that was created.
The Java servlet API improves the consistency of the developer's work by
eliminating the need for a graphical user interface.
22
JDBC Architecture:
23
Common JDBC Components:
JDBC API Interfaces and Classes: JDBC API Interfaces and Classes: In
addition to the interfaces and classes listed below, the JDBC API includes the
following classes and interfaces: The JDBC API is composed of the following
subsystems: java.database.connection.
• DriverManager: This class is in charge of keeping track of all of the drivers
associated with the database. Connection requests from Java applications are
coordinated with the appropriate database driver through the use of a communications
sub-protocol in the Java programming language. In order to establish a connection to
a database, the first driver must be capable of understanding a specific JDBC
subprotocol.
When you connect to a database server, the driver interface is in charge of
connecting you to the database server. Driver-related issues are rarely addressed in a
straightforward manner. DriverManager objects are used instead of Driver objects to
manage this type of object. In addition, the difficulties associated with working with
driver objects are obscured from view.
• Connection: a graphical user interface that displays all of the different data base
connection techniques that are available to the user. The connection object, which
also serves as the communication context, is the only means of communication
between the database and the rest of the world. It allows you to create objects that can
be used to send SQL commands to a database through a web browser. The completion
of stored procedures is not the only thing some derived interfaces accept as
parameters.
• ResultSet: These objects are used to store data from the database after they have
been queried using SQL query Statement objects. It performs the function of an
iterator, allowing you to cycle through the data that it contains at any time.
SQLException: This class is in charge of dealing with any database issues that
may arise during the course of the programme.
What is JDBC Driver?
When connecting to your database server, JDBC Drivers make use of the
JDBC API interfaces.
Database connection drivers, such as JDBC drivers, can establish connections
to databases, execute SQL or database commands, and return Java results.
24
The Java Development Kit (JDK) includes a Java.sql package, which contains
a collection of classes whose behaviour is defined but which are implemented by
external drivers. The java.sql.Driver class is implemented by a third-party provider in
the database driver.
JDBC Drivers Types:
There are many different ways in which JDBC drivers can be implemented. A
variety of hardware and operating systems support Java, so JDBC drivers must be
developed to work with each of these platforms. The following is a list of the different
implementation types offered by Sun: The most common varieties are number one,
number two, number three, and number four.
Type 1: JDBC-ODBC Bridge Driver:
The ODBC controllers installed on each client machine are connected by
means of the JDBC Type 1 driver. In order to use ODBC, your system must have a
DSN that matches the DSN of the targeted database. Because many databases only
supported ODBC access when Java was first released, the ODBC driver was only
useful if no other solutions were available at the time of release.
A good example of this type of driver is the JDBC-ODBC bridge included with JDK
Type 2: JDBC-Native API:
It is a good example of this type of driver to use the JDBC-ODBC bridge
provided with JDK Sort 2: JDBC-Native API: as an example.
25
It is useful to note that the JDBC-ODBC bridge included with JDK Type 2 is
an excellent example of this type of driver: The JDBC-Native API is referred to as the
JDBC-Native API, the JDBC-Native API is referred to as JDBC-Native API, the
JDBC-Native API is referred to as the JDBC-Native API, and the JDBC-Native APIs
are referred to as the Sort 2: The JDBC-ODBC bridge is included with the Java
Development Kit. This type of driver exemplifies what this type of vehicle is capable
of. The following is the API for the JDBC native driver: A Type 2 driver converts
JDBC API calls to database-specific C/C++ native API calls, which are then
converted back to JDBC API calls.
Type 2 drivers are included in the Oracle Call Interface (OCI) driver.
Type 3: JDBC-Net pure Java:
This is a pure Java implementation of the JDBC-Net protocol that was written
entirely in Java. JDBC-Net: When it comes to database access, the driver makes use
of a three-tiered architecture. Using standard network sockets, connections between
JDBC clients and the middleware application server can be established between each
other. When a socket connection is made, the middleware application server converts
the data into a format that the database server can understand and use more easily.
This type of driver is particularly adaptable due to the fact that it does not
require the use of customer code and can connect to a wide variety of databases with a
single piece of software.
26
The application server acts as a "proxy" on behalf of the client application in
order to allow JDBC calls to be made to it. So, before you proceed, you must first
understand how the application server has been configured, before proceeding. This
driver type should be easy to work with if you know what you're doing. Being able to
recognise and distinguish between the various kinds of driver types that your
application server employs when connecting with a database may be beneficial. The
server makes calls on the client application's behalf, serving as a "proxy" for the
JDBC protocol on the client's behalf. Therefore, in order to successfully use this type
of driver, you must be familiar with the way the application server is configured on
the client side. Understanding the differences between Type 1, Type 2, and Type 4
drivers that your application server uses to interface with the database is beneficial
when communicating with the database. Type 1 drivers are used to interface with the
database.
Type 4: 100% pure Java:
Unlike Type 3 drivers, Type 4 drivers use a socket connection to connect to
the vendor database. The fastest database driver currently available, usually supplied
by the supplier No additional client or server software is required to load this type of
driver. Drivers can also be downloaded dynamically.
27
MySQL Connector/J is a type 4 connection driver. Database vendors
frequently provide Type 4 drivers due to proprietary network protocols.
JDBC Database Connections
To connect to a database, you need to instal the appropriate driver.
The documentation says a JDBC connection can be made with just a few lines
of code. Here are four simple steps:
• JDBC Import Packets Import statements should be used in Java programmes to
ensure class inclusion.
The JDBC drivers must be registered before use. The JVM is then asked to load the
appropriate JDBC memory driver.
• URL creation (database URLs): • Creating a connection object is as simple as
creating an address point to the network database. In this case, the DriverManager
class's getConnection() function is used.
Import JDBC Packages:
mport statements tell the Java compiler where to look for referenced classes.
Using the default JDBC package, you can select, insert, update, and delete data from
SQL tables.
import java.sql.* ; // for standard JDBC programs
import java.math.* ; // for BigDecimal and BigInteger support
28
Register JDBC Driver:
Before using the JDBC driver, it must be registered in your software. This step
loads the Oracle driver class file into memory for use in the registration process.
This registration is required only once during your programme. A driver can
register by mail or phone.
Approach (I) - Class.forName():
This method finds a class's name. Class.forName() (I): This method has a class name.
The most common way to automatically log a driver is to use Java Class. It is
the most common method of ForName(). This allows the driver to change and
relocate the registration.
For example, the following code makes use of Class.forName( ) to register the Oracle
driver:
example uses Class.forName( ) to register the Oracle driver:
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex)
{ System.out.println("Error: unable to load driver
class!"); System.exit(1);
}
Database URL Formulation:
Database URL Formulation: A database URL must be entered for each form.
A database URL is the database's web address.
Most connection issues occur when a database URL is defined.
The table below lists popular JDBC driver names and database URLs.
The red portions of the URL are static; the rest must be customised to your
database's configuration.
29
The URL portions highlighted in red are static, whereas the remainder must be
customised to fit the specifics of your database configuration.
Hyper Text Markup Language
A HYPERTEXT MARKUP LANGUAGE contains hypertext markup.
"Hypertext Language Markup" The term "HTML Markup" HTML (Hypertext
Markup Language) is the most widely used computer language for web pages
(Standard Generalized Markup Language). HTML (Standard General Markup
Language) is the most widely used computer language for creating web pages
(Standard Generalized Markup Language). It is primarily a formatting language, not a
programming language. HTML is a simple, easy-to-use, and portable programming
language. HTML is a browser-specific language, not a compiler. HTML stands for
hypertext markup language. A markup element is a sentence that corresponds to a
command. This programme formats and structures web-based documents. HTML
adds markup elements to ASCII files, allowing for a variety of fonts, graphics, and
markup options. Headings, lists, paragraphs, and hyperlinks to other internet
documents are also specified. Because our web browser understands it, the author can
communicate a message... and we can perform some truly amazing performances.
Interactive HTML:
HTML Tag:-
The HTML tags at the start and end of a document should be the same. These
tags tell browsers where to start and stop rendering your page in HTML. This is by far
the most vital website. Although loading such a webpage in a browser results in a
blank screen, it is functional. The debate is now over. The website is technically valid
even if it displays an empty screen when loaded into a browser.
HEAD TAGS: The HEAD tags contain all information about the document's
header. "Header" does not refer to the title and other information in the browser
window. This relates to it.
BODY tagging: These two parts have a similar structure. The BODY tag
contains all of the content in the browser window. The BODY tag group contains all
data, graphs, links, and other elements on the page.
30
This website's HTML forms are unique. Forms collect and send user data to a
running programme. It controls the form's structure. When a form is submitted, this
field is filled in to specify the programme to run and the data format.
The ATTRIBUTES tag's ACTION property is used to specify which
programme or HTML file should be invoked when the form is submitted. The URL
argument is in the ACTION argument.
METHOD-
The METHOD property specifies the client-server data transfer protocol. Two
viable options exist. (the default) (the default) (the default) (the default). The data is
linked to the URL specified in the ACTION attribute when the GET method is
specified. This environment limits the amount of data that can be sent at any given
time. POST, on the other hand, transmits data using environmental variables and can
send an infinite amount.
ATTRIBUTES:
Forms are identified by their names, which are specified by the NAME attribute.
Element: A form field's data entry is made easier by the element's type attribute.
ATTACHMENT NAMES: The NAME attribute names the field.
The VALUE property determines the field's default value.
Sort determines which input method appears on screen when an input method
is selected. The following values are acceptable: One line of text is represented by the
value TEXT.
In this case, the PASSWORD value is used to generate a password. Your
entered text has been hidden.
If something is checked, the user can choose to select it. The CHECKBOX
value allows the user to select or deselect something. The RADIO value switches
between selection lists.
e. HIDDEN — Use the HIDDEN property to hide an input field's contents. When you
click the submit button, the information is sent to the web server, not displayed on the
screen.
The SUBMIT value is used to draw a button on the screen that the user must
click to submit the form.
31
g. RESET - The RESET value creates a screen that allows the user to reset the form to
its default settings.
In the H, it is used to narrow down a large number of options. TAKE VALUE
The SELECT element's values are specified using the OPTION element's drop-down
menu.
TEXTAREA: TEXTAREA (TEXTA) TEXTAREA allows you to enter as
many text lines as you want.
ATTRIBUTES:
The tag creates a link within a document. The tag is used to create a hyperlink
within a document. A hyperlink is an HTML feature that allows you to link from one
page to another.
ATTRIBUTES:-
BORDER – Defines the table's border.
Spacing between cells is known as cell spacing.
Cell padding is the space between the cell border and the cell content.
WIDTH – This attribute determines the table and cell width.
IMAGE tag:
IMG elements are used for image integration in web pages. This tag is missing
as a result of his failure. While simple, the simplest version of the picture tag does not
function independently and accomplishes nothing. While images may appear to be
embedded within a web page, the HTML file and all graphics references are separate
files. A website that contains five HTML visual files requires a total of six files to
function properly. Each file must be stored on a web server, but not all files must be
stored in the same location. (Normally, server administrators create separate photo
folders.) An SRC property must be specified before an IMG tag can be used. SRC, as
in "source of this graph," refers to "source." (For example, an image tag is frequently
interpreted as 'image source equals...') The value of the SRC is the URL of the chart
on your website that you wish to display. The following is an example of a photo tag:
Unless the location of the graphics file is specified, the graphic URL is similar
to the anchor URL. The URL http://www.site.edu/pics/blat.gif corresponds to the
image 'blat.gif' on the server 'www.site.edu'. You may refer to the graphic file using
relative or absolute URLs.
32
Types of Java Script:
Java Script is a client-server scripting language developed by Netscape. It is
object-oriented, cross-platform, and cross-platform. JavaScript is a scripting language
that is primarily used on the client side of applications. The code contained in an
HTML page is JavaScript. When a user requests a JavaScript page that supports
HTML, the script is forwarded to the browser. JavaScript is a scripting language
designed for use with external scripts. JavaScript is a CGI language that is created on
the server and can perform perl- or ASP-like functions. Although the majority of
browsers now support JavaScript, some scripts remain incompatible with certain
browsers.
Features of JavaScript (JS):
Includes the following functions: Java Script is a Java Script programming
language.
The phrase "Java script on the client side" is frequently used.
On the server, live wire (b.) is available (b.) Java is the abbreviation for Java
Script. The Java Script programming language is used for developing dynamic
HTML sites which accept users and store them in objects, files and relationships
recognised. The browser interprets JavaScript phrases in an HTML page. Netscape
Navigator 2.0 and Internet Explorer 3.0 and later support Java Script. Java Script.
JavaScript Live Connect is included in the distributed Java and CORBA object
applications. Navigator 3.0 and later versions of Live Connect are available.
Client side JavaScript features:
From the customer perspective, JavaScript has the following features:
from the perspective of the customer There are several JavaScript features:
When JavaScript was designed, client-side HTML and web browsers were at issue.
This has many negative consequences for safety.
• JavaScript cannot read or write personal computer files from or to the personal
computer filesystem. There is no doubt that this poses a safety and health risk.
• It is not intended to use JavaScript to run other programmes. It's also imperdonable.
• It is impossible for JavaScript to connect to machines that do not have access to a
new HTML page or email. This again entails unacceptably high risks.
JavaScript also contains the following functions from the customer's point of view:
• Content and document structure monitoring
• Browser monitoring
33
• User communication
Server- Side JavaScript Features:
a. Embedded in HTML page
b. Executed at the server
c. Pre-complied for faster response
d. Access to Server-side objects
e. Encapsulation of the request
Apache Tomcat Server
SERVER APACH TOMCAT ABOUT SERVER TOMCAT Tomcat is a Web
Container (ASF) created by the Apache Software Foundation (ASF) (ASF). Tomcat is
a Java-program web server environment that follows the Servlet and Java Server
(JSP) Specifications of Sun Microsystems. The tools are available for setup and
management and for personalising XML configuration files. Tomcat's own internal
HTTP server is available.
Tomcat is a JSP and servlet web server. Through the Tomcat Jasper compiler,
JSPs are converted to servlets. In connection with other web servers, for example
Apache, Tomcat is commonly used. Also, Tomcat can be used as an independent web
server. It was also considered that Tomcat was only suitable for development
environments and other transaction-based low-speed applications at certain points in
its development. Tomcat is becoming increasingly used in multifunctional
applications as a stand-alone web server that alleviates this problem. Tomcat is a
cross-platform application that can work on any Java-supporting operating system.
The following features are available as deployer options or system features. The
deployer package properties file can be found in the root folder:
The $build/webapp$path is the default build folder. Once the compilation goal
has been completed, the WAR web application file will be at
$build/webapp$path.war. This directory contains a compiled and tested web
application version. Myapp is the default directory.
The path to the currently used Web application context, which is usually
/myapp URL: Absolute Web URL that is used for installing and disinstalling the Web
application by the Tomcat Server Manager. In the http://localhost:8080/manager the
deployer connects to a Tomcat instance on the local host by default. This is the
Tomcat administration login and password.
34
This is the password: To access the Tomcat administration interface, a
password is required.
The web folder and WEB-INF directories are also contained in a web
application that has been developed and contain folder classes which automatically
run the application.
Servlets
Introduction:
SERVLETS is a web server that runs on a web browser, proprietary Java Soft.
The Java Web Server is only one component of a system much larger than a web
server. Dedicated network servers must be set up for any intranet system linked to the
Internet or client servers. Applets are apps running on a browser from web servers.
About SERVLETS:
Servlet is a servlet type. Servlets are a server-side solution such as limited
scripting environments, specific APIs and inadequates user interfaces. Servlets are the
most important solutions. Servlets is a Java-based application development
framework. Servers are interface-specific Java-based objects that can be used to
identify a particular server.
Servlets on the server-side are byte codes for things that are loaded
dynamically from the internet. They have different faces (no image or graphical user
interface) as they have no faces (without graphics or a GUI component) (without
graphics or a GUI component). They act as platform-agnostic byte code items on the
server side to enhance server functionality dynamically. An HTTP server, for
example, can create HTML content with dynamic. Some of the advantages of using
service to create dynamic content are as follows:
The APIs (Servlet API) are standardised and all features of Java are used.
They are more efficient and streamlined than CGI (without rewriting) scripts (run on a
range of servers without needing to be rewritten) (run on a range of servers without
needing to be rewritten).
Attractiveness of SERVLETS:
Attraction of SERVLETS: Servlets offer a lot of functionality that facilitates
their use.
The details are as follows:
• The graphical user interface of the administration tool is easy to configure.
• Can be downloaded from or to a local CD remotely.
35
• You can use one service from a single service to call another series or series.
• Dynamic server-side tags on HTML pages
• You're safe – safety paradigms for servlets and sandboxes Even during
downloading, Servlets protect your system against unwanted behaviour.
Advantages of the SERVLET API:
The following advantages apply to the SERVLET API: Some advantages of
the SERVLET API are as follows: The Servlet API is based on independence from
protocols. It does not assume the protocol used for sending information over the
Internet, the loading of data or the server operating environment.
It is clear how important these functionalities are that the Servlet Api is
supported by so many servers. The Servlet API also offers a number of other
advantages. Some examples are as follows:
A.You can improve it by including in the essential classes all of your features.
b. Ease of use, simplicity and complexity.
Features of SERVLETS:
Servlets are extremely fast since only the web server loads them and allow the
service to be maintained between requests. • The SERVLETS are extremely rapid.
Servlets are significantly more cost-effective than CGI equivalents because they only
need one load. Java is a versatile object-oriented language for programming.
Loading SERVLETS:
SERVLETS are loaded from CLASSPATH. The CLASSPATH variable on
the Java web server points to the root/classes/service directory. Not the class path to
SERVICE ROOT/Servlets/server. This site uses a class loader to generate Servlets.
You can add new servlets and recompile existing ones in several places. The servlet
class name and code are required. Configure it in the admin GUI's Servlet section.
Loading Remote SERVLETS:
Remote Server Loading: The admin tool automatically loads remote servers.
• Tag the server's.html file.
• Remote server serlets loading
36
Invoking Servlets:
Servlet Calling is a method that calls a servlet. The invoker loads the server
from a local disc or a network before calling the "service" action. Local server
servlets are named like applets. That is, if the Servlet's name is not absolute, it is
considered local. The customer can choose from these options: Servlets:
• Customer documents can be served by Servlet.
• If a serlet is mapped using the Servlet Aliases Administrative GUI, a client
(browser) can call it directly.
• Tags can call a Servlet on the server.
• Go to Servlets/Directory to call a Servlet.
• Invoke the filter chain servlet.
37
CHAPTER-6
SYSTEM TESTING
The test's goal is to find system flaws. The test's goal is to find any product
flaws. It tracks components, subsets, assemblies, and/or finished goods. The software
development process ensures that the programme meets the needs and expectations of
the users. There are various tests. Test types have distinct testing criteria.
6.1 TYPES OF TESTS
6.1.1 Unit testing
The test units are designed to ensure proper programme logic and accurate
programme input/output. Examine the code flow and all decision branches. It
evaluates software. Prior to integrating a single unit, it is completed. This is an
invasive knowledge structural test. Simple component testing is performed on a
business process, application, or system environment. Unit tests are performed on
each step of the business process to ensure that the stated specifications, inputs, and
outputs are met.
6.1.2 Integration testing
Integration tests ensure that all software components work together as one
programme. Testing focuses on events rather than key display or field consequences.
Integration tests ensure that components are combined correctly and consistently.
Integration testing seeks to identify issues caused by component combinations.
6.1.3 Functional test
Software components are tested for integration to see if they can be
implemented as a single programme. The tests are events with a focus on basic screen
or field results. As the successful unit test shows, integration tests ensure that these
components are combined correctly and consistently. Integration tests find problems
with component integration.
System testing ensures that all software requirements are met. It examines a
plan's known and expected consequences. This is a configuration-oriented system
integration test. Process and flow representations are used in system tests, with an
emphasis on pre-driven process links.
38
6.2 SYSTEM TEST
System testing ensures all software meets requirements. It assesses a situation
to ensure expected outcomes. System testing is a type of configuration-oriented
system testing. A process model is used to test system connections and integration
points. QA Black Box
6.2.1 Unit Testing:
Black Box Tests software without knowing core module function, structure, or
language
6.2.2 Integration Testing
Black box testing should be written from a single source document. The test is
a black box. No "seeing" in it. The test provides answers regardless of the software's
functionality.
Result: All test cases passed with flying colours. The test revealed no flaws.
6.2.3 Acceptance Testing
User acceptance testing is an important part of any project. The system also
checks for functional requirements.
All of the above tests passed. No flaws found.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
TESTING METHODOLOGIES
The following are the Testing Methodologies:
Unit Testing.
Integration Testing.
User Acceptance Testing.
Output Testing.
Validation Testing.
Unit Testing
Testing the smallest software modules. In each control structure, test units run
multiple routes to maximise error detection. In this test, each module works
flawlessly. This defined "unit testing." Each module's interface now has tests and
design standards.
39
Integration Testing
All processing routes are followed to achieve the result. All error management
paths worked. Interoperability testing addresses both software control and
construction issues After software integration, high-order tests are run.
6.3 THE FOLLOWING ARE THE TYPES OF INTEGRATION
TESTING:
6.3.1 Top Down Integration
This test technique uses unit test modules to create a programme structure that
meets design criteria. This method allows for progressive programming. The control
hierarchy links the modules, starting with the main programme module. The
program's main modules are fully or partially integrated into the framework. Core
module and testing software updates
6.3.2 Bottom-up Integration
This step involves creating and testing the software's modular structure. It is
possible to process modules without stubs. The following steps can be taken early in
the integration strategy:
The low modules are grouped by programme.
The driver (i.e. software test control) coordinates the test case's input and output (i.e.
software test control).
Later, the cluster was tested.
Drivers are reduced, clusters merged, and mobility is improved.
Each module is automatically checked and monitored before fusion into a core
module. The system's acceptance by users is critical to its success. As part of the
development process, the chosen system is evaluated by potential users.
6.4 OTHER TESTING METHODOLOGIES
6.4.3 User Acceptance Testing
User acceptance Acceptance testing is critical to any system's success. If
significant improvements are made, the system will remain in touch with future users.
The technology's user interface is simple enough for a beginner to grasp.
6.4.4 Output Testing
After the validation test comes the output test, because no system can be used
until the output is ready. When asked about the format, clients want to test the
system's results. As a result, the output format has two options: screen and print.
40
6.4.5 Validation Checking
Validation checks are performed on the following fields.
6.4.6 Text Field:
The text field has fewer or equal characters. There are alphanumeric and
alphabetic text fields in some tables. These always-on error and default message
inputs
6.4.7 Numeric Field:
This field can only contain 0-9 numbers. Each character enters an error
message. Modular accuracy and performance are tested. These examples have been
validated. The components that were evaluated are combined into one system. The
tests include real-world data execution and software flaw detection. The tests should
be designed to cover all requirements independently. Insufficient data defects and
system issues help testing success.
6.5 PREPARATION OF TEST DATA
The above tests accept various test data. This step is crucial in system testing.
The system is then tested using the test data. Data errors during system testing help
identify and correct future test steps.
6.5.1 Using Live Test Data:
Live test data is contained in the files. Obtain real-time test results. Users are
frequently asked by programmers and analysts to adhere to a strict code of conduct.
This information is used for preliminary system testing. Data extraction and insertion
in real time by programmers or analysts Long-term testing necessitates a large amount
of live data. Because live data is so common, it is uncommon to test all possible
combinations or formats on the system. Because there is no true system test, a system
failure is unlikely.
6.5.2 Using Artificial Test Data:
Any size and value combination can be tested. All login and control paths can
be quickly examined by Assembler.
The most effective test programmes make use of fictitious test data supplied
by someone other than the author. A system-based testing strategy is created by
knowledgeable testers.
The application complied with all software requirements and was approved for
use on the Virtual Private Network.
41
6.5.3 User Training
Users must be trained to understand how the system works. This has allowed
potential owners to keep track of the project's progress. Because target users have
qualified computers, it is simple to understand and use.
6.5.4 Maintainence
There are code repair and design error workstations available. User
expectations are more precisely defined for long-term system development. This
concept was developed to meet the highest demand. There may be more demand-
based capacity as technology advances. Coding and design are straightforward.
6.5.5 Testing Strategy :
Throughout the software development process, system testing and design
methodologies are used. Case design, testing, data collection, and evaluation are all
part of the testing process. Low-level and high-level testing of critical user system
components should be included in the software testing strategy.
Software tests are necessary because they evaluate software quality assurance
and coding requirements. In software development, testing is unique. As a result,
certain tests must be completed before qualifying user acceptance tests can be
performed.
6.5.6 System Testing:
Following programme validation, additional systems (e.g., hardware, people,
databases) are added to the programme (e.g. Hardware, people, database). System
testing ensures that all components and the system as a whole are operationally sound.
It will also display the system's primary goal as well as current standards and
guidelines.
6.5.7 Unit Testing:
Several modules are compared to their requirements during the design process.
Unit tests are used to validate code and debug module logic. What exactly is it? The
module checks the Conrail road design description for errors. This test is executed
while programming. Each module was double-checked to ensure proper output.
New technical discoveries are likely to be investigated. A large number of
networking components can be upgraded. This effort will be beneficial to future
development and progress.
42
CHAPTER-7
OUTPUT RESULTS
43
7.1.1 View blocks table details
44
7.1.3 Data Transaction Details
45
7.2 Auditor login
46
7.2.2 View all data manipulations
47
7.3 Data Owner Login
48
7.3.1 Upload file blocks
49
7.3.2 View Blocks Table Details
50
7.4 User login
51
7.4.2 Download file
52
7.5 Content attacker
53
CHAPTER-8
CONCLUSION
The storage of SNC data in the cloud has never been more secure (DSCS I)
(DSCS I). The first standard SNC DSCS protocol has been validated and proven to be
secure. We've discussed the difficulties encountered while developing the SNC DSCS
protocol. There were also concerns about the security of cloud storage based on
dynamic SNC data. Some of these constraints, however, are built into the SNC
protocol. Better DSCS as a result of the updated SNC protocol Several SNC protocols
provide information using the efficient DSCS protocol (DSCS II) (DSCS II). DSCS II
has proven to overcome some of the limitations of DSCS I. To demonstrate the use of
secure SNC storage systems, prototypes of DSCS II and DSCS I were created.
54
REFERENCES
[1] B. Sengupta and S. Ruj, ―Publicly verifiable secure cloud storage for dynamic
data using secure network coding,‖ in ACM Asia Conference on Computer and
Communications Security, 2016, pp. 107– 118
[2] G. Ateniese, R. C. Burns, R. Curtmola, J. Herring, L. Kissner, Z. N. J. Peterson,
and D. X. Song, ―Provable data possession at untrusted stores,‖ in ACM Conference
on Computer and Communications Security, 2007, pp. 598–609.
[3] A. Juels and B. S. Kaliski, ―PORs: Proofs of retrievability for large files,‖ in
ACM Conference on Computer and Communications Security, 2007, pp. 584–597.
[4] H. Shacham and B. Waters, ―Compact proofs of retrievability,‖ Journal of
Cryptology, vol. 26, no. 3, pp. 442–483, 2013.
[5] C. C. Erway, A. K¨upc¸ ¨ u, C. Papamanthou, and R. Tamassia, ―Dynamic
provable data possession,‖ ACM Transactions on Information and System Security,
vol. 17, no. 4, pp. 15:1–15:29, 2015.
[6] Q. Wang, C. Wang, K. Ren, W. Lou, and J. Li, ―Enabling public auditability and
data dynamics for storage security in cloud computing,‖ IEEE Transactions on
Parallel and Distributed Systems, vol. 22, no. 5, pp. 847–859, 2011.
[7] D. Cash, A. K¨upc¸ ¨ u, and D. Wichs, ―Dynamic proofs of retrievability via
oblivious RAM,‖ in EUROCRYPT, 2013, pp. 279–295.
[8] E. Shi, E. Stefanov, and C. Papamanthou, ―Practical dynamic proofs of
retrievability,‖ in ACM Conference on Computer and Communications Security,
2013, pp. 325–336.
[9] R. Ahlswede, N. Cai, S. R. Li, and R. W. Yeung, ―Network information flow,‖
IEEE Transactions on Information Theory, vol. 46, no. 4, pp. 1204–1216, 2000.
[10] S. R. Li, R. W. Yeung, and N. Cai, ―Linear network coding,‖ IEEE Transactions
on Information Theory, vol. 49, no. 2, pp. 371–381, 2003.
[11] S. Agrawal and D. Boneh, ―Homomorphic MACs: MAC-based integrity for
network coding,‖ in International Conference on Applied Cryptography and Network
Security, 2009, pp. 292–305.
[12] D. X. Charles, K. Jain, and K. E. Lauter, ―Signatures for network coding,‖
International Journal of Information and Coding Theory, vol. 1, no. 1, pp. 3–14, 2009.
55
[13] D. Boneh, D. M. Freeman, J. Katz, and B. Waters, ―Signing a linear subspace:
Signature schemes for network coding,‖ in International Conference on Practice and
Theory in Public Key Cryptography, 2009, pp. 68–87.
[14] R. Gennaro, J. Katz, H. Krawczyk, and T. Rabin, ―Secure network coding over
the integers,‖ in International Conference on Practice and Theory in Public Key
Cryptography, 2010, pp. 142–160.
[15] D. Catalano, D. Fiore, and B. Warinschi, ―Efficient network coding signatures
in the standard model,‖ in International Conference on Practice and Theory in Public
Key Cryptography, 2012, pp. 680–696.
[16] F. Chen, T. Xiang, Y. Yang, and S. S. M. Chow, ―Secure cloud storage meets
with secure network coding,‖ in IEEE International Conference on Computer
Communications, 2014, pp. 673–681.
[17] A. G. Dimakis, B. Godfrey, Y. Wu, M. J. Wainwright, and K. Ramchandran,
―Network coding for distributed storage systems,‖ IEEE Transactions on Information
Theory, vol. 56, no. 9, pp. 4539–4551, 2010.
[18] K. Omote and T. T. Phuong, ―DD-POR: Dynamic operations and direct repair
in network coding-based proof of retrievability,‖ in International Computing and
Combinatorics Conference, 2015, pp. 713–730.
[19] ―Secure cloud storage,‖ 2018. https://github.com/akankshadixit/ Secure Cloud
Storage
[20] S. D. Galbraith, K. G. Paterson, and N. P. Smart, ―Pairings for cryptographers,‖
Discrete Applied Mathematics, vol. 156, no. 16, pp. 3113–3121, Sep. 2008.
[21] T. Ho, M. M´edard, R. Koetter, D. R. Karger, M. Effros, J. Shi, and B. Leong,
―A random linear network coding approach to multicast,‖ IEEE Transactions on
Information Theory, vol. 52, no. 10, pp. 4413–4430, 2006.
[22] T. Ho, R. Koetter, M. M´edard, D. R. Karger, and M. Effros, ―The benefits of
coding over routing in a randomized setting,‖ in IEEE International Symposium on
Information Theory, 2003, p. 442.
[23] G. Ateniese, R. D. Pietro, L. V. Mancini, and G. Tsudik, ―Scalable and
efficient provable data possession,‖ in International Conference on Security and
Privacy in Communication Networks, 2008, p. 9.
[24] C. Wang, S. S. M. Chow, Q. Wang, K. Ren, and W. Lou, ―Privacy-preserving
public auditing for secure cloud storage,‖ IEEE Transactions on Computers, vol. 62,
no. 2, pp. 362–375, 2013.
56
[25] F. J. MacWilliams and N. J. A. Sloane, The Theory of Error-Correcting Codes.
North-Holland Publishing Company, 1977.
[26] I. S. Reed and G. Solomon, ―Polynomial codes over certain finite fields,‖
Journal of the Society for Industrial and Applied Mathematics, vol. 8, no. 2, pp. 300–
304, 1960.
[27] K. D. Bowers, A. Juels, and A. Oprea, ―Proofs of retrievability: Theory and
implementation,‖ in ACM Cloud Computing Security Workshop, 2009, pp. 43–54.
[28] Y. Dodis, S. P. Vadhan, and D. Wichs, ―Proofs of retrievability via hardness
amplification,‖ in Theory of Cryptography Conference, 2009, pp. 109–127
[29] E. Stefanov, M. van Dijk, A. Juels, and A. Oprea, ―Iris: A scalable cloud file
system with efficient integrity checks,‖ in Annual Computer Security Applications
Conference, 2012, pp. 229–238.
[30] N. Chandran, B. Kanukurthi, and R. Ostrovsky, ―Locally updatable and locally
decodable codes,‖ in Theory of Cryptography Conference, 2014, pp. 489–514.
57