Fungsi Hash Satu-Arah dan Algoritma MD5
Fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sembarang dan mengkonversinya menjadi string keluaran yang panjangnya tetap (fixed) (umumnya berukuran jauh lebih kecil daripada ukuran string semula). Fungsi hash dapat menerima masukan string apa saja. Jika string menyatakan pesan (message), maka sembarang pesan M berukuran bebas dikompresi oleh fungsi hash H melalui persamaan.
h = H(M)
Keluaran fungsi hash disebut juga nilai hash (hash-value) atau pesan-ringkas (message digest). Pada persamaan di atas, h adalah nilai hash atau message digest dari fungsi H untuk masukan M. Dengan kata lain, fungsi hash mengkompresi sembarang pesan yang berukuran berapa saja menjadi message digest yang ukurannya selalu tetap (dan lebih pendek dari panjang pesan semula).
Nama lain fungsi hash adalah:
- fungsi kompresi/kontraksi (compression function)
- cetak-jari (fingerprint)
- cryptographic checksum
- message integrity check (MIC)
- manipulation detection code (MDC)
Aplikasi fungsi hash misalnya untuk memverifikasi kesamaan salinan suatu arsip di dengan arsip aslinya yang tersimpan di dalam sebuah basis data terpusat. 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 tesrebut sama dengan asrip di dalam basis data.
Fungsi Hash Satu-Arah (One-way Hash)
- Fungsi hash satu-arah adalah fungsi hash yang bekerja dalam satu arah: pesan yang sudah diubah menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula.
-
Sifat-sifat fungsi hash satu-arah adalah sebagai berikut:
1. Fungsi H dapat diterapkan pada blok data berukuran berapa saja.
2. H menghasilkan nilai (h) dengan panjang tetap (fixedlength output).
3. H(x) mudah dihitung untuk setiap nilai x yang diberikan.
4. Untuk setiap h yang dihasilkan, tidak mungkin dikembalikan nilai x sedemikian sehingga H(x) = h. Itulah sebabnya fungsi H dikatakan fungsi hash satu-arah (oneway hash function).
5. Untuk setiap x yang diberikan, tidak mungkin mencari y ¹ x sedemikian sehingga H(y) = H(x).
6. Tidak mungkin mencari pasangan x dan y sedemikian sehingga H(x) = H(y). - Masukan fungsi hash adalah blok pesan (M) dan keluaran dari hashing blok pesan sebelumnya,
hi = H(Mi, hi – 1)
- Fungsi hash adalah publik (tidak dirahasiakan), dan keamanannya terletak pada sifat satu arahnya itu.
-
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).
- Fungsi hash yang banyak dipakai di dalam aplikasi kriptografi adalah MD5 dan SHA. Algoritma MD5 diberikan di bawah ini, sedangka SHA akan diberikan pada materi DSS (Digital Signature Standard).