Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 79

2.

Cryptography
Er. Shankar Bhattarai, MScEng (IoE,TU)
Cryptography
• The word ‘cryptography’ was coined by combining two Greek words,
‘Krypto’ meaning hidden and ‘graphene’ meaning writing.
• Cryptography (crypto)– study of how to mathematically encode &
decode messages.
• The art and science of concealing the messages to introduce secrecy
in information security is recognized as cryptography.
• Cryptography is the science of writing in secret code and is an ancient
art; the first documented use of cryptography in writing dates back to
circa 1900 B.C.
Cryptography
• Some experts argue that cryptography appeared spontaneously
sometime after writing was invented, with applications ranging from
diplomatic missives to war-time battle plans.
• It provides more efficient way of security by encrypting our data.
• It allows the sender and receiver to communicate more securely.

Cryptanalysis
The art and science of breaking the cipher text is known as
cryptanalysis.
History of Cryptography
History of Cryptography
History of Cryptography
Types of Cryptography
Symmetric encryption
Symmetric key cryptography has following properties:
1) The encryption key is trivially related to the decryption key, in that they may
be identical or there is a simple transformation to go between the two keys.
2) The keys, in practice, represent a shared secret between two or more parties
that can be used to maintain a private information link
3) A secret key, which can be a number, a word, or just a string of random
letters, is applied to the text of a message to change the content in a particular
way
Other terms for symmetric-key encryption are secret-key, single-key,
sharedkey, one-key, and private-key encryption
Symmetric encryption
Symmetric key systems are cryptosystems where the same key is used for both
encryption and decryption. This class of cryptosystems is important in modern
cryptography because, in general, symmetric key cryptosystems are much faster
than public key cryptosystems.
Symmetric encryption scheme has five components:
i) Plaintext
ii) Encryption algorithm
iii) Secret Key
iv) Ciphertext
v) Decryption Algorithm
Symmetric Cryptography
Classification of symmetric key cryptography:
• Stream Cipher
A stream cipher is a symmetric key cipher where plaintext digits are
combined with a pseudorandom cipher digit stream (keystream). Example :
RC4, A5/1, BLOWFISH, etc.
The encryption code can be cracked if someone finds
Out the symmetric key. But this problem can be overcome with the
Diffie-Hellman algorithm. In the Diffie-Hellman key exchange or
Agreement algorithm, the sender and receiver must agree on a
Symmetric key using this technique. This key can then be used for
An encryption or decryption purpose.
Symmetric Cryptography
• Block Cipher
Block ciphers in general process the plaintext in relatively large
blocks at a time. The encryption function is the same for every
block.
Blocks of bits (e.g. 256) encrypted at a time
Examples of several algorithms:
• Data Encryption Standard (DES)
• Triple DES
• Advanced Encryption Standard (AES)
Stream Cipher
SOME IMPORTANT STREAM CIPHER:
RC4 (RIVEST CIPHER 4)
A5/1
RIVEST CIPHER(RC4)
• RC4 is a very popular cipher from RSA Data Security, Inc.
• It was designed by Ron Rivest of M.I.T. It is a trade secret of RSA, but was
leaked to a number of mailing lists and newsgroups in the early-mid 90’s.
• RC4 is used in a number of applications currently. One of its most
important uses is in SSL (also known as TLS), which is used to secure most
of the worlds electronic commerce over the world wide web.
• It is also used in WEP, the IEEE 802.11 wireless networking security
standard.
• It can also be found in a number of other applications including email
encryption products.
RC4
• RC4 is a binary additive stream cipher. It uses a variable sized key that can
range between 8 and 2048 bits in multiples of 8 bits (1 byte).
• This means that the core of the algorithm consists of a keystream
generator function. This function generates a sequence of bits that are
then combined with the plaintext with XOR.
• Decryption consists of re-generating this keystream and XOR'ing it to the
ciphertext, undoing it.
• The other major part of the algorithm is the initialization function,n which
accepts a key of variable size and uses it to create the initial state of the
keystream generator. This is also known as the key schedule algorithm.
RC4
Key Schedule Algorithm (KSA)
The Key Schedule Algorithm of RC4 is shown in Algorithm 1.
j=0
for i = 0 to 255 do
j = j + S[i] + K[i] mod 256
swap(S[i], S[j])
end for
RC4 Key Schedule Algorithm
RC4
Pseudo Random Generation Algorithm (PRGA)
Set i and j back to 0
for i = i +1 to length of plain text
j=j + s[i] mod 256
swap (s[i],s[j])
t= s[i] + s[j] mod 256
keystream = s[t]
end for
RC4
10110110 (text)
XOR 01010101 (key)
11100011

