md5

Upload: vie-ana

Post on 10-Jul-2015

88 views

Category:

Documents


0 download

TRANSCRIPT

ENKRIPSI MD5

Enkripsi adalah mengubah data asli (plain text) menjadi data rahasia (chiper text), sedangkan dekripsi dilakukan pada saat penerimaan dengan cara mengubah data rahasia (chiper text) menjadi data asli (plain text). Sehingga pada saat pengiriman data yang dikirim adalah data rahasia (chiper text) yang hanya dapat diketahui oleh penerima dengan menggunakan kunci rahasia. Dalam menghasilkan suatu chiper text dari plain text terdapat beberapa cara, seperti fungsi hash satu arah. Fungsi hash satu arah adalah suatu fungsi dimana kita dengan mudah melakukan enkripsi untuk mendapatkan chipertext-nya tetapi sangat sulit untuk mendapatkan plaintext-nya (melakukan dekripsi). Salah satu fungsi hash yang paling banyak digunakan adalah Message Digest 5 (MD5). MD5 merupakan fungsi hash satu arah yang didesain oleh Ronald Rivest dengan hash value 128 bit. Pada standar internet, MD5 telah dimanfaatkan sebagai pengaman berbagai macam aplikasi dan data, juga digunakan secara umum untuk melakukan pengujian integritas sebuah file. Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank. Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer Enkripsi merupakan sebuah cara untuk mengacak data sehingga tidak bisa langsung dibaca. Teknik enkripsi , misalkan dengan cara melakukan MD5('pass') untuk menyimpan password dalam database mysql. Untuk aplikasi java yang berhubungan dengan SQL Server, kita bisa menggunakan class dari java. Dari algoritma MD5 sebelumya, kita bisa membuat class sendiri, atau memakai yang sudah disediakan di java security. 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, 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 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, penambahan hasil dari tahap sebelumnya memungkinkan terjadinya collision untuk fungsi kompresi MD5. Dalam makalahnya, den Boer dan Bosselaers memberikan penjelasan mengenai hal ini. Namun serangan ini bukanlah terjadi pada keseluruhan fungsi MD5, oleh karena itu, kadangkala serangan semacam ini disebut pseudo-collision.

Pseudocode algoritma MD5 ://Catatan: Seluruh variable pada unsigned integer 32-bit dan dan wrap modulo 2^32 saat melakukan perhitungan //Mendefinisikan var int[64] r, k r[ 0..15] := {7, 22} r[16..31] := {5, 20} r[32..47] := {4, 23} r[48..63] := {6, 21} r sebagai berikut 12, 17, 22, 9, 14, 20, 11, 16, 23, 10, 15, 21, 7, 12, 17, 22, 5, 9, 14, 20, 7, 12, 17, 22, 5, 9, 14, 20, 7, 12, 17, 5, 9, 14,

4, 11, 16, 23, 6, 10, 15, 21,

4, 11, 16, 23, 6, 10, 15, 21,

4, 11, 16, 6, 10, 15,

//Menggunakan bagian fraksional biner dari integral sinus sebagai konstanta: for i from 0 to 63 k[i] := floor(abs(sin(i + 1)) 2^32) //Inisialisasi variabel: var int h0 := 0x67452301 var int h1 := 0xEFCDAB89 var int h2 := 0x98BADCFE var int h3 := 0x10325476 //Pemrosesan awal:

append "1" bit to message append "0" bits until message length in bits 448 (mod 512) append bit length of message as 64-bit little-endian integer to message //Pengolahan pesan paada 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 pada 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 := (5i + 1) mod 16 else if 32 i 47 f := b xor c xor d g := (3i + 5) mod 16 else if 48 i 63 f := c xor (b or (not d)) g := (7i) mod 16 temp d := c := b := a := := d c b ((a + f + k(i) + w(g)) leftrotate r(i)) + b temp

//Tambahkan hash dari gumpalan sebagai hasil: h0 := h0 + a h1 := h1 + b h2 := h2 + c h3 := h3 + d var int digest := h0 append h1 append h2 append h3 //(diwujudkan dalam little-endian)

Catatan: Meskipun rumusan dari yang tertera pada RFC 1321, berikut ini sering digunakan untuk meningkatkan efisiensi:(0 i 15): f := d xor (b and (c xor d)) (16 i 31): f := c xor (d and (b xor c))

Contoh dari penggunaan enkripsi MD5 : Sistem keamanan dalam sebuah aplikasi komputer berbasis web salah satu yang dipakai adalah metode hashing MD5. MD5 merupakan metode one way yang merubah suatu plain text berubah menjadi bentuk enkripsi atau yang disebut dengan chypertext.

Penggunaannya seringkali untuk merahasiakan password user maupun admin, nomor PIN, dan lainnya yang berhubungan dengan akun seseorang. Dalam contoh pemakaian metode MD5 ini dibuat 2 file: 1. login.Html 2. checklogin.php Dibawah ini merupakan tampilan hasil eksekusi file login.Html :

Berikut ini source file login.html yang dipakai :

Source code diatas merupakan kode html untuk membentuk halaman login. Apabila username dan password telah terisi maka browser akan diarahkan ke halaman file checklogin.php. Masukkan username dan password. Untuk keamanan, input pada password diberi type password agar tidak dapat dibaca atau dilihat pihak yang tidak berwenang. berikut ini tampilan hasil eksekusi file checklogin.php :

Dan berikut ini Source code file checklogin.php

Dapat kita lihat pada gambar diatas hasil input password dijadikan variable $mypassword. Kemudian variable tersebut di enkripsi dengan metode hashing MD5 dengan mengubahnya menjadi variable $mypasswordmd5. Sampai di situ password sudah berubah menjadi algoritma. Apabila kita cetak (echo) passwordnya akan berubah menjadi tampilan algoritma seperti ditunjukkan pada gambar berikut :