300 likes | 769 Views
Fungsi Hash dan MAC. Fungsi Hash Pendahuluan. Fungsi hash : fungsi yang - menerima masukan string yang panjangnya sembarang, - lalu mentransformasikannya menjadi string keluaran yang panjangnya tetap ( fixed ) (umumnya berukuran jauh lebih
E N D
Fungsi Hashdan MAC Rinaldi Munir/IF5054 Kriptografi
Fungsi Hash Pendahuluan • Fungsi hash: fungsi yang - menerima masukan string yang panjangnya sembarang, - lalu mentransformasikannya menjadi string keluaran yang panjangnya tetap (fixed) (umumnya berukuran jauh lebih kecil daripada ukuran string semula). Rinaldi Munir/IF5054 Kriptografi
Persamaan fungsi hash: h = H(M) M = pesan kuran sembarang h = nilai hash (hash value) atau pesan-ringkas (message-digest) h <<<< M • Contoh: size(M) = 1 MB, size(h) = 128 bit !!!! • Nama lain fungsi hash adalah: - - fungsi kompresi (compression function) - - cetak-jari (fingerprint) - - cryptographic checksum - - message integrity check (MIC) - - manipulation detection code (MDC) Rinaldi Munir/IF5054 Kriptografi
Fungsi Hash Satu-Arah • Fungsi hash satu-arah (one-way function): – fungsi hash yang bekerja dalam satu arah. – satu arah: pesan yang sudah diubah menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula (irreversible). Rinaldi Munir/IF5054 Kriptografi
Ada beberapa fungsi hash satu-arah yang sudah dibuat orang, antara lain: - MD2, MD4, MD5, - Secure Hash Function (SHA), - Snefru, - N-hash, - RIPE-MD, dan lain-lain • (Catatan: MD adalah singkatan dari Message Digest). Rinaldi Munir/IF5054 Kriptografi
Aplikasi Fungsi Hash Satu-Arah • Menjaga integritas data - Fungsi hash sangat peka terhadap perubahan 1 bit pada pesan - Pesan berubah 1 bit, nilai hash berubah sangat signifikan. - Bandingkan nilai hash baru dengan nilai hash lama. Jika sama, pesan masih asli. Jika tidak sama, pesan sudah dimodifikasi Rinaldi Munir/IF5054 Kriptografi
Contoh: (i) Pesan (berupa file) asli Rinaldi Munir/IF5054 Kriptografi
(ii) Misal 33 diubah menjadi 32 Rinaldi Munir/IF5054 Kriptografi
Program yang di-downlaod dari internet sering dilengkapi dengan nilai hash untuk menjamin integritas file. Rinaldi Munir/IF5054 Kriptografi
Menghemat waktu pengiriman. - Misal untuk memverifikasi sebuah salinan arsip dengan arsip asli. - Salinan dokumen berada di tempat yang jauh dari basisdata arsip asli - Ketimbang mengirim salinan arsip tersebut secara keseluruhan ke komputer pusat (yang membutuhkan waktu transmisi lama), lebih mangkus mengirimkan message digest-nya. - Jika message digest salinan arsip sama dengan message digest arsip asli, berarti salinan arsip tersebut sama dengan arsip master. Rinaldi Munir/IF5054 Kriptografi
3. Menormalkan panjang data yang beraneka ragam. - Misalkan password panjangnya bebas (minimal 8 karakter) - Password disimpan di komputer host (server) untuk keperluan otentikasi pemakai komputer. - Password disimpan di dalam basisdata. - Untuk menyeragamkan panjang field password di dalam basisdata, password disimpan dalam bentuk nilai hash (panjang nilai hash tetap). Rinaldi Munir/IF5054 Kriptografi
Definisi • MAC: fungsi satu-arah yang menggunakan kunci rahasia (secret key) dalam pembangkitan nilai hash • Bandingkan dengan MD5 atau SHA yang tidak memerlukan kunci untuk menghasilkan nilai hash. • Nilai hash yang dihasilkan selalu berukuran tetap (fixed) untuk ukuran pesan berapa saja • MAC dilekatkan (embed) pada pesan. Selanjutnya, MAC digunakan untuk otentikasi tanpa perlu merahasiakan pesan. • MAC bukanlah tanda-tangan digital. MAC hanya menyediakan otentikasi pengirim dan otentikasi pesan saja. Rinaldi Munir/IF5054 Kriptografi
MAC secara matematis: MAC = CK(M) MAC = nilai hash C = fungsi hash (atau algoritma MAC) K = kunci rahasia Rinaldi Munir/IF5054 Kriptografi
Aplikasi MAC • Otentikasi arsip yang digunakan oleh dua atau lebih pengguna • Menjaga integritas (keaslian) isi arsip terhadap perubahan, misalnya karena serangan virus. Caranya sbb: hitung MAC dari arsip, simpan MAC di dalam sebuah tabel. Jika pengguna menggunakan fungsi hash satu-arah biasa (seperti MD5), maka virus dapat menghitung nilai hash yang baru dari arsip yang sudah diubah, lalu mengganti nilai hash yang lama di dalam tabel. Tetapi, jika digunakan MAC, virus tidak dapat melakukan hal ini karena ia tidak mengetahui kunci. Rinaldi Munir/IF5054 Kriptografi
Algoritma MAC (a) Algoritma MAC berbasis cipher blok • MAC dibangkitkan dengan menggunakan algoritma cipher blok dengan mode CBC atau CFB. • Nilai hash-nya (yang menjadi MAC) adalah hasil enkripsi blok terakhir. • Misalkan DES digunakan sebagai cipher blok, maka ukuran blok adalah 64 bit, dan kunci rahasia MAC adalah kunci DES yang panjangnya 56 bit. • Data Authentication Algorithm (DAA)adalah algoritma MAC berbasis DES-CBC yang digunakan secara luas. Rinaldi Munir/IF5054 Kriptografi
CBC (Cipher Block Chaining) • Mode ini menerapkan mekanisme umpan balik (feedback) pada sebuah blok, yg dlm hal ini hasil enkripsi blok sebelumnya diumpanbalikkan ke dalam enkripsi blok yang current. • Caranya, blok plainteks yg current di XORkan terlebih dahulu dg blok cipherteks hasil enkripsi sebelumnya, selanjutnya hasil pengXORan ini masuk ke dalam fungsi enkripsi. Dgn mode CBC, setiap blok cipherteks bergantung tidak hanya pada blok plainteksnya tetapi juga pada seluruh blok plainteks sebelumnya. Rinaldi Munir/IF5054 Kriptografi
CFB (Cipher FeedBack) • Jika mode CBC yg diterapkan utk transmisi data, mk enkripsi tdk dpt dilakukan bila blok plainteks yg diterima belum lengkap. Misalnya bila pengiriman data dilakukan setiap kali karakter di-enter dari terminal komputer ke host. Pada mode CFB, data dienkripsikan dlm unit yg lebih kecil daripada ukuran blok. Unit yg dienkripsikan dpt berupa bit per bit (jadi seperti cipher aliran), 2 bit, 3 bit dst. Bila unit yg dienkripsikan satu karakter setiap kalinya, mk mode CFBnya disebut CFB 8-bit Rinaldi Munir/IF5054 Kriptografi
(b) Algoritma MAC berbasis fungsi hash satu-arah • Fungsi hash seperti MD5 dapat digunakan sebagai MAC. • Caranya: - Misalkan A dan B akan bertukar pesan. A dan B berbagi sebuah kunci rahasia K. - A menyambung (concate) pesan M dengan K, lalu menghitung nilai hash dari hasil penyambungan itu: H(M, K) - Nilai hash ini adalah MAC dari pesan tersebut. A lalu mengirim M dan MAC kepada B. - B dapat melakukan otentikasi terhadap pesan karena ia mengetahui kunci K. Rinaldi Munir/IF5054 Kriptografi