Chapter 30
Cryptography
30.1   Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
 30-1 INTRODUCTION
  Let us introduce the issues involved in cryptography.
  First, we need to define some terms; then we give some
  taxonomies.
 Topics discussed in this section:
 Definitions
 Two Categories
30.2
  Figure 30.1 Cryptography components
30.3
  Figure 30.2 Categories of cryptography
30.4
  Figure 30.3 Symmetric-key cryptography
30.5
       Note
         In symmetric-key cryptography, the
            same key is used by the sender
                    (for encryption)
           and the receiver (for decryption).
                  The key is shared.
30.6
  Figure 30.4 Asymmetric-key cryptography
30.7
  Figure 30.6 Comparison between two categories of cryptography
30.8
 30-2 SYMMETRIC-KEY CRYPTOGRAPHY
  Symmetric-key cryptography started thousands of years
  ago when people needed to exchange secrets (for
  example, in a war). We still mainly use symmetric-key
  cryptography in our network security.
 Topics discussed in this section:
 Traditional Ciphers
 Simple Modern Ciphers
 Modern Round Ciphers
 Mode of Operation
30.9
  Figure 30.7 Traditional ciphers
30.10
    Note
        A substitution cipher replaces one
              symbol with another.
     Monoalphabetic replaces the same symbol
    with the same another symbol.
     Polyalphabetic replaces the same symbol
    with different symbols at each occurrence.
30.11
    Note
    The shift cipher is sometimes referred to
     as the Caesar cipher. (monoalphabetic)
30.12
        Example 30.3
 Use the shift cipher with key = 15 to encrypt the message
 “HELLO.”
 Solution
 We encrypt one character at a time. Each character is
 shifted 15 characters “down”. Letter H is encrypted to W.
 Letter E is encrypted to T. The first L is encrypted to A.
 The second L is also encrypted to A. And O is encrypted to
 D. The cipher text is WTAAD.
30.13
        Example 30.4
 Use the shift cipher with key = 15 to decrypt the message
 “WTAAD.”
 Solution
 We decrypt one character at a time. Each character is
 shifted 15 characters “up”. Letter W is decrypted to H.
 Letter T is decrypted to E. The first A is decrypted to L.
 The second A is decrypted to L. And, finally, D is
 decrypted to O. The plaintext is HELLO.
30.14
    Note
         A transposition cipher reorders
        (permutes) symbols in a block of
          symbols (shuffle poker cards)
30.15
  Figure 30.8 Transposition cipher
30.16
        Example 30.5
 Encrypt the message “HELLO MY DEAR,” using the key
 shown in Figure 30.8.
 Solution
 We first remove the spaces in the message. We then divide
 the text into blocks of four characters. We add a bogus
 character Z at the end of the third block. The result is
 HELL OMYD EARZ. We create a three-block ciphertext
 ELHLMDOYAZER.
30.17
        Example 30.6
 Using Example  30.5,          decrypt    the    message
 “ELHLMDOYAZER”.
 Solution
 The result is HELL OMYD EARZ. After removing the
 bogus character and combining the characters, we get the
 original message “HELLO MY DEAR.”
30.18
        Modern Cryptography
30.19
  Figure 30.9 XOR cipher
30.20
  Figure 30.10 Rotation cipher
30.21
  Figure 30.11 S-box (substitution box)
30.22
 Figure 30.12 P-boxes (permutation box): straight, expansion, and compression
30.23
  Figure 30.13 DES (Data Encryption Standard)
30.24
  Figure 30.14 One round in DES ciphers
30.25
  Figure 30.16 Triple DES (to resolve the short key issue for DES)
30.26
    Table 30.1 AES (advanced encryption standard) configuration
                       AES is the replacement of DES
    Note
        AES has three different configurations
        with respect to the number of rounds
                    and key size.
30.27
 30-3 ASYMMETRIC-KEY CRYPTOGRAPHY
  An asymmetric-key (or public-key) cipher uses two
  keys: one private and one public. We discuss two
  algorithms: RSA and Diffie-Hellman.
 Topics discussed in this section:
 RSA
 Diffie-Hellman
30.28
  Figure 30.24 RSA
30.29
RSA: Choosing keys
1. Choose two large prime numbers p, q.
   (e.g., 1024 bits each)
2. Compute n = pq,  = (p-1)(q-1)
3. Choose e (with e<n) that has no common factors
   with . (e,  are “relatively prime”).
4. Choose d such that ed-1 is exactly divisible by .
   (in other words: ed mod  = 1 ).
5. Public key is (n,e). Private key is (n,d).
                   +                     -
                  KB                    KB
RSA: Encryption, decryption
0. Given (n,e) and (n,d) as computed above
1. To encrypt bit pattern, m, compute
c = m e mod n
        (i.e., remainder when me is divided by n)
2. To decrypt received bit pattern, c, compute
m = c d mod n
         (i.e., remainder when c d is divided by n)
     Magic     m = (m e mod n)
                               d
                                 mod n
   happens!               c
 RSA example:
 Bob chooses p=5, q=7. Then n=35,  =24.
            e=5 (so e,  relatively prime).
            d=29 (so ed-1 exactly divisible by ).
         letter m                   me                   c = me mod n
encrypt:
           l    12                1524832                      17
decrypt: c          cd                               m = cd mod n letter
        17    481968572106750915091411825223071697
                                                          12        l
               Computational very extensive
    Note
        In RSA, e and n are announced to the
           public; d and  are kept secret.
            Public cryptography is very
             computational expensive.
30.33