Just another WordPress.com weblog

Message Authentication Code

Message Authentication Code adalah sebuah tanda pengenal untuk membuktikan keaslian suatu dokumen yang didapatkan dengan menggunakan pesan tak bermakna yang diperoleh dari pemrosesan sebagian isi dokumen menggunakan sebuah kunci privat. Secara teknis, (setengah) dokumen diproses menggunakan kunci privat sehingga menghasilkan pesan MAC, yang lebih sederhana dari isi dokumen. Pesan MAC ini kemudian dilekatkan dengan dokumen dan dikirim ke penerima. Penerima kemudian menggunakan kunci yang sama untuk memperoleh pesan MAC dari dokumen yang diterima dan membandingkannya dengan pesan MAC yang ia terima.

MAC dapat menjamin 2 macam keamanan data: integritas dan otentikasi. Integritas dapat terdeteksi jika isi dokumen diubah, karena pesan MAC yang dihasilkan dan diterima akan berbeda. Sedangkan otentikasi terdeteksi dengan penggunaan kunci privatnya. Hanya pengirim dan penerima yang berhak lah yang mengetahui kunci privat tersebut. Bedanya dengan tanda tangan digital adalah pada kunci ini. MAC menggunakan kunci yang sama (algoritma simetri), sedangkan tanda tangan digital menggunakan kunci privat dan kunci public (algoritma kunci publik).
Algoritma MAC dapat dibangun dengan menggunakan dua cara, yaitu fungsi hash dan algoritma simetri. Jika menggunakan hash, fungsi ini diberlakukan bagi isi dokumen yang telah dilekatkan dengan kunci privat. Sedangkan algoritma simetri yang banyak diimplementasikan dalam MAC sejauh ini adalah dengan mengambil satu blok dari isi dokumen dan dilakukan enkripsi menggunakan algoritma cipher blok. Algoritma cipher aliran bisa juga digunakan untuk membangun sebuah algoritma MAC, yaitu dengan mengambil sebagian dari isi dokumen yang sekiranya unik dan penting (sehingga setiap pesan dapat memiliki pesan MAC yang berbeda).
Atau secara matematis dapat dinyatakan
sebagai berikut:
MAC = Gk(x)
Keterangan:
– G: fungsi untuk mengambil intisari/rangkuman dari x
– x : dokumen yang ingin diberikan sebuah MAC
– k : kunci rahasia yang diketahui oleh kedua belah pihak, yang akan digunakan dalam pembangkitan MAC.
Fungsi untuk menghasilkan MAC harus memiliki sifat-sifat sebagai berikut:
a. Kemudahan komputasi
Jika diberikan masukan kunci k dan dokumen x, proses menjalankan fungsi Gk(x) harus mudah dan cepat, dengan MAC sebagai hasilnya.
b. Kompresi
Karena MAC berperan sebagai tanda pengenal, sebaiknya MAC tidak menambah ukuran dokumen secara signifikan. Oleh karena itu, MAC yang dihasilkan harus merupakan intisari/ringkasan dari dokumen x, yang panjangnya lebih kecil dari panjang dokumen.
c. Kekuatan Komputasi
Sebagai penyerang, untuk memanipulasi dokumen MAC harus mengetahui kunci k. Hal ini tidak terlalu sulit dilakukan jika komputasi fungsi G yang diimplementasikan tidak kuat untuk melawan serangan-serangan yang mungkin terjadi pada MAC, yaitu:
1. Known-text attack : penyerang dapat menentukan pola MAC dari dua atau lebih pasang (x,Gk(x))
2. Chosen-text attack : penyerang dapat menentukan pola MAC dari pasangan (x,Gk(x)) yang dipilihnya sendiri
3. Adaptive chosen-text attack : penyerang dapat menentukan pola MAC dari pasangan (x,Gk(x)) yang mengarah ke penemuan kunci Fungsi G harus bersifat seefisien mungkin (seperti yang disebutkan pada poin no.1 diatas), namun perlu juga diperhatikan bahwa fungsi ini harus kuat untuk memperkecil kemungkinan menghasilkan MAC yang sama atau berpola. Jadi, dibutuhkan fungsi G yang rumit namun tetap cepat. Fungsi G memampatkan dokumen x yang berukuran sembarang dengan menggunakan kunci k. Fungsi G adalah fungsi many-to one, yang berarti beberapa dokumen berbeda mungkin memiliki MAC yang sama, tetapi menemukan pesan-pesan semacam itu sangat sulit, tergantung dari kerumitan fungsi G yang diimplementasikan. Walaupun disebut fungsi, namun pada kenyataannya untuk membangkitkan suatu MAC membutuhkan beberapa fungsi/metode dan prosedur. Untuk selanjutnya fungsi G disebut dengan algoritma MAC. Oleh karena itu, dapat disimpulkan bahwa secara fungsional dibutuhkan 2 buah parameter untuk membangun sebuah MAC: kunci rahasia dan dokumen masukan. Kemudian MAC akan dilekatkan pada dokumen dan dikirimkan ke penerima. Begitu juga di sisi penerima, MAC dari dokumen dibangkitkan dengan kunci k yang sama, lalu dicocokkan apakah MAC yang dihasilkan sama dengan MAC yang terlekat pada dokumen. Jika tidak, maka terdapat dua kemungkinan, yaitu kunci k yang dimasukkan berbeda atau dokumen yang dikirimkan tidak asli (telah dimanipulasi). Untuk lebih jelasnya, lihat diagram MAC pada di bawah ini.

Jaminan Keamanan dari MAC
Seperti yang telah dijelaskan sebelumnya, ada dua segi keamanan yang dijamin oleh MAC, yaitu integritas pesan dan keabsahan pengirim. Berikut penjelasan lebih rinci bagaimana MAC dengan prosedur kerja seperti yang dijelaskan di atas dapat memenuhi kebutuhan akan dua segi keamanan tersebut:
a. Otentikasi Pengirim
Otentikasi adalah keamanan yang memeriksa identifikasi pihak-pihak yang saling berkomunikasi (pengirim dan penerima dokumen). Dalam MAC terdapat kode identifikasi perseorangan yang terenkripsi dengan sebuah kunci rahasia. Jika MAC yang dihasilkan sama dengan yang diterima, tandanya kunci rahasia yang digunakan. Karena kunci rahasia tersebut
hanya diketahui oleh dua orang, maka penerima merasa yakin bahwa pesan yang ia dapat benar berasal dari pengirim yang tepat.
b. Integritas Pesan
Integritas adalah keamanan yang menjamin isi dokumen asli dan tidak diubah saat proses transmisi. Idealnya, program juga dapat mengidentifikasi bagian mana dan jenis manipulasi seperti apa yang dilakukan terhadap dokumen. Namun jika adanya ketidakcocokan antara MAC yang dibangkitkan dengan MAC yang diterima, maka penerima tidak perlu mempedulikan isi dokumen karena dokumen tersebut kemungkinan besar sudah dimanipulasi.

http://kandanggudel.wordpress.com/2008/11/27/mac-message-authentication-code/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s