Autentikasi dengan metode MD5 one way hash function challenge response pada web-based transaction - USD Repository

Autentikasi Dengan Metode MD5 One Way Hash Function
Challenge Response Pada Web-Based Transaction

Disusun Oleh :
Yohana Sinta Dewi Sari

055314116

JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2010

AUTENTIKASI DENGAN METODE MD5 ONE WAY HASH
FUNCTION CHALLENGE-RESPONSE PADA WEB-BASED
TRANSACTION
Tugas Akhir
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika


Disusun oleh:
Yohana Sinta Dewi Sari
NIM: 055314116

PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2010

i

AUTHENTICATION USING MD5 ONE WAY HASH FUNCTION
CHALLENGE-RESPONSE IN WEB-BASED TRANSACTION

Final Project
Presented as Partial Fulfillment of the Requirements
To Obtain Sarjana Teknik Degree
In Informatics Engineering Department


Arranged by :
Yohana Sinta Dewi Sari
Student number : 055314116

INFORMATICS ENGINEERING STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2010

ii

HALAMAN PERSEMBAHAN

Kupersembahkan karyaku ini kepada
My Lovely Heaven Father, Jesus Christ and Mother, Mary,
(You are the strength, best friends, nothing impossible in you)
Malaikat Gabriella Bonino,
(Malaikat pelindungku yang selalu setia menjaga, melindungiku)

Segenap keluarga, Bapak, Ibu, Kakak-kakakku, Adik-adikku,
(Kalian lah harta terindah dan sumber inspirasi yang ku miliki)
Almamater Teknik Informatika Universitas Sanata Dharma
(yang telah mendidik, mendampingi hingga Tugas Akhir ini selesai)
Seluruh teman-teman,
(Kalian sungguh sahabatku yang selalu ada untukku)

v

HALAMAN MOTTO

Kala kita benar-benar sudah angkat tangan,
Tuhan pasti akan segera turun tangan.
Engkau teman sehati, kita teman sejati, hadapilah dunia
genggam tangan ku,
(arti sahabat, untuk semua keluarga, teman-teman)
Memories are bittersweet, the good times we can’t repeat

vi


INTISARI

MD5 merupakan salah satu contoh algoritma hash yang hampir sama dengan
proses enkripsi tetapi tidak dapat digunakan untuk proses dekripsi. Algoritma MD5
ini dikembangkan oleh Profesor Ronald Rivest pada tahun 1991. Algoritma MD5
telah berkembang pesat dalam berbagai aplikasi karena tingkat keamanan, kecepatan
dan sederhana dalam design.
Sistem ini dibangun untuk dua pihak, yaitu pihak pengguna (client) dan pihak
administrator (server). Untuk menghubungkan ke-dua pihak tersebut digunakan
protokol Challenge-Response. Cara kerja protokol Challenge-Response yaitu server
menyediakan dan memberi challenge, sedangkan client mengolah challenge dan
memberi response. Protokol Challenge-Response digunakan dalam beberapa aplikasi
yang menghindarkan adanya transfer password secara langsung.
Tujuan dari Tugas Akhir ini adalah mengimplementasikan algoritma MD5
dengan protokol Challenge-Response untuk melakukan hash masukan berupa
password yang telah di hash, yang akan disambung dengan Challenge. Hasil
implementasi berupa kode hash yang berbeda walaupun dengan Challenge yang sama
dan algoritma yang sama.

vii


ABSTRACT

MD5 is one of any other hash algorithms looks like encryption, but can’t do
decryption. It was created by Professor Ronald Rivest in 1991. MD5 have been
developed in many applications because of the safety, quickly in processing and
simplicity in design.
The system was built for two sides, namely client side and server side.
Challenge-Response Protocol is used to connect them. In Challenge-Response
Protocol, server will provide and give challenge, in the other hand client will generate
challenge and sent response. Challenge-Response Protocol is used in any applications
to avoid the transfer password directly.
The purpose of this final assignment is to see the implementation of MD5
algorithm using Challenge-Response Protocol for hashing input like a hashed
password concated by challenge. The output of this implementation like hash code
and never equal although using the same challenge and the same algorithm.

viii

KATA PENGANTAR


Puji dan syukur kepada Tuhan Yang Maha Esa atas segala rahmat, kasih dan
bimbingan-Nya sehingga penulis dapat menyelesaikan penulisan Tugas Akhir yang
berjudul ” Autentikasi dengan Metode Md5 One Way Hash Function ChallengeResponse pada Web-Based Transaction”. Tugas Akhir ini disusun guna memenuhi
salah satu syarat untuk memperoleh gelar Sarjana Teknik di Jurusan Teknik
Informatika, Universitas Sanata Dharma.
Penyusunan Tugas Akhir ini tidak terlepas dari doa, bantuan, bimbingan serta
dukungan dari berbagai pihak yang sangat bermanfaat bagi penulis. Dalam
kesempatan ini, penulis mengucapkan terimakasih yang tak terhingga kepada :
1. Bapak Bambang Soelistijanto, S.T.,M.Sc. selaku dosen pembimbing atas segala
kesabaran, bimbingan dan bantuannya dalam membimbing penulis dalam
menyelesaikan Tugas Akhir ini.
2. Bapak Albertus Agung Hadhiatma,S.T., M.T. dan Ibu Sri Hartati Wijono,S.Si.,
M.Kom. selaku dosen penguji atas saran dan masukan demi kesempurnaan Tugas
Akhir ini.
3. Para dosen Universitas Sanata Dharma yang telah membantu dan memberi bekal
pengetahuan kepada penulis.
4. Para karyawan dan staff

Fakultas Sains dan Teknologi, khususnya Jurusan


Teknik Informatika, atas segala bantuan yang diberikan kepada penulis.
5. Bapak, ibu, kakak-kakak, adik-adik tersayang yang telah memberikan perhatian,
doa, dukungan yang sangat besar kepada penulis.
6. Seluruh teman-teman yang tidak dapat penulis sebutkan, atas kesediaan
membantu, menemani, dan mendengarkan keluh kesah.
7. Semua pihak yang telah membantu penulis menyelesaikan studi dan Tugas Akhir,
yang tidak dapat disebutkan satu per satu.

xi

Semoga segala kebaikan yang telah penulis terima menjadi berkat dan bekal yang
sangat berharga di kehidupan penulis nantinya. Penulis menyadari bahwa penulisan
Tugas Akhir ini masih jauh dari kesempurnaan, oleh sebab itu penulis mengharapkan
kritik dan saran dari pembaca yang bersifat membangun. Atas kritik dan saran yang
diberikan, penulis mengucapkan terima kasih.

