Apa itu Hash Kriptografis? [Panduan Pemula]
Diterbitkan: 2019-08-07Daftar isi
Apa itu Hash Kriptografis?
Hash Kriptografis Dijelaskan
Properti Fungsi Hash Kriptografis
Algoritma Hashing Umum
Hashing dalam Cryptocurrency
Fungsi Hash dalam Penyimpanan Kata Sandi
Bungkus
Kemungkinannya adalah, pada hari Anda dan teman Anda membuat kode untuk saling menyampaikan pesan yang tidak dapat dipahami oleh orang lain. Setidaknya Anda tahu orang-orang seperti itu.
Beberapa orang seperti itu menganggap permainan ini serius dan kemudian mengubahnya menjadi karier.
Yang lain menjadi penyihir – yang disebut mentalis. Dengan bantuan kode, mereka menggunakan "kekuatan mental" mereka untuk menebak kartu, angka, dll.
Permainan anak sederhana itu menjadi apa yang dikenal sebagai enkripsi, hashing, dan semua fungsi lainnya, yang menghasilkan kode yang tampaknya tidak dapat dibaca dari input yang diberikan.
Hari ini kita akan menyelami dunia magis pengkodean untuk melihat apa itu hash kriptografi , cara kerja bagian dalamnya, dan aplikasinya.
Jadi, tanpa basa-basi lagi, mari kita langsung masuk.
Apa itu Hash Kriptografis?
Fungsi hash kriptografi adalah jenis fungsi hash digunakan untuk tujuan keamanan. Ini memiliki beberapa properti yang membedakannya dari yang non-kriptografi. Mari kita uraikan langkah demi langkah.
Apa Itu Hash?
Hashing adalah metode yang digunakan untuk mengompresi data.
Namun, ini bukan kompresi biasa yang diketahui semua orang, seperti file .zip atau .rar.
Hashing membuat kode untuk data menggunakan algoritma hash . Kode mewakili string karakter, yang bertindak sebagai "sidik jari" dari file itu.
Kita semua tahu sidik jari itu kecil, tetapi mengandung sejumlah besar data. Anda tahu, hal-hal seperti nama, wajah, alamat, dan informasi sensitif kami lainnya. Hashing serupa - dibutuhkan sepotong data berukuran sewenang-wenang dan mengubahnya menjadi urutan karakter yang relatif kecil.
Tidak peduli ukuran inputnya, Anda selalu mendapatkan output dengan panjang tetap saat hashing.
Contoh Fungsi Hash
Jadi, inilah contoh bagaimana ini terjadi. Untuk demonstrasi ini, kita akan menggunakan 256-bit Secure Hashing Algorithm , yang dikenal sebagai SHA-256. Ini adalah salah satu algoritma hashing yang paling umum , dan ternyata – ini juga digunakan oleh Bitcoin .
Pesan | Hash dari pesan |
Hai | 3639EFCD08ABB273B1619E82E78C29A7DF02C1051B1820E99FC395DCAA3326B8 |
Selamat datang di TechJury | B7FFC27E0A6F559E1F63A927B6132A42124CC790F9EFD0FCFF4C3B653AA0DF4B |
(Isi dari seluruh artikel ini) | 9247D0E6C7A2A45976DCC3D2393A52658B6DDFC846d8AF5743400EA12FB9DE74 |
Lihat, meskipun pesan memiliki panjang yang berbeda, semuanya mendapatkan hash 64 karakter. Ini juga dikenal sebagai nilai hash atau intisari .
Anda akan mendapatkan hasil dengan durasi tetap yang sama jika Anda meng-hash sebuah buku atau bahkan konten seluruh perpustakaan. Anda juga dapat melakukannya dengan jenis data lain – video, gambar, dll.
Apa yang hebat tentang hash adalah, Anda akan mendapatkan nilai hash yang sama sekali berbeda bahkan jika Anda membuat perubahan terkecil . Ini dikenal sebagai efek longsoran salju .
Jadi jika pacar Anda menghapus semua foto mantan Anda, misalnya, hash folder akan berubah. Dengan begitu, Anda akan tahu ada yang salah tanpa memeriksa setiap gambar.
Mari kita lihat satu lagi contoh bagaimana fungsi hash berguna dalam praktik. Untuk contoh berikutnya, saya melakukan hash pada “ Apa itu VPN? ”, dan tampilannya seperti ini:
Kemudian saya menghapus sebuah kata dari artikel dan meng-hash-nya lagi. Berikut hasilnya:
Penghapusan satu kata benar-benar mengubah nilai hash . Ini sangat membantu jika Anda ingin memeriksa apakah ada perubahan yang dibuat pada file.
Ini bahkan lebih membantu ketika Anda berurusan dengan sejumlah besar informasi. Misalnya, blockchain cryptocurrency menyimpan ribuan transaksi setiap hari.
Sekarang mari selami lebih dalam dan lihat apa arti sebenarnya dari hash kriptografi .
Hash Kriptografis Dijelaskan
Saat Anda membutuhkan keamanan dan privasi, hash kriptografi ikut bermain. Kelemahan dari hashing kriptografi adalah biasanya lebih lambat daripada jenis hash lainnya . Jika Anda perlu hash dengan cepat dan Anda tidak memerlukan keamanan tingkat tinggi – hashing non-kriptografis lebih baik. Misalnya – jika Anda membuat indeks dari beberapa data yang tidak sensitif.
Perbedaan utama antara hashing non-kriptografi dan kriptografi adalah yang terakhir sangat sulit untuk dipecahkan. Perhatikan bahwa itu bukan tidak mungkin. Namun, hashing kriptografi membuat cracking hash hampir tidak mungkin.
Agar fungsi hash menjadi hash kriptografi, ia harus memiliki beberapa properti.
Properti Fungsi Hash Kriptografis
Jika Anda ingin menggunakan hashing untuk tujuan kriptografi, ada beberapa persyaratan yang harus dipenuhi oleh fungsi hash agar dianggap aman.
Properti #1 – Kecepatan
Jika Anda menyukai kata-kata mewah – fungsi hash kriptografi harus efisien secara komputasi. Itu berarti fungsi hashing harus dapat menghasilkan hash dalam sepersekian detik .
Sumber
Properti #2 – Efek Longsor
Efek avalanche berarti bahkan perubahan kecil dalam pesan akan menghasilkan perubahan besar dalam nilai hash .
Pesan | Hash dari pesan |
Selamat datang di TechJury | B7FFC27E0A6F559E1F63A927B6132A42124CC790F9EFD0FCFF4C3B653AA0DF4B |
Selamat datang di Techjury | 66251AE6324F670BF988465E49B9CEAA2F8C4E72E1D61336D3794301116C092B |
Menggunakan huruf kecil "j" di pesan kedua mengubah kode hash sepenuhnya.
Ini adalah contoh fungsi hash sederhana , tetapi Anda mendapatkan idenya. Ini sangat praktis dan dapat dengan cepat menunjukkan jika ada data yang diubah.
Properti #3 – Fungsi Hash Kriptografis Harus Deterministik
Itu berarti tidak peduli berapa kali Anda menggunakan fungsi hash untuk input yang sama , Anda akan selalu mendapatkan output yang sama . Ini jelas karena jika Anda mendapatkan hash acak untuk pesan yang sama, seluruh proses tidak akan berarti.
Properti #4 – Resistensi Pra-Gambar (Fungsi Satu Arah)
Ini berarti sangat sulit untuk mendapatkan input melalui output.
Dengan kata sederhana, Anda tidak dapat membalikkan fungsi hash kriptografi untuk mendapatkan data. Namun, ini tidak berarti tidak mungkin untuk melihat pesannya.
Inilah kesepakatannya.
Ada dua metode untuk menemukan pesan hash.
- Untuk membandingkan hash dengan daftar hash yang ada, seperti ini: Dehash.me. Biasanya, penjahat dunia maya memiliki database pesan terjemahan (dehashed) mereka sendiri.
- Untuk melakukan serangan brute force.
Untuk memecahkan hash dengan brute force, Anda harus memilih pesan, hash, dan membandingkannya dengan hash yang Anda miliki. Skenario kasus terbaik – Anda mendapatkannya dari percobaan pertama. Namun, kemungkinan itu terjadi sangat kecil.
Skenario terburuk – Anda menemukannya dari percobaan terakhir Anda. Itu berarti Anda harus meng-hash semua pesan yang mungkin dan membandingkannya dengan yang Anda miliki. Jumlahnya berbeda, tergantung pada algoritma hash .
Sebagai contoh, mari kita gunakan SHA-256. Dalam hal ini, Anda harus menemukan 2 256 -1 nilai hash terlebih dahulu. Aman untuk mengatakan itu tidak dapat dilakukan dalam beberapa kehidupan dan berhenti di situ.
Sekarang.
Properti resistensi pra-gambar dari hash kriptografi memainkan peran penting dalam perdebatan hashing vs enkripsi .
Lihat – Anda dapat mendekripsi pesan terenkripsi, tetapi Anda tidak dapat melakukan hal yang sama untuk hash kriptografis .
Anda dapat menganggap hash sebagai smoothie. Anda tidak dapat mengekstrak pesan dari hash dengan cara yang sama seperti Anda tidak dapat mengekstrak pisang dan susu dari smoothie.
Enkripsi, di sisi lain, lebih seperti brankas. Ini melindungi barang berharga Anda, tetapi selalu ada kunci yang membukanya.
Properti #5 – Ketahanan Tabrakan
Artinya, dua pesan yang berbeda tidak boleh menghasilkan nilai hash yang sama . Dari sudut pandang matematika, ini tidak mungkin.
Anda sudah tahu nilai hash memiliki panjang yang tetap. Itu berarti ada kombinasi output yang terbatas . Input, di sisi lain, adalah jumlah yang tak terbatas . Jadi, secara teori, ada kemungkinan dua pesan berbeda dapat menghasilkan hash yang sama .
Namun, fungsi hash dalam kriptografi membuat kemungkinan tabrakan hash praktis diabaikan.
Lihat.
Semua properti ini memastikan keamanan dan kegunaan hash kriptografi . Jadi inilah saatnya untuk memenuhi fungsi hash kriptografi yang berbeda.
Algoritma Hashing Umum
Ada kelas yang berbeda (keluarga) dari algoritma hash. Perbedaan inti di antara mereka adalah nilai hash yang dihasilkan masing-masing dan properti keamanannya.
Berikut adalah yang paling umum digunakan:
Algoritma Intisari Pesan (MD)
MD5 adalah fungsi hash pilihan bagi banyak perusahaan, tetapi rusak pada tahun 2004. Algoritme hash dianggap rusak ketika telah terjadi tabrakan atau serangan pra-gambar yang berhasil terhadapnya. Namun, banyak situs web terus menggunakan fungsi hashing MD5 untuk verifikasi file.
Misalnya, saat Anda mengunduh file, Anda dapat membandingkan hashnya dengan yang ada di situs untuk memastikan tidak ada yang merusaknya.
Keluarga MD terdiri dari MD2, MD3, MD4, MD5 (semuanya rusak), dan MD6 (yang tidak begitu populer.)
Berikut contoh fungsi hash dari MD5.
Pesan | MD5 hash |
juri teknologi | FECE553512085FF6B5E213C8EFF9F30D |
MD5 menghasilkan nilai hash 128-bit dengan panjang 32 karakter.
Karena kekurangannya, algoritma Message Digest tidak lagi dianggap sebagai fungsi hash kriptografi .
Algoritma Hashing Aman (SHA)
Keluarga terbesar fungsi hash kriptografi terdiri dari empat kelas:
- SHA-0
- SHA-1
- SHA-2
- SHA-3
SHA-0 memiliki banyak kekurangan dan tidak digunakan secara luas. SHA-1 mencoba memperbaikinya, tetapi rusak pada tahun 2005.
SHA-2 dan subkelasnya umumnya digunakan saat ini hingga SHA-3 membuktikan dirinya sebagai fungsi yang lebih aman.
Keluarga SHA-2 terdiri dari empat anggota – SHA-224, SHA-256, SHA-384, dan SHA-512, yang berbeda dalam jumlah bit nilai hashnya . Sejauh ini, belum ada serangan yang berhasil pada algoritma hash kriptografi SHA-2 .

