PENGGUNAAN FUNGSI HASH SATU-ARAH UNTUK ENKRIPSI DATA

dokumen-dokumen yang mirip
Digital Signature Standard (DSS)

STUDI DAN MODIFIKASI MD5 UNTUK MENGATASI KOLISI DAN IMPLEMENTASINYA DALAM SITUS JEJARING SOSIAL. Arief Latu Suseno NIM:

Tanda Tangan Digital (Digital Signature)

Analisis Cara Kerja Beragam Fungsi Hash Yang Ada. Christian Angga

Fungsi Hash. Bahan Kuliah IF3058 Kriptografi. Rinaldi Munir/Teknik Informatika STEI-ITB

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

STUDI PENCARIAN KOLISI PADA SHA-1 OLEH XIAOYUN WANG dkk.*

BAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Implementasi MD5 Hash dengan Random Salt serta Analisis Keamanannya

Analisis Beberapa Fungsi Hash dan Implementasi Fungsi Hash pada Protokol SMTP

ALGORITMA RIPEMD. Roland L. Bu'ulölö

Perancangan Kios Buku Online Dengan Menerapkan Algoritma MD5 Dalam Pengamanan Record Login

Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block

Fungsi Hash Satu-Arah dan Algoritma MD5

Bab 2 Tinjauan Pustaka 2.1. Penelitian Terdahulu

Analisis Penerapan Algoritma MD5 Untuk Pengamanan Password

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Key Strengthening Menggunakan KD5 Eko Budhi Susanto 1

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Studi Perancangan Algoritma Fungsi Hash

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB 2 LANDASAN TEORI

Bab 3 Metode dan Perancangan Sistem

PEMANFAATAN ENKRIPSI MD5 PADA KEAMANAN LOGIN SISTEM INFORMASI MANUFAKTUR PT. MARUKI INTERNATIONAL INDONESIA

FUNGSI HASH PADA KRIPTOGRAFI

Implementasi Secure Hash Algorithm-1 Untuk Pengamanan Data Dalam Library Pada Pemrograman Java

Penanganan Kolisi pada Fungsi hash dengan Algoritma Pengembangan Vigenere Cipher (menggunakan Deret Fibonacci)

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

LUX HASH FUNCTION. Brian Al Bahr NIM: Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung

STUDI PENERAPAN HTTP DIGEST AUTHENTICATION UNTUK PENGGUNA PADA PROXY SERVER DENGAN DATABASE LDAP

ALGORITMA MAC BERBASIS FUNGSI HASH SATU ARAH

Algoritma MAC Berbasis Jaringan Syaraf Tiruan

ANALISIS UJI KERJA ALGORITMA MD5 DAN ALGORITMA RC4 PADA PENGAMANAN DATA ADMIN E-COMMERCE

Pengembangan dan Implementasi Algoritma Tiger

Implementasi ECDSA untuk Verifikasi Berkas Berukuran Besar dengan Menggunakan Merkle Tree

Pemanfaatan Metode Pembangkitan Parameter RSA untuk Modifikasi SHA-1

PERANCANGAN PEMBANGKIT TANDA TANGAN DIGITAL MENGGUNAKAN DIGITAL SIGNATURE STANDARD (DSS) Sudimanto

Algoritma QR Code Digital Signature dengan Memanfaatkan Fingerprint

Algoritma Fungsi Hash Baru dengan Menggabungkan MD5, SHA-1 dan Penyertaan Panjang Pesan Asli

APLIKASI KEAMANAN LEMBAR HASIL STUDI MENGGUNAKAN ALGORITMA MESSAGE DIGEST 5 Studi Kasus : Fakultas Teknik Universitas Muhammadiyah Bengkulu

IMPLEMENTASI AUTHENTIKASI CLIENT DENGAN METODE TWO WAY CHALLENGE-RESPONSE PADA TRANSAKSI PERBANKAN ELEKTRONIK

Pengembangan Fungsi Random pada Kriptografi Visual untuk Tanda Tangan Digital

Implementasi SHA untuk Komparasi File

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

Penerapan Fungsi Hash dalam Penempatan Parkir Mobil

