Fungsi hash kriptografi (CHF) telah ada sejak tahun 1980-an dan memiliki kegunaan yang luas dalam kriptografi, verifikasi integritas data, pengindeksan basis data, dan berbagai domain lainnya.
Ketika menghitung fungsi hash kriptografi, data dengan panjang yang berubah-ubah dimasukkan, dan fungsi yang sesuai mengubahnya menjadi nilai output dengan panjang tetap. Transformasi ini melibatkan penerapan berbagai operasi pada berbagai segmen data masukan, yang biasa disebut sebagai Hash. Keluaran yang dihasilkan dikenal sebagai nilai hash, dengan operasi itu sendiri disebut sebagai fungsi hash.
Contoh ilustrasinya adalah Algoritma MD5, yang sering digunakan pada pengunduh P2P, ditandai dengan panjang 128-bit. Pengguna dapat membandingkan nilai hash dari file yang diunduh dengan nilai hash yang disediakan oleh sumbernya; kecocokan mengindikasikan kemungkinan integritas file tersebut.
Aplikasi lain yang lazim digunakan adalah autentikasi kata sandi pada situs web. Untuk melindungi kata sandi pengguna, sebagian besar platform menyimpan kata sandi hashing daripada entri teks biasa. Ketika pengguna masuk, sistem menghitung fungsi hash dari kata sandi yang dimasukkan dan membandingkannya dengan nilai tersimpan yang terkait dengan nama pengguna. Sifat fungsi hash kriptografi yang tidak dapat dipulihkan melindungi dari dekripsi kata sandi bahkan jika peretas mendapatkan nilai hash basis data.
Penelusuran 'SHA256 Generator' mengungkapkan bahwa situs web yang berbeda yang menggunakan algoritme yang sama secara konsisten menghasilkan nilai hash yang sama untuk teks masukan yang serupa.
Selain itu, mengubah huruf besar-kecil teks masukan menghasilkan nilai hash keluaran yang sama sekali berbeda, yang dikenal sebagai Efek Longsoran. Karakteristik berikut ini mengukur keamanan fungsi hash kriptografi:
Pada contoh yang disebutkan di atas, merekonstruksi kata sandi pengguna dari nilai hash yang dicuri menimbulkan kesulitan yang signifikan. Operasi kompleks dan kompresi informasi dalam fungsi hash kriptografi menghalangi rekayasa balik, menekankan sifat searahnya.
Resistensi pra-gambar kedua: Mengidentifikasi nilai input lain yang menghasilkan nilai hash yang sama dengan input awal yang diberikan sangat sulit. **Fitur ini dinamakan sebagai resistensi tabrakan yang lemah.
Ketahanan terhadap tabrakan: Menemukan dua nilai yang berbeda yang menghasilkan nilai hash yang identik adalah hal yang menantang dan disebut sebagai tabrakan hash kriptografi. Properti ini menunjukkan ketahanan benturan yang kuat.
Mengambil MD5 yang disebutkan di atas sebagai contoh, apakah mungkin file yang berbeda menghasilkan nilai hash yang sama? Jawabannya adalah ya, tetapi kemungkinannya sangat kecil. Fenomena ini dikenal sebagai tabrakan hash kriptografi, yang dapat terjadi secara tidak sengaja atau melalui serangan yang disengaja. Probabilitas tabrakan standar untuk algoritma MD5 adalah sekitar 1/2¹²⁸, sehingga kejadian yang tidak disengaja sangat kecil kemungkinannya. Akan tetapi, MD5 dianggap rentan terhadap serangan tabrakan yang disengaja, karena menghasilkan nilai hash yang sama untuk dua plaintext yang berbeda relatif mudah. Oleh karena itu, meskipun algoritme MD5 masih dapat digunakan untuk tugas-tugas yang tidak melibatkan keamanan, algoritme ini tidak lagi cocok untuk tugas otentikasi keamanan (seperti otentikasi kunci atau tanda tangan digital).
Ethereum menggunakan fungsi hash kriptografi KECCAK-256, yang secara keliru diidentifikasi oleh banyak orang sebagai SHA-3 (termasuk dalam tesis doktoral pendiri Celestia) karena fungsi ini pada awalnya ditulis sebagai 'sha3' dalam Solidity. Karena kebingungan, nama tersebut kemudian diganti menjadi Keccak256.
MetaMask menggunakan berbagai fungsi hash kriptografi dalam operasinya:
Bitcoin menggunakan fungsi hash kriptografi SHA-256. Di sini, kami akan menjelaskan proses di mana para penambang Bitcoin terlibat dengan fungsi hash kriptografi selama aktivitas penambangan.
Dalam penambangan Bitcoin, para penambang menggabungkan data transaksi dengan header blok, yang terdiri dari detail transaksi bersama dengan metadata seperti stempel waktu dan nomor acak. Para penambang berusaha untuk menghasilkan hash SHA-256 tertentu dengan menyesuaikan angka acak (disebut sebagai "nonce") secara berulang-ulang, di header blok yang bertujuan untuk memenuhi kriteria tertentu, biasanya dimulai dengan sejumlah angka nol di depan. Mengingat sifat dari fungsi hash SHA-256, satu-satunya metode untuk menemukan hash yang sesuai adalah melalui eksperimen terus-menerus dengan angka acak yang berbeda.
Setelah menemukan hash yang memenuhi persyaratan, penambang dapat menambahkan blok tersebut ke dalam blockchain jaringan Bitcoin dan menerima sejumlah Bitcoin sebagai hadiah. Proses ini, yang dikenal sebagai "penambangan", melibatkan eksekusi fungsi hash yang sedang berlangsung untuk mengidentifikasi nilai hash yang memenuhi kriteria yang ditentukan.
Selain penambangan, fungsi hash kriptografi sangat penting dalam membangun hubungan antara blok dan melacak perubahan transaksi dalam sistem blockchain. Pointer hash berfungsi sebagai struktur data yang memfasilitasi pengindeksan data, pengambilan, dan verifikasi modifikasi data. Setiap transaksi dalam blockchain mengalami proses hashing sebelum disusun ke dalam blok-blok. Selanjutnya, penunjuk hash menghubungkan setiap blok ke pendahulunya dengan menyimpan hash dari data blok sebelumnya. Sifat blok yang saling terhubung memastikan keabadian dalam blockchain; setiap modifikasi pada transaksi menghasilkan nilai hash yang berbeda, akibatnya mengubah hash semua blok berikutnya. Sebagai contoh, pertimbangkan sebuah blockchain yang terdiri dari dua blok:
Blok 1: mencakup hash dari transaksi T1, T2, dan T3.
Blok 2: menampilkan hash transaksi T4, T5, dan T6, bersama dengan hash Blok 1.
Jika seseorang mencoba untuk merusak transaksi T1 pada Blok 1, mereka harus mengkalibrasi ulang nilai hash Blok 1 dan memperbarui nilai yang baru pada Blok 2. Akan tetapi, karena sifat searah dan ketahanan Pre-image dari fungsi hash kriptografi, membalikkan transaksi T1 pada Blok 1 berdasarkan nilai hash Blok 2 terbukti sulit.
Selain itu, mengingat bahwa Blok 2 menggabungkan nilai hash Blok 1, merusak Blok 1 akan mengubah nilai hash Blok 2. Hal ini membutuhkan gangguan simultan pada semua blok berikutnya untuk setiap modifikasi dalam blockchain - sebuah tugas yang berat. Oleh karena itu, fungsi hash kriptografi secara efektif menjunjung tinggi koherensi dan integritas data blockchain.
Dalam ranah blockchain, fungsi hash kriptografi memenuhi beberapa peran penting:
Tautan Blok: Header setiap blok berisi nilai hash blok sebelumnya, memfasilitasi rantai blok yang terhubung untuk memastikan integritas yang tidak dapat dirusak.
Validasi Transaksi: Data transaksi mengalami hashing, dengan nilai hash yang dihasilkan disertakan dalam blok, memvalidasi keaslian dan integritas transaksi.
Mekanisme Konsensus: Dalam mekanisme konsensus Proof of Work (PoW), penambang harus mengidentifikasi nilai nonce yang memenuhi persyaratan tingkat kesulitan dengan mengeksekusi fungsi hash.
Pada tanggal 2 September 2022, Vitalik memposting sebuah pertanyaan di Twitter (X), menanyakan fungsi hash kriptografi mana yang akan tetap aman jika komputer kuantum yang menggunakan algoritme Shor ditemukan.
Sumber: Tweet Vitalik
Dia mengindikasikan bahwa komputer kuantum yang mampu memanfaatkan algoritma Shor dapat menerobos RSA (kriptosistem kunci publik yang sudah lama ada) atau apa pun yang didasarkan pada faktorisasi, kurva elips, dan kelompok yang tidak diketahui urutannya. Namun, nilai hash (seperti SHA-256) bekerja dengan baik dalam konteks komputasi kuantum, meskipun keamanannya akan sedikit berkurang, dan merekomendasikan penggunaan nilai hash yang lebih panjang.
Seberapa kuat fungsi hash kriptografi, seperti SHA-256? "256" dalam SHA-256 melambangkan 2 yang dipangkatkan 256, angka yang begitu luas sehingga sulit untuk dipahami secara konkret.
Sumber: 3Blue1Brown
Meskipun demikian, 3Blue1Brown telah menyajikan analogi yang jelas untuk membantu dalam memahami keamanan fungsi hash kriptografi: bayangkan sebuah skenario di mana 4 miliar orang di Bumi masing-masing memiliki komputer dengan kemampuan komputasi yang luar biasa, setara dengan 1.000 kali kekuatan komputasi Google di seluruh dunia. Pada saat yang sama, bayangkan sebuah kosmos dengan 4 miliar planet dan 4 miliar galaksi yang mirip dengan Bimasakti! Bahkan dalam kondisi ekstrem ini, akan membutuhkan lebih dari 500 miliar tahun sebelum ada peluang 1 banding 4 miliar untuk menebak secara akurat "input spesifik yang dibutuhkan untuk menghasilkan nilai hash output SHA-256."
Fungsi hash kriptografi (CHF) telah ada sejak tahun 1980-an dan memiliki kegunaan yang luas dalam kriptografi, verifikasi integritas data, pengindeksan basis data, dan berbagai domain lainnya.
Ketika menghitung fungsi hash kriptografi, data dengan panjang yang berubah-ubah dimasukkan, dan fungsi yang sesuai mengubahnya menjadi nilai output dengan panjang tetap. Transformasi ini melibatkan penerapan berbagai operasi pada berbagai segmen data masukan, yang biasa disebut sebagai Hash. Keluaran yang dihasilkan dikenal sebagai nilai hash, dengan operasi itu sendiri disebut sebagai fungsi hash.
Contoh ilustrasinya adalah Algoritma MD5, yang sering digunakan pada pengunduh P2P, ditandai dengan panjang 128-bit. Pengguna dapat membandingkan nilai hash dari file yang diunduh dengan nilai hash yang disediakan oleh sumbernya; kecocokan mengindikasikan kemungkinan integritas file tersebut.
Aplikasi lain yang lazim digunakan adalah autentikasi kata sandi pada situs web. Untuk melindungi kata sandi pengguna, sebagian besar platform menyimpan kata sandi hashing daripada entri teks biasa. Ketika pengguna masuk, sistem menghitung fungsi hash dari kata sandi yang dimasukkan dan membandingkannya dengan nilai tersimpan yang terkait dengan nama pengguna. Sifat fungsi hash kriptografi yang tidak dapat dipulihkan melindungi dari dekripsi kata sandi bahkan jika peretas mendapatkan nilai hash basis data.
Penelusuran 'SHA256 Generator' mengungkapkan bahwa situs web yang berbeda yang menggunakan algoritme yang sama secara konsisten menghasilkan nilai hash yang sama untuk teks masukan yang serupa.
Selain itu, mengubah huruf besar-kecil teks masukan menghasilkan nilai hash keluaran yang sama sekali berbeda, yang dikenal sebagai Efek Longsoran. Karakteristik berikut ini mengukur keamanan fungsi hash kriptografi:
Pada contoh yang disebutkan di atas, merekonstruksi kata sandi pengguna dari nilai hash yang dicuri menimbulkan kesulitan yang signifikan. Operasi kompleks dan kompresi informasi dalam fungsi hash kriptografi menghalangi rekayasa balik, menekankan sifat searahnya.
Resistensi pra-gambar kedua: Mengidentifikasi nilai input lain yang menghasilkan nilai hash yang sama dengan input awal yang diberikan sangat sulit. **Fitur ini dinamakan sebagai resistensi tabrakan yang lemah.
Ketahanan terhadap tabrakan: Menemukan dua nilai yang berbeda yang menghasilkan nilai hash yang identik adalah hal yang menantang dan disebut sebagai tabrakan hash kriptografi. Properti ini menunjukkan ketahanan benturan yang kuat.
Mengambil MD5 yang disebutkan di atas sebagai contoh, apakah mungkin file yang berbeda menghasilkan nilai hash yang sama? Jawabannya adalah ya, tetapi kemungkinannya sangat kecil. Fenomena ini dikenal sebagai tabrakan hash kriptografi, yang dapat terjadi secara tidak sengaja atau melalui serangan yang disengaja. Probabilitas tabrakan standar untuk algoritma MD5 adalah sekitar 1/2¹²⁸, sehingga kejadian yang tidak disengaja sangat kecil kemungkinannya. Akan tetapi, MD5 dianggap rentan terhadap serangan tabrakan yang disengaja, karena menghasilkan nilai hash yang sama untuk dua plaintext yang berbeda relatif mudah. Oleh karena itu, meskipun algoritme MD5 masih dapat digunakan untuk tugas-tugas yang tidak melibatkan keamanan, algoritme ini tidak lagi cocok untuk tugas otentikasi keamanan (seperti otentikasi kunci atau tanda tangan digital).
Ethereum menggunakan fungsi hash kriptografi KECCAK-256, yang secara keliru diidentifikasi oleh banyak orang sebagai SHA-3 (termasuk dalam tesis doktoral pendiri Celestia) karena fungsi ini pada awalnya ditulis sebagai 'sha3' dalam Solidity. Karena kebingungan, nama tersebut kemudian diganti menjadi Keccak256.
MetaMask menggunakan berbagai fungsi hash kriptografi dalam operasinya:
Bitcoin menggunakan fungsi hash kriptografi SHA-256. Di sini, kami akan menjelaskan proses di mana para penambang Bitcoin terlibat dengan fungsi hash kriptografi selama aktivitas penambangan.
Dalam penambangan Bitcoin, para penambang menggabungkan data transaksi dengan header blok, yang terdiri dari detail transaksi bersama dengan metadata seperti stempel waktu dan nomor acak. Para penambang berusaha untuk menghasilkan hash SHA-256 tertentu dengan menyesuaikan angka acak (disebut sebagai "nonce") secara berulang-ulang, di header blok yang bertujuan untuk memenuhi kriteria tertentu, biasanya dimulai dengan sejumlah angka nol di depan. Mengingat sifat dari fungsi hash SHA-256, satu-satunya metode untuk menemukan hash yang sesuai adalah melalui eksperimen terus-menerus dengan angka acak yang berbeda.
Setelah menemukan hash yang memenuhi persyaratan, penambang dapat menambahkan blok tersebut ke dalam blockchain jaringan Bitcoin dan menerima sejumlah Bitcoin sebagai hadiah. Proses ini, yang dikenal sebagai "penambangan", melibatkan eksekusi fungsi hash yang sedang berlangsung untuk mengidentifikasi nilai hash yang memenuhi kriteria yang ditentukan.
Selain penambangan, fungsi hash kriptografi sangat penting dalam membangun hubungan antara blok dan melacak perubahan transaksi dalam sistem blockchain. Pointer hash berfungsi sebagai struktur data yang memfasilitasi pengindeksan data, pengambilan, dan verifikasi modifikasi data. Setiap transaksi dalam blockchain mengalami proses hashing sebelum disusun ke dalam blok-blok. Selanjutnya, penunjuk hash menghubungkan setiap blok ke pendahulunya dengan menyimpan hash dari data blok sebelumnya. Sifat blok yang saling terhubung memastikan keabadian dalam blockchain; setiap modifikasi pada transaksi menghasilkan nilai hash yang berbeda, akibatnya mengubah hash semua blok berikutnya. Sebagai contoh, pertimbangkan sebuah blockchain yang terdiri dari dua blok:
Blok 1: mencakup hash dari transaksi T1, T2, dan T3.
Blok 2: menampilkan hash transaksi T4, T5, dan T6, bersama dengan hash Blok 1.
Jika seseorang mencoba untuk merusak transaksi T1 pada Blok 1, mereka harus mengkalibrasi ulang nilai hash Blok 1 dan memperbarui nilai yang baru pada Blok 2. Akan tetapi, karena sifat searah dan ketahanan Pre-image dari fungsi hash kriptografi, membalikkan transaksi T1 pada Blok 1 berdasarkan nilai hash Blok 2 terbukti sulit.
Selain itu, mengingat bahwa Blok 2 menggabungkan nilai hash Blok 1, merusak Blok 1 akan mengubah nilai hash Blok 2. Hal ini membutuhkan gangguan simultan pada semua blok berikutnya untuk setiap modifikasi dalam blockchain - sebuah tugas yang berat. Oleh karena itu, fungsi hash kriptografi secara efektif menjunjung tinggi koherensi dan integritas data blockchain.
Dalam ranah blockchain, fungsi hash kriptografi memenuhi beberapa peran penting:
Tautan Blok: Header setiap blok berisi nilai hash blok sebelumnya, memfasilitasi rantai blok yang terhubung untuk memastikan integritas yang tidak dapat dirusak.
Validasi Transaksi: Data transaksi mengalami hashing, dengan nilai hash yang dihasilkan disertakan dalam blok, memvalidasi keaslian dan integritas transaksi.
Mekanisme Konsensus: Dalam mekanisme konsensus Proof of Work (PoW), penambang harus mengidentifikasi nilai nonce yang memenuhi persyaratan tingkat kesulitan dengan mengeksekusi fungsi hash.
Pada tanggal 2 September 2022, Vitalik memposting sebuah pertanyaan di Twitter (X), menanyakan fungsi hash kriptografi mana yang akan tetap aman jika komputer kuantum yang menggunakan algoritme Shor ditemukan.
Sumber: Tweet Vitalik
Dia mengindikasikan bahwa komputer kuantum yang mampu memanfaatkan algoritma Shor dapat menerobos RSA (kriptosistem kunci publik yang sudah lama ada) atau apa pun yang didasarkan pada faktorisasi, kurva elips, dan kelompok yang tidak diketahui urutannya. Namun, nilai hash (seperti SHA-256) bekerja dengan baik dalam konteks komputasi kuantum, meskipun keamanannya akan sedikit berkurang, dan merekomendasikan penggunaan nilai hash yang lebih panjang.
Seberapa kuat fungsi hash kriptografi, seperti SHA-256? "256" dalam SHA-256 melambangkan 2 yang dipangkatkan 256, angka yang begitu luas sehingga sulit untuk dipahami secara konkret.
Sumber: 3Blue1Brown
Meskipun demikian, 3Blue1Brown telah menyajikan analogi yang jelas untuk membantu dalam memahami keamanan fungsi hash kriptografi: bayangkan sebuah skenario di mana 4 miliar orang di Bumi masing-masing memiliki komputer dengan kemampuan komputasi yang luar biasa, setara dengan 1.000 kali kekuatan komputasi Google di seluruh dunia. Pada saat yang sama, bayangkan sebuah kosmos dengan 4 miliar planet dan 4 miliar galaksi yang mirip dengan Bimasakti! Bahkan dalam kondisi ekstrem ini, akan membutuhkan lebih dari 500 miliar tahun sebelum ada peluang 1 banding 4 miliar untuk menebak secara akurat "input spesifik yang dibutuhkan untuk menghasilkan nilai hash output SHA-256."