Cryptography - Lecture 8 - Modern Block Ciphers

This lesson discusses the the most famous block cipher - DES.

Objectives

  • know how DES works in general
  • be able to trace a round of DES by hand implementing all the functions
  • Preliminary Reading

    Stallings, "Cryptography and Network Security", Ch 3.3-3.4 pp65-75.

    Lecture Content

    DES

    1. DES (Data Encryption Standard) History
    2. DES Design Controversy
    3. DES Security
    4. Overview of the DES Encryption Algorithm
    5. DES Key Schedule
    6. PC1
    7. PC2
    8. Key Rotation Schedule
    9. Example Trace of DES Key Schedule
    10. DES Data Computation
    11. Initial Permutation IP
    12. Expansion Function E
    13. Key Addition
    14. Substitution Boxes S
    15. Permutation P
    16. Addition to L half and Swap
    17. Final Permutation
    18. DES Decryption
    19. Tracing a DES Round
    20. descert

    Summary

    1. Summary

    Exercises

    1. Exercises
      1. Given the following triple and descert output:
        K: 1c587f1c13924fef  P: 63fac0d034d9f793  C: e4c70d01ea89efc5
        
        keyinit(1c587f1c, 13924fef) 
        endes[P=(63fac0d0, 34d9f793)]
          IP(P) = (L0=6ffa50e1, R0=ee5322c3)
          Rnd01 f(R00=ee5322c3, SK01=(20 12 03 2b 3d 3f 35 0e)) = 3c02269f ^ L00
          Rnd02 f(R01=53f8767e, SK02=(02 08 0b 1e 13 39 3d 1f)) = d3103e4d ^ L01
          Rnd03 f(R02=3d431c8e, SK03=(0d 05 20 0a 37 3f 17 38)) = b0b9e6ef ^ L02
          Rnd04 f(R03=e3419091, SK04=(08 22 25 20 1a 1d 3d 2d)) = d3f17cd6 ^ L03
          Rnd05 f(R04=eeb26058, SK05=(22 06 30 15 36 2f 32 3e)) = b4b8c5e3 ^ L04
          Rnd06 f(R05=57f95572, SK06=(11 12 1c 18 3b 15 3e 3d)) = f24ca55e ^ L05
          Rnd07 f(R06=1cfec506, SK07=(11 29 12 21 26 37 2b 3b)) = 138d5285 ^ L06
          Rnd08 f(R07=447407f7, SK08=(36 38 21 02 3d 3d 2c 35)) = ac57c277 ^ L07
          Rnd09 f(R08=b0a90771, SK09=(20 10 28 3b 2f 3c 2a 1e)) = 60cac464 ^ L08
          Rnd10 f(R09=24bec393, SK10=(29 13 0a 04 35 17 1f 17)) = 0c839de7 ^ L09
          Rnd11 f(R10=bc2a9a96, SK11=(04 21 3b 00 2f 3a 0b 2d)) = 4c41ae3c ^ L10
          Rnd12 f(R11=68ff6daf, SK12=(16 07 01 30 3c 2f 3f 07)) = 204c4158 ^ L11
          Rnd13 f(R12=9c66dbce, SK13=(21 0c 15 0c 0f 2a 1e 3f)) = a8abb9d1 ^ L12
          Rnd14 f(R13=c054d47e, SK14=(10 24 0c 07 3f 37 37 03)) = d9055354 ^ L13
          Rnd15 f(R14=4563889a, SK15=(0a 19 24 21 1b 2e 0d 3b)) = 3305a02c ^ L14
          Rnd16 f(R15=f3517452, SK16=(32 39 00 08 3d 2c 37 3b)) = 96634f74 ^ L15
          L16=d300c7ee, R16=f3517452
          endes returns C = FP(L16,R16) = (e4c70d01, ea89efc5)
        
        • show how the Round 2 Subkey 02 08 0b 1e 13 39 3d 1f is derived from the original key
        • trace the Round 2 data computation:
          Rnd02 f(R01=53f8767e, SK02=(02 08 0b 1e 13 39 3d 1f)) = d3103e4d

      Additional References

      For additional information, see:
    2. Seberry & Pieprzyk, "Cryptography - An Introduction to Computer Security", 2/e Ch 3.2; 1/e Ch 3.2 pp77-88
    3. B Schneier, "Applied Cryptography", 2/e, Ch 12,13.1, pp265-301, 303
    4. H Katzan, "The Standard Data Encryption Algorithm", Petrocelli Books, New York, 1977

    5. [Back to CCS3 Lectures]
      Lawrie.Brown@adfa.edu.au / 6 Feb 2001