Pertemuan III Algoritma Kriptorafi Modern : DES Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma DES diadopsi NIST(National Institute of Standards and Technology) sebagai standar pengolah informasi Federal AS.
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit. Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Algoritma utama DES terbagi menjadi kelompok kelompok : Pemrosesan Kunci Enkripsi data 64-bit Dekripsi data 64-bit
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP) 2. Hasil permutasi awal kemudian di- enciphering- sebanyak 16 kali (16 putaran) 3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks. Plaintext Block (64 bit) Initial Permutation Round 1 Round 16 Inverse of Initial Permutation Ciphertext Block (64 bit) 56 bit subkey 56 bit subkey Panjang block 64 bit Panjang block 64 bit 1 2 3 enciphering Gambar 1. Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing- masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES. Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing- masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES. Secara matematis, satu putaran DES dinyatakan sebagai
32 bit 32 bit jika (L16, R16) merupakan keluaran dari putaran ke-16, maka (R16, L16) merupakan pra-cipherteks (pre- ciphertext) dari enciphering ini. Cipherteks yang sebenarnya diperoleh dengan melakukan permutasi awal balikan, IP-1, terhadap blok pra-cipherteks. Gambar 2 Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Plaintex dalam Hexa : 0123456789ABCDEF(h) P = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Permutasi Awal Melakukan permutasi awal terhadap blok plaintext (initial permutation / IP) menggunakan tabel permutasi IP Tujuan Permutasi : mengacak plainteks sehingga urutan bit-bit di dalamnya berubah.
IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010 Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Hasil permutasi Plaintext menggunakan tabel IP P = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu K1, K2, , K16. Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi. Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter. Misalkan kunci eksternal yang tersusun dari 64 bit adalah K. Kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks permutasi kompresi PC-1 sebagai berikut: Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Kunci dalam Hexa : 133457799BBCDFF1(h) K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 (B) Panjang kunci berupa 64 bit atau terdiri dari 8 byte karakter
Hasil permutasi kunci 64 bit menggunakan tabel permutasi PC-1 menghasilkan kunci dengan panjang 56 bit K+ = 1111000 0110011 0010101 0101111 (C0) 0101010 1011001 1001111 0001111 (D0)
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Wrapping atau round shift menggunakan tabel Shift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 interasi shift C 0 = 1111000011001100101010101111 D 0 = 0101010101100110011110001111 C 1 = 1110000110011001010101011111 D 1 = 1010101011001100111100011110 . . . . . C 16
D 16
Gambar 3 Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Setelah melalui pergeseran, C1 dan D1 akan mengalami ermutasi kompresi menggunakan matriks PC-2 Kompresi menghasilkan Ki dengan panjang 48 bit C 1 = 1110000110011001010101011111 D 1 = 1010101011001100111100011110
Hasil permutasi K1 K 1 = 000110 110000 001011 101111 111111 000111 000001 110010
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Proses enciphering terhadap blok plainteks dilakukan setelah permutasi awal (Gambar 1). Setiap blok plainteks mengalami 16 kali putaran enciphering Setiap putaran enciphering merupakan jaringan Feistel yang secara matematis dinyatakan sebagai :
Contoh untuk i= 1 K 1 = 000110 110000 001011 101111 111111 000111 000001 110010 L 1 = R 0 = 1111 0000 1010 1010 1111 0000 1010 1010 R 1 = L 0 + f(R 0 ,K 1 )
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Diagram komputasi fungsi f Gambar 4 Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 E adalah fungsi ekspansi yang memperluas blok Ri 1 yang panjangnya 32-bit menjadi blok 48 bit. Menggunakan matrix permutasi E Misal permutasi Ekspansi untuk R0
R 0 = 1111 0000 1010 1010 1111 0000 1010 1010 E(R 0 ) = 011110 100001 010101 010101 011110 100001 010101 010101 Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Hasil ekpansi, E(Ri 1), dg panjang 48 bit di- XOR-kan dengan Ki yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48-bit E(Ri 1) Ki = A
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 L i-1
R i-1
Expansio n S Box Substitution P Box Permutation + + L i
R i
Key i
Key i+1
Subtitusi dan permutasi hasil ekspansi kunci Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit K n + E(R n-1 ) =B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 Setiap blok di subtitusikan kedalam matrix kotak-S. Kotak-S adalah matriks yang berisi substitusi sederhana yang memetakan satu atau lebih bit dengan satu atau lebih bit yang lain. Setiap kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit bit pertama menggunakan S1, kelompok 6-bit kedua menggunakan S2 Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Masukan untuk proses subtitusi 6 bit. Nomor Baris dari matrix S-Box dinyatakan oleh bit ke-1 (pertama) dan bit ke-6 (Enam) menyatakan 0 s/d 3 Nomor Kolom dari matrix S-Box dinyatakan oleh bit 2,3,4,5 Menyatakan 0 s/d 15
Misal untuk Blok B1 B 1 = 011000(B) Baris = 00(B) 0(D) Kolom = 1100(B) 12(D) S(B 1 )
= 5(D) 0101(B)
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 8 Tabel S-Box Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Keluaran proses substitusi adalah vektor S(Bi) yang panjangnya 48 bit. Vektor S(Bi) menjadi masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Permutasi dilakukan dengan menggunakan matriks permutasi P (P-box). Misal Keluaran dari 8 S-Box S(B1-8) = 0101 1100 1000 0010 1011 0101 1001 0111 f = 0010 0011 0100 1010 1010 1001 1011 1011
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Bit-bit P(B) merupakan keluaran dari fungsi f. bit-bit P(B) di-XOR-kan dengan Li 1 untuk mendapatkan Ri
Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 Permutasi terakhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok kanan L16 R16. Proses permutasi menggunakan matriks permutasi awal balikan (inverse initial permutation atau IP-1) sbb: Teknologi Informasi - Fakultas Teknik Universitas Negeri Udayana 2014 J. Orlin Grabbe, The DES Algorithm Illustrated
Diktat kuliah IF5054 Kriptografi oleh Rinaldi Munir, Prodi IF STEI 2006