CIPHER BLOCK CHAINING MESSAGE AUTHENTICATION CODE (CBC-MAC)
A. MESSAGE AUTHENTICATION CODE (MAC)
Message Authentication Code (MAC) adalah potongan
informasi berupa kode yang digunakan untuk otentikasi
bagian informasi lain berupa pesan. MAC merupakan
sebuah fungsi satu arah yang menggunakan kunci privat
dalam penghitungan nilai MAC dari pesan tersebut.
Sistem MAC ini berbeda dengan fungsi hash semisal
SHA ataupun MD5 yang tidak menggunakan kunci privat
apapun untuk menghitung nilai hash dari pesan. Nilai
hash yang dihasilkan adalah selalu berukuran tetap
berapapun panjang dari pesan yang diotentikasi.
Selanjutny, MAC dilekatkan pada pesan (atau bisa juga
menggunakan file luar) yang nantinya akan digunakan
untuk otentikasi keaslian pesan. Perbedaan antara MAC
dan algoritma enkripsi adalah MAC digunakan tanpa
perlu merahasiakan isi pesan. MAC juga bukan tanda
tangan digital, MAC hanya menyediakan otentikasi
pengirim dan integritas pesan saja.
Algoritma MAC adalah algoritma yang melakukan
penghitungan nilai hash file dengan menerima masukan
pesan beserta kunci privat tertentu. Selanjutnya, MAC
akan menghasilkan tag file pada pesan sebagi
penanda bahwa bagian itu adalah nilai hash dari pesan
tersebut. Apabila dituangkan secara matematis, bentuk
umum dari algoritma MAC adalah sebagai berikut :
dengan MAC menunjukkan nilai hash, C adalah
fungsi hash yang digunakna dalam penghitungan
MAC (atau algoritma MAC), dan K merupakan
kunci rahasia atau kunci privat yang digunakan.
Fungsi MAC ini tidak hanya menjaga integritas dari
data namun juga dapat mendeteksi setiap perubahan
yang terjadi pada isi pesan.
Gambar 1 Bentuk pesan yang telah disisipi MAC di akhir
pesan
Berikut ini merupakan bagan yang menunjukkan
contoh proses penggunaan MAC sebagai cara
mengotentikasi pesan antara dua pihak yang saling
memiliki kunci privat yang telah disepakati sebelumnya.
Gambar 2 Mekanisme Penggunaan Message Authentication
Code
Pada gambar di atas, pihak pengirim dan penerima
terlebih dahulu menentukan kunci privat yang akan
mereka gunakan dalam otentikasi pesan antarmereka.
Selanjutnya, pihak pengirim akan menggunakan
algoritma MAC dengan kunci privat tadi untuk
menghasilkan nilai MAC dari pesan yang akan
ditransmisikan. Pesan kemudian diembedkan dengan nilai
MAC yang telah ditemukan dan dikirimkan ke pihak
penerima. Pihak penerima kemudian mengotentikasi
keaslian pesan dengan menghitung kembali MAC yang
dari pesan tersebut lalu mencocokkannya dengan MAC
yang tertera pada pesan. Apabila ada ketidakcocokan,
dapat diambil kesimpulan langsung bahwa terjadi
perubahan pada isi pesan yang diterima. Artinya, pesan
tidak lagi asli.
ALGORITMA PEMBANGUN MAC
Perancangan algoritma MAC dapat dilakukan dengan
dua cara/pendekatan. Cara pertama yaitu dengan
menggunakan algoritma kriptografi simetri berbasis blok
cipher atau yang lebih dikenal dengan konsep Cipher
Block Chaining (CBC), sedangkan cara yang satu lagi
yaitu pembangunan MAC dengan menggunakan fungsi
hash satu arah. Contoh dari fungsi satu arah adalah fungsi
SHA dan MD5 yang melakukan pengihitungan nilai hash
file saja. Pada makalah ini akan dijelaskan tentang CBC
MAC dan modifikasi yang dilakukan terhadapnya.
B. CIPHER BLOCK CHAINING MAC
Cipher Block Chaining (CBC) MAC adalah teknik
membangun message authentication code (MAC) dari
block cipher. Pesan dienkripsi dengan algoritma cipher
blok dalam model CBC untuk menciptakan rantai blok
yang mana setiap blok akan sangat bergantung dengan
enkripsi pada blok sebelumnya. Ketergantungan seperti
ini memastikan perubahan pada bit apapun pada plainteks
akan menyebabkan perubahan pada blok akhir hasil
enkripsinya. Pada CBC, hasil akhir dari enkripsi tidak
dapat diprediksi tanpa mengetahui kunci dari cipher blok
nya.
Pada konsep CBC ini, penghitungan nilai MAC
bergantung pada proses enkripsi pada tiap blok.
Mekanisme pencarian CBC MAC adalah dengan
membagi pesan ke dalam blok-blok pesan dengan panjang
tetap. 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. Hal ini diulangi berkali-kali
sampai blok pesan terakhir. Hasil enkripsi pada blok
pesan terakhir merupakan nilai MAC yang diperoleh
dengan algoritma ini.
Berikut merupakan gambaran operasi pada CBC MAC.
Gambar 3 Mekanisme operasi pada CBC MAC
dengan m adalah pesan yang akan dicari nilai MAC-nya,
E adalah fungsi enkripsi berbasis blok, dan k adalah kunci
privat yang digunakan untuk melakukan enkripsi.
Pembagian blok pesan pada CBC MAC adalah pesan
dibagi ke dalam blok-blok pesan dengan panjang setiap
blok adalah panjang yang sudah ditetapkan, dalam hal ini
adalah panjang blok bersesuaian dengan spesifikasi fungsi
enkripsi yang dipakai.
Misalnya, DES digunakan sebagai cipher blok, maka
ukuran blok adalah 64 bit, dan kunci rahasia MAC adalah
kunci DES yang panjangnya 56 bit.
Dalam pembuatan MAC dengan konsep CBC ini, kunci
yang dilakukan untuk melakukan enkripsi untuk semua
blok adalah selalu sama. Begitu pula dengan fungsi
enkripsi yang digunakan. Yang berbeda untuk setiap blok
hanyalah masukan berupa potongan blok pesan yang
sudah di-XOR dengan hasil enkripsi pesan sebelumnya
KELEMAHAN CBC MAC
Konsep CBC dalam enkripsi pesan sudah diakui
kehebatannya dalam menahan serangan dari kriptanalis.
Keunggulan dari penggunaan CBC MAC ini 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).
Seorang penyerang yang mengetahui tag MAC yang
benar dari sebuah pesan tertentu, misalnya pasangan (m,
t) dan (m', t') dapat mengenerate pesan ketiga m'' yang
mana hasil CBC MAC nya adalah be t' juga. Hal ini dapat
dilakukan dengan melakukan XOR blok pertama dari m'
dengan t dan melalakukan konkat m dengan m' yang telah
termodifikasi ini. Contoh matematisnya adalah seperti ini.
Gambar 4 Bentuk matematis kelemahan CBC MAC
Untuk menghadapi kelemahan CBC MAC terhadap
pesan dengan panjang tidak tetap tersebut, dapat
dilakukan modifikasi terutama pada konsep blok pesan
dan pembangkitan kuncinya. Bentuk modifikasi yang
akan dilakukan adalah mengubah teknis pembagian blok
dan menggunakan bantuan algoritma enkripsi simetri
Vigenere Cipher dan Caesar Cipher sebagai algoritma
enkripsi bloknya.
Refrensi :
Andhika, Fatardhi Rizky.2011.Modifikasi Cipher Block Chaining (CBC) MAC dengan
Penggunaan Vigenere Cipher, Pengubahan Mode Blok, dan
Pembangkitan Kunci Berbeda untuk tiap Blok.



No comments:
Post a Comment