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

Chapter 13

Enabling Technologies
Summary

It is not always possible to have access to or set up tangible hardware and software environments.

- Virtualization allows us to work with software-based systems.


- Distributed systems allow us to share data and computing resources across geographical
boundaries to solve problems more quickly.
- Storing and securing data, especially across distributed systems, is of paramount importance.
- Encryption is one way to ensure that data is secure.
- Ultimately, humans need to interact with new technologies and the interface for a new device
or technology may determine whether it succeeds or fails.

Objectives
13.1 Virtualization

- Understand the concept of and reasons for using virtualization.


- Understand ways of achieving virtualization; containerization and virtual machines

13.2 Distributed systems

- Understand the concept of and the need for distributed systems.


- Understand the issues associated with distributed systems: failure, concurrency, replication,
and performance.

13.3 Human Computer Interaction (HCI)

- Understand the importance of effective human computer interaction and its impact on the
user experience.
- Understand the ways in which HCI can be implemented: visual, audio, haptic.
- Understand the ergonomic principles that underpin human-computer interaction.
- Understand interface design to meet the needs and requirements of individuals and
organizations; menus, icons, accessibility, windows, pointers.

13.4 Storing and Securing Data

- Understand how data is stored in the cloud.


- Understand how data is secured using file encryption and password protection.
- Understand the features and functions of a Database Management System (DBMS) in
controlling access and views.

13.5 Encryption

- Understand the features and functions of symmetric encryption.


- Understand the features and functions of asymmetric (public-key) encryption.
- Understand the features and functions of certificate-based encryption: certificate and public-
key certificate.
13.1 Virtualization
Virtualization is the practice of creating a virtual version of something, such as a computer, an
operating system, a storage device, or a network resource. It involves creating an abstraction layer
that allows a single physical resource to be used as if it were multiple, independent resources.

There are several types of virtualization, including:

1) Server virtualization: This involves running multiple virtual servers on a single physical server,
using software called a hypervisor. Each virtual server can run its own operating system and
applications, and can be managed and configured independently.
2) Desktop virtualization: This involves running a virtual desktop on a client device, using
software such as a remote desktop client. The user can access the virtual desktop over a
network and interact with it as if it were a local desktop.
3) Storage virtualization: This involves creating a virtual storage device that is composed of
multiple physical storage devices. The virtual device can be accessed as if it were a single,
unified storage device, but it can also be used to distribute data across multiple physical
devices for improved performance and reliability.
4) Network virtualization: This involves creating a virtual network that is composed of multiple
physical networks. The virtual network can be used to logically segment a network, or to create
a network that spans multiple physical locations.

Virtualization can offer many benefits, such as increased efficiency, reduced costs, and improved
flexibility. It can also enable new capabilities, such as the ability to run multiple operating systems on
a single device, or the ability to access a desktop from any device with an Internet connection.

There are several reasons why organizations use virtualization:

- Cost savings: Virtualization can help organizations to reduce their hardware costs, as multiple
virtual machines can be run on a single physical machine. This can also lead to reduced energy
costs, as fewer physical machines are required.
- Improved resource utilization: Virtualization can allow organizations to make better use of
their hardware resources, as multiple virtual machines can share the resources of a single
physical machine. This can help to increase the efficiency of the organization's IT infrastructure.
- Improved availability: Virtualization can help to improve the availability of IT resources, as
virtual machines can be easily moved between physical servers, or can be configured to
automatically fail over to another physical server in the event of a hardware failure.
- Increased flexibility: Virtualization can allow organizations to easily deploy and test new
applications and configurations, as virtual machines can be created and destroyed quickly and
easily. This can help to speed up the development and deployment of new IT systems.
- Improved security: Virtualization can help to improve security, as virtual machines can be
isolated from each other, which can reduce the risk of one virtual machine being compromised
affecting the others.

Overall, virtualization can help organizations to reduce costs, improve resource utilization, increase
availability, and enhance flexibility and security.
There are 2 Ways of Achieving Virtualization

Virtualization can be achieved through;

- Containerization
- Virtual Machines

Containerization

Containerization is a form of virtualization that involves the use of containers to package and run
applications. Containers are lightweight and portable packages that contain the code and
dependencies needed to run an application. They are created from container images, which are
lightweight and portable packages that contain the code and dependencies needed to run an
application.

Containers provide a number of benefits over virtual machines (VMs):

