data encryption standard
play

Data Encryption Standard Simplified-DES Details of DES DES in - PowerPoint PPT Presentation

Cryptography Data Encryption Standard Overview of the Data Encryption Standard (DES) Data Encryption Standard Simplified-DES Details of DES DES in OpenSSL Cryptography DES in Python School of Engineering and Technology CQUniversity


  1. Cryptography Data Encryption Standard Overview of the Data Encryption Standard (DES) Data Encryption Standard Simplified-DES Details of DES DES in OpenSSL Cryptography DES in Python School of Engineering and Technology CQUniversity Australia Prepared by Steven Gordon on 19 Feb 2020, des.tex, r1788 1/30

  2. Cryptography Contents Data Encryption Standard Overview of the Overview of the Data Encryption Standard (DES) Data Encryption Standard (DES) Simplified-DES Details of DES Simplified-DES DES in OpenSSL DES in Python Details of DES DES in OpenSSL DES in Python 2/30

  3. Cryptography Data Encryption Standard Data Encryption Standard ◮ Symmetric block cipher Overview of the Data Encryption ◮ 56-bit key, 64-bit input block, 64-bit output block Standard (DES) ◮ Developed in 1977 by NIST; designed by IBM (Lucifer) Simplified-DES with input from NSA Details of DES DES in OpenSSL ◮ Principles used in other ciphers, e.g. 3DES, IDEA DES in Python 3/30

  4. Cryptography Contents Data Encryption Standard Overview of the Overview of the Data Encryption Standard (DES) Data Encryption Standard (DES) Simplified-DES Details of DES Simplified-DES DES in OpenSSL DES in Python Details of DES DES in OpenSSL DES in Python 4/30

  5. Cryptography Simplified DES Data Encryption Standard ◮ Input (plaintext) block: 8-bits Overview of the Data Encryption ◮ Output (ciphertext) block: 8-bits Standard (DES) ◮ Key: 10-bits Simplified-DES Details of DES ◮ Rounds: 2 DES in OpenSSL ◮ Round keys generated using permutations and left shifts DES in Python ◮ Encryption: initial permutation, round function, switch halves ◮ Decryption: Same as encryption, except round keys used in opposite order 5/30

  6. Cryptography S-DES Algorithm Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 6/30

  7. Cryptography S-DES Permutations (definition) Data Encryption Standard Permutations used in S-DES: P10 (permutate) Overview of the Data Encryption Standard (DES) Input : 1 2 3 4 5 6 7 8 9 10 Simplified-DES Output: 3 5 2 7 4 10 1 9 8 6 Details of DES P8 (select and permutate) DES in OpenSSL Input : 1 2 3 4 5 6 7 8 9 10 DES in Python Output: 6 3 7 4 8 5 10 9 P4 (permutate) Input : 1 2 3 4 Output: 2 4 3 1 EP (expand and permutate) Input : 1 2 3 4 Output: 4 1 2 3 2 3 4 1 IP (initial permutation) Input : 1 2 3 4 5 6 7 8 Output: 2 6 3 1 4 8 5 7 7/30

  8. Cryptography Other Operations in S-DES Data Encryption Standard ◮ LS-1: left shift by 1 position Overview of the Data Encryption ◮ LS-2: left shift by 2 positions Standard (DES) ◮ IP − 1 : inverse of IP, such that X = IP − 1 (IP( X )) Simplified-DES Details of DES ◮ SW: swap the halves DES in OpenSSL ◮ f K : a round function using round key K DES in Python ◮ F: internal function in each round ◮ Angled lines through arrows with a number next to them indicate the number of bits passing between the blocks 8/30

  9. Cryptography S-DES Key Generation Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 9/30

  10. Cryptography S-DES Encryption Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 10/30

  11. Cryptography S-DES S-Boxes (definition) Data Encryption Standard S-Box considered as a matrix: input used to select row/column; selected element is output Overview of the Data Encryption 4-bit input: bit 1 , bit 2 , bit 3 , bit 4 Standard (DES) bit 1 bit 4 specifies row (0, 1, 2 or 3 in decimal) Simplified-DES Details of DES bit 2 bit 3 specifies column DES in OpenSSL DES in Python     01 00 11 10 00 01 10 11 11 10 01 00 10 00 01 11     S 0 = S 1 =     00 10 01 11 11 00 01 00     11 01 11 10 10 01 00 11 11/30

  12. Cryptography Encrypt with S-DES (exercise) Data Encryption Standard Show that when the plaintext 01110010 is encrypted using S-DES with key 1010000010 that the ciphertext obtained is Overview of the Data Encryption 01110111 . Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 12/30

  13. Cryptography S-DES Summary Data Encryption Standard ◮ Educational encryption algorithm Overview of the Data Encryption ◮ S-DES expressed as functions: Standard (DES) Simplified-DES ciphertext = IP − 1 ( f K 2 ( SW ( f K 1 ( IP ( plaintext ))))) Details of DES DES in OpenSSL plaintext = IP − 1 ( f K 1 ( SW ( f K 2 ( IP ( ciphertext ))))) DES in Python ◮ Brute force attack on S-DES is easy since only 10-bit key ◮ If know plaintext and corresponding ciphertext, can we determine key? Very hard 13/30

  14. Cryptography S-DES Compared to Real DES Data Encryption Standard ◮ S-DES vs DES Overview of the Data Encryption ◮ Block size: 8 bits vs 64 bits Standard (DES) ◮ Rounds: 2 vs 16 Simplified-DES Details of DES ◮ IP: 8 bits vs 64 bits DES in OpenSSL ◮ F: 4 bits vs 32 bits DES in Python ◮ S-Boxes: 2 vs 8 ◮ Round key: 8 bits vs 48 bits 14/30

  15. Cryptography Contents Data Encryption Standard Overview of the Overview of the Data Encryption Standard (DES) Data Encryption Standard (DES) Simplified-DES Details of DES Simplified-DES DES in OpenSSL DES in Python Details of DES DES in OpenSSL DES in Python 15/30

  16. Cryptography General DES Encryption Algorithm Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 16/30

  17. Cryptography Permutation Tables for DES Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 17/30

  18. Cryptography Permutation Tables for DES Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 18/30

  19. Cryptography Single Round of DES Algorithm Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 19/30

  20. Cryptography Calculation of F(R,K) Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 20/30

  21. Cryptography Definition of DES S-Boxes Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 21/30

  22. Cryptography Definition of DES S-Boxes Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 22/30

  23. Cryptography DES Key Schedule Calculation Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 23/30

  24. Cryptography Contents Data Encryption Standard Overview of the Overview of the Data Encryption Standard (DES) Data Encryption Standard (DES) Simplified-DES Details of DES Simplified-DES DES in OpenSSL DES in Python Details of DES DES in OpenSSL DES in Python 24/30

  25. Cryptography Data Encryption Standard Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 25/30

  26. Cryptography DES Key Generation (exercise) Data Encryption Standard Generate a shared secret key to be used with DES and share it with another person. Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 26/30

  27. Cryptography DES Encryption (exercise) Data Encryption Standard Create a message in a plain text file and after using DES, send the ciphertext to the person you shared the key with. Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 27/30

  28. Cryptography DES Decryption (exercise) Data Encryption Standard Decrypt the ciphertext you received. Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 28/30

  29. Cryptography Contents Data Encryption Standard Overview of the Overview of the Data Encryption Standard (DES) Data Encryption Standard (DES) Simplified-DES Details of DES Simplified-DES DES in OpenSSL DES in Python Details of DES DES in OpenSSL DES in Python 29/30

  30. Cryptography AES in Python Cryptography Library Data Encryption Standard ◮ cryptography.io/en/latest/hazmat/primitives/symmetric- Overview of the Data Encryption encryption/ Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python 30/30

Recommend


More recommend