Fungsi Kriptografi Hash

Fungsi hash sangat berguna dan muncul di hampir semua aplikasi keamanan informasi.

Fungsi hash adalah fungsi matematika yang mengubah nilai input numerik menjadi nilai numerik terkompresi lainnya. Input ke fungsi hash memiliki panjang sembarang tetapi output selalu memiliki panjang tetap.

Nilai yang dikembalikan oleh fungsi hash dipanggil message digest atau sederhananya hash values. Gambar berikut mengilustrasikan fungsi hash -

Fitur Fungsi Hash

Fitur khas dari fungsi hash adalah -

  • Fixed Length Output (Hash Value)

    • Fungsi hash menutupi data dengan panjang sembarang hingga panjang tetap. Proses ini sering disebut sebagaihashing the data.

    • Secara umum, hash jauh lebih kecil daripada data masukan, oleh karena itu fungsi hash kadang-kadang disebut compression functions.

    • Karena hash adalah representasi yang lebih kecil dari data yang lebih besar, itu juga disebut sebagai a digest.

    • Fungsi hash dengan keluaran n bit disebut sebagai n-bit hash function. Fungsi hash populer menghasilkan nilai antara 160 dan 512 bit.

  • Efficiency of Operation

    • Umumnya untuk setiap fungsi hash h dengan input x, komputasi h (x) adalah operasi yang cepat.

    • Fungsi hash secara komputasi jauh lebih cepat daripada enkripsi simetris.

Properti Fungsi Hash

Untuk menjadi alat kriptografi yang efektif, fungsi hash diinginkan untuk memiliki properti berikut -

  • Pre-Image Resistance

    • Properti ini berarti bahwa secara komputasi sulit untuk membalikkan fungsi hash.

    • Dengan kata lain, jika fungsi hash h menghasilkan nilai hash z, maka akan sulit untuk menemukan nilai input x yang memiliki hash z.

    • Properti ini melindungi dari penyerang yang hanya memiliki nilai hash dan mencoba mencari masukan.

  • Second Pre-Image Resistance

    • Properti ini berarti diberi masukan dan hash-nya, akan sulit untuk menemukan masukan yang berbeda dengan hash yang sama.

    • Dengan kata lain, jika fungsi hash h untuk input x menghasilkan nilai hash h (x), maka akan sulit untuk mencari nilai input lain y sehingga h (y) = h (x).

    • Properti fungsi hash ini melindungi dari penyerang yang memiliki nilai input dan hashnya, dan ingin mengganti nilai yang berbeda sebagai nilai yang sah sebagai pengganti nilai input asli.

  • Collision Resistance

    • Properti ini berarti sulit untuk menemukan dua input berbeda dengan panjang berapa pun yang menghasilkan hash yang sama. Properti ini juga disebut sebagai fungsi hash bebas benturan.

    • Dengan kata lain, untuk fungsi hash h, sulit untuk menemukan dua input berbeda x dan y sehingga h (x) = h (y).

    • Karena, fungsi hash adalah fungsi kompresi dengan panjang hash tetap, tidak mungkin fungsi hash tidak mengalami benturan. Sifat bebas tabrakan ini hanya memastikan bahwa tabrakan ini sulit ditemukan.

    • Properti ini mempersulit penyerang untuk menemukan dua nilai masukan dengan hash yang sama.

    • Juga, jika fungsi hash tahan benturan then it is second pre-image resistant.

Desain Algoritma Hashing

Inti dari hashing adalah fungsi matematika yang beroperasi pada dua blok data berukuran tetap untuk membuat kode hash. Fungsi hash ini merupakan bagian dari algoritma hashing.

Ukuran setiap blok data bervariasi tergantung pada algoritmanya. Biasanya ukuran blok mulai dari 128 bit hingga 512 bit. Ilustrasi berikut menunjukkan fungsi hash -

Algoritme hash melibatkan putaran fungsi hash di atas seperti block cipher. Setiap babak mengambil masukan dengan ukuran tetap, biasanya kombinasi blok pesan terbaru dan keluaran babak terakhir.

Proses ini diulangi sebanyak putaran yang diperlukan untuk mencirikan seluruh pesan. Skema algoritma hashing digambarkan dalam ilustrasi berikut -

Karena, nilai hash dari blok pesan pertama menjadi input untuk operasi hash kedua, outputnya mengubah hasil operasi ketiga, dan seterusnya. Efek ini dikenal sebagaiavalanche efek hashing.

Efek avalanche menghasilkan nilai hash yang sangat berbeda untuk dua pesan yang berbeda bahkan dengan satu bit data.

Pahami perbedaan antara fungsi hash dan algoritma dengan benar. Fungsi hash menghasilkan kode hash dengan beroperasi pada dua blok data biner dengan panjang tetap.

Algoritma hash adalah proses untuk menggunakan fungsi hash, menentukan bagaimana pesan akan dipecah dan bagaimana hasil dari blok pesan sebelumnya dirangkai bersama.

Fungsi Hash Populer

Mari kita lihat secara singkat beberapa fungsi hash yang populer -

Message Digest (MD)

