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

data encryption standard
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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

1/30

Data Encryption Standard

Cryptography

School of Engineering and Technology CQUniversity Australia

Prepared by Steven Gordon on 19 Feb 2020, des.tex, r1788

slide-2
SLIDE 2

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

2/30

Contents

Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python

slide-3
SLIDE 3

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

3/30

Data Encryption Standard

◮ Symmetric block cipher ◮ 56-bit key, 64-bit input block, 64-bit output block ◮ Developed in 1977 by NIST; designed by IBM (Lucifer) with input from NSA ◮ Principles used in other ciphers, e.g. 3DES, IDEA

slide-4
SLIDE 4

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

4/30

Contents

Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python

slide-5
SLIDE 5

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

5/30

Simplified DES

◮ Input (plaintext) block: 8-bits ◮ Output (ciphertext) block: 8-bits ◮ Key: 10-bits ◮ Rounds: 2 ◮ Round keys generated using permutations and left shifts ◮ Encryption: initial permutation, round function, switch halves ◮ Decryption: Same as encryption, except round keys used in opposite order

slide-6
SLIDE 6

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

6/30

S-DES Algorithm

slide-7
SLIDE 7

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

7/30

S-DES Permutations (definition)

Permutations used in S-DES: P10 (permutate) Input : 1 2 3 4 5 6 7 8 9 10 Output: 3 5 2 7 4 10 1 9 8 6 P8 (select and permutate) Input : 1 2 3 4 5 6 7 8 9 10 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

slide-8
SLIDE 8

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

8/30

Other Operations in S-DES

◮ LS-1: left shift by 1 position ◮ LS-2: left shift by 2 positions ◮ IP−1: inverse of IP, such that X = IP−1(IP(X)) ◮ SW: swap the halves ◮ fK: a round function using round key K ◮ 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

slide-9
SLIDE 9

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

9/30

S-DES Key Generation

slide-10
SLIDE 10

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

10/30

S-DES Encryption

slide-11
SLIDE 11

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

11/30

S-DES S-Boxes (definition)

S-Box considered as a matrix: input used to select row/column; selected element is output 4-bit input: bit1, bit2, bit3, bit4 bit1bit4 specifies row (0, 1, 2 or 3 in decimal) bit2bit3 specifies column S0 =     01 00 11 10 11 10 01 00 00 10 01 11 11 01 11 10     S1 =     00 01 10 11 10 00 01 11 11 00 01 00 10 01 00 11    

slide-12
SLIDE 12

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

12/30

Encrypt with S-DES (exercise)

Show that when the plaintext 01110010 is encrypted using S-DES with key 1010000010 that the ciphertext obtained is 01110111.

slide-13
SLIDE 13

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

13/30

S-DES Summary

◮ Educational encryption algorithm ◮ S-DES expressed as functions: ciphertext = IP−1 (fK2 (SW (fK1 (IP (plaintext))))) plaintext = IP−1 (fK1 (SW (fK2 (IP (ciphertext))))) ◮ 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

slide-14
SLIDE 14

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

14/30

S-DES Compared to Real DES

◮ S-DES vs DES ◮ Block size: 8 bits vs 64 bits ◮ Rounds: 2 vs 16 ◮ IP: 8 bits vs 64 bits ◮ F: 4 bits vs 32 bits ◮ S-Boxes: 2 vs 8 ◮ Round key: 8 bits vs 48 bits

slide-15
SLIDE 15

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

15/30

Contents

Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python

slide-16
SLIDE 16

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

16/30

General DES Encryption Algorithm

slide-17
SLIDE 17

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

17/30

Permutation Tables for DES

slide-18
SLIDE 18

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

18/30

Permutation Tables for DES

slide-19
SLIDE 19

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

19/30

Single Round of DES Algorithm

slide-20
SLIDE 20

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

20/30

Calculation of F(R,K)

slide-21
SLIDE 21

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

21/30

Definition of DES S-Boxes

slide-22
SLIDE 22

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

22/30

Definition of DES S-Boxes

slide-23
SLIDE 23

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

23/30

DES Key Schedule Calculation

slide-24
SLIDE 24

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

24/30

Contents

Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python

slide-25
SLIDE 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

slide-26
SLIDE 26

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

26/30

DES Key Generation (exercise)

Generate a shared secret key to be used with DES and share it with another person.

slide-27
SLIDE 27

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

27/30

DES Encryption (exercise)

Create a message in a plain text file and after using DES, send the ciphertext to the person you shared the key with.

slide-28
SLIDE 28

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

28/30

DES Decryption (exercise)

Decrypt the ciphertext you received.

slide-29
SLIDE 29

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

29/30

Contents

Overview of the Data Encryption Standard (DES) Simplified-DES Details of DES DES in OpenSSL DES in Python

slide-30
SLIDE 30

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

30/30

AES in Python Cryptography Library

◮ cryptography.io/en/latest/hazmat/primitives/symmetric- encryption/