(Data Encryption Standard) DES (Data Encryption Standard)
Stream Ciphers vs. Block Ciphers Stream cipher mengenkripsi data digital satu bit (byte) pada suatu waktu Cipher blok mengenkripsi blok plaintext pada suatu waktu Akan menghasilkan blok ciphertext dengan ukuran yang sama
DES Basics DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. Panjang kunci ekternal = 64 bit (sesuai ukuran blok), tetapi hanya 56 bit yang dipakai (8 bit paritas tidak digunakan) Setiap blok (plainteks atau cipherteks) dienkripsi dalam 16 putaran. Setiap putaran menggunakan kunci internal berbeda. Kunci internal (48-bit) dibangkitkan dari kunci eksternal Setiap blok mengalami permutasi awal (IP), 16 putaran enciphering, dan inversi permutasi awal (IP- 1).
Overall Scheme of DES Encryption
Initial Permutation (IP) and Inverse IP
DES Single Round of DES
DES Round function F
DES Round Function Operates on 32-bit units 32-bit 48-bit expansion/permutation (E table) XOR with 48 bit subkey S-box computation returns 32 bits (Perhitungan kembali) Round (putaran) permutation (P)
Single Round of DES cont…
Expansion E and Permutation P
S-BOX Substitution S-BOX: 4 x 16 entry table Input: 6 bits 2-bits determine the table (1 s/d 4) 4-bits determine the table entry Output: 4 bits
S-BOX table
DES Key Generation Parity bits (8, 16, …, 64) are discarded (out of 64-bit key) 56-bit key is split into 28-bit L and R 16 48-bit subkeys (K1, K2, … , K16) are generated by various circular left shifts of L and R Bits are permuted and selected
Implementasi DES DES sudah diimplementasikan dalam bentuk perangkat keras. Dalam bentuk perangkat keras, DES diimplementasikan di dalam chip. Setiap detik chip ini dapat mengenkripsikan 16,8 juta blok (atau 1 gigabit per detik). Implementasi DES ke dalam perangkat lunak dapat melakukan enkripsi 32.000 blok per detik (pada komputer mainframe IBM 3090).
Other Symmetric Block Ciphers International Data Encryption Algorithm (IDEA) 128-bit key Used in PGP Skipjack mengenkripsi dan mendekripsi data dalam 64-bit blok menggunakan kunci 80-bit Skipjack memiliki 32 putaran, yang berarti algoritma utama diulang 32 kali untuk menghasilkan ciphertext. 64-bit blok cipher panjang kunci 128-bit Menggunakan tiga kelompok aljabar: XOR, + mod 216, x mod 216 + 1
Other Symmetric Block Ciphers Electronic Codebook Book (ECB) Limitations of ECB Cipher Block Chaining (CBC) Cipher FeedBack (CFB) Output FeedBack (OFB) Counter (CTR) Triple DES