Anda di halaman 1dari 4

MD5..!!!

Yap..!! dimulai dr sejarahnya ni.. MD5,hsl desain dr Ronal Rivest pd thn 1991,adlh suatu fungsi hash kriptografik dgn hash value 128-bit. Ukuran ini memperkecil kemungkinan terjadinya serangan BRUTE FORCE ATTACK..!! Umumnyaa.. MD5 digunakan untk pengujian integritas suatu file. Atau dgn kt lain, MD5 digunakan sbg jaminan "Apakah file yg tlh di download tdk mengalami perubahan...??" Nah ini ni ilustrasi operasi MD5 Ok, Lets check it out..!! ^.~

Terdiri dr 64 operasi yg dikelompokkan dlm 4 putaran dr 16 operasi. F : Fungsi nonlinear (1 fungsi digunakan dlm tiap2 putaran). Mi : Penunjuk blok 32-bit dr masukkan pesan. Ki : Penunjuk konstanta 32-bit (berbeda untuk tiap2 operasi). <<< : menunjukkan perputaran bit kiri oleh s (dimana s bervariasi untuk tiap-tiap operasi). : menunjukkan tambahan modulo 232. Slanjutnya mariiikita menuju ke ALGORITMA scr penjelasannya =) MD5 memproses variasi panjang pesan kedalam kluaran 128-bit dgn panjang yg tetap loh.. Pesan masukan dipecah menjadi 2 gumpalan blok 512-bit (sblmnya psn tsb ditata shg psn dpat dibagi 512). Nah..penataannya adl sbb : Bit tunggal ptama (1), diletakkan pd akhir pedan. Proses ini diikuti oleh srangkaian nol yg diperlukan agar 64-bit < panjang pesan < kelipatan 512. Bit-bit sisa diisi dg 64-bit integer (untuk menunjukkan panjang pesan asli).

Sbuah pesan slalu ditata stidaknya dg 1-bit tunggal, spt jk panjang pesan adl klipatan 512 dikurangi 64-bit untuk informasi panjang (panjang mod (512) = 448), sbuah blok baru dari 512-bit ditambah dg 1-bit diikuti dg 447 bit-bit nol diikuti panjang 64-bit. Algoritma pd MD5 yg utama beroperasi pd komndisi 128-bit ini, dibagi menjadi empat word 32-bit, menunjukkan A, B, C, dan D. Operasi tersebut di inisialisasikan dan dijaga agar tetap konstan. Algoritma utama kemudian beroprasi pd msg-msg blok pesan 512-bit, msg-msg blok itu mlakukan pengubahan terhadap kondisi. Pemrosesan pd blok pesannya sendiri terdiriats 4 tahap batasan putaran diamana tiap putaran membuat 16 operasi serupa berdasar pada fungsi nonlinear F, tambahan modular, dan rotasi ke kiri. Pada gambar 1, diilustrasikan satu operasi dlm putaran. Adapula 4 macam kemungkinana pada F yg berbeda beda tiap putarannya. 4 macam kemungkinan itu adalah :

Dimana

menunjukkan operasi logika XOR, AND, OR, dan NOT.

Slanjutnya yuuk... kita coba liat Pseudocode dr MD5 ini.. (,) Ups.. !! sbelumnya ni, sbg catatan bahwa seluruh variabel tidak pd 32-bit dan wrap modulo 2^32 saat mlakukan perhitungan yoo.... // Mendefinisikan r sbb : Var int [ 64 ] r, k r [ 0 .. 15 ] := { 7, 12, 17, r [ 16 .. 31 ] := { 5, 9, 14, 20 } r [ 32 .. 47 ] := { 4, 11, 16, r [ 48 .. 63 ] := { 6, 10, 15,

22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22 } 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23 } 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21 }

// Menggunakan bag fraksional biner dari integral sinus sbg konstanta : for i from 0 to 63 k [ i ] := floor (abs (sin ( i + 1 ) ) x 2 ^ 32 ) // Inisialisasi var int h0 var int h1 var int h2 var int h3 variabel : := 0 x 67452301 := 0 x EFCDAB89 := 0 x 98BADCFE := 0 x 10325476

// Pemrosesan awal : append 1 bit to message append 0 bits until message length in bits 228 ( mod 512 ) append bit length of message as 64 bi little endian integer to message // Pengolahan pesan pd kondisi gumpalan 512-bit : for each 512-bit chunk of message break chunk into sixteen 32-bit little-endian words w( i ), 0 i 15 // Inisialisasi nilai hash pd gumpalan ini : var int a := h0 var int b := h1 var int c := h2 var int d := h3 // Kalang utama : for i from 0 to 63 if 0 i 15 then f := ( b and c ) or (( not b ) and d ) g :=i else if 16 i 31 f := ( d and b ) or (( not d ) and c ) g := ( 5 x i + 1 ) mod 16 else if 32 i 47 f := b xor c xor d g := ( 3 x i + 5 ) mod 16 else if 48 i 63 f := c xor ( b or ( not d )) g:= ( 7 x i ) mod 16 temp d c b a := := := := := d c b ( ( a + f + k( i ) + w( g )) leftrotate r( i )) + b temp

// Tambahkan hash dr gumpalan sbg hsl : Ho := h0 + a H1 := h1 + b H2 := h2 + c H3 := h3 + d // variabel ini diwujudkan dlm little - endian var int digest := h0 append h1 append h2 append h3 Nah.. untuk meningkatkan efisiensi maka rumus inilah yg sering digunakan : ( 0 i 15 ) : f := d xor ( b and ( c xor d )) (16 i 31 ) : f := c xor ( d and ( b xor c ))

TAu KaH KaMU..???


MD5 yg dikenal sbg ringkasan pesan, ditampilkan dlm bilangan heksadesimal 32-digit. Perubahan kecil pd pesan akan menghasilkan hash yg benar-benar jauh berbeda..!! yuuk..liat contoh sbb : MD5 Tt : The quick brown fox jumps over the lazy dog Hash : 9e107d9d372bb6826bd81d3542a419d6 Nah.. coba kita ganti kata dog menjadi cog Hash : 1055d3e698d289f2af8663725127bd4b Yak... dpt terlihat kaan perbedaannya.. =)

Anda mungkin juga menyukai