Berikut adalah beberapa contoh fungsi hash menggunakan kelas SHA-2.
Pesan | juri teknologi |
SHA-256 | FF3E4985DAFF59392EAE60DEC66EC823CAF9575B81903729053A999B9B2C708E |
SHA-384 | 77653BC173A561E3378373F64E447FB3AEDC691F387BB599656E6AB63B9C5D34 523C298C59C94802A478F8C3F36E9CDF |
SHA-512 | C975F1074E969FAEA76C15084881F7694DE4D542F9E4DF934AFA52470952A362 25F7ED63D023AB05746DDAFDFED96D57A7AF5344EB91589A09952D102DD3AB04 |
Intisari Pesan Evaluasi Primitif Integritas RACE (RIPEMD)
Awalnya, RIPEMD dibuat untuk proyek Uni Eropa yang disebut RIPE. Ada lima fungsi hash dalam keluarga RIPEMD.
- RIPEMD
- RIPEMD-128
- RIPEMD-160
- RIPEMD-256
- RIPEMD-320
Pada tahun 2004 terjadi tabrakan pada fungsi hash RIPEMD yang asli . Makanya tidak dipakai lagi. Saat ini, RIPEMD-160 adalah yang paling umum. Berikut tampilannya:
Pesan | Intisari RIPEMD-160 |
juri teknologi | ca25dc64fb00c8becb21eddf50805fbc106eed00 |
Pusaran air
Ini kriptografi hash nama fungsi tidak ada hubungannya dengan produsen peralatan rumah. The Whirlpool galaksi terinspirasi nama algoritma.
Yang menarik dari algoritma hashing Whirlpool adalah salah satu penciptanya adalah Vincent Rijmen, co-creator AES, Advanced Encryption Standard .
Whirlpool adalah fungsi hash 512-bit , dan intisarinya mewakili string dengan 128 karakter.
Ini adalah contoh dari fungsi hash kriptografi .
Pesan | Pusaran air hash |
juri teknologi | 2E9A775FA4450549FCB6F6CDC4761865715D46FF8003E93CC614EF7C9E3D42A93 D5A663B4E48674C5155417D686D81ABDBC12FB32A1B650C5E44F24E80156E7D |
Ini adalah algoritma hashing yang paling umum saat ini.
Jadi, sekarang setelah Anda mengetahui dasar-dasar hashing, mari kita lihat penerapannya dalam kehidupan nyata.
Hashing dalam Cryptocurrency
Kami telah menjelaskan apa itu Bitcoin dan bagaimana blockchain bekerja , jadi kami akan langsung menuju ke hashing.
Fungsi hash kriptografi adalah penting untuk cryptocurrencies karena menjamin salah satu fitur yang blockchain yang paling penting - kekekalan.
Karena blockchain cryptocurrency menangani sejumlah besar transaksi, mereka menggunakan hashing. Ini adalah pendekatan yang jauh lebih praktis dan aman daripada menyimpan setiap catatan dari setiap transaksi dalam buku besar.
Dalam kasus Bitcoin, para penambang menjalankan serangkaian fungsi SHA-256 untuk membuat hash dari sebuah blok. Kemudian yang terakhir menerima stempel waktu. Setelah node mencapai konsensus, blok ditambahkan ke blockchain. Blok tidak hanya memiliki hash sendiri , tetapi juga berisi hash dari yang sebelumnya , sehingga merantai semuanya bersama-sama.
Karena efek longsoran salju, segala upaya untuk merusak blok tidak dapat dilakukan. Jika seseorang mencoba mengubah transaksi dalam satu blok, mereka juga harus mengubah setiap transaksi yang berurutan. Operasi seperti itu akan membutuhkan begitu banyak daya dan waktu komputasi, sehingga praktis tidak mungkin .
Itu membuat hashing menjadi fitur penting dalam keamanan blockchain.
Sekarang.
Cryptocurrency yang berbeda menggunakan algoritma hashing yang berbeda di blockchain mereka.
Bitcoin, misalnya, menggunakan SHA-256 untuk bukti kerjanya. Namun, Bitcoin menggunakan dua algoritma hashing untuk menghasilkan alamat publik (kunci) – SHA-256 dan RIPEMD-160. Ini dilakukan oleh Satoshi Nakamoto untuk memberikan perlindungan yang lebih baik untuk kunci publik dan untuk mengurangi kemungkinan tabrakan.
Ethereum, di sisi lain, menggunakan algoritma hash Keccak-256 , yang merupakan dasar dari SHA-3.
Pada saat penulisan, belum ada serangan yang berhasil pada salah satu dari algoritma ini.
Bahkan jika Anda tidak masuk ke pasar cryptocurrency, Anda masih menggunakan fungsi hashing setiap hari.
Bagaimana dengan itu?
Fungsi Hash dalam Penyimpanan Kata Sandi
Ada empat teknik utama yang digunakan perusahaan untuk menyimpan kata sandi kami – dalam teks biasa, dengan enkripsi, dan dengan fungsi hash . Metode terakhir adalah kombinasi dari dua atau lebih teknik ini.
Mari kita lihat apa perbedaannya.
Menyimpan Kata Sandi dalam Teks Biasa – Tidak Boleh
Menyimpan kata sandi dalam teks biasa adalah, yah… persis seperti apa bunyinya.
Seperti ini:
Nama pengguna: John Smith
Kata sandi: johnsmith93
Basis data perusahaan berisi informasi yang sama – pengguna: John Smith, pass: johnsmith93.
Ini harus dihindari jika perusahaan menghargai privasi klien mereka. (Mudah-mudahan, seseorang dari Facebook akan membaca ini.)
Kelemahan dari metode ini jelas – jika penjahat dunia maya menyusup ke database perusahaan, mereka dapat melihat semua nama pengguna dan kata sandi.
Menyimpan Kata Sandi Menggunakan Enkripsi
Enkripsi adalah cara yang lebih baik untuk mengamankan kata sandi. Ini mengubah kata sandi Anda menjadi urutan angka dan huruf yang tidak dapat dibaca.
Berikut cara kerjanya:
Nama pengguna: John Smith
Kata sandi: johnsmith93
Ketika perusahaan menggunakan enkripsi untuk melindungi kata sandi Anda, entri basis data terlihat seperti ini:
Nama pengguna: John Smith
Sandi: I8Zdy1QBthsk2ie1HHsl+66bf20fDDcdCtXURqa07iQ=
Jika penjahat dunia maya mendapatkan kata sandi ini, itu tidak berguna – mereka tidak dapat menggunakannya untuk membobol akun. Namun, itu bisa, secara teoritis, didekripsi.
Jika aktor jahat mendapatkan kata sandi terenkripsi Anda, mereka dapat mendekripsinya menggunakan berbagai alat. Namun, itu membutuhkan lebih banyak waktu dan membutuhkan keterampilan komputasi yang lebih besar daripada sekadar mendapatkan kata sandi teks biasa.
Untungnya, ada algoritma enkripsi yang cukup kuat untuk menjadi metode yang aman untuk melindungi kata sandi.
Menyimpan Kata Sandi melalui Algoritma Hashing
Hash dan enkripsi sering disalahartikan sebagai hal yang sama dan digunakan secara bergantian. Namun, ada perbedaan penting di antara mereka.
Fungsi hash, seperti enkripsi, juga mengubah kata sandi Anda menjadi urutan angka dan huruf yang tidak dapat dibaca. Perbedaan penting adalah ia bekerja hanya satu cara . Tidak seperti dekripsi, Anda tidak dapat membalikkan proses hashing.Dengan demikian, jika penjahat dunia maya mendapatkan hash kata sandi Anda, biasanya mereka tidak dapat berbuat apa-apa dengannya.
Ada banyak fungsi hash yang tersedia, tetapi mari kita gunakan SHA-256 untuk contoh kita.
Nama pengguna: John Smith
Kata sandi (di-hash): e7c95991f28e529b4d3b37611e5f3b6a6a43600ce148af0c42d3d38c06365af5
Sekarang.
Meskipun hash tidak dapat dikembalikan ke teks aslinya, ada banyak daftar pesan dan hashnya. Sayangnya, aktor jahat masih dapat meretas kata sandi Anda jika mereka mendapatkan nilai hashnya. Untungnya, jika Anda menggunakan kata sandi yang kuat, kemungkinan hal itu terjadi sangat kecil. Kami akan menggunakan contoh yang berbeda dalam kasus ini.
Contoh Fungsi Hash dalam Penyimpanan Kata Sandi
Katakanlah kata sandi Anda adalah 123456. (Jangan pernah gunakan yang itu, buat kata sandi yang kuat saja.)
Berikut hash nya jika kita menggunakan algoritma hashing SHA-256 :
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
Sayangnya, hash ini dikonfigurasi dalam daftar pesan dehashed.
Masalah dengan itu bahkan lebih besar karena banyak orang menggunakan kata sandi yang sama. Jadi, jika database diretas dan penjahat dunia maya menemukan hash kata sandi, mereka dapat menggunakannya untuk setiap pengguna yang menggunakan kata sandi yang sama. Belum lagi banyak orang menggunakan kata sandi yang sama untuk akun yang berbeda, yang akan membuat mereka keluar dari penggorengan dan masuk ke dalam api.
Namun, Anda dapat melakukan beberapa hal untuk mencegah hal ini terjadi.
Pertama dan terpenting, gunakan kata sandi yang kuat dan buat kata sandi yang berbeda untuk akun yang berbeda.
Hal lain yang dapat Anda lakukan adalah menambahkan " garam " ke hash. Sebuah hash asin menambah nilai tambahan untuk password Anda dan menghasilkan hash password yang berbeda untuk setiap masukan.
Misalnya, setiap user yang menggunakan password 123456 dan “salts”-nya akan mendapatkan hash yang berbeda.
Setiap contoh adalah hash asin 123456.
$2y$10$pIxpMnhlQmt1t.EUYK1G/eHkb7Roo/XhPybKyFZSAqk/50BW10a8.
$2y$10$sCLqOpeA4R.St/8IaUWF9.m01MM4YbY.qTwbCY3.K5z.cd5lwxL6W
Jadi, apa cara terbaik yang dapat dilakukan perusahaan untuk melindungi kata sandi Anda?
Ini adalah kombinasi dari semua teknik yang disebutkan di atas – seperti yang dilakukan Dropbox, misalnya.
Sumber: Dropbox
Jadi begitulah cara Anda menangani hashing setiap hari, tanpa menyadarinya.
Bungkus
Untuk meringkas – hashing memiliki banyak manfaat.
Anda dapat hash semua jenis data – baik itu untuk pengindeksan, atau untuk memeriksa perubahan. Ini membuat hashing berguna untuk kontrak, unduhan, penyimpanan kata sandi, dll.
Cryptocurrency juga berkembang. Bukan hanya yang kita miliki sekarang, tetapi pemain baru sedang melakukan pemanasan untuk bergabung dengan kesenangan. Bahkan Facebook akan merilis Libra , jadi kami pasti akan lebih memanfaatkan hashing.
Mungkin Facebook akan membuka jalan bagi perusahaan besar lainnya untuk merilis cryptocurrency mereka sendiri – dan mengapa tidak mekanisme hashing baru? Hanya waktu yang akan memberitahu.
Sampai jumpa lain waktu!
FAQ
Anda dapat menganggap nilai hash sebagai sidik jari dari informasi apa pun – file, folder, blok transaksi, dll. Setelah Anda menerapkan fungsi hashing ke data apa pun, yang terakhir menerima nilai hash.
Ini terdiri dari string karakter dengan panjang tetap – seperti ini:
Informasi | Nilai hash |
Halo | D44426ACA8AE0A69CDBC4021C64FA5AD68CA32FE |
Kriptografi adalah metode yang melindungi data menggunakan kode (seperti hashing dan enkripsi.)
Pengembang menerapkan kriptografi setiap kali ada kebutuhan akan keamanan dan privasi yang lebih tinggi. Ini mengubah teks biasa (atau data lain) menjadi string karakter acak yang tidak dapat dibaca. Ini menjamin keamanan informasi dari pengintaian.
Fungsi hash adalah operasi yang mengubah data berukuran acak menjadi string karakter dengan panjang tetap yang sesuai, juga dikenal sebagai nilai hash .
Ada dua kelas fungsi hash – fungsi hash non-kriptografi dan kriptografi . Yang terakhir ini digunakan dalam cryptocurrency dan penyimpanan kata sandi dan memberikan keamanan yang lebih baik.