Message Authentication Codes (MAC)
Message Authentication Codes (MAC)
MAC merupakan subkelas dari fungsi hash berkunci. MAC mempunyai dua parameter berbeda yaitu input pesan dan kunci rahasia. Tujuan MAC adalah menjamin integritas sumber pesan.
Message Authentication Codes (MAC) merupakan sebuah fungsi yang terdiri dari dua argumen yaitu sebuah kunci K dengan ukuran tetap dan pesan m dengan ukuran yang tidak tetap yang mana nilai produk yang dihasilkan mempunyai panjang tetap. Fungsi MAC yang ideal biasanya memetakan semua kemungkinan input ke n bit output secara acak. Fungsi MAC biasanya ditulis MAC (K,m) dengan K adalah kunci dan m adalah pesan yang ingin disampaikan. MAC merupakan subkelas dari fungsi hash berkunci yang bertujuan menjamin integritas sumber pesan.
Beberapa sifat MAC antara lain:
· Kemudahan komputasi
Misalkan diketahui fungsi hk, diberikan nilai k dan input x, maka hk (x) mudah dihitung. Hasil fungsi ini disebut nilai -MAC atau MAC saja.
· Kompresi
Misal hx memetakan input x dengan sembarang panjang bit berhingga, ke output hx (x) dengan bit panjang tetap n.
· Ketahanan komputasi
Misalkan diberikan nol atau lebih pasangan teks-MAC (xi, hx (xi)), secara komputasi tak-layak menghitung sembarang pasangan (x, hx (x)) untuk sembarang input baru x ≠ xi (termasuk mungkin hk (x) = hk (xi) untuk suatu i).
Jika ketahanan komputasi tidak dipenuhi, algoritma MAC disebut pemalsuan-MAC. Pemalsuan pada MAC ada 2 yaitu pemalsuan sel ektif dan pemalsuan eksistensial. Pemalsuan selektif terjadi bila penyerang berusaha mendapatkan pasangan teks MAC baru untuk sebuah teks yang dipilihnya sedangkan pemalsuan eksistensial terjadi bila penyerang berusaha untuk mendapatkan pasangan teks MAC baru tanpa pengontrolan nilai pada teks tersebut.
Ketahanan komputasi mengakibatkan secara perhitungan tak layak menentukan kunci k jika diketahui satu atau lebih pasangan teks-MAC (xi,hx (xi)). Sebaliknya, ketahanan kunci tidak harus mengakibatkan ketahanan komputasi.
Misalkan diketahui pesan m1, ... , mi maka MAC didefinisikan sebagai berikut:
H0:=IV ( InitializationVektor ), Hi:= Ek (m 1 ⊕ Hi-1), MAC:= Hk.
Untuk lebih jelasnya, cara kerja CBC-MAC dapat dilihat
pada Gambar berikut:
Algoritma CBC-MAC didefinisikan sebagai berikut:
INPUT: datax,spesifikasi sandi blok DES, kunci rahasia MAC k untuk DES.
OUTPUT: n-bit MAC pada x (n adalah panjang blok dari DES).
1. Proses penambahan bit ekstra (padding) dan blocking. Proses penambahan bit ekstra
dilakukan dengan menggunakan algoritma padding. Padded teks dipecah menjadi blok-blok dengan ukuran n-bit dinotasikan dengan x1, x2, x3,...,xt.
2. Proses CBC. Misalkan Ek merupakan notasi enkripsi menggunakan E dengan kunci k,
hitung blok Ht dengan: H1 Ek (x1), Hi Ek (Hi-1 ⊕ xi), 2it. (Ini merupakan standard CBC, IV =0,mengabaikan blok siferteks Ci = Hi).
3. Proses pilihan untuk meningkatkan kekuatan MAC. Menggunakan kunci rahasia kedua
k’ k, secara opsional dihitung H’t E-1k (Ht),Ht Ek (H’t).
4. Penyelesaian. MAC adalah n-bit blok Ht. Algoritma MAC dapat diterapkan pada berbagai algoritma enkripsi antara lain DES, Triple DES, AES dan lain sebagainya.

Comments
Post a Comment