Selamet Dateng di Web nya BiLLy,, yang Enjoy ya Baca nya !! Hehehehe

24 Maret 2011

MD5, SHA, Dan Perbedaannya

        Dalam kriptografi, MD5 (Message-Digest Algorithm 5) ialah fungsi hash kriptografik yang telah 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. MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam desainny, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbaru menyatakan bahwa SHA-1 juga cacat).

         Pada tahun 1996 Dobbertin mengumumkan sebuah kerusakan pada fungsi kompresi MD5 dikarenakan hal ini bukanlah serangan terhadap fungsi hash MD5 sepenuhnya, hal ini menyebabkan para pengguna kriptografi menganjurkan pengganti seperti WHIRLPOOL, SHA-1 atau RIPEMD-160. Ukuran dari hash 128bit cukup kecil untuk terjadinya serangan brute force birthday attack. MD5CRK adalah proyek distribusi mulai Maret 2004 dengan tujuan untuk menunjukkan kelemahan dari MD5 dengan menemukan kerusakan kompresi menggunakan brute force attack.


             Saat ini dapat diketahui, dengan beberapa jam kerja, bagaimana proses pembangkitan kerusakan MD5. Yaitu dengan membangkitkan dua byte string dengan hash yang sama. Dikarenakan terdapat bilangan yang terbatas pada keluaran MD5, tetapi terdapat bilangan yang tak terbatas sebagai masukannya, hal ini harus dipahami sebelum kerusakan dapat ditimbulkan, tapi hal ini telah diyakini benar bahwa menemukannya adalah hal yang sulit.


           Sebagai hasilnya bahwa hash MD5 dari informasi tertentu tidak dapat lagi mengenalinya secara berbeda. Jika ditunjukkan informasi dari sebuah public key, hash MD5 tidak mengenalinya secata berbeda jika terdapat public key selanjutnya yang mempunyai hash MD5 yang sama.

       Bagaimanapun juga, penyerangan tersebut memerlukan kemampuan untuk memilih kedua pesan kerusakan. Kedua pesan tersebut tidak dengan mudah untuk memberikan serangan preimage, menemukan pesan dengan hash MD5 yang sudah ditentukan, ataupun serangan
preimage kedua, menemukan pesan dengan hash MD5 yang sama sebagai pesan yang diinginkan.

Langkah-Langkah Pembuatan MD

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.
  • Inisialisai Penyangga MD
  • MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 4 ´ 32 = 128 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir.
  • Keempat penyangga ini diberi nama A, B, C, dan D. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut:
           A = 01234567
           B = 89ABCDEF
           C = FEDCBA98
           D = 76543210

3. 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 13.3.
  • Pada Gambar 13.3, Yq menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula.
  • MDq adalah nilai message digest 128-bit dari proses HMD5 ke-q. Pada awal proses, MDq berisi nilai inisialisasi penyangga MD.
  • Proses HMD5 terdiri dari 4 buah putaran, dan masing-masing putaran melakukan operasi dasar MD5 sebanyak 16 kali dan setiap operasi dasar memakai sebuah elemen T. Jadi setiap putaran memakai 16 elemen Tabel T.
  • Fungsi-fungsi fF, fG, fH, dan fI masing-masing berisi 16 kali operasi dasar terhadap masukan, setiap operasi dasar menggunakan elemen Tabel T.
  • Operasi dasar MD5
  • Karena ada 16 kali operasi dasar, maka setiap kali selesai satu operasi dasar, penyangga-penyangga itu digeser ke kanan secara sirkuler dengan cara pertukaran sebagai berikut:
         temp ¬ d
        d ¬ c
        c ¬ b
        b ¬ a
        a ¬ temp

SHA (Secure Hash Algorithm)

              SHA merupakan salah satu hash function yang cukup banyak digunakan. Keluarga SHA yang paling banyak digunakan adalah SHA-1. SHA-1 memetakan inputan string dengan panjang sembarang menjadi suatu nilai hash dengan panjang tetap yaitu 160 bit. Ukuran internal state pada SHA-1 adalah 160 bit, sedangkan ukuran bloknya adalah 64 bytes.
SHA-1 merupakan hasil rekonstruksi dari MD4 dan memperbaiki kekurangann yang ada di MD4 itu sendiri. SHA-1 merupakan algoritma hash yang banyak diaplikasikan dalam keamanan protokol menggunakan SSL (Secure Sockets Layer), PGP (Pretty Good Privacy), XML Signature, dan beberapa aplikasi lainnya.
Langkah-langkah pada SHA-1 adalah sebagai berikut:

1. Melakukan padding terhadap pesan sehingga panjangnya adalah 448 modulus 512.
  • 64 bit sisanya adalah representasi biner dari panjang pesan.
  • Melakukan inisialisasi5 word buffer (160 bit)A, B, C, D, dan E dengan nilai A=67452301, B=efcdab89, C=98badcfe, D= 10325476, dan E=c3d2e1f0.
  • Memproses pesan dalam blok-blok 16 word (512 bit) dengan ketentuan
  • Ekspansi 16 words menjadi 80 words dengan teknik mixing dan shifting.
  • Menggunakan 4 round dari 20 operasi bit pada blok pesan dan buffer.
  • Menambahkan output dengan input untuk mempeoleh nilai buffer yang baru
  • Output nilai hash adalah nilai terakhir dari buffer.
Jadi perbedaan MD5 dan SHA adalah terletak pada nilai dari masing-masing. Tidak hanya itu, jumlah looping juga berbeda. Serta Algoritma juga berpengaruh pada masing-masing.

Sumber :
http://www.ilmuhacking.com/cryptography/md5-itu-berbahaya/
http://wikipedia.org

Jangan Lupa beli Buku nyaa yaaa ;)


0 komentar:

Posting Komentar

Jagalah perkataan anda,,
Karena sesungguhnya orang itu,,
di lihat dari perkataan nya juga