Yogyakarta, Januari 2010
Penulis,


xii

DAFTAR ISI
HALAMAN JUDUL ....................................................................................................i
HALAMAN JUDUL BAHASA INGGRIS .................................................................ii
HALAMAN PERSETUJUAN ....................................................................................iii
HALAMAN PENGESAHAN .....................................................................................iv
HALAMAN PERSEMBAHAN ...................................................................................v
HALAMAN MOTTO ..................................................................................................vi
INTISARI ...................................................................................................................vii
ABSTRACT ..............................................................................................................viii
LEMBAR PERNYATAAN PERSETUJUAN ............................................................ix
PERNYATAAN KEASLIAN KARYA .......................................................................x
KATA PENGANTAR .................................................................................................xi
DAFTAR ISI .............................................................................................................xiii
DAFTAR GAMBAR .................................................................................................xvi
DAFTAR TABEL ..................................................................................................xviii
BAB 1 PENDAHULUAN
1.1 Latar Belakang Masalah .............................................................................1
1.2


Rumusan Masalah .......................................................................................2

1.3

Batasan Masalah .........................................................................................3

1.4

Tujuan .........................................................................................................3

1.5

Manfaat .......................................................................................................4

1.5

Metode Penelitian .......................................................................................4

1.7


Sistematika Penulisan .................................................................................5

BAB 2 LANDASAN TEORI
2.1

Pengantar Kriptografi .................................................................................6
2.1.1 Komponen Kriptografi .....................................................................6
2.1.2 Algoritma Kriptografi ......................................................................7

xiii

2.1.3 Tujuan Kriptografi ...........................................................................9
2.2

Jenis Serangan Terhadap Keamanan Data ................................................10
2.2.1 Pengiriman Password Dan Permasalahannya ................................12

2.3


Autentikasi ................................................................................................17
2.3.1 Sistem Autentikasi .........................................................................18
2.3.2 Protokol Challenge Response ........................................................20
2.3.3 Autentikasi Dengan Protokol Challenge Response .......................23

2.4

Algoritma Hash Function .........................................................................25
2.4.1 Sifat-Sifat Fungsi Hash Kriptografi................................................25
2.4.2 Fungsi Hash Satu Arah (One Way Hash Function) ……………...26
2.4.3 Kegunaan One Way Hash Function ……………………………..28
2.4.4 Kelebihan dan Kekurangan fungsi Hash .......................................29

2.5

Message Digest 5 (MD5) .........................................................................30
2.5.1 Kelemahan (vulnerability) MD5 ...................................................38
2.5.2 Pemecahan Masalah Serangan MD5 .............................................39
2.5.3 Kelebihan dan Kekurangan MD5 .................................................40

2.6

Pembangkit Bilangan Random .................................................................41
2.6.1 Fungsi Pembangkit Bilangan Acak Pada PHP...............................41

BAB 3 ANALISA DAN PERANCANGAN SISTEM
3.1

Analisa Sistem ..........................................................................................43
3.1.1 Use Case Diagram …….................................................................44
3.1.2 Entity Relational Diagram ............................................................45
3.1.3 Data Flow Diagram (DFD) ...........................................................47

3.2 Analisa Teknologi ....................................................................................50
3.3 Analisa Algoritma MD5 ...........................................................................50
3.4

Perancangan Sistem .................................................................................53
3.4.1 Perancangan User Interface Web ..................................................53
3.4.2 Aplikasi Kalkulator Hash Sederhana ............................................55

xiv

BAB 4 IMPLEMENTASI PROGRAM
4.1

Implementasi Program ..............................................................................58
4.1.1 Implementasi User Interface Web .................................................58
4.1.2 Aplikasi Program Java ...................................................................65

BAB 5 UJI COBA DAN ANALISA HASIL
5.1

Uji Coba ....................................................................................................69

5.2

Analisa Hasil .............................................................................................74

5.3

Analisa Piranti Pengembang .....................................................................75

BAB 6 KESIMPULAN DAN SARAN
6.1

Kesimpulan .....................................................................................76

6.2

Saran ...............................................................................................77

DAFTAR PUSTAKA .................................................................................................78

xv

DAFTAR GAMBAR
Gambar 2.1 Diagram proses enkripsi dan dekripsi ....................................................7
Gambar 2.2 Kunci simetris ..........................................................................................8
Gambar 2.3 Kunci asimetris ........................................................................................8
Gambar 2.4 Fungsi hash .............................................................................................9
Gambar 2.5 Pengiriman password p dalam bentuk plainteks ...................................12
Gambar 2.6 Pengiriman password p dalam keluaran fungsi hash ...........................12
Gambar 2.7 Verifikasi password yang dikirim dalam bentuk digest .......................13
Gambar 2.8 Replay attack pada pengiriman password dalam bentuk plainteks …..14
Gambar 2.9 Verifikasi password dengan satu kali hash ...........................................15
Gambar 2.10 Verifikasi password dengan 2 kali hash ..............................................16
Gambar 2.11 Two Way Challenge Response Protokol …………………………….21
Gambar 2.12 Three Way Challenge Response I Protokol …………………………21
Gambar 2.13 Reflection Attack ……………………………………….……………22
Gambar 2.14 One Way Function ……………………………………………..……22
Gambar 2.15 Autentikasi dengan Trusted Party .......................................................23
Gambar 2.16 Autentikasi dengan Challenge Response Protokol ..............................24
Gambar 2.17 Algoritma-algoritma hash ...................................................................25
Gambar 2.18 Hash function dengan MD5 ................................................................26
Gambar 2.19 Fungsi hash dari suatu teks .................................................................27
Gambar 2.20 Ilustrasi fungsi one way .......................................................................28
Gambar 2.21 Proses setiap putaran pengolahan pesan dalam bok 512 bit .............32
Gambar 2.22 Operasi dasar proses pengolahan pesan dalam blok 512 bit .............33
Gambar 2.23 Empat tahapan MD5 ...........................................................................35
Gambar 3.1 Use Case Diagram ................................................................................44
Gambar 3.2 Entitas account_client ...........................................................................45
Gambar 3.3 Diagram Konteks ...................................................................................47
Gambar 3.4 Konfigurasi Star ....................................................................................48
Gambar 3.5 Diagram Berjenjang Sistem Autentikasi Client ....................................48
Gambar 3.6 Diagram Alir Data Level 1 ....................................................................49
Gambar 3.7 Diagram alir algoritma MD5 secara umum .........................................52
Gambar 3.8 Rancangan Form Login ........................................................................53
Gambar 3.9 Rancangan Form Response Client ........................................................54
Gambar 3.10 Rancangan Form Hashing Client .......................................................55
Gambar 4.1 Diagram alir sistem autentikasi ............................................................57
Gambar 4.2 Halaman utama web home.php .............................................................58
Gambar 4.3 Halaman web login.php ........................................................................60
Gambar 4.4 Halaman Challenge Response CR.php ……………………………….62
Gambar 4.5 Dialog box untuk client yang autentik ...................................................63
Gambar 4.6 Halaman Products, Services product.php …………………………….63
Gambar 4.7 Halaman E-Banking online .php ……………………………………...64

