Post on 29-Dec-2015
description
transcript
Network Security Network Security EssentialsEssentialsChapter 2Chapter 2
Fourth EditionFourth Editionby William Stallingsby William Stallings
(Based on Lecture slides by (Based on Lecture slides by Lawrie Brown)Lawrie Brown)
Outline
Symmetric encryption Block encryption algorithms Stream ciphers Block cipher modes of operations
Symmetric EncryptionSymmetric Encryption
or conventional / or conventional / private-keyprivate-key / single-key / single-key sender and recipient share a common keysender and recipient share a common key all classical encryption algorithms are all classical encryption algorithms are
private-keyprivate-key was only type prior to invention of public-was only type prior to invention of public-
key in 1970’skey in 1970’s and by far most widely usedand by far most widely used
Some Basic TerminologySome Basic Terminology
plaintextplaintext - original message - original message
ciphertextciphertext - coded message - coded message
ciphercipher - algorithm for transforming plaintext to ciphertext - algorithm for transforming plaintext to ciphertext
keykey - info used in cipher known only to sender/receiver - info used in cipher known only to sender/receiver
encipher (encrypt)encipher (encrypt) - converting plaintext to ciphertext - converting plaintext to ciphertext
decipher (decrypt)decipher (decrypt) - recovering ciphertext from plaintext - recovering ciphertext from plaintext
cryptographycryptography - study of encryption principles/methods - study of encryption principles/methods
cryptanalysis (codebreaking)cryptanalysis (codebreaking) - study of principles/ - study of principles/ methods of deciphering ciphertext methods of deciphering ciphertext withoutwithout knowing key knowing key
cryptologycryptology - field of both cryptography and cryptanalysis - field of both cryptography and cryptanalysis
Symmetric Cipher ModelSymmetric Cipher Model
RequirementsRequirements
two requirements for secure use of two requirements for secure use of symmetric encryption:symmetric encryption: a strong encryption algorithma strong encryption algorithm a secret key known only to sender / receivera secret key known only to sender / receiver
mathematically have:mathematically have:Y Y = E(K, = E(K, XX))X X = D(K, = D(K, YY))
assume encryption algorithm is knownassume encryption algorithm is known implies a secure channel to distribute keyimplies a secure channel to distribute key
CryptographyCryptography
can characterize cryptographic system by:can characterize cryptographic system by: type of encryption operations usedtype of encryption operations used
• substitutionsubstitution• transpositiontransposition• productproduct
number of keys usednumber of keys used• single-key or privatesingle-key or private• two-key or publictwo-key or public
way in which plaintext is processedway in which plaintext is processed• blockblock• streamstream
CryptanalysisCryptanalysis
objective to recover key not just messageobjective to recover key not just message general approaches:general approaches:
cryptanalytic attackcryptanalytic attack brute-force attackbrute-force attack
if either succeed all key use compromisedif either succeed all key use compromised
Cryptanalytic AttacksCryptanalytic Attacks ciphertext onlyciphertext only
only know algorithm & ciphertext, is statistical, only know algorithm & ciphertext, is statistical, know or can identify plaintext know or can identify plaintext
known plaintextknown plaintext know/suspect plaintext & ciphertextknow/suspect plaintext & ciphertext
chosen plaintextchosen plaintext select plaintext and obtain ciphertextselect plaintext and obtain ciphertext
chosen ciphertextchosen ciphertext select ciphertext and obtain plaintextselect ciphertext and obtain plaintext
chosen textchosen text select plaintext or ciphertext to en/decryptselect plaintext or ciphertext to en/decrypt
An encryption scheme: computationally secure if The cost of breaking the cipher exceeds the
value of information The time required to break the cipher exceeds
the lifetime of information
Brute Force SearchBrute Force Search
always possible to simply try every key always possible to simply try every key most basic attack, proportional to key size most basic attack, proportional to key size assume either know / recognise plaintextassume either know / recognise plaintext
Key Size (bits) Number of Alternative Keys
Time required at 1 decryption/µs
Time required at 106 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 (permutation)
26! = 4 1026 2 1026 µs = 6.4 1012 years 6.4 106 years
Feistel Cipher StructureFeistel Cipher Structure
Horst Feistel devised the Horst Feistel devised the feistel cipherfeistel cipher based on concept of invertible product cipherbased on concept of invertible product cipher
partitions input block into two halvespartitions input block into two halves process through multiple rounds whichprocess through multiple rounds which perform a substitution on left data halfperform a substitution on left data half based on round function of right half & subkeybased on round function of right half & subkey then have permutation swapping halvesthen have permutation swapping halves
implements Shannon’s S-P net conceptimplements Shannon’s S-P net concept
Feistel Cipher StructureFeistel Cipher Structure
Feistel Cipher Design ElementsFeistel Cipher Design Elements
block size: 128 bits block size: 128 bits key size: 128 bits key size: 128 bits number of rounds: 16 number of rounds: 16 subkey generation algorithmsubkey generation algorithm round function round function fast software en/decryptionfast software en/decryption ease of analysisease of analysis
Symmetric Block Cipher Algorithms
DES (Data Encryption Standard) 3DES (Triple DES) AES (Advanced Encryption Standard)
Data Encryption Standard (DES)Data Encryption Standard (DES)
most widely used block cipher in world most widely used block cipher in world adopted in 1977 by NBS (now NIST)adopted in 1977 by NBS (now NIST)
as FIPS PUB 46as FIPS PUB 46 encrypts 64-bit data using 56-bit keyencrypts 64-bit data using 56-bit key has widespread usehas widespread use has considerable controversy over its has considerable controversy over its
securitysecurity
DES HistoryDES History
IBM developed Lucifer cipherIBM developed Lucifer cipher by team led by Feistel in late 60’sby team led by Feistel in late 60’s used 64-bit data blocks with 128-bit keyused 64-bit data blocks with 128-bit key
then redeveloped as a commercial cipher then redeveloped as a commercial cipher with input from NSA and otherswith input from NSA and others
in 1973 NBS issued request for proposals in 1973 NBS issued request for proposals for a national cipher standardfor a national cipher standard
IBM submitted their revised Lucifer which IBM submitted their revised Lucifer which was eventually accepted as the DESwas eventually accepted as the DES
DES Design ControversyDES Design Controversy
although DES standard is public, although DES standard is public, considerable controversy over design considerable controversy over design in choice of 56-bit key (vs Lucifer 128-bit)in choice of 56-bit key (vs Lucifer 128-bit) and because design criteria were classified and because design criteria were classified
subsequent events and public analysis subsequent events and public analysis show in fact design was appropriateshow in fact design was appropriate
use of DES has flourisheduse of DES has flourished especially in financial applicationsespecially in financial applications still standardised for legacy application usestill standardised for legacy application use
Time to Break a DES Code (assuming 106 decryptions/s)
Multiple Encryption & DESMultiple Encryption & DES
clear a replacement for DES was neededclear a replacement for DES was needed theoretical attacks that can break ittheoretical attacks that can break it demonstrated exhaustive key search attacksdemonstrated exhaustive key search attacks
AES is a new cipher alternativeAES is a new cipher alternative prior to this alternative was to use multiple prior to this alternative was to use multiple
encryption with DES implementationsencryption with DES implementations Triple-DES is the chosen formTriple-DES is the chosen form
Double-DES?Double-DES?
could use 2 DES encrypts on each blockcould use 2 DES encrypts on each block C = EC = EK2K2(E(EK1K1(P))(P))
issue of reduction to single stageissue of reduction to single stage and have “meet-in-the-middle” attackand have “meet-in-the-middle” attack
works whenever use a cipher twiceworks whenever use a cipher twice since since X = EX = EK1K1(P) = D(P) = DK2K2(C)(C) attack by encrypting P with all keys and storeattack by encrypting P with all keys and store then decrypt C with keys and match X valuethen decrypt C with keys and match X value takes takes O(2O(25656)) steps steps
Triple-DES with Two-KeysTriple-DES with Two-Keys
hence must use 3 encryptionshence must use 3 encryptions would seem to need 3 distinct keyswould seem to need 3 distinct keys
but can use 2 keys with E-D-E sequencebut can use 2 keys with E-D-E sequence C = EC = EK1K1(D(DK2K2(E(EK1K1(P)))(P))) nb encrypt & decrypt equivalent in securitynb encrypt & decrypt equivalent in security if if K1=K2K1=K2 then can work with single DES then can work with single DES
standardized in ANSI X9.17 & ISO8732standardized in ANSI X9.17 & ISO8732 no current known practical attacksno current known practical attacks
several proposed impractical attacks might several proposed impractical attacks might become basis of future attacksbecome basis of future attacks
Triple-DES with Three-KeysTriple-DES with Three-Keys
although no practical attacks on two-key although no practical attacks on two-key Triple-DES have some concernsTriple-DES have some concerns Two-key: key length = 56*2 = 112 bitsTwo-key: key length = 56*2 = 112 bits Three-key: key length = 56*3 = 168 bitsThree-key: key length = 56*3 = 168 bits
can use Triple-DES with Three-Keys to can use Triple-DES with Three-Keys to avoid even theseavoid even these C = EC = EK3K3(D(DK2K2(E(EK1K1(P)))(P)))
has been adopted by some Internet has been adopted by some Internet applications, eg PGP, S/MIMEapplications, eg PGP, S/MIME
Triple DES
OriginsOrigins
clearly a replacement for DES was neededclearly a replacement for DES was needed have theoretical attacks that can break ithave theoretical attacks that can break it have demonstrated exhaustive key search attackshave demonstrated exhaustive key search attacks
can use Triple-DES – but slow, has small blockscan use Triple-DES – but slow, has small blocks US NIST issued call for ciphers in 1997US NIST issued call for ciphers in 1997 15 candidates accepted in Jun 98 15 candidates accepted in Jun 98 5 were shortlisted in Aug-99 5 were shortlisted in Aug-99 Rijndael was selected as the AES in Oct-2000Rijndael was selected as the AES in Oct-2000 issued as FIPS PUB 197 standard in Nov-2001 issued as FIPS PUB 197 standard in Nov-2001
The AES Cipher - Rijndael The AES Cipher - Rijndael
designed by Rijmen-Daemen in Belgium designed by Rijmen-Daemen in Belgium has 128/192/256 bit keys, 128 bit data has 128/192/256 bit keys, 128 bit data an an iterativeiterative rather than rather than feistelfeistel cipher cipher
processes processes data as block of 4 columns of 4 bytesdata as block of 4 columns of 4 bytes operates on entire data block in every roundoperates on entire data block in every round
designed to be:designed to be: resistant against known attacksresistant against known attacks speed and code compactness on many CPUsspeed and code compactness on many CPUs design simplicitydesign simplicity
AES AES Encryption Encryption
ProcessProcess
AES StructureAES Structure data block of data block of 4 columns of 4 bytes is state4 columns of 4 bytes is state key is expanded to array of wordskey is expanded to array of words has 9/11/13 rounds in which state undergoes: has 9/11/13 rounds in which state undergoes:
byte substitution (1 S-box used on every byte) byte substitution (1 S-box used on every byte) shift rows (permute bytes between groups/columns) shift rows (permute bytes between groups/columns) mix columns (subs using matrix multiply of groups) mix columns (subs using matrix multiply of groups) add round key (XOR state with key material)add round key (XOR state with key material) view as alternating XOR key & scramble data bytesview as alternating XOR key & scramble data bytes
initial XOR key material & incomplete last roundinitial XOR key material & incomplete last round with fast XOR & table lookup implementationwith fast XOR & table lookup implementation
AES StructureAES Structure
AES RoundAES Round
Random NumbersRandom Numbers
many uses of many uses of random numbersrandom numbers in cryptography in cryptography noncesnonces in authentication protocols to prevent replay in authentication protocols to prevent replay session keyssession keys public key generationpublic key generation keystream for a one-time padkeystream for a one-time pad
in all cases its critical that these values be in all cases its critical that these values be statistically random, uniform distribution, independentstatistically random, uniform distribution, independent unpredictability of future values from unpredictability of future values from previous valuesprevious values
true random numbers provide thistrue random numbers provide this care needed with generated random numberscare needed with generated random numbers
Pseudorandom Number Pseudorandom Number Generators (PRNGs)Generators (PRNGs)
often use deterministic algorithmic often use deterministic algorithmic techniques to create “random numbers”techniques to create “random numbers” although are not truly randomalthough are not truly random can pass many tests of “randomness”can pass many tests of “randomness”
known as “pseudorandom numbers”known as “pseudorandom numbers” created by “created by “Pseudorandom Number Pseudorandom Number
Generators (PRNGs)”Generators (PRNGs)”
Random & Pseudorandom Random & Pseudorandom Number GeneratorsNumber Generators
PRNG Algorithm Design
Purpose-built algorithms E.g. RC4
Algorithms based on existing cryptographic algorithms Symmetric block ciphers Asymmetric ciphers Hash functions and message authentication
codes
Stream Cipher StructureStream Cipher Structure
Stream Cipher PropertiesStream Cipher Properties
some design considerations are:some design considerations are: long period with no repetitions long period with no repetitions statistically random statistically random depends on large enough key, e.g. 128 bitsdepends on large enough key, e.g. 128 bits large linear complexitylarge linear complexity
properly designed, can be as secure as a properly designed, can be as secure as a block cipher with same size keyblock cipher with same size key
but usually simpler & fasterbut usually simpler & faster
RC4RC4
a proprietary cipher owned by RSA DSI a proprietary cipher owned by RSA DSI another Ron Rivest design, simple but effectiveanother Ron Rivest design, simple but effective variable key size, byte-oriented stream cipher variable key size, byte-oriented stream cipher widely used (web SSL/TLS, wireless WEP/WPA) widely used (web SSL/TLS, wireless WEP/WPA) key forms random permutation of all 8-bit values key forms random permutation of all 8-bit values uses that permutation to scramble input info uses that permutation to scramble input info
processed a byte at a time processed a byte at a time
RC4 Key Schedule RC4 Key Schedule
starts with an array S of numbers: 0..255 starts with an array S of numbers: 0..255 use key to well and truly shuffle use key to well and truly shuffle S forms S forms internal stateinternal state of the cipher of the cipher
for i = 0 to 255 dofor i = 0 to 255 doS[i] = i;S[i] = i;T[i] = K[i mod keylen];T[i] = K[i mod keylen];
j = 0j = 0for i = 0 to 255 do for i = 0 to 255 do
j = (j + S[i] + T[i]) (mod 256);j = (j + S[i] + T[i]) (mod 256);swap (S[i], S[j]);swap (S[i], S[j]);
RC4 EncryptionRC4 Encryption
encryption continues shuffling array valuesencryption continues shuffling array values sum of shuffled pair selects "stream key" sum of shuffled pair selects "stream key"
value from permutationvalue from permutation XOR S[t] with next byte of message to XOR S[t] with next byte of message to
en/decrypten/decrypti = j = 0;i = j = 0;
for each message byte Mfor each message byte Mii
i = (i + 1) (mod 256);i = (i + 1) (mod 256);j = (j + S[i]) (mod 256);j = (j + S[i]) (mod 256);swap(S[i], S[j]);swap(S[i], S[j]);t = (S[i] + S[j]) (mod 256); t = (S[i] + S[j]) (mod 256);
CCii = M = Mii XOR S[t]; XOR S[t];
RC4 OverviewRC4 Overview
RC4 SecurityRC4 Security
claimed secure against known attacksclaimed secure against known attacks have some analyses, none practical have some analyses, none practical
result is very non-linear result is very non-linear since RC4 is a stream cipher, must since RC4 is a stream cipher, must never never
reuse a keyreuse a key have a concern with WEP, but due to key have a concern with WEP, but due to key
handling rather than RC4 itself handling rather than RC4 itself
Modes of OperationModes of Operation
block ciphers encrypt fixed size blocksblock ciphers encrypt fixed size blocks eg. DES encrypts 64-bit blocks with 56-bit key eg. DES encrypts 64-bit blocks with 56-bit key
need some way to en/decrypt arbitrary need some way to en/decrypt arbitrary amounts of data in practiseamounts of data in practise
NIST SP 800-38ANIST SP 800-38A defines 5 modes defines 5 modes have have blockblock and and streamstream modes modes to cover a wide variety of applicationsto cover a wide variety of applications can be used with any block ciphercan be used with any block cipher
The Most Important Modes
Electronic Codebook Mode (ECB) Cipher Block Chaining Mode (CBC) Cipher Feedback Mode (CFB) Counter Mode (CTR)
Electronic Codebook Book (ECB)Electronic Codebook Book (ECB)
message is broken into independent message is broken into independent blocks which are encrypted blocks which are encrypted
each block is a value which is substituted, each block is a value which is substituted, like a codebook, hence name like a codebook, hence name
each block is encoded independently of each block is encoded independently of the other blocks the other blocks CCii = E = EKK(P(Pii))
uses: secure transmission of single valuesuses: secure transmission of single values
Advantages and Limitations of Advantages and Limitations of ECBECB
message repetitions may show in ciphertext message repetitions may show in ciphertext if aligned with message block if aligned with message block particularly with data such as graphics particularly with data such as graphics or with messages that change very little, which or with messages that change very little, which
become a code-book analysis problem become a code-book analysis problem weakness is due to the encrypted message weakness is due to the encrypted message
blocks being independent blocks being independent main use is sending a few blocks of data main use is sending a few blocks of data
Cipher Block Chaining (CBC) Cipher Block Chaining (CBC)
message is broken into blocks message is broken into blocks linked together in encryption operation linked together in encryption operation each previous cipher blocks is chained each previous cipher blocks is chained
with current plaintext block, hence name with current plaintext block, hence name use Initial Vector (IV) to start process use Initial Vector (IV) to start process
CCii = E = EKK(P(Pii XOR C XOR Ci-1i-1))
CC00 = IV = IV
uses: bulk data encryption, authenticationuses: bulk data encryption, authentication
Cipher Cipher Block Block
Chaining Chaining (CBC)(CBC)
Cipher FeedBack (CFB)Cipher FeedBack (CFB)
message is treated as a stream of bits message is treated as a stream of bits added to the output of the block cipher added to the output of the block cipher result is feed back for next stage (hence name) result is feed back for next stage (hence name) standard allows any number of bit (1,8, 64 or standard allows any number of bit (1,8, 64 or
128 etc) to be fed back 128 etc) to be fed back denoted CFB-1, CFB-8, CFB-64, CFB-128 etc denoted CFB-1, CFB-8, CFB-64, CFB-128 etc
most efficient to use all bits in block (64 or 128)most efficient to use all bits in block (64 or 128)CCii = P = Pii XOR E XOR EKK(C(Ci-1i-1))
CC00 = IV = IV uses: stream data encryption, authenticationuses: stream data encryption, authentication
s-bits-bitCipher Cipher
FeedBack FeedBack (CFB-s)(CFB-s)
Advantages and Limitations of Advantages and Limitations of CFBCFB
appropriate when data arrives in bits/bytes appropriate when data arrives in bits/bytes most common stream mode most common stream mode Limitation: need to stall while doing block Limitation: need to stall while doing block
encryption after every n-bits encryption after every n-bits note that the block cipher is used in note that the block cipher is used in
encryptionencryption mode at mode at bothboth ends ends errors propagate for several blocks after errors propagate for several blocks after
the error the error
Counter (CTR)Counter (CTR)
a “new” mode, though proposed early ona “new” mode, though proposed early on similar to OFB but encrypts counter value similar to OFB but encrypts counter value
rather than any feedback valuerather than any feedback value must have a different key & counter value must have a different key & counter value
for every plaintext block (never reused)for every plaintext block (never reused)OOii = E = EKK(i)(i)
CCii = P = Pii XOR O XOR Oii
uses: high-speed network encryptionsuses: high-speed network encryptions
Counter Counter (CTR)(CTR)
Advantages and Limitations of Advantages and Limitations of CTRCTR
efficiencyefficiency can do parallel encryptions in h/w or s/wcan do parallel encryptions in h/w or s/w can preprocess in advance of needcan preprocess in advance of need good for bursty high speed linksgood for bursty high speed links
random access to encrypted data blocksrandom access to encrypted data blocks provable security (good as other modes)provable security (good as other modes) but must ensure never reuse key/counter but must ensure never reuse key/counter
values, otherwise could break (cf OFB)values, otherwise could break (cf OFB)
Output Feedback Mode (OFB)