Algoritma MD5. Bahan Kuliah IF3058 Kriptografi. Rinaldi Munir/Teknik Informatika STEI-ITB 1

STUDI DAN ANALISIS ALGORITMA HASH MD6 SERTA PERBANDINGANNYA DENGAN MD5

Aplikasi Laporan Keuangan Akuntansi Bulog-Jakarta Menggunakan Algoritma MD5 dan RSA

Analisis Penggunaan Fungsi Hash pada Activation Key untuk Autentikasi Pendaftaran Akun

Fungsi Hash dan Metode Collision Resolution

APLIKASI KRIPTOGRAFI DALAM PGP UNTUK KERAHASIAAN

BAB 2 LANDASAN TEORI

SISTEM KEAMANAN LOGIN MENGGUNAKAN HAK AKSES DAN KRIPTOGRAFI NASKAH PUBLIKASI. diajukan oleh Akhid Nukhlis A

Tanda Tangan Digital untuk Pengecekan Keaslian Data pada Perpustakaan Digital

Analisis Perbandingan Dan Implementasi Sistem Keamanan Data Menggunakan Metode Enkripsi RC4 SHA Dan MD5

Modifikasi SHA-1 Untuk Mengurangi Hash collision

Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

Bab I Pendahuluan 1 BAB I PENDAHULUAN

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

ALGORITMA MD5 DIBAWAKAN OLEH KELOMPOK 6 TUGAS KEAMANAN INFORMASI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KRIPTANALISIS TERHADAP FUNGSI HASH

PENGUJIAN INTEGRITAS DATA MENGGUNAKAN ALGORITMA MD5

Analisis Fungsi Hash MD6

Jurnal SCRIPT Vol. 1 No. 2 Januari 2014

Digital Signature Algorithm (DSA)

PENGUJIAN INTEGRITAS DATA MENGGUNAKAN ALGORITMA MD5

Kriptografi Elliptic Curve Dalam Digital Signature

Implementasi CubeHash dalam Digital Signature dan Perbandingannya dengan Fungsi Hash Lain

Studi dan Implementasi Algoritma RSA dan MD5 pada Aplikasi Digital Signature (Studi Kasus pada Sistem Akademik Terpadu (SIAP) STMIK Sumedang)

BAB 3 ANALISIS DAN PERANCANGAN. utuh ke dalam bagian-bagian komponennya dengan maksud untuk

Simposium Nasional Teknologi Terapan (SNTT) ISSN: X PERANGKAT LUNAK PENGAMANAN DATA MENGGUNAKAN ALGORITMA MESSAGE DIGEST-5 (MD-5)

Otentikasi dan Tandatangan Digital (Authentication and Digital Signature)

APLIKASI KRIPTOGRAFI SEDERHANA MENGGUNAKAN FUNGSI HASHING (MD5) PADA MODUL PHP

Aplikasi UMAC pada Instant Messaging

PEMBUATAN TANDA TANGAN DIGITAL MENGGUNAKAN DIGITAL SIGNATURE ALGORITHM

PENGEMBANGAN MODEL ANTAR MUKA BASIS DATA BERBASIS FUNGSI MESSAGE DIGEST 5 (MD5)

Keamanan Sistem Komputer. Authentication, Hash Function, Digital Signatures, Quantum Cryptography

Kriptografi Modern Part -1

Message Authentication Code (MAC) Pembangkit Bilangan Acak Semu

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

Bab 3. Metode dan Perancangan Sistem

Perbandingan Algoritma Fungsi Hash MD5 dengan SHA-1

Analisis dan Perbandingan Algoritma Whirlpool dan SHA- 512 sebagai Fungsi Hash

Pembangkitan Nilai MAC dengan Menggunakan Algoritma Blowfish, Fortuna, dan SHA-256 (MAC-BF256)

BAB III ANALISIS MASALAH

echo zine, issue // Pengamanan URL dengan MAC

BAB III ANALISIS DAN DESAIN SISTEM

Aplikasi Teori Bilangan pada Bitcoin Menggunakan Kriptografi

1. Pendahuluan. 2. Kajian Pustaka

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

Studi dan Implementasi RSA, SHA-1, TimeStamp Untuk penangangan Non Repudiation

