Mode Operasi Block Cipher

Dalam bab ini, kita akan membahas berbagai mode operasi cipher blok. Ini adalah aturan prosedural untuk block cipher generik. Menariknya, mode yang berbeda menghasilkan properti berbeda yang dicapai yang menambah keamanan cipher blok yang mendasarinya.

Sebuah cipher blok memproses blok data dengan ukuran tetap. Biasanya, ukuran pesan lebih besar dari ukuran blok. Karenanya, pesan panjang dibagi menjadi serangkaian blok pesan berurutan, dan penyandian beroperasi pada blok ini satu per satu.

Mode Buku Kode Elektronik (ECB)

Mode ini adalah cara paling mudah untuk memproses serangkaian blok pesan yang terdaftar secara berurutan.

Operasi

  • Pengguna mengambil blok teks biasa pertama dan mengenkripsinya dengan kunci untuk menghasilkan blok teks tersandi pertama.

  • Dia kemudian mengambil blok teks biasa yang kedua dan mengikuti proses yang sama dengan kunci yang sama dan seterusnya.

Mode ECB adalah deterministic, yaitu, jika blok teks biasa P1, P2,…, Pm dienkripsi dua kali di bawah kunci yang sama, blok ciphertext keluaran akan sama.

Faktanya, untuk kunci tertentu secara teknis kita dapat membuat buku kode ciphertext untuk semua kemungkinan blok teks biasa. Enkripsi kemudian hanya memerlukan mencari teks biasa yang diperlukan dan memilih teks tersandi yang sesuai. Dengan demikian, operasi ini analog dengan penetapan kata kode dalam buku kode, dan karenanya mendapat nama resmi - mode operasi Buku Kode Elektronik (ECB). Ini diilustrasikan sebagai berikut -

Analisis Mode ECB

Pada kenyataannya, setiap data aplikasi biasanya memiliki informasi parsial yang dapat ditebak. Misalnya saja kisaran gaji yang bisa ditebak. Sebuah ciphertext dari ECB dapat memungkinkan penyerang menebak teks biasa dengan coba-coba jika pesan teks biasa dapat diprediksi.

Misalnya, jika teks sandi dari mode ECB diketahui mengenkripsi angka gaji, maka sejumlah kecil percobaan akan memungkinkan penyerang untuk memulihkan angka tersebut. Secara umum, kami tidak ingin menggunakan sandi deterministik, dan karenanya mode ECB tidak boleh digunakan di sebagian besar aplikasi.

Mode Cipher Block Chaining (CBC)

Mode operasi CBC memberikan ketergantungan pesan untuk menghasilkan teks sandi dan membuat sistem non-deterministik.

Operasi

Pengoperasian mode CBC digambarkan dalam ilustrasi berikut. Langkah-langkahnya adalah sebagai berikut -

  • Muat Vektor Inisialisasi n-bit (IV) di register atas.

  • XOR blok teks biasa n-bit dengan nilai data di register atas.

  • Enkripsi hasil operasi XOR dengan block cipher yang mendasari dengan kunci K.

  • Masukkan blok teks tersandi ke register atas dan lanjutkan operasi sampai semua blok teks biasa diproses.

  • Untuk dekripsi, data IV di-XOR dengan blok ciphertext pertama didekripsi. Blok ciphertext pertama juga dimasukkan ke register menggantikan IV untuk mendekripsi blok ciphertext berikutnya.

Analisis Mode CBC

Dalam mode CBC, blok teks biasa ditambahkan ke blok teks tersandi sebelumnya, dan hasilnya dienkripsi dengan kunci. Dekripsi dengan demikian merupakan proses kebalikannya, yang melibatkan mendekripsi ciphertext saat ini dan kemudian menambahkan blok ciphertext sebelumnya ke hasilnya.

Keuntungan CBC dibandingkan ECB adalah bahwa mengubah IV menghasilkan ciphertext yang berbeda untuk pesan yang identik. Di sisi kekurangannya, kesalahan dalam transmisi disebarkan ke beberapa blok lebih lanjut selama dekripsi karena efek rantai.

Perlu disebutkan bahwa mode CBC membentuk dasar untuk mekanisme otentikasi asal data yang terkenal. Dengan demikian, ini memiliki keuntungan untuk aplikasi yang membutuhkan enkripsi simetris dan otentikasi asal data.

Mode Umpan Balik Cipher (CFB)

Dalam mode ini, setiap blok teks tersandi mendapat 'umpan balik' ke dalam proses enkripsi untuk mengenkripsi blok teks biasa berikutnya.

Operasi

