Apa itu Ciphertext Feedback (CFB)?
Dalam kriptografi, ciphertext feedback (CFB), yang juga dikenal sebagai cipher feedback, adalah sebuah mode operasi untuk cipher blok. Ciphertext mengacu pada teks yang sudah dienkripsi yang dipindahkan dari plaintext menggunakan algoritma enkripsi, atau cipher. Cipher blok adalah metode untuk mengenkripsi data dalam blok untuk menghasilkan ciphertext menggunakan kunci kriptografi dan algoritma.
Seperti cipher block chaining (CBC), ciphertext feedback menggunakan initialization vector (IV). CFB menggunakan cipher blok sebagai komponen dari generator angka acak. Dalam mode CFB, blok ciphertext sebelumnya dienkripsi dan outputnya XORed dengan blok plaintext saat ini untuk membuat blok ciphertext saat ini. Operasi XOR menyembunyikan pola plaintext. Plaintext tidak dapat langsung diproses kecuali blok dari awal atau akhir ciphertext diambil.
Entropi yang dihasilkan dapat diterapkan sebagai stream cipher, sebuah metode untuk mengenkripsi teks di mana kunci kriptografi dan algoritma diterapkan satu bit pada satu waktu ke setiap digit biner dalam aliran data. CFB pada dasarnya adalah mode untuk menurunkan beberapa karakteristik dari stream cipher dari cipher blok. Mirip dengan mode CBC, mengubah IV ke blok plaintext yang sama dalam CFB menghasilkan output yang berbeda. Meskipun IV tidak harus dirahasiakan, beberapa aplikasi akan menganggap ini sebagai hal yang diinginkan. Ketergantungan chaining mirip dengan CBC, dimana mengubah urutan blok ciphertext mengubah output dekripsi, karena dekripsi dari satu blok tergantung pada dekripsi blok sebelumnya. Ini berarti bahwa bit yang rusak yang terjadi selama transmisi akan menyebarkan kesalahan tersebut, mempengaruhi bit yang ditransmisikan dalam blok – biasanya satu hingga dua byte yang mengikuti.
Bagaimana Cipher Feedback Digunakan?
CFB digunakan dalam algoritma enkripsi seperti Data Encryption Standard (DES), Triple DES, dan Advanced Encryption Standard (AES). Jika mode CFB digunakan dalam algoritma enkripsi, itu sering digunakan untuk mengenkripsi layanan berikut:
- Komunikasi Wi-Fi
- Situs web aman
- Keamanan berbasis chip
- Enkripsi file
- Tunnel VPN terenkripsi dengan Secure Sockets Layer atau Transport Layer Security
- Email menggunakan Simple Mail Transfer Protocol
- Layanan pesan berbasis Extensible Messaging and Presence Protocol
- FTP aman
- Secure Shell
- Voice over IP
Algoritma AES di bawah ini menunjukkan bagaimana mode cipher, termasuk CFB, berfungsi dalam proses enkripsi. Plaintext yang tidak terenkripsi digabungkan dengan kunci rahasia dan dienkripsi menggunakan salah satu dari lima mode cipher yang didukung, termasuk CFB. Outputnya adalah ciphertext yang dienkripsi yang dapat dipindahkan dengan aman melalui jaringan yang tidak aman.
Apa perbedaan antara CBC dan CFB?
CBC dan CFB menjalankan tugas enkripsi data yang sama secara umum, dengan beberapa pengecualian yang signifikan. Pertama, data mode CFB dienkripsi dalam unit yang lebih kecil daripada ukuran blok cipher yang sudah ditentukan, yang biasanya 64 bit, seperti halnya pada CBC. Sebaliknya, CFB mengenkripsi unit dalam ukuran blok 1 atau 2 byte (8 atau 16 bit) dan memproses setiap bit satu per satu, bukan seluruh 64 bit. Oleh karena itu, menggunakan mode CFB, tidak diperlukan proses padding ketika ukuran data kurang dari 64 bit dan perlu ditambahkan untuk memenuhi persyaratan panjang 64 bit.
Pembedaan besar lainnya antara CBC dan CFB adalah bagaimana mereka mengenkripsi data plaintext. Berbeda dengan CBC, yang langsung mengenkripsi blok plaintext, CFB mengenkripsi blok plaintext yang sudah dienkripsi sebelumnya dan kemudian menambahkannya ke blok plaintext berikutnya. Ini berarti bahwa algoritma yang sama yang digunakan untuk mengenkripsi data dapat digunakan untuk mendekripsinya, yang menyederhanakan proses dekripsi CFB.