True (1) A False(0) B Result


0 0 0
0 1 1
1 0 1
1 1 0

XOR= AB’ + A’B


A5/1
• A5/1 was developed in 1987 .It is mainly used by European countries
and A5/2 is used other countries. A5/2 was developed in 1989.
• A5/1 is a stream cipher used to provide over-the-air communication
privacy in the GSM cellular telephone standard. It is one of seven
algorithms which were specified for GSM use.
• It was initially kept secret, but became public knowledge through
leaks and reverse engineering.
A5/1
• GSM phone conversation:
Sequence of frames
• One 228 bit = frame is sent in 4.6 millisecond, 114 bits for
communication in each direction.
• A5/1 produces 228 bits to XOR with the plaintext in each frame
• Combination of 3 linear feedback shift registers (LFSRs)
• Each register has an associated clocking bit.
• The registers are clocked in a stop/go fashion using a majority rule.
A5/1
The A5/1 stream cipher uses Combination of 3 linear
feedback shift registers (LFSRs). A register is clocked if its
clocking bit (orange) agrees with the clocking bit of one
or both of the other two registers.

At each cycle, the clocking bit of all three registers is


examined and the majority bit is determined.
A5/1
Block Cipher
• A block cipher is so-called because the scheme encrypts one fixed-size
block of data at a time.
• The most common construct for block encryption algorithms is the
Feistel cipher, named for cryptographer Horst Feistel (IBM).
• Padding in Block Cipher
• Block ciphers process blocks of fixed sizes (say 64 bits). The length of
plaintexts is mostly not a multiple of the block size. For example, a
150-bit plaintext provides two blocks of 64 bits each with third block
of balance 22 bits. The last block of bits needs to be padded up. The
process of adding bits to the last block is referred to as padding.
Feistel cipher
Feistel cipher is a symmetric structure used in the construction of block ciphers,
named after the German-born physicist and cryptographer Horst Feistel who
did pioneering research while working for IBM (USA)
It is also commonly known as a Feistel network.
The plain text is divided into the blocks of a fixed size and only one block is
processed at a time. So, the input to encryption algorithm is a plain text block
and a key K.
Generally, 16 rounds are performed in Feistel cipher.
Typical block size of Feistel cipher is 64-bit but modern block cipher uses 128-
bit block, but the larger block size can reduce the execution speed of encryption
and decryption.
Feistel cipher
The plain text block is divided into two equal halves
which we will denote as a LE1 as the left half of the plain
text block and RE1 as the right half of the plain text
block. Now, both these halves of the plain text block (LE1
& RE1) undergoes multiple rounds to produce ciphertext
block.

In each round, the encryption function is applied on the


right half REi of the plaintext block along with the key Ki.
The result of this encryption function is then XORed with
the left half LEi. The result of XOR function becomes the
new right half for next round REi+1. Whereas, the old
right half REi becomes the new left half LEi+1 for the next
round as you can see in the figure.
Feistel cipher
Components :
Block Size : Larger block size, more security
Key size: larger key size means more secure but may decrease the
speed of encryption/ decryption
No of rounds: more round , more secure
Subkey generator algorithm : more complex algorithm, harder for
attacker to steal data
Function/ round Function: more complex function, harder for the
cryptanalyst to attack
Data Encryption Standard (DES)
• Data Encryption Standard (DES) is the symmetric block cipher which
encrypts a 64-bit plain text in a 64-bit ciphertext. The DES was introduced
in the early 1970s at IBM and based on an earlier design by Horst Feistel,
the algorithm was submitted to the National Bureau of Standards (NBS)
Initially, DES was only used in financial applications but later it was
accepted as the cryptographic algorithm by other organizations too.
• Being a symmetric cipher the same key is used in encryption and
decryption process of DES.
• DES is an implementation of a Feistel Cipher. It uses 16 round Feistel
structure.
Data Encryption Standard (DES)
• Data Encryption Standard is a symmetric block cipher which takes the
input of 64-bit plain text along with 64-bit key and process it, to
generate the 64-bit ciphertext.
• The block size is 64-bit. Though, key length is 64-bit, DES has an
effective key length of 56 bits, since 8 of the 64 bits of the key are not
used by the encryption algorithm (function as check bits only).
• Total of 8 bytes; in each byte, the 8th bit is a parity-check bit
Data Encryption Standard (DES)
DES Algorithm
1.In the first step, the 64 bit plain text block is handed
over to an initial Permutation (IP) function.
2.The initial permutation performed on plain text.
3.Next the initial permutation (IP) produces two
halves of the permuted block; says Left Plain Text
(LPT) and Right Plain Text (RPT).
4.Now each LPT and RPT to go through 16 rounds of
encryption process.
5.In the end, LPT and RPT are rejoined and a Final
Permutation (FP) is performed on the combined block
6.The result of this process produces 64 bit cipher
text.

