TLDR - Cryptographic Hash Function
Cryptographic hash function adalah algoritma matematika yang menerima sebuah input (atau pesan) dan menghasilkan string karakter dengan panjang tetap, yang biasanya berupa rangkaian angka dan huruf. Output tersebut, yang dikenal sebagai nilai hash atau kode hash, bersifat unik untuk data input dan dihasilkan sedemikian rupa sehingga perubahan kecil pada input akan menghasilkan nilai hash yang sangat berbeda. Cryptographic hash function banyak digunakan dalam berbagai aplikasi, termasuk verifikasi integritas data, penyimpanan kata sandi, tanda tangan digital, dan teknologi blockchain.
Properti Cryptographic Hash Function
Cryptographic hash function memiliki beberapa properti penting yang membuatnya cocok untuk aplikasi yang aman:
1. Deterministik
Cryptographic hash function selalu menghasilkan nilai hash yang sama untuk input yang sama. Properti ini memudahkan verifikasi integritas data dengan membandingkan nilai hash hasil perhitungan dengan nilai hash aslinya.
2. Komputasi Cepat
Cryptographic hash function dirancang agar efisien secara komputasi, sehingga nilai hash dapat dihasilkan dengan cepat bahkan untuk data berukuran besar.
3. Pre-image Resistance
Sebuah hash function harus mustahil dibalikkan secara komputasi, artinya sangat sulit menentukan data input asli dari nilai hash-nya. Properti ini memastikan nilai hash tidak dapat digunakan untuk merekonstruksi data asli.
4. Collision Resistance
Collision terjadi ketika dua input berbeda menghasilkan nilai hash yang sama. Cryptographic hash function yang baik memiliki probabilitas collision yang dapat diabaikan, sehingga sangat kecil kemungkinan dua input berbeda menghasilkan nilai hash yang sama.
5. Avalanche Effect
Perubahan kecil pada data input harus menghasilkan perubahan besar pada nilai hash. Properti ini memastikan bahwa perubahan sekecil apa pun pada input akan menghasilkan nilai hash yang benar-benar berbeda, sehingga sulit memanipulasi data tanpa terdeteksi.
6. Ukuran Output Tetap
Cryptographic hash function menghasilkan output dengan ukuran tetap, terlepas dari ukuran data input. Hal ini memungkinkan penyimpanan dan perbandingan nilai hash yang efisien.
Aplikasi Cryptographic Hash Function
Cryptographic hash function digunakan di berbagai bidang:
Verifikasi Integritas Data
Hash function umum digunakan untuk memverifikasi integritas data. Dengan menghitung nilai hash dari sebuah file atau pesan, seseorang dapat membandingkannya dengan nilai hash asli untuk memastikan data tidak diubah atau rusak.
Penyimpanan Kata Sandi
Alih-alih menyimpan kata sandi dalam teks biasa, sistem umumnya menyimpan nilai hash dari kata sandi. Saat pengguna memasukkan kata sandinya, sistem menghitung nilai hash dan membandingkannya dengan nilai hash yang tersimpan. Dengan cara ini, meskipun basis data kata sandi diretas, kata sandi yang sebenarnya tetap aman.
Tanda Tangan Digital
Cryptographic hash function merupakan komponen penting dalam skema tanda tangan digital. Fungsi ini digunakan untuk menghasilkan nilai hash unik dari sebuah pesan, yang kemudian dienkripsi dengan kunci privat pengirim. Penerima dapat memverifikasi integritas pesan dengan mendekripsi nilai hash menggunakan kunci publik pengirim, lalu membandingkannya dengan nilai hash hasil perhitungan dari pesan yang diterima.
Teknologi Blockchain
Cryptographic hash function memainkan peran krusial dalam teknologi blockchain. Fungsi ini digunakan untuk menghubungkan blok satu sama lain dengan menyertakan nilai hash dari blok sebelumnya di dalam blok saat ini. Hal ini menjamin sifat immutable dan integritas blockchain, karena setiap perubahan pada data suatu blok akan mengharuskan perhitungan ulang nilai hash dari semua blok berikutnya.
Cryptographic Hash Function yang Umum Digunakan
Ada beberapa cryptographic hash function yang banyak digunakan:
1. SHA-256 (Secure Hash Algorithm 256-bit)
SHA-256 adalah cryptographic hash function yang banyak digunakan dan menghasilkan nilai hash 256-bit. Fungsi ini umum dipakai dalam teknologi blockchain, termasuk Bitcoin.
2. MD5 (Message Digest Algorithm 5)
MD5 adalah cryptographic hash function yang banyak digunakan dan menghasilkan nilai hash 128-bit. Namun, MD5 dianggap tidak aman untuk banyak aplikasi karena adanya kerentanan.
3. SHA-3 (Secure Hash Algorithm 3)
SHA-3 adalah anggota terbaru dari keluarga Secure Hash Algorithm. Fungsi ini menawarkan keamanan yang lebih baik dan ketahanan terhadap jenis serangan tertentu dibandingkan pendahulunya.
4. Blake2
Blake2 adalah cryptographic hash function yang lebih cepat daripada banyak hash function lainnya, sekaligus menjaga tingkat keamanan yang tinggi. Fungsi ini sering digunakan pada aplikasi yang mengutamakan kecepatan.
Kesimpulan
Cryptographic hash function adalah alat fundamental dalam kriptografi modern. Fungsi ini menyediakan properti penting seperti integritas data, keamanan kata sandi, dan tanda tangan digital. Memahami properti dan aplikasi cryptographic hash function sangat penting untuk membangun sistem yang aman dan menjaga integritas data.