TLDR - Hash Function
Hash function adalah fungsi matematika yang menerima input (atau "pesan") dan menghasilkan string karakter berukuran tetap, yang biasanya berupa rangkaian angka dan huruf. Keluarannya, yang dikenal sebagai nilai hash atau kode hash, bersifat unik terhadap data input, artinya perubahan sekecil apa pun pada input akan menghasilkan nilai hash yang sangat berbeda. Hash function banyak digunakan dalam ilmu komputer dan kriptografi untuk berbagai keperluan, termasuk verifikasi integritas data, penyimpanan kata sandi, tanda tangan digital, dan teknologi blockchain.
Sifat-Sifat Hash Function
Hash function memiliki beberapa sifat penting yang membuatnya berguna dalam berbagai aplikasi:
1. Deterministik
Hash function selalu menghasilkan keluaran yang sama untuk input tertentu. Sifat ini memberikan konsistensi dan prediktabilitas, sehingga hash function andal untuk tugas seperti verifikasi kata sandi.
2. Komputasi Cepat
Hash function dirancang agar efisien secara komputasi, sehingga mampu memproses data dalam jumlah besar dengan cepat. Sifat ini sangat penting untuk aplikasi yang membutuhkan pemrosesan berkecepatan tinggi, seperti tanda tangan digital dan teknologi blockchain.
3. Pre-image Resistance
Hash function harus tidak mungkin dibalik secara komputasi untuk menemukan input asli dari nilai hash-nya. Sifat ini memastikan nilai hash berfungsi sebagai fungsi satu arah, melindungi informasi sensitif dan menjaga integritas data.
4. Perubahan Kecil Menghasilkan Perbedaan Besar
Perubahan kecil pada data input harus menghasilkan nilai hash yang sangat berbeda. Sifat ini, yang dikenal sebagai efek avalanche, memastikan bahwa modifikasi sekecil apa pun pada input akan menghasilkan kode hash yang sama sekali berbeda. Sifat ini sangat penting untuk verifikasi integritas data dan aplikasi kriptografi.
5. Collision Resistance
Hash function harus tahan terhadap collision, yaitu kondisi ketika dua input berbeda menghasilkan nilai hash yang sama. Meskipun secara teoretis mustahil menjamin tidak adanya collision dalam praktiknya, hash function yang baik meminimalkan kemungkinan collision sehingga kejadiannya sangat jarang.
Penerapan Hash Function
Hash function digunakan di berbagai bidang, antara lain:
Verifikasi Integritas Data
Hash function umum digunakan untuk memverifikasi integritas data. Dengan membandingkan nilai hash suatu file atau pesan sebelum dan sesudah pengiriman, seseorang dapat memastikan bahwa data tidak diubah atau rusak selama pengiriman.
Penyimpanan Kata Sandi
Hash function sangat penting untuk menyimpan kata sandi secara aman. Alih-alih menyimpan kata sandi yang sebenarnya, sistem menyimpan nilai hash dari kata sandi tersebut. Saat pengguna memasukkan kata sandi, sistem melakukan hash terhadapnya lalu membandingkan nilai hash dengan hash yang tersimpan. Dengan cara ini, meskipun basis data kata sandi diretas, kata sandi yang sebenarnya tetap tersembunyi.
Tanda Tangan Digital
Hash function memainkan peran vital dalam tanda tangan digital. Tanda tangan digital dibuat dengan melakukan hash terhadap pesan yang akan ditandatangani, lalu mengenkripsi nilai hash tersebut dengan kunci privat pengirim. Penerima dapat memverifikasi tanda tangan dengan mendekripsi nilai hash menggunakan kunci publik pengirim dan membandingkannya dengan hash dari pesan yang diterima.
Teknologi Blockchain
Hash function adalah tulang punggung teknologi blockchain. Setiap blok dalam blockchain berisi nilai hash yang mewakili data di dalam blok tersebut. Nilai hash ini digunakan untuk menghubungkan blok satu sama lain, sehingga menjamin sifat tidak dapat diubah dan integritas seluruh blockchain.
Hash Function yang Umum Digunakan
Ada beberapa hash function yang banyak digunakan, antara lain:
MD5 (Message Digest Algorithm 5)
MD5 adalah hash function yang banyak digunakan dan menghasilkan nilai hash 128-bit. Namun, karena adanya kerentanan, MD5 tidak lagi dianggap aman untuk keperluan kriptografi.
SHA-1 (Secure Hash Algorithm 1)
SHA-1 adalah hash function lain yang banyak digunakan dan menghasilkan nilai hash 160-bit. Namun, seperti MD5, SHA-1 tidak lagi dianggap aman karena adanya kerentanan.
SHA-256 (Secure Hash Algorithm 256-bit)
SHA-256 merupakan bagian dari keluarga SHA-2 dan banyak digunakan dalam teknologi blockchain serta aplikasi kriptografi lainnya. SHA-256 menghasilkan nilai hash 256-bit dan dianggap aman.
Blake2
Blake2 adalah hash function kriptografi yang menawarkan performa dan keamanan tinggi. Blake2 lebih cepat daripada banyak hash function lainnya dan tahan terhadap berbagai jenis serangan.
Kesimpulan
Hash function adalah alat fundamental dalam ilmu komputer dan kriptografi. Hash function menyediakan sifat-sifat penting seperti deterministik, komputasi cepat, pre-image resistance, dan collision resistance. Hash function diterapkan dalam verifikasi integritas data, penyimpanan kata sandi, tanda tangan digital, dan teknologi blockchain. Memahami sifat dan penerapan hash function sangat penting untuk menjaga keamanan dan integritas data di berbagai bidang.