- Lightweight: Containers are much lighter than VMs, as they do not require a full operating
system to be installed. This makes them faster to start and stop, and easier to manage.
- Portable: Containers can be easily moved between different environments, as they contain
everything needed to run the application. This makes it easy to deploy applications in different
environments, such as on-premises servers, in the cloud, or on a developer's laptop.
- Isolated: Containers are isolated from each other and from the host operating system, which
can help to improve security and stability.
- Efficient: Containers can be run on a single physical machine or on a cluster of machines, and
can share the resources of the host operating system, which can improve resource utilization
and reduce costs.

Overall, containerization is a useful tool for virtualization that can help organizations to deploy
applications in a lightweight, portable, and isolated manner, while also improving resource utilization
and efficiency.

Virtual Machines (VMs)

Virtual machines are software applications that mimic the hardware of a physical computer. Each VM
runs its own operating system and can be configured and managed independently. VMs are typically
used to run multiple operating systems on a single physical machine, or to run applications that are
not compatible with the host operating system.

To use VMs to achieve virtualization, you will need to install a hypervisor, also called a virtual machine
monitor (VMM), on the physical machine. The hypervisor is responsible for creating and managing
the VMs, and for allocating hardware resources to the VMs.

There are several benefits to using VMs to achieve virtualization:

- Compatibility: VMs can run any operating system, which makes them useful for running
applications that are not compatible with the host operating system.
- Isolation: VMs are isolated from each other and from the host operating system, which can
improve security and stability.
- Flexibility: VMs can be easily created, configured, and destroyed, which makes them useful for
testing and development purposes.
- Portability: VMs can be easily moved between different environments, such as from a
developer's laptop to a production server.

Overall, VMs are a powerful tool for virtualization that can help organizations to run multiple operating
systems and applications on a single physical machine, while also providing isolation, flexibility, and
portability.
13.2 Distributed Systems
A distributed system is a system that consists of multiple components that are located on different
computers, but work together as a single system. The components communicate with each other and
coordinate their actions by passing messages. Distributed systems are used to build scalable and fault-
tolerant software systems, and are an important area of study in computer science.

In a distributed system, each component is called a node, and the nodes are connected by a network. The
nodes may be located in the same physical location, or they may be dispersed over a wide area, such as a
campus or the Internet.

There are many types of distributed systems, including distributed databases, distributed computing
systems, and distributed networks. Some common features of distributed systems include the ability to
handle failures, the ability to scale to handle large amounts of work, and the ability to maintain consistency
in the face of concurrent access by multiple nodes.

Why Do We Need Distributed Systems

There are several reasons why distributed systems are used:

- Scalability: Distributed systems can be scaled by adding more nodes to the system, which allows
the system to handle increased workloads.
- Fault tolerance: Distributed systems are designed to be resilient to failures. If one node in the
system fails, the other nodes can continue to operate, which helps to ensure the availability of the
system.
- Performance: Distributed systems can improve performance by distributing work among multiple
nodes, which can allow the system to complete tasks faster.
- Collaboration: Distributed systems can allow multiple users to collaborate and share resources,
such as data and computing power.
- Geographical distribution: Distributed systems can allow users to access resources and services
from anywhere, even if the resources are located in a different physical location.

Issues associated with distributed systems

There are several issues that can arise when designing and implementing distributed systems:

- Network communication: One of the main challenges in distributed systems is the need to
communicate between nodes over a network. Network communication can be unreliable and slow,
which can make it difficult to coordinate actions and maintain consistency in the system.
- Concurrency and consistency: Distributed systems often have to deal with concurrent access to
shared resources, which can lead to issues such as race conditions and deadlocks. Ensuring
consistency in a distributed system can also be challenging, as it may be difficult to keep all nodes
in sync with each other.
- Failure handling: Distributed systems must be designed to handle failures, such as the failure of
a node or the failure of a network link. This can be complex, as the system must be able to detect
failures, recover from them, and continue to operate in a stable manner.
- Security: Distributed systems must be secure, as they often involve the transfer of sensitive data
over networks. Ensuring the confidentiality, integrity, and availability of data can be challenging,
especially in systems with many nodes and complex network topologies.
- Performance: Distributed systems can be more complex and harder to optimize than traditional
systems, which can lead to performance issues. Factors such as network latency, contention for
resources, and the overhead of communication can all impact the performance of a distributed
system.
13.3 Human computer interaction (HCI)
Human-computer interaction (HCI) is the study of how people interact with computers and computer
systems. The study combines computer science, psychology, and design, and focuses on the design
and use of computer technology.

