Introduction to Computer Security ©2004 Matt Bishop Information Security Principles Assistant Professor Dr. Sana’a Wafa Al-Sayegh 1 st Semester ITGD 2202 University of Palestine
Introduction to Computer Security ©2004 Matt Bishop Data Encryption Standard Overview of the DES Generation of Round Keys Encipherment DES Modes
Introduction to Computer Security ©2004 Matt Bishop Overview of the DES A block cipher: –encrypts blocks of 64 bits using a 64 bit key –outputs 64 bits of ciphertext A product cipher –basic unit is the bit –performs both substitution and transposition (permutation) on the bits Cipher consists of 16 rounds (iterations) each with a round key generated from the user-supplied key
Introduction to Computer Security ©2004 Matt Bishop Generation of Round Keys Round keys are 48 bits each
Introduction to Computer Security ©2004 Matt Bishop PC-1 PC-2
Introduction to Computer Security ©2004 Matt Bishop Key ASCII A B C D E F G H C D PC-1
Introduction to Computer Security ©2004 Matt Bishop LSH
Introduction to Computer Security ©2004 Matt Bishop LSH Before After C D C D
Introduction to Computer Security ©2004 Matt Bishop PC-2 C D
Introduction to Computer Security ©2004 Matt Bishop Encipherment
Introduction to Computer Security ©2004 Matt Bishop IP IP
Introduction to Computer Security ©2004 Matt Bishop The f Function
Introduction to Computer Security ©2004 Matt Bishop E BIT-SELECTION TABLE P S1 Column Number Row No
Introduction to Computer Security ©2004 Matt Bishop DES Modes Electronic Code Book Mode (ECB) –Encipher each block independently Cipher Block Chaining Mode (CBC) –Xor each block with previous ciphertext block –Requires an initialization vector for the first one Encrypt-Decrypt-Encrypt Mode (2 keys: k, k) –c = DES k (DES k –1 (DES k (m))) Encrypt-Encrypt-Encrypt Mode (3 keys: k, k, k ) –c = DES k (DES k (DES k (m)))
Introduction to Computer Security ©2004 Matt Bishop CBC Mode Encryption init. vector m1m1 DES c1c1 m2m2 c2c2 sent … … …
Introduction to Computer Security ©2004 Matt Bishop CBC Mode Decryption init. vector c1c1 DES m1m1 … … … c2c2 m2m2