Apa itu MD5?

Algoritma hashing MD5 (message-digest algorithm) adalah fungsi kriptografi satu arah yang menerima pesan dengan panjang berapa pun sebagai input dan menghasilkan nilai digest dengan panjang tetap sebagai output, yang digunakan untuk mengautentikasi pesan asli.

Fungsi hash MD5 awalnya dirancang untuk digunakan sebagai algoritma hash kriptografi yang aman untuk mengautentikasi tanda tangan digital. Namun, MD5 telah ditinggalkan untuk penggunaan selain sebagai checksum nonkriptografis untuk memverifikasi integritas data dan mendeteksi kerusakan data yang tidak disengaja.

Untuk apa MD5 digunakan?

Meskipun awalnya dirancang sebagai algoritma kode autentikasi pesan kriptografi untuk digunakan di internet, hashing MD5 tidak lagi dianggap dapat diandalkan sebagai checksum kriptografi karena para pakar keamanan telah menunjukkan teknik yang mampu dengan mudah menghasilkan tabrakan MD5 pada komputer komersial yang tersedia di pasaran. Tabrakan enkripsi berarti dua file memiliki hash yang sama. Fungsi hash digunakan untuk keamanan pesan, keamanan kata sandi, forensik komputer, dan mata uang kripto.

Ronald Rivest, pendiri RSA Data Security LLC dan profesor di Massachusetts Institute of Technology, merancang MD5 pada tahun 1991 sebagai peningkatan terhadap algoritma message-digest sebelumnya, MD4. Dalam deskripsinya di Internet Engineering Task Force (IETF) Request for Comments (RFC) 1321, “The MD5 Message-Digest Algorithm,” ia menulis:

Algoritma ini menerima sebagai input pesan dengan panjang sewenang-wenang dan menghasilkan sebagai output ‘sidik jari’ atau ‘message digest’ sepanjang 128-bit dari input tersebut. Diduga bahwa secara komputasional tidak mungkin untuk menghasilkan dua pesan dengan message digest yang sama, atau menghasilkan pesan apa pun yang memiliki message digest target yang telah ditentukan sebelumnya. Algoritma MD5 dimaksudkan untuk aplikasi tanda tangan digital, di mana file besar harus ‘dikompresi’ secara aman sebelum dienkripsi dengan kunci pribadi (rahasia) dalam sistem kriptografi kunci publik seperti RSA.

IETF menyarankan bahwa hashing MD5 masih dapat digunakan untuk perlindungan integritas, dengan mencatat: “Di mana checksum MD5 digunakan dalam protokol semata-mata untuk melindungi dari kesalahan, checksum MD5 masih merupakan penggunaan yang dapat diterima.” Namun, mereka menambahkan bahwa “setiap aplikasi dan protokol yang menggunakan MD5 untuk tujuan apa pun harus secara jelas menyatakan layanan keamanan yang diharapkan dari penggunaan MD5 mereka.”

Karakteristik Algoritma Message-Digest

Message digest, juga dikenal sebagai fungsi hash, adalah fungsi satu arah; mereka menerima pesan dengan ukuran berapa pun sebagai input dan menghasilkan output berupa message digest dengan panjang tetap.

MD5 adalah algoritma message-digest ketiga yang dibuat oleh Rivest. MD2, MD4, dan MD5 memiliki struktur yang mirip, tetapi MD2 dioptimalkan untuk mesin 8-bit, dibandingkan dengan dua algoritma berikutnya yang dirancang untuk mesin 32-bit. Algoritma MD5 merupakan perpanjangan dari MD4, yang dalam tinjauan kritis dianggap cepat tetapi berpotensi tidak aman. Sebagai perbandingan, MD5 tidak secepat algoritma MD4, tetapi menawarkan jaminan keamanan data yang lebih tinggi.

Bagaimana MD5 Bekerja?

Algoritma hashing message-digest MD5 memproses data dalam string 512-bit, yang dipecah menjadi 16 kata yang masing-masing terdiri dari 32 bit. Output dari MD5 adalah nilai message-digest sepanjang 128-bit.