MD5 adalah fungsi hash yang paling populer dan banyak digunakan selama beberapa tahun.

  • Keluarga MD terdiri dari fungsi hash MD2, MD4, MD5 dan MD6. Ini diadopsi sebagai Standar Internet RFC 1321. Ini adalah fungsi hash 128-bit.

  • Intisari MD5 telah banyak digunakan di dunia perangkat lunak untuk memberikan jaminan tentang integritas file yang ditransfer. Misalnya, server file sering menyediakan checksum MD5 yang telah dihitung sebelumnya untuk file, sehingga pengguna dapat membandingkan checksum dari file yang diunduh dengannya.

  • Pada tahun 2004, tabrakan ditemukan di MD5. Serangan analitik dilaporkan berhasil hanya dalam satu jam dengan menggunakan cluster komputer. Serangan tabrakan ini mengakibatkan MD5 dikompromikan dan karenanya tidak lagi direkomendasikan untuk digunakan.

Secure Hash Function (SHA)

Keluarga SHA terdiri dari empat algoritma SHA; SHA-0, SHA-1, SHA-2, dan SHA-3. Padahal dari satu keluarga, ada yang secara struktural berbeda.

  • Versi aslinya adalah SHA-0, sebuah fungsi hash 160-bit, diterbitkan oleh National Institute of Standards and Technology (NIST) pada tahun 1993. Ia memiliki sedikit kelemahan dan tidak menjadi sangat populer. Kemudian pada tahun 1995, SHA-1 dirancang untuk memperbaiki dugaan kelemahan SHA-0.

  • SHA-1 adalah fungsi hash SHA yang paling banyak digunakan. Ini digunakan di beberapa aplikasi dan protokol yang banyak digunakan termasuk keamanan Secure Socket Layer (SSL).

  • Pada tahun 2005, sebuah metode ditemukan untuk mengungkap tabrakan untuk SHA-1 dalam kerangka waktu praktis yang membuat kemampuan kerja jangka panjang SHA-1 diragukan.

  • Keluarga SHA-2 memiliki empat varian SHA lebih lanjut, SHA-224, SHA-256, SHA-384, dan SHA-512 tergantung pada jumlah bit dalam nilai hashnya. Belum ada serangan yang berhasil dilaporkan pada fungsi hash SHA-2.

  • Padahal SHA-2 adalah fungsi hash yang kuat. Meski berbeda secara signifikan, desain dasarnya masih mengikuti desain SHA-1. Oleh karena itu, NIST meminta desain fungsi hash kompetitif yang baru.

  • Pada bulan Oktober 2012, NIST memilih algoritma Keccak sebagai standar SHA-3 yang baru. Keccak menawarkan banyak keuntungan, seperti performa yang efisien dan ketahanan yang baik terhadap serangan.

RIPEMD

RIPEMD adalah singkatan dari RACE Integrity Primitives Evaluation Message Digest. Kumpulan fungsi hash ini dirancang oleh komunitas riset terbuka dan umumnya dikenal sebagai keluarga fungsi hash Eropa.

  • Set termasuk RIPEMD, RIPEMD-128, dan RIPEMD-160. Ada juga versi 256, dan 320-bit dari algoritma ini.

  • RIPEMD asli (128 bit) didasarkan pada prinsip desain yang digunakan di MD4 dan terbukti memberikan keamanan yang meragukan. RIPEMD versi 128-bit hadir sebagai pengganti perbaikan cepat untuk mengatasi kerentanan pada RIPEMD asli.

  • RIPEMD-160 adalah versi yang ditingkatkan dan versi yang paling banyak digunakan di keluarga. Versi 256 dan 320-bit mengurangi kemungkinan tabrakan yang tidak disengaja, tetapi tidak memiliki tingkat keamanan yang lebih tinggi dibandingkan dengan RIPEMD-128 dan RIPEMD-160 masing-masing.

Pusaran air

Ini adalah fungsi hash 512-bit.

  • Ini berasal dari versi modifikasi dari Advanced Encryption Standard (AES). Salah satu desainernya adalah Vincent Rijmen, salah satu pencipta AES.

  • Tiga versi Whirlpool telah dirilis; yaitu WHIRLPOOL-0, WHIRLPOOL-T, dan WHIRLPOOL.

Aplikasi Fungsi Hash

Ada dua aplikasi langsung dari fungsi hash berdasarkan properti kriptografinya.

Penyimpanan Sandi

Fungsi hash memberikan perlindungan pada penyimpanan kata sandi.

  • Alih-alih menyimpan kata sandi dengan jelas, sebagian besar semua proses masuk menyimpan nilai hash kata sandi di file.

  • File Password terdiri dari tabel pasangan yang berbentuk (user id, h (P)).

  • Proses logon digambarkan dalam ilustrasi berikut -

  • Seorang penyusup hanya dapat melihat hash kata sandi, bahkan jika dia mengakses kata sandinya. Dia tidak bisa logon menggunakan hash dan dia juga tidak bisa mendapatkan kata sandi dari nilai hash karena fungsi hash memiliki properti resistansi gambar sebelumnya.

Pemeriksaan Integritas Data

Pemeriksaan integritas data adalah aplikasi paling umum dari fungsi hash. Ini digunakan untuk menghasilkan checksum pada file data. Aplikasi ini memberikan jaminan kepada pengguna tentang kebenaran data.

Prosesnya digambarkan dalam ilustrasi berikut -

Pemeriksaan integritas membantu pengguna untuk mendeteksi setiap perubahan yang dilakukan pada file asli. Namun, tidak memberikan jaminan tentang orisinalitas. Penyerang, alih-alih mengubah data file, dapat mengubah seluruh file dan menghitung semua hash baru dan mengirim ke penerima. Aplikasi pemeriksaan integritas ini berguna hanya jika pengguna yakin tentang keaslian file.