pembuatan aplikasi enkripsi menggunakan metode...
TRANSCRIPT
PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN
METODE ADVANCE ENCRYPTION STANDARD
DAN RIVEST SHAMIR ADLEMAN
Studi Kasus CV Maharta Mandiri Promo
ZAENAL MUTTAQIN
2040.9100.2553
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2010 M / 1431 H
PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN METODE
ADVANCE ENCRYPTION STANDARD DAN RIVEST SHAMIR ADLEMAN
Studi Kasus CV Maharta Mandiri Promo
Skripsi
Diajukan kepada Fakultas Sains dan Teknologi
Untuk memenuhi persyaratan memperoleh
gelar Sarjana Komputer (S.Kom)
Oleh :
ZAENAL MUTTAQIN
2040.9100.2553
Menyetujui,
Pembimbing I
Herlino Nanang, MT NIP. 19731209 200501 1 002
Pembimbing II Zulfiandri, MMSI NIP. 150 368 821
Mengetahui,
Ketua Program Studi Teknik Informatika
Yusuf Durrachman, MIT
NIP. 19710522 200604 1 002
iii
PENGESAHAN UJIAN
Skripsi berjudul PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN
METODE ADVANCE ENCRYPTION STANDARD DAN RIVEST SHAMIR
ADLEMAN STUDI KASUS CV MAHARTA MANDIRI PROMO yang ditulis
oleh Zaenal Muttaqin, NIM 204091002553 telah diuji dan dinyatakan lulus dalam
sidang Munaqosyah Fakultas Sains dan Teknologi, Universitas Islam Negeri
Syarif Hidayatullah Jakarta pada tanggal 11 Januari 2010. Skripsi ini telah
diterima sebagai salah satu syarat untuk memperoleh gelar sarjana Strata Satu (S1)
Program Studi Teknik Informatika.
Penguji I
Viva Arifin, MMSI NIP. 19730810 200604 2 001
Menyetujui :
Penguji II
Victor Amrizal, M.Kom NIP. 150 411 288
Pembimbing I
Herlino Nanang, MT NIP. 19731209 200501 1 002
Pembimbing II
Zulfiandri, MMSI
NIP. 150 368 821
Dekan
Fakultas Sains dan Teknologi
Mengetahui:
Ketua Program Studi
Teknik Informatika
DR. Syopiansyah Jaya Putra, M.Sis NIP. 19680117 200112 1 001
Yusuf Durrachman, MIT NIP. 19710522 200604 1 002
iv
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-
BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN
SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI
ATAU LEMBAGA MANAPUN.
Jakarta, Januari 2010
Zaenal Muttaqin
2040 9100 2553
v
ABSTRAK
ZAENAL MUTTAQIN, Pembuatan Aplikasi Enkripsi Menggunakan Metode
Advance Encryption Standard Dan Rivest Shamir Adleman Studi Kasus CV
Maharta Mandiri Promo. (di bawah bimbingan Herlino Nanang dan Zulfiandri).
Perkembangan dunia teknologi informasi saat ini telah menjadikan
informasi sebagai kebutuhan yang pokok bagi setiap orang terutama bagi sebuah
instansi. Salah satu solusi pengamanan informasi yang digunakan adalah teknik
pengamanan data menggunakan kriptografi. Kriptografi adalah ilmu untuk
menyandikan pesan, sedangkan untuk menjaga agar pesan atau dokumen kita
aman dan tidak dapat dibaca oleh pihak yang tidak berhak, digunakan enkripsi.
CV Maharta Mandiri Promo sebagai sebuah perusahaan desain grafis dan
percetakan memiliki keinginan untuk melindungi data-data penting mereka dari
pihak yang tidak berhak. Aplikasi acrypt cs merupakan aplikasi enkripsi yang
menggabungkan metode enkripsi simetris dan metode enkripsi asimetris. Pada
aplikasi ini metode yang digunakan adalah metode enkripsi simetris Advance
Encryption Standard dan asimetris Rivest Shamir Adleman. Aplikasi ini dapat
dijadikan sebagai salah satu cara untuk mengamankan data. Pembuatan aplikasi
ini menggunakan bahasa pemrograman PHP dan MySQL. Untuk pengembangan
aplikasi penulis menggunakan metode Rapid Application Development (RAD).
Hasil akhir berupa aplikasi multifile berbasis client server, tanpa ada proses
instalasi, dan dapat dilakukan pada mutifile secara bersamaan (multifile dibatasi
sebanyak 10 file).
Kata kunci : kriptografi, enkripsi, Advance Encryption Standard, Rivest Shamir
Adleman, Enkripsi simetri/asimetri.
xvii halaman + 113 halaman + 4 tabel + 51 gambar + 3 lampiran
Daftar Pustaka : 15 (1999-2008)
vi
KATA PENGANTAR
Assalaamualaikum Wr. Wb.
Alhamdulillah, rasa syukur tiada terkira penulis panjatkan kepada Allah
Subhanahu Wataala. Rahmat dan salam semoga tercurahkan selalu kepada
Rasulullah Muhammad SAW beserta keluarga, sahabat, dan pengikut-pengikut
beliau (amin). Hanya berkat petunjuk dan pertolongan Allah-lah penulis dapat
menyelesaikan skripsi yang berjudul : Pembuatan Aplikasi Enkripsi
Menggunakan Metode Advance Encryption Standard dan Rivest Shamir Adleman
Studi Kasus CV Maharta Mandiri Promo.
Terwujudnya tulisan dalam bentuk skripsi ini, tentunya tidak terlepas dari
bantuan dan bimbingan dari berbagai pihak. Rasa terima kasih penulis ucapkan
kepada :
1. Bapak DR. Syopiansyah Jaya Putra, M.SIS, selaku Dekan Fakultas Sains
dan Teknologi.
2. Bapak Yusuf Durrachman, selaku Ketua Program Studi Teknik Informatika.
3. Bapak Herlino Nanang, MT, selaku dosen pembimbing I, dan
4. Bapak Zulfriandri, MMSI, selaku dosen pembimbing II, yang telah
memberikan bimbingan, waktu, dan perhatiannya dalam penyusunan skripsi
ini.
vii
5. Seluruh Dosen dan staf karyawan Program Studi Teknik Informatika,
Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah
Jakarta yang telah mengajar atau membantu penulis selama kuliah.
Dalam penyusunan skripsi ini, penulis juga tidak luput dari berbagai
masalah dan menyadari sepenuhnya bahwa penulisan ini masih jauh dari
sempurna dan tidak lepas dari kesalahan dan kekurangan, oleh karena itu dengan
senang hati penulis akan menerima semua saran dan kritik maupun ide-ide yang
membangun dari rekan-rekan pembaca. Akhir kata semoga Allah membalas
kebaikan mereka yang telah membimbing penulis dalam membuat skripsi ini.
Semoga skripsi ini berguna bagi penulis dan pada pembaca umumnya.
Wassalaamualaikum Wr. Wb.
Jakarta, Januari 2010
Penulis
Zaenal Muttaqin
NIM. 2040 9100 2553
viii
Sebuah tulisan sederhana ini kupersembahkan
untuk:
Emak dan Babe kesabaran dan kerja keras telah kalian
lakukan demi membesarkan ananda.. ananda tahu.. seberapa besarpun
hal yang dapat ananda berikan untuk emak dan babe, belumlah cukup
untuk membalas semua perjuangan emak dan babe..
Setiap peluh yang menetes di dahimu.. setiap langkah kakimu.. setiap
perjuanganmu untuk membuat ananda berdiri tegak sampai sekarang..
akan ananda ingat semua itu sampai akhir hayat ananda..
Ya Allah.. berikanlah hamba kesempatan untuk membahagiakan emak
dan babe..
ix
Terimakasih yang Spesial untuk :
Kakak-kakakku tercinta : k juki, k ita, k mun, k, maskur, k
rahman, te nunung, k sugi, k yanto, k adi,
Dan sangat spesial untuk kak may..
(mari kita berjuang untuk hidup yang lebih baik..)
Juga untuk adik-adikku tersayang : herma, edi, doel, n dilah
(maaf membuat kalian menunggu lama..)
Dan untuk semua keponakanku : bunga, lulu, firly, lika, qori, rijal,
ridwan, zaskia, moja, n haikal..
(jangan lupa belajar ya sayang..)
Untuk teman-temanku ariyadi, dimas, maxus, sigit, ade,
dawim, nana, nita, yanti, razka, mimah, n danang
(terimakasih untuk berbagi setiap bulan..)
Untuk fajar (makasih bro), farizki (makasih netbooknya), deva,
sundus, rofi, maladi, dadang (makasih ya CV-nya), adin & eko
(makasih untuk switch & kabel LAN-nya),
makasih buat semua anak TI Bhe angkatan 2004..
tanpa kalian aku tak bisa berdiri tegak.. (tetap silah ya..)
makasih juga untuk pak basuni dan pak zam (perpus)
terimakasih untuk keluarga besar TI/SI angkatan 2004 yang telah
berteman dan berbagi semuanya kepada penulis..
dan banyak lagi yang tidak dapat saya tuliskan di sini..
terimakasih semuanya..
dan juga terimakasih untuk :
uin syarif hidayatullah jakarta & cv maharta mandiri promo
x
DAFTAR ISI
PENGESAHAN UJIAN ........................................................................................ iv
PERNYATAAN...................................................................................................... v
ABSTRAK ............................................................................................................. vi
KATA PENGANTAR .......................................................................................... vii
DAFTAR ISI .......................................................................................................... xi
DAFTAR GAMBAR ............................................................................................ xv
DAFTAR TABEL .............................................................................................. xviii
BAB I PENDAHULUAN .................................................................................. 1
1.1. Latar Belakang ..................................................................................... 1
1.2. Rumusan Masalah ................................................................................ 2
1.3. Batasan Masalah................................................................................... 3
1.4. Tujuan Penelitian ................................................................................. 4
1.5. Manfaat Penelitian ............................................................................... 4
1.6. Metodologi Penelitian .......................................................................... 5
1.6.1. Metodologi Pengumpulan Data ............................................. 5
1.6.2. Metodologi Pengembangan Sistem........................................ 6
1.7. Sistematika Penulisan........................................................................... 6
BAB II LANDASAN TEORI ............................................................................. 8
2.1. Keamanan Data .................................................................................... 8
2.2. Aplikasi ................................................................................................ 8
2.3. Enkripsi dan Dekripsi........................................................................... 9
2.4. Kriptografi .......................................................................................... 11
2.4.1. Definisi dan Terminologi ..................................................... 11
2.4.2. Tujuan Kriptografi ............................................................... 14
2.4.3. Sejarah Kriptografi............................................................... 15
2.5. Algoritma Kriptografi Klasik ............................................................. 17
2.5.1. Cipher Substitusi .................................................................. 17
2.5.2. Cipher Transposisi ............................................................... 20
xi
2.6. Algoritma Kriptografi Modern........................................................... 20
2.6.1. Algoritma Simetris ............................................................... 20
2.6.2. Algoritma Asimetris............................................................. 21
2.6.3. Algoritma Hibrida ................................................................ 21
2.7. Advance Encryption Standard............................................................ 22
2.7.1. Panjang Kunci dan Ukuran Blok Rijndael ........................... 23
2.7.2. Algoritma Rijndael............................................................... 25
2.7.3. Transformasi SubBytes() ...................................................... 28
2.7.4. Transformasi ShiftRows()..................................................... 30
2.7.5. Transformasi MixColumns() ................................................ 30
2.7.6. Transformasi AddRoundKey().............................................. 32
2.7.7. Ekspansi Kunci .................................................................... 32
2.8. Kriptografi Kunci Publik.................................................................... 32
2.8.1. Sejarah Kriptografi Kunci Publik ........................................ 32
2.8.2. Konsep Kriptografi Kunci Publik ........................................ 33
2.8.3. Aplikasi Kriptografi Kunci Publik ....................................... 37
2.9. RSA (Rivest Shamir Adleman) .......................................................... 38
2.9.1. Perumusan Algoritma Rivest Shamir Adleman ................... 39
2.9.2. Algoritma Membangkitkan Pasangan Kunci ....................... 41
2.9.3. Algoritma Enkripsi/Dekripsi................................................ 42
2.9.4. Keamanan Rivest Shamir Adleman ..................................... 42
2.9.5. Kecepatan ............................................................................. 44
2.10. PHP .................................................................................................... 45
2.10.1. Pengertian PHP .................................................................... 45
2.10.2. Kelebihan-kelebihan PHP .................................................... 45
2.10.3. Sintaks PHP.......................................................................... 46
2.11. MySQL............................................................................................... 46
BAB III METODOLOGI PENELITIAN ........................................................... 48
3.1. Metode Pengumpulan Data ................................................................ 48
3.1.1. Metode Observasi ................................................................ 48
3.1.2. Metode Wawancara.............................................................. 49
xii
3.1.3. Metode Studi Pustaka........................................................... 49
3.1.4. Metode Studi Literatur ......................................................... 49
3.2. Metode Pengembangan Sistem .......................................................... 50
3.2.1. Fase Perencanaan Syarat-Syarat .......................................... 50
3.2.2. Fase Perancangan ................................................................. 53
3.2.3. Fase Konstruksi.................................................................... 55
3.2.4. Fase Pelaksanaan.................................................................. 55
BAB IV PEMBAHASAN DAN IMPLEMENTASI .......................................... 57
4.1. Gambaran Umum CV Maharta Mandiri Promo................................. 57
4.1.1. Sekilas CV Maharta Mandiri Promo.................................... 57
4.1.2. Visi dan Misi CV Maharta Mandiri Promo ......................... 58
4.1.3. Struktur Organisasi CV Maharta Mandiri Promo ................ 58
4.2. Hasil Observasi .................................................................................. 59
4.3. Aplikasi Acrypt cs .............................................................................. 59
4.4. Fase Perencanaan Syarat-syarat ......................................................... 60
4.4.1. Analisis Kebutuhan Masalah ............................................... 60
4.4.2. Tujuan .................................................................................. 60
4.4.3. Syarat-syarat......................................................................... 61
4.5. Fase Perancangan (Workshop Design) ............................................... 61
4.5.1. Perancangan Proses.............................................................. 62
4.5.2. Perancangan Flowchart........................................................ 64
4.5.3. Perancangan Basis Data ....................................................... 76
4.5.4. Perancangan Antarmuka ...................................................... 80
4.5.5. State Transition Diagram ................................................... 100
4.6. Fase Konstruksi ................................................................................ 106
4.7. Fase Pelaksanaan (Implementasi) .................................................... 107
4.7.1. Konfigurasi Client Server .................................................. 108
4.7.2. Proses Enkripsi dan Dekripsi Multifile .............................. 108
4.7.3. Pengujian Aplikasi Acrypt cs............................................. 109
xiii
BAB V PENUTUP .......................................................................................... 112
5.1. Kesimpulan ...................................................................................... 112
5.2. Saran................................................................................................. 113
DAFTAR PUSTAKA ......................................................................................... 114
LAMPIRAN A HASIL WAWANCARA ........................................................... 116
LAMPIRAN B TAMPILAN APLIKASI ACRYPT CS..................................... 118
LAMPIRAN C KODE SUMBER APLIKASI ACRYPT CS............................. 131
xiv
DAFTAR GAMBAR
Gambar 2.1. Enkripsi Secara Umum......................................................................11
Gambar 2.2. Sebuah scytale, pesan yang ditulis secara horizontal,
baris perbaris .....................................................................................16
Gambar 2.3. Mesin enkripsi Enigma yang digunakan oleh tentara Jerman
pada masa Perang Dunia ke II ..........................................................17
Gambar 2.4. Caesar Wheel.....................................................................................19
Gambar 2.5. Diagram Proses Enkripsi ...................................................................27
Gambar 2.6. Transformasi SubBytes .....................................................................31
Gambar 2.7. Transformasi ShiftRows....................................................................31
Gambar 2.8. Transformasi MixColumns ...............................................................32
Gambar 2.9. Transformasi AddRoundKey ............................................................33
Gambar 2.10. Skema kriptografi nirsimetri ...........................................................35
Gambar 3.1. Proses enkripsi dan dekripsi ..............................................................54
Gambar 3.2. Ilustrasi metodologi penelitian pengembangan aplikasi
kriptografi berbasis client server (acrypt cs).....................................56
Gambar 4.1. Organisasi CV Maharta Mandiri Promo ...........................................59
Gambar 4.2. Diagram konteks sistem yang diusulkan ...........................................62
Gambar 4.3. Diagram zero sistem yang diusulkan ................................................62
Gambar 4.4. Diagram level satu proses 1.0 (login)................................................63
Gambar 4.5. Diagram level satu proses 2.0 (enkripsi) ...........................................63
Gambar 4.6. Diagram level satu proses 3.0 (dekripsi) ...........................................63
Gambar 4.7. Flowchart proses enkripsi .................................................................65
Gambar 4.8. Flowchart proses enkripsi dengan metode RSA ...............................67
xv
Gambar 4.9. Flowchart proses enkripsi dengan metode RSA ...............................69
Gambar 4.10. Flowchart proses dekripsi ...............................................................71
Gambar 4.11. Flowchart proses dekripsi dengan metode RSA .............................73
Gambar 4.12. Flowchart proses dekripsi dengan metode RSA .............................75
Gambar 4.13. Struktur Entity Relationship Diagram.............................................76
Gambar 4.14. Logical Record Structure (LRS) .....................................................78
Gambar 4.15. Rancangan halaman login ...............................................................81
Gambar 4.16. Rancangan halaman sign up ............................................................82
Gambar 4.17. Rancangan halaman utama ..............................................................83
Gambar 4.18. Rancangan halaman input file enkripsi ...........................................84
Gambar 4.19. Rancangan halaman input file enkripsi ...........................................85
Gambar 4.20. Rancangan halaman cek file............................................................86
Gambar 4.21. Rancangan halaman input password ...............................................87
Gambar 4.22. Rancangan halaman pilih tujuan .....................................................88
Gambar 4.23. Rancangan halaman encryption complete .......................................89
Gambar 4.24. Rancangan halaman pilih file ..........................................................90
Gambar 4.25. Rancangan halaman cek file............................................................91
Gambar 4.26. Rancangan halaman input private key ............................................92
Gambar 4.27. Rancangan halaman decryption complete .......................................93
Gambar 4.28. Rancangan halaman inbox ..............................................................94
Gambar 4.29. Rancangan halaman outbox ............................................................95
Gambar 4.30. Rancangan halaman my key (security question) .............................96
Gambar 4.31. Rancangan halaman my key (private key) ......................................96
Gambar 4.32. Rancangan halaman generate key ...................................................97
xvi
Gambar 4.33. Rancangan halaman change password ............................................98
Gambar 4.34. Rancangan halaman help.................................................................99
Gambar 4.35. Rancangan halaman about.............................................................100
Gambar 4.36. State Transition Diagram Aplikasi Acrypt CS .............................101
Gambar 4.37. Informasi file sebelum dienkripsi..................................................109
Gambar 4.38. Informasi file sesudah dienkripsi ..................................................110
Gambar 4.39. Informasi file sesudah didekripsi ..................................................111
xvii
DAFTAR TABEL
Tabel 2.1. Tiga buah Versi AES ............................................................................24
Tabel 2.2. S-Box ....................................................................................................29
Tabel 4.1. Tabel ukuran dan waktu enkripsi ........................................................110
Tabel 4.2. Tabel ukuran dan waktu dekripsi ........................................................111
xviii
BAB I
PENDAHULUAN
1.1. Latar Belakang
Pesatnya perkembangan teknologi informasi telah menjadikan
informasi sebagai kebutuhan pokok bagi setiap orang. Informasi juga
merupakan hal yang vital bagi sebuah perusahaan, karena informasi
dapat membantu suatu perusahaan untuk terus berkembang dalam
persaingan global.
Masalah yang terjadi pada proses pengiriman ataupun mendapatkan
informasi adalah apabila informasi itu bersifat rahasia. Bila informasi
tersebut tersebar luas karena adanya penyadapan, pencurian, dan
pemalsuan informasi, akan menyebabkan kerugian bagi pemilik
informasi. Salah satu cara untuk mengamankan data atau informasi dari
tindak kejahatan tersebut adalah menggunakan konsep kriptografi.
CV Maharta Mandiri Promo sebagai sebuah perusahaan desain
grafis dan percetakan, memiliki jaringan komputer untuk memperlancar
arus informasi di dalam perusahaan. Jaringan komputer tersebut memiliki
sebuah server dengan kurang lebih dua puluh client. Semua informasi di
perusahaan ini di-share lewat jaringan komputer tersebut. Namun
ternyata kemudahan tersebut tidak memiliki pengamanan yang baik. Di
perusahaan ini pernah terjadi pencurian informasi yang menyebabkan
kerugian bagi perusahaan tersebut. Sehingga perusahaan membutuhkan
1
sistem keamanan yang kuat untuk mengamankan data penting mereka,
seperti data proyek, desain grafis, dan data internal perusahaan lainnya.
Pada penelitian yang telah dilakukan (Muliati, 2009), dibuat
aplikasi enkripsi menggunakan metode Blowfish dan Rivest Shamir
Adleman yang dapat mengenkripsi maksimum lima file sekaligus. Oleh
karena itu, beberapa kelebihan akan ditambahkan pada aplikasi yang
akan dibuat diantaranya dapat mengenkripsi sepuluh file sekaligus.
Untuk itu peneliti berupaya mewujudkan implementasi keamanan
data dengan menggunakan metode enkripsi Advance Encryption
Standard dan Rivest Shamir Adleman ke dalam suatu aplikasi yang
mudah digunakan, dalam skripsi yang berjudul PEMBUATAN
APLIKASI ENKRIPSI MENGGUNAKAN METODE ADVANCE
ENCRYPTION STANDARD DAN RIVEST SHAMIR ADLEMAN
STUDI KASUS CV MAHARTA MANDIRI PROMO.
1.2. Rumusan Masalah
Berdasarkan latar belakang, masalah pokok yang akan dibahas
penulis adalah membuat aplikasi enkripsi yang mudah digunakan dan
menjamin kerahasiaan data dengan menggunakan metode Advance
Encryption Standard dan Rivest Shamir Adleman.
2
1.3. Batasan Masalah
Untuk menghindari meluasnya materi pembahasan tugas akhir ini,
maka permasalahan dibatasi hanya mencakup hal-hal berikut :
1. Penelitian dibatasi dengan menggunakan metode enkripsi Advance
Encryption Standard dan Rivest Shamir Adleman.
2. Pada aplikasi ini proses enkripsi/dekripsi dan pengiriman data
dapat dilakukan pada multifile. Jumlah file dibatasi sebanyak 10
file dengan maksimum ukuran file 1 GB pada sekali proses enkripsi
atau dekripsi untuk kunci yang sama, untuk menghindari proses
enkripsi yang terlalu lama.
3. Aplikasi hanya mengenkripsi file tunggal (bukan folder) karena
enkripsi folder akan menyebabkan satu serangan terhadapnya akan
berakibat pada semua file yang ada di folder tersebut.
4. Aplikasi dititikberatkan pada proses pengamanan data dengan
pencegahan pembacaan file oleh pihak-pihak yang tidak berhak.
5. Hasil akhir file enkripsi akan menghasilkan file terenkripsi (*.znc),
dan password terenkripsi akan disimpan di database.
6. Aplikasi dibuat menggunakan bahasa pemrograman PHP dan
menggunakan database MySQL, serta dijalankan dengan
menggunakan Web Server Apache.
7. Aplikasi dibuat untuk diimplementasikan pada CV Maharta
Mandiri Promo.
3
1.4. Tujuan Penelitian
1. Dapat mengimplementasikan dua buah metode enkripsi pada
aplikasi pengamanan data berbasis client server yang mudah
digunakan.
2. Dapat mengamankan data-data penting pada CV Maharta Mandiri
Promo.
1.5. Manfaat Penelitian
Manfaat yang didapat dalam menulis skripsi ini adalah :
1. Bagi Penulis
a. Menerapkan ilmu kriptografi khususnya enkripsi dengan
menggabungkan metode enkripsi simetris (Advance
Encryption Standard) dan metode enkripsi asimetris (Rivest
Shamir Adleman).
b. Membangun aplikasi enkripsi berbasis client server yang
dapat membantu menjaga data-data penting.
2. Bagi Pengguna
a. Memiliki sarana untuk lebih meningkatkan keamanan data
yang dianggap rahasia.
b. Memudahkan pengamanan data karena menggunakan kunci
publik. Sehingga tidak memerlukan pertukaran kunci privat.
3. Bagi Universitas
Memberikan sumbangan ilmiah bagi perkembangan teknologi
keamanan data.
4
1.6. Metodologi Penelitian
Pada penulisan tugas akhir ini, diperlukan data-data yang lengkap
sebagai bahan pendukung kebenaran materi uraian dan pembahasan.
Oleh karena itu diperlukan metodologi pengumpulan data dan metode
membangun sistem.
1.6.1. Metodologi Pengumpulan Data
1. Observasi
Pengamatan dilakukan secara langsung pada
komputer dan jaringannya di CV Maharta Mandiri Promo.
2. Wawancara
Wawancara adalah proses memperoleh keterangan
untuk tujuan penelitian dengan cara tanya-jawab sambil
bertatap muka antara pewawancara dengan narasumber.
3. Studi Pustaka
Membaca dan mempelajari referensi yang ada
sebagai pelengkap serta mencari referensi tambahan dari
internet.
4. Studi Literatur
Metode studi literatur digunakan dengan melihat
penelitian yang sudah ada. Melalui studi literatur, peneliti
dapat terhindar dari melakukan penelitian yang sudah
pernah dilakukan, dan pengulangan kesalahan-kesalahan
masa lalu.
5
1.6.2. Metodologi Pengembangan Sistem
Metodologi pengembangan sistem yang digunakan dalam
penelitian ini adalah metode pengembangan model RAD (Rapid
Application Development), model ini dibuat oleh James Martin
untuk membuat sistem yang cepat tanpa harus mengorbankan
kualitas. Dan melingkupi fase-fase sebagai berikut (Kendall &
Kendall, 2003 : 237) :
1) Fase Perencanaan Syarat-Syarat
Pada tahap ini dilakukan penentuan tujuan dan syarat-
syarat informasi.
2) Fase Perancangan
Pada tahap ini dilakukan perancangan proses yaitu proses-
proses yang akan terjadi di dalam sistem, yang terdiri dari
perancangan proses dan perancangan antarmuka pemakai
(user interface).
3) Fase Konstruksi
Pada fase ini dilakukan tahap pengkodean terhadap
rancangan-rancangan yang telah didefinisikan.
4) Fase Pelaksanaan
Pada fase ini dilakukan pengujian terhadap sistem dan
melakukan pengenalan sistem kepada pengguna.
1.7. Sistematika Penulisan
Dalam penulisan skripsi ini dibagi menjadi beberapa bab, yaitu :
6
BAB I PENDAHULUAN
Bab ini terdiri dari latar belakang, rumusan masalah, batasan
masalah, tujuan, manfaat, metodologi penelitian, dan
sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi uraian tentang landasan teori yang diperlukan
dalam pembuatan aplikasi enkripsi.
BAB III METODOLOGI PENELITIAN
Bab ini menguraikan secara rinci metodologi yang digunakan
dalam pembuatan sistem aplikasi.
BAB IV PEMBAHASAN DAN IMPLEMENTASI
Bab ini menguraikan tentang gambaran umum objek penelitian
yaitu CV Maharta Mandiri Promo serta pengembangan sistem
aplikasi enkripsi yang dibuat.
BAB V PENUTUP
Bab ini berisi kesimpulan akhir dan saran-saran untuk
membangun sistem enkripsi lebih lanjut.
DAFTAR PUSTAKA
LAMPIRAN
7
BAB II
LANDASAN TEORI
2.1. Keamanan Data
Keamanan dan kerahasiaan data merupakan sesuatu yang sangat
penting dalam era informasi ini dan telah menjadi kebutuhan dasar
karena perkomputeran secara global telah menjadi tidak aman. Informasi
akan tidak berguna lagi apabila di tengah jalan informasi itu disadap atau
dibajak oleh orang yang tidak berhak. Bahkan mungkin beberapa
pengguna dari sistem itu sendiri, mengubah data yang dimiliki menjadi
sesuatu yang tidak kita inginkan.
Keamanan data pada komputer tidak hanya tergantung pada
teknologi saja, tetapi dari aspek prosedur dan kebijakan keamanan yang
diterapkan serta kedisiplinan sumber daya manusia. Jika firewall dan
perangkat keamanan lainnya bisa dibobol oleh orang yang tidak berhak,
maka peran utama kriptografi untuk mengamankan data atau dokumen
dengan menggunakan teknik enkripsi sehingga data atau dokumen tidak
bisa dibaca (Ariyus, 2006 : 3).
2.2. Aplikasi
Perangkat lunak (aplikasi) adalah program yang ditulis oleh
pemrogram komputer untuk memecahkan suatu masalah tertentu dengan
menggunakan bahasa pemrograman (Hartono, 1999 : 360).
8
2.3. Enkripsi dan Dekripsi
Enkripsi adalah sebuah proses yang melakukan perubahan sebuah
kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa
dimengerti (Wahana Komputer, 2003 : 17). Enkripsi dapat diartikan
sebagai kode atau cipher. Sebuah sistem pengkodean menggunakan suatu
table atau kamus yang telah didefinisikan untuk mengganti kata dari
informasi yang dikirim. Sebuah cipher menggunakan suatu algoritma
yang dapat mengkodekan semua aliran data (stream) bit dari sebuah
pesan menjadi cryptogram yang tidak dimengerti (unnitelligible). Karena
teknik cipher merupakan suatu sistem yang telah siap untuk diautomasi,
maka teknik ini digunakan dalam sistem keamanan komputer dan
jaringan.
Enkripsi dimaksudkan untuk melindungi informasi agar tidak
terlihat oleh orang atau pihak yang tidak berhak. Informasi ini dapat
berupa nomor kartu kredit, catatan penting dalam komputer, maupun
password untuk mengakses sesuatu.
Sepanjang sejarah pembentukan kode dan pemecahannya selalu
mendapat perhatian khusus dalam operasi militer. Penggunaan komputer
untuk pertama kalinya dalam kriptografi merupakan usaha untuk
memecahkan kode enigma Nazi sewaktu Perang Dunia II. Kini, pada
zaman modern, adanya komputer memungkinkan kita menghasilkan
kode yang kompleks, dan sebaliknya pula dapat digunakan untuk
memecahkannya.
9
E-commerce adalah industri lain yang sangat intensif
memanfaatkan kriptografi. Dengan meng-enkrip paket data yang lalu
lalang di internet, walaupun seseorang dapat menangkap paket-paket data
tersebut, tetap saja ia tidak dapat memahami artinya.
Enkripsi juga digunakan untuk verifikasi. Bila anda men-download
software, bagaimana anda tahu bahwa software yang anda download
adalah yang asli, bukan yang telah dipasangkan trojan di dalamnya.
Dalam hal ini terdapat tiga kategori enkripsi, yaitu (Wahana
Komputer, 2003 : 18) :
1. Kunci enkripsi rahasia. Dalam hal ini, terdapat sebuah kunci yang
digunakan untuk mengenkripsi dan juga sekaligus mendekripsi
informasi.
2. Kunci enkripsi publik. Dalam hal ini, dua kunci digunakan. Satu
untuk proses enkripsi dan yang lain untuk proses dekripsi.
3. Fungsi one-way, atau fungsi satu arah adalah sustu fungsi dimana
informasi dienkripsi untuk menciptakan signature dari informasi
asli yang bisa digunakan untuk keperluan autentikasi.
Enkripsi dibentuk berdasarkan suatu algoritma yang akan
mengacak suatu informasi menjadi bentuk yang tidak bisa dibaca atau tak
bisa dilihat. Dekripsi adalah proses dengan algoritma yang sama untuk
mengembalikan informasi teracak menjadi bentuk aslinya. Algoritma
yang digunakan harus terdiri dari susunan prosedur yang direncanakan
secara hati-hati yang harus secara efektif menghasilkan sebuah bentuk
ter-enkripsi yang tidak bisa dikembalikan oleh seseorang, bahkan
10
sekalipun mereka memiliki algoritma yang sama. Gambar 2.1
menunjukkan proses enkripsi secara umum.
kunci
Teks terang Enkripsi
Teks tersandi
Gambar 2.1. Enkripsi secara umum
(sumber : http://id.wikipedia.org/wiki/enkripsi)
2.4. Kriptografi
2.4.1. Definisi dan Terminologi
Kriptografi (cryptography) berasal dari bahasa Yunani :
cryptos artinya secret(rahasia), sedangkan graphein
artinya writing (tulisan). Jadi, kriptografi berarti secret
writing (tulisan rahasia). Dalam buku-buku lama (sebelum
tahun 1980-an) menyatakan bahwa kriptografi adalah ilmu dan
seni untuk menjaga kerahasiaan pesan dengan cara
menyandikannya ke dalam bentuk yang tidak dapat dimengerti
lagi maknanya. Namun saat ini kriptografi lebih dari sekedar
privacy, tetapi juga untuk tujuan data integrity, authentication,
dan non-repudiation (Munir, 2006 : 2).
Beberapa istilah yang penting dalam kriptografi yang
perlu diketahui adalah sebagai berikut (Munir, 2006 : 3):
11
1. Pesan, Plainteks, dan Cipherteks
Pesan (message) adalah data atau informasi yang dapat
dibaca dan dimengerti maknanya. Nama lain untuk pesan
adalah plainteks (plaintext) atau teks-jelas (cleartext).
Pesan yang disandikan ke bentuk lain disebut cipherteks
(ciphertext) atau kriptogram (cryptogram).
2. Pengirim dan Penerima
Komunikasi data melibatkan pertukaran pesan antara dua
entitas. Pengirim (sender) adalah entitas yang mengirim
pesan kepada entitas lainnya. Penerima (receiver) adalah
entitas yang menerima pesan.
3. Enkripsi dan Dekripsi
Proses menyandikan plainteks menjadi cipherteks disebut
enkripsi (encryption) atau enciphering (standard nama
menurut ISO 7498-2). Sedangkan proses mengembalikan
cipherteks menjadi plainteks semula dinamakan dekripsi
(decryption) atau deciphering (standard nama menurut
ISO 7498-2).
4. Cipher dan Kunci
Algoritma kriptografi disebut juga cipher yaitu aturan
untuk enciphering dan deciphering, atau fungsi
matematika yang digunakan untuk enkripsi dan dekripsi.
12
Beberapa cipher memerlukan algoritma yang berbeda
untuk enciphering dan deciphering. Kunci (key) adalah
parameter yang digunakan untuk transformasi enchipering
dan dechipering. Kunci biasanya berupa string atau
deretan bilangan.
5. Sistem Kriptografi
Kriptografi membentuk sebuah sistem yang dinamakan
sistem kriptografi. Sistem kriptografi (cryptosystem)
adalah kumpulan yang terdiri dari algoritma kriptografi,
semua plainteks dan cipherteks yang mungkin, dan kunci.
Di dalam sistem kriptografi, cipher hanyalah salah satu
komponen saja.
6. Penyadap
Penyadap (eavesdropper) adalah orang yang mencoba
menangkap pesan selama ditransmisikan.
7. Kriptanalisis dan Kriptologi
Kriptografi berkembang sedemikian rupa sehingga
melahirkan bidang yang berlawanan yaitu kriptanalisis.
Kriptanalisis (cryptanalisys) adalah ilmu dan seni untuk
memecahkan cipherteks menjadi plainteks tanpa
mengetahui kunci yang digunakan. Pelakunya disebut
kriptanalis. Kriptologi (cryptology) adalah studi
mengenai kriptografi dan kriptanalisis.
13
2.4.2. Tujuan Kriptografi
Kriptografi bertujuan untuk memberi layanan keamanan
sebagai berikut (Munir, 2006 : 9):
1. Kerahasiaan (confidentiality)
Adalah layanan yang ditujukan untuk menjaga agar pesan
tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
2. Integritas data (data integrity)
Adalah layanan yang menjamin bahwa pesan masih
asli/utuh atau belum pernah dimanipulasi selama
pengiriman.
3. Otentikasi (authentication)
Adalah layanan yang berhubungan dengan identifikasi,
baik mengidentifikasi kebenaran pihak-pihak yang
berkomunikasi (user authentication atau entity
authentication) maupun mengidentifikasi kebenaran
sumber pesan (data origin authentication).
4. Nirpenyangkalan (non-repudiation)
Adalah layanan untuk mencegah entitas yang
berkomunikasi melakukan penyangkalan, yaitu pengirim
pesan menyangkal melakukan pengiriman atau penerima
pesan menyangkal telah menerima pesan.
14
2.4.3. Sejarah Kriptografi
Sejarah kriptografi sebagian besar merupakan sejarah
kriptografi klasik, yaitu metode enkripsi yang menggunakan
kertas dan pensil atau mungkin dengan bantuan alat mekanik
sederhana.
Sejarah kriptografi klasik mencatat penggunaan cipher
transposisi oleh tentara Sparta di Yunani pada permulaan tahun
400 SM. Mereka menggunakan alat yang namanya scytale
(Gambar 2.1). Sedangkan algoritma substitusi paling awal dan
paling sederhana adalah caesar cipher, yang digunakan oleh raja
Yunani kuno, Julius Caesar. Caranya adalah dengan mengganti
setiap karakter di dalam alfabet dengan karakter yang terletak
pada tiga posisi berikutnya di dalam susunan alphabet (Munir,
2006 : 10).
Gambar 2.2. Sebuah scytale, pesan yang ditulis secara
horizontal, baris perbaris.
(Sumber : http://global.mitsubishielectric.com).
Kriptografi juga digunakan untuk tujuan keamanan.
Kalangan gereja pada masa awal agama kristen menggunakan
15
kriptografi untuk menjaga tulisan relijius dari gangguan otoritas
politik atau budaya yang dominan saat itu.
Pada abad ke-17, sejarah kriptografi mencatat korban
ketika ratu Scotlandia, Queen Mary, dipancung setelah surat
rahasianya dari balik penjara (surat terenkripsi yang isinya
rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh
seorang pemecah kode.
Seperti yang telah disebutkan di atas bahwa kriptografi
umum digunakan di kalangan militer. Pada Perang Dunia ke II,
Pemerintah Nazi Jerman membuat mesin enkripsi yang
dinamakan enigma (Gambar 2.2). Mesin yang menggunakan
beberapa buah rotor (roda berputar) ini melakukan enkripsi
dengan cara yang sangat rumit (Munir, 2006 : 11).
Gambar 2.3. Mesin enkripsi Enigma yang digunakan oleh
tentara Jerman pada masa Perang Dunia ke II.
(Sumber : http://www.technology.niagarac.on.ca).
Kriptografi modern dipicu oleh perkembangan peralatan
komputer digital. Dengan komputer digital, cipher yang
16
kompleks menjadi sangat mungkin untuk dapat dihasilkan.
Tidak seperti kriptografi klasik yang mengenkripsi karakter per
karakter, kriptografi modern beroperasi pada string biner.
Cipher yang kompleks seperti DES (Data Encryption Standard)
dan penemuan algoritma RSA adalah algoritma kriptografi
modern yang paling dikenal di dalam sejarah kriptografi
modern. Kriptografi modern tidak hanya berkaitan dengan
teknik menjaga kerahasiaan pesan, tetapi juga melahirkan
konsep seperti tandatangan digital dan sertifikat digital. Dengan
kata lain, kriptografi modern tidak hanya memberikan aspek
keamanan confidentiality, tetapi juga aspek keamanan lain
seperti otentikasi, integritas data, dan nirpenyangkalan (Munir,
2006 : 12).
2.5. Algoritma Kriptografi Klasik
Rinaldi Munir. Pada dasarnya, algoritma kriptografi klasik dapat
dikelompokkan ke dalam dua macam cipher (Munir, 2006 : 55):
2.5.1. Cipher Substitusi
Di dalam cipher substitusi setiap unit plainteks diganti
dengan satu unit cipherteks. Satu unit di sini bisa berarti satu
huruf, pasangan huruf, atau kelompok lebih dari dua huruf.
Chiper substitusi dapat dikelompokkan ke dalam empat jenis
(Munir, 2006 : 61):
17
1. Cipher Alfabet Tunggal (Monoalphabetic cipher), satu
huruf di plainteks diganti dengan tepat satu huruf
cipherteks.
2. Cipher Alphabetic Majemuk (Polyalphabetic chiper),
merupakan cipher substitusi ganda.
3. Cipher Substitusi Homofonik (homophonic substitution
cipher), seperti cipher alfabet tunggal tetapi setiap huruf
dalam plainteks dapat dipetakan ke dalam salah satu dari
unit cipherteks yang mungkin.
4. Cipher Substitusi Poligram (Polygram substitution
cipher), setiap kelompok huruf disubstitusi dengan
kelompok huruf cipherteks.
Algoritma substitusi tertua yang diketahui adalah caesar
cipher yang digunakan oleh kaisar Romawi, Julius Caesar, untuk
menyandikan pesan yang ia kirim kepada para gubernurnya.
Gambar 2.3 memperlihatkan caesar wheel terdiri dari dua
buah lempeng lingkaran besi. Lingkaran besi paling luar
menyatakan huruf-huruf plainteks sedangkan lingkaran besi
terdalam menyatakan huruf-huruf cipherteks.
Gambar 2.4. Caesar Wheel (Sumber : http://mail.colonial.net)
18
2.5.2. Cipher Transposisi
Pada cipher transposisi, huruf-huruf di dalam plainteks
tetap sama, hanya saja urutannya diubah. Dengan kata lain
algoritma ini melakukan transpose terhadap rangkaian karakter
di dalam teks. Nama lain untuk metode ini adalah permutasi
atau pengacakan (scrambling) karena transpose setiap karakter
di dalam teks sama dengan mempermutasikan karakter-karakter
tersebut. Kriptografi dengan alat scytale yang digunakan oleh
tentara Sparta pada zaman Yunani termasuk ke dalam cipher
transposisi.
Misalkan sebuah plainteks :
DEPARTEMEN TEKNIK INFORMATIKA ITB
Untuk meng-enkripsi pesan, plainteks ditulis secara
horizontal dengan lebar kolom tetap, misal selebar 6 karakter
(kunci k = 6) :
DEPART
EMENTE
KNIKIN
FORMAT
IKAITB
Maka cipherteksnya dibaca secara vertikal menjadi
DEKFIEMNOKPEIRAANKMIRTIATTENTB
Atau dapat juga ditulis dalam kelompok-kelompok yang
terdiri dari 4 huruf :
DEKF IEMN OKPE IRAA NKMI RTIA TTEN TB
Untuk mendekripsi pesan, kita membagi panjang
cipherteks dengan kunci. Pada contoh ini, kita membagi 30
19
dengan 6 untuk mendapatkan 5 (jika cipherteks ditulis dalam
kelompok-kelompok huruf, buang semua spasi yang ada
sehingga menjadi string yang panjang). Algoritma dekripsi
identik dengan algoritma enkripsi. Jadi, kita tulis cipherteks
dalam baris-baris selebar 5 karakter menjadi :
DEKFI
EMNOK
PEIRA
ANKMI
RTIAT
TENTB
Dengan membaca setiap kolom kita memperoleh pesan
semula :
DEPARTEMEN TEKNIK INFORMATIKA ITB
2.6. Algoritma Kriptografi Modern
Kriptografi modern mempunyai kerumitan yang sangat kompleks
karena dioperasikan menggunakan komputer (Ariyus, 2008: 46).
Kriptografi modern merupakan suatu perbaikan yang mengacu pada
kriptografi klasik. Algoritma kriptografi modern terdiri dari dua bagian
(Ariyus, 2008: 108) :
2.6.1. Algoritma Simetris
Algoritma simetris adalah algoritma yang menggunakan
kunci yang sama untuk enkripsi dan dekripsinya. Keamanan
algoritma simetris tergantung pada kuncinya. Algoritma simetris
sering juga disebut algoritma kunci rahasia, algoritma kunci
tunggal atau algoritma satu kunci. Dua kategori yang termasuk
20
pada algoritma simetris ini adalah algoritma block cipher dan
stream cipher.
Aplikasi dari algoritma simetris diantaranya adalah:
1. Data Encryption Standard (DES).
2. Advanced Encryption Standard (AES).
3. International Data Encryption Algorithm (IDEA).
4. A5.
5. RC4.
2.6.2. Algoritma Asimetris
Algoritma asimetris adalah pasangan kunci kriptografi
yang salah satunya digunakan untuk proses enkripsi dan yang
satu lagi untuk dekripsi. Semua orang yang mendapatkan kunci
publik dapat menggunakannya untuk mengenkripsi suatu pesan,
sedangkan hanya satu orang saja yang memiliki kunci rahasia
itu, yang dapat melakukan pembongkaran terhadap kode yang
dikirim untuknya.
Beberapa algoritma asimetris antara lain:
1. RSA (Rivest Shamir Adleman).
2. Diffie Hellman.
2.6.3. Algoritma Hibrida
Algoritma hibrida adalah algoritma yang memafaatkan
dua tingkatan kunci, yaitu kunci rahasia (simetri) yang disebut
juga session key (kunci sesi) untuk enkripsi data dan pasangan
21
kunci rahasia kunci publik untuk pemberian tandatangan
digital serta melindungi kunci simetri.
2.7. Advance Encryption Standard
DES (Data Encryption Standard) dianggap sudah tidak aman lagi
karena dengan perangkat keras khusus kuncinya bisa ditemukan dalam
beberapa hari. National Institute of Standards and Technology (NIST),
sebagai agensi Departemen Perdagangan AS mengusulkan kepada
Pemerintah Federal AS untuk sebuah standard kriptografi yang baru.
Untuk menghindari kontroversi mengenai standard yang baru
tersebut, NIST mengadakan sayembara terbuka untuk membuat standard
algoritma kriptografi yang akan diberi nama Advanced Encryption
Standard (AES) (Munir, 2006 : 157).
Persyaratan yang diajukan oleh NIST adalah :
1. Algoritma yang ditawarkan termasuk ke dalam kelompok algoritma
kriptografi simetri berbasis cipher blok.
2. Seluruh rancangan algoritma harus publik (tidak dirahasiakan).
3. Panjang kunci fleksibel : 128, 192, dan 256 bit.
4. Ukuran blok yang dienkripsi adalah 128 bit.
5. Algoritma dapat diimplementasikan baik sebagai software maupun
hardware.
Pada bulan Agustus 1998, NIST memilih 5 finalis yang didasarkan
pada aspek keamanan algoritma, kemangkusan (efficiency), fleksibilitas,
dan kebutuhan memori. Finalis tersebut adalah (Munir, 2006 : 157):
22
1. Rijndael (dari Vincent Rijmen and Joan Daemen Belgia, 86
suara).
2. Serpent (dari Ross Anderson, Eli Biham, dan Lars Knudsen
Inggris, Israel, dan Norwegia, 59 suara).
3. Twofish (dari tim yang diketuai oleh Bruce Schneier USA, 31
suara).
4. RC6 (dari laboratorium RIVEST SHAMIR ADLEMAN USA, 23
suara).
5. MARS (dari IBM, 13 suara).
Pada bulan Oktober 2000, NIST mengumumkan untuk memilih
Rijndael (dibaca : Rhinedoll), dan pada bulan November 2001, Rijndael
ditetapkan sebagai Advance Encryption Standard, dan diharapkan
Rijndael menjadi standard kriptografi yang dominan paling sedikit
selama sepuluh tahun (Munir, 2006 : 158).
2.7.1. Panjang Kunci dan Ukuran Blok Rijndael
Rijndael mendukung panjang kunci 128 bit sampai 256 bit
dengan step 32 bit. Panjang kunci dan ukuran blok dapat dipilih
secara independen. Setiap blok dienkripsi dalam sejumlah
putaran tertentu, sebagaimana halnya pada DES.
Karena Advance Encryption Standard menetapkan
panjang kunci adalah 128, 192, dan 256, maka dikenal Advance
Encryption Standard-128, Advance Encryption Standard-192,
dan Advance Encryption Standard-256. Table 2.1. meresumekan
perbedaan ketiga versi Advance Encryption Standard tersebut.
23
Tabel 2.1. Tiga buah Versi Advance Encryption Standard
(Sumber : Munir, 2006 : 158)
Panjang Kunci (Nk words)
Ukuran Blok
(Nb words) Jumlah Putaran
(Nr)
AES-128 4 4 10
AES-192 6 4 12
AES-256 8 4 14 Catatan : 1 word = 32 bit
Secara defacto, hanya ada dua varian AES, yaitu AES-128
dan AES 256, karena akan sangat jarang pengguna
menggunakan kunci yang panjangnya 192 bit. Karena Advance
Encryption Standard mempunyai panjang kunci paling sedikit
128 bit, maka Advance Encryption Standard tahan terhadap
serangan exhaustive key search dengan teknologi saat ini.
Dengan panjang kunci 128-bit, maka terdapat sebanyak
2128 = 3,4 x 1038
kemungkinan kunci. Jika digunakan komputer tercepat
yang dapat mencoba 1 juta kunci setiap detik, maka akan
dibutuhkan waktu 5,4 x 1024 tahun untuk mencoba seluruh
kemungkinan kunci. Jika digunakan komputer tercepat yang
dapat mencoba 1 juta kunci setiap milidetik, maka akan
dibutuhkan waktu 5,4 x 1018 tahun untuk mencoba seluruh
kemungkinan kunci.
24
2.7.2. Algoritma Rijndael
Rijndael menggunakan substitusi dan permutasi, dan
sejumlah putaran (cipher berulang), setiap putaran
menggunakan kunci internal yang berbeda (kunci setiap putaran
disebut round key). Tetapi tidak seperti DES yang berorientasi
bit, Rijndael beroperasi dalam orientasi byte. Selain itu, Rijndael
tidak menggunakan jaringan Feistel seperti DES dan GOST.
Garis besar Algoritma Rijndael yang beroperasi pada blok
128-bit dengan kunci 128-bit adalah sebagai berikut (Munir,
2006 : 159):
1. AddRoundKey : melakukan XOR antara state awal
(plainteks) dengan cipher key. Tahap ini disebut juga
initial round.
2. Putaran sebanyak Nr 1 kali. Proses yang dilakukan pada
setiap putaran adalah :
a. SubBytes : substitusi byte dengan menggunakan
table substitusi (S-box).
b. ShiftRows : pergeseran baris-baris array state
secara wrapping.
c. MixColumns : mengacak data di masing-masing
kolom array state.
d. AddRoundKey : melakukan XOR antara state
sekarang dengan round key.
3. Final round : proses untuk putaran terakhir :
25
a. SubBytes
b. ShiftRows
c. AddRoundKey
Garis besar algoritma enkripsi Rijndael diperlihatkan pada
gambar 2.5.
state
AddRoundKey
Chiper Key
initial round
1-SubBytes
2-ShiftRows
3-MixColumns
4-AddRoundKey
Round Key 0
9 rounds
SubBytes
ShiftRows
Round Key 10
AddRoundKey
final round
Gambar 2.5. Diagram Proses Enkripsi (Sumber : Munir, 2006 : 159)
Algoritma Rijndael mempunyai tiga parameter (Munir,
2006 : 161) :
1. plaintext : array yang berukuran 16-byte, yang berisi data
masukan.
26
S0,0 S0,1 S0,1 S0,3
S1,0 S1,1 S1,2 S1,3
S2,0 S2,1 S2,2 S2,3
S3,0 S3,1 S3,2 S3,3
out0 out4 out8 out12
out1 out5 out9 out13
out2 out6 out10 out14
out3 out7 out11 out15
2. ciphertext : array yang berukuran 16-byte, yang berisi
hasil enkripsi.
3. key : array yang berukuran 16-byte, yang berisi kunci
ciphering (disebut juga cipher key).
Dengan 16 byte, maka baik blok data dan kunci yang
berukuran 128-bit dapat disimpan di dalam ketiga array tersebut
(128 = 16 x 8). Selama kalkulasi plainteks menjadi cipherteks,
status sekarang dari data disimpan di dalam array of bytes dua
dimensi, state, yang berukuran NROWS x NCOLS. Untuk blok
data 128-bit, ukuran state adalah 4 x 4. Elemen array state diacu
sebagai S[r,c], dengan 0 r < 4 dan 0 c < Nb (Nb adalah
panjang blok dibagi 32. Pada AES-128, Nb = 128/32 = 4).
Pada awal enkripsi, 16-byte data masukan, in0,in1,,in15
disalin ke dalam array state (direalisasikan oleh fungsi
CopyPlaintextToState(state, plaintext)) seperti diilustrasikan
sebagai berikut :
input bytes state array output bytes
in0 in4 in8 in12
in1 in5 in9 in13
in2 in6 in10 in14
in3 in7 in11 in15
Operasi Enkripsi/dekripsi dilakukan terhadap array S, dan
keluarannya ditampung di dalam array out. Skema penyalinan
array masukan in ke array S adalah sebagai berikut :
27
2b
28
ab
09
7e
ae
f7
cf
15
d2
15
4f
16
a6
88
3c
S[r, c] in[r + 4c] untuk 0 r < 4 dan 0 c < Nb
Skema penyalinan array S ke array keluaran out :
out[r + 4c] S[r, c] untuk 0 r < 4 dan 0 c < Nb
Contoh elemen state dan kunci dalam notasi HEX :
input
state Cipher key
32
88
31
e0
43
5a
31
37
f6
30
98
07
a8
8d
a2
34
hexadecimal notation: Ex: 32 = 0011 0010 (1 byte)
3hex 2hex
2.7.3. Transformasi SubBytes()
Transformasi SubBytes memetakan setiap byte dari
array state dengan menggunakan tabel substitusi S-box.
Tidak seperti DES yang mempunyai S-box berbeda pada
setiap putaran, Advance Encryption Standard hanya
mempunyai satu buah S-box. Tabel S-box yang digunakan
ditunjukkan pada table 2.2 :
28
Tabel 2.2. S-box (Sumber : Munir, 2006 : 163)
y hex
0 1 2 3 4 5 6 7 8 9 a b c d e f
0
63
7c
77
7b
f2
6b
6f
c5
30
01
67
2b
fe
d7
ab
76
1
ca
82
c9
7d
fa
59
47
f0
ad
d4
a2
af
9c
a4
72
c0
2
b7
fd
93
26
36
3f
f7
cc
34
a5
e5
f1
71
d8
31
15
3
04
c7
23
c3
18
96
05
9a
07
12
80
e2
eb
27
b2
75
4
09
83
2c
1a
1b
6e
5a
a0
52
3b
d6
b3
29
e3
2f
84
5
53
d1
00
ed
20
fc
b1
5b
6a
cb
be
39
4a
4c
58
cf
6
d0
ef
aa
fb
43
4d
33
85
45
f9
02
7f
50
3c
9f
a8
7
51
a3
40
8f
92
9d
38
f5
bc
b6
da
21
10
ff
f3
d2
8
cd
0c
13
ec
5f
97
44
17
c4
a7
7e
3d
64
5d
19
73
9
60
81
4f
dc
22
2a
90
88
46
ee
b8
14
de
5e
0b
db
a
e0
32
3a
0a
49
06
24
5c
c2
d3
ac
62
91
95
e4
79
b
e7
c8
37
6d
8d
d5
4e
a9
6c
56
f4
ea
65
7a
ae
08
c
ba
78
25
2e
1c
a6
b4
c6
e8
dd
74
1f
4b
bd
8b
8a
d
70
3e
b5
66
48
03
f6
0e
61
35
57
b9
86
c1
1d
9e
e
e1
f8
98
11
69
d9
8e
94
9b
1e
87
e9
ce
55
28
df
x
f
8c
a1
89
0d
bf
e6
42
68
41
99
2d
0f
b0
54
bb
16
Cara pensubstitusian adalah sebagai berikut : untuk setiap
byte pada array state, misalkan S[r,c]=xy, yang dalam hal ini xy
adalah digit hexadesimal dari nilai S[r,c], maka nilai
substitusinya, yang dinyatakan dengan S[r,c], adalah elemen di
dalam S-box yang merupakan perpotongan baris x dengan kolom
y. Gambar 2.5 memperlihatkan transformasi SubBytes().
29
a2,2 a
b2,1
a0,0 a0,1 a0,2 a0,3
a1,0 a1,1 a1,2 a1,3
SubBytes
b0,0 b0,1 b0,2 b0,3
b1,0 b1,1 b1,2 b1,3
a2,0 a2,1
a2,2 2,3
b2,0
b2,2
b2,2 b2,3
a3,0 a3,1 a3,2 a3,3
b3,0 b3,1 b3,2 b3,3
S
Gambar 2.6. Transformasi SubBytes
(Sumber : Munir, 2006 : 163)
2.7.4. Transformasi ShiftRows()
Transformasi ShiftRows() melakukan pergeseran secara
wrapping (siklik) pada 3 baris terakhir dari array state. Jumlah
pergeseran bergantung pada nilai baris (r). baris r = 1 digeser
sejauh 1 byte, baris r = 0 tidak digeser. Gambar 2.6
memperlihatkan transformasi ShiftRows.
Gambar 2.7. Transformasi ShiftRows
(Sumber : Munir, 2006 : 165)
2.7.5. Transformasi MixColumns()
Transformasi MixColumns() mengalikan setiap kolom dari
array state dengan polinom a(x) mod (x4 + 1). MixColumns
30
memberikan difusi pada cipher. Setiap kolom diperlakukan
sebagai polinom 4-suku pada GF(28). Polinom a(x) yang
ditetapkan adalah
a(x) = {03}x3 + {01}x2 + {01}x + {02} (6.5)
Transformasi ini dinyatakan sebagai perkalian matriks :
S(x) = a(x) s(x) (6.6)
S0,c
S1,c =
S2,c
S3,c
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
S0,c
S1,c
S2,c
S3,c
S0,c = ({02} S0,c) ({03} S1,c) S2,c S3,c
S1,c = S0,c ({02} S1,c) ({03} S2,c) S3,c
S1,c = S0,c S1,c ({02} S2,c) ({03} S2,c)
S1,c = ({03} S0,c) S1,c S2,c ({02} S3,c)
Gambar 2.7 memperlihatkan transformasi MixColumns().
Gambar 2.8. Transformasi MixColumns
(Sumber : Munir, 2006 : 166)
31
2.7.6. Transformasi AddRoundKey()
Transformasi ini melakukan operasi XOR terhadap sebuah
round key dengan array state, dan hasilnya disimpan di array
state. Gambar 2.8 memperlihatkan transformasi AddRoundKey.
Gambar 2.9. Transformasi AddRoundKey
(Sumber : Munir, 2006 : 167)
2.7.7. Ekspansi Kunci
Algoritma Rijndael mengambil cipher key, K, yang
diberikan oleh pengguna, dan memanggil fungsi
KeyExpansion() untuk membangkitkan sejumlah round key
(banyaknya round key bergantung pada jumlah putaran).
2.8. Kriptografi Kunci Publik
2.8.1. Sejarah Kriptografi Kunci Publik
Sistem kriptografi nirsimetri dipublikasikan pertama kali
pada tahun 1976 oleh Whitfield Diffie dan Martin Hellman, dua
32
orang ilmuwan dari Stanford University melalui makalah
berjudul New Directions in Cryptography. Makalah mereka
membahas distribusi kunci rahasia pada saluran komunikasi
publik (yang tidak aman) dengan metode pertukaran kunci yang
belakangan dikenal dengan nama algoritma pertukaran kunci
Diffie-Hellman.
Pada tahun 1977, generalisasi dari ide Cocks ditemukan
kembali oleh tiga orang ilmuwan dari MIT, yaitu Rivest, Shamir,
dan Adleman. Algoritma enkripsi yang mereka buat dikenal
dengan nama Rivest Shamir Adleman.
Akhirnya sejak tahun 1976 berbagai algoritma enkripsi,
tanda tangan digital, pertukaran kunci, dan teknik lain
dikembangkan dalam bidang kriptografi kunci publik, misalnya
algoritma ElGamal untuk enkripsi dan tanda tangan digital dan
algoritma DSA untuk tanda tangan digital. Pada tahun 1980
Neal Koblitz memperkenalkan elliptic-curve-cryptography
sebagai keluarga baru yang analog dengan algoritma kriptografi
kunci publik (Munir, 2006 : 177).
2.8.2. Konsep Kriptografi Kunci Publik
Pada kriptografi kunci publik, setiap pengguna memiliki
sepasang kunci, satu kunci untuk enkripsi, dan satu kunci untuk
dekripsi (Gambar 2.9). Kunci untuk enkripsi diumumkan kepada
publik (oleh karena itu tidak rahasia) sehingga dinamakan kunci
publik (public key), disimbolkan dengan e. Kunci untuk
33
dekripsi bersifat rahasia sehingga dinamakan kunci pribadi
(private key), disimbolkan dengan d. Karena kunci enkripsi
kunci dekripsi itulah kriptografi kunci publik disebut juga
kriptografi nirsimetri (Munir, 2006 : 172).
Kunci Publik, e Kunci Privat, d
Plainteks, m
Enkripsi Ee (m) = c
Cipherteks, c Dekripsi Dd (c) = m
Plainteks, m
Gambar 2.10. Skema kriptografi nirsimetri
(Sumber : Munir, 2006 : 172)
Misalkan E adalah fungsi enkripsi dan D adalah fungsi
dekripsi. Misalkan (e, d) adalah pasangan kunci untuk enkripsi
dan dekripsi sedemikian, sehingga
Ee (m) = c dan Dd (c) = m
untuk suatu plainteks m dan cipherteks c. kedua persamaaan ini
menyiratkan bahwa dengan mengetahui e dan c, maka secara
komputasi hampir tidak mungkin menemukan m. asumsi
lainnya, dengan mengetahui e, secara komputasi hampir tidak
mungkin menurunkan d. Ee digambarkan sebagai fungsi pintu
kolong (trapdoor) satu arah dengan d adalah informasi trapdoor
yang diperlukan untuk menghitung fungsi inversinya, D, yang
dalam hal ini membuat proses dekripsi dapat dilakukan.
34
Dengan sistem kriptografi kunci publik ini dua orang yang
berkomunikasi tidak perlu berbagi kunci yang sama. Keduanya
memiliki sepasang kunci, kunci publik dan kunci privat. Sistem
kriptografi kunci publik yang aman memiliki dua karakteristik
sebagai berikut (Munir, 2006 : 174):
1. Komputasi untuk enkripsi/dekripsi mudah dilakukan.
2. Secara komputasi hampir tidak mungkin (infeasible)
menurunkan kunci privat, d, bila diketahui kunci publik, e,
pasangannya.
Kedua karakteristik di atas dapat dianalogikan dengan dua
masalah matematika berikut :
a. Perkalian vs pemfaktoran. Mengalikan dua buah bilangan
prima, a x b = n, mudah, tetapi memfaktorkan n menjadi
faktor-faktor primanya lebih sulit.
Contoh : 31 x 47 = 1457 (perkalian, mudah)
1457 = ? x ?
(pemfaktoran, sulit)
b. Pemangkatan vs logaritma diskrit. Melakukan
perpangkatan modulo, b = ax mod n, mudah, tetapi
menemukan x dari ax b (mod n) lebih sulit.
Contoh :
126 mod 1125 = 234 (perpangkatan modulo, mudah)
x dari 12x 234 (mod 1125) (logaritmik diskrit, sulit)
35
Dua masalah matematika di atas sering dijadikan dasar
pembangkitan sepasang kunci pada kriptografi kunci publik,
yaitu (Munir, 2006 : 175):
1. Pemfaktoran
Diberikan bilangan bulat n. Faktorkan n menjadi faktor
primanya. Contoh :
60 = 2 x 2 x 3 x 5
252601 = 41 x 61 x 101
213 1 = 3391 x 23279 x 65993 x 1868569 x
1066818132868207
Semakin besar n, semakin sulit memfaktorkan (butuh
waktu sangat lama). Algoritma yang menggunakan prinsip
ini : Rivest Shamir Adleman.
2. Logaritma Diskrit
Temukan x sedemikian ax b (mod n) sulit dihitung.
Contoh : jika 3x 15 (mod 17) maka x = 6.
Semakin besar a, b, dan n semakin sulit memfaktorkan
(butuh waktu yang lama).
Algoritma yang menggunakan prinsip ini : ElGamal dan
DSA.
Catatan : Persoalan logaritma diskrit adalah kebalikan dari
persoalan perpangkatan modular : ax mod n
Sistem kriptografi kunci publik cocok digunakan di dalam
kelompok pengguna di lingkungan jaringan komputer
36
(LAN/WAN) yang memungkinkan mereka saling
berkomunikasi. Setiap pengguna jaringan memiliki pasangan
kunci publik dan kunci privat yang bersesuaian. Kunci publik,
karena tidak rahasia, biasanya disimpan di dalam basisdata
kunci yang dapat diakses oleh pengguna lain. Jika ada pengguna
yang hendak berkirim pesan ke pengguna lainnya, maka ia perlu
mengetahui kunci publik penerima pesan melalui basisdata
kunci ini lalu menggunakannya untuk mengenkripsi pesan.
Hanya penerima pesan yang dapat mendekripsi pesan karena ia
yang mengetahui kunci privatnya sendiri.
Dengan sistem kriptografi kunci publik, tidak diperlukan
pengiriman kunci privat melalui saluran komunikasi khusus
sebagaimana pada sistem kriptografi simetri (Munir, 2006 :
176).
2.8.3. Aplikasi Kriptografi Kunci Publik
Aplikasi kriptografi kunci publik dapat dibagi menjadi tiga
kategori (Munir, 2006 : 178):
1. Kerahasiaan data
Seperti pada kriptografi kunci simetri, kriptografi kunci
publik dapat digunakan untuk menjaga kerahasiaan data
(provide confidentiality/secrecy) melalui mekanisme
enkripsi dan dekripsi. Contoh algoritma untuk aplikasi ini
adalah Rivest Shamir Adleman, Knapsack, Rabin,
ElGamal, Elliptic Curve Cryptography (ECC).
37
2. Tanda tangan digital
Tanda tangan digital (digital signature) dengan
menggunakan algoritma kriptografi kunci publik dapat
digunakan untuk membuktikan otentikasi pesan maupun
otentikasi pengirim (provide authentication). Contoh
algoritmanya untuk aplikasi ini adalah Rivest Shamir
Adleman, DSA, dan ElGamal.
3. Pertukaran kunci (key exchange)
Algoritma kriptografi kunci publik dapat digunakan untuk
pengiriman kunci simetri (session key). Contoh
algoritmanya adalah Rivest Shamir Adleman dan Diffie-
Hellman.
2.9. RSA (Rivest Shamir Adleman)
Algoritma Rivest Shamir Adleman dibuat oleh 3 orang peneliti dari
MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu Ron
(R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma
Rivest Shamir Adleman terletak pada sulitnya memfaktorkan bilangan
yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk
memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi
faktor-faktor prima belum ditemukan algoritma yang mangkus, maka
selama itu pula keamanan algoritma Rivest Shamir Adleman tetap
terjamin (Munir, 2006 : 179).
38
Algoritma Rivest Shamir Adleman memiliki besaran-besaran
sebagai berikut :
1. p dan q bilangan prima (rahasia)
2.
n = p . q
(tidak rahasia)
3.
(n) = (p - 1)(q - 1)
(rahasia)
4.
e (kunci enkripsi)
(tidak rahasia)
5.
d (kunci dekripsi)
(rahasia)
6.
m (plainteks)
(rahasia)
7.
c (cipherteks)
(tidak rahasia)
2.9.1. Perumusan Algoritma Rivest Shamir Adleman
Algoritma Rivest Shamir Adleman didasarkan pada
teorema Euler yang menyatakan bahwa
a(n) 1 (mod n) (2.1)
dengan syarat (Munir, 2006 : 179) :
1. a harus relatif prima terhadap n
2. (n) = n(1 - 1/p1)(1 - 1/p2)(1 1/pr), yang dalam hal ini
p1, p2, , pr adalah faktor prima dari n. (n) adalah fungsi
yang menentukan berapa banyak dari bilangan-bilangan 1,
2, 3,, n yang relatif prima terhadap n.
Berdasarkan sifat ak bk (mod n) untuk k bilangan bulat
1 maka persamaan (2.1) dapat ditulis menjadi
ak(n)
1k (mod n) atau
ak(n)
1 (mod n) (2.2)
39
bila a diganti dengan m, maka persamaan (2.2) dapat
ditulis menjadi
mk(n)
1 (mod n) (2.3)
Berdasarkan sifat ac bc (mod n), maka bila persamaan
(2.3) dikali dengan m menjadi :
mk(n)+1
m (mod n) (2.4)
yang dalam hal ini m relatif prima terhadap n.
Misalkan e dan d dipilih sedemikian sehingga
e d 1 (mod (n)) (2.5)
atau
e d k(n) + 1 (2.6)
Sulihkan (2.6) ke dalam persamaan (2.4) menjadi :
me d m (mod n) (2.7)
persamaan (2.7) dapat ditulis kembali menjadi :
(me) d m (mod n) (2.8)
Yang artinya, perpangkatan m dengan e diikuti dengan
perpangkatan dengan d menghasilkan kembali m semula.
Berdasarkan persamaan (2.8), maka enkripsi dan dekripsi
dirumuskan sebagai berikut :
Ee(m) = c me mod n (2.9)
Dd(c) = m cd mod n (2.10)
Karena e d = d e, maka enkripsi diikuti dengan dekripsi
ekivalen dengan dekripsi diikuti enkripsi :
Dd(Ee(m)) = Ee(Dd(c)) md mod n (2.11)
40
Oleh karena md mod n (m + jn)d mod n untuk
sembarang bilangan bulat j, maka tiap plainteks m, m + n, m +
2n, , menghasilkan cipherteks yang sama. Dengan kata lain,
transformasinya dari banyak ke satu. Agar transformasinya dari
satu ke satu, maka m harus dibatasi dalam himpunan {0, 1, 2,
, n-1} sehingga enkripsi dan dekripsi tetap benar seperti pada
persamaan (2.9) dan (2.10).
2.9.2. Algoritma Membangkitkan Pasangan Kunci
1. Pilih dua buah bilangan prima sembarang, p dan q.
2. Hitung n = p q (sebaiknya p q, sebab jika p = q maka n
= p2 sehingga p dapat diperoleh dengan menarik akar
pangkat dua dari n).
3. Hitung (n) = (p - 1)(q - 1).
4. Pilih kunci publik, e, yang relatif prima terhadap (n).
5. Bangkitkan kunci privat dengan mengguakan persamaan
(2.5), yaitu e d 1 (mod (n)). Perhatikan bahwa e d
1 (mod n) ekivalen dengan e d 1 + k(n), sehingga
secara sederhana d dapat dihitung dengan
(2.12)
Hasil dari algoritma di atas :
- Kunci publik adalah pasangan (e, n)
- Kunci privat adalah pasangan (d, n)
Catatan : n tidak bersifat rahasia, sebab ia diperlukan pada
perhitungan enkripsi/dekripsi (Munir, 2006 : 181).
41
2.9.3. Algoritma Enkripsi/Dekripsi
Enkripsi
1. Ambil kunci publik penerima pesan, e, dan modulus n.
2. Nyatakan plainteks m menjadi blok-blok m1, m2,,
sedemikian sehingga setiap blok merepresentasikan nilai
di dalam selang [0, n-1].
3. Setiap blok m, dienkripsi menjadi blok ci dengan rumus ci
= mi e mod n.
Dekripsi
Setiap blok cipherteks ci didekripsi kembali menjadi blok mi
dengan rumus mi = ci d mod n.
2.9.4. Keamanan Rivest Shamir Adleman
Keamanan algoritma Rivest Shamir Adleman didasarkan
pada sulitnya memfaktorkan bilangan besar menjadi faktor-
faktor primanya (Munir, 2006 : 183).
Masalah pemfaktoran : Faktorkan n, yang dalam hal ini n
adalah hasil kali dari dua atau lebih bilangan prima.
Pada Rivest Shamir Adleman, masalah pemfaktoran
berbunyi : Faktorkan n menjadi dua faktor primanya, p dan q,
sedemikian sehingga n = p q. Sekali n berhasil difaktorkan
menjadi p dan q, maka (n) = (p - 1)(q - 1) dapat dihitung.
Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia),
42
maka kunci dekripsi d dapat dihitung dari persamaan e d 1
(mod (n)).
Selama 300 tahun para matematikawan mencoba mencari
faktor bilangan yang besar namun tidak banyak membuahkan
hasil. Semua bukti yang diketahui menunjukkan bahwa upaya
pemfaktoran itu luar biasa sulit. Belum ditemukan algoritma
pemfaktoran bilangan besar dalam waktu polinomial, tetapi juga
tidak dapat dibuktikan algoritma tersebut ada. Fakta inilah yang
membuat algoritma Rivest Shamir Adleman dianggap aman.
Penemu algoritma Rivest Shamir Adleman bahkan menyarankan
nilai p dan q panjangnya lebih dari 100 angka. Dengan demikian
hasil kali n = p x q akan berukuran lebih dari 200 angka.
Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor
prima dari bilangan 200 angka membutuhkan waktu komputasi
selama 4 milyar tahun, sedangkan untuk bilangan 500 angka
membutuhkan waktu 1025 tahun. (dengan asumsi bahwa
algoritma pemfaktoran yang digunakan adalah algoritma yang
tercepat saat ini dan komputer yang digunakan mempunyai
kecepatan 1 milidetik).
Secara umum dapat disimpulkan bahwa Rivest Shamir
Adleman hanya aman jika n cukup besar. Jika panjang n hanya
256 bit atau kurang, ia dapat difaktorkan dalam beberapa jam
saja dengan sebuah komputer PC dan program yang tersedia
43
secara bebas. Jika panjang n 512 bit atau kurang, ia dapat
difaktorkan dengan beberapa ratus komputer.
Tahun 1977, tiga orang penemu Rivest Shamir Adleman
membuat sayembara untuk memecahkan cipherteks dengan
menggunakan Rivest Shamir Adleman di majalah scientific
American. Hadiahnya adalah $100. Tahun 1994, kelompok yang
bekerja dengan kolaborasi internet berhasil memecahkan
cipherteks hanya dalam waktu 8 bulan.
2.9.5. Kecepatan
Rivest Shamir Adleman lebih lambat daripada algoritma
kriptografi kunci simetri seperti DES dan AES. Oleh karena itu,
di dalam praktek penggunaannya, pesan tetap dienkripsi dengan
menggunakan salah satu algoritma kunci simetri atau kunci
rahasia, sedangkan Rivest Shamir Adleman digunakan untuk
mengenkripsi kunci rahasia. Pesan dan kunci rahasia yang sudah
dienkripsi dapat dikirim bersama-sama. Penerima pesan mula-
mula mendekripsi kunci rahasia dengan kunci privatnya, lalu
menggunakan kunci rahasia tersebut untuk mendekripsi pesan
(Munir, 2006 : 184).
44
2.10. PHP
2.10.1. Pengertian PHP
PHP adalah singkatan dari PHP Hypertext Preprocessor
yang digunakan sebagai bahasa script server-side dalam
pengembangan web yang disisipkan pada dokumen HTML.
Penggunaan PHP memungkinkan web dapat dibuat dinamis
sehingga maintenance situs web tersebut menjadi lebih mudah
dan efisien (Peranginangin, 2006 : 1).
PHP merupakan software open source yang disebarkan
dan dilisensikan secara gratis serta dapat di-download bebas dari
situs resminya (http://www.php.net).
2.10.2. Kelebihan-kelebihan PHP
Diantara maraknya pemrograman server web saat ini,
adalah ASP yang berkembang menjadi ASP.NET, JSP, CFML,
dan PHP. Jika dibandingkan di antara tiga terbesar
pemrograman server web di atas, terdapat kelebihan dari PHP
itu sendiri, yaitu :
1. PHP merupakan sebuah bahasa script yang tidak
melakukan sebuah kompilasi dalam penggunaanya. Tidak
seperti hanya bahasa pemrograman aplikasi seperti Visual
Basic dan sebagainya.
2. PHP dapat berjalan pada web server yang dirilis oleh
Microsoft, seperti IIS atau PWS juga pada apache yang
bersifat open source.
45
3. Karena sifatnya yang open source, maka perubahan dan
perkembangan interpreter pada PHP lebih cepat dan
mudah, karena banyak milis dan developer membantu
pengembangannya.
4. Jika dilihat dari segi pemahaman, PHP memiliki referensi
yang begitu banyak sehingga sangat mudah untuk
dipahami.
5. PHP dapat berjalan pada tiga sistem operasi, yaitu : Linux,
Unix, dan Windows, dan juga dapat dijalankan secara
runtime pada suatu console.
2.10.3. Sintaks PHP
Sintaks program/script PHP ditulis dalam apitan tanda
khusus PHP. Ada empat macam pasangan tag PHP yang dapat
digunakan untuk menandai blok script PHP :
, < ? ... ?>, , atau
...
2.11. MySQL
MySQL adalah multi user database yang menggunakan bahasa
Structured Query Language (SQL). MySQL dalam operasi client server
melibatkan server daemon MySQL di sisi server dan berbagai macam
program serta library yang berjalan di sisi client. MySQL mampu
menangani data yang cukup besar. Perusahaan yang menangani MySQL
yaitu TcX, mengaku mampu menyimpan data lebih dari 40 database,
10.000 tabel, dan sekitar 7 juta baris, totalnya kurang lebih 100
Gigabytes data (Nanang, 2004, Ch4).
46
SQL adalah bahasa standar yang digunakan untuk mengakses
server database. Bahasa ini pada awalnya dikembangkan oleh IBM,
namun telah diadopsi dan digunakan sebagai standar industri. Dengan
menggunakan SQL, proses akan database menjadi lebih user-friendly
dibandingkan dengan menggunakan dBASE atau clipper yang masih
menggunakan perintah-perintah pemrograman.
47
BAB III
METODOLOGI PENELITIAN
Pada penulisan tugas akhir ini, diperlukan data-data yang lengkap sebagai
bahan pendukung kebenaran materi uraian dan pembahasan. Oleh karena itu
diperlukan metodologi pengumpulan data dan metode pengembangan sistem.
3.1. Metode Pengumpulan Data
Penyusunan skripsi ini dilakukan dengan menggunakan beberapa
metode yang dapat mendukung penulisan, baik dalam pengumpulan data
maupun informasi yang diperlukan, untuk mendapatkan kebenaran
materi uraian pembahasan.
Adapun metode pengumpulan data yang digunakan dalam
pembahasan skripsi ini adalah dengan menggunakan :
3.1.1. Metode Observasi
Observasi adalah pengamatan langsung yang dilakukan di
lapangan untuk mengetahui secara langsung keadaan objek
penelitian yang sebenarnya. Hal ini bertujuan untuk memperoleh
penjelasan mengenai data-data dan informasi yang dibutuhkan
dalam penelitian dengan divisi operasional CV Maharta Mandiri
Promo. Observasi ini dilaksanakan selama bulan Juli 2009,
bertempat di Kantor CV Maharta Mandiri Promo Jl. Raya
Pondok Kacang Timur No. 11 Pondok Aren, Tangerang.
48
3.1.2. Metode Wawancara
Wawancara memperoleh keterangan untuk tujuan
penelitian dengan cara tanya-jawab sambil bertatap muka antara
pewawancara dengan narasumber telah dilakukan pada tanggal 9
Juli 2009 dengan narasumber Bapak Andi Muhammad AR
(Direktur utama CV Maharta Mandiri Promo). Hasil wawancara
dapat dilihat pada lampiran A.
3.1.3. Metode Studi Pustaka
Metode studi pustaka digunakan dengan membaca dan
mempelajari referensi yang ada, e-book, serta mencari referensi
tambahan dari internet. Buku utama yang digunakan peneliti
yaitu : Kriptografi (Munir, 2006), Memahami Model Enkripsi &
Security Data (Wahana Komputer, 2003), Pengantar Ilmu
Kriptografi (Ariyus, 2008). Dan buku-buku selengkapnya yang
digunakan dapat dilihat pada daftar pustaka.
3.1.4. Metode Studi Literatur
Metode studi literatur digunakan dengan melihat
penelitian yang sudah ada. Merujuk pada penelitian yang telah
dilakukan (Muliati, 2009), beberapa kelebihan akan
ditambahkan pada aplikasi yang akan dibuat yaitu : dapat
mengenkripsi sepuluh file sekaligus, adanya pemberitahuan file
masuk baru, perbedaan warna antara file yang pernah didekripsi
dengan yang belum pernah didekripsi, pembangkitan pasangan
49
kunci yang baru, pengubahan password login, verifikasi gambar
saat pendaftaran, dan pertanyaan pengaman.
3.2. Metode Pengembangan Sistem
Penelitian dilakukan dengan menggunakan metode pengembangan
sistem model pendekatan RAD (Rapid Application Development).
Penulis menggunakan model RAD karena melihat dari aplikasi yang
dikembangkan adalah aplikasi yang sederhana dan tidak membutuhkan
waktu yang lama, metode RAD adalah metode yang diperuntukkan untuk
jangka pendek sesuai dengan aplikasi yang dikembangkan. Berikut
adalah penjelasan masing-masing fase RAD dalam penelitian ini.