Definisi Fungsi Hash
Hash function atau fungsi hash adalah algoritma matematika yang memetakan data dengan ukuran input arbitrer (sebarang) menjadi nilai output dengan ukuran tetap (fixed-size). Dalam dunia kriptografi, fungsi ini bersifat satu arah (one-way), artinya data asli tidak dapat dikembalikan dari nilai hash yang dihasilkan. Fungsi hash yang ideal harus memiliki sifat tahan terhadap tabrakan (collision resistance), di mana dua input berbeda tidak boleh menghasilkan output hash yang sama.
Algoritma Hash Populer
Terdapat berbagai jenis algoritma hash yang digunakan untuk kebutuhan keamanan data, integritas pesan, hingga penyimpanan kata sandi. Berikut adalah perbandingan teknis dari beberapa algoritma yang umum ditemui:
| Algoritma | Tahun Desain | Karakteristik Utama |
|---|---|---|
| MD5 | 1991 | Didesain oleh Ronald Rivest untuk menggantikan MD4; ditemukan cacat desain pada 1996. |
| SHA-2 | - | Algoritma hash kuat yang didesain oleh Badan Keamanan untuk integritas kriptografik. |
| Bcrypt | - | Menggunakan algoritma key setup Eksblowfish; menyertakan cost dan salt dalam output. |
Analisis Teknis Algoritma
MD5 (Message-Digest Algorithm 5): Didesain oleh Ronald Rivest pada tahun 1991 sebagai suksesor MD4. Meskipun sempat menjadi standar industri, MD5 kini dianggap tidak aman untuk penggunaan kriptografik karena kerentanan terhadap serangan tabrakan yang ditemukan sejak tahun 1996.
SHA-2 (Secure Hash Algorithm 2): Merupakan keluarga fungsi hash kriptografik yang dirancang oleh Badan Keamanan. SHA-2 menawarkan tingkat keamanan yang jauh lebih tinggi dibandingkan pendahulunya (SHA-1) dan saat ini menjadi standar dalam berbagai protokol keamanan modern seperti TLS dan SSL.
Bcrypt: Berbeda dengan fungsi hash umum yang digunakan untuk integritas data, Bcrypt dirancang khusus untuk penyimpanan kata sandi (password hashing). Algoritma ini sangat bergantung pada fungsi key setup yang disebut "Eksblowfish". Output dari Bcrypt terdiri dari penggabungan (concatenate) antara cost, salt, dan ctext, yang membuatnya tahan terhadap serangan brute-force dengan meningkatkan beban komputasi secara sengaja.
Penerapan dalam Keamanan Data
Fungsi hash memainkan peran krusial dalam infrastruktur digital modern. Penggunaannya meliputi:
- Verifikasi Integritas Data: Memastikan file tidak berubah selama proses transmisi.
- Penyimpanan Kata Sandi: Menyimpan representasi hash dari kata sandi, bukan kata sandi dalam bentuk teks biasa (plain text).
- Tanda Tangan Digital: Memastikan keaslian dokumen elektronik.
- Struktur Data: Digunakan dalam tabel hash untuk pencarian data yang efisien.
Dalam implementasi praktis, pemilihan algoritma harus didasarkan pada tujuan penggunaan. Untuk integritas data, SHA-2 atau keluarga SHA-3 lebih disarankan. Untuk penyimpanan kata sandi, algoritma yang memiliki fungsi "salt" dan "cost factor" seperti Bcrypt atau Argon2 adalah pilihan yang jauh lebih aman dibandingkan fungsi hash standar.