APLIKASI KRIPTOGRAFI SEDERHANA MENGGUNAKAN FUNGSI HASHING (MD5) PADA MODUL PHP Eka Wahyu Hidayat Jurusan Teknik Informatika Fakultas Teknik Universitas Siliwangi Tasikmalaya ABSTRACT Computers network enable to do the activity of data change over and transfer from one computer to the others. There are some very important problems in delivery and acception of data in computer network, that is data security (confidentialy, authentication, integrity, non-repuditation). The problem can be overcome with cryptograph using MD5 (Message Digest 5). MD5 is a development of Hash Function Algorithm, which gives guarantee that data sending will be equal to data accepted. One of the computer network based programming language which providing Hash Function is PHP. PHP have standard procedure to protect data in the computer network by means of special library for the encrypted of data. PHP recognized two encrypts libraries those are MCRYPT and MHASH. In this research will be made an application for the encrypted of data in the form of string use MD5 hash function by exploiting PHP library, that is MHASH. Key Word: Cryptograph, MD5, MHASH ABSTRAK Jaringan komputer memungkinkan terjadinya kegiatan pertukaran data dari satu komputer ke komputer lain. Ada beberapa persoalan yang sangat penting dalam proses pengiriman dan penerimaan data dalam jaringan komputer, yaitu keamanan data (kerahasiaan, otentikasi, integritas, non-repudiasi). Persoalan tersebut dapat diatasi dengan kriptografi menggunakan MD5 (Message Digest 5). MD5 merupakan pengembangan dari Algoritma Fungsi Hash yang memberikan jaminan bahwa data yang dikirim akan sama dengan data yang diterima. Bahasa pemrograman berbasis jaringan komputer yang menyediakan Fungsi Hash salah satunya adalah PHP. PHP memiliki prosedur standar untuk mengamankan data-data pada jaringan komputer berupa library khusus untuk mengenkripsi data. Dalam PHP dikenal dua library enkripsi, yaitu MCRYPT dan MHASH. Pada penelitian ini akan dibuat sebuah aplikasi untuk mengenkripsi data berupa string menggunakan fungsi hash MD5 dengan memanfaatkan library PHP, yaitu MHASH. Kata Kunci: Kriptografi, MD5, MHASH. I. PENDAHULUAN
komputer
melalui
suatu
Perkembangan teknologi dewasa ini
komputer. Jaringan komputer termasuk
mengarah pada pemanfaatan teknologi
kedalam
informasi untuk mendukung aktifitas
informasi
pertukaran data dari satu tempat ke
sarana untuk
tempat lain menggunakan perangkat
informasi. Teknologi ini menjadi suatu
infrastruktur yang
digunakan
jaringan
teknologi sebagai
pertukaran data
dan
10
kebutuhan yang sangat penting untuk
Ada beberapa permasalahan yang perlu
mendukung aktifitas individu maupun
dipertimbangkan
kelompok dalam bertukar informasi.
sebuah aplikasi keamanan data yang
Internet
dari
baik, yaitu diperlukan biaya yang cukup
teknologi jaringan komputer. Meskipun
tinggi untuk rekayasa perangkat lunak
bukan
aplikasi
adalah
representasi
satu-satunya
media
untuk
untuk
keamanan
membuat
data,
pemilihan
pertukaran data dan informasi, internet
metode kriptografi yang tepat dan
paling
untuk
sesuai digunakan untuk aplikasi yang
pertukaran data. Media internet ini
akan direkayasa, dan kecenderungan
bersifat terbuka, maksudnya adalah
pemrograman internet
setiap data yang melewati jaringan
fungsi hashing yaitu salah satu bagian
komputer bisa dibaca oleh siapa saja
dari fungsi kriptografi satu arah yang
menggunakan
pemro-
siap pakai dan biasa disediakan sebagai
graman tertentu. Untuk itu diperlukan
modul pelengkap pada library bahasa
aplikasi keamanan agar kerahasiaan,
pemrograman tertentu.
otentikasi, integritas, dan non-repudiasi
Mengacu pada permasalahan tersebut
data pada saat proses pengiriman dan
akan dikembangkan sebuah aplikasi
penerimaan
terjaga.
keamanan data dengan usulan yang di
Kerahasiaan berarti bahwa data yang
ajukan adalah pembangunan sebuah
melalui jaringan komputer tidak dapat
aplikasi berbasis web sederhana untuk
dibaca
mengenkripsi
sering
digunakan
teknik-teknik
data
oleh
tetap
orang
yang
tidak
data
menggunakan
berupa
string
berkepentingan terhadap data tersebut.
menggunakan fungsi hash MD5 dengan
Otentikasi berarti memberikan jaminan
memanfaatkan
mengenai
Integritas
MHASH. String data yang akan di
berarti memberikan jaminan bahwa data
enkripsi di input dari sebuah form pada
tidak mengalami perubahan sewaktu
sisi Client dan diproses di Server,
melewati jaringan komputer, dengan
dengan output berupa nilai hash atau
kata lain data yang diterima sama
hasil enkripsi dalam bentuk binary dan
dengan
heksadesimal besera ukuran bloknya.
keaslian
data
yang
data.
dikirim.
Non-
library
PHP,
yaitu
repudiasi berarti pengirim data tidak dapat menyangkal bahwa data yang dikirim bukan darinya.
11
II. LANDASAN TEORI
variable baru yang unik dengan panjang
Kriptografi
tetap (biasanya lebih pendek atau
Kriptografi berasal dari bahasa Yunani,
berukuran jauh lebih kecil daripada
Cryptos
ukuran semula) melalui
(tersembunyi)
dan
Grafos
persamaan
kriptografi
h H (M) dimana h adalah nilai hash
berarti suatu cara melalui perhitungan
dari fungsi H untuk masukan string M,
matematika
keluarannya biasa disebut nilai hash dan
(tulisan).
Secara
umum
dengan
tujuan
untuk
menjaga nilai suatu informasi agar tidak
direpresentasikan
dimanfaatkan oleh pihak yang tidak
heksadesimal. Fungsi hash berjalan
berhak atas informasi tersebut. Kegiatan
hanya satu arah. Fungsi satu-arah (one-
kriptografi lebih kearah melakukan
way function) adalah fungsi hash yang
pengacakan
data
bekerja dalam satu arah, yaitu pesan
sedemikian rupa sehingga data tersebut
yang sudah diubah menjadi message
tidak bisa dibaca oleh pihak ketiga.
digest
Dalam
istilah
menjadi pesan semula dengan kata lain
Enkripsi (Encryption) dan Deskripsi
untuk menghitung nilai hash dari pre-
(Decryption). Enkripsi adalah proses
image tidaklah sulit, tetapi sangat sulit
pengacakan Plaintext (data sebelum
untuk membangkitkan pre-image dari
diacak)
(hasil
nilai hash-nya. Metode fungsi hash satu
Deskripsi
arah ini berfungsi melindungi data dari
mengembalikan
modifkasi selama data berada dalam
atau
masking
Kriptografi
menjadi
pengacakan). adalah
Ciphertext
Sedangkan
proses
Ciphertext
dikenal
ke
Plaintext.
Dalam
tidak
dalam
dapat
bilangan
dikembalikan
jaringan.
kriptografi terdapat sebuah fungsi yang
Salah
sesuai
keperluan
diantaranya adalah untuk memverifikasi
aplikasi keamanan seperti otentikasi dan
kesamaan salinan suatu arsip dengan
integritas pesan, yaitu fungsi hash.
arsip asli yang tersimpan di dalam
Fungsi Hashing
sebuah basis data terpusat. Biasanya
Fungsi hash adalah sebuah fungsi hasil
yang diverifikasi hanya nilai hash-nya
dari suatu persamaan matematika yang
saja, karena jika melakukan verifikasi
mengambil
arsip
digunakan
input
untuk
berupa
variable
satu
secara
aplikasi
fungsi
keseluruhan
hash
akan
dengan panjang variabel (preimage)
membutuhkan waktu transmisi cukup
bervariasi dan merubahnya menjadi
lama dan biaya yang tinggi.
12
kriptografi dengan cara memecahkan
Library MHASH Fungsi
Hashing
memiliki
banyak
Kunci Deskripsi.
ragam, salah satunya Mhash. Mhash
MD5 bekerja dengan cara mengolah
sendiri mendukung beragam algoritma
data masukan kedalam blok-blok bit
fungsi hashing dan disimpan sebagai
sebanyak 512 bit dan dibagi kedalam 16
pustaka pada Library Mhash seperti
subblok berukuran 32 bit. Keluaran
Adler32,
MD5 di set menjadi 4 blok yang
Hava128,
CRC32,
CRC32B,
Haval160,
Gost,
Haval192,
masing-masing
berukuran
32
bit,
Haval256, MD4, MD5, Ripemd160,
setelah digabungkan akan membentuk
Ripemd128, SHA1, SHA256, Tiger,
nilai hash 128 bit. Secara perhitungan
Tiger128, dan Tiger160. Sedangkan
matematis
untuk
library
memungkinkan untuk mendapatkan dua
proses
pesan berbeda dengan nilai hash yang
pembangkitan
Mhash
kunci,
mendukung
penggunaan
pembangkitan kunci dari Mcrypt, Asis,
sama.
Hex, Pkdes, Simple, Salted, dan Isalted.
Algoritma MD5
Library Mhash yang paling banyak
A
MD5
tidak
B
C
D
B
C
D
digunakan dalam keamanan jaringan F
komputer dan internet adalah MD5 atau messagedigest5.
Mi
Message Digest 5 Dalam sudut pandang ilmu kriptografi, MD5
adalah
rangkaian
algoritma
Ki <<<. s
Message Digest dan termasuk ke dalam Fungsi Hash satu arah. MD5 dirancang oleh Ron Rivest yang juga merupakan salah satu pengembang algoritma RSA pada tahun 1991 dengan tujuan untuk keamanan
data.
MD5
merupakan
perbaikan dari MD4 setelah ditemukan kelemahannya oleh Cryptanalysis, yaitu sebutan untuk pihak ketiga yang selalu mencari
kelemahan
setiap
fungsi
A
Gambar 1. Algoritma MD5. Algortima
MD5
beroperasi
pada
kondisi 128-bit, dibagi menjadi empat word 32-bit pada A, B, C dan D. Operasi tersebut di inisialisasi dijaga untuk tetap konstan. Algoritma utama
13
kemudian beroperasi
pada masing-
penggunaan PHP sebagai web scripting
masing blok pesan 512-bit, masing-
adalah kesederhanaan (simplicity) dan
masing blok melakukan pengubahan
memiliki banyak modul yang disimpan
terhadap
Tahapan
pada pustaka PHP dengan ektensi DLL.
pemrosesan blok pesan yaitu batasan
Ektensi DLL pada modul PHP bersifat
putaran dimana tiap putaran membuat
third party dan dapat dipanggil pada
16 operasi serupa berdasar pada fungsi
skrip PHP sebagai sebuah fungsi.
non-linier F, tambahan modular, dan
Fungsi-fungsi yang ada pada PHP salah
melakukan
rotasi
ke
Fungsi
satunya adalah fungsi MHASH untuk
kompresi
yang
digunakan
oleh
enkripsi data menggunakan metoda
kondisi
pesan.
kiri.
algoritma md5 adalah
Hashing.
a b (a g(b, c, d) M[i] K[i] s) dimana g adalah salah fungsi primitif
III. METODE PENELITIAN
pada F yaitu:
Metodologi penelitian yang dilakukan
F(X, Y, Z) (X Y) (X Z) G(X, Y, Z) (X Z) (Y Z) H(X, Y, Z) X Y Z I(X, Y, Z) Y (X Z)
pada penelitian ini adalah sebagai berikut: 1. Studi
, , , adalah operasi logika untuk XOR, AND, OR dan NOT, sehingga ada empat macam kemungkinan fungsi non-linier yang digunakan pada tiaptiap putaran.
sebelum
penelitian
memulai
melalui
jurnal-jurnal,
dan
literatur
buku-buku, artikel-artikel
yang berhubungan dan menunjang penelitian ini.
yang didapat pada studi literatur
PHP merupakan server-side embedded scripting language, yaitu bahasa berupa pemrograman
dilakukan
studi
2. Pembuatan Program Aplikasi, hasil
PHP Hypertext Preprocessor
skrip
Literatur,
yang
dapat
disisipkan pada dokumen HTML dan bekerja pada lingkungan server seperti Apache dan IIS. Semua sintaks PHP pada dokumen HTML dijalankan pada server sedangkan yang dikirimkan ke
diterjemahkan rancangan
menjadi
antarmuka
suatu interaksi
untuk memasukkan nilai string yang akan
di
enkripsi
diimplementasikan
dan menjadi
program aplikasi untuk memproses nilai masukan menggunakan metode hashing MD5.
browser hanya hasilnya saja. Alasan 14
3. Pengujian, terhadap
pengujian hasil
program
dilakukan
1. Dialog layar berupa form untuk
implementasi
memasukkan data yang akan di-
aplikasi
dikembangkan.
Jika
yang pada
enkripsi.
saat
2. Dialog layar untuk menampilkan
pengujian ditemukan kekurangan
hasil enkripsi dari data yang di-input
maka dilakukan studi literatur dan
pada form masukkan.
memperbaiki program aplikasi yang
3. Diperlukan suatu file pada modul
dibuat hingga tujuan yang ingin
PHP yang berguna untuk melakukan
dicapai terpenuhi.
hashing yaitu php_mhash.dll. Pemodelan Sistem
IV. HASIL DAN PEMBAHASAN
Pemodelan sistem dilakukan terhadap
Hasil dan pembahasan dalam penelitian
kinerja sistem dalam melakukan proses
ini di representasikan melalui beberapa
enkripsi suatu data. Adapun alur proses
tahapan yaitu:
enkripsi digambarkan pada gambar
1. Melakukan analisis terhadap proses
berikut:
enkripsi
dari suatu
nilai
input
Data
Library PHP
sehingga menghasilkan suatu nilai
Fungsi MHASH
hash. 2. Menyusun hasil analisis kedalam pemodelan sistem.
Enkripsi
3. Pengkodean yaitu menulis script PHP
sampai
menghasilkan
Hash Value
antarmuka pengguna. 4. Setting atau pengaturan web server dan modul-modul yang diperlukan. 5. Pengujian terhadap aplikasi yang
Tahapan ini melakukan penyusunan
rancangan sesuai pemodelan sistem
Analisis Proses Enkripsi analisis
Pengkodean
skrip php untuk mengimplementasikan
dibuat.
Dari
Gambar 2. Alur Proses Enkripsi
diperoleh
sistem diantaranya yaitu:
kebutuhan
yaitu implementasi proses enkripsi. Kegiatan tahapan ini adalah: 1. Membuat antarmuka input data.
15
2. Membuat skrip pemanggilan dan pemrosesan
fungsi
hash
menggunakan MD5. 3. Membuat
instalasi dan pengaturan PHP dan Apache ini digunakan WampServer yang sudah terintegrasi dengan cukup
skrip
pemrosesan
baik. Karena pada tahapan analsis
menggunakan metode hashing lain.
diperlukan suatu file pada modul PHP
4. Membuat antarmuka hasil enkripsi.
yang berguna untuk melakukan hashing
Hasil
dan
yaitu php_mhash.dll maka modul ini
pengembangan serta instalasi sistem,
harus diaktifkan terlebih dahulu melalui
akan
Php Extensions pada config file php.ini.
dari
perancangan
diperoleh
kriptografi
sebuah
sederhana
aplikasi
menggunakan
Pengujian Aplikasi
fungsi hashing (MD5) pada modul php.
Pengujian
Gambar 3 menunjukkan antarmuka
terhadap
untuk melakukan input data yang akan
menggunakan MD5 yang dibuat dengan
di
memasukkan
enkripsi,
menunjukkan terhadap
data
sedangkan hasil yang
gambar
proses
4
enkripsi
di-input
pada
gambar 3.
Gambar 3. Antarmuka Input Data Pengaturan Web Server Intalasi PHP diperlukan agar sistem yang dibuat dapat berjalan pada web server. Web server yang digunakan
aplikasi
ini
aplikasi
bermacam
dilakukan kriptografi
input
data
sehingga dihasilkan suatu nilai hash. Kasus 1 Dicoba untuk melihat nilai hash dimana tidak ada nilai input atau null („ „) pada form masukkan. Hasilnya: d41d8cd98f00b204e9800998ecf8427e Kasus 2 Dicoba untuk melihat nilai hash dengan input ‟Informatika‟. Hasilnya: 270007185d0f4b290ded51f9345a7f29 Kasus 3 Perubahan yang kecil pada input akan menghasilkan hash yang benar-benar berbeda, misalnya pada kata ‟Informatika‟, huruf ‟f‟ diganti menjadi ‟p‟ sehingga input menjadi „Inpormatika‟, Hasilnya: a1fb6d9d116be440f4c5236faf7fccc5 Kasus 4 Mencoba untuk melihat nilai hash untuk nilai input yang lebih panjang yaitu „Teknik Informatika Fakultas Teknik Universitas Siliwangi Tasikmalaya‟. Hasilnya: 753f86fc971a8a8778f314017d81e0b9
adalah Apache. Untuk mempermudah 16
Gambar 4. Tampilan Hasil Pemrosesan
V. KESIMPULAN DAN SARAN
didapat nilai hash yang sama untuk
Beberapa kesimpulan dapat diperoleh
input masukan yang berbeda.
selama penelitian ini adalah: 1. Message
Digest
5
3. Diperlukan
Web
Server
untuk
(MD5)
memanggil fungsi MHASH pada
merupakan fungsi Hash satu arah
PHP karena script PHP bersifat
yang mengubah masukan berupa
embedded
variabel menjadi keluaran berupa
eksekusi pada sisi server.
nilai hash dalam bentuk umum
dan
hanya
komputer
yaitu 128 Bit dengan ukuran blok 16
kecepatan enkripsi. Saran
2. Input data yang sama, setelah dilakukan
enkripsi
di
4. Sumber daya komputer dan jaringan
heksadesimal dengan panjang tetap
bytes.
bisa
yang
penelitian
berpengaruh
bisa ini
terhadap
diberikan
untuk
adalah
untuk
akan
mendapatkan nilai hash yang powerfull
menghasilkan nilai hash yang sama.
dan sulit dilakukan pelacakkan karena
Itu berarti bahwa tidak mungkin
salah satu cara untuk membongkar atau mengetahui data dibalik nilai hash 17
adalah
melalui
Brute-Force
atau
pelacakan terbalik. Untuk itu aplikasi MD5
dapat
dikombinasikan
atau
digabung dengan algoritma kriptografi lainnya
sehingga
didapat
Irvan Prama Defindal., “Penggunaan Enkripsi dalam PHP Menggunakan Library MHASH”., ITB
aplikasi
kriptografi yang lebih handal.
DAFTAR PUSTAKA A. Menezes, P. Van Oorschot, S. Vanstone., “Handbook of applied Cryptography”., CRC Press., 1996. B. Schneider, “Applied Cryptography”., John Wiley & Sons., New York., 1994.
J. Castagnetto, H. Rawat, S. Schumann, C. Scollo, D. Veliath., “Professional PHP Programming”., Wrox Press., 1999. Pfleeger, Charles P, “Security in Computing Second Edition”., PrenticeHall International., New Jersey., 1997. http://en.wikipedia.org/wiki/md5 http://mhash.sourceforge.net/ http://md5.rednoize.com/ http://www.cryptography.org/ http://www.md5encryption.com/
Didik Dwi Prasetyo., “PHP dan MySQL”., Elex Media Komputindo., Jakarta., 2003.
18