Message Authentication Codes (MACs)

Posted by Ae89 on Sabtu, 08 Mei 2010 | 0 komentar

Message Authentication Codes (MACs) menyediakan autentikasi dan data integrity. MAC merupakan checksum kriptografi pada data yang digunakan untuk menjamin bahwa data belum pernah diubah dan bahwa MAC dihitung oleh entitas yang diharapkan. Meskipun integrity pesan bisa dilakukan dengan teknik non kriptografi yang sering dikenal sebagai error detection code, namun kode ini dapat dirubah oleh lawan untuk mempengaruhi suatu aksi yang menguntungkan lawan tersebut. Penggunaan dari mekanisme kriptografi yang telah disetujui, seperti MAC, dapat mengurangi masalah ini. MAC dapat menyediakan jaminan bagi penerima pesan bahwa pengirim data adalah key holder. MACs sering digunakan untuk mengeutentikasi pengirim pesan ke penerimanya jika hanya dua belah pihak saja yang berbagi kunci MAC.
Perhitungan pada MAC membutuhkan penggunaan (1) secret key yang hanya diketahui oleh pihak yang membangkitkan MAC dan oleh penerima MAC yang sebenarnya, dan (2) data yang dihitung menggunakan MAC. Dua tipe algoritma yang digunakan untuk menghitung MAC yang disetujui :
- Algoritma MAC berbasiskan algoritma block cipher.
- Algoritma MAC berbasiskan hash function.

MACs Menggunakan Algoritma Block Cipher
[SP800-38] mendefinisikan model untuk menghitung MAC menggunakan approved block cipher algorithm seperti AES dan TDEA. Ukuran kunci dan blok yang digunakan untuk menghitung MAC bergantung pada algoritma yang digunakan. Jika dua buah block cipher yang sama digunakan untuk enkripsi dan perhitungan MAC dalam dua operasi kriptografi yang terpisah, kunci yang sama tidak akan digunakan untuk operasi MAC dan enkripsi.
MACs Menggunakan Hash Function
[FIPS198] menspesifikasikan perhitungan MAC menggunakan approved hash function. Algoritmanya membutuhkan single pass dari seluruh datanya.. Variasi pada ukuran kuncidiperbolehkan untuk HMAC; pemilihan ukuran kunci bergantung pada ukuran keamanan yang disediakan untuk data dan penggunaan hash function.
Algoritma Digital Signature
Digital signature digunakan untuk autentikasi, integrity dan non-repudiation. Digital signature digunakan dalam konjungsi dengan algoritma hash dan diperhitungkan untuk data dengan panjang berapapun (melebihi batas yang ditentukan oleh algoritma hash). [FIPS186-3] menspesifikasikan algoritma yang disetujui untuk perhitungan digital signature. Yakni Digital Signature Algorithm(DSA) dan algoritma RSA yang dispesifikasikan pada [ANSX9.31] dan [PKCS#1] (versi 1.5 dan yang lebih tinggi lagi), dan algoritma ECDSA seperti dalam [ANSX9.62].
DSA
Digital Signature Algorithm (DSA) dispesifikasikan pada [FIPS186-3] untuk kunci spesifik dengan ukuran 1024, 2048, dan 3072 bit. DSA akan memproduksi atau menghasilkan tanda tangan digital dengan ukuran dari 320, 448, atau 512 bit. Sistem lama (legacy system) menggunakan ukuran kunci yang lebih kecil. Walaupun dimungkinkan untuk melanjutkan ke proses verifikasi dan melakukan proses tanda tangan digital dengan ukuran kunci yang lebih kecil tersebut, tanda tangan digital yang baru sebaiknya tidak dibuat dengan kunci dengan ukuran seperti ini.
RSA
Algoritma RSA, sebagaimana dispesifikasikan dalam [ANSX9.31] dan [PKCS # 1] (versi 1.5 dan lebih tinggi) adalah diadopsi untuk proses penghitungan pada tanda tangan digital dalam [FIPS186-3]. [FIPS186-3] menentukan metode untuk menghasilkan atau membangkitkan pasangan kunci RSA untuk beberapa ukuran kunci untuk [ANSX9.31] dan implementasi [PKCS # 1]. Sistem lama (legacy system) menggunakan kunci dengan ukuran yang lebih kecil. Walaupun dimungkinkan untuk melanjutkan ke proses verifikasi dan melakukan proses tanda tangan digital dengan ukuran kunci yang lebih kecil tersebut, tanda tangan digital yang baru sebaiknya tidak dibuat dengan kunci degan ukuran seperti ini.
ECDSA
Elliptic Curve Digital Signature Algorithm (ECDSA), sebagaimana dispesifikasikan dalam [ANSX9.62], adalah diadopsi untuk proses penghitungan pada tanda tangan digital dalam [FIPS186-3]. [ANSX9.62] menetapkan ukuran kunci minimum dari 160 bit. ECDSA menghasilkan tanda tangan digital yang memiliki ukuran dua kali lebih panjang. Elliptic curve yang direkomendasikan terdapat pada [FIPS186-3].
Sumber : NIST Special Publication 800-57