HCI is concerned with the ways in which people communicate with computers and how computers
can be designed to be more intuitive and easier to use. It involves the development of user interfaces
that enable people to effectively and efficiently interact with computers and other devices, such as
smartphones and tablets.

Some of the key areas of Study in HCI include:

- User experience design: This involves the design of user interfaces that are intuitive and easy
to use, and that provide a positive and enjoyable experience for users.
- Human-computer interaction: This involves the study of how people communicate with
computers, including the use of input devices such as keyboards and mice, and the design of
user interfaces that are effective and efficient.
- Human-centered computing: This involves the development of technologies and systems that
are tailored to the needs and abilities of human users.
- Human-computer interaction engineering: This involves the development and evaluation of
technologies and systems that support human-computer interaction, including the
development of new input and output devices and the design of user interfaces.

HCI is an important field that helps to improve the usability and effectiveness of computer technology
and to make it more accessible to a wide range of users.

The Importance of Effective Human Computer Interaction

Effective human-computer interaction (HCI) is important because it helps to ensure that people can
effectively and efficiently use computer technology to perform tasks and achieve their goals. Some of
the benefits of effective HCI include:

- Improved productivity: When people can use computer technology easily and efficiently, they
are more likely to be able to complete tasks quickly and effectively.
- Increased user satisfaction: When people enjoy using computer technology and find it easy to
use, they are more likely to be satisfied with their experience.
- Enhanced accessibility: When computer technology is designed with the needs and abilities of
users in mind, it is more likely to be accessible to a wider range of people, including those with
disabilities.
- Greater adoption of technology: When people find computer technology easy and enjoyable
to use, they are more likely to adopt and use it, which can lead to increased innovation and
economic growth.

Overall, effective HCI is important because it helps to make computer technology more useful and
accessible to people, and enables them to be more productive and satisfied in their use of technology.

An effective human-computer interaction (HCI) can have a number of positive impacts on the user
experience:

- Increased efficiency: When computer technology is easy to use and intuitive, people are able
to complete tasks more quickly and effectively. This can lead to increased productivity and
satisfaction.
- Enhanced satisfaction: When people find computer technology easy and enjoyable to use, they
are more likely to be satisfied with their experience. This can lead to increased adoption and
use of the technology.
- Improved usability: When computer technology is designed with the needs and abilities of
users in mind, it is more likely to be usable by a wider range of people. This can lead to
increased accessibility and inclusivity.
- Greater engagement: When computer technology is engaging and enjoyable to use, people
are more likely to be motivated to use it and to explore its capabilities. This can lead to
increased learning and innovation.

Overall, an effective HCI can have a number of positive impacts on the user experience, including
increased efficiency, satisfaction, usability, and engagement.

Ways in which HCI can be implemented

Human-computer interaction (HCI) can be implemented using a variety of sensory channels, including
visual, audio, and haptic (tactile) input and output. Some examples of how these channels can be used
in HCI include:

- Visual: The visual channel can be used for a wide range of HCI purposes, including displaying
information, providing feedback, and enabling input. Examples of visual HCI include graphical
user interfaces (GUIs), icons, and images.
- Audio: The audio channel can be used to provide information and feedback to users through
sound, and to enable input through speech recognition. Examples of audio HCI include voice
commands, spoken notifications, and audio feedback.
- Haptic: The haptic channel can be used to provide tactile feedback to users, such as through
vibrations or pressure. Haptic HCI can be used to provide information and feedback, and to
enable input through touch. Examples of haptic HCI include touch screens and touch-sensitive
input devices.

Overall, HCI can be implemented using a combination of visual, audio, and haptic channels, depending
on the needs and preferences of the users and the tasks being performed.

Ergonomics

Ergonomics is the study of how people interact with their environment, including the design of
equipment and systems. There are several ergonomic principles that underpin human-computer
interaction (HCI):

- Comfort: Computer technology and user interfaces should be designed to be comfortable for
users to use for extended periods of time. This can involve designing devices and interfaces
that are easy to hold and use, and that do not cause fatigue or discomfort.
- Accessibility: Computer technology and user interfaces should be designed to be accessible
to a wide range of users, including those with disabilities. This can involve designing
technology that is compatible with assistive technologies, such as screen readers and speech
recognition software.
- Efficiency: Computer technology and user interfaces should be designed to enable users to
complete tasks quickly and effectively. This can involve designing interfaces that are intuitive
and easy to use, and that provide the necessary information and tools to users in a clear and
concise manner.
- Safety: Computer technology and user interfaces should be designed to be safe for users to
use. This can involve designing devices and interfaces that are not hazardous to use, and that
do not cause injury or strain.

