Seperti namanya, sebuah block cipher mengenkrip 1 blok data setiap waktu. Ukuran blok ini biasanya kecil, misalnya AES memakai ukuran blok 128 bit (16 byte). Karena enkripsi dilakukan per blok, maka jika ukuran data kurang dari ukuran blok maka perlu ditambahkan padding (yang sudah dibahas sebelumnya). Jadi tidak seperti stream cipher, ukuran data hasil bisa sedikit lebih besar karena padding.
Ada banyak contoh block cipher, misalnya AES (yang jadi standar saat ini), DES (standar sebelumnya), TEA (block cipher yang sangat sederhana), Blowfish, dsb. Salah satu alasan enkripsi dilakukan per blok adalah: ada operasi permutasi yang bisa dilakukan dalam tiap blok. Contohnya jika ukuran blok hanya 4 byte dan kita memiliki data dengan urutan 1 2 3 4, maka bisa dilakukan permutas sehingga urutannya (misalnya) menjadi 2 3 1 4.
Tentunya tidak hanya permutasi saja yang dilakukan, biasanya ada banyak langkah yang diulang beberapa kali (iterated block cipher). Setiap langkah bisa berupa substitusi (menggunakan yang namanya S-BOX), permutasi, pemecahan blok menjadi beberapa bagian, dan penggabungan kembali bagian tersebut.
Mode Of Operation
Untuk tiap block cipher, kita bisa menggunakannya dalam berbagai mode. Mode paling sederhana adalah Electronic Codebook (ECB): ambil satu blok, enkrip blok itu saja, lupakan semua, jika ada blok baru maka enkrip blok itu saja, dst. Ini jadi mirip dengan stream cipher hanya saja ukurannya per blok. Di dalam mode ini tidak ada IV (initialization vector).
Lanjutkan membaca “Block Cipher”