Wednesday, November 28, 2018

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