Overall, ergonomic principles are an important aspect of HCI, as they help to ensure that computer
technology and user interfaces are comfortable, accessible, efficient, and safe for users.

Designing the HCI to Meet the needs and requirements of individuals and organizations

Human-computer interface (HCI) design involves creating user interfaces that enable people to
effectively and efficiently interact with computer technology. To meet the needs and requirements of
individuals and organizations, HCI designers consider a number of factors, including:

- Menus: Menus are lists of options or commands that can be accessed by users. To meet the
needs of users, HCI designers consider the layout and organization of menus, and strive to
make them easy to understand and use.
- Icons: Icons are symbols or pictures that represent different actions or functions. To meet the
needs of users, HCI designers consider the design and placement of icons, and strive to make
them clear and easy to understand.
- Accessibility: Accessibility involves designing computer technology and user interfaces that are
accessible to a wide range of users, including those with disabilities. To meet the needs of
users, HCI designers consider the needs of different users and strive to make technology
accessible to all.
- Windows: Windows are graphical user interface (GUI) elements that enable users to view and
interact with different applications and information. To meet the needs of users, HCI designers
consider the layout and organization of windows, and strive to make them easy to use and
navigate.
- Pointers: Pointers are visual indicators, such as cursor arrows, that show users where they are
in an interface or document. To meet the needs of users, they should be designed to be easy
to see and to use, and should provide appropriate feedback to users.

Overall, HCI design should consider a variety of factors, including menus, icons, accessibility, windows,
and pointers, to meet the needs and requirements of individuals
13.4 Storing and Securing Data
Understand how data is stored in the cloud.

Cloud storage is a model of data storage in which the digital data is stored in logical pools, said to be
on "the cloud". The physical storage spans multiple servers (and often locations), and the physical
environment is typically owned and managed by a hosting company. These cloud storage providers
are responsible for keeping the data available and accessible, and the physical environment protected
and running. People and organizations buy or rent storage from the providers to store user,
organization, or application data.

In cloud storage, data is stored on servers that are managed by a cloud storage service provider. These
servers are typically located in data centers, and they are connected to a wide area network (WAN),
such as the internet. When a user wants to store data in the cloud, they can upload the data to the
cloud storage provider's servers using a computer or mobile device and an internet connection. The
data is then replicated across multiple servers in the data center, ensuring that it is stored redundantly
and can be retrieved if one of the servers fails. The cloud storage provider is responsible for
maintaining the security and availability of the data.

There are several advantages to using cloud storage:

- Accessibility: Cloud storage allows users to access their data from any device with an internet
connection.
- Cost: Cloud storage can be more cost-effective than buying and maintaining physical storage
devices.
- Scalability: It is easy to increase or decrease the amount of storage you use in the cloud, as
your needs change.
- Redundancy: Data stored in the cloud is typically stored redundantly, which means that it is
stored in multiple locations. This can help protect against data loss due to hardware failure or
other issues.
- Collaboration: Cloud storage makes it easy for team members to access and collaborate on
the same files.

However, there are also some potential disadvantages to consider:

- Security: There have been instances of data breaches at cloud storage providers, which can
compromise the security of your data.
- Dependence on internet connectivity: In order to access your data in the cloud, you need an
internet connection.
- Limited control: When you store data in the cloud, you are relying on the cloud storage
provider to maintain and protect it. You may have less control over how your data is managed
and used.
- Performance: The speed at which you can access your data in the cloud may depend on your
internet connection and the performance of the cloud storage provider's servers.

There are several ways to secure the data stored in the cloud:

- Encrypt your data: Encrypting your data can help protect it from unauthorized access, even
if someone is able to get access to the data in the cloud.
- Use strong passwords: Choose strong, unique passwords for your cloud accounts, and
enable two-factor authentication if it is available.
- Use a security tool: There are various security tools available that can help protect your
data in the cloud, such as firewall and antivirus software.
- Limit access to your data: Only give access to your data to people who need it, and be sure
to revoke access when it is no longer needed.
- Use a reputable cloud storage provider: Choose a cloud storage provider that has a good
track record for security.
- Keep your software and devices up to date: Make sure you are using the latest version of
your operating system and other software, and keep all of your devices up to date with the
latest security patches.

