MD5 adalah salah satu
dari serangkaian algortima message digest yang didesain oleh Profesor Ronald
Rivest dari MIT (Rivest, 1994).
Saat kerja analitik menunjukkan bahwa pendahulu MD5 yaitu MD4 mulai tidak aman,
MD5 kemudian didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4
ditemukan oleh Hans Dobbertin).
Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash
kriptografik yang digunakan secara luas dengan hash value 128-bit.
Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam
pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian
integritas sebuah file.
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 K modulo 264.
- Setelah
ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512 bit.
2.
3. Inisialisai Penyangga MD
3. * 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.
4. * Keempat penyangga ini diberi nama A, B,
C, dan D. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam
notasi HEX) sebagai berikut:
5.
A = 01234567
6.
B = 89ABCDEF
7.
C = FEDCBA98
8.
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 variabel atau 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) <<<>
Posted in:
0 comments:
Post a Comment