Hashing: Pengertian, Proses, Jenis, dan Penggunaannya

Table of Contents
Pengertian Hashing
Hashing

Pengertian Hashing

Hash adalah suatu kode dari hasil enkripsi yang umumnya terdiri dari huruf maupun angka yang acak. Hash merupakan sidik jari atau rangkuman dari data digital. Sementara hashing adalah proses menghasilkan fixed-size output, dari variable-sized input yang dilakukan melalui penggunaan rumus matematika yang dikenal sebagai hash function.

Perbedaan antara hash dan enkripsi adalah hash merupakan kriptografi satu arah, sementara enkripsi berjalan dua arah. Hash pada dasarnya mempunyai dua karakteristik yakni satu input yang sama akan selalu menghasilkan output yang sama, dan tidak ada fungsi atau cara untuk membalikkan output kembali menjadi input.

Proses Hashing

Pada proses hashing ini terdapat tiga komponen penting di antaranya,
1. Data Masukan
Data masukan untuk hashing bisa berupa apapun. Biasanya, masukan tersebut bisa apa saja asal merupakan data biner. Mau itu file, video, teks, ataupun password, tidak masalah karena semua benda tersebut adalah data biner.

2. Hash Function
Hash function adalah sebuah fungsi yang dapat mengubah data menjadi data lain yang memiliki ukuran tertentu. Fungsi ini adalah fungsi satu arah, artinya Anda tidak bisa mengetahui apa data masukan fungsi ini jika Anda memiliki data keluarannya.

Demikian, agar hash function dapat dikatakan baik, fungsi tersebut harus memenuhi 3 kriteria umum di antaranya,
a. Kecepatan
Fungsi hash harus cepat. Kalau tidak, tidak ada yang mau menggunakannya. Tapi, kalau fungsinya terlalu cepat cara menghitungnya, bisa jadi fungsi tersebut tidak aman. Jadi harus ada keseimbangan antara kecepatan dan keamanan.

b. Unik
Fungsi tersebut harus sebisa mungkin menghasilkan nilai yang berbeda untuk setiap data masukkan. Namun, memang tidak dipungkiri, data hasil keluaran (digest) jumlahnya terbatas. Karena terbatas, maka tetap ada kemungkinan hasilnya tidak unik. Tapi tetap saja, fungsi harus bisa memastikan keluaran dengan hasil yang sama sangat kecil kemungkinannya.

c. Peka Terhadap Perubahan
Fungsi harus bisa menghasilkan nilai yang berbeda walaupun data masukan hanya berubah sedikit. Selain itu, perubahan yang sedikit haruslah menghasilkan nilai yang sangat jauh berbeda.
 
3. Hash Values atau Digest
Digest adalah hasil keluaran dari hash function. Digest pada fungsi hash pada umumnya memiliki ukuran yang tetap. Contohnya pada fungsi hash bernama MD5 memiliki ukuran 128 bit. Digest inilah yang biasanya digunakan untuk berbagai jenis kebutuhan dalam software engineering dan security.
 

Jenis Hash Function

Di antara beberapa hash function, terdapat beberapa jenis yang sering digunakan di antaranya,
1. MD5
Kerap digunakan bersama hash value 128-bit, MD5 merupakan fungsi hash yang dimanfaatkan dalam sejumlah aplikasi keamanan, salah satunya Internet standar (RFC 1321). MD sendiri adalah singkatan dari message digest dan MD5 yang sekarang sering digunakan adalah pengganti MD4 yang dikembangkan Profesor Ronald Rovest dari MIT.

Cara kerja MD5 sebagai salah satu jenis fungsi hash, ketika mengunduh file maupun dokumen tertentu, ada kalanya proses terputus karena koneksi internet yang kurang stabil atau perangkat mati mendadak. Dalam situasi seperti ini, file hasil unduhan bisa saja tak dapat Anda akses karena terlanjur corrupt atau rusak. Namun, MD5 dapat menyelamatkan Anda dari risiko tersebut kalau diaplikasikan dengan tepat.