xvi

Gambar 4.8 Halaman About about .php …………………………………………...65
Gambar 4.9 Kalkulator hash sisi client .....................................................................66
Gambar 4.10 Dialog box pesan error .......................................................................68
Gambar 5.1 Uji Coba ke-1 Avalanche Effect 1bit .....................................................69
Gambar 5.2 Uji Coba ke-2 Avalanche Effect 1 bit ....................................................70
Gambar 5.3 Uji Coba ke-3 Avalanche Effect 1 bit ....................................................70
Gambar 5.4 Uji Coba ke-4 Avalanche Effect 1 bit ....................................................71
Gambar 5.5 Uji Coba ke-5 Avalanche Effect 1 bit ....................................................71
Gambar 5.6 Uji Coba ke-6 Avalanche Effect 1 bit ....................................................72
Gambar 5.7 Uji Coba ke-7 Avalanche Effect 1 bit ....................................................72

xvii

DAFTAR TABEL
Table 2.1 Sistem autentikasi client server ………………………………….....…...19
Tabel 2.2 Fungsi-fungsi dasar MD5 ………………………………………….…....34
Tabel 3.1 Relational Model Client …………………………………………….....…45
Tabel 3.2 Physical Design ………………………………………………….........…46

xviii

BAB 1
PENDAHULUAN
1.1 Latar Belakang Masalah
Keamanan atau sekuritas merupakan salah satu hal yang harus
diperhatikan dalam setiap permasalahan yang ada, salah satu nya

dalam

sistem jaringan

saling

komputer.

Semakin

banyak

komputer

yang

berhubungan dalam suatu jaringan dan semakin banyaknya user yang
memakai komputer, maka keamanan suatu data maupun informasi akan
menjadi sangat rentan terhadap ancaman-ancaman (attack) dari pihak-pihak
yang tidak berwenang (pihak ke-3). Salah satu masalah yang sering di jumpai
dalam sistem kemanan komputer yaitu bagaimana komputer (server)
mengetahui bahwa seseorang (client) yang masuk di dalam koneksi jaringan
adalah orang yang benar-benar kita harapkan. Dengan arti lain, hal ini
merupakan proses autentikasi, dimana setiap kali client mengidentifikasikan
dirinya dengan komputer server, maka server akan memastikan keautentikasi-an dari data client tersebut.
Terdapat beberapa metode yang sering digunakan untuk proses
autentikasi seperti dengan metode pengiriman password secara langsung,
pengiriman password secara terenkripsi, dll. Tetapi metode yang dianggap
lebih aman yaitu dengan tidak mengirimkan password secara langsung. Salah
satu metode yang menerapkan konsep tentang pengiriman password secara
tidak langsung yaitu dengan menggunakan protokol autentikasi “ChallengeResponse”. Challenge-Response merupakan suatu protokol dalam komputer
security

dimana salah satu pihak bertindak sebagai penyedia pertanyaan

(Challenge) dan pihak satunya bertindak sebagai penjawab pertanyaan
(Response). Sehingga dalam metode Challenge-Response ini memerlukan
paling sedikit 2 pihak yang saling berhubungan. Protokol yang digunakan

1

dalam Challenge-Response yaitu berupa protokol “ two way challengeresponse” dan ” three way challeng- response”.
Proses autentikasi dalam tugas akhir ini yaitu berupa password atau
PIN (Personal Identification Number). PIN ini akan disimpan oleh setiap
orang dan hanya orang yang mempunyai kartu yang mengetahuinya. PIN
tersebut merupakan kunci private yang akan disambung dengan bilangan
random yang menjadi tantangan (Challenge) dari server untuk menghasilkan
kode hash sebagai response server. Dalam tugas akhir ini akan menghindari
pengiriman password terenkrip (encrypted password) melalui web, sehingga
akan menghindarkan dari berbagai macam serangan atau penyusup yang
mencoba mencari tahu password.

1.2 Rumusan Masalah
Dari latar belakang masalah di atas maka masalah yang akan dibahas
dalam laporan pra TA ini adalah
Bagaimana mempelajari atau meneliti keamanan transaksi dengan cara
autentikasi yang berbasiskan protokol challenge-response. Hal tersebut dapat
dilakukan dengan cara :
a. Bagaimana client mendapatkan nilai hash akhir dari perpaduan antara
bilangan random yang diberikan oleh server dengan password yang
dimilikinya yang nantinya akan menjadi response terhadap server.
b. Bagaimana server dapat membangkitkan bilangan random desimal yang
akhirnya akan dijadikan sebagai challenge client.
c. Bagaimana server dapat mengetahui bahwa client yang masuk sesuai yang
diinginkan (intended client), yaitu dengan membandingkan kode hash
yang dihitung server dengan kode hash yang dimasukkan client tersebut.
d. Melakukan tahapan cryptanalysis untuk menguji tingkat kemanan
protokol ”one way function”.

2

1.3 Batasan Masalah
Ruang lingkup penulisan laporan pra TA ini yaitu membahas tentang
sistem autentikasi yang berbasiskan web. Adapun batasan-batasan yang
dilakukan yaitu antara lain :
a. Aplikasi kalkulator sederhana yang digunakan oleh komputer client untuk
mengolah bilangan random dan password dengan menggunakan bahasa
pemrograman Java. Hasil akhir dari perhitungan dengan menggunakan
aplikasi ini yaitu berupa bilangan heksadesimal 32 digit (4 blok x 8
bilangan heksadesimal), tetapi yang akan digunakan sebagai response
hanya 1 blok.
b. Interface berupa web untuk menghubungkan antara client dengan server
dengan menggunakan bahasa pemrograman PHP.
c. Algoritma untuk melakukan proses autentikasi dengan menggunakan
algoritma hash yaitu MD5.
d. Protokol yang digunakan untuk transfer challenge-response yaitu dengan
menggunakan protokol “Two Way Challenge-Response” yang telah
dimodifikasi menjadi “One Way Challenge-Response” karena hanya 1
pihak saya yang akan di-autentikasi yaitu pihak client.
e. Tidak membahas detail transaksi setelah proses autentikasi berhasil.
f. Tidak menangani client untuk proses ganti password. Dalam hal ini
password client di set saat pertama kali client mendaftarkan dirinya
sebagai account.