Left Circular Shift


–shift one position if i=1,2,9 or 16
-shift two positions otherwise
In each the encryption round
• Application of Feistel Block Cipher.
• Expansion permutation (EP) is
performed on the 32-bit RPT which
transforms it from 32-bit to 48-bit.
The 32-bit LPT is untouched during
the process.
• S-Box Substitution: the input 48-bit
block is transformed to 32-bit block
Data Encryption Standard (DES)
Initial and Final Permutation
The initial and final permutations are straight
Permutation boxes (P-boxes) that are inverses of each
other. They have no cryptography significance in DES.
The initial and final permutations are shown as follows
Data Encryption Standard (DES)
Decryption
• The same Data Encryption Standard algorithm used for encrypting the plain
text is also used to decrypting the ciphertext. But the algorithm is reversed,
such as the initial and final permutation events are reversed. Even the
sequence of the subkeys applied in 16 rounds of DES are also reversed.
Double DES (2DES)
• Double DES is a encryption technique which uses two instance of DES
on same plain text.
Triple DES (3DES)
Triple DES:
• Triple DES is a encryption technique which uses three instance of DES
on same plain text.
Advanced Encryption Standard (AES)
• Advanced Encryption Standard (AES) was introduced by NIST in 2001 is
a symmetric block cipher which overcomes the key size weakness of
DES.
• AES comes with the variable key sizes i.e. 128-bit key, 192-bit key and a
256-bit key.
• AES does not follow the Feistel structure in fact it operates on entire
plaintext block at once instead of dividing them into two halves.
• AES cipher intakes the 128-bit plain text block accompanied by a 128-
bit key to generate cipher text block of 128-bit.
• Decryption consists of inverse steps.
Advanced Encryption Standard (AES)
• AES basically repeats 4 major functions to encrypt data. It takes 128
bit block of data and a key and gives a ciphertext as output.The
functions are:
I. Sub Bytes
II.Shift Rows
III.Mix Columns
IV.Add Key
• AES operates on an entire block of plain text in the form of a single
matrix at each round which includes substitution and permutation.
AES has
Block size: 128 bit (but also 192 or 256 bit)
Key length: 128, 192, or 256 bit
Number of rounds: 10, 12 or 14
Key scheduling: 44, 52 or 60 subkeys having length = 32 bit
The larger the number of keys the more secure will be the data. The time taken
by s/w to encrypt will increase with no. of rounds.
Advanced Encryption Standard (AES)
AES
Binary Digit (Bits) = 0 or 1
1 Byte = Group of 8 bits
1 word = 4 bytes = 32 Bits
Block size = 128 bits = 4 words = 4*32 bits
In each state : 16 Bytes (4*4 Matrix)
Substitution Byte (S-Box) in AES
Substitute Bytes: In this step, every bytes of cell (each component of 4x4 matrix) is divided into two half.
Each half of 4 bits represents hexadecimal value. First 4 bits’ value represents rows and next 4 bits’ value
represents column of 16x16 S Box. Where we can find the required value located by row no. and column
No.

