Cryptography Tutorial PDF
Cryptography Tutorial PDF
Audience
This tutorial is meant for students of computer science who aspire to learn the
basics of cryptography. It will be useful for networking professionals as well who
would like to incorporate various cryptographic algorithms to ensure secure data
communication over their networks.
Prerequisites
This tutorial has been prepared with the view to make it useful for almost anyone
who is curious about cryptography. A basic knowledge of computer science and a
secondary level of mathematics knowledge is sufficient to make the most of this
tutorial.
Cryptography
Table of Contents
About the Tutorial .................................................................................................................................... i
Audience .................................................................................................................................................. i
Prerequisites ............................................................................................................................................ i
Disclaimer & Copyright............................................................................................................................. i
Table of Contents .................................................................................................................................... ii
1.
2.
3.
CRYPTOSYSTEMS ................................................................................................................. 8
Components of a Cryptosystem .............................................................................................................. 8
Types of Cryptosystems .......................................................................................................................... 9
Relation between Encryption Schemes ................................................................................................. 13
Kerckhoffs Principle for Cryptosystem.................................................................................................. 13
4.
ii
Cryptography
5.
6.
7.
8.
9.
iii
Cryptography
iv
Cryptography
Applications of Hash Functions ............................................................................................................. 69
1. CRYPTOGRAPHY ORIGIN
Cryptography
Human being from ages had two inherent needs: (a) to communicate and share
information and (b) to communicate selectively. These two needs gave rise to the
art of coding the messages in such a way that only the intended people could have
access to the information. Unauthorized people could not extract any information,
even if the scrambled messages fell in their hand.
The art and science of concealing the messages to introduce secrecy in information
security is recognized as cryptography.
The word cryptography was coined by combining two Greek words, Krypto
meaning hidden and graphene meaning writing.
History of Cryptography
The art of cryptography is considered to be born along with the art of writing. As
civilizations evolved, human beings got organized in tribes, groups, and kingdoms.
This led to the emergence of ideas such as power, battles, supremacy, and politics.
These ideas further fueled the natural need of people to communicate secretly
with selective recipient which in turn ensured the continuous evolution of
cryptography as well.
The roots of cryptography are found in Roman and Egyptian civilizations.
Cryptography
The earlier Roman method of cryptography, popularly known as the Caesar Shift
Cipher, relies on shifting the letters of a message by an agreed number (three
was a common choice), the recipient of this message would then shift the letters
back by the same number and obtain the original message.
Steganography
Steganography is similar but adds another dimension to Cryptography. In this
method, people not only want to protect the secrecy of an information by
concealing it, but they also want to make sure any unauthorized person gets no
evidence that the information even exists. For example, invisible
watermarking.
In steganography, an unintended recipient or an intruder is unaware of the fact
that observed data contains hidden information. In cryptography, an intruder is
normally aware that data is being communicated, because they can see the
coded/scrambled message.
Cryptography
Evolution of Cryptography
It is during and after the European Renaissance, various Italian and Papal states
led the rapid proliferation of cryptographic techniques. Various analysis and attack
techniques were researched in this era to break the secret codes.
Only after the 19th century, cryptography evolved from the ad hoc
approaches to encryption to the more sophisticated art and science of
information security.
During the period of World War II, both cryptography and cryptanalysis
became excessively mathematical.
With the advances taking place in this field, government organizations, military
units, and some corporate houses started adopting the applications of
cryptography. They used cryptography to guard their secrets from others. Now,
the arrival of computers and the Internet has brought effective cryptography
within the reach of common people.
2. MODERN CRYPTOGRAPHY
Cryptography
Modern Cryptography
It
relies
on
publicly
known
mathematical algorithms for coding
the information. Secrecy is obtained
through a secrete key which is used
as the seed for the algorithms. The
computational difficulty of algorithms,
absence of secret key, etc., make it
impossible for an attacker to obtain
the original information even if he
knows the algorithm used for coding.
Context of Cryptography
Cryptology, the study of cryptosystems, can be subdivided into two branches:
Cryptography
Cryptanalysis
Cryptography
What is Cryptography?
Cryptography is the art and science of making a cryptosystem that is capable of
providing information security.
Cryptography deals with the actual securing of digital data. It refers to the design
of mechanisms based on mathematical algorithms that provide fundamental
information security services. You can think of cryptography as the establishment
of a large toolkit containing different techniques in security applications.
What is Cryptanalysis?
The art and science of breaking the cipher text is known as cryptanalysis.
Cryptanalysis is the sister branch of cryptography and they both co-exist. The
cryptographic process results in the cipher text for transmission or storage. It
involves the study of cryptographic mechanism with the intention to break them.
Cryptanalysis is also used during the design of the new cryptographic techniques
to test their security strengths.
Note: Cryptography concerns with the design of cryptosystems, while
cryptanalysis studies the breaking of cryptosystems.
Confidentiality
Confidentiality is the fundamental security service provided by cryptography. It is
a security service that keeps the information from an unauthorized person. It is
sometimes referred to as privacy or secrecy.
Cryptography
Confidentiality can be achieved through numerous means starting from physical
securing to the use of mathematical algorithms for data encryption.
Data Integrity
It is security service that deals with identifying any alteration to the data. The
data may get modified by an unauthorized entity intentionally or accidently.
Integrity service confirms that whether data is intact or not since it was last
created, transmitted, or stored by an authorized user.
Data integrity cannot prevent the alteration of data, but provides a means for
detecting whether data has been manipulated in an unauthorized manner.
Authentication
Authentication provides the identification of the originator. It confirms to the
receiver that the data received has been sent only by an identified and verified
sender.
Authentication service has two variants:
Apart from the originator, authentication may also provide assurance about other
parameters related to data such as the date and time of creation/transmission.
Non-repudiation
It is a security service that ensures that an entity cannot refuse the ownership of
a previous commitment or an action. It is an assurance that the original creator
of the data cannot deny the creation or transmission of the said data to a recipient
or third party.
Non-repudiation is a property that is most desirable in situations where there are
chances of a dispute over the exchange of data. For example, once an order is
placed electronically, a purchaser cannot deny the purchase order, if nonrepudiation service was enabled in this transaction.
Cryptography Primitives
Cryptography primitives are nothing but the tools and techniques in Cryptography
that can be selectively used to provide a set of desired security services:
Encryption
Hash functions
Cryptography
Digital Signatures
The following table shows the primitives that can achieve a particular security
service on their own.
Primitives
Service
Encryption
Hash
Function
MAC
Digital
Signature
Confidentiality
Yes
No
No
No
Integrity
No
Sometimes
Yes
Yes
Authentication
No
No
Yes
Yes
Non Reputation
No
No
Sometimes Yes
Note: Cryptographic primitives are intricately related and they are often combined
to achieve a set of desired security services from a cryptosystem.
3. CRYPTOSYSTEMS
Cryptography
The illustration shows a sender who wants to transfer some sensitive data to a
receiver in such a way that any party intercepting or eavesdropping on the
communication channel cannot extract the data.
The objective of this simple cryptosystem is that at the end of the process, only
the sender and the receiver will know the plaintext.
Components of a Cryptosystem
The various components of a basic cryptosystem are as follows:
Cryptography
algorithm that takes plaintext and an encryption key as input and produces
a ciphertext.
Types of Cryptosystems
Fundamentally, there are two types of cryptosystems based on the manner in
which encryption-decryption is carried out in the system:
The main difference between these cryptosystems is the relationship between the
encryption and the decryption key. Logically, in any cryptosystem, both the keys
are closely associated. It is practically impossible to decrypt the ciphertext with
the key that is unrelated to the encryption key.
Cryptography
The study of symmetric cryptosystems is referred to as symmetric
cryptography. Symmetric cryptosystems are also sometimes referred to as
secret key cryptosystems.
A few well-known examples of symmetric key encryption methods are: Digital
Encryption Standard (DES), Triple-DES (3DES), IDEA, and BLOWFISH.
Prior to 1970, all cryptosystems employed symmetric key encryption. Even today,
its relevance is very high and it is being used extensively in many cryptosystems.
It is very unlikely that this encryption will fade away, as it has certain advantages
over asymmetric key encryption.
The salient features of cryptosystem based on symmetric key encryption are:
Persons using symmetric key encryption must share a common key prior to
exchange of information.
10
Cryptography
Key establishment Before any communication, both the sender and the
receiver need to agree on a secret symmetric key. It requires a secure key
establishment mechanism in place.
Trust Issue Since the sender and the receiver use the same symmetric
key, there is an implicit requirement that the sender and the receiver trust
each other. For example, it may happen that the receiver has lost the key
to an attacker and the sender is not informed.
These two challenges are highly restraining for modern day communication.
Today, people need to exchange information with non-familiar and non-trusted
parties. For example, a communication between online seller and customer. These
limitations of symmetric key encryption gave rise to asymmetric key encryption
schemes.
Asymmetric Key Encryption was invented in the 20th century to come over the
necessity of pre-shared secret key between communicating persons. The salient
features of this encryption scheme are as follows:
11
Cryptography
Substitution Boxes. The S-boxes carry out the real mixing (confusion).
DES uses 8 S-boxes, each with a 6-bit input and a 4-bit output. Refer the
following illustration:
38
Cryptography
The S-box rule is illustrated below:
There are a total of eight S-box tables. The output of all eight s-boxes is
then combined in to 32 bit section.
39
Cryptography
Key Generation
The round-key generator creates sixteen 48-bit keys out of a 56-bit cipher key.
The process of key generation is depicted in the following illustration:
The logic for Parity drop, shifting, and Compression P-box is given in the DES
description.
DES Analysis
The DES satisfies both the desired properties of block cipher. These two properties
make cipher very strong.
40
Cryptography
During the last few years, cryptanalysis have found some weaknesses in DES when
key selected are weak keys. These keys shall be avoided.
DES has proved to be a very well designed block cipher. There have been no
signicant cryptanalytic attacks on DES other than exhaustive key search.
41
Cryptography
The speed of exhaustive key searches against DES after 1990 began to cause
discomfort amongst users of DES. However, users did not want to replace DES as
it takes an enormous amount of time and money to change encryption algorithms
that are widely adopted and embedded in large security architectures.
The pragmatic approach was not to abandon the DES completely, but to change
the manner in which DES is used. This led to the modified schemes of Triple DES
(sometimes known as 3DES).
Incidentally, there are two variants of Triple DES known as 3-key Triple DES
(3TDES) and 2-key Triple DES (2TDES).
42
Cryptography
The encryption-decryption process is as follows:
Encrypt the plaintext blocks using single DES with key K1.
Now decrypt the output of step 1 using single DES with key K2.
Finally, encrypt the output of step 2 using single DES with key K3.
43
Cryptography
The more popular and widely adopted symmetric encryption algorithm likely to be
encountered nowadays is the Advanced Encryption Standard (AES). It is found at
least six time faster than triple DES.
A replacement for DES was needed as its key size was too small. With increasing
computing power, it was considered vulnerable against exhaustive key search
attack. Triple DES was designed to overcome this drawback but it was found slow.
The features of AES are as follows:
Operation of AES
AES is an iterative rather than Feistel cipher. It is based on substitution
permutation network. It comprises of a series of linked operations, some of which
involve replacing inputs by specic outputs (substitutions) and others involve
shufing bits around (permutations).
Interestingly, AES performs all its computations on bytes rather than bits. Hence,
AES treats the 128 bits of a plaintext block as 16 bytes. These 16 bytes are
arranged in four columns and four rows for processing as a matrix:
Unlike DES, the number of rounds in AES is variable and depends on the length of
the key. AES uses 10 rounds for 128-bit keys, 12 rounds for 192-bit keys and 14
rounds for 256-bit keys. Each of these rounds uses a different 128-bit round key,
which is calculated from the original AES key.
44
Cryptography
The schematic of AES structure is given in the following illustration:
Encryption Process
Here, we restrict to description of a typical round of AES encryption. Each round
comprise of four sub-processes. The first round process is depicted below:
45
Cryptography
Shiftrows
Each of the four rows of the matrix is shifted to the left. Any entries that fall off
are re-inserted on the right side of row. Shift is carried out as follows:
MixColumns
Each column of four bytes is now transformed using a special mathematical
function. This function takes as input the four bytes of one column and outputs
four completely new bytes, which replace the original column. The result is another
new matrix consisting of 16 new bytes. It should be noted that this step is not
performed in the last round.
Addroundkey
The 16 bytes of the matrix are now considered as 128 bits and are XORed to the
128 bits of the round key. If this is the last round then the output is the ciphertext.
Otherwise, the resulting 128 bits are interpreted as 16 bytes and we begin another
similar round.
Decryption Process
The process of decryption of an AES ciphertext is similar to the encryption process
in the reverse order. Each round consists of the four processes conducted in the
reverse order:
Mix columns
Shift rows
Byte substitution
Since sub-processes in each round are in reverse manner, unlike for a Feistel
Cipher, the encryption and decryption algorithms needs to be separately
implemented, although they are very closely related.
46
Cryptography
AES Analysis
In present day cryptography, AES is widely adopted and supported in both
hardware and software. Till date, no practical cryptanalytic attacks against AES
has been discovered. Additionally, AES has built-in exibility of key length, which
allows a degree of future-proong against progress in the ability to perform
exhaustive key searches.
However, just as for DES, the AES security is assured only if it is correctly
implemented and good key management is employed.
47
Cryptography
In this chapter, we will discuss the different modes of operation of a block cipher.
These are procedural rules for a generic block cipher. Interestingly, the different
modes result in different properties being achieved which add to the security of
the underlying block cipher.
A block cipher processes the data blocks of fixed size. Usually, the size of a
message is larger than the block size. Hence, the long message is divided into a
series of sequential message blocks, and the cipher operates on these blocks one
at a time.
Operation
The user takes the rst block of plaintext and encrypts it with the key to
produce the first block of ciphertext.
He then takes the second block of plaintext and follows the same process
with same key and so on so forth.
The ECB mode is deterministic, that is, if plaintext block P1, P2,, Pm are
encrypted twice under the same key, the output ciphertext blocks will be the
same.
In fact, for a given key technically we can create a codebook of ciphertexts for all
possible plaintext blocks. Encryption would then entail only looking up for required
plaintext and select the corresponding ciphertext. Thus, the operation is analogous
to the assignment of code words in a codebook, and hence gets an official name:
Electronic Codebook mode of operation (ECB). It is illustrated as follows:
48
Cryptography
Operation
The operation of CBC mode is depicted in the following illustration. The steps are
as follows:
XOR the n-bit plaintext block with data value in top register.
Encrypt the result of XOR operation with underlying block cipher with key
K.
Feed ciphertext block into top register and continue the operation till all
plaintext blocks are processed.
For decryption, IV data is XORed with first ciphertext block decrypted. The
first ciphertext block is also fed into to register replacing IV for decrypting
next ciphertext block.
49
Cryptography
Operation
The operation of CFB mode is depicted in the following illustration. For example,
in the present system, a message block has a size s bits where 1 < s < n. The
CFB mode requires an initialization vector (IV) as the initial random n-bit input
block. The IV need not be secret. Steps of operation are:
Encrypt the data value in top register with underlying block cipher with key
K.
Feed ciphertext block into top register by shifting already present data to
the left and continue the operation till all plaintext blocks are processed.
Essentially, the previous ciphertext block is encrypted with the key, and
then the result is XORed to the current plaintext block.
50
Cryptography
51
Cryptography
The operation is depicted in the following illustration:
Operation
Both encryption and decryption in CTR mode are depicted in the following
illustration. Steps in operation are:
Load the initial counter value in the top register is the same for both the
sender and the receiver. It plays the same role as the IV in CFB (and CBC)
mode.
Encrypt the contents of the counter with the key and place the result in the
bottom register.
Take the first plaintext block P1 and XOR this to the contents of the bottom
register. The result of this is C1. Send C1 to the receiver and update the
counter. The counter update replaces the ciphertext feedback in CFB mode.
Continue in this manner until the last plaintext block has been encrypted.
The decryption is the reverse process. The ciphertext block is XORed with
the output of encrypted contents of counter value. After decryption of each
ciphertext block counter is updated as in case of encryption.
52
Cryptography
53
Cryptography
Different keys are used for encryption and decryption. This is a property
which set this scheme different than symmetric encryption scheme.
54
Cryptography
There are three types of Public Key Encryption schemes. We discuss them in
following sections:
RSA Cryptosystem
This cryptosystem is one the initial system. It remains most employed
cryptosystem even today. The system was invented by three scholars Ron Rivest,
Adi Shamir, and Len Adleman and hence, it is termed as RSA cryptosystem.
We will see two aspects of the RSA cryptosystem, firstly generation of key pair
and secondly encryption-decryption algorithms.
55
Cryptography
Example
An example of generating RSA Key pair is given below. (For ease of understanding,
the primes p & q taken here are small values. Practically, these values are very
high).
The pair of numbers (n, e) = (91, 5) forms the public key and can be made
available to anyone whom we wish to be able to send us encrypted
messages.
56
Cryptography
RSA Encryption
Suppose the sender wish to send some text message to someone whose
public key is (n, e).
The sender then represents the plaintext as a series of numbers less than
n.
RSA Decryption
The decryption process for RSA is also very straightforward. Suppose that
the receiver of public-key pair (n, e) has received a ciphertext C.
Receiver raises C to the power of his private key d. The result modulo n will
be the plaintext P.
Plaintext = Cd mod n
57
Cryptography
RSA Analysis
The security of RSA depends on the strengths of two separate functions. The RSA
cryptosystem is most popular public-key cryptosystem strength of which is based
on the practical difficulty of factoring the very large numbers.
If either of these two functions are proved non one-way, then RSA will be broken.
In fact, if a technique for factoring efficiently is developed then RSA will no longer
be safe.
The strength of RSA encryption drastically goes down against attacks if the
number p and q are not large primes and/ or chosen public key e is a small
number.
ElGamal Cryptosystem
Along with RSA, there are other public-key cryptosystems proposed. Many of them
are based on different versions of the Discrete Logarithm Problem.
ElGamal cryptosystem, called Elliptic Curve Variant, is based on the Discrete
Logarithm Problem. It derives the strength from the assumption that the discrete
logarithms cannot be found in practical time frame for a given number, while the
inverse operation of the power can be computed efficiently.
Let us go through a simple version of ElGamal that works with numbers modulo
p. In the case of elliptic curve variants, it is based on quite different number
systems.
58
Cryptography
It is a generator of the multiplicative group of integers modulo p. This
means for every integer m co-prime to p, there is an integer k such
that gk=a mod n.
For example, 3 is generator of group 5 (Z5 = {1, 2, 3, 4}).
3n
3n mod 5
27
81
Choosing the private key. The private key x is any number bigger than
1 and smaller than p1.
Computing part of the public key. The value y is computed from the
parameters p, g and the private key x as follows:
y = gx mod p
Obtaining Public key. The ElGamal public key consists of the three
parameters (p, g, y).
For example, suppose that p = 17 and that g = 6 (It can be confirmed that
6 is a generator of group Z17). The private key x can be any number bigger
than 1 and smaller than 71, so we choose x = 5. The value y is then
computed as follows:
y = 65 mod 17 = 7
Thus the private key is 62 and the public key is (17, 6, 7).
ElGamal Encryption
Suppose sender wishes to send a plaintext to someone whose ElGamal public key
is (p, g, y), then:
59
Cryptography
ElGamal Decryption
To decrypt the ciphertext (C1, C2) using private key x, the following two
steps are taken:
Compute the modular inverse of (C1)x modulo p, which is (C1)-x ,
generally referred to as decryption factor.
Obtain the plaintext by using the following formula:
C2 (C1)-x mod p = Plaintext
60
Cryptography
ElGamal Analysis
In ElGamal system, each user has a private key x. and has three components
of public key: prime modulus p, generator g, and public Y = gx mod p. The
strength of the ElGamal is based on the difficulty of discrete logarithm problem.
The secure key size is generally > 1024 bits. Today even 2048 bits long key are
used. On the processing speed front, Elgamal is quite slow, it is used mainly for
key authentication protocols. Due to higher processing efficiency, Elliptic Curve
variants of ElGamal are becoming increasingly popular.
Efficient computation
61
Cryptography
ElGamal
62
Cryptography
Until now, we discussed the use of symmetric and public key schemes to achieve
the confidentiality of information. With this chapter, we begin our discussion on
different cryptographic techniques designed to provide other security services.
The focus of this chapter is on data integrity and cryptographic tools used to
achieve the same.
Passive Threats
This type of threats exists due to accidental changes in data.
Active Threats
In this type of threats, an attacker can manipulate the data with malicious intent.
At higher level of threat, attacker may modify data and try to derive new
digest for modified data from exiting digest. This is possible if the digest is
computed using simple mechanisms such as CRC.
Security mechanism such as Hash functions are used to tackle the active
modification threats.
63
Cryptography
Hash functions are extremely useful and appear in almost all information security
applications.
A hash function is a mathematical function that converts a numerical input value
into another compressed numerical value. The input to the hash function is of
arbitrary length but output is always of fixed length.
Values returned by a hash function are called message digest or simply hash
values. The following picture illustrated hash function:
64
Cryptography
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.
Efficiency of Operation
Generally for any hash function h with input x, computation of h(x) is a
fast operation.
Computationally hash functions are much faster than a symmetric
encryption.
Pre-Image Resistance
This property means that it should be computationally hard to reverse a
hash function.
In other words, if a hash function h produced a hash value z, then it
should be a difficult process to find any input value x that hashes to z.
This property protects against an attacker who only has a hash value
and is trying to find the input.
Collision Resistance
This property means it should be hard to find two different inputs of any
length that result in the same hash. This property is also referred to as
collision free hash function.
In other words, for a hash function h, it is hard to find any two different
inputs x and y such that h(x) = h(y).
65
Cryptography
Since, hash function is compressing function with fixed hash length, it is
impossible for a hash function not to have collisions. This property of
collision free only confirms that these collisions should be hard to find.
This property makes it very difficult for an attacker to find two input
values with the same hash.
Also, if a hash function is collision-resistant then it is second pre-image
resistant.
Hashing algorithm involves rounds of above hash function like a block cipher. Each
round takes an input of a fixed size, typically a combination of the most recent
message block and the output of the last round.
This process is repeated for as many rounds as are required to hash the entire
message. Schematic of hashing algorithm is depicted in the following illustration:
66
Cryptography
Since, the hash value of first message block becomes an input to the second hash
operation, output of which alters the result of the third operation, and so on. This
effect, known as an avalanche effect of hashing.
Avalanche effect results in substantially different hash values for two messages
that differ by even a single bit of data.
Understand the difference between hash function and algorithm correctly. The
hash function generates a hash code by operating on two blocks of fixed-length
binary data.
Hashing algorithm is a process for using the hash function, specifying how the
message will be broken up and how the results from previous message blocks are
chained together.
The MD family comprises of hash functions MD2, MD4, MD5 and MD6. It
was adopted as Internet Standard RFC 1321. It is a 128-bit hash function.
MD5 digests have been widely used in the software world to provide
assurance about integrity of transferred file. For example, file servers often
provide a pre-computed MD5 checksum for the files, so that a user can
compare the checksum of the downloaded file to it.
The original version is SHA-0, a 160-bit hash function, was published by the
National Institute of Standards and Technology (NIST) in 1993. It had few
weaknesses and did not become very popular. Later in 1995, SHA-1 was
designed to correct alleged weaknesses of SHA-0.
SHA-1 is the most widely used of the existing SHA hash functions. It is
employed in several widely used applications and protocols including Secure
Socket Layer (SSL) security.
67
Cryptography
In 2005, a method was found for uncovering collisions for SHA-1 within
practical time frame making long-term employability of SHA-1 doubtful.
SHA-2 family has four further SHA variants, SHA-224, SHA-256, SHA-384,
and SHA-512 depending up on number of bits in their hash value. No
successful attacks have yet been reported on SHA-2 hash function.
In October 2012, the NIST chose the Keccak algorithm as the new SHA-3
standard. Keccak offers many benefits, such as efficient performance and
good resistance for attacks.
RIPEMD
The RIPEND is an acronym for RACE Integrity Primitives Evaluation Message
Digest. This set of hash functions was designed by open research community and
generally known as a family of European hash functions.
The set includes RIPEND, RIPEMD-128, and RIPEMD-160. There also exist
256, and 320-bit versions of this algorithm.
Original RIPEMD (128 bit) is based upon the design principles used in MD4
and found to provide questionable security. RIPEMD 128-bit version came
as a quick fix replacement to overcome vulnerabilities on the original
RIPEMD.
Whirlpool
This is a 512-bit hash function.
68
Cryptography
Password Storage
Hash functions provide protection to password storage.
Instead of storing password in clear, mostly all logon processes store the
hash values of passwords in the file.
The Password file consists of a table of pairs which are in the form (user id,
h(P)).
An intruder can only see the hashes of passwords, even if he accessed the
password. He can neither logon using hash nor can he derive the password
from hash value since hash function possesses the property of pre-image
resistance.
69
Cryptography
The integrity check helps the user to detect any changes made to original file. It
however, does not provide any assurance about originality. The attacker, instead
of modifying file data, can change the entire file and compute all together new
hash and send to the receiver. This integrity check application is useful only if the
user is sure about the originality of file.
70
Cryptography
In the last chapter, we discussed the data integrity threats and the use of hashing
technique to detect if any modification attacks have taken place on the data.
Another type of threat that exist for data is the lack of message authentication.
In this threat, the user is not sure about the originator of the message. Message
authentication can be provided using the cryptographic techniques that use secret
keys as done in case of encryption.
The sender uses some publicly known MAC algorithm, inputs the message
and the secret key K and produces a MAC value.
Similar to hash, MAC function also compresses an arbitrary long input into
a fixed length output. The major difference between hash and MAC is that
MAC uses secret key during the compression.
71
Cryptography
The sender forwards the message along with the MAC. Here, we assume
that the message is sent in the clear, as we are concerned of providing
message origin authentication, not confidentiality. If confidentiality is
required then the message needs encryption.
On receipt of the message and the MAC, the receiver feeds the received
message and the shared secret key K into the MAC algorithm and recomputes the MAC value.
The receiver now checks equality of freshly computed MAC with the MAC
received from the sender. If they match, then the receiver accepts the
message and assures himself that the message has been sent by the
intended sender.
If the computed MAC does not match the MAC sent by the sender, the
receiver cannot determine whether it is the message that has been altered
or it is the origin that has been falsified. As a bottom-line, a receiver safely
assumes that the message is not the genuine.
Limitations of MAC
There are two major limitations of MAC, both due to its symmetric nature of
operation:
Both these limitations can be overcome by using the public key based digital
signatures discussed in following section.
72
Cryptography
73
Cryptography
Signer feeds data to the hash function and generates hash of data.
Hash value and signature key are then fed to the signature algorithm which
produces the digital signature on given hash. Signature is appended to the
data and then both are sent to the verifier.
Verifier feeds the digital signature and the verification key into the
verification algorithm. The verification algorithm gives some value as
output.
Verifier also runs same hash function on received data to generate hash
value.
For verification, this hash value and output of verification algorithm are
compared. Based on the comparison result, verifier decides whether the
digital signature is valid.
Since digital signature is created by private key of signer and no one else
can have this key; the signer cannot repudiate signing the data in future.
74
Cryptography
Data Integrity In case an attacker has access to the data and modifies
it, the digital signature verification at receiver end fails. The hash of
modified data and the output provided by the verification algorithm will not
match. Hence, receiver can safely deny the message assuming that data
integrity has been breached.
75
Cryptography
The receiver after receiving the encrypted data and signature on it, first verifies
the signature using senders public key. After ensuring the validity of the
signature, he then retrieves the data through decryption using his private key.
76
Cryptography
The most distinct feature of Public Key Infrastructure (PKC) is that it uses a pair
of keys to achieve the underlying security service. The key pair comprises of
private key and public key.
Since the public keys are in open domain, they are likely to be abused. It is, thus,
necessary to establish and maintain some kind of trusted infrastructure to manage
these keys.
Key Management
It goes without saying that the security of any cryptosystem depends upon how
securely its keys are managed. Without secure procedures for the handling of
cryptographic keys, the benefits of the use of strong cryptographic schemes are
potentially lost.
It is observed that cryptographic schemes are rarely compromised through
weaknesses in their design. However, they are often compromised through poor
key management.
There are some important aspects of key management which are as follows:
Cryptographic keys are nothing but special pieces of data. Key management
refers to the secure administration of cryptographic keys.
Key management deals with entire key lifecycle as depicted in the following
illustration:
77
Cryptography
There are two specific requirements of key management for public key
cryptography.
Secrecy of private keys. Throughout the key lifecycle, secret keys
must remain secret from all parties except those who are owner and are
authorized to use them.
Assurance of public keys. In public key cryptography, the public keys
are in open domain and seen as public pieces of data. By default there
are no assurances of whether a public key is correct, with whom it can
be associated, or what it can be used for. Thus key management of
public keys needs to focus much more explicitly on assurance of purpose
of public keys.
The most crucial requirement of assurance of public key can be achieved through
the public-key infrastructure (PKI), a key management systems for supporting
public-key cryptography.
Certification Authority.
Registration Authority.
Digital Certificate
For analogy, a certificate can be considered as the ID card issued to the person.
People use ID cards such as a driver's license, passport to prove their identity. A
digital certificate does the same basic thing in the electronic world, but with one
difference.
Digital Certificates are not only issued to people but they can be issued to
computers, software packages or anything else that need to prove the identity in
the electronic world.
Digital certificates are based on the ITU standard X.509 which defines a
standard certificate format for public key certificates and certification
validation. Hence digital certificates are sometimes also referred to as X.509
certificates.
78
Cryptography
Public key pertaining to the user client is stored in digital certificates by The
Certification Authority (CA) along with other relevant information such as
client information, expiration date, usage, issuer etc.
Anyone who needs the assurance about the public key and associated
information of client, he carries out the signature validation process using
CAs public key. Successful validation assures that the public key given in
the certificate belongs to the person whose details are given in the
certificate.
As shown in the illustration, the CA accepts the application from a client to certify
his public key. The CA, after duly verifying identity of client, issues a digital
certificate to that client.
79
Cryptography
Key Functions of CA
The key functions of a CA are as follows:
Classes of Certificates
There are four typical classes of certificate:
Class 3: These certificates can only be purchased after checks have been
made about the requestors identity.
80
Cryptography
Hierarchy of CA
With vast networks and requirements of global communications, it is practically
not feasible to have only one trusted CA from whom all users obtain their
certificates. Secondly, availability of only one CA may lead to difficulties if CA is
compromised.
In such case, the hierarchical certification model is of interest since it allows public
key certificates to be used in environments where two communicating parties do
not have trust relationships with the same CA.
The root CA is at the top of the CA hierarchy and the root CA's certificate is
a self-signed certificate.
The CAs, which are directly subordinate to the root CA (For example, CA1
and CA2) have CA certificates that are signed by the root CA.
The CAs under the subordinate CAs in the hierarchy (For example, CA5 and
CA6) have their CA certificates signed by the higher-level subordinate CAs.
81
Cryptography
Verifier takes the certificate and validates by using public key of issuer. The
issuers public key is found in the issuers certificate which is in the chain
next to clients certificate.
Now if the higher CA who has signed the issuers certificate, is trusted by
the verifier, verification is successful and stops here.
Else, the issuer's certificate is verified in a similar manner as done for client
in above steps. This process continues till either trusted CA is found in
between or else it continues till Root CA.
82
Nowadays, the networks have gone global and information has taken the digital
form of bits and bytes. Critical information now gets stored, processed and
transmitted in digital form on computer systems and open communication
channels.
Since information plays such a vital role, adversaries are targeting the computer
systems and open communication channels to either steal the sensitive
information or to disrupt the critical information system.
Modern cryptography provides a robust set of techniques to ensure that the
malevolent intentions of the adversary are thwarted while ensuring the legitimate
users get access to information. Here in this chapter, we will discuss the benefits
that we draw from cryptography, its limitations, as well as the future of
cryptography.
Cryptography Benefits
Cryptography is an essential information security tool. It provides the four most
basic services of information security:
Data Integrity The cryptographic hash functions are playing vital role in
assuring the users about the data integrity.
All these fundamental services offered by cryptography has enabled the conduct
of business over the networks using the computer systems in extremely efficient
and effective manner.
Cryptography Drawbacks
Apart from the four fundamental elements of information security, there are other
issues that affect the effective use of information:
83
Cryptography
decision-making. The network or the computer system can be attacked and
rendered non-functional by an intruder.
Cryptography does not guard against the vulnerabilities and threats that
emerge from the poor design of systems, protocols, and procedures.
These need to be fixed through proper design and setting up of a defensive
infrastructure.
Future of Cryptography
Elliptic Curve Cryptography (ECC) has already been invented but its
advantages and disadvantages are not yet fully understood. ECC allows to perform
encryption and decryption in a drastically lesser time, thus allowing a higher
amount of data to be passed with equal security. However, as other methods of
encryption, ECC must also be tested and proven secure before it is accepted for
governmental, commercial, and private use.
Quantum computation is the new phenomenon. While modern computers store
data using a binary format called a "bit" in which a "1" or a "0" can be stored; a
quantum computer stores data using a quantum superposition of multiple states.
These multiple valued states are stored in "quantum bits" or "qubits". This allows
the computation of numbers to be several orders of magnitude faster than
traditional transistor processors.
To comprehend the power of quantum computer, consider RSA-640, a number
with 193 digits, which can be factored by eighty 2.2GHz computers over the span
84
Cryptography
of 5 months, one quantum computer would factor in less than 17 seconds.
Numbers that would typically take billions of years to compute could only take a
matter of hours or even minutes with a fully developed quantum computer.
In view of these facts, modern cryptography will have to look for computationally
harder problems or devise completely new techniques of archiving the goals
presently served by modern cryptography.
85