Permutasi Des (Data Encryption Standard)

9:40 AM Unknown 0 Comments


Algoritma DES (Data Encryption Standard)
Sebagai salah satu sistem kriptografi simetris, DES tergolong jenis cipher blok. DES dikatakan enkripsi blok karena pemrosesan data baik enkripsi maupun dekripsi, diimplementasikan per blok (dalam hal ini 8 byte). Proses pada algoritma DES terbilang panjang, bahkan jauh lebih panjang daripada Elgamal, tapi pada implementasinya ternyata proses komputasinya dapat berjalan lebih cepat. 


Mengapa demikian? karena pada DES tidak ada operasi aritmatika yang berjalan seperti halnya pada Elgamal. Proses yang berjalan pada DES hanya sebatas pergeseran bit-bit pada tiap blok enkripsi/dekripsi.
Skema global yang ada pada algoritma DES, diuraikan sebagai berikut:
a.    Blok plainteks dipermutasi dengan permutasi awal (IP, Initial Permutation).
b.    Hasil permutasi awal kemudian dienciphering sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda dengan perhitungan LiRi dengan 1 ≤ i ≤ 16.
c.    Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial  permutation atau IP-1) menjadi blok cipherteks.



Permutation (IP). 
Tujuan permutasi awal adalah mengacak plainteks sehingga urutan-bit-bit di dalamnya berubah. Lihat pada gambar dibawah, 
Matriks pada Tabel (a) sebagai plainteks masukan, kemudian dilakukan pengacakan dengan menggunakan matriks permutasi awal Tabel (b):
Aturan IP (Permutasi Awal)


Aturan IP invers
Setelah melewati Permutasi Awal, plainteks yang akan disandikan kemudian dibagi menjadi dua blok (ditunjukkan dengan warna yang berbeda pada Tabel (b)), yaitu blok atas dan blok bawah yang masingmasing lebarnya 4 byte (32-bit).

Pembangkitan Kunci Internal DES
Pada algoritma DES, 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 pada DES panjangnya 64-bit atau 8 karakter seperti pada Tabel (c) dibawah.
Misalkan kunci eksternal yang tersusun atas 64-bit adalah K. Kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks kompresi PC-1 seperti pada Tabel (d).
Dalam permutasi ini, tiap-bit kedelapan dari delapan byte kunci diabaikan (Tabel (c) dengan kolom yang berwarna gelap). Hasil permutasinya adalah sepanjang 56-bit, sehingga dapat dikatakan panjang kunci DES adalah 56-bit.
Selanjutnya, 56-bit ini dibagi menjadi 2 bagian, atas dan bawah, yang masing-masing panjangnya 28-bit, dan masing-masing disimpan di dalam C0 dan D0.
C0:  berisi-bit-bit dari K pada sisi gelap tabel (d)
D0:  berisi-bit-bit dari K pada sisi putih tabel (d)
Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua-bit bergantung pada tiap putaran. Jumlah pergeseran pada tiap putaran ditunjukkan pada Tabel (e).
Aturan Permutasi Kompresi PC-1

C0 - D0
Aturan pergeseran bit pada tiap putaran C1D1 - C16D16

C1-D1 sampai C5-D5
C6-D6 sampai C10-D10
C11-D11 sampai C15-D15
C16-D16 dan K1-K3
Misalkan (Ci, Di) menyatakan penggabungan Ci dan Di. (Ci-1, Di-1) diperoleh dengan menggeser Ci dan Di satu atau dua-bit. Setelah Pergeseran-bit, (Ci, Di) mengalami permutasi kompresi dengan menggunakan matriks PC-2 seperti pada Tabel (f).
Dengan permutasi ini, kunci internal Ki diturunkan dari (Ci, Di) yang dalam hal ini Ki merupakan panggabungan-bit-bit Ci pada sisi gelap tabel (f), dengan-bit-bit Di pada sisi putih tabel (f).
Setiap kunci internal Ki mempunyai panjang 48-bit. Proses Pembangkitan kunci-kunci internal dapat dilihat pada gambar berikut ini 
Aturan Matriks PC-2

K4-K9
K10-K15
K16
Proses Dekripsi DES
Proses dekripsi terhadap cipherteks merupakan kebalikan dari proses enkripsi. DES menggunakan algoritma yang sama untuk proses enkripsi dan dekripsi. Jika pada proses enkripsi urutan kunci internal yang digunakan adalah K1, K2, …, K16, maka pada proses dekripsi urutan kunci yang digunakan adalah K16, K15, …, K1. Setiap putaran 16, 15, …, 1, keluaran pada proses dekripsi adalah 
dalam hal ini, (R16, L16) adalah blok masukan awal untuk proses dekripsi.
Blok (R16, L16) diperoleh dengan mempermutasikan cipherteks dengan matriks permutasi IP. Pra-keluaran dari proses dekripsi adalah adalah (L0, R0). Dengan permutasi awal IP-1 akan didapatkan kembali blok plainteks semula. Kunci-kunci dekripsi diperoleh dengan menggeser Ci dan Di dengan cara yang sama seperti pada proses enkripsi, tetapi pergeseran kiri (left shift) diganti menjadi pergeseran kanan (right shift).
R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

R16

0 komentar: