Cipher Block Chaining Message Authentication Code (CBC-MAC)
![]() |
| https://it.proxsisgroup.com/pentingnya-kebijakan-keamanan-informasi-security-policy/ |
Definisi
Blok cipher adalah suatu algoritma kriptografi simetrik yang mengenkripsi
satu blok plaintext dengan jumlah bit tertentu dan menghasilkan blok
ciphertext dengan jumlah bit yang sama. Misalkan ukuran blok plaintext
yang dienkripsi adalah 64 bit, maka akan menghasilkan ciphertext yang
berukuran 64 bit. Pada umumnya, setiap blok plaintext yang diproses berukuran 64 bit.
Namun, seiring dengan kemajuan teknologi, ukuran blok plaintext
berkembang menjadi 128 bit, 256 bit bahkan menjadi 512 bit. Dalam proses
enkripsinya, block cipher menggunakan beberapa fungsi matematika,
diantaranya fungsi permutasi dan fungsi substitusi, sehingga konfusi
(confussion) dan difusi (diffusion) pada block cipher terpenuhi.
Istilah konfusi dan difusi diperkenalkan oleh Claude Shannon pada tahun
1949. Menurutnya, konfusi dan difusi merupakan hal yang harus
diperhatikan dalam sistem kriptografi, karena dapat mencegah
cyptanalysis, khususnya yang berbasis analisis statistik (Cryptography
and Network Security-William Stalling). Konfusi adalah
mengaburkan/membuat hubungan antara ciphertext dan kunci enkripsi
sekompleks mungkin sehingga tidak ada hubungan statistik antara
keduanya. Hal ini dapat mencegah attacker untuk mendapatkan kunci
enkripsi. Konfusi dapat diusahakan dengan menggunakan fungsi substitusi.
Sedangkan difusi adalah menyebarkan struktur plaintext pada ciphertext,
sehingga tidak ada hubungan statistik antara keduanya. Setiap digit
plaintext mempengaruhi sejumlah digit ciphertext, atau dengan kata lain,
setiap digit ciphertext dipengaruhi oleh sejumlah digit plaintext.
Difusi dapat diusahakan dengan menggunakan fungsi permutasi pada proses
enkripsi.
Penjelasan Mode Operasi
Seperti telah dibahas sebelumnya bahwa block cipher beroperasi pada blok plaintext dan ciphertext. Biasanya ukuran bloknya adalah 64 bit. Operasi pada blok dengan 64 bit (8 byte) ini tidak selalu aman dan rentan terhadap cryptanalysis, misalnya plaintext yang sama selalu menghasilkan ciphertext yang sama dan teknik ini sangat rentan terhadap replay attack. Untuk menghindari hal tersebut, maka pada block cipher digunakan mode operasi. Mode Operasi yang biasa digunakan adalah Mode operasi Cipher Block Chaining (CBC) merupakan salah satu mode operasi block cipher yang menggunakan vektor inisialisasi (initialitation vector/IV) dengan ukuran tertentu (ukurannya sama dengan satu blok plaintext). Pada mode operasi ini plaintext dibagi menjadi beberapa blok, kemudian masing-masing blok dienkripsi dengan ketentuan blok plaintext pertama dienkripsi lebih dahulu. Sebelum dienkripsi, plaintext di-XOR dengan IV. Lalu, hasil XOR tersebut dienkripsi hingga menghasilkan ciphertext. Selanjutnya, ciphertext tersebut digunakan sebagai IV untuk proses penyandian blok plaintext selanjutnya.
Mode operasi CBC menutupi kelemahan dari mode operasi ECB, karena pada CBC dapat menyembunyikan pola dari plaintext. Mengapa demikian? Karena sebelum dienkripsi, plaintext di-XOR dengan IV atau ciphertext sebelumnya, sehingga plaintext yang sama belum tentu menghasilkan ciphertext yang sama, kecuali jika memiliki IV/ciphertext sebelumnya yang sama.
Kelemahan dari CBC adalah untuk mendekripsi ciphertext, dipengaruhi oleh ciphertext sebelumnya. Jika ada kesalahan pada ciphertext sebelumnya, maka ciphertext selanjutnya pun akan salah.
Seperti telah dibahas sebelumnya bahwa block cipher beroperasi pada blok plaintext dan ciphertext. Biasanya ukuran bloknya adalah 64 bit. Operasi pada blok dengan 64 bit (8 byte) ini tidak selalu aman dan rentan terhadap cryptanalysis, misalnya plaintext yang sama selalu menghasilkan ciphertext yang sama dan teknik ini sangat rentan terhadap replay attack. Untuk menghindari hal tersebut, maka pada block cipher digunakan mode operasi. Mode Operasi yang biasa digunakan adalah Mode operasi Cipher Block Chaining (CBC) merupakan salah satu mode operasi block cipher yang menggunakan vektor inisialisasi (initialitation vector/IV) dengan ukuran tertentu (ukurannya sama dengan satu blok plaintext). Pada mode operasi ini plaintext dibagi menjadi beberapa blok, kemudian masing-masing blok dienkripsi dengan ketentuan blok plaintext pertama dienkripsi lebih dahulu. Sebelum dienkripsi, plaintext di-XOR dengan IV. Lalu, hasil XOR tersebut dienkripsi hingga menghasilkan ciphertext. Selanjutnya, ciphertext tersebut digunakan sebagai IV untuk proses penyandian blok plaintext selanjutnya.
Mode operasi CBC menutupi kelemahan dari mode operasi ECB, karena pada CBC dapat menyembunyikan pola dari plaintext. Mengapa demikian? Karena sebelum dienkripsi, plaintext di-XOR dengan IV atau ciphertext sebelumnya, sehingga plaintext yang sama belum tentu menghasilkan ciphertext yang sama, kecuali jika memiliki IV/ciphertext sebelumnya yang sama.
Kelemahan dari CBC adalah untuk mendekripsi ciphertext, dipengaruhi oleh ciphertext sebelumnya. Jika ada kesalahan pada ciphertext sebelumnya, maka ciphertext selanjutnya pun akan salah.
Cara Kerja
Penjelasan
- Pesan dienkripsi hingga menjadi sebuah rantai blok, sehingga setiap blok tergantung pada enkripsi yang tepat dari blok sebelumnya.
- Blok pertama pesan akan di XOR kan dengan IV terdiri atas kumpulan bit 0.
- Blok pertama pesan kemudian akan dienkripsi dengan fungsi enkripsi tertentu dengan kunci K.
- Hasil dari enkripsi ini kemudian di XOR lagi dengan blok pesan kedua.
- Langkah ini diulangi berkali-kali sampai blok pesan terakhir. Hasil enkripsi pada blok pesan terakhir merupakan nilai MAC yang diperoleh dengan algoritma ini.
- Output dari blok terakhir dari teks cipher digunakan sebagai MAC lalu MAC yang menjadi satu dengan plaintext pesan dikirim.
- Penerima menerima pesan plaintext dan mengenkripsinya dengan cipher blok simetrik yang sama dalam mode CBC dan menghitung nilai MAC independen.
- Pada enkripsi CBC-MAC tidak menggunakan algoritma hashing.
Keunggulan dari penggunaan CBC - MAC
adalah algoritma ini cocok digunakan untuk pesan dengan panjang pesan
yang tetap. Namun, penggunaan CBC sebagai algoritma penghitungan MAC
masih memiliki kelemahan untuk pesan dengan panjang yang tidak tetap
(arbitrary).
(sumber: https://en.wikipedia.org/wiki/CBC-MAC)


Comments
Post a Comment