Cryptography and
Network Security
Chapter 2
Fourth Edition
by William Stallings
Lecture slides by Lawrie Brown
Basic Cryptography
Cryptography is technique of securing information and
communications through use of codes so that only those person for
whom the information is intended can understand it and process it.
Thus preventing unauthorized access to information.
The prefix “crypt” means “hidden” and suffix graphy means “writing”.
In Cryptography the techniques which are use to protect information
are obtained from mathematical concepts and a set of rule based
calculations known as algorithms to convert messages in ways that
make it hard to decode it.
These algorithms are used for cryptographic key generation, digital
signing, verification to protect data privacy, web browsing on internet
and to protect confidential transactions such as credit card and debit
card transactions.
Features Of Cryptography are as follows:
Confidentiality: Information can only be accessed by the
person for whom it is intended and no other person except
him can access it.
Integrity: Information cannot be modified in storage or
transition between sender and intended receiver without
any addition to information being detected.
Non-repudiation: The creator/sender of information
cannot deny his intention to send information at later
stage.
Authentication: The identities of sender and receiver are
confirmed. As well as destination/origin of information is
confirmed.
Types Of Cryptography: In general there
are three types Of cryptography:
1. Symmetric Key Cryptography: It is an encryption
system where the sender and receiver of message use a
single common key to encrypt and decrypt messages.
Symmetric Key Systems are faster and simpler but the
problem is that sender and receiver have to somehow
exchange key in a secure manner.
The most popular symmetric key cryptography system is
Data Encryption System(DES).
Cont.
2. Hash Functions: There is no usage of any key in
this algorithm. A hash value with fixed length is
calculated as per the plain text which makes it
impossible for contents of plain text to be recovered.
Many operating systems use hash functions to
encrypt passwords.
3. Asymmetric Key Cryptography: Under this
system a pair of keys is used to encrypt and decrypt
information. A public key is used for encryption and
a private key is used for decryption. Public key and
Private Key are different. Even if the public key is
known by everyone the intended receiver can only
decode it because he alone knows the private key.
Applications Of Cryptography:
Computer passwords
Digital Currencies/cryptocurrencies
Secure web browsing
Electronic Signatures
Authentication
End-to-end encryption
Symmetric Encryption
or conventional / private-key / single-key
sender and recipient share a common key
all classical encryption algorithms are
private-key
was only type prior to invention of public-
key in 1970’s
and by far most widely used
Some Basic Terminology
plaintext - original message
ciphertext - coded message
cipher - algorithm for transforming plaintext to ciphertext
key - info used in cipher known only to sender/receiver
encipher (encrypt) - converting plaintext to ciphertext
decipher (decrypt) - recovering ciphertext from plaintext
cryptography - study of encryption principles/methods
cryptanalysis (codebreaking) - study of principles/
methods of deciphering ciphertext without knowing key
cryptology - field of both cryptography and cryptanalysis
Symmetric Cipher Model
Requirements
two requirements for secure use of
symmetric encryption:
a strong encryption algorithm
a secret key known only to sender / receiver
mathematically have:
Y = EK(X)
X = DK(Y)
assume encryption algorithm is known
implies a secure channel to distribute key
Cryptography
Characterize/categories of cryptographic
system by:
1. type of encryption operations used
• substitution / transposition / product
2. number of keys used
• single-key or private / two-key or public
3. way in which plaintext is processed
• block / stream
Steganography
Steganography works by replacing bits of
useless or unused data in regular
computer files (such as graphics, sound,
text, HTML, or even floppy disks ) with bits
of different, invisible information
Cryptanalysis
objective to recover key not just message
Cryptanalysis is the process of studying
cryptographic systems to look for
weaknesses or leaks of information. This
is done by Cryptanalyst
general approaches:
cryptanalytic attack
brute-force attack
Cryptanalytic Attacks
ciphertext only
only know algorithm & ciphertext, is statistical,
know or can identify plaintext
known plaintext
know/suspect plaintext & ciphertext
chosen plaintext
select plaintext and obtain ciphertext
chosen ciphertext
select ciphertext and obtain plaintext
chosen text
select plaintext or ciphertext to en/decrypt
Types of Cryptanalytic Attacks
Types of Cryptanalytic Attacks
Known-Plaintext Analysis (KPA) :
In this type of attack, some plaintext-ciphertext pairs are
already known. Attacker maps them in order to find the
encryption key. This attack is easier to use as a lot of
information is already available.
Chosen-Plaintext Analysis (CPA) :
In this type of attack, the attacker chooses random
plaintexts and obtains the corresponding ciphertexts and
tries to find the encryption key.
Its very simple to implement like KPA but the success rate
is quite low.
Cont.
Ciphertext-Only Analysis (COA) :
In this type of attack, only some cipher-text is known and the
attacker tries to find the corresponding encryption key and
plaintext.
Its the hardest to implement but is the most probable attack as
only ciphertext is required.
Man-In-The-Middle (MITM) attack :
In this type of attack, attacker intercepts the message/key
between two communicating parties through a secured channel.
Adaptive Chosen-Plaintext Analysis (ACPA) :
This attack is similar CPA. Here, the attacker requests the
cipher texts of additional plaintexts after they have ciphertexts
for some texts.
More Definitions
unconditional security
no matter how much computer power or time
is available, the cipher cannot be broken
since the ciphertext provides insufficient
information to uniquely determine the
corresponding plaintext
computational security
given limited computing resources (eg time
needed for calculations is greater than age of
universe), the cipher cannot be broken
Brute Force Search
always possible to simply try every key
most basic attack, proportional to key size
assume either know / recognise plaintext
Key Size (bits) Number of Alternative Time required at 1 Time required at 106
Keys decryption/µs decryptions/µs
32 232 = 4.3 109 231 µs = 35.8 minutes 2.15 milliseconds
56 256 = 7.2 1016 255 µs = 1142 years 10.01 hours
128 2128 = 3.4 1038 2127 µs = 5.4 1024 years 5.4 1018 years
168 2168 = 3.7 1050 2167 µs = 5.9 1036 years 5.9 1030 years
26 characters 26! = 4 1026 2 1026 µs = 6.4 1012 years 6.4 106 years
(permutation)
Basic approaches to
symmetric encryption
The two basic building blocks of all
encryption technique are:
• substitution
• and transposition
Classical Substitution
Ciphers
where letters of plaintext are replaced by
other letters or by numbers or symbols
or if plaintext is viewed as a sequence of
bits, then substitution involves replacing
plaintext bit patterns with ciphertext bit
patterns
Example :Ceaser Cipher
Caesar Cipher
earliest known substitution cipher by Julius
Caesar
first attested use in military affairs
replaces each letter by 3rd letter on
Note A becomes D
example:
meet me after the toga party
PHHW PH DJWHU WKH WRJD SDUWB
Caesar Cipher
can define transformation as:
abcdefghijklmnopqrstuvwxyz
DEFGHIJKLMNOPQRSTUVWXYZABC
mathematically give each letter a number
abcdefghij k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
then have Caesar cipher as:
c = E(p) = (p + k) mod (26)
p = D(c) = (c – k) mod (26)
Cryptanalysis of Caesar
Cipher
only have 26 possible ciphers
A maps to A,B,..Z
could simply try each in turn
a brute force search
given ciphertext, just try all shifts of letters
do need to recognize when have plaintext
eg. break ciphertext "GCUA VQ DTGCM"
Monoalphabetic Cipher
rather than just shifting the alphabet
could shuffle (jumble) the letters arbitrarily
(randomaly or hapzard)
each plaintext letter maps to a different random
ciphertext letter hence key is 26 letters long
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: DKVQFIBJWPESCXHTMYAUOLRGZN
Plaintext: ifwewishtoreplaceletters
Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA
Monoalphabetic Cipher
Security
now have a total of 26! = 4 x 1026 keys
with so many keys, might think is secure
but would be !!!WRONG!!!
problem is language characteristics
Language Redundancy and
Cryptanalysis
human languages are redundant
eg "th lrd s m shphrd shll nt wnt"
letters are not equally commonly used
in English E is by far the most common letter
followed by T,R,N,I,O,A,S
other letters like Z,J,K,Q,X are fairly rare
have tables of single, double & triple letter
frequencies for various languages
English Letter Frequencies
Playfair Cipher
not even the large number of keys in a
monoalphabetic cipher provides security
one approach to improving security was to
encrypt multiple letters
the Playfair Cipher is an example
invented by Charles Wheatstone in 1854,
but named after his friend Baron Playfair
Playfair Key Matrix
a 5X5 matrix of letters based on a keyword
fill in letters of keyword (sans duplicates)
fill rest of matrix with other letters
eg. using the keyword MONARCHY
M O N A R
C H Y B D
E F G I/J K
L P Q S T
U V W X Z
Encrypting and Decrypting
plaintext is encrypted two letters at a time
1. if a pair is a repeated letter, insert filler like 'X’
2. if both letters fall in the same row, replace
each with letter to right (wrapping back to start
from end)
3. if both letters fall in the same column, replace
each with the letter below it (again wrapping to
top from bottom)
4. otherwise each letter is replaced by the letter
in the same row and in the column of the other
letter of the pair
Security of Playfair Cipher
security much improved over monoalphabetic
since have 26 x 26 = 676 digrams
would need a 676 entry frequency table to
analyse (verses 26 for a monoalphabetic)
and correspondingly more ciphertext
was widely used for many years
eg. by US & British military in WW1
it can be broken, given a few hundred letters
since still has much of plaintext structure
Polyalphabetic Ciphers
polyalphabetic substitution ciphers
improve security using multiple cipher alphabets
make cryptanalysis harder with more alphabets
to guess and flatter frequency distribution
use a key to select which alphabet is used for
each letter of the message
use each alphabet in turn
repeat from start after end of key is reached
Vigenère Cipher
simplest polyalphabetic substitution cipher
effectively multiple caesar ciphers
key is multiple letters long K = k1 k2 ... kd
ith
letter specifies ith alphabet to use
use each alphabet in turn
repeat from start after d letters in message
decryption simply works in reverse
Example of Vigenère Cipher
write the plaintext out
write the keyword repeated above it
use each key letter as a caesar cipher key
encrypt the corresponding plaintext letter
eg using keyword deceptive
key: deceptivedeceptivedeceptive
plaintext: wearediscoveredsaveyourself
ciphertext:ZICVTWQNGRZGVTWAVZHCQYGLMGJ
Aids
simple aids can assist with en/decryption
a Saint-Cyr Slide is a simple manual aid
a slide with repeated alphabet
line up plaintext 'A' with key letter, eg 'C'
then read off any mapping for key letter
can bend round into a cipher disk
or expand into a Vigenère Tableau
Security of Vigenère Ciphers
have multiple ciphertext letters for each
plaintext letter
hence letter frequencies are obscured
but not totally lost
start with letter frequencies
see if look monoalphabetic or not
if not, then need to determine number of
alphabets, since then can attach each
Kasiski Method
method developed by Babbage / Kasiski
repetitions in ciphertext give clues to period
so find same plaintext an exact period apart
which results in the same ciphertext
of course, could also be random fluke
eg repeated “VTW” in previous example
suggests size of 3 or 9
then attack each monoalphabetic cipher
individually using same techniques as before
Autokey Cipher
ideally want a key as long as the message
Vigenère proposed the autokey cipher
with keyword is prefixed to message as key
knowing keyword can recover the first few letters
use these in turn on the rest of the message
but still have frequency characteristics to attack
eg. given key deceptive
key: deceptivewearediscoveredsav
plaintext: wearediscoveredsaveyourself
ciphertext:ZICVTWQNGKZEIIGASXSTSLVVWLA
One-Time Pad
if a truly random key as long as the message is
used, the cipher will be secure
called a One-Time pad
is unbreakable since ciphertext bears no
statistical relationship to the plaintext
since for any plaintext & any ciphertext there
exists a key mapping one to other
can only use the key once though
problems in generation & safe distribution of key
Transposition Ciphers
now consider classical transposition or
permutation ciphers
these hide the message by rearranging
the letter order
without altering the actual letters used
can recognise these since have the same
frequency distribution as the original text
Rail Fence cipher
write message letters out diagonally over a
number of rows
then read off cipher row by row
eg. write message out as:
m e m a t r h t g p r y
e t e f e t e o a a t
giving ciphertext
MEMATRHTGPRYETEFETEOAAT
Row Column Transposition
Ciphers
a more complex transposition
write letters of message out in rows over a
specified number of columns
then reorder the columns according to
some key before reading off the rows
Key: 3 4 2 1 5 6 7 order of alphabet
Plaintext: a t t a c k p
ostpone
duntilt
woamxyz
Ciphertext: APTMTTNAAODWTSUOCOIXKNLYPETZ
Product Ciphers
ciphers using substitutions or transpositions are
not secure because of language characteristics
hence consider using several ciphers in
succession to make harder, but:
two substitutions make a more complex substitution
two transpositions make more complex transposition
but a substitution followed by a transposition makes a
new much harder cipher
this is bridge from classical to modern ciphers
Rotor Machines
before modern ciphers, rotor machines were
most common complex ciphers in use
widely used in WW2
German Enigma, Allied Hagelin, Japanese Purple
implemented a very complex, varying
substitution cipher
used a series of cylinders, each giving one
substitution, which rotated and changed after
each letter was encrypted
with 3 cylinders have 263=17576 alphabets
Hagelin Rotor Machine
Steganography
an alternative to encryption
hides existence of message
using only a subset of letters/words in a
longer message marked in some way
using invisible ink
hiding in LSB in graphic image or sound file
has drawbacks
high overhead to hide relatively few info bits
Summary
have considered:
classical cipher techniques and terminology
monoalphabetic substitution ciphers
cryptanalysis using letter frequencies
Playfair cipher
polyalphabetic ciphers
transposition ciphers
product ciphers and rotor machines
stenography