Securing the Data Stored in the Cloud

File encryption is a method of encoding data so that it can only be accessed by someone with a
decryption key. When a file is encrypted, the data is transformed into a scrambled, unreadable form.
In order to access the data, you must have the decryption key and use it to decode the file. This can
help protect the data from unauthorized access.

Password protection is another method of securing data. When you password-protect a file or folder,
you must enter a password in order to access the data. This can help prevent unauthorized access to
the data.

Both file encryption and password protection can be used to help secure data in cloud storage. For
example, a user might encrypt a file before uploading it to the cloud, and then protect the file with a
password. This can provide an extra layer of security for the data, as someone would need to know
both the decryption key and the password in order to access the data.

Database Management Systems (DBMS)

A database management system (DBMS) is a software program that allows users to create, update,
and manage a database. A database is a collection of data that is organized in a specific format, such
as a spreadsheet or table. A DBMS provides a way to input data into the database, retrieve data from
the database, and update or delete data in the database. It also allows users to create relationships
between different pieces of data and set up rules to ensure the data is stored correctly.

There are several types of DBMS, including relational database management systems (RDBMS), object-
oriented database management systems (OODBMS), and NoSQL database management systems.
Each type of DBMS is designed to handle different types of data and has different features and
capabilities.

Some common features of a database management system (DBMS) include:

- Data storage: A DBMS stores data in a structured format, such as a table or spreadsheet.
- Data organization: A DBMS allows users to organize data in a specific way, such as by creating
relationships between different pieces of data.
- Data manipulation: A DBMS allows users to input, retrieve, update, and delete data in the
database.
- Query language: A DBMS includes a query language that allows users to specify exactly which
data they want to retrieve from the database.
- Data security: A DBMS includes security features that allow users to control who can access
the database and what they can do with the data.
- Data integrity: A DBMS includes features that help ensure the integrity of the data, such as
constraints that prevent users from inputting invalid data.
- Data recovery: A DBMS includes features that allow users to recover data in the event of a
failure or data loss.
- Concurrency control: A DBMS includes features that allow multiple users to access and modify
the database simultaneously, while ensuring that the data remains consistent.

A DBMS performs several functions to help users manage and access data stored in a database:

- Data storage: A DBMS stores data in a structured format, such as a table or spreadsheet.
- Data organization: A DBMS allows users to organize data in a specific way, such as by creating
relationships between different pieces of data.
- Data manipulation: A DBMS allows users to input, retrieve, update, and delete data in the
database.
- Data definition: A DBMS includes tools that allow users to define the structure of the database,
including the data types and attributes of the data.
- Data integrity: A DBMS includes features that help ensure the integrity of the data, such as
constraints that prevent users from inputting invalid data.
- Data security: A DBMS includes security features that allow users to control who can access
the database and what they can do with the data.
- Data recovery: A DBMS includes features that allow users to recover data in the event of a
failure or data loss.
- Concurrency control: A DBMS includes features that allow multiple users to access and modify
the database simultaneously, while ensuring that the data remains consistent.

A database management system (DBMS) includes several features and functions that can be used to
control access to and views of the data in a database:

- Access control: A DBMS can be configured to allow or deny access to the database based on
user permissions. For example, a user with read-only permissions might be able to view the
data in the database, but not modify it.
- Views: A DBMS can be used to create views of the data in the database. A view is a virtual table
that presents a specific subset of the data in the database, or presents the data in a specific
format. Users can be granted access to specific views, rather than the entire database.
- Data masking: A DBMS can be configured to mask sensitive data in the database, such as
hiding certain fields or replacing the data with dummy values. This can be used to limit access
to sensitive data or protect it from unauthorized access.
- Encryption: A DBMS can be used to encrypt data in the database, making it unreadable without
the proper decryption key. This can be used to protect sensitive data from unauthorized
access.
- Auditing: A DBMS can be configured to track and log access to the database, allowing
administrators to monitor who is accessing the data and what they are doing with it. This can
be used to detect and prevent unauthorized access to the data.
13.5 Encryption
Encryption is the process of encoding data in such a way that it can only be accessed by someone
with a decryption key. The data is transformed into a scrambled, unreadable form, known as
ciphertext. In order to access the original data, the ciphertext must be decrypted using the decryption
key. This process helps protect the data from unauthorized access.

There are various types of encryption algorithms that can be used to encode data. The strength of an
encryption algorithm is determined by the length of the key and the complexity of the algorithm. The
longer and more complex the key and algorithm, the more secure the encryption.