Kata Kunci: Kriptografi, algoritma,security, pemrograman, pseucode.

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

PENGEMBANGAN SISTEM INFORMASI PEMESANAN TIKET BOLA ONLINE

IMPLEMENTASI PENGAMANAN BASIS DATA MENGGUNAKAN METODE ENKRIPSI MD5 (Message-Digest Algorihm 5)

BAB I PENDAHULUAN 1.1 Latar Belakang

TEKNIK PENYISIPAN PADA DATA DIGITAL DENGAN MENGGUNAKAN METODE LEAST SIGNIFICANT BIT

Studi dan Implementasi Kolisi pada Fungsi Hash MD5. Ade Gunawan

Transkripsi:

Media Informatika Vol. 7 No. 3 (2008) PENGGUNAAN FUNGSI HASH SATU-ARAH UNTUK ENKRIPSI DATA Budi Maryanto Sekolah Tinggi Manajemen Informatika dan Komputer LIKMI Jl. Ir. H. Juanda 96 Bandung 40132 E-mail : budimaryanto@likmi.ac.id Abstrak Fungsi hash satu arah (one-way hash function) adalah salah satu algoritma kriptografi modern yang banyak dimanfaatkan untuk aplikasi pengamanan data seperti integrasi pesan dan otentikasi. Sesuai dengan namanya, fungsi ini bekerja dalam satu arah : pesan yang sudah diubah menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula. Dua pesan yang berbeda akan selalu menghasilkan nilai hash yang berbeda pula. Beberapa fungsi hash satu-arah yang sudah dikembangkan, antara lain : MD2, MD4, MD5, SHA (Secure Hash Function), RIPMEND, WHIRLPOOL. Dalam tulisan ini juga akan dipaparkan implementasi fungsi hash satu-arah menggunakan MD5 pada sebuah contoh riil enkripsi data. Kata-kata kunci : kriptografi, fungsi hash satu-arah, enkripsi, message-digest. 1. PENDAHULUAN Di dalam kriptografi terdapat sebuah fungsi yang sesuai untuk aplikasi keamanan seperti otentikasi dan integrasi pesan. Fungsi tersebut adalah fungsi hash, yaitu fungsi yang menerima string dengan panjang sembarang dan mengkonversinya menjadi string keluaran yang panjangnya tetap (fixed). Fungsi hash dapat menerima masukan string apa saja. Jika string menyatakan pesan (message), maka sembarang pesan M berukuran bebas dikompresi oleh fungsi hash H melalui persamaan : h = H(M). Keluaran fungsi hash disebut juga nilai hash (hash-value) atau pesan ringkas (message digest). Pada persamaan di atas, h adalah message digest dari fungsi H untuk masukan M. Dengan kata lain, fungsi hash mengkompresi sembarang pesan yang berukuran berapa saja menjadi message digest yang selalu tetap. 138

139 Budi Maryanto / Penggunaan Fungsi Hash Satu-Arah Untuk Enkripsi Data 2. KARAKTERISTIK FUNGSI HASH SATU-ARAH Fungsi hash satu-arah adalah fungsi hash yang bekerja dalam satu arah : pesan yang sudah diubah menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula. Dua pesan yang berbeda akan selalu menghasilkan nilai hash yang berbeda pula. Sifat-sifat fungsi hash satu-arah selengkapnya adalah sebagai berikut : 1. Fungsi H dapat diterapkan pada blok data berukuran berapa saja. 2. H menghasilkan nilai h dengan panjang tetap (fixed-length-output). 3. H(x) mudah dihitung untuk setiap nilai x yang diberikan. 4. Untuk setiap h yang diberikan, tidak mungkin menemukan x sedemikian sehingga H(x) = h. Itulah sebabnya fungsi H dikatakan fungsi hash satu-arah (one-way hash function). 5. Untuk setiap x yang diberikan, tidak mungkin mencari y x sedemikian sehingga H(y) = H(x). 6. Tidak mungkin (secara komputasi) mencari pasangan x dan y sedemikian sehingga H(x) = H(y). Keenam sifat di atas penting sebab sebuah fungsi hash seharusnya berlaku seperti fungsi acak. Sebuah fungsi hash dianggap tidak aman jika : 1. Secara komputasi dimungkinkan menemukan pesan yang bersesuaian dengan pesan ringkasnya. 2. Terjadi kolisi (collision), yaitu terdapat beberapa pesan berbeda yang mempunyai pesan ringkas yang sama. Fungsi hash bekerja secara iteratif. Masukan fungsi hash adalah blok pesan (M) dan keluaran dari hashing blok pesan sebelumnya : h i = H(M i, h i-1 ). Skema fungsi hash satu arah diperlihatkan pada gambar berikut ini : M i h i - 1 Fungsi Hash Satu Arah h i Gambar 1 Skema Fungsi Hash Satu Arah