Caranya, Anda harus menghasilkan hash atau algoritma MD5 (MD5 check-sum) pada file yang dimaksud dalam server Anda. Setelah mengunduh file tersebut ke perangkat, akan ada hash MD5 yang dihasilkan. Jika kedua hash cocok, bisa dipastikan file yang Anda unduh tak kena corrupt atau kehilangan data. Algoritma MD5 biasanya terdiri atas 32 digit heksadesimal yang tersusun acak dan merupakan gabungan antara angka dengan huruf.

Mengikuti sifat hash, MD5 pada file yang Anda unduh dengan ukuran sama akan memiliki algoritma yang berbeda walau jenis dan ukurannya sama. Dengan begitu, Anda bisa mengidentifikasi file secara cepat dan mudah. MD5 pun bisa diandalkan untuk tujuan-tujuan lain seperti modifikasi file yang rusak akibat virus atau serangan hacker. Pastikan juga akan menempatkan file di folder khusus untuk memudahkan tahap identifikasi.

2. SHA-1
Selanjutnya ada Secure Hash Algorithm 1 atau SHA-1, yakni fungsi hash kriptografi yang bekerja dengan mengambil input untuk menghasilkan nilai hash 20-bit. SHA-1 terdiri atas 40 digit heksadesimal dan dirancang khusus oleh NSA (Badan Keamanan Nasional Amerika Serikat) dan termasuk ke dalam Standar Pemrosesan Informasi Federal di negara tersebut.

Seperti MD5, SHA-1 yang berperan sebagai intisari pesan dipakai secara luas dan memiliki tingkat keamanan lebih baik. Dalam pengembangannya, SHA-1 sudah punya penerus bernama SHA-2 dan SHA-3. Meski begitu, SHA-1 berperan penting dalam menjaga keamanan saat Anda mengakses website dengan password. Algoritma nantinya akan mencocokkan password tersebut dengan password lain yang sudah dimasukkan. Jika ada yang sesuai, Anda akan diberikan akses masuk.

Contoh selanjutnya dari penggunaan SHA-1 adalah dalam proses verifikasi file. Sejumlah website menyediakan SHA-1 check-sum dari file pada laman-laman unduh. Dengan begitu, saat Anda akan mengunduh file tertentu, Anda bisa memeriksa check-sum yang sudah disisipkan algoritma SHA-1. Tujuannya adalah untuk memastikan file yang diperoleh sudah sama dengan file yang Anda inginkan untuk diunduh.

Anda yang kali pertama menggunakan SHA-1 mungkin akan bertanya-tanya di mana sebaiknya algoritma tersebut ditempatkan untuk memudahkan verifikasi file. Dalam hal ini, pertimbangkan cara Anda mengetahui check-sum SHA-1 dari file yang diperoleh lewat website pengembang. Lalu, bayangkan skenario di mana Anda ingin mengunduh versi sama dari sumber berbeda. Dari sini, Anda akan menghasilkan check-sum untuk membandingkan hasil unduhan.

3. RIPEMD-160
Race Integrity Primitive Evaluation Message Digest atau RIPEMD-160 merupakan algoritma yang dikembangkan dari MD4. Fungsi hash yang satu ini disusun berdasarkan konstruksi Merkle-Damgård dan termasuk ke dalam standar Bitcoin. Selain itu, RIPEMD-160 adalah versi penguatan dari RIPEMDI yang mampu menghasilkan intisari pesan 160-bit.

Dengan pengembangan optimal, RIPEMD-160 memiliki performa yang lebih cepat sekaligus bertenaga. Hasilnya, algoritma tersebut dapat mengurangi pending data yang kerap menghambat transaksi. Bukan hanya itu, RIPEMD-160 dapat membuat alamat Bitcoin yang sudah diakumulasi sesuai kunci publik. Meski begitu, jenis fungsi tersebut mempunyai jumlah transaksi lebih kecil dibandingkan salah satu jenis SHA, yakni SHA-256.