Encryption is commonly used to protect data transmitted over the internet, such as emails and online
financial transactions. It is also used to secure data stored on devices, such as laptops and
smartphones, and in the cloud.

There are two types of Encryption; Symmetric and asymmetric encryption.

Symmetric Encryption

Symmetric encryption (also known as private-key encryption) is a type of encryption that uses the
same key to encrypt and decrypt the data. This means that both parties must have the same key in
order to communicate securely. Symmetric encryption is generally faster than asymmetric encryption,
but it requires that the key be exchanged securely between the parties beforehand.

Symmetric encryption is characterized by the following features and functions:

- Speed: Symmetric encryption is generally faster than asymmetric encryption, as it uses the
same key for both encryption and decryption.
- Key exchange: In order to use symmetric encryption, the parties must securely exchange the
secret key beforehand. This can be done using a secure channel, such as a face-to-face
meeting or a trusted courier.
- Same key for encryption and decryption: As the same key is used for both encryption and
decryption, symmetric encryption is relatively simple to use.
- Variable-length keys: Some symmetric encryption algorithms, such as Blowfish and Twofish,
use variable-length keys, which can be any length within a certain range. This can provide an
extra layer of security, as the key is harder to guess.
- Secure communication: Symmetric encryption can be used to securely transmit data over the
internet or other communication channels. It can also be used to store data securely on devices
or in the cloud.

Asymmetric encryption

Asymmetric encryption (also known as public-key encryption) is a type of encryption that uses two
different keys: a public key and a private key. The public key is used to encrypt the data, and the
private key is used to decrypt it. This allows for secure communication between two parties, even if
they have never met before and don't have a shared secret key.

It is characterized by the following features and functions:

- Two keys: Asymmetric encryption uses two different keys: a public key that is used to encrypt
the data, and a private key that is used to decrypt it.
- Key exchange: As the public key is made publicly available, it does not need to be exchanged
between the parties. However, the private key must be kept secret and must be securely
transmitted to the party that needs to decrypt the data.
- Secure communication: Asymmetric encryption can be used to securely transmit data over the
internet or other communication channels, even if the parties have never met before and don't
have a shared secret key.
- Digital signatures: Asymmetric encryption can be used to create digital signatures, which can
be used to verify the authenticity of a message or document.
- Strong security: Asymmetric encryption algorithms are generally considered to be more secure
than symmetric encryption algorithms, as they use two different keys and do not require the
key to be exchanged between the parties.

Both asymmetric and symmetric encryption can be used to protect data transmitted over the internet
or stored on devices. In many cases, a combination of both types of encryption is used, with symmetric
encryption being used to encrypt the actual data and asymmetric encryption being used to exchange
the symmetric key.

Certificate-based encryption

Certificate-based encryption is a type of encryption that uses a digital certificate to authenticate the
identity of the parties involved in a communication. A digital certificate is an electronic document that
is issued by a certification authority (CA) and contains information about the identity of the certificate
owner, as well as the public key of the owner.

In certificate-based encryption, the certificate is used to verify the identity of the sender and to
establish a secure communication channel. The sender's certificate is used to encrypt the data, and
the recipient's certificate is used to decrypt it. This ensures that the data is only accessible to the
intended recipient.

Certificate-based encryption is commonly used to secure data transmitted over the internet, such as
in online financial transactions or secure email communications. It provides an additional layer of
security, as it ensures that the parties involved in the communication are who they claim to be.

Certificate-based encryption is characterized by the following features and functions:

- Digital certificates: A digital certificate is an electronic document that is issued by a certification


authority (CA) and contains information about the identity of the certificate owner, as well as
the owner's public key.
- Public key infrastructure (PKI): A public key infrastructure (PKI) is a system that uses digital
certificates and certificate authorities (CAs) to verify the identity of the parties involved in a
communication and to establish a secure communication channel.
- Authentication: Certificate-based encryption is used to authenticate the identity of the parties
involved in a communication. The digital certificate is used to verify the identity of the sender
and to ensure that the data is only accessible to the intended recipient.
- Encryption: The sender's certificate is used to encrypt the data, and the recipient's certificate
is used to decrypt it. This ensures that the data is only accessible to the intended recipient.
- Public key certificates: A public key certificate (PKC) is a type of digital certificate that contains
the public key of the certificate owner and is used to establish a secure communication
channel. PKCs are commonly used in certificate-based encryption.

You might also like