Media Informatika Vol. 7 No. 3 (2008) 140 3. PENGEMBANGAN ALGORITMA FUNGSI HASH SATU-ARAH Ada beberapa fungsi hash satu-arah yang sudah dikembangkan, antara lain: MD2, MD4, MD5, SHA, RIPMEND, WHIRLPOOL, dan lain-lain. Pada Tabel 1 dipaparkan resume parameter beberapa fungsi hash. Pada bagian berikutnya akan dibahas secara khusus algoritma MD5 yang akan penulis gunakan dalam contoh riil implementasi fungsi hash satu-arah. Tabel 1 Beberapa Fungsi Hash Algoritma Ukuran Message Ukuran Blok Digest (bit) Pesan Kolisi MD2 128 128 Ya MD4 128 512 Hampir MD5 128 512 Ya RIPEMD 128 512 Ya RIPEMD-128/256 128/256 512 Tidak RIPEMD-160/320 160/320 512 Tidak SHA-0 160 512 Ya SHA-1 160 512 Ada cacat SHA-256/224 256/224 512 Tidak SHA-512/384 512/384 1024 Tidak WHIRLPOOL 512 512 Tidak 4. ALGORITMA MD5 MD5 adalah fungsi hash satu arah yang dibuat oleh Ronald Rivest pada tahun 1991. MD5 merupakan perbaikan dari MD4, setelah MD4 berhasil diserang cryptanalyst. Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan message digest yang panjangnya 128 bit. Gambaran pembuatan message digest dengan algoritma MD5 diperlihatkan dengan ilustrasi sebagai berikut

141 Budi Maryanto / Penggunaan Fungsi Hash Satu-Arah Untuk Enkripsi Data : Gambar 2 Pembuatan Message Digest dengan Algoritma MD5 Langkah-langkah pembuatan message digest secara garis besar adalah sebagai berikut : 1. Penambahan bit-bit pengganjal (padding bits). Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. Ini berarti panjang pesan setelah ditambah bit-bit pengganjal adalah 64 kurang dari kelipatan 512. Angka 512 ini muncul karena MD5 memproses pesan dalam blok-blok berukuran 512. Pesan dengan panjang 448 bit pun tetap ditambah dengan bit-bit pengganjal. 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 atas sebuah bit 1 diikuti dengan sisanya bit 0. 2. Penambahan nilai panjang pesan semula. Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambahi lagi dengan 64 bit yang menyatakan panjang semula. Jika panjang pesan > 2 64 maka yang diambil adalah panjangnya dalam modulo 2 64. Dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit yang ditambahkan menyatakan K modulo 2 64. Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512 bit.

Media Informatika Vol. 7 No. 3 (2008) 142 3. Inisialisasi penyangga (buffer) MD. MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 4 x 32 = 128 bit. 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 Beberapa versi MD5 menggunakan nilai inisialisasi berbeda, yaitu : A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325467 4. 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 H MD5. Gambaran proses H MD5 diperlihatkan dalam diagram Gambar 3. Dalam diagram tersebut diperlihatkan bahwa proses H MD5 terdiri atas 4 putaran, masing-masing putaran melakukan operasi dasar MD5 dengan frekuensi yang sama, dan setiap operasi dasar memakai sebuah elemen T. Juga ditunjukkan bahwa Y q menyatakan blok 512-bit ke-q dari pesan-pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MD q adalah nilai message digest 128-bit dari proses HMD5 ke-q. Pada awal proses, MD q berisi inisialisasi penyangga MD. Fungsi-fungsi f F, f G, f H, f I masing-masing berisi 16 kali operasi dasar terhadap masukan, setiap operasi dasar menggunakan elemen tabel T.