1.4 Tujuan
Adapun tujuan yang hendak dicapai melalui penulisan laporan pra TA
ini yaitu :
Mengimplementasikan algoritma hash MD5 One Way Hash Function yang
dapat digunakan oleh server untuk mengetahui ke-autentikasi-an dari client
yang masuk.

3

1.5 Manfaat
Manfaat yang akan diperoleh dari tugas akhir ini adalah :
Keamanan transaksi dengan cara autentikasi yang berbasiskan protokol
Challenge-Response. Dalam transaksi ini akan menghindari adanya transfer
password (PIN) secara langsung dalam transaksi berdasarkan web yang
kemungkinan dapat diubah atau diserang oleh penyusup.

1.6 Metode Penelitian
Metode penelitian yang dilakukan yaitu dengan melakukan studi kasus
dengan langkah-langkah sebagai berikut:
a. Melakukan studi kepustakaan untuk mencari dan mempelajari metodemetode hashing yaitu dengan metode MD5 One Way Hash Function, dan
pembangkitan bilangan random dengan menggunakan salah satu fungsi
yang terdapat pada PHP. Mencari bahan dari berbagai sumber untuk
mencari bahan kajian yang sesuai dengan sistem yang dibuat. Bahan
kajian yang digunakan dapat berasal dari buku artikel, internet.
b. Implementasi dan uji coba sistem
Dengan cara menerapkan hasil rancangan ke dalam sebuah program
(kode) yang dapat dimengerti oleh mesin sehingga akan menghasilkan
sebuah program yang bisa digunakan untuk proses autentikasi pada unit
server dan dapat melakukan perhitungan challenge pada unit client.

c. Cryptanalysis (analisa kriptografi)
Dengan cara melakukan analisa tentang adanya avalanche effect,reflection
attack, birthday paradoks, kerandoman challenge serta analisa hasil hash
(response) yang dihasilkan.

4

1.7 Sistimatika Penulisan
Sistimatika penulisan laporan pra TA ini yaitu terdiri dari lima (6) bab:
BAB 1 PENDAHULUAN
Dalam bab ini diungkapkan mengenai latar belakang masalah, batasan
masalah, tujuan penelitian, rumusan masalah, manfaat penelitian, metode
penelitian dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Dasar teori ini menjelaskan tentang teori-teori yang bersangkutan dan
yang mendukung yang diperlukan sesuai masalah yang terjadi.
BAB 3 ANALISA DAN PERANCANGAN SISTEM
Perancangan sistem ini menjelaskan tentang rancangan dari setiap
sistem secara mendetail, meliputi perancangan input output, perancangan
proses dan juga perancangan interface yang digunakan.
BAB 4 IMPLEMENTASI
Pada bagian ini akan membahas tentang implementasi program yang
digunakan untuk proses autentikasi client.
BAB 5 ANALISA HASIL
Pada bagian ini akan menganalisa hasil yang telah didapatkan selama
proses implementasi program, dimana dalam bagian ini meliputi tentang
analisa hasil perangkat lunak, dan juga analisa hasil perangkat keras.
BAB 6 KESIMPULAN DAN SARAN
Pada bagian penutup ini akan membahas tentang kesimpulan dan juga
saran-saran yang didapat selama penyelesaian skripsi ini.

5

BAB 2
LANDASAN TEORI
2.1 Pengantar Kriptografi
Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto
berarti secret (rahasia), dan graphia berarti writing (tulisan). Sehingga
kriptografi berarti ilmu dan seni untuk menjaga keamanan pesan ketika pesan
dikirim dari suatu tempat ke tempat lain (Ariyus, 2008).
Kriptografi

yaitu

pengamanan

data

atau

informasi

dengan

menggunakan kode rahasia (secret code). Atau dapat diartikan metode untuk
meng-enkripsi (menyembunyikan) dan men-dekripsi (memunculkan) data
atau informasi dengan bantuan kunci.
2.1.1 Komponen Kriptografi
Beberapa komponen dalam kriptografi yaitu :
1. Ciphertext : merupakan suatu pesan yang telah melalui proses
enkripsi atau hasil keluaran dari proses hash kriptografi. Pesan
yang ada pada teks kode ini tidak bisa dibaca karena berupa
karakter-karakter yang tidak mempunyai makna (arti).
2. Plaintext : sering disebut juga dengan cleartext. Teks asli ini
merupakan pesan yang ditulis atau diketik yang memiliki makna.
Teks asli inilah yang diproses menggunakan algoritma kriptografi
untuk menjadi ciphertext.
3. Enkripsi : merupakan pengamanan data yang dikirimkan agar
terjaga kerahasiaannya. Pesan asli disebut dengan plaintext, yang
diubah menjadi kode-kode yang tidak dimengerti. Enkripsi bisa
diartikan sebagai kode atau cipher. Enkripsi merupakan suatu
penyembunyian pesan.

6

4. Dekripsi : merupakan kebalikan dari enkripsi. Pesan yang telah
dienkripsi akan dikembalikan ke bentuk aslinya, sehingga dekripsi
merupakan pemunculan pesan. Algoritma untuk dekripsi berbeda
dengan algoritma untuk enkripsi.
5. Kunci : kunci disini digunakan untuk proses enkripsi dan dekripsi.
Ada 2 bagian kunci, yaitu kunci rahasia (private key) dan kunci
umum (public key).
6. Cryptanalysis : bisa diartikan sebagai analisis kode atau suatu ilmu
untuk mendapatkan teks asli tanpa harus mengetahui kunci yang
sah secara wajar.
7. Cryptanalysts : orang yang ahli dalam bidang analisis kriptografi
atau orang yang melakukan cryptanalysis.
8. Cryptographic sistem atau cryptosistem : suatu fasilitas untuk
mengkonversi plainteks ke cipherteks dan sebaliknya.
Proses perubahan pesan atau data dapat digambarkan sebagai berikut :

 
Gambar 2.1 Diagram proses enkripsi dan dekripsi

2.1.2 Algoritma Kriptografi
Secara umum terdapat 3 macam algoritma dalam kriptografi
berdasarkan kunci yang dipakai, yaitu :

7

