24 / 736HASH

Hash

sidik jari kriptografis

Sidik jari digital singkat untuk membandingkan data dan mendeteksi perubahan.

Hash adalah hasil perhitungan atas data, misalnya berkas atau transaksi Bitcoin. Data dan prosedur yang sama menghasilkan sidik jari yang sama. Hash kriptografis dirancang agar sulit menemukan data lain dengan hasil sama atau masukan yang cocok untuk hasil tertentu. Hash bukan salinan terenkripsi dari data asli.

Anda mengunduh berkas pemasangan. Penerbitnya menyediakan sidik jari pembanding, lalu Anda menghitung sidik jari salinan unduhan dengan algoritma yang sama. Jika berbeda, datanya tidak sama: berkas mungkin rusak, diganti, atau dimodifikasi. Sebaliknya, kecocokan dengan sidik jari tepercaya memberikan keyakinan kuat bahwa salinan Anda benar. Anda tidak perlu membandingkan seluruh berkas secara manual. SHA-256, misalnya, menghasilkan 256 bit yang biasanya ditulis sebagai 64 karakter heksadesimal, baik untuk pesan pendek maupun berkas besar. [1] [3]

Persoalannya adalah asal sidik jari pembanding. Jika penyerang mengganti berkas sekaligus hash yang diterbitkan di situs, keduanya tetap cocok. Menghitung hash tidak memerlukan kunci rahasia; siapa pun bisa melakukannya untuk data publik. Karena itu, hash berbeda dari tanda tangan digital, yang digunakan pemegang kunci untuk mengesahkan data. Verifikasi unduhan Bitcoin Core memeriksa hash berkas, tanda tangan pada daftar sidik jari, dan kepercayaan terhadap kunci penandatangan. Hash saja tidak membuktikan pembuat, keamanan program, atau kebenaran dokumen. [3]

Hash tidak memiliki langkah balik bernama “dekripsi”. Hasil dengan panjang tetap tidak memuat seluruh isi berkas, sehingga bukan cara membuat cadangan. Namun, itu tidak berarti hash aman untuk menyembunyikan sembarang masukan. Jika kata sandi pendek dan umum di-hash, penyerang dapat mencoba kata sandi yang mungkin dan membandingkan sidik jarinya. Tidak perlu membalik fungsi: cukup menebak masukannya. Jadi, hash cepat saja tidak menggantikan kata sandi kuat atau metode khusus untuk penyimpanan kata sandi yang aman. [1] [5]

Dalam pencarian preimage, suatu hash sudah ditentukan dan kita mencari data yang menghasilkannya. Dalam pencarian tabrakan, cukup menemukan dua masukan berbeda dengan hash sama, apa pun hasilnya. Tabrakan ada secara matematis karena kemungkinan masukan lebih banyak daripada hasil dengan panjang tetap. Keamanan fungsi kriptografis terletak pada sulitnya menemukan kasus tersebut dalam praktik, bukan pada kemustahilannya. Selain itu, “hash” bukan nama satu algoritma: tidak semua fungsi hash dirancang untuk keamanan kriptografis. [1]

Bitcoin memakai hash untuk mengenali transaksi, menghubungkan blok, dan memeriksa kerja penambangan. Namun, resepnya berbeda-beda. Hash header blok dihitung dengan menerapkan SHA-256 dua kali; HASH160 menggabungkan SHA-256 dengan RIPEMD-160. Tagged hash juga memisahkan tujuan perhitungan menggunakan penanda. Untuk memeriksa hasil sendiri, Anda memerlukan algoritma yang benar serta byte masukan yang persis, yaitu unit dasar data. Teks “61” terdiri dari byte yang berbeda dengan satu byte bernilai heksadesimal 61, yang mewakili huruf a dalam ASCII. Menghitung hash atas tulisan yang ditampilkan, bukan datanya, berarti melakukan perhitungan lain. [2] [4]

Untuk gambaran yang lebih utuh, baca entri ini bersama SHA-256, Proof of Work, Block Header, Transaksi, Merkle Tree, Bitcoin. Entri ini juga dirujuk dari SHA-256, Nonce, HTLC, Hashcash.

DOC · 001NIST FIPS 180-4: Secure Hash StandardSumber primer DOC · 002Bitcoin Core v29.0: hash constructionsSumber primer DOC · 003Bitcoin Core: Verify your downloadSumber primer DOC · 004BIP340: tagged hashesSumber primer DOC · 005NIST SP800-63B: Password verifiersSumber primer
Direvisi: Utamakan sumber · Bukan nasihat investasi