143 Budi Maryanto / Penggunaan Fungsi Hash Satu-Arah Untuk Enkripsi Data Gambar 3 Pengolahan Blok 512 Bit (Proses H MD5 ) 5. CONTOH IMPLEMENTASI Pada contoh implementasi ini, sebuah aplikasi berbasis web akan menyimpan data Password setiap user dalam keadaan ter-enkripsi. Aplikasi dibuat dengan PHP, sedangkan datanya disimpan dalam database MySQL. Gambar 4 Tampilan Form Input User Baru

Media Informatika Vol. 7 No. 3 (2008) 144 Berikut ini adalah script PHP yang memperlihatkan penggunaan fungsi MD5 untuk meng-enkripsi data Password. require('opendb.php'); $iduser = $_POST['iduser']; $namauser = $_POST['namauser']; $password = MD5($_POST['password']); $leveluser = $_POST['leveluser']; $sql = "insert into user values ('$iduser','$namauser','$password','$leveluser')"; $query = mysql_query($sql,$koneksi; Gambar 5 Script PHP untuk Menyimpan User Baru Data Password yang telah di-enkripsi lalu disimpan dalam MySQL. Berikut ini adalah tampilan datanya dalam MySQL : Gambar 6 Tampilan Data Ter-enkripsi dalam MySQL Gambar 7 Tampilan Form Log-in User Ketika user melakukan log-in, maka data Password yang di-inputkan akan dienkripsi terlebih dahulu, baru kemudian dibandingkan dengan data Password di dalam database (yang tersimpan dalam keadaan ter-enkripsi). Jika sama, maka log-in user berhasil dan ia dapat mengakses aplikasi tersebut. Sedangkan jika berbeda, maka akan ditampilkan pesan kesalahan bahwa ia tidak dapat mengakses aplikasi.

145 session_start(); require('opendb.php'); $iduser = $_POST['iduser']; Budi Maryanto / Penggunaan Fungsi Hash Satu-Arah Untuk Enkripsi Data $password = MD5($_POST['password']); $sql = "select iduser,password from user where iduser='$iduser'"; $query = mysql_query($sql,$koneksi); $data = mysql_fetch_array($query); if (($data[iduser] == $iduser) and ($data[password] == $password)) // iduser & password valid, user dapat mengakses aplikasi... dst Gambar 8 Script PHP untuk Otentikasi User Permasalahan yang akan muncul jika sebuah data disimpan dalam keadaan terenkripsi menggunakan fungsi hash satu-arah adalah bahwa data aslinya tidak dapat ditampilkan kembali (di-dekripsi), jadi tentu juga tidak dapat di-edit. Solusi yang dapat ditempuh untuk meng-edit data tersebut adalah dengan menggantinya dengan data yang baru (di-replace). 6. KESIMPULAN Fungsi hash satu-arah adalah fungsi hash yang bekerja dalam satu arah : pesan yang sudah diubah menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula. Dua pesan yang berbeda akan selalu menghasilkan nilai hash yang berbeda pula. Fungsi ini dapat menerima masukan string apa saja. Fungsi hash mengkompresi sembarang pesan yang berukuran berapa saja menjadi message digest yang selalu tetap. Beberapa algoritma telah dikembangkan menggunakan konsep fungsi hash satu-arah, antara lain : MD2, MD4, MD5, SHA, RIPMEND, WHIRLPOOL. Sebagai ilustrasi telah diperlihatkan contoh penggunaan MD5 untuk kebutuhan suatu proses otentikasi. Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan message digest yang panjangnya 128 bit.

7. DAFTAR PUSTAKA Media Informatika Vol. 7 No. 3 (2008) 146 [1]. Fred Piper & Sean Murphy, Criptography A Very Short Introduction, Oxford Press, 2002. [2]. Lukmanul Hakim, Membongkar Trik Rahasia Para Master PHP, Lokomedia, 2008. [3]. Rinaldi Munir, Kriptografi, Penerbit Informatika, 2006. [4]. Yesus Castagnetto, Proffesional PHP Programmimg, Wroxx Press, 1999..