DIBAWAKAN OLEH KELOMPOK 6
TUGAS KEAMANAN INFORMASI
PENGERTIAN
FUNGSI HASH
KELOMPOK 6
FUNGSI HASH
Merupakan sebuah algoritma yang mengubah teks atau pesan menjadi sederetan karakter acak yang memiliki jumlah karakter yang sama
PENGERTIAN
FUNGSI HASH
KELOMPOK 6
SIFAT-SIFAT
FUNGSI HASH
o
Tahan Preimej
(Preimage Resistant)
o
Tahan Preimej Kedua
(Second Preimage Resistant)
o
Tahan Tumbukan
(Collision-Resistant)
KEGUNAAN
FUNGSI HASH
o
Menyimpan Password
o
Sebagai Message Integrity
o
Sebagai Message Fingerprint
Menyimpan Password
• Password didalam sebuah sistem dianjurkan
untuk disimpan dengan menggunakan fungsi
hash. Dengan demikian administrator sistem
tersebut sekalipun tidak akan dapat melihat atau
menggunakan password user yang telah menjadi
membernya. Hal ini akan memberikan impact
yang baik kepada user bahwa baik sistem
maupun administrator sangat menghargai privasi
dari anggotanya.
Kegunaan Fungsi Hash
Message Integrity
• Untuk mencegah ada seseorang ditengah
perjalanan yang ingin mengganti pesan
tersebut dalam bertukar pesan
Message Fingerprint
• Penggunaan Hash sebagai sidik jari pesan
(message fingerprint) digunakan untuk
mengecek apakah file yang kita simpan masih
sesuai dengan file asli ketika hash file tersebut
dibuat dan belum berubah. Jika terdeteksi
adanya file yang tidak memiliki hash yang
sama dengan yang telah dibuat sebelumnya,
maka dapat dipastikan bahwa file tersebut
telah berubah.
Algoritma-Algoritma Fungsi Hash
Kriptografi
Beberapa contoh algoritma fungsi hash
Kriptografi:
• MD4
• MD5
• SHA-0
• SHA-1
• SHA-256
• SHA-512
ocuALGORITMA
MD5
KELOMPOK 6
PRINSIP DASAR
MD5 fungsi hash ke 5 yang merupakan perkembangan dari MD4 , dimana terjadi penambahan satu ronde. MD5 pemroses teks masukan kedalam blok- blok bit sebanyak 512 bit, kemudian di bagi kedalam 32 bit sub blok sebanyak 24 16buah. Keluaran dari MD5 berupa 4 buah blok yang masing- masing 32 bit yang mana akan menjadi 128 bit yang biasa di sebut nilai hash.
SEJARAH SINGKAT
Dikembangkan oleh Ronald Rivest pada tahun 1991 sebagai bagian dari seri algoritma Message
Direct yang dikembangkannya untuk menggantikan fungsi hash sebelumnya, yaitu MD4. Algoritma ini
diterbitkan di internet melalui RFC 1321.
Awal Perkembangan MD5
MD2
• Pada awal perembangannya Message Direct di
kembangkan oleh Ronald Rivest Awalnya
munculnya algoritma MD2 pada tahun 1989
untuk komputer berbasis bit, namun dalam
perkembangnanya Algoritma MD2 memiliki
kelemahan utama yang disebut collusion , dalam
kelemahan ini berdasarkan sifat injektifknya,
dimana range yang sama belum tentu memiliki
domain yang sama.
MD4.
• Ditulis pada tahun 1990 yang merupakan
revisi dari MD2 . MD4 digunakan untuk
memeriksa integritas dari sebuah pesan.
Kelemahannya yaitu emiliki flowfatal dalam
proses eksekusinya sehingga kode 32 bit
heksadesimal yang dihasikannya dapat di
tembus walaupun waktu yang di perlukan
untuk membaca kode relatif lama
MD5
• pada tahun 1991 untuk menggantikan fungsi
hash sebelumnya, MD4 . Pada tahun 1996,
sebuah cacat telah ditemukan dengan desain
MD5. MD5 secara garis besar adalah
mengambil pesan yang mempunyai panjang
variabel diubah menjadi ‘sidik jari’ atau intisari
pesan yang mempunyai penjang tetap 128
bit.
Cara Kerja MD5
Langkah-langkah pembuatan message digest secara garis
besar:
1. Penambahan bit-bit pengganjal (padding bits).
2. Penambahan nilai panjang pesan semula.
3. Inisialisasi penyangga (buffer) MD.
4. Pengolahan pesan dalam blok berukuran 512 bit.
TAHAPAN KERJA
MD5
KELOMPOK 6 DIAGRAM KERJA ALGORITAM MD5 Diagram berikut merupakan diagram dari keseluruhan proses algoritma MD5. Tanda panah menjelaskan diagram tahapan yang lebih kecil.TAHAPAN KERJA
MD5
Langkah 1 – Penambahan Bit-bit Pengganjal:
Proses pertama yang dilakukan adalah menambahkan pesan dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. Ini berarti setelah menambahkan bit-bit pengganjal, kini panjang pesan adalah 64 bit kurang dari kelipatan 512. Hal yang perlu diingat adalah angka 512 muncul karena algoritma MD5 memproses pesan dalam blok-blok yang berukuran 512.
Apabila terdapat pesan dengan panjang 448 bit, maka pesan tersebut akan tetap ditambahkan dengan bit-bit
pengganjal. Pesan akan ditambahkan dengan 512 bit menjadi 96 bit. Jadi panjang bit-bit pengganjal adalah antara 1 sampai 512. Lalu satu hal lagi yang perlu diperhatikan adalah bahwasanya bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0.
KELOMPOK 6
TAHAPAN KERJA
MD5
KELOMPOK 6
Langkah 2 – Penambahan nilai panjang pesan semula:
Kemudian proses berikutnya adalah pesan ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Apabila panjang pesan lebih besar dari 264 maka yang diambil adalah panjangnya dalam modulo 264. dengan kata lain,
jika pada awalnya panjang pesan sama dengan K bit, maka 64 bit yang ditambahkan menyatakan K modulo 264.
sehingga setelah proses kedua ini selesai dilakukan maka panjang pesan sekarang adalah 512 bit.
TAHAPAN KERJA
MD5
KELOMPOK 6
Langkah 3 – Inisialisasi penyangga MD
Pada algoritma MD5 dibutuhkan empat buah penyangga atau buffer, secara berurut keempat nama penyangga diberi nama A, B, C dan D. Masing-masing penyangga memiliki panjang 32 bit.
Total panjangpenyangga adalah 4 ´ 32 = 128 bit. Keempat penyangga ini menampung
hasil antara dan hasil akhirSehingga panjang total :
Sambung…
Keempat penyangga ini menampung hasil antara dan hasil akhir. Setiap
penyangga diinisialisasi dengan nilai-nilai (dalam notasi Hexadesimal) sebagai berikut :
TAHAPAN KERJA
MD5
KELOMPOK 6
Langkah 4 – Pengolahan pesan dalam blok berukuran 512 bit :
Proses berikutnya adalah pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit (Y0 sampai YL-1). Setelah itu setiap blok 512 bit diproses bersama dengan penyangga MD yang menghasilkan keluaran 128 bit, dan ini disebut HMD5. Berikut ini gambaran dari proses HMD5
TAHAPAN KERJA
MD5
KELOMPOK 6
Langkah 4 – Pengolahan pesan dalam blok berukuran 512 bit (lanjutan):
Dari gambar di samping dapat kita lihat bahwa
proses HMD5 terdiri dari 4
buah putaran, dan
masing-masing putaran melakukan opersi dasar MD5 sebanyak 16 kali. Dimana disetiap operasi dasar memakai sebuah elemen T. Sehingga setiap putaran memakai 16
elemen tabel T.
Sambung…
Yq menyatakan blok512 bit ke-q dari pesan yang telah ditambahkan dengan bit-bit pengganjal pada proses pertama dan tambahan 64 bit nilai panjang pesan semula
pada proses kedua. MDq
adalah nilai message digest
128 bit dari proses HMD5 ke-q.
Pada awal proses , MDq berisi nilai inisialisasi penyangga MD. Kemudian fungsi fF, fG, fH, dan
fI pada gambar, masing-masing
berisi 16 kali operasi dasar terhadap input, setiap operasi dasar menggunakn elemen tabel T. Berikut ini ilustrasi gambar operasi dasar MD5
TAHAPAN KERJA
MD5
KELOMPOK 6
Langkah 4 – Pengolahan pesan dalam blok berukuran 512 bit (lanjutan):
Operasi dasar MD5 yang diperlihatkan gambar di samping dapat dituliskan
dengan persamaan berikut ini :
Dimana,
TAHAPAN KERJA
MD5
KELOMPOK 6
Langkah 4 – Pengolahan pesan dalam blok berukuran 512 bit (lanjutan):
Fungsi fF, fG, fH, dan fI adalah fungsi untuk
memanipulasi masukan a, b, c, dan d dengan ukuran 32-bit. Masing-masing fungsi dapat dilihat pada tabel dibawah ini :
TAHAPAN KERJA
MD5
KELOMPOK 6
Langkah 4 – Pengolahan pesan dalam blok berukuran 512 bit (lanjutan):
Kemudian nilai T[i] dapat dilihat pada tabel dibawah ini. Tabel ini disusun oleh fungsi 232
x abs(sin(i)), i dalam radian.
kurnia
TAHAPAN KERJA
MD5
Langkah 4 – Pengolahan pesan dalam blok berukuran 512 bit (lanjutan):
Sebagaimana telah dijelaskan sebelumnya bahwa fungsi fF, fG, fH, dan fI melakukan 16 kali operasi dasar. Misalkan notasi berikut ini , menyatakan operasi
untuk operasi diatas, <<<s melambangkan opersi circular left shift 32 bit, maka operasi dasar pada masing-masing putaran dapat ditabulasikan sebagai berikut :
KELOMPOK 6
16 kali operasi dasar dengan g(b, c, d) – F(b, c, d), dapat dilihat pada tabel berikut ini :
16 kali operasi dasar dengan g(b, c, d) – H(b, c, d), dapat dilihat pada tabel berikut ini :
16 kali operasi dasar dengan g(b, c, d) – I(b, c, d), dapat dilihat pada tabel berikut ini : 16 kali operasi dasar dengan
g(b, c, d) – G(b, c, d), dapat dilihat pada tabel berikut ini :
PUTARAN 1 PUTARAN 2 PUTARAN 3 PUTARAN 4
TAHAPAN KERJA
MD5
KELOMPOK 6
Langkah 4 – Pengolahan pesan dalam blok berukuran 512 bit (lanjutan):
Setelah putaran keempat, a, b, c dan d di tambahkan ke A, B, C dan D yang selanjutnya algoritma akan memproses untuk blok data berikutnya (Yq+1). Output akhir dari algoritma MD5 adalah hasil penyambungan bit-bit di A, B, C dan D. Dari uraian diatas, secara umum fungsi hash MD5 dapat ditulis dalam persamaan matematis sebagai berikut:
Dimana,
IV = initial vector dari penyangga ABCD, yang dilakukan pada proses inisialisasi penyangga Yq = blok pesan berukuran 512-bit ke-q
L = jumlah blok pesan
MD = nilai akhir message digest
TAHAPAN KERJA
MD5
KELOMPOK 6
Langkah 4 – Pengolahan pesan dalam blok berukuran 512 bit (lanjutan):
Setelah putaran keempat, a, b, c dan d di tambahkan ke A, B, C dan D yang selanjutnya algoritma akan memproses untuk blok data berikutnya (Yq+1). Output akhir dari algoritma MD5 adalah hasil penyambungan bit-bit di A, B, C dan D. Dari uraian diatas, secara umum fungsi hash MD5 dapat ditulis dalam persamaan matematis sebagai berikut:
Dimana,
IV = initial vector dari penyangga ABCD, yang dilakukan pada proses inisialisasi penyangga Yq = blok pesan berukuran 512-bit ke-q
L = jumlah blok pesan
MD = nilai akhir message digest
Pseudocode untuk MD5 adalah
sebagai berikut :
Source code java
Source code Java:Fungsi mainnya:
Outputnya :
Penerapan MD5 :
•Untuk menjamin data integrity
sebenarnya sudah berjalan tanpa di sadari sadari. Yang
paling mudah jumpai adalah MD5 checksum yang tertera ketika
akan
men-download
sebuah
file.
Ambil
satu
contoh
www.filehippo.com
pilih salah satu software yang ingin
di-download lalu klik tab Technical-nya scroll agak kebawah sampai
ada informasi MD5 checksum.
Contoh penerapannya
Kolom MD5 checksum pada “Down Them All” (Firefox download extension) Informasi MD5 checksum ini dapat kita tambahkan ke download
manager ketika akan melakukan pengunduhan sehingga pembandingan hash
value akhir akan di lakukan oleh download manager secara otomatis ketika proses
pengunduhan selesai. Begitulah caranya download manager menentukan file yang rusak dengan yang utuh.
Sidik Dijital dengan Menggunakan
Fungsi Hash Satu-Arah
Proses Pemberian Sidik Dijital (Signing)
•Pesan yang hendak dikirim diubah terlebih dahulu menjadi bentuk yang ringkas yang disebut message digest. Message digest (MD) diperoleh dengan mentransformasikan pesan M dengan menggunakan fungsi hash satu-arah (one-way) H, sehinga “ MD = H(M)”
Pesan yang sudah diubah menjadi message digest oleh fungsi hash tidak dapat dikembalikan lagi menjadi bentuk semula walaupun digunakan algoritma dan kunci yang sama (itulah sebabnya dinamakan fungsi hash satu-arah). Sembarang pesan yang berukuran apapun diubah oleh fungsi
hash menjadi message digest yang berukuran tetap (umumnya 128 bit).
• Selanjutnya, message digest MD dienkripsikan dengan algoritma kunci-publik menggunakan kunci rahasia (SK) pengirim menjadi sidik dijital S,
Sehingga rumusnya : S = ESK(MD)
• Pesan M disambung (append) dengan sidik dijital S, lalu keduanya dikirim melalui saluran komunikasi . Dalam hal ini, kita katakan bahwa pesan M sudah ditandatangani oleh pengirim dengan sidik dijital S.
• Di tempat penerima, pesan diverifikasi untuk dibuktikan keotentikannya dengan cara berikut:
1.Sidik dijital S didekripsi dengan menggunakan kunci publik (PK) pengirim pesan, menghasilkan message digest semula, MD, sebagai berikut:
MD = DPK(S)
2. Pengirim kemudian mengubah pesan M menjadi message digest MD’
menggunakan fungsi hash satu-arah yang sama dengan fungsi hash yang digunakan oleh pengirim.
3. Jika MD’ = MD, berarti pesan yang diterima otentik dan berasal dari pengirim
yang benar.
Skema otentikasi dengan sidik dijital
ditunjukkan pada Gambar 1.
keterangan
• Keotentikan ini dijelaskan sebagai
berikut:
• Apabila pesan M yang diterima sudah berubah, maka MD’ yang dihasilkan dari fungsi hash berbeda dengan MD semula. Ini berarti pesan tidak asli lagi.
Message Fungsi Hash Message Digest Signing Secret Key Signature Message Signature Message Signature Message Fungsi Hash Signature Verify Message Digest Public Key Message Digest ? = Signer Verifier Nina pratiwi
Sambungan….
• Apabila pesan M tidak berasal dari orang yang sebenarnya, maka message digest MD yang dihasilkan dari persamaan 3 berbeda dengan message
digest MD’ yang dihasilkan
pada proses verifikasi (hal ini karena kunci publik yang digunakan oleh penerima pesan tidak berkoresponden dengan kunci rahasia
pengirim).
• Bila MD = MD’, ini berarti pesan yang diterima adalah pesan yang asli (message
authentication) dan orang
yang mengirim adalah orang yang sebenarnya (user
authentication Message Fungsi Hash Message Digest Signing Secret Key Signature Message Signature Message Signature Message Fungsi Hash Signature Verify Message Digest Public Key Message Digest ? = Signer Verifier Nina pratiwi
Aplikasi digital Signature pada KTP
• Algoritma MD5 dapat digunakan sebagai aplikasi digital
signature pasda kartu Tanda penduduk (KTP) sebagai
otentifikasi . Pada KTP nantinya akan ditambahkan digtal
signaturenya, dimana data yang akan diambil adalah
Nomor induk kependudukan . Karena setiap penduduknya
nanti akan memberikan sebuh kunci kepda penduduk yakni
kunci private. Dimana kunci private ini juga akan di berikan
kepada instant terkait.
• kunci private merupakan idnetitas yang benar dari
penduduk tersebut maka digital signature tadi akan di
deskripsi menghasilkan output yang sama dengan massage
digest yang tersimpan pada data base pemerintahan maja
bisa dipastikan bahwa penduduk tersebut adalah orang
yang benar.
Perbandingan SHA-1 dan MD5
• SHA-1 dan MD5 dikembangkan atau diturunkan dari MD4 maka keduanya
mempunyai kemiripina satu sama lain, baik kekuatan dan karakteristiknya. • Keamanan terhadap serangan brute-force.
Hal yang paling penting adalah bahwa SHA-1 menghasilkan diggest 32-bit lebih panjang dari MD5. Dengan brute-force maka SHA-1 lebih kuat dibanding MD5. • Keamanan terhadap kriptanalisis
Kelemahan MD5 ada pada design sehingga lebih mudah dilakukan kriptanalisis dibandingkan SHA-1
• Kecepatan
Kedua algoritma bekerja pada modulo 232 sehingga keduanya bekerja baik pada arsitektur 32 bit. SHA-1 mempunyai langkah lebih banyak dibandingkan MD5 ( 80 dibanding MD5 64 ) dan harus memproses 160 bit buffer dibanding DM5 128 bit buffer, sehingga SHA-1 bekerja lebih lambat dibanding MD5 pada perangkat keras yang sama.
Sambung…
• Simplicity
Kedua algoritma simple untuk dijelaskan dan mudah untuk
diiemplementasikan karena tidak membutuhkan program
yang besar atau tabel subtitusi yang besar pula.
Contoh :
Perhatikan perbedaan nilai hash untuk perintah MD5 dan
SHA1 terhadap data "murdan" sbb:
f8f33438c13ef064439e42b124f9e537
039949592e82eab2c43703c3e133149cb079cc1a
KELEBIHAN & KEKURANGAN
ALGORITMA
MD5
o Dapat digunakan untuk verifikasi integritas file
o MD5 berfungsi sebagai pendeteksi perubahan file
o Penyimpanan password pada MD5 lebih efisien
o Sangat peka dalam perubahan data sekecil apapun
KELOMPOK 6
KELEBIHAN KEKURANGAN
o Serangan Collision
o rentan Preimage Attack
o Kriptanalisis lebih lanjut tehadap MD5
o Proses perubahan data asli menjadi MD5 perlu waktu
relatif lama (resource hardware)
• untuk verifikasi integritas file
• dimadsudkan dengan integritas file adalah keaslian
file, apakah file sudah diubah atau belum.
Biasanya pada saat mendownload sebuah file dari
internet md5 berperan sebagai algoritma yang
dipakai untuk membuktikan apakah file yang di
download tersebut masih asli atau tidak.
• Md5 kelebihan sebagai pendeteksi perubahan
file, misalnya pada tripwire di linux. Ini merupakan
dari instuction detection system dimana bila ada
file berubah nilai hashnya maka IDS akan
menyalakan alarm bahwa telah terjadi perubahan
file.
• Algoritma md5 sangat peka dalam perubahan
data sekecil apapun
Kekurangan
Serangan Collision
Md 5 cenderung rentan terhadap serangan collision yaitu peristiwa dimana 2 nilai yang berbeda dapat memiliki nilai hash yang sama.collusion ini dimanfaatkan untul memasukkan sertifikat SSL jejaring palsu.
rentan Preimage Attack
Preimage attack merupakan serangan terhadap fungsi hash yang menyerupai
collision attack, namun dengan tujuan mencari masukan m2 apabila masukan m1 sudah diketahui, sehingga f(m1) = f(m2). Tidak seperti collision attack di mana tujuannya adalah mencari kedua masukan m1 dan m2. Serangan preimage pada
umumnya lebih kompleks dibandingkan serangan collision dan tidak jarang alternatif satu-satunya untuk melakukan serangan ini adalah dengan menggunakan brute
force.
o Kriptanalisis lebih lanjut tehadap MD5
o Proses perubahan data asli menjadi MD5 perlu waktu relatif lama (resource hardware)
Kriptanalisis lebih lanjut tehadap
MD5
• Dalam sekitar 5 tahun
setelah peluncurannya, peringatan kemudian
dikeluarkan untuk tidak mengandalkan MD5
untuk kegunaan-kegunaan yang memerlukan
ketahanan terhadap collision.
• Masukan yang sama sekali berbeda isinya pun
dapat dengan relatif mudah disesuaikan sehingga
nilai hash-nya sama dengan suatu pesan lain,
asalkan terdapat potongan dari kedua pesan itu
yang collision-nya sudah ditemukan.
• proses hash md5 terlebih dahulu untuk mengubah
data plaintext menjadi chiper, kemudian Setelah
diterima agar data bisa dibaca dan dipahami oleh
penerima data, data harus melalui proses hash md5
pengubahan chiper menjadi plaintext Setelah data
melalui proses pengubahan chiper menjadi
plaintext. Proses perubahan data asli menjadi MD5
perlu waktu relatif lama (resource hardware)
• Md5 divonis tidak cocok untuk dipakai sebagai
fungsi enkripsi yang membutuhkan ketahanan dari
serangan collusion
• Keamanan fungsi hash MD5 terancam. Sebuah
serangan tabrakan ada yang dapat menemukan
tabrakan dalam hitungan detik pada komputer
dengan prosesor Pentium4 2.6GHz.
MASA DEPAN
MD5
BAGAIMANA PERKEMBANGAN ALGORITMA
MD5
DI
MASA MENDATANG?
Eksistensi Algoritma MD5
Dimasa Akan Datang
MD5 dipublikasikan pada tahun 1992 sebagai Informational RFC. Sejak saat itu, MD5 sudah dipelajari secara ekstensif dan serangan-serangan baru terhadap kriptografi pun sudah banyak ditemukan. Algoritma message digest didesain untuk tahan terhadap collision, imagedan second pre-image. Selain itu, algoritma ini juga digunakan untuk sharing informasi/data rahasia untuk message authentication pada HMAC.
Sekarang MD5 tidak lagi dapat digunakan dimana ketahanan terhadap collisions sangat diperlukan, seperti digital signature. Namun, untuk hal lain yang tidak memerlukan kerahasiaan, MD5 masih cukup baik untuk digunakan, untuk checksum misalnya. Karena MD5 tidak boleh digunakan untuk digital signature, desain protokol baru untuk digital signature seharusnya tidak mengadopsi MD5. Dengan banyak kekurangan yang fatal digital signature pada algoritma md 5, Sehingga algoritma MD5 tidak lagi popular dalam keamanan data dan telah di saingi oleh algoritma pada fungsi hash setelahnya yaitu algoritma SH-1 ( Secured Hash Algoritmn-1)
KESIMPULAN
o MD5 merupakan fungsi hash satu arah yang mengubah masukan dengan panjang
variabel menjadi keluaran dengan panjang tetap yaitu 128 bit.
o Algoritma MD5 dengan fungsi hashnya sangat peka terhadap perubahan pesan,
maka algoritma MD5 cocok untuk aplikasi yang menjaga integritas suatu data.
o Algoritma MD5 dalam dipakai dalam aplikasi untuk
• Aplikasi Integritas Data
• Aplikasi digital Signature pada KTP
o Algoritma MD5 mempunyai
• Kelebihan: untuk verifikasi integritas file, Md5 berfungsi sebagai pendeteksi
perubahan file, Md5 berfungsi sebagai penyimpan password di database, dan sangat peka dalam perubahan data sekecil apapun.
• kekurangan : Serangan Collision, Kriptanalisis lebih lanjut tehadap MD5 dan
Proses perubahan data asli menjadi MD5 perlu waktu relatif lama (resource hardware)
o Eksistensi Algoritma MD5 dikalahkan oleh Algoritma hash yang baru yaitu SH-1
kerana MD5 rentan terhadap serangan- serangan.
THANKS
FOR YOUR TIME
ANGGOTA KELOMPOK: DIAN KUMALA SARI KURNIA DWI HAQMA
NINA PRATIWI RISKI ANANDA