a. Algoritma Simetrik
Dalam algoritma symetric ini,kunci untuk proses enkripsi dan
dekripsi pada dasarnya sama, sehingga kunci ini sering disebut
dengan secret key (kunci private) dan harus dirahasiakan.
Contoh algoritma yang menggunakan kunci symetris ini seperti
DES, Blowfish, IDEA, twofish, MARS, 3DES, AES.

Gambar 2.2 kunci simetris

b. Algoritma Asimetrik
Dalam algoritma Asymetric ini dibutuhkan 2 macam kunci , 1
kunci yang dapat dipublikasikan (Public key) dan 1 kunci yang
tidak dapat dipublikasikan atau harus dirahasiakan (secret key).
Contoh algoritma yang menggunakan kunci asymetris yaitu seperti
Knapsack, RSA (Rivert-Shamir-Adelman), Diffie-Hellman.

Gambar 2.3 kunci asimetris

c. Fungsi Hash
Fungsi Hash berhubungan dengan keamanan data. Fungsi Hash
juga dapat digunakan untuk proses autentikasi dan integritas data.
Fungsi hash secara efisien akan mengubah string input dengan

8

panjang yang tak hingga menjadi string output dengan panjang
tetap yang disebut nilai hash.
Prinsip utama dari fungsi Hash yaitu tidak akan mungkin bisa
membuat pesan (message) M’ yang berhubungan dengan kode
Hash h(M’), sama dengan message M:h(M’)≠h(M). Kode Hash
direpresentasikan dengan n bits, sehingga terdapat kemungkinan
2n -1 kode Hash.

Gambar 2.4 fungsi hash

2.1.3 Tujuan Kriptografi
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga
merupakan aspek keamanan informasi yaitu :
a. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi
dari informasi dari siapapun kecuali yang memiliki otoritas atau
kunci rahasia untuk membuka/mengupas informasi yang telah
disandi (informasi dengan aman).
b. Integritas data, adalah berhubungan dengan penjagaan dari
perubahan data secara tidak sah. Untuk menjaga integritas data,
sistem harus memiliki kemampuan untuk mendeteksi manipulasi
data oleh pihak-pihak yang tidak berhak, antara lain penyisipan,
penghapusan, dan pensubsitusian data lain kedalam data yang
sebenarnya (informasi tidak dirusak).
c. Autentikasi, adalah berhubungan dengan identifikasi/pengenalan,
baik secara kesatuan sistem maupun informasi itu sendiri. Dua
pihak yang saling berkomunikasi harus saling memperkenalkan

9

diri. Informasi yang dikirimkan melalui kanal harus di-autentikasi
keaslian, isi datanya, waktu pengiriman, dan lain-lain (informasi
hanya dapat diakses oleh yang berhak).
d. Non-repudiasi.adalah

usaha

untuk

mencegah

terjadinya

penyangkalan terhadap pengiriman/terciptanya suatu informasi
oleh yang mengirimkan/membuat (informasi yang sekali kirim).

2.2 Jenis Serangan Terhadap Keamanan Data
Dibawah ini dijelaskan beberapa macam penyerangan terhadap pesan
yang sudah dienkripsi :
1. Ciphertext – Only – Attack
Penyerang hanya mendapatkan pesan yang sudah tersandikan saja.

Cryptanalysts hanya mempunyai pesan teks-kode dan semuanya dienkrip
dengan algoritma yang sama. Kriptanalis tidak mempunyai kunci dan teks
aslinya, sedangkan pekerjaan kriptanalisis yaitu mendapatkan teks asli
atau mencari kuncinya terlebih dahulu.
2. Known - Plaintext – Attack

Penyerang selain mendapatkan sandi, juga mendapatkan pesan asli
Kemungkinan dalam Cryptanalysis akan mendapatkan beberapa teks asli
dan teks kodenya. Contoh dalam sebuah dokumen terdapat kata ” salam”
dan Cryptanalysis juga mendapatkan kode dari dokumen tersebut.
Cryptanalysts akan mencoba mencari kunci sehingga dia dapat
menemukan teks asli apabila berhasil mendapatkan teks kode yang lain
dengan menggunakan algoritma yang sama.
3. Chosen – Plaintext – Attack
Sama dengan known plaintext attack, namun penyerang bahkan

dapat memilih penggalan mana dari pesan asli yang akan disandikan.
Cryptanalysts memilih-milih kemungkinan teks asli untuk mecoba
memecahkan kode yang ada. Dalam hal ini kriptanalis mencoba menebak

10

dan mencoba teks asli yang mungkin dapat digunakan untuk memecahkan
kode.
Berdasarkan bagaimana cara dan posisi seseorang mendapatkan
pesan-pesan dalam saluran komunikasi, penyerangan dapat dikategorikan
menjadi:
1. Sniffing : Secara harafiah Sniffing berarti mengendus, dalam hal ini
yang diendus adalah pesan (baik yang belum ataupun sudah
dienkripsi) dalam suatu saluran komunikasi. Hal ini umum terjadi pada
saluran publik yang tidak aman. Sang pengendus dapat merekam
pembicaraan yang terjadi.
2. Replay attack : Jika seseorang bisa merekam pesan-pesan handshake
(persiapan komunikasi), ia mungkin dapat mengulang pesan-pesan
yang telah direkamnya untuk menipu salah satu pihak.
3. Spoofing : Penyerang – misalnya Maman – bisa menyamar menjadi
Anto. Semua orang dibuat percaya bahwa Maman adalah Anto.
Penyerang berusaha meyakinkan pihak-pihak lain bahwa tak ada salah
dengan komunikasi yang dilakukan, padahal komunikasi itu dilakukan
dengan sang penipu/penyerang. Contohnya jika orang memasukkan
PIN ke dalam mesin ATM palsu – yang benar-benar dibuat seperti
ATM asli – tentu sang penipu bisa mendapatkan PIN-nya dan copy
pita magnetik kartu ATM milik sang nasabah. Pihak bank tidak tahu
bahwa telah terjadi kejahatan.
4. Man-in-the-middle : Jika spoofing terkadang hanya menipu satu
pihak, maka dalam skenario ini, saat Anto hendak berkomunikasi
dengan Badu, Maman di mata Anto seolah-olah adalah Badu, dan
Maman dapat pula menipu Badu sehingga Maman seolah-olah adalah
Anto. Maman dapat berkuasa penuh atas jalur komunikas ini, dan bisa
membuat berita fitnah.

11

