Algoritma MD2 dikembngkan oleh Ron Rivest pada tahun 1989. Algoritma ini dioptimasi menggunakan komputer 8-bit. MD2 sebenarnya dispesifikasi dalam RFC 1319. Algoritma MD2 menghasilkan nilai hash yang berukuran 128-bit dan menerima masukan pesan dengan panjang yang tidak ditentukan.
Pesan yang akan dijadikan masukan untuk fungsi hash ini akan terlebih dahulu ditambah untuk kalkulasi sebenarnya. Misalkan sejumlah b-byte pesan sebagai masukan dan diharapkan untuk dapat mendapatkan intisari pesan dari pesan tersebut.
Dalam hal ini b merupakan suatu bilangan bulat sembarang yang bernilai positif, bisa juga nol, dan besarnya sembarang. Dinyatakan bahwa byte dari pesan ditulis dalam bentuk:
m_0 m_1…m_{b-1}
Ada tahap proses untuk menghasilkan intisari pesan untuk algoritma MD2, di antaranya adalah :
1. Input Padding Byte: Pesan akan ditambahkan melalui proses penambahan sehingga panjang pesan tersebut kongruen dengan 0 modulo 16. Pesan akan diperluas hingga panjangnya merupakan kelipatan 16 byte. Proses penambahan ini selalu dilakukan meskipun panjang pesan awal sebelum dilakukan penambahan sudah kongruen dengan 0 modulo 16. Penambahan dilakukan mengikuti “i” byte. Nilai “i” akan ditambahkan pada pesan sehingga panjang pesan kongruen dengan 0 modulo 16. Oleh sebab itu ukuran tambahan byte antara 1 byte sampai 16 byte. Pada tahap ini pesan hasil penambahan memiliki panjang kelipatanba16 byte. Pesan dibagi menjadi M[0...N-1] dimana N merupakan kelipatan 16.
2. Checksum Input: Sebanyak 16 byte checksum dari pesan akan ditambahkan pada hasil tahap sebelumnya. Pada langkah ini digunakan sebuah 256-byte yang dibangkitkan secara acak yang dibuat dengan nilai digit dari pi. JikaS[i] menotasikan elemen ke-i, selanjutnya 16-byte checksum tersebut AKAN dimasukan ke dalam pesan.
3. Inisialisasi Penyangga MD: Sebuah penyangga X 48-byte digunakan untuk menghasilkan intisari pesan. Nilai peyangga di inisialisasi dengan nol.
4. Proses pesan dalam blok 16-byte: Langkah ini menggunakan angka hasil pembangkitan sebanyak 256-byte yang sama dihasilkan pada proses checksum input.
Tidak ada komentar:
Posting Komentar