0011 0100
34
Advanced Encryption Standard (AES)
Shift Rows
• In this step rows of the block are cylindrically shifted in left direction.
• 1st row is unchanged
• 2nd row does 1 byte circular shift to left
• 3rd row does 2 byte circular shift to left
• 4th row does 3 byte circular shift to left
• Mix Column : substitution that uses Galois Fields, corps de Galois,
GF(28) arithmetic, by multiplying that column with a matrix in a
particular field (Galois Field).
Add Round Key
• XOR state with 128 XOR state with 128-bits of the round key bits of
the round key
AES Example Encryptions
• The main advantage of symmetric encryption over asymmetric
encryption is that it is fast and efficient for large amounts of data; the
disadvantage is the need to keep the key secret - this can be especially
challenging where encryption and decryption take place in different
locations, requiring the key to be moved safely between locations.
With 128 bit: 2128 = 3.4x 1038 possible keys (A PC that tries 255 keys per
second needs 149 billion years to break AES)
192 bit: 2192 = 6.2x 1057 possible keys
256 bit: 2256 = 1.1x 1077 possible keys
Probably AES will stay secure for at least 20 years
Public-key algorithms are based
on mathematical functions and
are asymmetric in nature,
involving the use of two keys, as
opposed to conventional single
key encryption.
Knapsack Algorithm
• Developed by Ralph Markle and Martin Hellman in 1978
• First general public key algorithm
• As it is a Public key cryptography, it needs two different keys. One is
Public key which is used for Encryption process and the other one is
Private key which is used for Decryption process.
• Two different knapsack problems in which one is easy and other one is
hard.
• The easy knapsack is used as the private key and the hard knapsack is
used as the public key. The easy knapsack is used to derived the hard
knapsack.
Knapsack Algorithm
• For the easy knapsack, we will choose a Super Increasing knapsack problem.
• Super increasing knapsack is a sequence in which every next term is greater than the sum of all preceding
terms.
Eg. {1, 2, 4, 10, 20, 40} is a super increasing as

1<2, 1+2<4, 1+2+4<10, 1+2+4+10<20 and 1+2+4+10+20<40.

Derive the Public key


Step-1:
Choose a super increasing knapsack {1, 2, 4, 10, 20, 40} as the private key.
Step-2:
Choose two numbers n and m. Multiply all the values of private key by the number n and then find modulo m. The value of m
must be greater then the sum of all values in private key, for example 110. And the number n should have no common factor
with m, for example 31.
Step-3:
Calculate the values of Public key using m and n.
M=110, n= 31
Knapsack Algorithm
Public key = Private_key*n mod m
Hence we get,
1x31 mod(110) = 31
2x31 mod(110) = 62
4x31 mod(110) = 14
10x31 mod(110) = 90
20x31 mod(110) = 70
40x31 mod(110) = 30
Thus, our public key is {31, 62, 14, 90, 70, 30}
And Private key is {1, 2, 4, 10, 20, 40}.
Knapsack Algorithm
Process of encryption and decryption 100100 {31, 62, 14, 90, 70, 30}
Lets our plain text is 100100111100101110 1x31+0x62+0x14+1x90+0x70+0x30
= 121
Encryption : 111100 {31, 62, 14, 90, 70, 30}
As our knapsacks contain six values, so we 1x31+1x62+1x14+1x90+0x70+0x30
will split our plain text in a groups of six: = 197
100100 111100 101110 101110 {31, 62, 14, 90, 70, 30}
1x31+0x62+1x14+1x90+1x70+0x30
Multiply each values of public key with the = 205
corresponding values of each group and So, our cipher text is 121 197 205.
take their sum.
Knapsack Algorithm
• Decryption :
• The receiver receive the cipher text which has to be decrypt. The receiver
also knows the values of m and n.
• So, first we need to find the n^-1, which is multiplicative inverse of n mod m
i.e.
n * x-1 mod(m) = 1 (euclidian formula)
31 * x-1 mod(110) = 1
x^-1 = 71

Now, we have to multiply 71 with each block of cipher text take modulo m.
121 x 71 mod(110) => 8591 mod (110)=> 11
Ci*X-1*mod(m)
Knapsack Algorithm
• Then, we will have to make the sum of 11 from the values of private key
{1, 2, 4, 10, 20, 40} i.e.,
1+10=11 so make that corresponding bits 1 and others 0 which is 100100 among 6 bits
(because we have 6 value in our key).
Similarly,

197 x 71 mod(110) = 17
1+2+4+10=17 = 111100

And, 205 x 71 mod(110) = 35