Perhitungan nilai digest MD5 dilakukan dalam beberapa tahap yang memproses setiap blok data 512-bit bersama dengan nilai yang dihitung pada tahap sebelumnya. Tahap pertama dimulai dengan nilai message-digest yang diinisialisasi menggunakan nilai numerik heksadesimal berturut-turut. Setiap tahap mencakup empat pass message-digest, yang memanipulasi nilai dalam blok data saat ini dan nilai yang telah diproses dari blok sebelumnya. Nilai akhir yang dihitung dari blok terakhir menjadi digest MD5 untuk blok tersebut.

Apakah MD5 Aman?

Tujuan dari fungsi message-digest adalah menghasilkan digest yang tampak acak. Agar dianggap aman secara kriptografi, fungsi hash harus memenuhi dua persyaratan:

  1. Tidak mungkin bagi penyerang untuk menghasilkan pesan yang cocok dengan nilai hash tertentu.
  2. Tidak mungkin bagi penyerang untuk membuat dua pesan yang menghasilkan nilai hash yang sama.

Hash MD5 tidak lagi dianggap sebagai metode yang aman secara kriptografi dan sebaiknya tidak digunakan untuk autentikasi kriptografi, menurut IETF.

Pada tahun 2011, IETF menerbitkan RFC 6151, “Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms,” yang mengutip sejumlah serangan terbaru terhadap hash MD5. Salah satu serangan menghasilkan tabrakan hash dalam waktu kurang dari satu menit pada notebook standar, dan yang lain dapat menghasilkan tabrakan dalam waktu hanya 10 detik pada sistem Pentium 4 2,6 gigahertz. Akibatnya, IETF menyarankan bahwa desain protokol baru sebaiknya tidak menggunakan MD5 sama sekali dan bahwa penelitian terbaru mengenai serangan terhadap algoritma ini “telah memberikan alasan yang cukup untuk menghilangkan penggunaan MD5 dalam aplikasi di mana ketahanan terhadap tabrakan diperlukan seperti tanda tangan digital.”

Alternatif untuk MD5

Masalah utama dengan MD5 adalah potensi tabrakan pesan ketika kode hash pesan secara tidak sengaja diduplikasi. String kode hash MD5 juga terbatas pada 128 bit, yang membuatnya lebih mudah ditembus dibandingkan dengan algoritma hash lain yang dikembangkan setelahnya.

Alternatif kode hash untuk MD5 meliputi:

Secure Hash Algorithm 1 (SHA-1). Dikembangkan oleh pemerintah AS pada tahun 1990-an, SHA-1 menggunakan teknik yang mirip dengan MD5 dalam desain algoritma message-digest. Namun, SHA-1 menghasilkan nilai hash 160-bit yang lebih aman dibandingkan panjang hash 128-bit MD5. Meskipun demikian, SHA-1 memiliki beberapa kelemahan dan tidak terbukti sebagai metodologi algoritmik terbaik untuk enkripsi. Kekhawatiran keamanan mulai muncul, yang mendorong perusahaan seperti Microsoft untuk menghentikan dukungan SHA-1 dalam perangkat lunaknya.

Keluarga kode hash SHA-2. Penerus SHA-1 yang lebih aman dan banyak digunakan saat ini adalah keluarga kode hash SHA-2. Kode hash SHA-2 dibuat oleh Badan Keamanan Nasional AS pada tahun 2001. Kode hash ini merupakan perbedaan signifikan dari SHA-1 karena algoritma message-digest SHA-2 lebih panjang dan lebih sulit untuk ditembus. Keluarga algoritma SHA-2 menghasilkan nilai hash dengan panjang 224, 256, 384, dan 512 bit. Mereka dikenal dengan nama berdasarkan panjang message-digest mereka — misalnya, SHA-224 dan SHA-256.

Kode cyclic redundancy check (CRC). Kode CRC sering disarankan sebagai pengganti potensial untuk MD5 karena MD5 dan CRC sama-sama melakukan fungsi hashing dan menghasilkan checksum. Namun, kesamaannya hanya sampai di situ. Kode CRC 32-bit digunakan untuk mendeteksi kesalahan selama transmisi data sehingga data yang rusak atau hilang dapat diidentifikasi. Sementara itu, MD5 adalah algoritma hash yang aman dan fungsi hash kriptografi yang dapat mendeteksi beberapa kerusakan data tetapi terutama dimaksudkan untuk enkripsi data yang aman selama transmisi serta verifikasi sertifikat digital.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *