Computer Networks Notes (III Bca)
Computer Networks Notes (III Bca)
UNIT I
NETWORKS:
A network is a set of devices (often referred to as nodes) connected by communication links. A node can
be a computer, printer, or any other device capable of sending and/or receiving data generated by other nodes on
the network.
Networks come in many sizes, shapes and forms, as we will see later. They are usually connected together
to make larger networks, with the Internet being the most well-known example of a network of networks.
There is considerable confusion in the literature between a computer network and a distributed system. The
key distinction is that in a distributed system, a collection of independent computers appears to its users as a single
coherent system. Usually, it has a single model or paradigm that it presents to the users. Often a layer of software
on top of the operating system, called middleware, is responsible for implementing this model. A well-known
example of a distributed system is the World Wide Web.
1. Business Applications
To distribute information throughout the company (resource sharing)
. sharing physical resources such as printers, and tape backup systems, is sharing information client-server
model. It is widely used and forms the basis of much network
usage. communication medium among [Link] (electronic mail),
which employees generally use for a great deal of daily communication. Telephone calls between employees
may be carried by the computer network
instead of by the phone company. This technology is called IP telephony or Voice over IP (VoIP) when
Internet technology is used. Desktop sharing lets remote workers see and interact with a graphical
computer screen doing business electronically, especially with customers and suppliers.
This new model is called e-commerce (electronic commerce) and it has grown rapidly in recent years.
2 Home Applications
person-to-person communication
electronic commerce
entertainment.(game playing,)
4 Social Issues
With the good comes the bad, as this new-found freedom brings with it many unsolved social, political,
and ethical issues. Social networks, message boards, content sharing sites, and a host of other applications
allow people to share their views with like-minded individuals. As long as the subjects are restricted to
technical topics or hobbies like gardening, not too many problems will arise.
The trouble comes with topics that people actually care about, like politics, religion, or sex. Views that
are publicly posted may be deeply offensive to some people. Worse yet, they may not be politically correct.
Furthermore, opinions need not be limited to text; high-resolution color photographs and video clips are easily
shared over computer networks. Some people take a live-and-let-live view, but others feel that posting certain
material (e.g., verbal attacks on particular countries or religions, pornography, etc.) is simply unacceptable and
that such content must be censored. Different countries have different and conflicting laws in this area. Thus,
the debate rages.
Computer networks make it very easy to communicate. They also make it easy for the people who run the
network to snoop on the traffic. This sets up conflicts over issues such as employee rights versus employer
rights. Many people read and write email at work. Many employers have claimed the right to read and possibly
censor employee messages, including messages sent from a home computer outside working hours. Not all
employees agree with this, especially the latter part. Another conflict is centered around government versus
citizen’s rights. A new twist with mobile devices is location privacy. As part of the process of providing
service to your mobile device the network operators learn where you are at different times of day. This allows
them to track your movements. They may know which nightclub you frequent and which medical center you
visit.
OSI or Open System Interconnection model was developed by International Standards Organization
(ISO). It gives a layered networking framework that conceptualizes how communications should be done between
heterogeneous systems. It has seven interconnected layers. The seven layers of the OSI Model are a physical
layer, data link layer, network layer, transport layer, session layer, presentation layer, and application layer,
as shown in the following diagram –
The physical layer, data link layer and the network layer are the network support layers. The layers manage
a physical transfer of data from one device to another. Session layer, presentation layer, and application layer are
the user support layers. These layers allow communication among unrelated software in dissimilar environments.
Transport layer links the two groups.
Physical Layer − Its function is to transmit individual bits from one node to another over a physical
medium.
Data Link Layer − It is responsible for the reliable transfer of data frames from one node to another
connected by the physical layer.
Network Layer − It manages the delivery of individual data packets from source to destination through
appropriate addressing and routing.
Transport Layer −It is responsible for delivery of the entire message from the source host to destination
host.
Session Layer − It establishes sessions between users and offers services like dialog control and
synchronization.
Presentation Layer − It monitors syntax and semantics of transmitted information through translation,
compression, and encryption.
Application Layer − It provides high-level APIs (application program interface) to the users.
This Reference Model is a four-layered suite of communication protocols. It was developed by the DoD
(Department of Defence) in the 1960s. It is named after the two main protocols that are used in the model,
namely, TCP and IP. TCP stands for "Transmission Control Protocol" and IP stands for "Internet
Protocol".
2. Internet Layer −It defines the protocols for logical transmission of data over the network. The main
protocol in this layer is Internet Protocol (IP) and it is supported by the protocols ICMP, IGMP, RARP, and ARP.
3. Transport Layer − It is responsible for error-free end-to-end delivery of data. The protocols defined here
are Transmission Control Protocol (TCP) and User Datagram Protocol (UDP).
4. Application Layer − This is the topmost layer and defines the interface of host programs with the
transport layer services. This layer includes all high-level protocols like Telnet, DNS, HTTP, FTP, SMTP, etc.
The following diagram shows the layers and the protocols in each of the layers −
OSI TCP/IP
The OSI model was developed first, and The protocols were created first and then
then protocols were created to fit the built the TCP/IP model.
network architecture’s needs.
The OSI model represents defines It does not mention the services,
administration, interfaces and interfaces, and protocols.
conventions. It describes clearly which
OSI TCP/IP
The protocols of the OSI model are better The TCP/IP model protocols are not
unseen and can be returned with another hidden, and we cannot fit a new protocol
appropriate protocol quickly. stack in it.
The smallest size of the OSI header is 5 The smallest size of the TCP/IP header is
bytes. 20 bytes.
Protocols are unknown in the OSI model In TCP/IP, returning protocol is not
and are returned while the technology difficult.
modifies.
UNIT II
Guided Media
It is defined as the physical medium through which the signals are transmitted. It is also known as Bounded media.
Twisted pair:
Twisted pair is a physical media made up of a pair of cables twisted with each other. A twisted pair cable is cheap
as compared to other transmission media. Installation of the twisted pair cable is easy, and it is a lightweight cable.
The frequency range for twisted pair cable is from 0 to 3.5KHz.
A twisted pair consists of two insulated copper wires arranged in a regular spiral pattern.
The degree of reduction in noise interference is determined by the number of turns per foot. Increasing the number
of turns per foot decreases noise interference.
Types of Twisted pair:
An unshielded twisted pair is widely used in telecommunication. Following are the categories of the unshielded
twisted pair cable:
o Category 1: Category 1 is used for telephone lines that have low-speed data.
o Category 2: It can support upto 4Mbps.
o Category 3: It can support upto 16Mbps.
o Category 4: It can support upto 20Mbps. Therefore, it can be used for long-distance communication.
o Category 5: It can support upto 200Mbps.
o It is cheap.
o Installation of the unshielded twisted pair is easy.
o It can be used for high-speed LAN.
Disadvantage:
o This cable can only be used for shorter distances because of attenuation.
A shielded twisted pair is a cable that contains the mesh surrounding the wire that allows the higher transmission
rate.
o The cost of the shielded twisted pair cable is not very high and not very low.
o An installation of STP is easy.
o It has higher capacity as compared to unshielded twisted pair cable.
o It has a higher attenuation.
o It is shielded that provides the higher data transmission rate.
Disadvantages
Coaxial Cable
o Coaxial cable is very commonly used transmission media, for example, TV wire is usually a coaxial cable.
o The name of the cable is coaxial as it contains two conductors parallel to each other.
o It has a higher frequency as compared to Twisted pair cable.
o The inner conductor of the coaxial cable is made up of copper, and the outer conductor is made up of
copper mesh. The middle core is made up of non-conductive cover that separates the inner conductor from
the outer conductor.
o The middle core is responsible for the data transferring whereas the copper mesh prevents from
the EMI(Electromagnetic interference).
1. Baseband transmission: It is defined as the process of transmitting a single signal at high speed.
2. Broadband transmission: It is defined as the process of transmitting multiple signals simultaneously.
Fibre Optic
o Fibre optic cable is a cable that uses electrical signals for communication.
o Fibre optic is a cable that holds the optical fibres coated in plastic that are used to send the data by pulses of
light.
o The plastic coating protects the optical fibres from heat, cold, electromagnetic interference from other types
of wiring.
o Fibre optics provide faster data transmission than copper wires.
o Core: The optical fibre consists of a narrow strand of glass or plastic known as a core. A core is a light
transmission area of the fibre. The more the area of the core, the more light will be transmitted into the
fibre.
o Cladding: The concentric layer of glass is known as cladding. The main functionality of the cladding is to
provide the lower refractive index at the core interface as to cause the reflection within the core so that the
light waves are transmitted through the fibre.
o Jacket: The protective coating consisting of plastic is known as a jacket. The main purpose of a jacket is to
preserve the fibre strength, absorb shock and extra fibre protection.
o Greater Bandwidth: The fibre optic cable provides more bandwidth as compared copper. Therefore, the
fibre optic carries more data as compared to copper cable.
o Faster speed: Fibre optic cable carries the data in the form of light. This allows the fibre optic cable to
carry the signals at a higher speed.
o Longer distances: The fibre optic cable carries the data at a longer distance as compared to copper cable.
o Better reliability: The fibre optic cable is more reliable than the copper cable as it is immune to any
temperature changes while it can cause obstruct in the connectivity of copper cable.
o Thinner and Sturdier: Fibre optic cable is thinner and lighter in weight so it can withstand more pull
pressure than copper cable.
Public Switched Telephone Network
Public Switched Telephone Network (PSTN) is an agglomeration of an interconnected network of telephone lines
owned by both governments as well as commercial organizations.
Properties of PSTN
UNIT III
Sliding window protocols are data link layer protocols for reliable and sequential delivery of data frames. The
sliding window is also used in Transmission Control Protocol.
In this protocol, multiple frames can be sent by a sender at a time before receiving an acknowledgment
from the receiver. The term sliding window refers to the imaginary boxes to hold frames. Sliding window method
is also known as windowing.
Working Principle
In these protocols, the sender has a buffer called the sending window and the receiver has buffer called the
receiving window.
The size of the sending window determines the sequence number of the outbound frames. If the sequence
number of the frames is an n-bit field, then the range of sequence numbers that can be assigned is 0 to 2 𝑛−1.
Consequently, the size of the sending window is 2 𝑛−1. Thus in order to accommodate a sending window size of
2𝑛−1, a n-bit sequence number is chosen.
The sequence numbers are numbered as modulo-n. For example, if the sending window size is 4, then the
sequence numbers will be 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, and so on. The number of bits in the sequence number is 2 to
generate the binary sequence 00, 01, 10, 11.
The size of the receiving window is the maximum number of frames that the receiver can accept at a time.
It determines the maximum number of frames that the sender can send before receiving acknowledgment.
Example
Suppose that we have sender window and receiver window each of size 4. So the sequence numbering of both the
windows will be 0,1,2,3,0,1,2 and so on. The following diagram shows the positions of the windows after sending
the frames and receiving acknowledgments.
The Sliding Window ARQ (Automatic Repeat reQuest) protocols are of two categories −
Go – Back – N ARQ
Go – Back – N ARQ provides for sending multiple frames before receiving the acknowledgment for the
first frame. It uses the concept of sliding window, and so is also called sliding window protocol. The
frames are sequentially numbered and a finite number of frames are sent. If the acknowledgment of a frame
is not received within the time period, all frames starting from that frame are retransmitted.
Selective Repeat ARQ
This protocol also provides for sending multiple frames before receiving the acknowledgment for the first
frame. However, here only the erroneous or lost frames are retransmitted, while the good frames are
received and buffered.
uses error control techniques to ensure that frames, i.e. bit streams of data, are transmitted from the source to the
destination with a certain extent of accuracy.
Errors
When bits are transmitted over the computer network, they are subject to get corrupted due to interference and
network problems. The corrupted bits leads to spurious data being received by the destination and are called errors.
Types of Errors
Errors can be of three types, namely single bit errors, multiple bit errors, and burst errors.
Single bit error − In the received frame, only one bit has been corrupted, i.e. either changed from 0 to 1 or
from 1 to 0.
Multiple bits error − In the received frame, more than one bits are corrupted.
Burst error − In the received frame, more than one consecutive bits are corrupted.
Error Control
Error detection − Error detection involves checking whether any error has occurred or not. The number of
error bits and the type of error does not matter.
Error correction − Error correction involves ascertaining the exact number of bits that has been corrupted
and the location of the corrupted bits.
For both error detection and error correction, the sender needs to send some additional bits along with the data bits.
The receiver performs necessary checks based upon the additional redundant bits. If it finds that the data is free
from errors, it removes the redundant bits before passing the message to the upper layers.
There are three main techniques for detecting errors in frames: Parity Check, Checksum, and Cyclic
Redundancy Check (CRC).
Parity Check
The parity check is done by adding an extra bit, called parity bit to the data to make a number of 1s either even in
case of even parity or odd in case of odd parity.
While creating a frame, the sender counts the number of 1s in it and adds the parity bit in the following way
In case of even parity: If a number of 1s is even then parity bit value is 0. If the number of 1s is odd then
parity bit value is 1.
In case of odd parity: If a number of 1s is odd then parity bit value is 0. If a number of 1s is even then
parity bit value is 1.
On receiving a frame, the receiver counts the number of 1s in it. In case of even parity check, if the count of 1s is
even, the frame is accepted, otherwise, it is rejected. A similar rule is adopted for odd parity check.
The parity check is suitable for single bit error detection only.
Checksum
Cyclic Redundancy Check (CRC) involves binary division of the data bits being sent by a predetermined divisor
agreed upon by the communicating system. The divisor is generated using polynomials.
Here, the sender performs binary division of the data segment by the divisor. It then appends the remainder
called CRC bits to the end of the data segment. This makes the resulting data unit exactly divisible by the
divisor.
The receiver divides the incoming data unit by the divisor. If there is no remainder, the data unit is assumed
to be correct and is accepted. Otherwise, it is understood that the data is corrupted and is therefore rejected.
Error correction techniques find out the exact number of bits that have been corrupted and as well as their
locations. There are two principle ways
Backward Error Correction (Retransmission) − If the receiver detects an error in the incoming frame, it
requests the sender to retransmit the frame. It is a relatively simple technique. But it can be efficiently used
only where retransmitting is not expensive as in fiber optics and the time for retransmission is low relative
to the requirements of the application.
Forward Error Correction − If the receiver detects some error in the incoming frame, it executes error-
correcting code that generates the actual frame. This saves bandwidth required for retransmission. It is
inevitable in real-time systems. However, if there are too many errors, the frames need to be retransmitted.
The four main error correction codes are
Hamming Codes
Binary Convolution Code
Reed – Solomon Code
Low-Density Parity-Check Code
UNIT IV
Routing is the process of establishing the routes that data packets must follow to reach the destination. In this
process, a routing table is created which contains information regarding routes that data packets follow. Various
routing algorithms are used for the purpose of deciding which route an incoming data packet needs to be
transmitted on to reach the destination efficiently.
Classification of Routing Algorithms
The routing algorithms can be classified as follows:
1. Adaptive Algorithms
2. Non-Adaptive Algorithms
3. Hybrid Algorithms
1. Adaptive Algorithms
These are the algorithms that change their routing decisions whenever network topology or traffic load changes.
The changes in routing decisions are reflected in the topology as well as the traffic of the network. Also known
as dynamic routing, these make use of dynamic information such as current topology, load, delay, etc. to select
routes. Optimization parameters are distance, number of hops, and estimated transit time.
Further, these are classified as follows:
Isolated: In this method each, node makes its routing decisions using the information it has without seeking
information from other nodes. The sending nodes don’t have information about the status of a particular link.
The disadvantage is that packets may be sent through a congested network which may result in delay.
Examples: Hot potato routing, and backward learning.
Centralized: In this method, a centralized node has entire information about the network and makes all the
routing decisions. The advantage of this is only one node is required to keep the information of the entire
network and the disadvantage is that if the central node goes down the entire network is done. The link state
algorithm is referred to as a centralized algorithm since it is aware of the cost of each link in the network.
Distributed: In this method, the node receives information from its neighbors and then takes the decision
about routing the packets. A disadvantage is that the packet may be delayed if there is a change in between
intervals in which it receives information and sends packets. It is also known as a decentralized algorithm as
it computes the least-cost path between source and destination.
2. Non-Adaptive Algorithms
These are the algorithms that do not change their routing decisions once they have been selected. This is also
known as static routing as a route to be taken is computed in advance and downloaded to routers when a router
is booted.
Further, these are classified as follows:
Flooding: This adapts the technique in which every incoming packet is sent on every outgoing line except
from which it arrived. One problem with this is that packets may go in a loop and as a result of which a node
may receive duplicate packets. These problems can be overcome with the help of sequence numbers, hop
count, and spanning trees.
Random walk: In this method, packets are sent host by host or node by node to one of its neighbors
randomly. This is a highly robust method that is usually implemented by sending packets onto the link which
is least queued.
3. Hybrid Algorithms
As the name suggests, these algorithms are a combination of both adaptive and non-adaptive algorithms. In this
approach, the network is divided into several regions, and each region uses a different algorithm.
Further, these are classified as follows:
Link-state: In this method, each router creates a detailed and complete map of the network which is then
shared with all other routers. This allows for more accurate and efficient routing decisions to be made.
Distance vector: In this method, each router maintains a table that contains information about the distance
and direction to every other node in the network. This table is then shared with other routers in the network.
The disadvantage of this method is that it may lead to routing loops.
Difference between Adaptive and Non-Adaptive Routing Algorithms
The main difference between Adaptive and Non-Adaptive Algorithms is:
Adaptive Algorithms are the algorithms that change their routing decisions whenever network topology or
traffic load changes. It is called Dynamic Routing. Adaptive Algorithm is used in a large amount of data, highly
complex network, and rerouting of data.
Non-Adaptive Algorithms are algorithms that do not change their routing decisions once they have been
selected. It is also called static Routing. Non-Adaptive Algorithm is used in case of a small amount of data and a
less complex network.
May give the shortest path. Always gives the shortest path.
To establish a reliable service between two machines on a network, transport protocols are implemented, which
somehow resembles the data link protocols implemented at layer 2. The major difference lies in the fact that the
data link layer uses a physical channel between two routers while the transport layer uses a subnet.
Following are the issues for implementing transport protocols−
Types of Service
The transport layer also determines the type of service provided to the users from the session layer. An error-free
point-to-point communication to deliver messages in the order in which they were transmitted is one of the key
functions of the transport layer.
Error Control
Error detection and error recovery are an integral part of reliable service, and therefore they are necessary to
perform error control mechanisms on an end-to-end basis. To control errors from lost or duplicate segments, the
transport layer enables unique segment sequence numbers to the different packets of the message, creating virtual
circuits, allowing only one virtual circuit per session.
Flow Control
The underlying rule of flow control is to maintain a synergy between a fast process and a slow process. The
transport layer enables a fast process to keep pace with a slow one. Acknowledgements are sent back to manage
end-to-end flow control. Go back N algorithms are used to request retransmission of packets starting with packet
number N. Selective Repeat is used to request specific packets to be retransmitted.
Connection Establishment/Release
The transport layer creates and releases the connection across the network. This includes a naming mechanism so
that a process on one machine can indicate with whom it wishes to communicate. The transport layer enables us to
establish and delete connections across the network to multiplex several message streams onto one communication
channel.
Multiplexing/De multiplexing
The transport layer establishes a separate network connection for each transport connection required by the session
layer. To improve throughput, the transport layer establishes multiple network connections. When the issue of
throughput is not important, it multiplexes several transport connections onto the same network connection, thus
reducing the cost of establishing and maintaining the network connections.
When several connections are multiplexed, they call for demultiplexing at the receiving end. In the case of the
transport layer, the communication takes place only between two processes and not between two machines. Hence,
communication at the transport layer is also known as peer-to-peer or process-to-process communication.
When the transport layer receives a large message from the session layer, it breaks the message into smaller units
depending upon the requirement. This process is called fragmentation. Thereafter, it is passed to the network layer.
Conversely, when the transport layer acts as the receiving process, it reorders the pieces of a message before
reassembling them into a message.
Addressing
Transport Layer deals with addressing or labelling a frame. It also differentiates between a connection and a
transaction. Connection identifiers are ports or sockets that label each frame, so the receiving device knows which
process it has been sent from. This helps in keeping track of multiple-message conversations. Ports or sockets
address multiple conservations in the same location.
UNIT V
An application layer protocol defines how the application processes running on different systems, pass the
messages to each other.
DNS is a TCP/IP protocol used on different platforms. The domain name space is divided into three different
sections: generic domains, country domains, and inverse domain.
Generic Domains
Label Description
Country Domain
The format of country domain is same as a generic domain, but it uses two-character country abbreviations (e.g.,
us for the United States) in place of three character organizational abbreviations.
Inverse Domain
The inverse domain is used for mapping an address to a name. When the server has received a request from the
client, and the server contains the files of only authorized clients. To determine whether the client is on the
authorized list or not, it sends a query to the DNS server and ask for mapping an address to the name.
Working of DNS
o DNS is a client/server network communication protocol. DNS clients send requests to the. server while
DNS servers send responses to the client.
o Client requests contain a name which is converted into an IP address known as a forward DNS lookups
while requests containing an IP address which is converted into a name known as reverse DNS lookups.
o DNS implements a distributed database to store the name of all the hosts available on the internet.
o If a client like a web browser sends a request containing a hostname, then a piece of software such as DNS
resolver sends a request to the DNS server to obtain the IP address of a hostname. If DNS server does not
contain the IP address associated with a hostname, then it forwards the request to another DNS server. If IP
address has arrived at the resolver, which in turn completes the request over the internet protocol.
Symmetric Key Algorithms
Symmetric key algorithms are a type of cryptographic technique that uses a shared secret key for both encryption
and decryption. This means that the same key is used to encode and decode the message. Symmetric key
algorithms are generally faster and more efficient than asymmetric key algorithms, but they require that the sender
and receiver of a message share a secret key.
The same key is used for both encryption and decryption − In symmetric key algorithms, the same key
is used to both encrypt and decrypt the message. This means that the sender and receiver of a message must
share the same secret key in order to communicate securely.
Symmetric key algorithms are faster and more efficient than asymmetric key algorithms −
Symmetric key algorithms are generally faster and more efficient than asymmetric key algorithms, as they
do not require the use of complex mathematical operations such as exponentiation. This makes them well-
suited for applications that require fast encryption and decryption, such as securing communication over
the internet.
Symmetric key algorithms are less secure than asymmetric key algorithms − While symmetric key
algorithms are generally faster and more efficient than asymmetric key algorithms, they are also less
secure. This is because the same key is used for both encryption and decryption, which means that if the
key is compromised, the security of the entire system is compromised.
Overall, symmetric key algorithms are an important type of cryptographic technique that are used to secure
communication and protect data. While they are generally faster and more efficient than asymmetric key
algorithms, they are also less secure and require that the sender and receiver of a message share a secret key.
The cryptographic strength of a symmetric key algorithm refers to its ability to resist attacks and protect the
confidentiality of the information it is used to encrypt. The cryptographic strength of a symmetric key algorithm is
determined by a variety of factors, including −
Key size − The size of the key used in a symmetric key algorithm is a major determinant of its
cryptographic strength. In general, the larger the key size, the stronger the algorithm.
Block size − The block size of a symmetric key algorithm refers to the size of the blocks of data that are
encrypted and decrypted using the algorithm. A larger block size can increase the cryptographic strength of
the algorithm.
Number of rounds − The number of rounds in a symmetric key algorithm refers to the number of times
that the encryption and decryption process is repeated. A larger number of rounds can increase the
cryptographic strength of the algorithm.
Resistance to attacks − The resistance of a symmetric key algorithm to attacks, such as brute-force attacks
or differential cryptanalysis, is another factor that determines its cryptographic strength. Algorithms that
are resistant to these types of attacks are generally considered to be stronger.
Overall, the cryptographic strength of a symmetric key algorithm is determined by a combination of these and
other factors. Stronger algorithms are generally more resistant to attacks and more effective at protecting the
confidentiality of the information they are used to encrypt.
Block ciphers − Block ciphers are symmetric key algorithms that operate on fixed-size blocks of data and
use a secret key to encrypt and decrypt the data. Examples of block ciphers include the Advanced
Encryption Standard (AES) and Blowfish.
Stream ciphers − Stream ciphers are symmetric key algorithms that operate on a stream of data and use a
secret key to encrypt and decrypt the data. Stream ciphers are generally faster and more efficient than block
ciphers, but they are also generally considered to be less secure.
Feistel ciphers − Feistel ciphers are a type of block cipher that are based on a structure known as a Feistel
network. They are widely used in symmetric key algorithms and are known for their efficiency and ease of
implementation.
Substitution-permutation ciphers − Substitution-permutation ciphers are a type of block cipher that use
both substitution and permutation operations to encrypt and decrypt data. They are known for their strong
cryptographic properties and are used in many modern symmetric key algorithms.
Digital Signature
A digital signature is an electronic, encrypted, stamp of authentication on digital information such
as email messages, macros, or electronic documents.