CBC-MAC
CIPHER BLOCK CHAINING MESSAGE AUTHENTICATION CODE
MAC (Message Authentication Code) adalah suatu metode pengamanan dengan melakukan otentikasi pada suatu pesan dimana pengirim dan penerima pesan butuh untuk memasukkan kunci untuk mengecek keotentikan dari pesan tersebut. Message Authentication Code berfungsi untuk melakukan otentikasi dari pesan tersebut untuk mengecek apakah pesan tersebut telah mengalami perubahan atau belum sehingga dapat dideteksi apabila ada yang melakukan modifikasi (man in the middle attack) pada pesan tersebut. Dalam penerapannya berbagai metode algoritma digunakan untuk Message Authentication Code. Dalam pemecahannya banyak juga metode penyerangan (attack) yang dilakukan oleh orang-orang yang ingin memperoleh isi pesan tersebut yang bersesuaian dengan algoritma Message Authentication Code yang digunakan. Dalam penggunaannya Message Authentication Code digunakan dalam berbagai aplikasi yang berkaitan dengan pengiriman pesan seperti email, messenger, dan berbagai metode pengiriman pesan elektronik lainnya
Pada Message Authentication Code penulis dan pembaca pesan menggunakan kunci yang sama layaknya metode enkripsi simetris, berbeda dengan tanda tangan digital dimana penggirim pesan dan penerima pesan menggunakan kunci yang berbeda untuk menambahkan tanda tangan digital pada pesan tersebut. Perbedaan dari Message Authentication Code dan Hash adalah untuk suatu pesan tertentu meskipun ada seseorang yang berhasil memecahkan kunci rahasia dari suatu pesan, pada pesan lainnya yang dibuat dengan cara yang sama, penyerang tersebut tidak bisa menebak kuncinya tanpa melakukan sejumlah komputasi terlebih dahulu karena kunci untuk setiap pesan berbeda.
Attack adalah suatu istilah yang digunakan untuk merujuk pada gangguan yang dilakukan oleh suatu pihak tertentu yang berkepentingan ketika mencoba untuk memanfaatkan kelemahan dari fungsi ataupun algoritma penyusun suatu metode pengamanan yang ditambahkan pada suatu pesan. Untuk melakukan perusakan terhadap isi awal dari pesan tersebut banyak metode penyerangan yang digunakan. berikut ini adalah contoh-contohnya:
- Collision Attack
- Preimage Attack
- Birthday Attack
- Brute force attack
- Rainbow table
- Distinguishing attack
- Side-channel attack.
VARIASI ALGORITMA MESSAGE AUTHENTICATION CODE
Message Authentication Code atau MAC adalah suatu fungsi pembangkitan nilai hash dari suatu pesan yang panjangnya tetap ataupun penggunaan algoritma tertentu dengan menggunakan suatu kunci rahasia yang akan digunakan untuk melakukan pengecekan pada pesan tersebut. Atau dapat dirumuskan sebagai berikut:
Atau dapat digambarkan sebagai berikut :
Dalam gambar diatas, seorang pengirim pesan melakukan pembangkitan suatu nilai Message Authentication Code dengan menggunakan kunci tertentu pada suatu algoritma Message Authentication Code. Lalu pesan tersebut dikirimkan pada seorang penerima. Setelah si penerima menerima pesan tersebut, si penerima lalu melakukan pengecekan pada pesan tersebut. Penerima akan membangkitkan suatu nilai Message Authentication Code dengan menggunakan kunci yang sama pada algoritma Message Authentication Code yang sama seperti yang digunakan oleh pihak pengirim pesan. Lalu pihak penerima akan mengecek kesamaan dari Message Authentication Code yang telah dibangkitkan dengan Message Authentication Code yang dikirimkan oleh pengirim untuk melakukan otentikasi pesan yang sikirimkan. Bila nilai Message Authentication Code yang diperoleh sama maka pesan tersebut merupakan pesan asli yang dikirimkan oleh si pengirim, jika nilainya berbeda maka pesan tersebut dicurigai telah mengalami serangan tertentu dalam proses pengirimannya.
Dalam membuat Message Authentication Code ada beberapa metode algoritma yang digunakan. Message Authentication Code dapat dibuat dari sebuah fungsi kriptografi hash yaitu Message Authentication Code ataupun dengan algoritma block-cipher sepereti OMAC CBC-MAC dan PMAC. Namun algoritma Message Authentication Code tercepat seperti UMAC dan VMAC dikonstruksi berdasarkan universal hashing.
- Message Authentication Code dengan fungsi hash
Pada bagian ini kita akan membahas tentang pembangkitan nilai Message Authentication Code dari suatu pesan dengan menggunakan fungsi hash satu arah dengan kombinasi suatu kunci rahasia tertentu. Pada algoritma ini digunakan fungsi pembangkit nilai hash seperti SHA-1 dan MD5 untuk memperoleh nilai HMAC dari suatu pesan. Sebagai contoh dari pembangkitan Message Authentication Code dengan fungsi hash dapat dijelaskan melalui rumus berikut:
Atau dapat digambarkan sebagai berikut :
- Message Authentication Code dengan Blok-Cipher
Algoritma Message Authentication Code ini disusun dengan menggunakan block-cipher. Blokcipher merupakan cipher dengan kunci simetris yang bekerja dalam sekumpulan bit dengan panjang yang tetap yang disebut sebagai blok. Untuk pesan yang lebih panjang dari blok tersebut pesan akan dibagi menjadi blok-blok dengan panjang sama dan akan dienkripsi setiap bloknya secara terpisah. Beberapa contoh algoritma penyusun Message Authentication Code dengan menggunakan block-cipher adalah PMAC (Parrallelizable Message Authentication Code), OMAC(One-key Message Authentication Code), dan CBC-MAC (Cipher Block Chaining Message Authentication Code). Sebagai contoh pada bagian ini kita akan membahas tentang CBC-MAC. CBC-MAC melakukan enkripsi pada pesan dengan menggunakan algoritma block cipher dalam mode CBC untuk membentuk serangkaian blok blok dimana enkripsi pada tiap tahap disusun berdasarkan enkripsi tahap sebelumnya. Proses enkripsi dan dekripsi pada CBC apat dijelaskan melalui gambar berikut:
- Message Authentication Code dengan Universal Hash
Beberapa Message Authentication Code yang tercepat berasal dari metode universal hashing. Universal hashing adalah pemilihan sebuah fungsi hash secara acak dari sekumpulan fungsi hash dengan fungsi matematis tertentu. Hal ini mengakibatkan jumlah kolisi yang lebih sedikit. Andaikan himpunan fungsi hash yang terdiri dari fungsi hash h yang dipilih secara acak yang memetakan suatu himpunan kunci m pada n = {1,2,3,...,n}. H dapat dikatakan universal apabila semua x dan y ϵ m dimana x tidak sama dengan y, peluang nilai h(x) sama dengan nilai h(y) ,lebih kecil 1/|n|, dirumuskan sebagai:
Dari persamaan diatas jika h adalah fungsi hash universal, maka untuk setiap s himpunan bagian dari m, untuk setiap x anggota m dengan nilai h angka kolisi yang diharapkan antara x dengan elemen dari s adalah |s|n. Fungsi |s| universal dikatakan kuat jika x,x‟ pada M dan y,y‟ pada n:
Komentar
Posting Komentar