Anda di halaman 1dari 11

Nama NIM Kelompok Mata Kuliah

: Yunita Rahmayanti Mustofa : A11.2009.04770 : A11.4803 : Kriptografi

RINGKASAN MATERI BLOCK CIPHER


A. Block Cipher Block Cipher adalah algoritma enkripsi yang akan membagi bagi plaintext yang akan dikirimkan dengan ukuran tertentu (disebut blok) dengan panjang t , dan setiap blok dienkripsi dengan menggunakan kunci yang sama. Pada cipher block, rangkaian bit bit plainteks dibagi menjadi blok blok bit dengan panjang sama, biasanya 64bit (bisa juga lebih). Penggunaan enkripsi yang panjang ini untuk mempersulit penggunaan pola pola serangan yang ada untuk membongkar kunci.Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit bit kunci yang ukurannya sama dengan ukuran blok plainteks. Algoritma enkripsi menghasilkan blok cipherteks yang berukuran sama dengan blok plainteks. B. Electronic Code Book Pada mode ini, setiap blok plainteks Pi dienkripsi secara individual dan independen menjadi blok cipherteks Ci. Secara matematis, enkripsi dengan mode ECB dinyatakan sebagai : Ci = Ek(Pi) Dan dekripsi sebagai : Pi = Dk(Ci) Istilah Code Book di dalam ECB muncul dari fakta bahwa karena blok plainteks yang sama selalu dienkripsi menjadi blok cipherteks yang sama, maka secara teoritis dimungkinkan membuat buku kode plainteks dan cipherteks yang berkoresponden. Sifat sifat dari mode operasi ECB : 1. Sederhana dan efisien 2. Memungkinkan implementasi parallel 3. Tidak menyembunyikan pola plaintext Skema dari mode operasi ECB dapat digambarkan sebagai berikut :

Sedangkan skema enkripsi ECB :

Lalu skema dekripsi ECB :

Pada ECB, semakin besar ukuran blok , semakin besar pula ukuran buku kodenya. Misalkan jika blok berukuran 64bit, maka buku kode terdiri dari 264 - 1 buah kode (entry), yang berarti terlalu besar untuk disimpan. Lagipula setiap kunci mempunyai buku kode yang berbeda. Contoh : Misalkan plainteks dalam biner adalah : 10100010001110101001 Bagi plainteks menjadi blok blok yang berukuran 4bit : 1010 0010 0011 1010 1001

Atau dalam notasi HEX adalah A23A9. Misalkan kunci (K) yang digunakan adalah panjangnya juga 4bit yaitu 1011 atau dalam notasi HEX adalah B. Cara mengenkripsi adalah dengan meng-XOR-kan blok plainteks Pi dengan K, kemudian geser secara wrapping bit-bit dari Pi K satu posisi ke kiri. Proses enkripsi untuk setiap blok digambarkan sebagai berikut :

Keuntungan dari mode ECB ini adalah : 1. Setiap blok plainteks dienkripsi secara independen sehingga tidak perlu mengenkripsi file secara linier. 2. Jika satu atau lebih bit pada blok cipherteks mengalami kesalahan, maka kesalahan ini hanya mempengaruhi cipherteks yang bersangkutan pada waktu dekripsi. Kelemahan dari mode ECB ini adalah : 1. Karena bagian plainteks sering berulang, maka hasil enkripsinya menghasilkan blok cipherteks yang sama. 2. Pihak lawan dapat memanipulasi cipherteks untuk membodohi atau mengelabui penerima pesan. Kelemahan ECB di atas dapat diatasi dengan mengatur enkripsi tiap blok individual bergantung pada semua blok blok sebelumnya. Dengan ini , blok plainteks yang identik akan menghasilkan blok cipherteks yang berbeda, dan manipulasi cipherteks mungkin menghasilkan pesan hasil dekripsi yang tidak mempunyai makna. Prinsip inilah yang mendasari mode operasi cipher blok yang kedua , yaitu Cipher Block Chaining. C. Cipher Block Chaining Mode ini menerapkan mekanisme umpan balik (feedback) pada sebuah blok, yang dalam hal ini hasil enkripsi blok sebelumnya di-umpan-balikkan ke dalam enkripsi blok yang current. Caranya blok painteks yang current di-XOR-kan terlebih dahulu dengan blok cipherteks hasil enkripsi sebelumnya, selanjutnya hasil pengXOR-an ini masuk ke dalam fungsi enkripsi. Dengan mode CBC, setiap blok cipherteks bergantung tidak hanya pada blok plainteksnya tetapi juga pada seluruh blok plainteks sebelumnya. Skema dari mode operasi CBC dapat digambarkan sebagai berikut :

Skema Enkripsi CBC :

Skema Dekripsi CBC :

Mula-mula sebelum si pengirim hendak mengirimkan pesannya kepada si penerima, dia terlebih dahulu harus meng-XOR plaintext dengan IV (initialization vector) baru kemudian dienkripsi, setelah itu baru dikirimkan ciphertext pertamanya kepada si penerima. Untuk plaintext ke-2 dan seterusnya, sebelum dienkripsi, dia harus di-XOR terlebih dahulu dengan ciphertext sebelumnya. Setelah dienkripsi, baru pesan tersebut dapat dikirimkan ke si penerima sebagai ciphertext 2 dan seterusnya. Pada enkripsi blok pertama C0 = IV (initialization vector). IV diberikan oleh pengguna atau dibangkitkan secara acak oleh program. IV tidak bersifat rahasia. Jadi untuk menghasilkan blok cipherteks pertama (Ci), IV digunakan untuk menggantikan blok cipherteks sebelumnya C0. Sebaliknya pada dekripsi, blok plainteks pertama diperoleh dengan cara meng-XOR-kan IV dengan hasil dekripsi terhadap blok cipherteks pertama. Sifat sifat dari mode operasi CBC : 1. Lebih aman dari active attacks dibandingkan mode operasi ECB. 2. Error pada satu ciphertext dapat berakibat parah. 3. Menutupi pola plaintext. Secara matematis enkripsi dan dekripsi dengan mode CBC dinyatakan sebagai :

Ci = EK ( Pi Ci-1) enkripsi Pi = DK ( Ci Ci-1) dekripsi Contoh : Plainteks : 101000100011101011001 IV yang digunakan bit 0 sehingga C0 = 0000

Cara penyelesaian : Bagi plainteks menjadi blok-blok yang berukuran 4 bit : 1010 0010 0011 1010 1001 atau dalam notasi HEX adalah A23A9. Lalu C1 diperoleh dari : P1 C0 = 1010 0000 = 1010 Enkripsi hasil tersebut (C1) dengan fungsi E sebagai berikut : C1 K = 1010 K = 1010 1011 = 0001 Geser hasilnya satu bit ke kiri 0010 sehingga C1 = 0010 (Dalam HEX = 2) Lalu C2 diperoleh dari : P2 C1 = 0010 0010 = 0000 Enkripsi hasilnya dengan fungsi E : C2 K = 0000 K = 0000 1011 = 1011 Geser hasilnya satu bit ke kiri 0111 sehingga C2 = 0111 (Dalam HEX = 7) Langkah untuk mencari C3, C4, C5 dilakukan dengan cara yang sama seperti di atas. Sehingga : Plainteks : A23A9 Cipherteks (mode ECB) : 23124 Cipherteks (mode CBC) : 27FBF Terlihat pada mode CBC, enkripsi terhadap plainteks A menghasilkan cipher yang berbeda yaitu 2 dan B. Sedangkan pada mode ECB, plaintext A menghasilkan nilai yang sama yaitu 2. Keuntungan dari mode CBC adalah karena blok-blok plainteks yang sama tidak menghasilkan blok-blok cipherteks yang sama maka menyebabkan kriptanalis menjadi lebih sulit untuk mendekripsinya. Kelemahan Mode CBC adalah : 1. Karena blok cipherteks yang dihasilkan selama proses enkripsi bergantung pada blok blok cipherteks sebelumnya, maka kesalahan satu bit pada sebuah blok plainteks akan merambat pada nblok cipherteks yang berkoresponden dan semua blok cipherteks berikutnya. 2. Kesalahan bit cipherteks biasanya terjadi karena adanya gangguan saluran komunikasi data selama transmisi atau malfunction pada media penyimpanan. Persoalan keamanan yang muncul pada mode CBC : 1. Karena blok cipher mempengaruhi blok blok berikutnya, pihak lawan dapat menambahkan blok cipherteks tambahan pada akhir pesan terenkripsi tanpa terdeteksi. 2. Pihak lawan dapat mengubah cipherteks, misalnya mengubah sebuah bit pada suatu blok cipherteks.