Pengoperasian mode CFB digambarkan dalam ilustrasi berikut. Sebagai contoh, dalam sistem sekarang, blok pesan memiliki bit berukuran 's di mana 1 <s <n. Mode CFB membutuhkan vektor inisialisasi (IV) sebagai blok masukan n-bit acak awal. IV tidak perlu dirahasiakan. Langkah-langkah operasinya adalah -

  • Muat IV di register atas.

  • Enkripsi nilai data di register atas dengan block cipher yang mendasari dengan kunci K.

  • Ambil hanya sejumlah bit paling signifikan (bit kiri) dari output proses enkripsi dan XOR mereka dengan blok pesan teks biasa bit untuk menghasilkan blok teks tersandi.

  • Masukkan blok ciphertext ke register atas dengan menggeser data yang sudah ada ke kiri dan melanjutkan operasi sampai semua blok teks biasa diproses.

  • Pada dasarnya, blok ciphertext sebelumnya dienkripsi dengan kunci tersebut, dan kemudian hasilnya di-XOR ke blok teks biasa saat ini.

  • Langkah serupa diikuti untuk dekripsi. IV yang telah diputuskan sebelumnya dimuat pada awal dekripsi.

Analisis Mode CFB

Mode CFB berbeda secara signifikan dari mode ECB, ciphertext yang sesuai dengan blok teks biasa tidak hanya bergantung pada blok teks biasa dan kuncinya, tetapi juga pada blok teks tersandi sebelumnya. Dengan kata lain, blok ciphertext bergantung pada pesan.

CFB memiliki fitur yang sangat aneh. Dalam mode ini, pengguna mendekripsi ciphertext hanya dengan menggunakan proses enkripsi dari block cipher. Algoritme dekripsi dari block cipher yang mendasarinya tidak pernah digunakan.

Rupanya, mode CFB mengubah cipher blok menjadi jenis cipher aliran. Algoritma enkripsi digunakan sebagai generator aliran kunci untuk menghasilkan aliran kunci yang ditempatkan di register bawah. Aliran kunci ini kemudian di-XOR dengan teks biasa seperti pada sandi aliran.

Dengan mengubah cipher blok menjadi cipher aliran, mode CFB menyediakan beberapa sifat menguntungkan dari cipher aliran sambil mempertahankan sifat menguntungkan dari cipher blok.

Di sisi lain, kesalahan transmisi diperbanyak karena pergantian blok.

Mode Umpan Balik Keluaran (OFB)

Ini melibatkan pemberian makan blok keluaran berturut-turut dari blok cipher yang mendasarinya kembali ke sana. Blok umpan balik ini menyediakan string bit untuk memberi makan algoritma enkripsi yang bertindak sebagai generator aliran-kunci seperti dalam mode CFB.

Aliran kunci yang dihasilkan di-XOR dengan blok teks biasa. Mode OFB membutuhkan IV sebagai blok masukan n-bit acak awal. IV tidak perlu dirahasiakan.

Pengoperasiannya digambarkan dalam ilustrasi berikut -

Mode Penghitung (CTR)

Ini dapat dianggap sebagai versi mode CFB berbasis kontra tanpa umpan balik. Dalam mode ini, pengirim dan penerima perlu mengakses ke penghitung yang andal, yang menghitung nilai bersama baru setiap kali blok ciphertext ditukar. Penghitung bersama ini belum tentu merupakan nilai rahasia, tetapi tantangannya adalah kedua belah pihak harus menjaga agar penghitung tetap sinkron.

Operasi

Enkripsi dan dekripsi dalam mode CTR digambarkan dalam ilustrasi berikut. Langkah-langkah pengoperasiannya adalah -

  • Muat nilai pencacah awal di register atas sama untuk pengirim dan penerima. Ini memainkan peran yang sama dengan IV dalam mode CFB (dan CBC).

  • Enkripsi konten penghitung dengan kunci dan letakkan hasilnya di register bawah.

  • Ambil blok teks biasa pertama P1 dan XOR ini ke isi register paling bawah. Hasilnya adalah C1. Kirim C1 ke penerima dan perbarui penghitung. Pembaruan counter menggantikan umpan balik ciphertext dalam mode CFB.

  • Lanjutkan dengan cara ini sampai blok teks biasa terakhir telah dienkripsi.

  • Dekripsi adalah proses kebalikannya. Blok ciphertext di-XOR dengan output konten terenkripsi dari nilai counter. Setelah dekripsi dari setiap penghitung blok ciphertext diperbarui seperti dalam kasus enkripsi.

Analisis Mode Penghitung

Itu tidak memiliki ketergantungan pesan dan karenanya blok ciphertext tidak bergantung pada blok teks biasa sebelumnya.

Seperti mode CFB, mode CTR tidak melibatkan proses dekripsi dari block cipher. Ini karena mode CTR benar-benar menggunakan block cipher untuk menghasilkan aliran kunci, yang dienkripsi menggunakan fungsi XOR. Dengan kata lain, mode CTR juga mengubah cipher blok menjadi sandi aliran.

Kerugian serius dari mode CTR adalah membutuhkan penghitung sinkron di pengirim dan penerima. Hilangnya sinkronisasi menyebabkan pemulihan teks biasa yang salah.

Namun, mode CTR memiliki hampir semua keunggulan mode CFB. Selain itu, tidak menyebarkan kesalahan transmisi sama sekali.