2.2.1 Pengiriman Password Dan Permasalahannya
a. Pengiriman password dalam bentuk plainteks
Pada mekanisme autentikasi dengan password sebagai alat
identitas, maka untuk proses autentikasinya client mengirimkan
password ke sistem dalam bentuk plainteks. Berikut gambar yang
menunjukkan pengiriman password dalam bentuk plainteks.

Gambar 2.5 Pengiriman password p dalam bentuk
plainteks
Pengiriman password tersebut masih rentan terhadap serangan,
karena password dikirimkan dalam bentuk plainteks, sehingga
panyadap dapat mengetahui password Alice.

b. Pengiriman password setelah melewati fungsi hash
Untuk mengatasi serangan password dalam bentuk plainteks,
maka dikembangkan metode pengiriman password dengan
memanfaatkan fungsi hash dalam kriptografi, dimana keluaran
dari fungsi hash ini berupa message digest atau digital fingerprint
atau signature. Berikut ini gambar proses pengiriman password
dalam bentuk keluaran fungsi hash.

Gambar 2.6 Pengiriman password p dalam keluaran
fungsi hash

12

Metode dengan hash tersebut juga masih rentan terhadap
serangan karena Alice mengirimkan password dalam bentuk
digest, sedangkan Bob hanya menyimpan daftar password yang
valid, sehingga untuk melakukan proses autentikasi Bob harus
melakukan hashing dari password tersebut. Serangan yang ada
yaitu jika terdapat orang yang menyusup atau bertindak sebagai
Bob maka penyusup tersebut dapat mengakses semua daftar
password semua orang.

c. Pengiriman password melewati fungsi hash dan verifikasi
password dalam bentuk digest
Oleh sebab itu,password perlu disimpan dalam bentuk
message digest bukan dalam bentuk aslinya. Metode ini akan
menghindarkan penyusup mendapatkan password asli, tetapi hanya
akan mendapatkan message digest dari password tersebut. Berikut
ini gambar metode penyimpanan password dengan menggunakan
message digest.

Gambar 2.7 Verifikasi password yang dikirim dalam
bentuk digest

13

Namun dalam metode ini, serangan masih dapat menyusup.
Serangan ini disebut dengan replay attack. Replay attack
merupakan bentuk serangan dalam jaringan komputer dimana
pengiriman data yang valid disadap oleh pihak yang tidak
berwenang, kemudian data tersebut dikirim ulang atau ditunda
pengirimannya. Berikut ini ilustrasi serangan replay attack.

Gambar 2.8 Replay attack pada pengiriman password
dalam bentuk plainteks
Walaupun Eve hanya mendapatkan message digest dari Alie,
ia dapat bertindak sebagai Alice dengan cara mengirimkan kembali
message digest tersebut kepada Bob.
d. Pengiriman password dengan satu kali hash
Untuk menanggulangi serangan replay attack tersebut dengan
menggunakan nonce (number used once). Nonce ini berupa
bilangan acak atau random sebagai challenge dari pihak yang akan
melakukan

proses

autentikasi.

Karena

sifat

fungsi

hash

kriptografis yang keluarannya akan berubah drastis begitu
masukannya berubah, maka setiap challenge yang berbeda akan
menghasilkan keluaran yang berbeda pula ketika disambung
dengan password asli. Dan jika terjadi penyusupan, maka ia hanya

14

akan mendapatkan digest yang khusus untuk sebuah challenge
tersebut, dan tidak untuk challenge yang lain.
Kelemahan dari pengiriman password satu kali hash ini yaitu
Bob harus menyimpan daftar password dalam bentuk plainteks
atau asli.

Gambar 2.9 Verifikasi password dengan satu kali hash

e. Pengiriman password dengan dua kali hash
Berikut ini perbaikan dari pengiriman password satu kali
hash. Disini akan dilakukan dua kali hash, yaitu hashing password,
serta hashing antara password yang telah di hash dengan
challenge.

15

Gambar 2.10 Verifikasi password dengan 2 kali hash
Dalam metode ini Bob menyimpan password dalam bentuk
messsage digest sehingga akan mengurangi replay attack.
Proses sisi Alice :
a. Alice menerima challenge dari Bob.
b. Password Alice dalam bentuk plainteks diproses dengan
menggunakan fungsi hash H, sehingga diperoleh H(p).
c. Hasil

keluaran

fungsi

hash

tersebut

disambung

atau

dikonkatenasi dengan challenge dari Bob sehingga diperoleh
H(p) + n.
d. Hasil penyambungan tersebut diproses dengan menggunakan
fungsi hash sehingga diperoleh H(H(p) + n).
e. Alice kemudian mengirimkan H(H(p) + n) kepada Bob.

16

Proses sisi Bob :
a. Bob melakukan pencarian pada daftar password yang
tersimpan dalam bentuk digest, kemudian diperoleh H(p).
b. Digest dari password ini kemudian disambung dengan
challenge yang sudah dikirim kepada Alice, sehingga diperoleh
H(p) + n.
c. Hasil konkatenasi tersebut diproses dengan menggunakan
fungsi hash sehingga diperoleh H(H(p) + n).
d. Bob membandingkan hasil perhitungannya dengan H(H(p) + n)
dari Alice. Jika keduanya sama, berarti Alice merupakan orang
yang autentik.

2.3 Autentikasi
Autentikasi berhubungan dengan pengenalan identitas seseorang,
menyangkut kewenangan atau hak akses yang dimiliki, dan menyatakan
keotentikan dari orang tersebut. Faktor autentikasi merupakan suatu informasi
untuk memverifikasi identitas seseorang untuk keamanan.
Faktor-faktor autentikasi yaitu meliputi :
1. Sesuatu yang diketahui pengguna
Misal : password, passphrase dan PIN (Personal Identification Number).
2. Sesuatu yang dimiliki pengguna
Misal : ID cards, kartu kredit, telepon selular, perangkat token.
3. Sesuatu yang ’ada’ pada pengguna
Misal : sidik jari, pola retina, suara, DNA, dan aspek biometrik lainnya.

17

2.3.1

Sistem Autentikasi
Sistem autentikasi ini terdiri dari 2 entitas yaitu generator
(client) dan server. Client akan menerima Serial number,dan PIN yang
kemudian akan digunakan untuk menghasilkan kode hash. Sedangkan
server bertugas dalam proses pengiriman challenge yang berupa
bilangan random, menghitung nilai dari bilangan random tersebut, dan
melakukan autentikasi terhadap client.
Keamanan sistem One Way Hash Function yaitu fungsi hash
yang dihasilkan tidak bisa dibalikkan (non-invertability). Oleh sebab
itu, baik client maupun server harus menggunakan algoritma yang
sama untuk dapat beroperasi.
Berikut ini gambar yang menjelaskan tentang autentikasi dari
sisi client dan juga sisi server. Gambar ini juga menjelaskan tentang
sistem Challenge-Response yang akan menghasilkan nilai hash yang
iteratif.

