-Komapen.com -
Satu ons praktek lebih berharga daripada satu ton teori.
-Mahatma Gandhi
MD5 ( Message-Digest alogrithm 5 )
MD5 (Message-Digest Algorithm 5) adalah sebuah password yang menggunakan hash 128 bit ini melindungi user dalam dunia maya yang berhubungan dengan fasilitas internet.
Sejarah singkat MD5 di mulai pada tahun 1991 yang didesain oleh Prof. Ronald Rivest dari universitas di Amerika Serikat yaitu MIT, Prof. Ronald Rivest mendesain MD5 karena telah ditemukan kelemahan pada MD4 yang ditemukan Hans Dobbertin. Pada Tahun 1996 Hans Dobbertin menemukan sebuah kerusakan/celah pada fungsi kompresi MD5, namun hal ini bukanlah serangan terhadap hash MD5 sepenuhnya, sehingga dia mengumumkan untuk para pengguna kriptografi menganjurkan supaya mengganti dengan WHIRLPOOL, SHA-1, atau RIPEMD-160.
Namun lambat laun MD5 sudah tidak bisa diandalkan lagi karena hash hasil encrypt MD5 mulai menampakkan kerusakannya dan sudah diketahui rahasia algoritma pada MD5, hal tersebut ditemukan kerusakannya pada tanggal 17 Agustus 2004 oleh Xiaoyun Wang, Dengguo Feng, Xuejia Lay dan Hongbo Yu, kalau dilihat dari namanya mereka berasal dari negri tirai bambu China, sekedar info saja bahwa serangan yang mereka lakukan untuk bisa men-decrypt hash MD5 ke plain text hanya membutuhkan waktu satu jam saja, dengan menggunakan IBM P690 cluster.
Algoritma Dan Cara Kerja
Setiap pesan yang akan dienkripsi, terlebih dahulu dicari berapa banyak bit yang terdapat pada pesan. Kita anggap sebanyak b bit. Di sini b adalah bit non negatif integer, b bisa saja nol dan tidak harus selalu kelipatan delapan.
Langkah-langkah pembuatan message digest secara garis besar:
1. Penambahan bit-bit pengganjal (padding bits).
2. Penambahan nilai panjang pesan semula.
3. Inisialisasi penyangga (buffer) MD.
4. Pengolahan pesan dalam blok berukuran 512 bit.
Penjelasan
- Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512.
- Jika panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512.
- Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0.
- Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula.
- Jika panjang pesan > 264 maka yang diambil adalah panjangnya dalam modulo 264. Dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit yang ditambahkan menyatakan Kmodulo 264.
- Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512 bit.
- MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total panjangpenyangga adalah 4 ´ 32 = 128 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir.
- Keempat penyangga ini diberi nama A, B, C, dan D. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut.
B = 89ABCDEF
C = FEDCBA98
D = 76543210
- Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit (Y0 sampai YL – 1).
- Setiap blok 512-bit diproses bersama dengan penyangga MD menjadi keluaran 128-bit, dan ini disebut proses HMD5.
Pada MD-5 terdapat empat buah word 32 bit register yang berguna untuk menginisialisasi message digest pertama kali. Register-register ini di inisialisasikan dengan bilangan hexadesimal.
word A: 01 23 45 67
word B: 89 AB CD EF
word C: FE DC BA 98
word D: 76 54 32 10
Register-register ini biasa disebut dengan nama Chain variabelatau variabel rantai.
Pada MD-5 juga terdapat 4 (empat) buah fungsi nonlinear yang masing-masing digunakan pada tiap operasinya (satu fungsi untuk satu blok), yaitu:
F(X,Y,Z) = (X Ù Y) Ú ((Ø X) Ù Z)
G(X,Y,Z) = (X Ù Z) Ú (Y Ù (Ø Z))
H(X,Y,Z) = X Å Y Å Z
I (X,Y,Z) = Y Å (X Ú (Ø Z))
(Å untuk XOR, Ù untuk AND, Ú untuk OR dan Ø untuk NOT).
FF(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + F(b,c,d) + Mj + ti)
GG(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + G(b,c,d) + Mj + ti)
HH(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + H(b,c,d) + Mj + ti)
II(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + I(b,c,d) + Mj + ti)
→ Message Digest Algorithm 5 (MD5) adalah algoritma hash kriptografi yang dapat digunakan untuk membuat nilai string 128-bit dari string panjang arbitrer. Meskipun ada ketidakamanan yang diidentifikasi dengan MD5, itu masih banyak digunakan. MD5 paling sering digunakan untuk memverifikasi integritas file
2. Berapa panjang pesan yang dihasilkan oleh algoritma MD5?
→ Algoritme pesan MD5 memproses data dalam blok 512-bit, dipecah menjadi 16 kata yang masing-masing terdiri dari 32 bit. Output dari MD5 adalah nilai intisari pesan 128-bit
3. Manakah yang merupakan algoritme intisari pesan?
→ Algoritme intisari pesan atau fungsi hash, adalah prosedur yang memetakan data masukan dengan panjang sembarang ke keluaran dengan panjang tetap. Output sering dikenal sebagai nilai hash, kode hash, jumlah hash, checksum, intisari pesan, sidik jari digital atau sekadar hash
→ Menggunakan md5 untuk kata sandi adalah ide yang buruk. Bukan karena kelemahan kriptografi MD5, tapi karena cepat. Ini berarti penyerang dapat mencoba miliaran kata sandi kandidat per detik pada satu GPU. Yang harus Anda gunakan adalah konstruksi hash yang sengaja lambat, seperti scrypt, bcrypt dan PBKDF2.
→ Meskipun MD5 pada awalnya dirancang untuk digunakan sebagai fungsi hash kriptografik, ternyata MD5 mengalami kerentanan yang luas. ... Itu masih dapat digunakan sebagai checksum untuk memverifikasi integritas data, tetapi hanya untuk korupsi yang tidak disengaja.
→ Hashing adalah praktik menggunakan algoritme untuk memetakan data dari berbagai ukuran ke panjang tetap. Ini disebut nilai hash (atau terkadang kode hash atau jumlah hash atau bahkan ringkasan hash jika Anda merasa suka). Sedangkan enkripsi adalah fungsi dua arah, hashing adalah fungsi satu arah
→ Fungsi hash tidak dapat dibalik secara umum. ... MD5 adalah hash 128-bit, sehingga memetakan string apa pun, berapa pun panjangnya, menjadi 128 bit. Jelas jika Anda menjalankan semua string dengan panjang, katakanlah, 129 bit, beberapa di antaranya harus memiliki nilai yang sama
→ MD5 akan cukup baik jika Anda tidak memiliki musuh. ... Karena mengetahui apakah kelemahan MD5 yang diketahui berlaku untuk konteks tertentu adalah masalah halus, disarankan untuk tidak menggunakan MD5. Menggunakan fungsi hash tahan benturan (SHA-256 atau SHA-512) adalah jawaban yang aman
Silahkan Berkomentar Dengan Sopan :)