Kamis, 24 November 2016

Feistel Network

Hampir semua algoritma cipher blok bekerja dalam model jaringan Feistel. Jaringan  Feistel ditemukan oleh Horst Feistel tahun 1970.

Model jaringan Feistel adalah sebagai berikut:
Bagi blok yang panjangnya n bit menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya n/2 (hal ini mensyaratkan n harus genap).
Definisikan cipher blok berulang dimana hasil dari putaran ke-i ditentukan dari hasil putaran sebelumnya (lihat Gambar 1), yaitu

Li = Ri+1 (2)
Ri = Li – 1 ( f(Ri – 1, Ki) (3)

     yang dalam hal ini,
i = 1, 2, …, r (r adalah jumlah putaran).
Ki = upa-kunci (subkey) pada putaran ke-i
f = fungsi transformasi (di dalamnya terdapat fungsi
     substitusi, permutasi, dan/atau ekspansi, kompresi).




                       Gambar 1. Jaringan Fiestel

Plainteks adalah gabungan L dan R awal, atau secara formal dinyatakan dengan (L0, R0), sedangkan cipherteks didapatkan dari L dan R hasil dari putaran terakhir setelah terlebih dauhulu dipertukarkan, atau secara formal dinyatakan sebagai (Rr, Lr).

Jaringan Feistel banyak dipakai pada algoritma kriptografi DES (Data Encryption Standard), LOKI, GOST, FEAL, Lucifer, Blowfish, Khufu, Khafre, dan lain-lain karena model ini bersifat reversible untuk proses enkripsi dan dekripsi. Sifat reversible ini membuat kita tidak perlu membuat algoritma baru unruk mendekripsi cipherteks menjadi plainteks. Karena operator XOR mengkombinasikan setengah bagian kiri dengan hasil dari fungsi transformasi f, maka kesamaan berikut pasti benar:

Li – 1 ( f(Ri – 1, Ki) ( f(Ri – 1, Ki) = Li – 1 (4)

Sifat reversible tidak bergantung pada fungsi f sehingga fungsi f dapat dibuat serumit mungkin.

Tidak ada komentar:

Posting Komentar