18

Tabel 2.1 Sistem autentikasi client server

User

Autentikasi Server

Koneksi
Minta nama login user (serial number)

Memasukkan nama login (serial
number)
Mencari user pada basis data dan
kirimkan challenge untuk user
tersebut berupa bilangan random.

Memberikan response yang sesuai
dengan challenge dari server

Periksa response user,
Beri jawaban ke client (yes/no)
berdasarkan benar/tidaknya response
yang diberikan

Evaluasi : beri akses atau tidak
berdasarkan jawaban autentikasi
server

19

Pertama kali user melakukan ”koneksi”, yaitu dengan proses
login. Setelah user memasukkan nama login user, maka server akan
mencari user pada basis data, dan mengirimkan challenge 6 digit.
Setelah pengiriman challenge, maka server akan meminta response
user atas challenge yang dikirimkan. User menghitung challenge
tersebut

dan

mengirimkan

hasilnya.

Dengan

arti

lain

user

mengirimkan response dan server juga menghitung nilai hash atas
bilangan random tersebut. Setelah di dapat response user, maka
autentikasi pihak server yaitu memeriksa response user dan
memberikan jawaban kepada client tentang benar/tidaknya response
yang dikirimkan. Setelah proses pemeriksaan, maka terdapat evaluasi
tentang akses/tidaknya user yang berdasarkan pada autentikasi server.

2.3.2

Protokol Challenge-Response
Terdapat beberapa protokol dalam Challenge-Response, yaitu
seperti Two Way Challenge-Response, Three Way ChallengeResponse I, Three Way Challenge-Response II.
Dalam protokol Two Way Challenge-Response, misal entity A
memverifikasi ke-autentikasian entity B. A mengirimkan bilangan
random RA (challenge) kepada B. B kemudian akan mengolah nilai
RA menjadi oK(RA) (response) dengan menggunakan fungsi
symmetrical one way dan kunci rahasia K. pada saat bersamaan, A
juga mengolah challenge tersebut dengan menggunakan algoritma dan
kunci yang sama. Dalam hal ini A merupakan pusat computer (server)
yang menyimpan semua kunci client dimana A ini dapat diakses oleh
semua client yang ter-autorisasi..Berikut gambar yang menunjukkan
Protokol Two Way Challenge-Response

20

Gambar 2.11 Two Way Challenge-Response Protokol
Pada gambar di atas A hanya memverifikasi ke-autentikasi-an
B, dan tidak sebaliknya. Dalam Protokol Three Way ChallengeResponse A akan memverifikasi ke-autentikasi-an B begitu juga
sebaliknya B juga akan memverifikasi ke-autentikasi-an A. Berikut
gambar yang menunjukkan proses tersebut

Gambar 2.12 Three Way Challenge-Response I Protokol
Pada gambar di atas, A dapat memastikan autentikasi B dari
hasil oK(RA). B tidak hanya mengembalikan hasil oK(RA) saja tetapi
B juga mampu memverifikasi autentikasi A dengan nilai oK(RB) yang
dikembalikan oleh A.
Kelemahan dari panyusunan protokol seperti diatas yaitu pada
adanya reflection attack. Berikut ini gambar reflection attack :

21

Gambar 2.13 Reflection Attack
Jika seorang pengganggu C datang dengan men-generate 2
session secara parallel, maka ia (C) dapat menyesatkan A dan ia akan
meyakinkan A bahwa A sedang berkomunikasi dengan B, tetapi
kenyataannya A sedang berkomunikasi dengan C. Jika A mengirimkan
challenge RA, maka C akan menerima challenge tersebut. Kemudian
C akan mengembalikan nilai RA tersebut ke A sama seperti yang
dikirim oleh B. A mentrasfer oK(RA) dan challenge baru RA’. C
merepon dengan nilai oK(RA) yang sama. Hal ini akan membuktikan
A bahwa A tidak sedang berkomunikasi dengan B. Dalam hal ini
entity autentikasi tidak dapat dijamin. Masalah ini dapat diatasi
dengan mengirimkan alamat dari A dan B.
Gambar berikut ini menunjukkan hasil dari One Way Function
yang tergantung pada alamat yang relevant dan sistem yang aman
terhadap reflection attack.

Gambar 2.14 One Way Function

22

Dalam semua contoh di atas, di asumsikan bahwa sebelum
proses autentikasi di inisialisasikan, A dan B telah mempunyai kunci
rahasia K. Pada gambar di bawah ini A dan B tidak mempunyai akses
terhadap kunci rahasia untuk proses autentikasi. Dalam kasus ini
terdapat pihak ke-3 yang disebut dengan trusted party TP, dimana ia
dapat berkomunikasi dengan A dan B dengan menggunakan 2 kunci
rahasia K1 dan K2.

Gambar 2.15 Autentikasi dengan Trusted Party

2.3.3

Autentikasi Dengan Protokol Challenge-Response
Proses autentikasi dengan Challenge-Response protokol ini
akan melibatkan 2 entitas atau pihak, dimana salah satu pihak sebagai
penyedia pertanyaan (challenge) dan pihak yang lain sebagai
penjawab pertanyaan (response). Contoh sederhana dalam ChallengeResponse

yaitu password autentikasi. Ketika seorang client

menginginkan hak akses terhadap sistem, maka sistem akan
mengirimkan

challenge

kepada

client

dan

kemudian

client

mengirimkan hasil (kode) yang telah diolah. Kemudian sistem akan

23

membandingkan kode tersebut dengan kode yang diolah oleh server.
Jika hasil pembandingan tersebut sama, maka client bisa mendapatkan
hak akses yang diinginkan dan sistem akan memberikan hak akses
tersebut kepada client.
Contoh Challenge-Response autentikasi dengan password
yaitu terdapat pada penggunaan PIN sebelum mendapatkan hak akses
pada sistem transaksi keuangan web based. Seorang client yang akan
melakukan koneksi terhadap suatu sistem, maka client harus
memasukkan serial number sebelum sistem tersebut memberikan hak
akses terhadap client tersebut. Proses Challenge-Response yang terjadi
disini yaitu client menghubungi server, kemudian server akan
membentuk challenge. Client memberi respon atas challenge tersebut
dengan menggunakan password yang dimilikinya
Pemilihan konsep Challenge-Response diatas didasarkan pada
efisiensi penggunaan kunci. Pada Challenge-Response pihak client
hanya akan menyimpan 1 kunci yaitu kunci untuk password.
Gambar di bawah ini menunjukkan proses autentikasi dengan
menggunakan Challenge-Response protokol, dimana yang menjadi
challenge yaitu berupa bilangan random.

