Pertemuan 11 : Prinsip Perancangan Block Cipher Oleh Oktaviani Ariyaningsih (2103015100)
Nama : Oktaviani Ariyaningsih
NIM : 2103015100
Kelas : 4C
Block Cipher adalah algoritma yang beroperasi pada
sekumpulan bit dengan panjang yang sama, yang disebut dengan block. Langkah
awalnya adalah membagi plainteks menjadi blok-blok yang kemudian dienkripsi
dengan kunci yang sama panjangnya dengan blok sehingga menghasilkan cipherteks
yang sama panjang dengan teks aslinya.
Prinsip - Prinsip Perancangan Block Cipher
Terdapat beberapa prinsip dalam Block Cipher yaitu :
- Prinsip Confusion dan Diffusion dari Shannon
- Cipher berulang (Iterated Cipher)
- Jaringan Feistel (Feistel Network)
- Kotak-S (S-box)
Banyak algoritma kriptografi klasik yang telah
berhasil dipecahkan karena distribusi statistik plainteks dalam suatu bahasa
diketahui. Claude Shannon dalam makalah klasiknya tahun 1949, Communication
theory of secrecy systems, memperkenalkan prinsip confusion dan diffusion untuk
membuat serangan statistik menjadi rumit. Dua prinsip tersebut menjadi panduan
dalam merancang algoritma kriptografi.
Confusion
Diffusion
Prinsip ini menyebarkan pengaruh satu bit plainteks
atau kunci ke sebanyak mungkin cipherteks. Sebagai contoh, pengubahan kecil
pada plainteks sebanyak satu atau dua bit menghasilkan perubahan pada
cipherteks yang tidak dapat diprediksi. Mode CBC dan CFB menggunakan prinsip
ini. Pada algoritma DES, diffusion direalisasikan dengan menggunakan operasi permutasi.
Cipher Berulang (Iterated Cipher)
Fungsi transformasi sederhana yang mengubah plainteks menjadi cipherteks diulang sejumlah kali. Pada setiap putaran digunakan upa-kunci (subkey) atau kunci putaran (round key) yang dikombinasikan dengan plainteks.
Cipher berulang dinyatakan sebagai Ci = f(Ci – 1 , Ki
) dimana :
- i = 1, 2, …, r (r adalah jumlah putaran)
- Ki = upa-kunci (subkey) pada putaran ke-i
- f = fungsi transformasi (di dalamnya terdapat operasi substitusi, permutasi, dan/atau ekspansi, kompresi).
Plainteks dinyatakan dengan C0 dan cipherteks
dinyatakan dengan Cr.
Jaringan Feistel (Feistel Network)
Jaringan Feistel adalah salah satu struktur umum yang
digunakan di dalam kriptografi modern. Sistem yang digunakan pada jaringan
Feistel adalah dengan membagi plainteks menjadi dua buah bagian, yaitu kiri dan
kanan. Masing-masing bagian diperlakukan secara berbeda. Bagian kiri yang baru
dihasilkan langsung dari bagian kanan. Sementara bagian kanan dihasilkan dari
operasi fungsi tertentu yang menggunakan kunci dan dioperasikan kembali dengan
bagian kiri yang sebelumnya.
Jaringan Feistel pada enkripsi putaran ke-i
- Li = Ri – 1
- Ri = Li – 1 Å
f(Ri – 1, Ki )
Jaringan Feistel banyak dipakai pada algoritma kriptografi DES, LOKI, GOST, FEAL, Lucifer, Blowfish, dan lain-lain karena model ini bersifat reversible untuk proses enkripsi dan dekripsi.
- Ri – 1 = Li
- Li – 1 = Ri Å
f(Ri – 1 ,Ki ) = Ri Å
f(Li , Ki)
Sifat reversible ini membuat kita tidak perlu membuat
algoritma baru untuk mendekripsi cipherteks menjadi plainteks. Contoh: Li – 1 Å
f(Ri – 1 , Ki ) Å f(Ri – 1 , Ki ) = Li – 1. Sifat
reversible tidak bergantung pada fungsi f sehingga fungsi f dapat dibuat
serumit mungkin.
Kotak-S (S-box)
Kotak-S adalah matriks yang berisi substitusi
sederhana yang memetakan satu atau lebih bit dengan satu atau lebih bit yang
lain. Pada kebanyakan algoritma cipher blok, kotak-S memetakan m bit masukan
menjadi n bit keluaran, sehingga kotak-S tersebut dinamakan kotak m ´
n S-box. Kotak-S merupakan satu-satunya langkah nirlanjar di dalam algoritma,
karena operasinya adalah look-up table. Masukan dari operasi look-up table
dijadikan sebagai indeks kotak-S, dan keluarannya adalah entry di dalam
kotak-S.
Contoh :
Kotak-S di dalam algoritma DES adalah 6 ´ 4 S-box yang berarti memetakan 6 bit masukan menjadi 4 bit keluaran. Salah satu kotak-S yang ada di dalam algoritma DES adalah sebagai berikut
- Baris diberi nomor dari 0 sampai 3 dan kolom diberi nomor dari 0 sampai 15
- Masukan untuk proses substitusi adalah 6 bit, b1b2b3b4b5b6
- Nomor baris dari tabel ditunjukkan oleh string bit b1b6 (menyatakan 0 sampai 3 desimal)
- Nomor kolom ditunjukkan oleh string bit b2b3b4b5 (menyatakan 0 sampai 15)
Misalkan :
- Masukan adalah 110100
- Nomor baris tabel = 10 (baris 2)
- Nomor kolom tabel = 1010 (kolom 10)
Pada AES kotak S hanya ada satu buah, yaitu :
10 SOAL ESSAY BESERTA JAWABAN
1. Jelaskan apa itu block cipher dan berikan contoh perancangan block cipher yang populer!
Jawaban: Block cipher adalah sebuah algoritma
kriptografi yang mengenkripsi data dalam bentuk blok-blok tetap dengan ukuran
yang ditentukan. Salah satu contoh perancangan block cipher yang populer adalah
Advanced Encryption Standard (AES). AES menggunakan blok data dengan ukuran 128
bit dan kunci dengan panjang 128, 192, atau 256 bit.
2. Apa yang dimaksud dengan Feistel Cipher?
Jawaban: Feistel Cipher adalah salah satu metode
perancangan block cipher yang menggunakan struktur berulang.
3. Jelaskan prinsip desain block cipher modern yang
dikenal sebagai Substitution-Permutation Network (SPN)!
Jawaban: Prinsip desain block cipher modern
menggunakan Substitution-Permutation Network (SPN) terdiri dari dua tahap
utama. Tahap substitusi melibatkan penggantian setiap elemen data dengan elemen
lain yang ditentukan oleh fungsi substitusi non-linear. Tahap permutasi
melibatkan perubahan posisi elemen-elemen data dengan menggunakan fungsi
permutasi. Tahap substitusi dan permutasi diulang beberapa ronde untuk menghasilkan
enkripsi yang lebih kuat.
4. Apa yang dimaksud dengan diffusion dalam prinsip
perancangan block cipher?
Jawaban: Dalam prinsip perancangan block cipher,
diffusion mengacu pada pengaruh perubahan satu bit pada plaintext yang harus
menyebar ke sebagian besar output ciphertext. Diffusion bertujuan untuk
mengaburkan hubungan antara plaintext dan ciphertext.
5. Apa yang
dimaksud dengan diffusion dan confusion dalam prinsip perancangan block cipher?
Jawaban: Dalam prinsip perancangan block cipher,
confusion mengacu pada kerumitan hubungan antara plaintext dan kunci enkripsi
yang digunakan. Confusion bertujuan untuk membuat hubungan antara plaintext dan
kunci menjadi tidak jelas atau sulit ditemukan.
6. Jelaskan apa itu cipher berulang (iterated cipher)
dalam kriptografi dan berikan contoh terkenal dari jenis cipher ini!
Jawaban: Cipher berulang (iterated cipher) adalah
jenis algoritma kriptografi yang menggunakan langkah-langkah repetitif yang
sama secara berulang untuk mengenkripsi data. Algoritma ini mengulangi
serangkaian operasi enkripsi yang sama pada blok-blok data yang berbeda
sebanyak beberapa ronde. Salah satu contoh terkenal dari cipher berulang adalah
Triple Data Encryption Standard (3DES). 3DES menggunakan algoritma DES secara
berulang sebanyak tiga kali untuk mengenkripsi data.
7. Jelaskan prinsip desain cipher berulang yang
dikenal sebagai mode operasi counter (CTR)!
Jawaban: Prinsip dasar dari mode operasi CTR adalah
dengan menggunakan suatu fungsi enkripsi sebagai generator counter yang
menghasilkan deretan angka acak yang unik dan berurutan. Angka-angka ini
digunakan untuk mengenkripsi blok-blok data yang sesuai. Setiap blok data
dienkripsi dengan XOR antara blok data tersebut dan angka yang dihasilkan oleh
fungsi enkripsi. Mode operasi CTR dapat bekerja pada blok data yang berukuran
variabel dan memungkinkan proses enkripsi yang paralel.
8. Jelaskan apa yang dimaksud dengan kotak-s (s-box)
dalam perancangan block cipher!
Jawaban: Kotak-s (s-box) adalah sebuah komponen kunci
dalam perancangan block cipher yang digunakan untuk melakukan substitusi
non-linear pada blok-blok data. S-box menggantikan setiap blok data masukan
dengan blok data keluaran yang berbeda, sehingga menciptakan konfusi dalam
hubungan antara plaintext dan ciphertext.
9. Jelaskan pentingnya penggunaan Kotak-S (S-box)
dalam perancangan Block Cipher!
Jawaban: Penggunaan kotak-s sangat penting dalam
perancangan block cipher karena membantu meningkatkan kekuatan kriptografi
melalui pengaburan hubungan statistik antara plaintext dan ciphertext.
10. Jelaskan prinsip dasar dari perancangan jaringan
Feistel dalam cipher berulang!
Jawaban: Prinsip dasar dari perancangan jaringan
Feistel dalam cipher berulang adalah membagi blok data menjadi dua bagian yang
sama besar. Setengah bagian pertama diubah dengan menggunakan fungsi kunci yang
bergantung pada setengah bagian kedua, dan hasilnya digabungkan dengan setengah
bagian kedua. Proses ini diulang beberapa ronde dengan fungsi kunci yang
berbeda pada setiap ronde. Jumlah ronde yang diulang dapat bervariasi
tergantung pada desain cipher. Prinsip ini memungkinkan algoritma untuk
mencapai pengaburan (confusion) dan penyebaran (diffusion) dalam proses
enkripsi, yang meningkatkan keamanan dan kompleksitas kriptografi.
Sumber Tugas : https://onlinelearning.uhamka.ac.id/