1+4+10+20=35 = 101110
After combining them we get the decoded text.
100100111100101110 which is our plain text.
RSA
• The first public key cryptosystem invented was developed and named
after its creators Ron Rivest, Adi Shamir and Leonard Adleman in 1977.
• Since this time it has reigned supreme as the most widely accepted and
implemented general-purpose approach to public-key encryption.
• The RSA cryptosystem is a relatively strong security, and what makes it
rather impressive is that since the system has been implemented in
1978 to till date, to this day has not been broken.
• To break the system a user must be able to factor a very large composite
number which is the product of two large prime numbers.
• Its security is based on the difficulty of factoring large integers.
RSA
1. Select two large prime numbers, P and Q. The prime numbers need to be
large so that they will be difficult for someone to figure out.
2. Calculate N = P∗Q
3. Calculate the toitient function ϕ(n) = (P-1)*(Q-1);
4. Select the public key (i.e. encryption key) E such that it is between 1 < E <
ϕ(n) and not a factor of ϕ(n)
5. Select the private key (i.e. the decryption key) D such that the following
equation is true : (D*E) mod ϕ(n)=1
6. Public Key = (E, N)
7. Private Key = (D,N)
RSA
Encryption Formula
Consider a sender who sends the plain text message to someone whose public key is (n,e).
To encrypt the plain text message in the given scenario, use the following syntax −

C = PTE mod N / p= plain text, c= cipher text


Eg: Encryption key (5,14)
Text = B, assume B -> 2
=25 (mod 14)
=32 mod (14)
=4
Cipher text = 4
RSA
Decryption Formula
The decryption process is very straightforward and includes analytics for
calculation in a systematic approach. Considering receiver C has the private key
d, the result modulus will be calculated as −
Private Key (D,N) = (11,14)
D = 11, N = 14, C = 4
Plaintext = CTD mod N
= 411 (mod 14)
=4194304 (mod 14)
= 2 -> B
RSA
Source: Youtube/Simple Snippets
• Public key ( E,N) = (5,14)
• Private Key (D,N) = (11,14)
• PT= B => 2
Diffie-Hellman key exchange
• Whitfield Diffie (1944), graduated in mathematics in 1965, and started to be obsessed
with the key distribution problem - he realized that whoever could find a solution of
this problem would go to history as one of the all-time greatest cryptographers.
• In 1974 Diffie convinced Martin Hellman (1945), a professor in Stanford, to work
together on the key distribution problem - Diffie was his graduate student.
• In 1975 they got a basic idea that the key distribution
• The Diffie-Hellman key exchange was first established in 1976 during a collaboration
between its creators Whitfield Diffie and Martin Hellman
• It was the first practical method for establishing a shared secret over an unprotected
communications channel.
• It was considered the first major milestone in public key cryptography
Diffie-Hellman key exchange
• Diffie-Hellman key exchange is frequently implemented in security
protocols such as TLS, IPsec, SSH, PGP, and many others.
Source: Youtube/Simple Snippets
Source: Youtube/Simple Snippets
Digital signature
Digital signature
• The public key is available to everyone. The private key is known only by
the owner and can’t be derived from the public one. When something is
encrypted with the public key, only the corresponding private key can
decrypt it. Moreover, when something is encrypted with the private key,
then anyone can verify it with the corresponding public key.
• A digital signature is a mathematical technique used to validate the
authenticity and integrity of a message, software or digital document. As
the digital equivalent of a handwritten signature or stamped seal, a digital
signature offers far more inherent security, and it is intended to solve the
problem of tampering and impersonation in digital communications.
Digital signature
• The originator of a message uses a signing key (Private Key) to sign
the message and send the message and its digital signature to a
recipient.
• The recipient uses a verification key (Public Key) to verify the origin
of the message and that it has not been tampered with while in
transit
Digital signature
Digital signature

• Digital signatures are based on public key cryptography, also known as


asymmetric cryptography. Using a public key algorithm, such as RSA, one can
generate two keys that are mathematically linked: one private and one public.
• Digital signatures work through public key cryptography's two mutually-
authenticating cryptographic keys. The individual who is creating the digital
signature uses their own private key to encrypt signature-related data; the only
way to decrypt that data is with the signer's public key.
• Sender also computes a hash function of the message and then sends this after
encrypting it using its own private key. This is how digital signatures are
authenticated.
• Receiver recompute the hash function of the message it has received and compare
the two.
Digital signature