Gambar 2.16 Autentikasi Dengan Challenge-Response Protokol

24

2.4 Algoritma Hash Function
Fungsi hash Kriptografi adalah fungsi hash yang memiliki beberapa
sifat keamanan sehingga dapat dipakai untuk tujuan keamanan data.
Umumnya digunakan untuk keperluan autentikasi dan integritas data. Fungsi
Hash dapat didefinisikan dan di implementasikan dengan menggunakan
pseudo random number generator (PRNG). Berikut ini beberapa algoritma
hash :

Gambar 2.17 Algoritma-algoritma hash

2.4.1

Sifat-Sifat Fungsi Hash Kriptografi
Berikut ini merupakan sifat-sifat yang dimiliki oleh fungsi
hash sekaligus merupakan kekuatan :
1.

Tahan preimej (Preimage resistant) : bila diketahui nilai hash h
maka sulit (secara komputasi tidak layak) untuk mendapatkan m
dimana h = hash(m).

25

2.

Tahan preimej kedua (Second preimage resistant) : bila diketahui
input m1 maka sulit mencari input m2 (tidak sama dengan m1) yang
menyebabkan hash(m1) = hash(m2).

3.

Tahan tumbukan (Collision-resistant) : sulit mencari dua input
berbeda m1 dan m2 yang menyebabkan hash(m1) = hash(m2)

2.4.2

Fungsi Hash Satu Arah (One Way Hash)
Fungsi hash merupakan suatu fungsi yang secara efisien
mengubah string input M dengan panjang berhingga menjadi string
output dengan panjang tetap yang disebut nilai hash h. Sedangkan
fungsi

satu arah (One Way Function) adalah fungsi yang relatif

mudah untuk dihitung tetapi sulit untuk menghitung kebalikannya
(reverse). Jadi fungsi hash satu arah (One Way Hash Function) adalah
fungsi hash yang merupakan fungsi satu arah, artinya mudah untuk
menghitung nilai hash dari input string yang diberikan, tetapi sulit
untuk menghasilkan string yang nilai hashnya sudah diketahui. Salah
satu contoh dari fungsi hash yang digunakan adalah One Way Hash
Function dengan MD5.

Gambar 2.18 Hash function dengan MD5
Fungsi One Way Hash Function ini prinsipnya sama dengan
fungsi Trapdoor Function. Prinsip dari fungsi Trapdoor Function
yaitu akan mudah untuk masuk ke dalam suatu sistem, tetapi akan

26

sangat sulit untuk bisa keluar dari sistem tersebut. Simulasi yang
sesuai dengan fungsi ini yaitu suatu ikan yang dengan mudah masuk
ke dalam suatu keramba, tetapi ikan tersebut akan sangat kesulitan
untuk keluar dari keramba tersebut.
Fungsi Hash bersifat collision free, artinya bahwa tidak akan
mungkin menemukan 2 message berbeda dengan menggunakan kode
Hash yang sama. Untuk menemukan collisions dalam fungsi hash
akan mengalami kesulitan. dimana nilai hash dari sebuah message
dapat digambarkan sebagai berikut :

Gambar 2.19 Fungsi hash dari suatu teks
Terdapat banyak fungsi yang memasukkan input berhingga dan
mengembalikan output dengan nilai tetap, tetapi terdapat beberapa
karakteristik yang dimiliki oleh fungsi One Way Hash Function, yaitu
1. Jika diberikan M, maka akan mudah untuk menghitung nilai h.
2. Jika diberikan h, maka akan sulit untuk menghitung nlai M.
3. Jika diberikan M, maka akan sulit untuk menemukan message lain
M’ seperti H(M) = H(M’).
Ilustrasi dari One Way Hash Function yaitu sebagai berikut :

27

Gambar 2.20 Ilustrasi fungsi one way
Sulit disini tergantung dari situasi dan kebutuhan security,
tetapi kebanyakan implementasi menggunakan 264 operasinya, bahkan
bisa lebih.

Kelebihan fungsi One Way Hash Function yaitu bahwa

mudah untuk menghitung nilai output, tetapi sulit untuk menghitung
atau mengetahui nilai inputnya. Selain itu tingkat sekuritasnya juga
sudah tinggi karena fungsi Hash ini menggunakan sepenuhnya
bilangan random.
2.4.3

Kegunaan One Way Hash Function
1. Challenge hash authentication, merupakan suatu cara sederhana
untuk melindungai password selama proses login.
2. One time password.
3. Mengolah atau mengenerate number id unik, seperti pada alamat
email.
4. Data integrity dan message authentication code.
5. Enkripsi password.
6. Untuk membuat pseudo symmetric, yaitu sebuah algoritma
enkripsi.

28

2.4.4

Kelebihan dan kekurangan fungsi hash
Bila dibanding dengan fungsi enkripsi pada umumnya maka
kelebihan dan kekurangan dari fungsi hash ini yaitu :
1. Kelebihan:
a. Hasil dari fungsi hash panjangnya tetap, panjang masukan
tidak akan mempengaruhi panjang nilai hash.
b. Karena tidak merubah data asli, maka tidak diperlukan proses
dekripsi.
c. Perubahan sekecil apapun pada data asli akan membuat nilai
hash yang sangat jauh berbeda (avalanche effect), sehingga
cukup mudah untuk memeriksa keaslian.
2. Kekurangan
a. Memiliki kemungkinan untuk terjadi bentrokan. Hal ini dapat
dihindari untuk semua fungsi hash, namun ada beberapa fungsi
hash yang dibuat

khusus untuk menghindari terjadinya

bentrokan.
b. Fungsi hash adalah fungsi satu arah, jadi jika kita hanya
mendapatkan sebuah nilai hash, kita tidak bisa mengembalikan
menjadi data yang asli. Hal ini dipersulit dengan kemungkinan
terjadinya bentrokan.
c. Tingkat keamanan suatu fungsi hash dinilai berdasarkan
jumlah kemungkinan nilai hash yaitu 2n, dengan n adalah
panjang nilai hash dalam bit. Jadi semakin panjang nilai hash
akan semakin aman.

29

2.5 Message Digest 5 (MD5)
MD5 ini merupakan salah