Rabu, 28 November 2018

CBC-MAC

    Chipper Block Chaining Message Authentication Code (CBC-MAC) adalah teknik untuk membangun kode otentikasi pesan dari blok chiper. Pesan dienkripsi dengan algoritma blok chiper dalam mode CBC untuk membuat rantai blok sehingga setiap blok tergantung pada enkripsi yang tepat dari blok sebelumnya. Interdependesi ini terenkripsi terakhir berubah dengan cara yang tidak dapat dipresiksi atau dilawan tanpa mengetahui kunci ke blok chiper.
    CBC-MAC sendiri adalah salah satu cara autentikasi yang populer dan banyak digunakan pada sektor banking dan sektor komersil lainnya. Sayangnya sudah banyak diketahui jika CBC-MAC hanya aman jika pesan query dari 'lawan' memiliki panjang yang sama. Namun standar ini kurang aman digunakan jika pesan query nya memiliki panjang yang berbeda. 
    Selain itu Initialization Vector (IV) dari CBC-MAC menggunakan random IV yang mana pada standar ini jika dilakukan verifikasi pada CBC-MAC maka IV nya harus diketahui juga. Berikut adalah gambaran dari CBC-MAC:


    Cara kerja CBC-MAC yaitu:
  1. Initialization Vector (S0) digunakan sebagai awal proses CBC-MAC. Misalkan S0 adalah 0000000.
  2. Chiper Block terdiri dari n block. M1,M2,M3,...,Mn.
  3. Untuk M1 di XOR kan dengan S0 yang mana kemudian dienkripsikan dengan Fk. Disini Fk adalah pseudo random function. Hasil dari enkripsi akan menjadi chipertext yang pertama (C1).
  4. Untuk langkah selanjutnya hasil C1 akan di XOR kan dengan M2 yang mana hasilnya akan dienkripsi menggunakan Ek. Enkripsi ini akan menghasilkan chipertext yang kedua (C2).
  5. Kemudian langkah selanjutnya diulangi kembali sebanyak sisa dari n-1 block chipertext.
    Cara CBC-MAC menjadi lebih aman:
  1. Pemisahan kunci panjang input.
  2. Panjang prepending.
  3. Enkripsikan block terakhir.
    Keunggulan dari penggunaan CBC-MAC 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 tidak tetap (arbitrary).

Tidak ada komentar:

Posting Komentar