Semua orang di dunia ini banyak sekali mengakses internet,terutama adalah media sosial.dan kebanyakan dari para pengguna media sosial ini menggunakan password yang berbagai model dari tanggal lahir,tempat tanggal lahir,nama pacar,nama teman dekat.tetapi banyak beredar di dunia maya adalah MD5. ya,MD5 ( Message-Digest alogrithm 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
a. Penjelasan Algoritma MD5
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.
b. Cara Kerja MD5
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.
1. Penambahan Bit-bit Pengganjal
- 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.
2. Penambahan Nilai Panjang Pesan
- 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.
3. Inisialisai Penyangga MD
* 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:
A = 01234567
B = 89ABCDEF
C = FEDCBA98
D = 76543210
4. Pengolahan Pesan dalam Blok Berukuran 512 bit.
* 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. Gambaran proses HMD5 diperlihatkan pada Gambar berikut ini.
c. Inisialisasi MD5
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.
d. Proses Pesan di Dalam Blok 16 word
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).
Pada Gambar 3.2 dapat dilihat satu buah operasi dari MD-5 dengan operasi yang dipakai sebagai contoh adalah FF(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + F(b,c,d) + Mj + ti)
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)
Comments
Post a Comment