Cryptography and Network Security: Sixth Edition by William Stallings
Cryptography and Network Security: Sixth Edition by William Stallings
and Network
Security
Sixth Edition
by William Stallings
Chapter 3
Block Ciphers and the Data
Encryption Standard
“All the afternoon Mungo had been working on
Stern's code, principally with the aid of the latest
messages which he had copied down at the Nevin
Square drop. Stern was very confident. He must be
well aware London Central knew about that drop. It
was obvious that they didn't care how often Mungo
read their messages, so confident were they in the
impenetrability of the code.”
—Talking to Strange Men,
Ruth Rendell
Stream Cipher
Block Cipher
Stream Cipher and
Block Cipher
Table 3.1
Encryption and Decryption Tables for Substitution Cipher of Figure 3.2
Feistel Cipher
• Proposed the use of a cipher that alternates
substitutions and permutations
DES
Example
(Table can be found on
page 75 in textbook)
Note: DES subkeys are shown as eight 6-bit values in hex format
Table 3.3 Avalanche Effect in DES: Change in Plaintext
Table 3.4 Avalanche Effect in DES: Change in Key
Table 3.5
Average Time Required for Exhaustive Key Search
Strength of DES
• Timing attacks
• 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
• Exploits the fact that an encryption or decryption
algorithm often takes slightly different amounts of
time on different inputs
• So far it appears unlikely that this technique will
ever be successful against DES or more powerful
symmetric ciphers such as triple DES and AES
Block Cipher Design Principles:
Number of Rounds
Block Cipher Design Principles:
Design of Function F
• The heart of a Feistel The algorithm should have good
block cipher is the avalanche properties
function F
• The more nonlinear F, the
more difficult any type of
cryptanalysis will be
•The SAC and BIC
criteria appear to
strengthen the
effectiveness of the
confusion function
Block Cipher Design Principles:
Key Schedule Algorithm
• With any Feistel block cipher, the key is used to
generate one subkey for each round
• In general, we would like to select subkeys to
maximize the difficulty of deducing individual
subkeys and the difficulty of working back to the
main key
• It is suggested that, at a minimum, the key
schedule should guarantee key/ciphertext Strict
Avalanche Criterion and Bit Independence
Criterion
Summary
• Traditional Block Cipher • The strength of DES
Structure • Use of 56-bit keys
• Stream ciphers • Nature of the DES
• Block ciphers algorithm
• Feistel cipher • Timing attacks