11/7/2011
Review
7 November 2011 Security 3
Cryptology
A form of communication which is primarily
concerned with the secure transmission
Cryptography (through encryption) of a secret message
over an insecure channel.
+
Deals with attacks on encrypted intercepted
Cryptanalysis messages to recover the secret message.
= Cryptology
Why do we need cryptography?
Computers are used by millions of people for
many purposes
Banking
Shopping
Tax returns
Military
Student records
…
Privacy is a crucial issue in many of these
applications
Security is to make sure that nosy people
cannot read or secretly modify messages
intended for other recipients
7 November 2011 Cryptography and Computer Security 5
Why do we need security?
Protect vital information while still allowing
access to those who need it
Trade secrets, medical records, etc.
Provide authentication and access control
for resources
Guarantee availability of resources
Ex: 5 9’s (99.999% reliability)
7 November 2011 Cryptography and Computer Security 6
Who is vulnerable?
Financial institutions and banks
Internet service providers
Pharmaceutical companies
Government and defense agencies
Contractors to various government agencies
Multinational corporations
ANY ONE ON THE NETWORK
7 November 2011 Cryptography and Computer Security 7
Common security attacks and
their countermeasures
Finding a way into the network
Firewalls
Exploiting software bugs, buffer overflows
Intrusion Detection Systems
Denial of Service
Ingress filtering, IDS
TCP hijacking
IPSec
Packet sniffing
Encryption
Social problems
Education
7 November 2011 Cryptography and Computer Security 8
Definitions
Computer Security - generic name for the
collection of tools designed to protect data and
to thwart hackers
Network Security - measures to protect data
during their transmission
Internet Security - measures to protect data
during their transmission over a collection of
interconnected networks
7 November 2011 Cryptography and Computer Security 9
OSI Security Architecture
ITU-T X.800 “Security Architecture for OSI”
defines a systematic way of defining and
providing security requirements
for us it provides a useful, if abstract,
overview of concepts we will study
7 November 2011 Cryptography and Computer Security 10
Aspects of Security
consider 3 aspects of information security:
security attack
security mechanism
security service
Security Attacks
Security Attacks
Interruption: This is an attack on availability
Interception: This is an attack on
confidentiality
Modification: This is an attack on integrity
Fabrication: This is an attack on authenticity
Security Attack
any action that compromises the security of
information owned by an organization
information security is about how to prevent
attacks, or failing that, to detect attacks on
information-based systems
often threat & attack used to mean same thing
have a wide range of attacks
can focus of generic types of attacks
passive
active
Passive Attacks
Active Attacks
Security Service
enhance security of data processing systems
and information transfers of an organization
intended to counter security attacks
using one or more security mechanisms
often replicates functions normally associated
with physical documents
• which, for example, have signatures, dates; need
protection from disclosure, tampering, or
destruction; be notarized or witnessed; be
recorded or licensed
Security Services
X.800:
“a service provided by a protocol layer of
communicating open systems, which ensures
adequate security of the systems or of data
transfers”
RFC 2828:
“a processing or communication service
provided by a system to give a specific kind of
protection to system resources”
Security Services (X.800)
Authentication - assurance that the
communicating entity is the one claimed
Access Control - prevention of the
unauthorized use of a resource
Data Confidentiality –protection of data from
unauthorized disclosure
Data Integrity - assurance that data received is
as sent by an authorized entity
Non-Repudiation - protection against denial by
one of the parties in a communication
Security Mechanism
feature designed to detect, prevent, or
recover from a security attack
no single mechanism that will support all
services required
however one particular element underlies
many of the security mechanisms in use:
cryptographic techniques
hence our focus on this topic
Security Mechanisms (X.800)
specific security mechanisms:
encipherment, digital signatures, access
controls, data integrity, authentication
exchange, traffic padding, routing control,
notarization
pervasive security mechanisms:
trusted functionality, security labels, event
detection, security audit trails, security
recovery
Model for Network Security
Model for Network Security
using this model requires us to:
1. design a suitable algorithm for the security
transformation
2. generate the secret information (keys) used
by the algorithm
3. develop methods to distribute and share the
secret information
4. specify a protocol enabling the principals to
use the transformation and secret
information for a security service
Model for Network Access
Security
Model for Network Access
Security
using this model requires us to:
1. select appropriate gatekeeper functions to
identify users
2. implement security controls to ensure only
authorised users access designated
information or resources
trusted computer systems may be useful
to help implement this model
Key Security Properties
Confidentiality
Authentication
Integrity
Non-repudiation
Availability
Access Control
Confidentiality (Secrecy)
INTERCEPTION
Protect transmitted data Unauthorised party gains
access to data
Protect against traffic analysis
Timeliness
Authentication
FABRICATION
Assurance that message is Insertion of “counterfeit”
from proper source messages
Protect from third party
masquerade
Mutual Authentication
Integrity
MODIFICATION
Message is received as sent Gain access and “tampers”
with messages
Modification
Also interested in replay, re-
ordering, deletion, delay
Availability
INTERRUPTION
Complete loss of availability Loss of communication (cut the
cable)
Reduction/Degradation in DENIAL OF SERVICE
availability Noisy comms (physical noise,
spurious messages)
Non-repudiation
REPUDIATION ATTEMPT
Prevents parties from denying Party anonymously publishes
they sent or received a his or her message/key(s) and
message; ie. concerned with falsely claims that they were
protecting against legitimate stolen.
protocol participants, not with
protection from external source
Receiver can verify and prove
who sent a message
Sender can verify and prove
who received a message
Access Control
REPLAY
Limit & control access to host Record a legitimate message
system/services e.g. a login, and replay later
Limit & control access to
networks
Authenticate each party so that
access rights can be assigned
More fine-grained solutions,
e.g. Digital Rights
Management
Auditing Service
Passive Attacks
Interception
Message Contents Traffic Analysis
Only monitors channel (threat to confidentiality)
Difficult to Detect -> Incentive to Prevent
Countermeasures?
Active Attacks
Interruption Modification Fabrication
Denial of Service (INTEGRITY) Masquerade
(AVAILABILITY) (AUTHENTICITY)
Modification of, or creation of a false data stream
Hard to Prevent -> Incentive to Detect and Recover
REPLAYS are a very powerful form of active attack where a message
is intercepted (passive attack) and then replayed to gain access or to
break a protocol. E.g. fake interfaces at bank teller machines.
Symmetric Encryption
• or conventional / private-key / single-key
• sender and recipient share a common key
• all classical encryption algorithms are
private-key
Basic Terminology
• plaintext - the original message
• ciphertext - the 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) - the study of principles/
methods of deciphering ciphertext without knowing key
• cryptology - the 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
Y = EK(X)
X = DK(Y)
• assume encryption algorithm is known
• implies a secure channel to distribute key
Cryptography
• can characterize by:
– type of encryption operations used
• substitution / transposition / product
– number of keys used
• single-key or private / two-key or public
– way in which plaintext is processed
• block / stream
Types of Cryptanalytic Attacks
• ciphertext only
– only know algorithm / ciphertext, statistical, can
identify plaintext
• known plaintext
– know/suspect plaintext & ciphertext to attack cipher
• chosen plaintext
– select plaintext and obtain ciphertext to attack cipher
• chosen ciphertext
– select ciphertext and obtain plaintext to attack cipher
• chosen text
– select either plaintext or ciphertext to en/decrypt to
attack cipher
Brute Force Search
• always possible to simply try every key
• most basic attack, proportional to key size
• assume either know / recognise plaintext
More Definitions
• unconditional security
– no matter how much computer power 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
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
Caesar Cipher
• earliest known substitution cipher
• by Julius Caesar
• first attested use in military affairs
• replaces each letter by 3rd letter on
• example:
meet me after the toga party
PHHW PH DIWHU WKH WRJD SDUWB
Caesar Cipher
• can define transformation as:
a b c d e f g h i j k l m n o p q r s t u v w x y z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
• mathematically give each letter a number
a b c d e f g h i j k l m
0 1 2 3 4 5 6 7 8 9 10 11 12
n o p q r s t u v w x y Z
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
• 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
• then T,R,N,I,O,A,S
• other letters are fairly rare
• cf. Z,J,K,Q,X
• have tables of single, double & triple letter
frequencies
English Letter Frequencies
Use in Cryptanalysis
• key concept - monoalphabetic substitution
ciphers do not change relative letter frequencies
• discovered by Arabian scientists in 9th century
• calculate letter frequencies for ciphertext
• compare counts/plots against known values
• if Caesar cipher look for common peaks/ troughs
– peaks at: A-E-I triple, NO pair, RST triple
– troughs at: JK, X-Z
• for monoalphabetic must identify each letter
– tables of common double/triple letters help
Example Cryptanalysis
• given ciphertext:
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX
EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ
• count relative letter frequencies (see text)
• guess P & Z are e and t
• guess ZW is th and hence ZWP is the
• proceeding with trial and error fially get:
it was disclosed yesterday that several informal but
direct contacts have been made with political
representatives of the viet cong in moscow
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
MONAR
CHYBD
EFGIK
LPQST
UVWXZ
Playfair Key Matrix
• Have here the rules for filling in the 5x5
matrix, L to R, top to bottom, first with
keyword after duplicate letters have been
removed, and then with the remain letters,
with I/J used as a single letter. This
example comes from Dorothy Sayer's
book "Have His Carcase", in which Lord
Peter Wimsey solves this, and describes
the use of a probably word attack.
Encrypting and Decrypting
• plaintext encrypted two letters at a time:
1. if a pair is a repeated letter, insert a filler like 'X',
eg. "balloon" encrypts as "ba lx lo on"
2. if both letters fall in the same row, replace each with
letter to right (wrapping back to start from end),
eg. “ar" encrypts as "RM"
3. if both letters fall in the same column, replace each
with the letter below it (again wrapping to top from
bottom), eg. “mu" encrypts to "CM"
4. otherwise each letter is replaced by the one in its
row in the column of the other letter of the pair, eg.
“hs" encrypts to "BP", and “ea" to "IM" or "JM" (as
desired)
Security of the 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. US &
British military in WW1)
• it can be broken, given a few hundred letters
• since still has much of plaintext structure
Polyalphabetic Ciphers
• another approach to improving security is to use
multiple cipher alphabets
• called polyalphabetic substitution ciphers
• makes 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
Polyalphabetic Ciphers
• One approach to reducing the "spikyness" of
natural language text is used the Playfair cipher
which encrypts more than one letter at once. We
now consider the other alternative, using
multiple cipher alphabets in turn. This gives the
attacker more work, since many alphabets need
to be guessed, and because the frequency
distribution is more complex, since the same
plaintext letter could be replaced by several
ciphertext letters, depending on which alphabet
is used.
Vigenère Cipher
• simplest polyalphabetic substitution cipher
is the Vigenère 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
• 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
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
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
• have problem of 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 Transposition Ciphers
• a more complex scheme
• 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
Plaintext: a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
Ciphertext: TTNAAPTMTSUOAODWCOIXKNLYPETZ
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 product cipher
• were 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
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
Modern Block Ciphers
• now look at modern block ciphers
• one of the most widely used types of
cryptographic algorithms
• provide secrecy /authentication services
• focus on DES (Data Encryption Standard)
• illustrate block cipher design principles
Modern Block Ciphers
• Modern block ciphers are widely used to
provide encryption of quantities of
information, and/or a cryptographic
checksum to ensure the contents have not
been altered. We continue to use block
ciphers because they are comparatively fast,
and because we know a fair amount about
how to design them. Will use the widely
known DES algorithm to illustrate some key
block cipher design principles.
Block vs Stream Ciphers
• block ciphers process messages in blocks,
each of which is then en/decrypted
• like a substitution on very big characters
– 64-bits or more
• stream ciphers process messages a bit or
byte at a time when en/decrypting
• many current ciphers are block ciphers
• broader range of applications
Block vs Stream Ciphers
• Block ciphers work a on block / word at a
time, which is some number of bits. All of
these bits have to be available before the
block can be processed. Stream ciphers
work on a bit or byte of the message at a
time, hence process it as a “stream”. Block
ciphers are currently better analysed, and
seem to have a broader range of
applications, hence focus on them.
Block Cipher Principles
• most symmetric block ciphers are based on a
Feistel Cipher Structure
• needed since must be able to decrypt ciphertext to
recover messages efficiently
• block ciphers look like an extremely large
substitution
• would need table of 264 entries for a 64-bit block
• instead create from smaller building blocks
• using idea of a product cipher
Block Cipher Principles
• Most symmetric block encryption algorithms in
current use are based on a structure referred to
as a Feistel block cipher. A block cipher
operates on a plaintext block of n bits to produce
a ciphertext block of n bits. An arbitrary
reversible substitution cipher for a large block
size is not practical, however, from an
implementation and performance point of view.
Block Cipher Principles
• In general, for an n-bit general substitution block
cipher, the size of the key is n x 2n. For a 64-bit
block, which is a desirable length to thwart
statistical attacks, the key size is 64 x 264 = 270 =
1021 bits. In considering these difficulties, Feistel
points out that what is needed is an
approximation to the ideal block cipher system
for large n, built up out of components that are
easily realizable.
Claude Shannon and Substitution-
Permutation Ciphers
• Claude Shannon introduced idea of substitution-
permutation (S-P) networks in 1949 paper
• form basis of modern block ciphers
• S-P nets are based on the two primitive
cryptographic operations seen before:
– substitution (S-box)
– permutation (P-box)
• provide confusion & diffusion of message & key
Confusion and Diffusion
• cipher needs to completely obscure
statistical properties of original message
• a one-time pad does this
• more practically Shannon suggested
combining S & P elements to obtain:
• diffusion – dissipates statistical structure
of plaintext over bulk of ciphertext
• confusion – makes relationship between
ciphertext and key as complex as possible
Electronic Codebook Book (ECB)
– message is broken into independent blocks
which are encrypted each block is a value
which is substituted, like a codebook, hence
name each block is encoded independently of
the other blocks
– Ci = DESK1 (Pi)
– uses: secure transmission of single values
Feistel Cipher Structure
• Horst Feistel devised the feistel cipher
– based on concept of invertible product cipher
• partitions input block into two halves
– process through multiple rounds which
– perform a substitution on left data half
– based on round function of right half & subkey
– then have permutation swapping halves
• implements Shannon’s S-P net concept
Feistel Cipher Structure
• One of Feistel's main contributions was the
invention of a suitable structure which adapted
Shannon's S-P network in an easily inverted
structure. It partitions input block into two
halves which are processed through
multiple rounds which perform a
substitution on left data half, based on
round function of right half & subkey, and
then have permutation swapping halves.
Feistel Cipher Structure
• Essentially the same h/w or s/w is used for
both encryption and decryption, with just a
slight change in how the keys are used.
One layer of S-boxes and the following P-
box are used to form the round function.
Feistel Cipher Structure
Stallings Figure 3.2 illustrates the
classical feistel cipher structure,
with data split in 2 halves,
processed through a number of
rounds which perform a
substitution on left half using
output of round function on right
half & key, and a permutation
which swaps halves, as listed
previously.
Feistel Cipher Design Elements
• block size
• key size
• number of rounds
• subkey generation algorithm
• round function
• fast software en/decryption
• ease of analysis
Feistel Cipher Design Elements
• The exact realization of a Feistel network
depends on the choice of the following
parameters and design features:
• block size - increasing size improves
security, but slows cipher
• key size - increasing size improves
security, makes exhaustive key searching
harder, but may slow cipher
• number of rounds - increasing number
improves security, but slows cipher
Feistel Cipher Design Elements
• subkey generation algorithm - greater
complexity can make analysis harder, but
slows cipher
• round function - greater complexity can
make analysis harder, but slows cipher
• fast software en/decryption - more
recent concern for practical use
• ease of analysis - for easier validation
& testing of strength
Feistel Cipher Decryption
The process of decryption with a
Feistel cipher, as shown in Stallings
Figure 3.3, is essentially the same
as the encryption process. The rule
is as follows: Use the ciphertext as
input to the algorithm, but use the
subkeys Ki in reverse order. That is,
use Kn in the first round, Kn–1 in
the second round, and so on until
K1 is used in the last round. This is
a nice feature because it means we
need not implement two different
algorithms, one for encryption and
one for decryption.
Data Encryption Standard (DES)
• most widely used block cipher in world
• adopted in 1977 by NBS (now NIST)
– as FIPS PUB 46
• encrypts 64-bit data using 56-bit key
• has widespread use
• has been considerable controversy over
its security
Data Encryption Standard (DES)
• The most widely used private key block
cipher, is the Data Encryption Standard
(DES). It was adopted in 1977 as Federal
Information Processing Standard 46 (FIPS
PUB 46). DES encrypts data in 64-bit
blocks using a 56-bit key. The DES enjoys
widespread use. It has also been the
subject of much controversy its security.
Block Ciphers:
Modes of Use
• ECB: Electronic Codebook
• CBC: Cipherblock Chaining
• CFB: Cipher Feedback
• OFB: Output Feedback
Cryptography
7/11/2011 | pag. 91
Modes of Operation
• ECB: Electronic CodeBook mode:
– Encrypt each 64-bit block independently
– Attacker could build codebook
• CBC: Cipher Block Chaining mode:
– Encryption: Ci = EK(Pi Ci-1)
– Decryption: Pi = Ci-1 DK(Ci)
• CFB, OFB: allow byte-wise encryption
– Cipher FeedBack, Output FeedBack
Block Ciphers – ECB:
Electronic Codebook Mode
Cryptography
7/11/2011 | pag. 93
Block Ciphers – ECB:
Electronic Codebook Mode
Cryptography
7/11/2011 | pag. 94
Block Ciphers – CBC:
Cipherblock Chaining Mode
Cryptography
7/11/2011 | pag. 95
DES: Overview
• Block cipher: 64 bits plaintext
at a time INITIAL PERMUTATION
• Initial permutation
ROUND 1
rearranges 64 bits (no
cryptographic effect) ROUND 2
• Encoding is in 16 ...
rounds
ROUND 16
INITIAL PERMUTATION-1
ciphertext
DES: One Round
• 64 bits divided into
left, right halves Li-1 Ri-1
• Right half goes
through function f,
mixed with key f
• Right half added to
left half
• Halves swapped
(except in last round) Li Ri
DES: InsiDES
• Expand right side
Ri-1
from 32 to 48 bits
(some get reused)
Expansion
• Add 48 bits of key
(chosen by schedule) Ki
• S-boxes: each set of
6 bits reduced to 4 Eight S-boxes
• P-box permutes 32 P-box
bits
Output
DESign Principles: Inverses
• Equations for round i: Li-1 Ri-1
Li Ri 1
Ri Li 1 f Ri 1
• In other words: f
Ri 1 Li
Li 1 Ri f Li
• So decryption is the
same as encryption
Li Ri
• Last round, no swap:
really is the same
Overview of DES
• 16 cycles of combinations:
– Substitution technique (for confusion)
– Transposition technique (for diffusion)
16x
initial left function
plaintext
phase right F
inverse
ciphertext initial
phase
DES Overview (cont)
• Plaintext encrypted in blocks of 64 bits
• Keys are 64 bits long (only 56 are really needed)
• Standard arithmetic/logical operations - very fast
• Four Modes of Operation
– ECB - Electronic Code Book
– CBC - Cipher Block Chaining
– OFB - Output Feedback
– CFB - Cipher Feedback
DES S-Boxes
• Critical component of DES
• Known (public) implementation standard
but design specs and requirements still
classified
– Some believe requirements and specs contain
a “back door”
– No such weakness yet found by analysis
• Non-linear bit shifting and bit substitutions
– avoids frequency analysis attacks and greatly
weakens differential cryptanalysis attacks as
well
DES S-Boxes (cont)
• “Avalanche criteria”
– condition where every single bit of the ciphertext
depends on every bit of both the cleartext and the key
– DES reaches the avalanche criteria by the 5th round
• Triple DES (3-DES) - simply DES performed
three times with three different keys
– extends key to ~(56 x 3) bits
DES Design Controversy
• although DES standard is public
• was considerable controversy over design
– in choice of 56-bit key (vs Lucifer 128-bit)
– and because design criteria were classified
• subsequent events and public analysis
show in fact design was appropriate
• use of DES has flourished
– especially in financial applications
– still standardised for legacy application use
DES Design Controversy
• Before its adoption as a standard, the
proposed DES was subjected to intense &
continuing criticism over the size of its key
& the classified design criteria.
• Recent analysis has shown despite this
controversy, that DES is well designed.
DES is theoretically broken using
Differential or Linear Cryptanalysis but in
practise is unlikely to be a problem yet.
DES Design Controversy
• Also rapid advances in computing speed
though have rendered the 56 bit key
susceptible to exhaustive key search, as
predicted by Diffie & Hellman.
• DES has flourished and is widely used,
especially in financial applications. It is still
standardized for legacy systems, with
either AES or triple DES for new
applications.
DES Encryption Overview
The overall scheme for DES encryption is
illustrated in Stallings Figure3.4, which takes as
input 64-bits of data and of key.
The left side shows the basic process for
enciphering a 64-bit data block which consists of:
- an initial permutation (IP) which shuffles the 64-
bit input block
- 16 rounds of a complex key dependent round
function involving substitutions & permutations
- a final permutation, being the inverse of IP
The right side shows the handling of the 56-bit key
and consists of:
- an initial permutation of the key (PC1) which
selects 56-bits out of the 64-bits input, in two 28-bit
halves
- 16 stages to generate the 48-bit subkeys using a
left circular shift and a permutation of the two 28-
bit halves
64 bit plaintext block
DES
IP
L0 R0
32 32 K1 (derived from
f 56 bit key)
L1=R0 R1=L0 + f(R0,K1)
repeat 16 times…
K16 (derived from
f 56 bit key)
R16=L15 + f(R15,K16) L16=R15
IP-1
64 bit ciphertext block
IP (Initial Permutation):
8 16 24 32 40 48 56
8 16 24 32 40 48 56
L0 R0
32 32
48 bit subkey
Expansion Permutation
Generator
48
K48 = g(i,K56)
48
48 (The key for
S-Box Substitution each round is
32 deterministically
found from the
P-Box Permutation input 56 bit key).
32
32 32
L1 R1
32
Expansion Permutation
48
1 4 5 8 9 12 13 16 17 20 21 24 25 28 29 32
1 48
48
48
48
1 48
X-OR with 48 bit key
1 48
48
S-Box Substitution
32
1 48
S-box S-box S-box S-box S-box S-box S-box S-box
1 2 3 4 5 6 7 8
1 4 5 8 9 12 13 16 17 20 21 24 25 28 29 32
32
P-Box Permutation
32
1 4 5 8 9 12 13 16 17 20 21 24 25 28 29 32
1 4 5 8 9 12 13 16 17 20 21 24 25 28 29 32
IP-1 (Final Permutation):
8 16 24 32 40 48 56
8 16 24 32 40 48 56
Initial Key Permutation
8 16 24 32 40 48 56 64
8 16 24 32 40 48 56
Key Split & Shift & Compress
8 16 24 32 40 48 56
K56
Shift left by Ni Shift left by Ni
Shift accumulates every round Ni = {1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}
8 16 24 32 40 48 56
K48
8 16 24 32 40 48
DES Advantages:
Very Fast:
Ideally suited for implementation
in hardware (bit shifts, look-ups etc). plaintext block
Dedicated hardware (in 1996) could 56 bit Key
f
run DES at 200 Mbyte/s.
Well suited for voice, video etc. ciphertext block
DES Security:
Not too good:
Trying all 256 possible keys plaintext block
is not that hard these days.
(Thank the NSA for this)
56 bit Key
f
If you spend ~$25k you can build
a DES password cracker that can EFF
will succeed in a few hours.
ciphertext block
Back in 1975 this would have cost
a few billion $$. It is widely believed
that the NSA did this.
Similar algorithms with longer keys are available today (IDEA).
Initial Permutation IP
• first step of the data computation
• IP reorders the input data bits
• even bits to LH half, odd bits to RH half
• quite regular in structure (easy in h/w)
• example:
IP(675a6967 5e5a6b5a) = (ffb2194d
004df6fb)
DES Round Structure
• uses two 32-bit L & R halves
• as for any Feistel cipher can describe as:
Li = Ri–1
Ri = Li–1 F(Ri–1, Ki)
• F takes 32-bit R half and 48-bit subkey:
– expands R to 48-bits using perm E
– adds to subkey using XOR
– passes through 8 S-boxes to get 32-bit result
– finally permutes using 32-bit perm P
DES Round Structure
• Detail here the internal structure of the DES round
function F, which takes R half & subkey, and
processes them through E, add subkey, S & P.
• This follows the classic structure for a feistel cipher.
• Note that the s-boxes provide the “confusion” of
data and key values, whilst the permutation P then
spreads this as widely as possible, so each S-box
output affects as many S-box inputs in the next
round as possible, giving “diffusion”.
Avalanche Effect
• key desirable property of encryption alg
where a change of one input or key bit
results in changing approx half output bits
making attempts to “home-in” by guessing
keys impossible
• DES exhibits strong avalanche
Strength of DES – Key Size
• 56-bit keys have 256 = 7.2 x 1016 values
• brute force search looks hard
• recent advances have shown is possible
– in 1997 on Internet in a few months
– in 1998 on dedicated h/w (EFF) in a few days
– in 1999 above combined in 22hrs!
• still must be able to recognize plaintext
• must now consider alternatives to DES
Strength of DES – Key Size
• Since its adoption as a federal standard,
there have been lingering concerns about the
level of security provided by DES in two
areas: key size and the nature of the
algorithm.
• With a key length of 56 bits, there are 2^56
possible keys, which is approximately
7.2*10^16 keys. Thus a brute-force attack
appeared impractical.
Strength of DES – Key Size
• However DES was finally and definitively
proved insecure in July 1998, when the
Electronic Frontier Foundation (EFF)
announced that it had broken a DES
encryption using a special-purpose "DES
cracker" machine that was built for less than
$250,000. The attack took less than three
days. The EFF has published a detailed
description of the machine, enabling others to
build their own cracker [EFF98].
Strength of DES – Key Size
• There have been other demonstrated breaks of the DES
using both large networks of computers & dedicated h/w,
including:
• - 1997 on a large network of computers in a few months
• - 1998 on dedicated h/w (EFF) in a few days
• - 1999 above combined in 22hrs!
• It is important to note that there is more to a key-search
attack than simply running through all possible keys. Unless
known plaintext is provided, the analyst must be able to
recognize plaintext as plaintext.
• Clearly must now consider alternatives to DES, the most
important of which are AES and triple DES.
Strength of DES – Analytic Attacks
• now have several analytic attacks on DES
• these utilise some deep structure of the cipher
– by gathering information about encryptions
– can eventually recover some/all of the sub-key bits
– if necessary then exhaustively search for the rest
• generally these are statistical attacks
• include
– differential cryptanalysis
– linear cryptanalysis
– related key attacks
Strength of DES – Analytic Attacks
• Another concern is the possibility that cryptanalysis is
possible by exploiting the characteristics of the DES
algorithm. The focus of concern has been on the eight
substitution tables, or S-boxes, that are used in each iteration.
These techniques utilise some deep structure of the cipher by
gathering information about encryptions so that eventually you
can recover some/all of the sub-key bits, and then
exhaustively search for the rest if necessary. Generally these
are statistical attacks which depend on the amount of
information gathered for their likelihood of success. Attacks of
this form include differential cryptanalysis. linear
cryptanalysis, and related key attacks.
Strength of DES – Timing Attacks
• attacks actual implementation of cipher
• use knowledge of consequences of
implementation to derive information about
some/all subkey bits
• specifically use fact that calculations can
take varying times depending on the value
of the inputs to it
• particularly problematic on smartcards
Strength of DES – Timing Attacks
• A timing attack is one in which information about
the key or the plaintext is obtained by observing
how long it takes a given implementation to perform
decryptions on various ciphertexts. A timing attack
exploits the fact that an encryption or decryption
algorithm often takes slightly different amounts of
time on different inputs. The AES analysis process
has highlighted this attack approach, and showed
that it is a concern particularly with smartcard
implementations, though DES appears to be fairly
resistant to a successful timing attack.
DES Design Criteria
• 7 criteria for S-boxes provide for
– non-linearity
– resistance to differential cryptanalysis
– good confusion
• 3 criteria for permutation P provide for
– increased diffusion
Block Cipher Design
• basic principles still like Feistel’s in 1970’s
• number of rounds
– more is better, exhaustive search best attack
• function f:
– provides “confusion”, is nonlinear, avalanche
– have issues of how S-boxes are selected
• key schedule
– complex subkey creation, key avalanche
The RSA Algorithm
Private-Key Cryptography
traditional private/secret/single key
cryptography uses one key
shared by both sender and receiver
if this key is disclosed communications are
compromised
also is symmetric, parties are equal
Public-Key Cryptography
probably most significant advance in the 3000
year history of cryptography
uses two keys – a public & a private key
asymmetric since parties are not equal
uses clever application of number theoretic
concepts to function
complements rather than replaces private key
crypto
Public-Key Cryptography
public-key/two-key/asymmetric cryptography
involves the use of two keys:
– a public-key, which may be known by anybody, and
can be used to encrypt messages, and verify
signatures
– a private-key, known only to the recipient, used to
decrypt messages, and sign (create) signatures
is asymmetric because
– those who encrypt messages or verify signatures
cannot decrypt messages or create signatures
Public-Key Cryptography
Why Public-Key Cryptography?
developed to address two key issues:
– key distribution – how to have secure communications
in general without having to trust a KDC with your key
– digital signatures – how to verify a message comes
intact from the claimed sender
public invention due to Whitfield Diffie & Martin
Hellman at Stanford Uni in 1976
– known earlier in classified community
Public-Key Characteristics
Public-Key algorithms rely on two keys with the
characteristics that it is:
– computationally infeasible to find decryption key
knowing only algorithm & encryption key
– computationally easy to en/decrypt messages when the
relevant (en/decrypt) key is known
– either of the two related keys can be used for encryption,
with the other used for decryption (in some schemes)
Public-Key Cryptosystems
Public-Key Applications
can classify uses into 3 categories:
– encryption/decryption (provide secrecy)
– digital signatures (provide authentication)
– key exchange (of session keys)
some algorithms are suitable for all uses, others
are specific to one
Security of Public Key Schemes
like private key schemes brute force exhaustive
search attack is always theoretically possible
but keys used are too large (>512bits)
security relies on a large enough difference in
difficulty between easy (en/decrypt) and hard
(cryptanalyse) problems
more generally the hard problem is known, its
just made too hard to do in practise
requires the use of very large numbers
hence is slow compared to private key schemes
RSA
by Rivest, Shamir & Adleman of MIT in 1977
best known & widely used public-key scheme
based on exponentiation in a finite (Galois) field
over integers modulo a prime
– nb. exponentiation takes O((log n)3) operations (easy)
uses large integers (eg. 1024 bits)
security due to cost of factoring large numbers
– nb. factorization takes O(e log n log log n) operations (hard)
RSA Key Setup
each user generates a public/private key pair by:
selecting two large primes at random - p, q
computing their system modulus N=p.q
– note ø(N)=(p-1)(q-1)
selecting at random the encryption key e
where 1
solve following equation to find decryption key d
– e.d=1 mod ø(N) and 0≤d≤N
publish their public encryption key: KU={e,N}
keep secret private decryption key: KR={d,p,q}
RSA Use
to encrypt a message M the sender:
– obtains public key of recipient KU={e,N}
– computes: C=Me mod N, where 0≤M
to decrypt the ciphertext C the owner:
– uses their private key KR={d,p,q}
– computes: M=Cd mod N
note that the message M must be smaller than
the modulus N (block if needed)
Prime Numbers
prime numbers only have divisors of 1 and self
– they cannot be written as a product of other numbers
– note: 1 is prime, but is generally not of interest
eg. 2,3,5,7 are prime, 4,6,8,9,10 are not
prime numbers are central to number theory
list of prime number less than 200 is:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61
67 71 73 79 83 89 97 101 103 107 109 113 127 131
137 139 149 151 157 163 167 173 179 181 191 193
197 199
Prime Factorisation
to factor a number n is to write it as a product of
other numbers: n=a × b × c
note that factoring a number is relatively hard
compared to multiplying the factors together to
generate the number
the prime factorisation of a number n is when its
written as a product of primes
– eg. 91=7×13 ; 3600=24×32×52
Relatively Prime Numbers & GCD
two numbers a, b are relatively prime if have
no common divisors apart from 1
– eg. 8 & 15 are relatively prime since factors of 8 are
1,2,4,8 and of 15 are 1,3,5,15 and 1 is the only common
factor
conversely can determine the greatest common
divisor by comparing their prime factorizations
and using least powers
– eg. 300=21×31×52 18=21×32 hence
GCD(18,300)=21×31×50=6
Fermat's Theorem
ap-1 mod p = 1
– where p is prime and gcd(a,p)=1
also known as Fermat’s Little Theorem
useful in public key and primality testing
Euler Totient Function ø(n)
when doing arithmetic modulo n
complete set of residues is: 0..n-1
reduced set of residues is those numbers
(residues) which are relatively prime to n
– eg for n=10,
– complete set of residues is {0,1,2,3,4,5,6,7,8,9}
– reduced set of residues is {1,3,7,9}
number of elements in reduced set of residues is
called the Euler Totient Function ø(n)
Euler Totient Function ø(n)
to compute ø(n) need to count number of
elements to be excluded
in general need prime factorization, but
– for p (p prime) ø(p) = p-1
– for p.q (p,q prime) ø(p.q) = (p-1)(q-1)
eg.
– ø(37) = 36
– ø(21) = (3–1)×(7–1) = 2×6 = 12
Euler's Theorem
a generalisation of Fermat's Theorem
aø(n)mod N = 1
– where gcd(a,N)=1
eg.
– a=3;n=10; ø(10)=4;
– hence 34 = 81 = 1 mod 10
– a=2;n=11; ø(11)=10;
– hence 210 = 1024 = 1 mod 11
Why RSA Works
because of Euler's Theorem:
aø(n)mod N = 1
– where gcd(a,N)=1
in RSA have:
– N=p.q
– ø(N)=(p-1)(q-1)
– carefully chosen e & d to be inverses mod ø(N)
– hence e.d=1+k.ø(N) for some k
hence :
Cd = (Me)d = M1+k.ø(N) = M1.(Mø(N))q =
M1.(1)q = M1 = M mod N
RSA Example
1. Select primes: p=17 & q=11
2. Compute n = pq =17×11=187
3. Compute ø(n)=(p–1)(q-1)=16×10=160
4. Select e : gcd(e,160)=1; choose e=7
5. Determine d: de=1 mod 160 and d < 160
Value is d=23 since 23×7=161= 10×160+1
6. Publish public key KU={7,187}
7. Keep secret private key KR={23,17,11}
RSA Example cont
sample RSA encryption/decryption is:
given message M = 88 (nb. 88<187)
encryption:
C = 887 mod 187 = 11
decryption:
M = 1123 mod 187 = 88
Exponentiation
can use the Square and Multiply Algorithm
a fast, efficient algorithm for exponentiation
concept is based on repeatedly squaring base
and multiplying in the ones that are needed to
compute the result
look at binary representation of exponent
only takes O(log2 n) multiples for number n
– eg. 75 = 74.71 = 3.7 = 10 mod 11
– eg. 3129 = 3128.31 = 5.3 = 4 mod 11
RSA Key Generation
users of RSA must:
– determine two primes at random - p, q
– select either e or d and compute the other
primes p,q must not be easily derived from
modulus N=p.q
– means must be sufficiently large
– typically guess and use probabilistic test
exponents e, d are inverses, so use Inverse
algorithm to compute the other
RSA Security
three approaches to attacking RSA:
– brute force key search (infeasible given size of numbers)
– mathematical attacks (based on difficulty of computing
ø(N), by factoring modulus N)
– timing attacks (on running of decryption)
Factoring Problem
mathematical approach takes 3 forms:
– factor N=p.q, hence find ø(N) and then d
– determine ø(N) directly and find d
– find d directly
currently believe all equivalent to factoring
– have seen slow improvements over the years
as of Aug-99 best is 130 decimal digits (512) bit with GNFS
– biggest improvement comes from improved algorithm
cf “Quadratic Sieve” to “Generalized Number Field Sieve”
– barring dramatic breakthrough 1024+ bit RSA secure
ensure p, q of similar size and matching other constraints
Timing Attacks
developed in mid-1990’s
exploit timing variations in operations
– eg. multiplying by small vs large number
– or IF's varying which instructions executed
infer operand size based on time taken
RSA exploits time taken in exponentiation
countermeasures
– use constant exponentiation time
– add random delays
– blind values used in calculations
Summary
have considered:
– prime numbers
– Fermat’s and Euler’s Theorems
– Primality Testing
– Chinese Remainder Theorem
– Discrete Logarithms
– principles of public-key cryptography
– RSA algorithm, implementation, security
Assignments
1. Perform encryption and decryption using RSA
algorithm, as in Figure 1, for the following:
① p = 3; q = 11, e = 7; M = 5
② p = 5; q = 11, e = 3; M = 9
Encryption Decryption
Ciphertext
Plaintext 11 Plaintext
887 mod 187 = 11 11 23 mod 187 = 88
88 88
KU = 7, 187 KR = 23, 187
Figure 1. Example of RSA Algorithm
164