• Digital signatures are like electronic “fingerprints.” In the form of a


coded message, the digital signature securely associates a signer with
a document in a recorded transaction. Digital signatures use a
standard, accepted format, called Public Key Infrastructure (PKI), to
provide the highest levels of security and universal acceptance. They
are a specific signature technology implementation of electronic
signature (eSignature).
• When a signer electronically signs a document, the signature is
created using the signer’s private key, which is always securely kept by
the signer.
Digital signature

Hashing
• Hash function coverts data of arbitrary length to a fixed length. This process is
often referred to as hashing the data.
• In general, the hash is much smaller than the input data, hence hash functions
are sometimes called compression functions.
• Since a hash is a smaller representation of a larger data, it is also referred to as a
digest.
• Hash function with n bit output is referred to as an n-bit hash function. Popular
hash functions generate values between 160 and 512 bits
• Message Digest 5 (MD5)was most popular and widely used hash function , Next
is Secure Hash Function (SHA)
• Nonrepudiation
• Nonrepudiation is the assurance that someone cannot deny
something. Non-repudiation is a legal concept that is widely used in
information security and refers to a service, which provides proof of
the origin of data and the integrity of the data.
Public Key Infrastructure 
• Public Key Infrastructure (PKI) is a technology for
authenticating users and devices in the digital world. The
basic idea is to have one or more trusted parties digitally
sign documents certifying that a particular cryptographic key
belongs to a particular user or device. The key can then be
used as an identity for the user in digital networks.
• Data tampering is the act of deliberately modifying (destroying,
manipulating, or editing) data through unauthorized channels.
Certificate Authority
• The trusted party signing the document associating the key with the
device is called a certificate authority (CA). The certificate authority
also has a cryptographic key that it uses for signing these documents.
These documents are called certificates.
Public Key Infrastructure
• A public key infrastructure relies on digital signature technology,
which uses public key cryptography. The basic idea is that the secret
key of each entity is only known by that entity and is used for signing.
This key is called the private key. There is another key derived from it,
called the public key, which is used for verifying signatures but cannot
be used to sign. This public key is made available to anyone, and is
typically included in the certificate document.
Public Key Infrastructure
Secure Web Sites - HTTPS
• The most familiar use of PKI is in SSL certificates. SSL (Secure Sockets
Layer) is the security protocol used on the web when you fetch a page
whose address begins with https:. TLS (Transport Layer Security) is a
newer version of the protocol. In practice, most websites now use the
new version.
• With HTTPS, certificates serve to identify the web site you are connecting
to, to ensure that no-one can eavesdrop on your connection or, for
example, inject fraudulent wire transfers or steal credit card numbers.
• prevent man-in-the-middle attacks.
HTTPS
• HTTPS stands for Hypertext Transfer Protocol over Secure Socket
Layer, Or HTTP over SSL is a web protocol developed by Netscape.
• HTTPS is a combination of HTTP and SSL/TLS protocols.
• HTTPS uses one-time encryption key to encrypt data send to and
receive from the server.
• The 'S' at the end of HTTPS stands for 'Secure'. It means all
communications between your browser and the website are
encrypted.
HTTPS
• HTTPS pages typically use one of two secure protocols to encrypt
communications.
– SSL (Secure Sockets Layer)
– TLS (Transport Layer Security)
HTTPS
• When you request a HTTPS connection to a webpage , the website
will initially send its SSL certificate to your browser.
• This certificate contains the public key needed to begin the secure
session.
• Based on this initial exchange, your browser and the website then
initiate the 'SSL handshake'. The SSL handshake involves the
generation of shared secrets to establish a uniquely secure
connection between yourself and the website.
• An SSL certificate is by far the best and easiest solution to secure
websites and the data transmitted through them from getting stolen
or hacked. The acronym “SSL” stands for Secure Socket Layer and is
referring to the layer that the security protocol takes place on. In
laymen’s terms, it secures your websites with encryption.
• When a browser attempts to access a website that is secured by an SSL
certificate, the browser recognizes the SSL and then the web server
and browser establishes a secure connection or session. This process is
sometimes called an “SSL Handshake”. Note that the SSL handshake
happens instantaneously and remains invisible to the users.

You might also like