D. Cipher Feed Back Mode CFB mengatasi kelemahan pada mode CBC jika diterapkan pada komunikasi data (ukuran blok yang belum lengkap). Data dienkripsikan dalam unit yang lebih kecil daripada ukuran blok. Unit yang dienkripsikan dapat berupa bit per bit (sama seperti cipher alliran), 2bit , 3bit dan seterusnya. Bila unit yang dienkripsikan satu karakter setiap kalinya, maka mode CFB-nya disebut CFB 8bit. CFB n-bit mengenkripsi plainteks sebanyak n bit setiap kalinya, n <= m (m ukuran blok). Dengan kata lain, CFB mengenkripsikan cipher blok seperti pada cipher aliran. Mode CFB membutuhkan sebuah antrian (queue) yang berukuran sama dengan ukuran blok masukan. Skema Mode CFB 8bit yang bekerja pada blok berukuran 64bit (setara dengan 8byte) seperti pada gambar berikut :
Antrian (shift register) 8-byte Antrian (shift register) 8-byte

Left-most byte ki pi

Left-most byte ki ci ci

(a) Enkripsi

pi

(b) Dekripsi

Secara matematis, mode CFB n-bit dapat dinyatakan sebagai : Proses Enkripsi: Ci = Pi MSBm(Ek (Xi)) Xi+1 = LSBm n(Xi) || Ci Pi = Ci MSBm(Ek (Xi)) Xi+1 = LSBm n(Xi) || Ci

Proses Dekripsi:

yang dalam hal ini, Xi = isi antrian dengan X1adalah IV E = fungsi enkripsi dengan algoritma cipher blok. K = kunci m = panjang blok enkripsi n = panjang unit enkripsi || = operator penyambungan (concatenation) MSB = Most Significant Byte LSB = Least Significant Byte Jika m = n, maka mode CFB n-bit adalah sebagai berikut :

Pi 1

Pi

Pi+1

Ek

Ek

Ci 1

Ci
Enkripsi CFB

Ci+1

Ci 1

Ci

Ci+1

Dk

Dk

Pi 1

Pi
Dekripsi CFB

Pi+1

Dari gambar di atas dapat kita lihat bahwa : Ci = Pi Ek (Ci 1 ) Pi = Ci Dk (Ci 1 ) yang dalam hal ini, C0 = IV. Kesalahan 1-bit pada blok plainteks akan merambat pada blok-blok cipherteks yang berkoresponden dan blok-blok ciphereks selanjutnya pada proses enkripsi. Hal yang berkebalikan terjadi pada proses dekripsi. E. Output Feed Back Mode OFB mirip dengan mode CFB, kecuali n-bit dari hasil enkripsi terhadap antrian disalin menjadi elemen posisi paling kanan di antrian.Dekripsi dilakukan sebagai kebalikan dari proses enkripsi.Gambar di bawah ini adalah mose OFB 8-bit yang bekerja pada blok berukuran 64-bit (setara dengan 8 byte).

