Apa itu Electronic Code Book (ECB)?
Electronic Code Book (ECB) adalah mode operasi yang sederhana dengan block cipher yang biasanya digunakan dengan enkripsi kunci simetris. Ini adalah cara yang langsung untuk memproses serangkaian blok pesan yang tercatat secara berurutan.
Input plaintext dibagi menjadi beberapa blok. Setiap blok dienkripsi secara individu dan independen (ciphertext) menggunakan kunci enkripsi. Akibatnya, setiap blok yang terenkripsi dapat didekripsi secara terpisah. ECB dapat mendukung kunci enkripsi terpisah untuk setiap tipe blok.
Pada ECB, setiap blok plaintext memiliki nilai ciphertext yang terdefinisi, dan sebaliknya. Jadi, plaintext yang identik dengan kunci yang sama akan selalu menghasilkan ciphertext yang identik. Ini berarti bahwa jika blok plaintext P1, P2, dan seterusnya dienkripsi berkali-kali dengan kunci yang sama, blok ciphertext yang dihasilkan akan selalu sama.
Dengan kata lain, nilai plaintext yang sama akan selalu menghasilkan nilai ciphertext yang sama. Ini juga berlaku untuk plaintext dengan bagian yang identik sebagian. Misalnya, plaintext yang berisi header surat yang identik dan dienkripsi dengan kunci yang sama akan menghasilkan bagian ciphertext yang sebagian identik.
Untuk setiap kunci yang diberikan, sebuah codebook ciphertext dapat dibuat untuk semua blok plaintext yang mungkin. Dengan mode ECB, enkripsi hanya melibatkan pencarian plaintext dan memilih ciphertext yang sesuai. Operasi ini seperti memberikan kata sandi dalam codebook. Faktanya, istilah “code book” berasal dari codebook kriptografi yang digunakan selama Perang Saudara Amerika Serikat (1861-1865).
Dalam hal koreksi kesalahan, setiap bit yang rusak dalam blok ciphertext hanya akan memengaruhi dekripsi blok tersebut. Ketergantungan rantai bukan masalah. Pengurutan ulang blok ciphertext hanya akan mengurutkan ulang blok plaintext yang sesuai. Ini tidak akan memengaruhi dekripsi.
Data Encryption Standard vs Electronic Code Book
Data Encryption Standard (DES), yang dikembangkan oleh IBM pada awal 1970-an, menjadi Standar Pemrosesan Informasi Federal (FIPS) pada tahun 1977. DES dapat menggunakan lima mode untuk mengenkripsi data. ECB adalah salah satunya dan merupakan mode asli dari DES.
Tiga mode lainnya, Cipher Block Chaining (CBC), Cipher Feedback (CFB), dan Output Feedback (OFB), ditambahkan ke FIPS Publication 81. Mode kelima, Counter Mode, kemudian ditambahkan ke NIST Special Publication 800-38a. Mode-mode ini berbeda dalam prinsip desainnya, seperti blok versus (stream yang disimulasi), apakah vektor inisialisasi digunakan, dan apakah kesalahan enkripsi kemungkinan akan menyebar ke blok berikutnya.
Dari lima mode DES, ECB adalah yang paling sederhana dan terlemah, karena plaintext yang berulang menghasilkan ciphertext yang berulang. Akibatnya, siapa pun dapat dengan mudah mengetahui kunci rahasia untuk memecahkan enkripsi dan mendekripsi ciphertext. ECB juga dapat meninggalkan pola plaintext yang jelas pada ciphertext yang dihasilkan.
Huruf ECB setelah cipher seperti DES atau AES — DES-ECB atau AES-ECB — menunjukkan penggunaan mode ECB.
Apa saja kekurangan dari Electronic Code Book?
Ada beberapa kekurangan dalam menggunakan ECB, antara lain:
- ECB menggunakan substitusi sederhana daripada vektor inisialisasi atau chaining. Kualitas ini membuatnya mudah diimplementasikan. Namun, ini juga kekurangannya yang terbesar. Dua blok plaintext yang identik menghasilkan dua blok ciphertext yang identik, membuatnya secara kriptografis lemah.
- ECB tidak baik digunakan dengan ukuran blok kecil — misalnya, untuk blok yang lebih kecil dari 40 bit — dan mode enkripsi yang identik. Pada ukuran blok kecil, beberapa kata dan frasa mungkin sering digunakan dalam plaintext. Ini berarti bahwa ciphertext mungkin membawa (dan membocorkan) pola dari plaintext yang sama, dan bagian ciphertext yang sama berulang bisa muncul. Ketika pola plaintext terlihat jelas, ini menciptakan kesempatan bagi aktor jahat untuk menebak pola dan melakukan serangan codebook.
- Keamanan ECB lemah tetapi dapat diperbaiki dengan menambahkan bit acak pada setiap blok. Blok yang lebih besar (64-bit atau lebih) kemungkinan akan mengandung cukup karakter unik (entropi) untuk membuat serangan codebook tidak mungkin terjadi.
Electronic Code Book dan keamanan internet
ECB awalnya dirancang untuk mengenkripsi pesan yang tidak pernah lebih dari satu blok, seperti untuk mengenkripsi kunci yang didistribusikan untuk operasi lainnya. Namun, menggunakan ECB pada pesan yang lebih panjang dari satu blok mengakibatkan kebocoran satu bit per blok. Hal ini karena ECB memungkinkan aktor jahat untuk menyamarkan kapan dua blok plaintext identik atau berbeda.
Salah satu contoh masalah ini adalah enkripsi foto. Meskipun terenkripsi, sifat dari ECB memungkinkan garis besar foto terlihat jelas.
Ini bukan karena enkripsi itu sendiri gagal, tetapi karena digunakan dengan cara yang tidak dimaksudkan. Protokol internet yang menggunakan mode operasi yang tidak dirancang untuk mengenkripsi beberapa blok memperkenalkan risiko keamanan dalam sistem.