Kamis, 24 Maret 2011

Perbedaan MD5 dengan SHA

Pengertian MD5
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 digunkan 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 desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.

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. 1. Melakukan padding terhadap pesan sehingga panjangnya adalah 448 modulus 512.
  2.  64 bit sisanya adalah representasi biner dari panjang pesan.
  3.  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.
  4.  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
  5. Output nilai hash adalah nilai terakhir dari buffer.
Jadi intinya SHA-1 adalah suatu algoritma hash yang memetakan inputan string dengan panjang sembarang menjadi output dengan panjang tetap yaitu 160 bit.

0 komentar:

Posting Komentar

Share IT is Easy !!!! Copyright © 2011 | Template created by O Pregador | Powered by Blogger