Antrian (shift register) 8-byte

Antrian (shift registe

Left-most byte ki pi

Left-most byte ki ci ci

(a) Enkripsi

(b) Dekripsi

Jika m = n. Maka mode OFB n-bit adalah :

Pi 1

Pi Ek Ci 1

Pi+1 Ek Ci
Enkripsi OFB

Ci+1

Gambar Enkripsi mode OFB n-bit untuk blok n-bit

Kesalahan 1 bit pada blok plainteks hanya mempengaruhi blok cipherteks yang berkoresponden saja.Begitu pula pada proses dekripsi, kesalahan 1 bit pada blok cipherteks hanya mempengaruhi blokplainteks yang bersangkutan saja. Karakteristik kesalahan semacam ini cocok untuk transmisi analog yang di-digitisasi, seperti suara atau video, yang dalam hal ini kesalahan 1 bit dapat ditolerir, tetapi penjalaran kesalahan tidak dibolehkan.

F. Prinsip Prinsip Perancangan Block Cipher Perancangan algoritma kriptografi yang berbasi blok mempertimbangkan beberapa prinsip berikut : 1. Prinsip Confusion dan Diffusion dari Shannon. a. Confusion Bertujuan menyembunyikan hubungan apapun yang ada antar plainteks, cipherteks, dan kunci. Prinsip : memebuat kriptanalis frustasi untuk mencari pola pola statistik yang muncul pada cipherteks. Confusion yang bagus membuat hubungan statistik antara plainteks, cipherteks, dan kunci menjadi sangat rumit. b. Diffusion Prinsip : menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungki 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. 2. 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. Secara matematis, cipher berulang dinyatakan sebagai : Ci = f(Ci 1 , Ki) 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 operasi substitusi, permutasi, dan/atau ekspansi, kompresi). Plainteks dinyatakan dengan C0 dan Cipherteks dinyatakan sebagai Cr 3. Jaringan Feistel (Feistel Network) Hampir semua algoritma cipher blok bekerja dalam model jaringan Feistel. Model jaringan Feistel adalah sebagai berikut : a. Bagi blok yang panjangnya n bit menjadi dua bagian, kiri (L) dan kanan (R), yang masing masing panjangnya n/2 (mensyaratkan n harus genap). b. Definisikan cipher blok brulang dimana hasil dari putaran ke-i ditentukan dari hasil putaran sebelumnya, yaitu : Li = Ri 1 Ri = Li 1 f(Ri 1, Ki) 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 operasi permutasi, dan/atau ekspansi, kompresi).

substitusi,

Li 1

Ki

Ri 1

Li
Gambar 8.10 Jaringan Feistel

Ri

4. Kunci Lemah (Weak Key) Kunci lemah adalah kunci yang menyebabkan tidak adanya perbedaan antara enkripsi dan dekripsi. Dekripsi terhadap cipherteks tetap menghasilkan plainteks semula, namun enkripsi dua kali berturut turut terhadap plainteks akan menghasilkan kembali plainteksnya. Persamaan berikut menunjukkan fenomena kunci lemah :
EKL(P) = C

DKL(C) = EKL(C ) = P Cipher blok yang bagus tidak mempunyai kunci lemah. 5. Kotak S (S-Box) Kotak S adalah matriks yang berisi substitusi sederhana yang menyatakan 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 m x 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: 12 10 9 4 1 15 14 3 10 4 15 2 15 2 5 12 9 7 2 9 2 12 8 5 6 9 12 15 8 5 3 10 0 6 7 11 13 1 0 14 3 13 4 1 4 14 10 7 14 0 1 6 7 11 13 0 5 3 11 8 11 8 6 13

Baris diberi nomor dari 0 sampai 3 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) Jadi substitusi untuk 110100 adalah entry pada baris 2 dan kolom 10 yaitu 0100 (atau 4 desimal).