4. SHA-2 dan SHA-3
Berikutnya ada dua penerus SHA-1, yakni SHA-1 dan SHA-3, yang mendapatkan peningkatan optimal dari pengembang. SHA-2 kali pertama diterbitkan pada 2001, hanya selang beberapa tahun dari SHA-1. Jenis algoritma ini terdiri atas enam fungsi hash dengan macam-macam ukuran digest, di antaranya SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, serta SHA-512/256.

Kemudian, ada SHA-3 yang dikembangkan lembaga non-NSA dan dirilis NIST pada 2015. Jenis fungsi hash yang sebelumnya dinamakan Keccak merupakan anggota keluarga Algoritma Secure Hash. Kehadiran SHA-3 tidak ditujukan untuk menggantikan SHA-2. Berbeda dari SHA-2, SHA-3 dikembangkan untuk opsi alternatif untuk SHA-1 dan MD5. Jadi, Anda bisa memakainya saat fungsi utama tak memberikan hasil yang dihara

Penggunaan Hash Function

Pengunaan hash function sangatlah banyak, berikut contoh penggunaan hash yang bisa ditemui dalam melakukan pemrograman sehari-hari di antaranya,
1. Mengecek Kesamaan
Karena sifatnya yang unik, hash function dapat digunakan untuk melakukan pengecekan kesamaan antara dua benda. Jika kedua benda tersebut sama, maka seharusnya digest yang dihasilkan juga sama. Begitu pula sebaliknya. Pada penggunaan inilah, masalah collision menjadi berbahaya. Karena, bisa saja dua benda yang tidak sama dikatakan sama jika terjadi collision.

2. Implementasi Struktur Data
Penggunaan hashing function pada struktur data sangatlah variatif. Biasanya digunakan agar akses terhadap suatu data memiliki kompleksitas O(1). Bagaimana caranya?

Contohnya, pada struktur data ‘Set’. Hash function pada Set digunakan untuk menentukan di indeks mana suatu benda diletakkan. Sehingga, dengan mengetahui nilai data masukkan, Anda dapat tahu dengan cepat apakah data tersebut ada pada suatu ‘Set’ atau tidak.

3. Mengamankan Password
Password tidak boleh disimpan dalam bentuk teks asli (plaintext). Jika terjadi kebocoran data, bisa jadi sangat berbahaya. Hash ini digunakan pada password untuk menyamarkan password tersebut kalau-kalau terjadi kebocoran data. Data yang bocor hanyalah digest dari password tersebut dan jika dilakukan dengan benar, akan sulit untuk mengembalikannya ke bentuk teks asli.

Mengamankan password ini tidak akan berhasil jika Anda menggunakan algoritma hash yang lemah seperti MD5. Penyebabnya adalah sudah banyak alat yang dapat digunakan hacker untuk mengembalikan hash MD5 ke bentuk aslinya. Contohnya dengan menggunakan rainbow table.

4. Validasi Pesan atau Berkas
Hasil dari hash function atau digest dapat digunakan sebagai suatu bentuk ‘tanda-tangan’. Dengan membubuhkan nilai hash pada suatu berkas, penerima berkas dapat mengetahui apakah berkas tersebut sudah diubah atau tidak. Penerima akan melakukan hashing pada berkas tersebut dan melakukan pengecekan apakah nilainya sama dengan nilai hash yang dibubuhkan sebagai tanda-tangan. Jika sama, kemungkinan berkasnya tidaklah diubah.

Dari berbagai sumber

Download 

Lihat Juga: Enkripsi: Pengertian, Fungsi, Cara Kerja, Jenis, Penggunaan, dan Perbedaannya dengan Hashing

Aletheia Rabbani
Aletheia Rabbani “Barang siapa yang tidak mampu menahan lelahnya belajar, maka ia harus mampu menahan perihnya kebodohan” _ Imam As-Syafi’i

Post a Comment