Bukankah data akan hilang ketika memetakan nilai 6-bit ke nilai 4-bit di S-Box DES? Jika demikian, bagaimana kita membalikkannya sehingga output yang benar muncul?
Bukankah data akan hilang ketika memetakan nilai 6-bit ke nilai 4-bit di S-Box DES? Jika demikian, bagaimana kita membalikkannya sehingga output yang benar muncul?
Jawaban:
DES adalah cipher berbasis Feistel . Dalam sandi semacam itu, fungsi tidak perlu dapat dibalik. Inilah alasannya:
Di setiap putaran, operasi berikut diterapkan:
Untuk
Dekripsi dilakukan sebagai berikut:
Seperti yang Anda lihat, dekripsi tidak perlu untuk dapat dibalik. (Karena dekripsi tidak perlu menghitung .)F - 1
Lihat Bab 5 buku teks "Pengantar Kriptografi Modern" oleh Katz dan Lindell.
Tanpa membahas semua omong kosong matematika tentang Feistel (yang saya belum 100% mengerti), jika Anda melihat gambar ini dari Wikipedia:
Anda dapat melihat bahwa walaupun 8 s-box memang mengompresi 48 bit menjadi 32, hanya 32 bit entropi yang berasal dari plaintext , oleh karena itu Anda bisa mendapatkan 16 bit lainnya dari kunci ketika mendekripsi, yang merupakan keajaiban yang dilakukan oleh fungsi Feistel yang disebutkan sebelumnya.