Download - SKEMA PROSES MD5

Transcript

MAKALAH KEAMANAN SISTEM INFORMASI SKEMA PROSES MD5

Nama : Muhammad Rachman Nurhakim TI - 3B

UNIVERSITAS NASIONAL PASIM BANDUNG 2012

Daftar Isi

Daftar Isi ............................................................................................................. 1. Pendahuluan .................................................................................................... 2. Latar belakang MD5 ........................................................................................ 3. Algoritma MD5 ................................................................................................. 3.1. Penambahan Panjang Bit ...................................................................... 3.2. Penambahan Panjang Pesan Total ....................................................... 3.3. Inisialisasi Buffer MD .............................................................................. 3.4. Pemrosesan Pesan dalam blok 16-word ................................................. 3.5. Output .................................................................................................... 7. Referensi ........................................................................................................

1 2 3 4 4 4 4 5 8 8

1

1. PendahuluanMD2, MD4, dan MD5 termasuk ke dalam algoritma message-digest, atau kadang juga dikenal dengan hash function. Definisi dari hash function, diambil dari salah satu buletin RSA [11] adalah sebagai berikut, suatu hash function, atau lebih tepatnya cryptographic hash function, atau juga algoritma message digest, beroperasi pada sebuah string input dengan panjang tidak tentu, dan menghasilkan string output dengan panjang yang sudah ditentukan. Output ini biasa dikenal dengan sebuatn hash value, atau message digest. Secara umum, algoritma dari sebuah hash function adalah sebagai berikut :

gambar 1. Skema umum suatu hash function

Hash function memiliki struktur berupa pengulangan fungsi yang sama, yang biasa disebut fungsi kompresi. Pada awal algoritma, digunakan sebuah nilai tertentu yang disebut initial value. Fungsi kompresi ini kemudian digunakan untuk mengupdate nilai ini dengan cara tertentu berdasarkan pesan yang sedang dienkripsi. Proses ini diulangterus menerus, sampai seluruh bagian dari pesan digunakan. Hasil akhir dari nilai ini kemudian menjadi nilai akhir, atau yang disebut hash value. MD 4 banyak digunakan sebagai dasar dari banyak desain fungsi enkripsi, termasuk MD5, SHA-1, dan RIPEMD. MD 5 merupakan salah satu yang banyak digunakan saat ini. Salah satu implementasinya adalah pada bahasa pemrograman PHP. Dalam PHP sendiri terdapat fungsi built-in untuk enkripsi MD5. Pada PHP, fungsi ini seringkali digunakan untuk pengamanan password pada halaman website yang memerlukan otentifikasi pengguna untuk aksesnya.

2

2. Latar belakang MD5Algoritma MD5 disusun oleh Profesor Ronald L. Rivest, dari MIT. Pada RFC 1321, Prof. Ron Rivest memberikan penjelasan awal mengenai MD5, yaitu suatu algoritma yang inputnya berupa sebuah pesan yang panjangnya tidak tertentu, dan menghasilkan keluaran sebuah message digest dari pesan inputnya dengan panjang tepat 128 bit. Diperkirakan (conjectured) tidak mungkin untuk menghasilkan dua pesan dengan message digest yang sama. Algoritma MD5 dimaksudkan untuk aplikasi tanda tangan digital (digital signature), dimana sebuah pesan yang besar harus dipadatkan / di compress dengan cara yang aman sebelum di enkripsi dengan private key dalam sebuah sistem key seperti RSA1 [1]. Pada intinya, MD5 adalah sebuah cara untuk melakukan verifikasi integritas data, dan dapat lebih diandalkan daripada metode yang lebih umum digunakan, seperti checksum. RFC 1321 dikeluarkan pada bulan April 1992, namun MD5 sendiri sebenarnya sudah mulai dikenal pada tahun 1991. MD5 sebenarnya merupakan perbaikan dari pendahulunya, yaitu MD4. Terdapat 6 perbedaan utama antara MD5 dan MD4 [5], yaitu : Penambahan tahap ke-empat

Fungsi pada tahap ke-dua diubah dari XY v XZ v YZ menjadi XZ v YZ Urutan pembacaan input pada tahap ke-dua dan ke-tiga diubah Jumlah pergeseran bit pada setiap tahap tidak ada yang sama Setiap tahap memiliki penambahan konstanta yang unik Untuk mendapatkan hasil akhir, output dari setiap tahap ditambahkan ke tahap setelahnya Penjelasan lebih khusus mengenai tahapan yang dilakukan pada enkripsi menggunakan

