NIM : 17.01.071.063
Jaringan Feistel
Jaringan Feistel adalah cara alternatif untuk membangun block cipher. Itu blok bangunan tingkat rendah (S-box, permutasi pencampuran dan jadwal utama) adalah sama; perbedaannya terletak pada desain tingkat tinggi. Keuntungan Feistel jaringan melalui jaringan permutasi substitusi adalah bahwa mereka memungkinkan penggunaan
S-box yang belum tentu bisa dibalik. Ini penting karena bagus cipher blok memiliki perilaku kacau (dan karenanya terlihat acak). Namun, memastikan bahwa semua komponen konstruksi tidak dapat dibalik secara inheren memperkenalkan struktur, yang bertentangan dengan kebutuhan akan kekacauan. A Feistel net- pekerjaan dengan demikian adalah cara membangun fungsi yang tidak dapat dibalik dari yang tidak dapat dibalik
komponen. Ini tampak seperti kontradiksi dalam hal (jika Anda tidak dapat membalikkan komponen, bagaimana Anda dapat membalikkan struktur keseluruhan). Namun demikian, Desain Feistel dengan cerdik mengatasi kendala ini.
Jaringan Feistel mengacu pada fungsi-f internal yang tidak perlu tidak bisa dibalik. Fungsi ini menerima subkunci dan biasanya berisi komponen seperti S-box dan pencampuran permutasi. Bagaimanapun, kerangka kerja jaringan tel dapat menangani fungsi-f internal apa pun, terlepas dari desainnya. Input x ke jaringan Feistel dipisahkan menjadi dua bagian, x 1 dan x 2 , dan setiap setengah dilewatkan secara terpisah melalui fungsi-f. Jadi, untuk blok-n cipher, f-function memiliki panjang input / output n / 2. (Kami menekankan lagi itu meskipun panjang input dan outputnya sama, fungsinya tidak tidak dapat dibalik dan karenanya, khususnya, tidak harus 1-1 dan ke atas.) The
definisi matematis dari jaringan Feistel diberikan sebagai berikut:
1. Untuk input x, dilambangkan dengan x 1 dan x 2 bagian pertama dan kedua dari x, masing-masing.
2. Biarkan v 1 = x 1 dan v 2 = x 2 .
3. Untuk i = 1 ke r (di mana r adalah jumlah putaran dalam jaringan):
(a) Misalkan w 1 = v 2 dan w 2 = v 1 f i (v 2 ), di mana f i menunjukkan fungsi-f di putaran ke- i jaringan.
(B) Misalkan v 1 = w 1 dan v 2 = w 2 .
4. Output y adalah (v 1 , v 2 ).
Lihat Gambar ?? untuk jaringan Feistel 4-putaran (lebih mudah untuk memahami bagaimana itu
bekerja dengan melihat diagram, dan kemudian hanya setelah itu pada mathemat- definisi ical di atas).
Menghidupkan jaringan Feistel. Ingatlah bahwa fungsi-f belum tentu dapat dibalik dan bahkan mungkin 1–1. Jadi untuk membalikkan blok cipher, kita tidak bisa mengandalkan kemampuan untuk menghitung f −1 . Sebaliknya, cipher blok bisa terbalik sambil menghitung fungsi-f hanya di maju. Dalam urutan untuk melihat ini, misalkan (α i , β i ) menjadi nilai antara pada awal putaran i dan let (α i + 1 , β i + 1 ) menjadi nilai menengah pada awal putaran i + 1. Kemudian, dinyatakan bahwa:
α i = β i + 1 f i (α i + 1 ) dan β i = α i +1
(5.1)
Ini dapat dengan mudah dilihat dengan mengikuti jaringan pada Gambar ?? (perhatikan itu nilai pada kabel dalam jaringan adalah sama terlepas dari arah dari yang dihitung). Selanjutnya, dengan melihat definisi matematika
di atas dan pengaturan v 1 = α i dan v 2 = β i kita memiliki α i + 1 = w 1 = β i dan β i + 1 = w 2 = v 1 f i (v 2 ) = α i f i (β i ). Namun, karena α i + 1 = β i ini adalah sama dengan mengatakan bahwa α i = β i + 1 f i (α i + 1 ), memenuhi Persamaan (5.1). Tentu saja,
pengamatan penting dalam Persamaan (5.1) adalah bahwa α i dan β i dapat efisien
dihitung dari α i + 1 dan β i + 1 , selama f i dapat dihitung secara efisien. Diberikan bahwa ini dimungkinkan di setiap putaran, kami memiliki semua putaran jaringan dapat dibalik, sehingga menghasilkan prosedur yang efisien untuk membalikkan keseluruhan blok cipher. Karena itu, kami memiliki klaim berikut:
KLAIM
Dalam jaringan Feistel F di mana fungsi-f dapat dihitung dengan cermat, terdapat prosedur yang efisien untuk menghitung F −1 (y).
Selanjutnya, untuk setiap kunci k dan setiap input x, F −1 k (F k (x)) = x.
Kami berkomentar bahwa biasanya fungsi-f dalam jaringan Feistel dibangun dari S-box dan pencampuran permutasi, persis seperti dalam pergantian-permutasi jaringan. Perbedaan utama adalah bahwa dalam jaringan Feistel, S-box tidak perlu terbalik. Ketika ini memang terjadi (yaitu, S-box dan pencampuran permutasi digunakan dengan cara yang sama), serangan pada jaringan Feistel dengan sangat sedikit putaran dapat dirancang dengan cara yang sama seperti yang dijelaskan di atas jaringan substitusi-permutasi.
DES - Standar Enkripsi Data
Standar Enkripsi Data, atau DES, dikembangkan pada 1970-an di
IBM (dengan bantuan dari Badan Keamanan Nasional), dan diadopsi pada 1976 sebagai Standar Pemrosesan Informasi Federal (FIPS) untuk AS. Dalam nya bentuk dasar, DES tidak lagi aman karena ukuran kunci yang pendek. Namun, masih banyak digunakan saat ini dalam bentuk triple DES (triple DES adalah a cipher blok yang didasarkan pada DES dan dijelaskan di bawah pada Bagian 5.4). Sandi blok DES telah menjalani pemeriksaan ketat; bisa dibilang lebih dari apapun algoritma enkripsi lain dalam sejarah. Konsensus umum adalah itu sangat aman. Memang, serangan yang paling dikenal pada DES dalam praktek adalah a brute force (atau kunci lengkap) mencari pada ruang kuncinya (yaitu, serang dengan mencoba semua kunci yang mungkin dan melihat kunci mana yang mendekripsi pesan dengan benar). Seperti yang kita akan lihat di bawah, ada serangan teoritis penting pada DES yang membutuhkan lebih sedikit perhitungan dari serangan brute force tersebut. Namun, mereka tidak memberikan yang asli
xix
ancaman dalam praktik. Algoritma DES baru-baru ini digantikan oleh Advanced Standar Enkripsi (AES). Namun demikian, seperti yang telah kami sebutkan, tetap saja banyak digunakan dalam bentuk triple DES. Di bagian ini, kami akan menjelaskan rincian konstruksi DES. Kami menekankan bahwa kami tidak akan menyediakan penuh spesifikasi, dan beberapa bagian dari desain akan dihilangkan dari deskripsi kami (misalnya permutasi pada kunci sebelum jadwal kunci). Sebaliknya, tujuan kita adalah untuk menyajikan ide-ide dasar di balik konstruksi.
