NIM : 17.01.071.054
PRODI : INFORMATIKA
Kelas : Informatika 2017 A
MATA KULIAH : KRIPTOGRAFI
Jaringan
Subtitusi-Permutasi
Properti utama dari block cipher adalah
seharusnya seperti permutasi Random. Tentu saja, permutasi yang
benar-benar random pasti akan menjadi sempurna. Namun, untuk cipher blok
dengan panjang input dan output dari n bit, ukuran tabel yang dibutuhkan untuk
memegang permutasi random adalah n · 2n (ukuran tabel yang
dibutuhkan untuk fungsi random itu tidak jauh lebih kecil untuk permutasi
random). Jadi, yang kita perlu bagaimana membangun fungsi ringkas seperti
yang dirandom.
Paradigma
kebingungan-difusi.
Shannon memperkenalkan paradigma dasar untuk
membangun singkat mencari fungsi random. Ide dasarnya adalah memecahkan
input menjadi beberapa bagian kecil dan kemudian memberi makan bagian-bagian
ini melalui fungsi acak kecil yang berbeda. Output dari fungsi-fungsi random
ini kemudian dicampur bersama, dan prosesnya diulangi lagi (untuk beberapa
kali). Setiap aplikasi fungsi random yang diikuti oleh pencampuran disebut
putaran jaringan (konstruksi) sering disebut "jaringan" dan kami
menjaga nama ini untuk konsistensi dengan yang lain sumber). Paradigma ini
sering diperkenalkan oleh Shannon disebut pendekatan kebingungan-difusi (pada
kenyataannya, Shannon sendiri yang menciptakan ini istilah dalam makalah aslinya). Fungsi
random kecil memperkenalkan "kebingungan" ke dalam
konstruksi. Namun, untuk menyebarkan kebingungan ke seluruh, hasilnya
dicampur bersama, mencapai "difusi".
Untuk melihat mengapa difusi diperlukan,
pertimbangkan blok-cipher Fk itu bekerja dengan hanya
menerapkan fungsi acak kecil untuk setiap porsi 8-bit input. Sekarang,
biarkan x dan x’ menjadi nilai yang hanya berbeda pada bit pertama. Itu
mengikuti bahwa Fk (x) dan Fk (x’)
hanya berbeda dalam byte pertama (karena dalam semua byte lain x sama dengan
x’). Dalam fungsi yang benar-benar acak, Fk (x)
dan Fk (x’) harus terlihat sangat berbeda, karena setiap
nilai output dalam fungsi acak adalah dipilih secara seragam dan independen
dari semua nilai output lainnya. Namun, dalam cipher blok imajiner ini di
mana difusi tidak digunakan, mereka sama kecuali di byte pertama. Dengan
demikian, cipher blok seperti itu sangat jauh dari a fungsi pseudorandom. Pengulangan
kebingungan dan difusi memastikan bahwa setiap perubahan kecil pada input akan
tercampur dan sebagainya output dari input yang sama akan terlihat sangat
berbeda.
Jaringan
substitusi-permutasi.
Jaringan
substitusi-permutasi adalah implementasi langsung dari paradigma
ini. Bagian "substitusi" mengacu pada fungsi acak kecil dan
"permutasi" mengacu pada pencampuran output dari fungsi
acak. Dalam konteks ini, "permutasi" mengacu pada penataan ulang
bit output. Fungsi substitusi kecil disebut S-box. Anda mungkin
bertanya pada diri sendiri, di mana kunci rahasia itu masuk? Ada sejumlah
kemungkinan jawaban untuk ini, dan berbagai jaringan pergantian-permutasi dapat
menggunakan metode yang berbeda. Salah satu kemungkinan adalah memiliki
spesifikasi kunci jika S-Box dan pencampuran permutasi. Kemungkinan lain
adalah mencampur kunci ke dalam perhitungan di antara setiap putaran
substitusi-permutasi (ingat bahwa operasi substitusi-permutasi diulang
berkali-kali). Presentasi kami di sini sesuai dengan pendekatan yang
terakhir, di mana kuncinya dicampur menjadi hasil antara antara setiap
putaran. Ini seringkali hanya dengan cara sederhana Operasi
XOR. Artinya, kuncinya adalah XORed dengan hasil antara setelah setiap
putaran perhitungan jaringan. Untuk lebih tepatnya, kunci cipher blok
disebut sebagai kunci utama,dan subkunci untuk setiap putaran diturunkan dari
itu; prosedur derivasi ini adalah dikenal sebagai jadwal kunci. Jadwal
kuncinya seringkali sangat sederhana dan dapat bekerja dengan hanya mengambil
himpunan bagian dari bit, meskipun kompleks jadwal juga dapat ditentukan.
Poin penting untuk
diperhatikan adalah bahwa kita belum menentukan sama sekali bagaimana Kotak-S
dan permutasi pencampuran harus dipilih. Kami juga belum fied apakah S-box
dan permutasi pencampuran adalah sama atau berbeda di setiap babak. Kami
tidak akan mempresentasikan prinsip desain untuk konstruksi S-box “bagus”
(dengan satu pengecualian di bawah), dan juga tidak akan dijelaskan bagaimana
subkunci harus diturunkan dari kunci master dan bagaimana permutasi harus
dipilih.
Meskipun ada dua pilihan
desain yang akan sebutkan, yang pertama diperlukan untuk membuat blok cipher
permutasi (yaitu, 1-1 dan ke fungsi), dan yang lainnya adalah persyaratan dasar
untuk keamanan. Keduanya pilihan berhubungan dengan S-box.
Pilihan desain 1 -
keterbalikan S-box.
Dalam substitusi-
jaringan permutasi, S-box harus dapat dibalik. Dengan kata lain, mereka
harus 1–1 dan ke fungsi. sebaliknya ini adalah Alasan untuk cipher blok
tidak akan menjadi permutasi. Di Untuk melihat bahwa membuat S-box 1–1 dan
sudah mencukupi, kami menunjukkan itu dengan asumsi ini dimungkinkan untuk
sepenuhnya menentukan input yang diberikan output dan kuncinya. Secara
khusus, kami menunjukkan bahwa setiap putaran bisa unik terbalik (menghasilkan
bahwa seluruh jaringan dapat dibalik dengan bekerja dari akhir kembali ke
awal). Demi uraian ini, kami mendefinisikan a bulat terdiri dari tiga
tahap: XORing dari subkey dengan input ke bulat, melewati input melalui
kotak-S, dan mencampur hasilnya melalui pencampuran permutasi. Permutasi
pencampuran dapat dengan mudah dibalik karena permutasi menentukan untuk setiap
bit i dalam input, bit j di mana itu muncul dalam output (dengan demikian jth bit
hanya terbalik dengan ith bit). Diberikan output dari
permutasi, oleh karena itu kami mendapatkan input ke permutasi, yang persis
merupakan output dari S-box. Mengingat fakta bahwa S-box 1–1 dan ke
fungsi, ini juga dapat dibalik dengan melihat tabel yang mendefinisikan
mereka. Karena itu kami mendapatkan input ke kotak-S. Akhirnya, subkunci
dapat XOR dengan input ini dan kami mendapatkan nilainya dari awal putaran
(perhatikan bahwa subkey yang diperlukan dapat diturunkan dari kunci master
dengan cara yang sama ketika membalikkan cipher blok seperti saat menghitungnya). Karena
itu, kami memiliki klaim berikut:
KLAIM : Dalam jaringan substitusi-permutasi F di mana
S-box semuanya 1–1 dan ke atas (dan
berukuran polinomial), terdapat prosedur yang efisien dure untuk menghitung F −1 (y). Selanjutnya, untuk setiap
kunci k dan setiap input x, Fk-1(Fk (x)) = x.
Pilihan desain 2 - efek
longsoran salju.
Properti penting dalam segala hal block cipher
adalah bahwa perubahan kecil pada input harus menghasilkan perubahan besar ke
output. Jika tidak, output dari cipher blok pada input yang sama tidak
akan terlihat independen (sedangkan dalam permutasi acak, output dari input
serupa didistribusikan secara independen). Untuk memastikan ini
masalahnya, cipher blok dirancang untuk memiliki efek longsoran, artinya bahwa perubahan
kecil pada input menyebar dengan cepat ke perubahan yang sangat besar di nilai
menengah (dan dengan demikian menghasilkan). Sangat mudah untuk
menunjukkan bahwa Efek longsor berlaku di jaringan substitusi-permutasi,
asalkan dua sifat berikut tahan :
1.
S-box dirancang sedemikian rupa sehingga setiap perubahan minimal
a bit tunggal ke input ke S-box menghasilkan perubahan pada Setidaknya dua bit
dalam output.
2.
Permutasi pencampuran dirancang sehingga output bit dari S-box
yang diberikan tersebar ke S-box yang berbeda di ronde selanjutnya.
properti pertama tidak harus diperoleh secara fngsi
acak kecil atau permutasi. Sebagai contoh, perhatikan case yang dimiliki
S-box panjang input / output 4 bit (ini mungkin tampak sangat kecil tetapi
ukuran sebuah table untuk S-box 8-bit sering terlalu besar). Sekarang,
untuk input 4-bit, ada 5 nilai yang berbeda dari input dengan 1 atau kurang bit
(input itu sendiri ditambah empat nilai-nilai lain diperoleh dengan membalik
sedikit input). Sebaliknya, di sana ada 16 kemungkinan nilai
output. Dengan demikian, probabilitas itu adalah keluaran acak berbeda
dari input dengan 1 atau kurang bit adalah 5/6 > 1/4 . Mengingat bahwa sejumlah S-box dapat
digunakan (misalnya, DES memiliki 8 di antaranya), S-box yang dipilih secara
acak tidak mungkin memiliki properti ini.
Kembali ke efek longsoran, Mempertimbangkan
sekarang apa yang terjadi ketika cipher blok diterapkan pada dua input yang
berbeda dengan hanya satu bit. Demi konkret, asumsikan bahwa S-box
memiliki ukuran input / output 4 bit, dan ukuran blok adalah 128 bit. Kami
melacak perhitungan dua input yang sama satu per satu:
1.
Setelah putaran pertama jaringan, nilai perantara berbeda dalam
dua tempat. Ini disebabkan oleh fakta bahwa kedua input hanya berbeda bit
tunggal dan semua nilai input sama kecuali dalam satu S-box. Dengan
properti S-box di atas, maka output dari S-box ini berbeda di dua tempat.
2.
Dengan properti kedua, permutasi pada akhir babak pertama menyebar
dua bit yang berbeda ke berbagai daerah perantara tali. Oleh karena itu,
maka pada awal babak kedua, ada dua S-box yang menerima input yang berbeda satu
bit.
3.
Melanjutkan dengan argumen diatas, kita memiliki perantara nilai
berbeda 8 bit setelah putaran ke-3, 16 bit setelah putaran ke-4, 32 bit setelah
putaran ke-5, 64 bit setelah putaran ke-6 dan 128 bit (yaitu, di mana-mana)
setelah ronde ke-7. Tentu saja, kami tidak bermaksud begitu bit semua
berbeda, tetapi mereka semua telah terpengaruh dan jadi tidak ada kesamaan yang
tersisa.
Kami menyimpulkan bahwa setelah putaran saya,
2 bit i telah terpengaruh (dengan demikian untuk 128 bit blok, 7
putaran diperlukan untuk menyelesaikan efek longsoran salju).
Serangan pada jaringan
substitusi-permutasi yang dikurangi.
Untuk mendapatkan lebih banyak wawasan tentang
jaringan substitusi-permutasi, kami akan menunjukkan serangan pada cipher blok
jenis ini yang sangat beberapa putaran. Musuh diberikan oracle yang merupakan
permutasi acak atau cipher blok yang diberikan (dengan sebuah kunci yang
dipilih secara acak). Tujuan dari musuh adalah untuk menebak apa fungsinya
dihitung berdasarkan ramalannya. jika musuh dapat memperoleh kunci
rahasia cipher blok, maka dapat membedakannya dari permutasi acak. Seperti
itu serangan disebut istirahat total karena begitu kunci rahasia dipelajari,
tidak keamanan tetap ada.
1.
Serangan pada jaringan substitusi-permutasi satu
putaran: Biarkan x menjadi input dan y output. Kami akan menunjukkan
caranya musuh dapat dengan mudah mempelajari kunci rahasia k yang y = Fk
(x), di mana F menunjukkan jaringan substitusi-permutasi satu putaran. Musuh
dimulai dengan membalik permutasi pencampuran, dan kemudian S-box. Hal ini
dapat dilakukan karena spesifikasi permutasi dan S-box bersifat
publik. Nilai menengah bahwa musuh menerima dari inversi ini persis x ⊕
k (dengan desain satu babak substitusi-permutasi). Karena musuh juga
memiliki taruh x, itu langsung mendapatkan kunci rahasia k. Karena itu ini
adalah hal sepele istirahat total.
2.
Menyerang jaringan substitusi-permutasi dua putaran: Biarkan
ukuran blok menjadi 64 bit dan biarkan setiap S-box memiliki input / output
ukuran 4 bit (seperti yang telah kami sebutkan, 8 biasanya terlalu
besar). Selanjutnya, biarkan kunci k panjangnya 128 bit di mana bagian
pertama dari kunci digunakan di babak pertama dan kedua setengah di babak kedua
(misalkan k a dan k b menunjukkan kedua bagian 64 bit ini
kunci). Kami menggunakan kunci independen di sini untuk menyederhanakan
deskripsi serangan di bawah ini, tetapi ini hanya membuat serangan "lebih
sulit". Sekarang, mari x menjadi input dan y output (masing-masing 64
bit). Menunjukkan z = z1 ,
..., z16 , di mana setiap zi memiliki panjang 4
bit (kami akan menggunakan notasi ini untuk x, y, ka dan kb ). Musuh
dimulai dengan mengupas babak terakhir, seperti pada serangan pada cipher blok
putaran tunggal. Ditunjukkan oleh w nilai yang diterimanya setelah
membalik permutasi pencampuran dan S- boxs babak kedua. Nyatakan α = w1 ⊕ k1b (tentu
saja, musuh tidak tahu k b tapi ingin
mempelajarinya). Pengamatan penting di sini adalah bahwa ketika bekerja
dari input ke output, nilai α dipengaruhi oleh paling banyak 4 S-box yang
berbeda (karena yang terburuk kasus, setiap bit input berasal dari S-box yang
berbeda di babak pertama). Selanjutnya, sejak permutasi pencampuran dari
putaran pertama diketahui, musuh tahu persis mana dari S-box yang
mempengaruhinya. Lanjut, perhatikan bahwa paling banyak 16 bit kunci ka mempengaruhi
perhitungan keempat S-box ini. Oleh karena itu musuh dapat menebak 16 bit
ka dan porsi 4 bit k1b dari
kunci kb , dan kemudian verifikasi tebakannya input-output (x,
y). Verifikasi ini dilakukan oleh XOR
ing relevan 16 bit input x dengan relevan 16 bit ka ,
dan kemudian menghitung 4 S-box putaran pertama dan 4 bit pertama yang sesuai
permutasi pencampuran bulat. Nilai α yang diperoleh kemudian dibandingkan
dengan w 1 ⊕ k1b (di mana
juga bagian dari tebakan). Jika
kesetaraan tidak diperoleh, maka tebakan ini 16 bit ka dan
tentu saja salah. Jika kesetaraan
diperoleh, maka tebakan ini mungkin benar. Jadi, langkah difusi dalam
konstruksi juga diperlukan untuk memastikan hal itu semua bit dari kunci
mempengaruhi semua bit dari output. Dua putaran jaringan tidak cukup untuk
ini terjadi.
3.
Menyerang jaringan substitusi-permutasi tiga putaran: Serangan ini
berdasarkan pengamatan itu efek longsoran tidak lengkap setelah hanya tiga
putaran (tentu saja, ini tergantung pada ukuran blok dan ukuran S-box, tetapi
dengan parameter ini akan menjadi masalahnya). Jadi, musuh hanya perlu
bertanya untuk fungsi yang dihitung pada dua string yang berbeda hanya pada
satu sedikit. Cipher blok tiga putaran akan memiliki properti yang banyak
bit dari output kedua input akan sama. Jadi, jelas bukan fungsi
pseudorandom.