MD5 dijelaskan pada bab berikutnya, yaitu mengenai algoritma MD5. Empat perubahan pertama merupakan solusi yang ditawarkan berdasarkan serangan yang terjadi pada metode enkripsi MD4, sedangkan dua perubahan yang terakhir merupakan suatu cara untuk meningkatkan tingkat keamanan enkripsi MD5. Perubahan yang terakhir memiliki efek yang cukup serius [5], penambahan hasil dari tahap sebelumnya memungkinkan terjadinya collision untuk fungsi kompresi MD5. Dalam makalahnya, den Boer dan Bosselaers [5] memberikan penjelasan mengenai hal ini. Namun serangan ini bukanlah terjadi pada keseluruhan fungsi MD5, oleh karena itu, kadangkala serangan semacam ini disebut pseudo-collision.

3

3. Algoritma MD5Algoritma yang diberikan disini diambil dari RFC 1321, yang disusun oleh Ron Rivest. Dimisalkan kita memiliki pesan sepanjang b-bit, dan akan dicari message digestnya. Untuk menghitung message digest dari sebuah pesan, pada MD5 dilakukan lima langkah sebagai berikut : 3.1.Penambahan Panjang Bit Pesan diperpanjang sampai sebesar 448 bit, dengan modulo 512. artinya jika panjang pesan telah melebihi 448 bit ini, maka perpanjangan pesan akan dilakukan sampai sebesar 512 + 448 bit, dan begitu seterusnya. Penambahan panjang pesan ini dilakukan dengan cara sebagai berikut, sebuah bit 1 ditambahkan ke dalam pesan. Kemudian bit 0 ditambahkan sampai panjang pesan menjadi 448 bit. Tujuan dari penambahan pesan ini adalah membuat panjang pesan menjadi (kelipatan) 512 bit, dikurangi 64 bit. Kekurangan 64 bit ini akan diatasi pada tahap kedua. 3.2.Penambahan Panjang Pesan Total Representasi sebesar 64 bit dari b (panjang pesan awal) ditambahkan ke dalam pesan. Jika representasi b ini ternyata lebih besar dari 64 bit, maka yang akan diambil hanyalah 64 bit awal (low-order) saja. Panjang pesan total sampai pada tahap ke-dua ini sebesar (kelipatan dari) 512 bit. Tujuan dari penambahan ukuran pesan sampai sebesar kelipatan dari 512 bit ini adalah agar pesan memiliki panjang tepat kelipatan dari 16 word (satu word memiliki ukuran 32 bit). Pengolahan pesan pada tahap keempat nanti akan dilakukan untuk setiap blok sebesar 16 word. 3.3. Inisialisasi Buffer MD Pada tahap ini digunakan 4 buah register sebagai buffer untuk perhitungan pesan (A, B, C, dan D). Setiap buffer ini memiliki ukuran 32 bit. Ke empat register ini diinisialisasi dengan nilai-nilai berikut (LSB di sebelah kiri):

4

3.4.Pemrosesan Pesan dalam blok 16-word Pada awal tahap ini didefinisikan 4 buah fungsi dengan input 3 buah word 32-bit, dan menghasilkan output satu buah word 32-bit. Fungsi-fungsi ini dideskripsikan sebagai berikut :

Pada proses enkripsi pesan dengan MD5 ini juga diperlukan sebuah array T[i] yang berisi 64 elemen. Seluruh elemen ini didapat dengan perhitungan tertentu menggunakan fungsi sinus. Seluruh nilai dari tiap elemen array ini diberikan dalam RFC 1321. Pengolahan pesan dilakukan untuk setiap potongan blok dari pesan dengan ukuran tepat 16 word. Dengan demikian pada langkah awal harus dilakukan looping untuk setiap potongan pesan ini. Langkah-langkah yang harus dilakukan dijelaskan dalam tahapan berikut : 1. Loop untuk setiap 16 word 2. Definisikan suatu array x[i] yang berisi setiap word dari pesan (total ukuran array adalah 16 elemen). 3. Definisikan variabel AA, BB, CC, dan DD, yang berisi nilai A, B, C, dan D pada tahap tiga. 4. Tahap ini dibagi menjadi 4 bagian, biasa disebut tahap FF, GG, HH, dan II.

Bagian 1, FF : Andaikan[ abcd k s i ] a = b + ( ( a + F ( b, c, d ) + X [ k ] + T [ i ] )


Top Related