Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
i
ENKRIPSI DAN DEKRIPSI ACCOUNT EMAIL MAHASISWA
DENGAN METODE H-PLAYFAIR
MENGGUNAKAN JAVA DAN MYSQL
(STUDI KASUS DI BAPSI USD)
SKRIPSI
Diajukan Untuk Memenuhi Syarat Memperoleh
Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh :
Bhernadet Megaria Intan Permatasari Nugroho
NIM : 055314031
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2010
ii
ENCRYPTION AND DECRYPTION FOR STUDENT EMAIL ACCOUNT
WITH METHOD H-PLAYFAIR USING JAVA AND MYSQL
(A CASE STUDY IN BAPSI USD)
A THESIS
Presented as Partial Fulfillment of the Requirements
To Obtain Sarjana Teknik Degree
In Informatics Engineering Department
By :
Bhernadet Megaria Intan Permatasari Nugroho
055314031
INFORMATICS ENGINEERING STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2010
v
MOTTO
Jangan Berharap Pada Hal Kecil
Jika Kalau Kamu Tahu Kamu Punya Allah Yang Besar
Sebab Aku ini mengetahui rancangan-rancangan apa yang ada pada-
Ku mengenai kamu, demikianlah firman TUHAN, yaitu rancangan
damai sejahtera dan bukan rancangan kecelakaan, untuk memberikan
kepadamu hari depan yang penuh harapan.
(Yeremia 29:11)
vii
ABSTRAKSI
Email mahasiswa digunakan untuk memudahkan komunikasi antar
mahasiswa, mahasiswa dengan dosen, dan juga untuk hubungan dengan sesama.
Sistem Account Email Mahasiswa ini dibuat untuk melengkapi Sistem Email
Mahasiswa yaitu untuk membantu mahasiswa dalam registrasi email, ubah
password dan menangani lupa password. Salah satu cara untuk mengamankan
data password account email ialah dengan melakukan enkripsi pada data tersebut.
Pada tugas akhir ini metode enkripsi dan dekripsi yang digunakan
menggunakan metode H-Playfair. H-Playfair termasuk kedalam polygram cipher
sehingga H-Playfair dikategorikan juga algoritma kriptografi klasik. H-Playfair
diciptakan sebagai varian dari algoritma kriptografi playfair untuk mengatasi
kelemahan playfair. Enkripsi algoritma H-Playfair terdiri dari 2 tahap yaitu
enkripsi playfair bujursangkar 6x6 dan enkripsi jarak bujursangkar 6x6.
Implementasi program dengan menggunakan Java dan MySql
Hasil implementasi program ini menunjukkan bahwa metode H-
Playfair merupakan algoritma kriptografi klasik namun kemampuannya setara
dengan kemampuan metode kriptografi modern yang memiliki prinsip
membingungkan dan menyebar. Sistem ini dapat melengkapi Sistem Email
Mahasiswa dan dapat membantu mahasiswa karena mempermudahkan dalam
melakukan registrasi, membantu membuat password awal yang acak dan kuat,
membantu mahasiswa dalam mengubah password dengan mengetahui kekuatan
password dan menangani lupa password.
viii
ABSTRACT
Email student applied to facilitate communications between students
and also student with lecturer also for the relation of with humanity. This Account
Email Mahasiswa System made to complement student email system to assist
student in registration of email, changes password and handles forgetting
password. One of way of protect data password account email is by doing
encryption at the data.
At this final assignment encryption method and decryption applies
method H-Playfair. H-Playfair included into polygram cipher so that H-Playfair is
categorized also classic kriptografi algorithm. H-Playfair created as encryption
Playfair square 6x6 square distance encryptions 6x6 variants from algorithm
kriptografi Playfair. Implementation of program by using Java and MySql
Result of implementation of this program indicates that method H-
Playfair is classic kriptografi algorithm but its the ability is equivalent ably
modern kriptografi method. And this system can facilitate in doing registration
because can complement system Email Student Sanata Dharma in doing
registration also assists makes strong and random initial password because
password letter random and number.
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa yang
telah mengaruniakan berkat dan hikmat-Nya sehingga penulis dapat
menyelesaikan tugas akhir ini.
Dalam proses penulisan tugas akhir ini ada begitu banyak pihak yang
telah memberikan bantuan dan perhatian dengan caranya masing-masing sehingga
tugas akhir ini dapat diselesaikan. Oleh karena itu saya mengucapkan terimakasih
kepada :
1. Kedua orang tua penulis Al. Emmanuel Santo Nugroho dan Monica yang
telah memberi dukungan moral, spiritual dan finansial dalam penyusunan
skripsi.
2. Bapak Yosef Agung Cahyanta, S.T, M.T. selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
3. Bapak Puspaningtyas Sanjoyo Adi, S.T.,M.T. selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma Yogyakarta.
4. Romo Drs. St. Hari Suparwito, SJ., M.App.IT selaku Dosen Pembimbing
Tugas Akhir yang telah banyak memberikan bimbingan dan menyediakan
waktu dalam memberikan pengarahan selama penulisan tugas akhir ini.
5. BAPSI Universitas Sanata Dharma yang telah memberikan kesempatan
sebagai tempat studi kasus.
xi
6. Bapak Bele Bau dan Tyus Dimas Sadewo yang turut mendukung dalam
persiapan ujian pendadaran.
7. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang
telah memberikan bekal ilmu, dan arahan selama penulis menempuh studi.
8. Adikku tersayang Alucia Victoria Intan Puspitasari Nugroho yang selalu
menyayangi dan memberikan dukungan kepadaku.
9. Sahabat – sahabat terbaik penulis: Febri Isdariyanto, Agnes Putri, Theresia
Paulin, Andriyanto, Maria Endah, Floriska, Anas Erikasari, I Gusti Nyoman
Sedana, Hendri Cahyana, Dya Sifa, Yohana Sinta, Ika Lestari, Novitasari atas
persahabatan selama ini.
10. Semua pihak yang telah membantu penulisan baik secara langsung maupun
tidak langsung, yang tidak dapat penulis sebutkan satu persatu.
Dengan rendah hati saya menyadari bahwa tugas akhir ini masih jauh dari
sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir
ini sangat saya harapkan.
Akhir kata semoga tugas akhir ini bermanfaat bagi semua pihak. Terima
kasih.
Yogyakarta, 12 Januari 2010
Penulis
xii
DAFTAR ISI
HALAMAN JUDUL ...................................................................................................... i
HALAMAN JUDUL ..................................................................................................... ii
HALAMAN PERSETUJUAN ..................................................................................... iii
HALAMAN PENGESAHAN ...................................................................................... iv
MOTTO ......................................................................................................................... v
PERNYATAAN KEASLIAN KARYA ...................................................................... vi
ABSTAKSI ................................................................................................................. vii
ABSTRACT ............................................................................................................... viii
LEMBAR PERNYATAAN PERSETUJUAN ............................................................ ix
KATA PENGANTAR................................................................................................... x
DAFTAR ISI ............................................................................................................... xii
DAFTAR TABEL ...................................................................................................... xvi
DAFTAR GAMBAR ................................................................................................ xvii
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah ...................................................................................... 1
1.2 Batasan Masalah .................................................................................................. 2
1.3 Tujuan dan Manfaat Penelitian ........................................................................... 3
1.4 Rumusan Masalah ............................................................................................... 4
1.5 Metodologi Penelitian ......................................................................................... 4
1.6 Sistematika Penulisan .......................................................................................... 5
BAB II LANDASAN TEORI
2.1 Enkripsi dan Dekripsi .......................................................................................... 8
2.2 Kriptografi Klasik dan Kriptografi Modern ...................................................... 10
2.2.1 Kriptografi Klasik .................................................................................. 10
2.2.2 Kriptografi Modern ................................................................................ 11
xiii
2.3 Tipe Penyerangan Keamanan Data ................................................................... 11
2.4 Metode H-Playfair ............................................................................................. 13
2.4.1 Pengantar ................................................................................................. 13
2.4.2 Algoritma H-Playfair............................................................................... 16
2.4.3 Kekuatan Algoritma Kriptografi H-Playfair ........................................... 20
2.4.4 Kelemahan Algoritma Kriptografi H-Playfair ........................................ 24
2.4.5 Keamanan Algoritma Kriptografi H-Playfair ......................................... 24
2.5 Pengenalan Pemrograman Java ......................................................................... 25
2.6 MySQL .............................................................................................................. 26
BAB III ANALISA DAN PERANCANGAN SISTEM
3.1 Analisa Sistem ................................................................................................... 28
3.1.1 Gambaran Umum Sistem ........................................................................ 28
3.1.2 Gambaran yang Terlibat Dalam Sistem .................................................. 30
3.1.3 Requirement Analysis ............................................................................. 30
3.1.3.1 Use Case Diagram ...................................................................... 30
3.1.3.2. Use Case Narative ...................................................................... 31
3.1.4 Pemodelan dan Analisis Data .................................................................. 35
3.2 Perancangan Database ....................................................................................... 37
3.2.1 Entity Relational Diagram ....................................................................... 37
3.2.2 Tabel-Tabel Yang Diperlukan ................................................................. 38
3.2.2.1 Tabel account email ................................................................... 38
3.2.2.2 Tabel mahasiswa ........................................................................ 39
3.2.3 Diagram Alir ........................................................................................... 40
3.2.4 Desain Input Output ................................................................................ 43
3.2.4.1 User Mahasiswa ......................................................................... 44
3.2.4.2 User Admin ................................................................................ 50
BAB IV IMPLEMENTASI DAN ANALISA HASIL
4.1 Implementasi ..................................................................................................... 54
4.1.1 Karakteristik Sistem ................................................................................ 54
xiv
4.1.2 Kebutuhan Sistem ................................................................................... 54
4.1.2.1 Kebutuhan Perangkat Keras ....................................................... 54
4.1.2.2 Kebutuhan Perangkat Lunak ...................................................... 55
4.1.3 Implementasi Enkripsi dan Dekripsi Menggunakan Algoritma H-
Playfair ........................................................................................................................ 55
4.1.3.1 Implementasi Enkripsi Password Menggunakan Algoritma H-
Playfair ........................................................................................................................ 56
4.1.3.2 Implementasi Dekripsi Password Menggunakan Algoritma
H-Playfair .................................................................................................................... 61
4.1.4 Implementasi Sistem ............................................................................... 63
4.1.4.1 Menu Mahasiswa ....................................................................... 63
4.1.4.1.1 Registrasi .................................................................... 63
4.1.4.1.2 Ubah Password ........................................................... 67
4.1.4.1.3 Lupa Password ........................................................... 69
4.1.4.2 Menu Admin .............................................................................. 70
4.1.4.2.1 Lihat Data ................................................................... 70
4.2 Antarmuka Pengguna Sistem ............................................................................ 71
4.2.1 Halaman Login ........................................................................................ 71
4.2.2 Menu Mahasiswa..................................................................................... 72
4.2.2.1 Halaman Registrasi .................................................................... 73
4.2.2.2 Halaman Ubah Password ........................................................... 78
4.2.2.3 Halaman Lupa Password ............................................................ 79
4.2.2.4 Halaman Petunjuk Mahasiswa ................................................... 82
4.2.3 Menu Admin ........................................................................................... 83
4.2.3.1 Halaman Lihat Data ................................................................... 84
4.2.3.2 Halaman Reset Password ........................................................... 85
4.2.3.3 Halaman Hapus Data .................................................................. 87
4.3 Analisa Serangan Terhadap H-Playfair ............................................................. 87
4.4 Analisa Hasil ..................................................................................................... 89
4.4.1 Kelebihan Sistem..................................................................................... 92
xv
4.4.2 Kelemahan Sistem ................................................................................... 92
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan........................................................................................................ 93
5.2 Saran .................................................................................................................. 93
DAFTAR PUSTAKA ................................................................................................. 95
xvi
DAFTAR TABEL
Tabel 1 Penjelasan Use Case Login .......................................................................... 31 Tabel 2 Penjelasan Use Case Registrasi .................................................................... 32 Tabel 3 Penjelasan Use Case Ubah Password ........................................................... 33 Tabel 4 Penjelasan Use Case Lupa Password ........................................................... 33 Tabel 5 Penjelasan Use Case Lihat Data ................................................................... 34 Tabel 6 Penjelasan Use Case Reset Password .......................................................... 34 Tabel 7 Penjelasan Use Case Hapus Data ................................................................. 35 Tabel 8 Penjelasan Tabel Account_email ................................................................. 38 Tabel 9 Penjelasan Tabel Mahasiswa ........................................................................ 39
xvii
DAFTAR GAMBAR
Gambar 1. Proses Enkripsi dan dekripsi .................................................................... 9 Gambar 2. Enkripsi dan dekripsi dengan kunci ......................................................... 9 Gambar 3. Enkripsi dan dekripsi dengan kunci pada algoritma asimetri ................. 10 Gambar 4. Contoh kunci algoritma Playfair ............................................................ 14 Gambar 5. Contoh kunci algoritma H-Playfair ........................................................ 16 Gambar 6. Skema Enkripsi H-Playfair ..................................................................... 17 Gambar 7. Enkripsi jarak dengan bujursangkar 6x6 ................................................ 19 Gambar 8. Dekripsi jarak dengan bujursangkar 6x6 ................................................ 20 Gambar 9. Use Case Diagram .................................................................................... 31 Gambar 10. Diagram Konteks ...................................................................................... 35 Gambar 11. Diagram Berjenjang ............................................................................... 36 Gambar 12. Diagram Alir Data Proses 1.................................................................... 36 Gambar 13. Diagram Alir Data Level 2 Proses 2 ...................................................... 36 Gambar 14. Diagram Alir Data Level 2 Proses 3 ...................................................... 37 Gambar 15. Diagram Alir Data Level 2 Proses 4 ...................................................... 37 Gambar 16. Diagram Alir Data Level 2 Proses 6 ...................................................... 37 Gambar 17. Entity Relational Diagram ...................................................................... 37 Gambar 18. Diagram alir Registrasi Email, Ubah Password dan Lupa Password ..... 40 Gambar 19. Diagram alir Reset Password ................................................................. 41 Gambar 20. Diagram alir Proses Enkripsi dan Dekripsi Metode H-Playfair ............. 42 Gambar 21. Desain Halaman Login ........................................................................... 43 Gambar 22. Rancangan Halaman Menu Mahasiswa ................................................. 44 Gambar 23. Rancangan Halaman Registrasi User Mahasiswa .................................. 45 Gambar 24. Rancangan Halaman Registrasi(langkah 2) ........................................... 46 Gambar 25. Rancangan Halaman Ubah Password ..................................................... 47 Gambar 26. Rancangan Halaman Lihat Password ..................................................... 48 Gambar 27. Rancangan Halaman Lupa Password ..................................................... 49 Gambar 28. Rancangan Halaman Lupa Password(langkah 2) ................................... 49 Gambar 29. Rancangan Halaman Menu Admin ........................................................ 50 Gambar 30. Rancangan Halaman Lihat Data ............................................................. 51 Gambar 31. Rancangan Halaman Reset Password ..................................................... 51 Gambar 32. Rancangan Halaman Reset Password(langkah 2) .................................. 52 Gambar 33. Rancangan Halaman Hapus Data ........................................................... 53 Gambar 34. Halaman Login ....................................................................................... 71 Gambar 35. Halaman Menu Mahasiswa .................................................................... 72 Gambar 36. Halaman Registrasi ................................................................................. 73 Gambar 37. Pesan Eror Data Sama ............................................................................ 74 Gambar 38. Halaman Registrasi(langkah 2) .............................................................. 75 Gambar 39. Pesan Berhasil Melakukan Registrasi Account Email. .......................... 76 Gambar 40. Pesan Berhasil Melakukan Kirim Email. ............................................... 76
xviii
Gambar 41. Tampilan Hasil Print Account Email Mahasiswa. ................................. 76 Gambar 42. Kunci Algoritma H-Playfair ................................................................... 77 Gambar 43. Tampilan Database account email mahasiswa ....................................... 78 Gambar 44. Halaman Ubah Password ........................................................................ 78 Gambar 45. Halaman Konfirmasi Ubah Password .................................................... 79 Gambar 46. Halaman Lupa Password(langkah 1) ...................................................... 79 Gambar 47. Halaman Lupa Password(langkah 2) ...................................................... 80 Gambar 48. Halaman Lupa Password(langkah 3) ...................................................... 81 Gambar 49. Halaman Petunjuk Mahasiswa ............................................................... 82 Gambar 50. Halaman Menu Admin ........................................................................... 83 Gambar 51. Halaman Lihat Data................................................................................ 84 Gambar 52. Halaman Reset Password ....................................................................... 85 Gambar 53. Halaman Reset Password(langkah 2) ..................................................... 86 Gambar 54. Halaman Hapus Data .............................................................................. 87
1
BAB 1
PENDAHULUAN
1.1. Latar Belakang Masalah
Perkembangan teknologi saat ini menuntut manusia menginginkan
data atau informasi penting yang dimiliki terjamin keamanannya. Data atau
informasi penting tersebut harus dijaga sedemikian rupa sehingga hanya orang-
orang yang berhak saja yang dapat menggunakan data atau informasi tersebut.
Salah satu data atau informasi yang harus dijaga keamanannya adalah data
password. BAPSI Universitas Sanata Dharma ingin mengimplementasikan
account email mahasiswa, email tersebut digunakan untuk memudahkan
komunikasi antar mahasiswa maupun mahasiswa dengan dosen juga untuk
hubungan dengan sesama. Setiap mahasiswa akan mempunyai account email
yaitu username dan password untuk login. Agar lebih aman, data password
mahasiswa tersebut harus disimpan dalam bentuk yang sudah terenkripsi.
Dari latar belakang itulah penulis tertarik untuk membuat program
bantu guna membuat username serta password dan mengenkripsi - dekripsi
password yang dihasilkan untuk disimpan dalam database BAPSI. Hal ini
dilakukan karena penyimpanan data password yang tidak dienkripsi akan
menyebabkan password dapat dengan mudah dibaca oleh pihak yang tidak
2
berhak dan informasi akan segera diketahui oleh orang yang tidak berhak
tersebut. Selain itu program bantu ini akan memudahkan mahasiswa untuk
membuat username dan password dimana biasanya password dibuat berdasar
pada tanggal lahir, nama dan lain-lain yang mudah ditebak oleh orang lain
sehingga tidak aman.
Metode enkripsi dan dekripsi data sangat banyak, salah satunya yaitu
metode H-Playfair. Pemilihan terhadap metode yang akan digunakan
tergantung dari banyak hal, antara lain: kecepatan eksekusi algoritma tersebut,
gampang tidaknya algoritma tersebut dirusak oleh orang lain, kemudahan
dalam pengimplementasiannya dll.
1.2. Batasan Masalah
Dalam skripsi ini akan dibahas penggunaan metode H-Playfair untuk
mengenkripsi dan dekripsi data password account email mahasiswa. Aplikasi
yang akan dibuat berdasarkan hasil studi kasus di BAPSI Universitas Sanata
Dharma.
Batasan masalah dalam skripsi ini adalah :
1. Sistem pembuatan account email mahasiswa ini digunakan pada komputer
yang tidak tersambung jaringan.
3
2. Database sistem pembuatan account email mahasiswa ini masih terpisah
dengan database yang dimiliki oleh BAPSI.
3. Sistem pembuatan account email mahasiswa ini tidak terhubung dengan
mesin email yang dimiliki oleh BAPSI.
1.3. Tujuan dan Manfaat Penelitian
Tujuan pembuatan skripsi ini adalah
1. Mengimplementasikan H-Playfair untuk mengenkripsi dan dekripsi data
password dari account email mahasiswa.
2. Membuat program bantu untuk pembuatan account email mahasiswa,
membantu apabila terjadi lupa password dengan menggunakan Java dan
MySql.
Manfaat yang akan diperoleh dari tugas akhir ini adalah :
1. Meningkatkan keamanan data password yang tersimpan dalam database
username dan password email mahasiswa.
2. Dapat mempermudahkan mahasiswa untuk membuat username dan
password.
3. Menjadi “bank data” username dan password email mahasiswa sehingga
BAPSI mempunyai data email registrasi mahasiswa.
4
4. Dapat mempermudahkan mahasiswa untuk mendapatkan password baru
apabila lupa password.
1.4. Rumusan Masalah
Berdasarkan latar belakang yaitu keinginan untuk mengenkripsi data
password account supaya data aman maka diatas dapat dirumuskan
permasalahan sebagai berikut :
1. Bagaimana menjaga keamanan data password dengan enkripsi dan dekripsi
menggunakan metode H-Playfair?
2. Bagaimana membuat alat bantu untuk memudahkan user mendapatkan
account baru yaitu username dan password pada saat registrasi,
mendapatkan password baru pada saat lupa password dan mengganti
password.
1.5. Metodologi Penelitian
Metode penelitian yang dilakukan yaitu dengan melakukan studi kasus
dengan langkah-langkah sebagai berikut:
5
1. Melakukan studi kasus di BAPSI USD dengan berdiskusi dengan staff
BAPSI selain itu melakukan pengamatan secara langsung dengan melihat
data yang ada.
2. Melakukan studi kepustakaan untuk mencari dan mempelajari metode-
metode enkripsi yang ada dan memilih yang terbaik dan juga disesuaikan
dengan pemahaman dan kemampuan penulis yaitu enkripsi dan dekripsi
yaitu dengan metode H-Playfair. Mencari bahan dari berbagai sumber
untuk mencari bahan kajian yang sesuai dengan system yang dibuat. Bahan
kajian yang digunakan dapat berasal dari buku artikel internet yang dapat
digunakan untuk memecahkan masalah yang ada.
3. Melakukan implementasi. Penulis mulai membuat program alat bantu
untuk enkripsi dan dekripsi untuk database password dan pembuatan
username dan program bantu untuk menangani apabila lupa password.
1.6. Sistematika Penulisan
Untuk memudahkan dalam mengikuti skripsi ini, penulis menyusun
sistematika penulisan menjadi 5 bab. Berikut ini uraian singkat dari masing-
masing bab:
6
1. BAB I. PENDAHULUAN
Dalam bab ini diungkapkan mengenai latar belakang masalah, batasan
masalah, tujuan dan manfaat penelitian, rumusan masalah, metode
penelitian dan sistematika penulisan.
2. BAB II. LANDASAN TEORI
Dalam bab ini berisi tentang landasan teori yang digunakan dalam
pembuatan sistem untuk enkripsi dan dekripsi menggunakan metode H-
Playfair dengan menggunakan bahasa pemrograman Java dan MySql.
3. BAB III. ANALISA DAN PERANCANGAN
Dalam bab ini berisi tentang rancangan sistem yang akan dibuat.
Menjelaskan mengenai perancangan sistem dalam bentuk diagram alir yang
menyatakan semua proses yang terjadi dalam software yang akan dibuat.
4. BAB IV. IMPLEMENTASI DAN ANALISA HASIL
Dalam bab ini berisi implementasi yang dilakukan terhadap rancangan
yang telah dilakukan pada bab sebelumnya dan analisa hasil juga
pembahasan terhadap implementasi dari sistem yang dibangun.
7
5. BAB VI. KESIMPULAN DAN SARAN
Dalam bab ini berisi kesimpulan pembahasan dan saran-saran yang
berguna bagi pembaca yang terkait dengan sistem informasi yang
dibangun.
8
BAB 2
LANDASAN TEORI
2.1. Enkripsi dan Dekripsi
Salah satu cara untuk mengamankan informasi atau data penting
ialah dengan melakukan enkripsi pada data tersebut. Enkripsi ialah suatu
proses menyamarkan pesan dengan cara menyembunyikan isi pokoknya,
melakukan perubahan kode-kode dari yang bisa dimengerti menjadi kode-
kode yang tidak bisa dimengerti. Sedangkan dekripsi merupakan algoritma
atau cara yang dapat digunakan untuk membaca informasi yang telah
dienkripsi untuk dapat dibaca kembali. (Schneiner, 1994).
Data asli atau pesan asli disebut plainteks (plaintext) atau teks-jelas
(cleartext). Agar pesan atau data penting tersebut tidak dapat dimengerti
oleh orang lain dan terjaga kerahasiaanya maka pesan tersebut harus
dienkripsi. Data yang telah dienkripsi disebut chiperteks (chipertext) atau
menurut terminologi yaitu enchiper. Proses kriptografi yang mengubah
plainteks menjadi chiperteks disebut enkripsi (encryption) atau
encipherment. Chiperteks harus dapat ditransformasi kembali menjadi
plainteks. Sedangkan proses untuk mengembalikan ciphertext menjadi
plainteksnya disebut dekripsi (decryption) atau decipherment. Proses
perubahan pesan atau data di atas dapat digambarkan sebagai berikut :
9
Gambar 1. Proses Enkripsi dan dekripsi
Untuk mengubah teks asli ke bentuk teks kode menggunakan
algoritma kriptografi. Algoritma kriptografi merupakan fungsi yang
digunakan untuk proses enkripsi dan dekripsi. Supaya aman maka algoritma
kriptografi menggunakan kunci. Kunci adalah parameter yang digunakan
untuk transformasi enciphering dan dechipering. Kunci biasanya berupa
string(deretan abjad) atau deretan bilangan. Misalkan dengan menggunakan
kunci K, maka fungsi enkripsi dan dekripsi dapat digambarkan sebagai
berikut :
Algortima kriptografi dibagi menjadi tiga bagian berdasarkan kunci
yang dipakai yaitu : (Ariyus, 2008).
1. Algoritma simetri adalah algoritma yang menggunakan kunci enkripsi
sama dengan kunci dekripsi.
2. Algoritma asimetri adalah algoritma yang menggunakan kunci yang
berbeda untuk enkripsi dan dekripsi. Misalkan kunci enkripsi adalah K1
dan kunci dekripsi yang adalah K2, yang dalam hal ini K1 ≠ K2.
enkripsi dekripsi plainteks chipertek plainteks
enkripsi dekripsi
KK
plainteks chipertek plainteks semula
Gambar 2. Enkripsi dan dekripsi dengan kunci
10
Algoritma kriptografinya disebut algoritma asimetri atau algoritma
kunci-publik.
Fungsi Hash
3. Fungsi hash merupakan fungsi matematika yang mengambil masukan
panjang variabel dan mengubahnya ke dalam urutan biner dengan
panjang yang tetap. Fungsi hash adalah fungsi yang memproduksi
output dengan panjang tetap dari input yang berukuran variabel. Output
dari fungsi hash disebut dengan message digest. Fungsi hash memiliki
karakteristik fungsi satu arah karena file asli tidak dapat dibuat dari
message digest.
2.2. Kriptografi Klasik dan Kriptografi Modern
2.2.1. Kriptografi Klasik
Kriptografi klasik merupakan suatu algoritma yang menggunakan satu kunci
untuk mengamankan data (Ariyus, 2008). Dua teknik dasar yang biasa
digunakan pada algoritma klasik adalah sebagai berikut :
1) Teknik subtitusi: Penggantian setiap karakter teks asli dengan karakter
lain.
2) Teknik transposisi (permutasi): dilakukan dengan menggunakan
permutasi karakter.
enkripsi dekripsi
KK1
plainteks chiperteks plainteks l
Gambar 3. Enkripsi dan dekripsi dengan kunci pada algoritma asimetri
11
2.2.2. Kriptografi Modern
Kriptografi modern mempunyai kerumitan yang sangat kompleks.
Kriptografi modern dipicu oleh perkembangan peralatan komputer digital.
Dengan komputer digital, cipher yang lebih kompleks menjadi sangat
mungkin untuk dapat dihasilkan. Tidak seperti kriptografi klasik yang
mengenkripsi karakter per karakter (dengan menggunakan alfabet
tradisional), kriptografi modern beroperasi pada string biner (Rinaldi,
2006).
2.3. Tipe Penyerangan Keamanan Data
Dibawah ini merupakan beberapa macam tipe penyerangan
terhadap pesan yang sudah dienkripsi yaitu :
1. Ciphertext-only attack
Penyerang hanya berbekal ciphertext saja, tanpa adanya pengetahuan
mengenai plaintext. Teknik ini membutuhkan akurasi yang tinggi dalam
melakukan penaksiran mengenai bagaimana sebuah pesan dapat
disandikan. Kriptanalis tidak mempunyai kunci dan teks aslinya,
sedangkan pekerjaan penyerang yaitu mendapatkan teks asli atau
mencari kuncinya terlebih dahulu
2. Known-plaintext attack
Penyerang mengetahui sebagian isi plaintext dari ciphertext yang
berhasil didapatkan. Menggunakan informasi yang ada ini, penyerang
12
berusaha untuk mencari kunci yang digunakan untuk menghasilkan
ciphertext.
3. Chosen-plaintext attack
Penyerang telah dapat menghasilkan plaintext dari ciphertext yang ada,
namun kuncinya sendiri belum ditemukan. Pada serangan jenis ini
kriptanalis dapat memilih plaintext tertentu untuk dienkripsikan, yaitu
plaintext yang lebih mengarahkan penemuan kunci. Kriptanalis
berusaha untuk menemukan kunci pembangun ciphertext dengan
membandingkan keseluruhan ciphertext dengan plaintext yang ada.
4. Adaptive-chosen-plaintext attack
Penyerang dapat memilih contoh plainteks secara dinamis dan
mengubah pilihannya berdasar dari hasil enkripsi sebelumnya.
5. Chosen-ciphertext attack
Penyerang dapat memilih sebuah chiperteks dan mencoba mendapatkan
plainteks terdekripsi yang berhubungan.
6. Exhaustive attack / brute force attack
Serangan ini adalah mencoba semua kemungkinan kunci. Setiap
plainteks yang diketahui dienkripsi dengan kunci terkaan untuk
dicocokkan dengan cipherteks pasangannya. Penyerang berusaha
mengungkap plainteks atau kunci dengan mencoba semua kemungkinan
kunci (trial and error). Asumsi yang digunakan yaitu kriptanalis
mengetahui algoritma kriptografi dan kriptanalis memiliki sebagian
plainteks dan cipherteks yang bersesuaian.
13
7. Teknik analisis frekuensi
Teknik untuk memecahkan cipherteks berdasarkan frekuensi
kemunculan karakter di dalam pesan dan kaitannya dengan frekuensi
kemunculan karakter di dalam alphabet.
2.4. Metode H-Playfair
2.4.1. Pengantar
H-Playfair termasuk dalam polygram cipher sehingga H-Playfair
dikategorikan juga sebagai algoritma kriptografi klasik. H-Playfair
diciptakan sebagai varian dari algoritma kriptografi playfair untuk
mengatasi kelemahan playfair.
Playfair cipher adalah cipher klasik yang ditemukan oleh Sir
Charles Wheatstone dan Baron Lyon Playfair. Kekuatan dari algoritma ini
adalah pada kuncinya yang menyusun bujursangkar 5x5. dengan demikian
kemungkinan kuncinya adalah : 25!=15.511.210.043.330.985.984.000.000.
Untuk melakukan enkripsi, algoritma Playfair mempunyai
beberapa aturan sebagai berikut : (Ariyus, 2008)
1. Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter
yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya.
Bila kedua karakter tidak terletak pada satu baris atau kolom maka
pergerakan karakter dimulai dari huruf kedua secara vertikal menuju
karakter teks-kode yang pertama.
14
2. Bila karakter-karakter yang dienkripsi atau dekripsi berada pada kolom
atau baris yang sama dan saling berdekatan maka digunakan prinsip
enkripsi atau dekripsi ke bawah atau ke samping.
3. Jika terdapat karakter kembar untuk penggunaan kode Playfair maka
disisipkan satu karakter di antara karakter tersebut.
Contoh:
Plainteks :
Mahasiswa
Kunci :
Gambar 4. Contoh kunci algoritma Playfair
Plainteks :
Chiperteks :
Namun, algoritma playfair cipher bisa dipecahkan dengan teknik
frekuensi distribusi ganda yaitu teknik yang menghitung frekuensi
kemunculan pasangan dua huruf cipherteks yang kemudian dibandingkan
dengan frekuensi pasangan dua huruf pada suatu bahasa. Disamping itu,
D O A N K
E R S B T
G L I U M
Y Q H P C
V W X F Z
ma ha si sw az
ik sx hi rx kx
15
hasil dekripsi playfair dapat menimbulkan ambiguitas karena saat enkripsi
plainteks, semua huruf J pada plainteks diganti terlebih dahulu dengan huruf
I.
Playfair Cipher memiliki banyak kelemahan. Playfair Cipher dapat
diserang dengan menggunakan teknik frekuensi distribusi huruf ganda pada
suatu bahasa. Selain itu, Playfair Cipher tidak menyertakan huruf J sehingga
bisa menimbulkan ambiguitas pada saat dekripsi.
Teknik analisis frekuensi adalah teknik yang membandingkan
distribusi kemunculan huruf pada ciphertext terhadap distribusi kemunculan
huruf pada berbagai teks suatu bahasa. Lanjutannya adalah teknik analisis
frekuensi pasangan huruf. Teknik analisis frekuensi pasangan huruf
membandingkan distribusi dua huruf.
H-Playfair Cipher termasuk ke dalam polygram cipher, salah satu
tipe dari cipher subtitusi. H-Playfair Cipher adalah algoritma kriptografi
yang mampu mengatasi kelemahan algoritma playfair biasa. H-Playfair
Cipher menambah langkah algoritma Playfair biasa ditambah kunci
diperluas menjadi bujur sangkar 6x6. Tambahan langkah memiliki
kemiripan dengan varian vigenere, tetapi fungsi penambahannya berbeda.
Vigenere cipher adalah salah satu jenis kriptografi klasik yang
menggunakan polialphabetik cipher, yaitu mengubah plainteks dengan
kunci tertentu biasanya berupa sebuah kata atau kalimat yang berulang
sepanjang plainteks sehingga didapatkan cipherteks. Dalam vigenere
digunakan tabel vigenere yang berisi masing-masing dari 26 cipher disusun
16
secara horisontal dan alphabet normal disusun secara vertikal. (Rinaldi,
2007).
2.4.2. Algoritma H-Playfair
Kunci H-Playfair adalah 26 huruf (a,b,c,d,…,z) ditambah 10 buah
angka (0,1,2,3,...,9) yang disusun didalam bujur sangkar 6x6. Setiap bujur
sangkar berisi huruf yang berbeda satu sama lain.
Contoh kunci :
Gambar 5. Contoh kunci algoritma H-Playfair
Algoritma enkripsi H-Playfair terdiri dari dua tahap. Yang pertama
melakukan algoritma enkripsi sama dengan algoritma enkripsi playfair.
Hanya saja bujursangkar berukuran 6x6 dan huruf j tetap ada. Tahap kedua
melakukan algoritma lanjutan yang memiliki kemiripan dengan varian
algorima kriptografi vigenere dengan fungsi substitusi berdasarkan jarak
antar huruf di dalam bujursangkar 6x6.
Skema enkripsi H-Playfair dapat digambarkan sebagai berikut :
D O A N K
E R S B T
G L I U M
Y Q H P C
V W X F Z
5
6
7
8
9
0 1 2 3 4 J
17
Gambar 6. Skema Enkripsi H-Playfair
Algoritma enkripsi H-Playfair adalah sebagai berikut :
1. Pesan yang akan dienkripsi dituliskan dalam pasangan huruf. Jika dalam
pasangan terdapat huruf yang sama, sisipkan huruf-huruf dummy. Jika
terdapat huruf yang belum berpasangan, maka pasangkan huruf tersebut
dengan dummy.
Contoh plainteks:
Enkripsi informatika
Dummy:
D M Y
Plainteks menjadi :
2. Lakukan algoritma seperti algoritma enkripsi playfair untuk
mensubstitusikan semua pasangan huruf plainteks dengan bujursangkar
kunci 6x6.
Hasilnya menjadi :
en kr ip si dm yi nf or ma ti ka
bd ot uh hi kg hg 3b lr ik sm ne
18
3. Hasil enkripsi tadi kemudian dikenakan algoritma enkripsi lanjutan.
Huruf hasil enkripsi tadi dipasangkan dengan huruf pertama kunci untuk
digantikan menjadi huruf baru menggunakan fungsi enkripsi jarak.
Fungsi enkripsi jarak ini adalah menghitung jarak antara huruf yang
akan dienkripsi dengan huruf kunci lalu mencari huruf dengan jarak
yang sama terhadap kunci. Jika panjang kunci telah habis, sisanya
diganti dengan huruf-huruf yang akan dienkripsi dari awal.
Contoh :
Plainteks:
Kunci: (dari kotak 6x6)
Hasil:
Untuk huruf b dengan kunci d menghasilkan karakter 3. Jarak
karakter d dari karakter b pada kotak adalah 3 petak kanan dan satu
petak atas. Sehingga karakter dengan 3 petak kanan dan 1 petak atas dari
karakter d (kunci) adalah 3 (jika melewati batas atas dan kanan maka
definisi satu petak atas adalah karakter paling bawah pada kotak 6x6
pada kolom yang sama dan karakter paling kiri pada kotak 6x6 pada
baris yang sama ).
bd ot uh hi kg hg 3b lr ik sm ne
do an k5 er sb t6 gl iu m7 yq hp
3a n2 9h hd gd 0k 38 u8 gv 4z o0
19
Gambar 7. Enkripsi jarak dengan bujursangkar 6x6
Algoritma dekripsi kebalikan dari enkripsi yakni :
1) Cari karakter-karakter yang berjarak darikarakter kunci sama dengan
karakter kunci ke cipherteks.
Contoh:
Chiperteks 2:
Kunci:
D O A N K
E R S B T
G L I U M
Y Q H P C
V W X F Z
5
6
7
8
9
0 1 2 3 4 J
v2 n2 9h 4d
do an k5 er
20
Kunci :
Gambar 8. Dekripsi jarak dengan bujursangkar 6x6
Chiperteks 1 :
2) Lalu lakukan algoritma dekripsi playfair
Chiperteks 1 :
Plainteks :
3) Hilangkan dummy (jika ada).
2.4.3. Kekuatan Algoritma Kriptografi H-Playfair
Meskipun H-Playfair termasuk algoritma kriptografi klasik, tetapi
kemampuan H-Playfair setara dengan kemampuan algoritma kriptografi
modern yang memiliki prinsip membingungkan (confusion) dan menyebar
(diffusion).
D O A N K
E R S B T
G L I U M
Y Q H P C
V W X F Z
5
6
7
8
9
0 1 2 3 4 J
ge ot uh hi
ge ot uh hi
de kr ip si
21
Pada tahun 1949, Shannon mengemukakan dua prinsip penyandian
data. Kedua prinsip ini dipakai dalam perancangan cipher blok yang kuat.
Kedua prinsip Shannon tersebut adalah: (Rinaldi, 2006)
1) Confusion. Prinsip ini menyembunyikan hubungan apapun yang ada
antara plainteks, cipherteks, dan kunci. Prinsip confusion akan
membuat kriptanalis tidak dapat mencari pola-pola statistik yang
muncul pada cipherteks. Confusion yang bagus membuat hubungan
statistik antara plainteks, cipherteks, dan kunci menjadi sangat rumit.
2) Diffusion. Prinsip ini menyebarkan pengaruh satu bit plainteks atau
kunci ke sebanyak mungkin cipherteks. Sebagai contoh, pengubahan
kecil pada plainteks sebanyak satu atau dua bit menghasilkan
perubahan pada cipherteks yang tidak dapat diprediksi. Prinsip
diffusion juga menyembunyikan hubungan statistik antara plainteks,
cipherteks, dan kunci dan membuat kriptanalisis menjadi sulit. Untuk
mendapatkan keamanan yang bagus, prinsip confusion dan diffusion
diulang berkali-kali pada sebuah blok tunggal dengan kombinasi yang
berbeda-beda.
Prinsip Shannon yang dipenuhi oleh algoritma H-Playfair adalah :
1. Confusion
H-Playfair menyembunyikan hubungan antara cipherteks dan plainteks.
Tidak seperti caesar cipher yang setiap huruf yang sama diganti menjadi
huruf yang sama pula. Begitu pula dengan algoritma kriptografi playfair,
22
yang setiap dua huruf yang sama diganti menjadi dua huruf yang sama
pula. Prinsip confusion dapat terpenuhi karena pada H-Playfair
dilakukan enkripsi dua tahap, kedua tahap saling berbeda.
Tahap pertama seperti tahapan enkripsi playfair yang masih bisa
dipecahkan dengan teknik frekuensi kemunculan pasangan huruf.
Tahap kedua mirip seperti varian vigenere tanpa kunci yang diulang-
ulang untuk substitusi, tetapi penambahan huruf kunci dengan huruf
plainteks kedua (hasil enkripsi tahap pertama H-Playfair) bergantung
pada posisi huruf-huruf pada kotak kunci 6x6. Tahap kedua tidak bisa
dipecahkan dengan metode kasiski karena kunci tidak diulang.
Kelebihan tahap dua H-Playfair dibanding varian vigenere yang tanpa
kunci berulang adalah varian vigenere yang tanpa kunci berulang masih
bisa dipecahkan dengan menerka-nerka panjang kuncinya. Ketika
panjang kunci yang diterka cocok dengan panjang kunci sebenarnya,
plainteks akan dengan mudah didapatkan dengan fungsi substitusi
balikan. Tahap kedua H-Playfair memiliki mekanisme substitusi tidak
biasa sehingga perlu diketahui posisi-posisi huruf kunci pada kotak 6x6
untuk memecahkan cipherteks. Kelihatannya dengan tahap dua saja,
algoritma H-Playfair sudah tangguh. Namun, teknik distribusi
kemunculan setiap 36 huruf mampu memecahkan algoritma ini. Oleh
karena itu, tahap dua perlu dikombinasikan dengan tahap pertama agar
dapat mengatasi kelemahan-kelemahan tadi. Untuk memecahkan
kombinasi tahap pertama dan tahap kedua ini harus dilakukan percobaan
23
brute force mencari kunci. Banyaknya cara untuk memecahkan kunci H-
Playfair adalah 36! cara. Jadi, H-Playfair memiliki sifat confusion
(membingungkan).
Sebagai bukti, lihat contoh pada langkah H-Playfair tahap dua yang telah
diberikan.
Plainteks :
Chiperteks 1:
Chiperteks 2 :
huruf i tidak selalu berasosiasi dengan huruf yang sama. Begitu pula
untuk pasangan huruf, pasangan huruf yang sama belum tentu
menghasilkan pasangan huruf cipherteks yang sama.
2. Diffusion
Pengubahan satu karakter plainteks dapat menyebabkan perubahan
semua karakter cipherteks setelahnya. Pada tahap dua H-Playfair
dilakukan substitusi tanpa kunci berulang lalu substitusi selanjutnya
(untuk plainteks yang lebih panjang dari panjangkunci) berdasarkan
cipherteks hasil tahap pertama sehingga statistik kemunculan
huruf/karakter dan statistik hubungan plainteks dan cipherteks menjadi
sulit diprediksikan.
en kr ip si dm yi nf or ma ti ka
bd ot uh hi kg hg 3b lr ik sm ne
3a n2 9h hd gd 0k 38 u8 gv 4z o0
24
2.4.4. Kelemahan Algoritma Kriptografi H-Playfair
Selain mempunyai kekuatan, algoritma kriptografi H-Playfair juga
mempunyai kelemahan. Kelemahan algoritma kriptografi H-Playfair
tersebut adalah pembangkitan kuncinya. Panjang kunci ditentukan sebanyak
36 huruf/karakter dengan setiap hurufnya berbeda sehingga pengguna sulit
mencari kunci yang mudah diingat untuk digunakan kembali pada saat
dekripsi. Kelemahan ini bisa saja diatasi dengan pemangkasan huruf-huruf
yang berulang dari kalimat yang mudah diingat. Namun, apabila hasil
pemangkasan kurang dari 36 karakter, maka timbul masalah baru. Bila
karakter sisa diisi secara default, penyerang menjadi lebih mudah
memecahkan cipherteks hasil enkripsi. Metode lain untuk menutupi
kelemahan tadi adalah dengan cara membangkitkan secara acak deret
karakter untuk menempati kotak 6x6 tersisa yang kemudian disimpan
didalam header plainteks. Kunci pun dibatasi tidak boleh lebih dari 36
karakter sehingga kompleksitas algoritma terbatas sebatas itu. Namun, jika
diinginkan, dengan memasukkan kelebihan kunci ke kunci untuk tahapan
kedua, maka masalah ini bisa diselesaikan.
2.4.5. Keamanan Algoritma Kriptografi H-Playfair
Algoritma kriptografi H-Playfair dikatakan relatif aman dibanding
algoritma kriptografi klasik lainnya karena memenuhi sifat-sifat :
1) Algoritma kriptografi H-Playfair relatif kompleks. Pemecahan secara
analitik sulit dilakukan, sulit mencari hubungan statistik antara plainteks
dan cipherteks.
25
2) Waktu tercepat yang diperlukan untuk memecahkan.
Pemilihan dalam penggunaan algoritma H-Playfair untuk
mengenkripsi password account email mahasiswa ada beberapa faktor yaitu:
a) Kecepatan eksekusi algoritma tersebut.
Algoritma H-Playfair dapat dengan cepat menyimpan data password
mahasiswa. Dengan menggunakan satu kunci maka dapat secara cepat
mengenkripsi.
b) Algoritma H-Playfair sulit dirusak oleh orang lain.
Walaupun merupakan salah satu algoritma kriptografi klasik namun
keamanannya setara dengan kriptografi modern karena mempunyai sifat
confusion dan diffusion.
c) Kemudahan dalam pengimplementasiannya.
Proses algoritma H-Playfair terdiri hanya 2 tahap yaitu enkripsi playfair
dengan bujursangkar 6x6 dan enkripsi jarak.
2.5. Pengenalan Pemrograman Java
Java adalah bahasa pemrograman berorientasi objek yang
dikembangkan oleh Sun Microsystems sejak tahun 1991. java merupakan
hasil perpaduan sifat dari sejumlah bahasa pemrograman, yaitu C, C++,
Object-C, SmallTalk dan Common LISP namun dirancang agar lebih mudah
dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis
sistem operasi dan arsitektur komputer. Selain itu, Java juga dilengkapi
dengan unsur keamanan (Kadir, 2004).
26
Program Java bersifat tidak bergantung pada platform yaitu Java
dapat dijalankan pada sebarang komputer dan bahkan pada sebarang sistem
operasi. Ketidakbergantungan terhadap platform sering dinyatakan dengan
istilah portabilitas. Tingkat portabilitas Java tidak hanya sebatas pada
program sumber (source code), melainkan juga pada tingkat kode biner yang
disebut bytecode.
Kode yang disebut bytecode dapat dijalankan pada berbagai sistem
operasi karena kode ini berbeda dengan kode mesin. Kode mesin sangat
bergantung pada platform, sedangkan bytecode dapat dimengerti oleh semua
platform yang telah dilengkapi dengan interpreter Java. Java sering
dikatakan bersifat netral terhadap arsitektur komputer.
Java juga merupakan bahasa pemrograman berorientasi objek, Java
menggunakan kelas untuk membentuk objek. Sejumlah kelas sudah tersedia
sehingga dapat digunakan dengan mudah dan bahkan dapat
mengembangkannya lebih jauh melalui konsep pewarisan (inheritance).
Pewarisan adalah salah satu sifat yang ada pada bahasa pemrograman
berorientasi objek, yang memungkinkan sifat-sifat suatu objek diturunkan
dengan mudah ke objek lain.
2.6. MySQL
MySQL (My Structure Query Language) merupakan suatu
software manajement database yang bersifat open source. Karena bersifat
27
open source sehingga dapat berjalan baik pada platform windows dan linux.
MySQL juga merupakan database bersifat jaringan sehingga dapat
digunakan Multi User sebagai user. Sistem manajement database dapat
dilakukan penambahan, pengaksesan, dan pemrosesan data yang diakses di
komputer. MySQL menggunakan bahasa Query standar yang dimiliki SQL
yaitu bahasa permintaan terstruktur yang telah distandarkan oleh semua
pengaksesan data seperti Oracle, Postgres SQL, SQL Server dan lain-lain.
MySQL dapat digunakan untuk melakukan pembuatan database, tabel,
view. Keuntungan menggunakan MySQL karena MySQL sangat tanguh,
cepat dan mudah digunakan.
Kemampuan yang dimiliki database MySQL adalah :
1. Mendukung fungsi-fungsi yang ada dalam SQL.
2. Mendukung ODBC.
3. Dapat digunakan pada database yang besar.
4. Dapat digunakan dalam berbagai sistem informasi.
5. Mudah dalam penggunaan dan sangat cepat.
6. Dapat digunakan dan dimanfaatkan dalam banyak CPU sekaligus.
7. Dapat dikoneksikan dengan berbagai bahasa pemrograman, sebagai
contoh C, C++, Java, Perl, PHP dll.
28
BAB 3
ANALISA DAN PERANCANGAN SISTEM
3.1. Analisa Sistem
3.1.1. Gambaran Umum Sistem
Sistem account email mahasiswa merupakan sistem yang
mempunyai tujuan memberi keamanan password dengan proses enkripsi
selain itu juga terdapat 3 tujuan yaitu :
1. Membuat account email baru atau registrasi.
2. Mengubah password.
3. Melakukan reset password apabila terjadi lupa password.
Adapun skenario dari masing-masing tujuan dari Sistem account
email mahasiswa adalah sebagai berikut:
1. Skenario melakukan registrasi account email mahasiswa di Universitas
Sanata Dharma yaitu:
(1) Mahasiswa datang ke BAPSI Universitas Sanata Dharma.
(2) Mahasiswa melakukan registrasi email mahasiswa dengan
mengisikan data dengan mengunakan Sistem Pembuatan Account
Email pada komputer yang sudah disediakan oleh BAPSI dan
mahasiswa mengisi form Formulir pendaftaran email Universitas
Sanata Dharma.
29
(3) Setelah melakukan registrasi mahasiswa mendapatkan username
dan password. Username dan password tersebut juga akan
dikirimkan ke alternatif email telah yang diisikan dan ke email
admin dan mahasiswa mendapatkan print out dari hasil registrasi
berupa username dan password.
2. Jika mahasiswa telah melakukan registrasi dan akan mengubah
password yaitu:
(1) Mahasiswa datang ke BAPSI Universitas Sanata Dharma.
(2) Mahasiswa melakukan ubah password dengan mengunakan Sistem
Pembuatan Account Email pada komputer yang sudah disediakan
oleh BAPSI.
(3) Mahasiswa juga mengubah password dengan menggunakan
(4) Username dan password baru juga akan dikirim ke alternative
email dan ke email admin dan mahasiswa mendapatkan print out
username dan password yang baru.
3. Jika mahasiswa lupa password maka :
(1) Mahasiswa datang ke BAPSI Universitas Sanata Dharma.
(2) Dengan mengunakan Sistem Pembuatan Account Email,
mahasiswa mengisikan data dan apabila cocok maka mahasiswa
akan mendapatkan password baru dan akan dikirimkan ke alternatif
email dan ke email admin dan mahasiswa mendapat print out
username dan password yang baru.
30
3.1.2. Gambaran Yang Terlibat Dalam Sistem
Ada dua aktor yang terlibat dalam Sistem Pembuatan Account Email
Mahasiswa yaitu:
1. Mahasiswa
Mahasiswa yang akan membuat account email pada
2. Admin
Admin bertugas mengedit data pada database [email protected]
karena sistem ini belum tersambung pada database
3.1.3. Requirement Analysis
3.1.3.1. Use Case Diagram
Use case diagram proses pembuatan account email mahasiswa tersebut
adalah :
31
Sistem Account Email Mahasiswa
Mahasiswa
Registrasi
Ubah Password
Lupa Password
Login
Lihat data
<<depend on>>
Administrator
Reset Password
Hapus Data
Gambar 9. Use Case Diagram
3.1.3.2. Use Case Narative
Tabel 1 Penjelasan Use Case Login
Nama Use Case Login
Aktor Mahasiswa, Admin
Deskripsi Otentifikasi user untuk masuk ke sistem
Urutan jenis kegiatan 1. User memilih username, apakah mahasiswa atau
admin.
2. User mahasiswa : tidak perlu memasukkan
password, langsung masuk ke sistem.
3. User admin :
- Memasukkan password yang dimiliki admin.
32
- Jika password admin sesuai maka admin
akan masuk ke halaman sesuai dengan
jabatannya.
- Jika password admin tidak sesuai maka
admin diminta untuk melakukan proses login
kembali.
Tabel 2 Penjelasan Use Case Registrasi
Nama Use Case Registrasi
Aktor Mahasiswa
Deskripsi Registrasi account email mahasiswa
Urutan jenis kegiatan 1. Mahasiswa memasukkan data registrasi berupa
data NIM, nama panggilan, telepon, alternative
email, pertanyaan dan jawaban. Setelah
mahasiswa memasukkan NIM, maka Nama
lengkap dan Alamat asal akan muncul secara
otmoatis mengambil dari tabel Mahasiswa. Jika
mahasiswa sudah pernah melakukan registrasi
atau data sudah ada maka data tidak dapat
disimpan.
2. Data yang berhasil disimpan maka akan masuk
ke form registrasi berikutnya, mahasiswa akan
diberi username dan password untuk dapat login
3. Data password yang diberikan kepada
mahasiswa kemudian dienkripsi dan disimpan
dalam database.
4. Data username dan password yang telah
diberikan harus diingat dan akan dikirimkan
secara otomatis ke alternative email yang telah
33
dimasukkan oleh mahasiswa dan dikirimkan ke
email admin.
5. Mahasiswa mendapat print out hasil registrasi.
Tabel 3 Penjelasan Use Case Ubah Password
Nama Use Case Ubah Password
Aktor Mahasiswa
Deskripsi Mengubah password
Urutan jenis kegiatan 1. Mahasiswa memasukkan NIM, password lama,
password baru dan konfirmasi password baru.
2. Sistem akan melakukan pengecekan apakah data
NIM dan password lama cocok, jika cocok maka
dilakukan pengecekan apakah password baru
dan konfirmasi password baru sama. Jika sama
data password akan diubah.
3. Sistem akan memberi konfirmasi apakah data
berhasil diubah atau tidak.
4. Data username dan password yang telah diubah
akan dikirimkan secara otomatis ke alternative
email yang telah dimasukkan oleh mahasiswa
dan email admin.
Tabel 4 Penjelasan Use Case Lupa Password
Nama Use Case Lupa Password
Aktor Mahasiswa
Deskripsi Mendapatkan Password baru apabila lupa password
Urutan jenis kegiatan 1. Mahasiswa memasukkan NIM kemudian akan
muncul Email dan Alternative email.
2. Kemudian pada form berikutnya mahasiswa
34
memasukkan jawaban pada pertanyaan yang
dipilih pada waktu registrasi.
3. Jika jawaban dari pertanyaan tersebut cocok :
- mahasiswa diberi password baru.
4. Jika jawaban dari pertanyaan tersebut tidak
cocok :
- Password akan direset oleh admin
5. Password baru tersebut juga akan dikirimkan
pada alternative email dan email admin.
Tabel 5 Penjelasan Use Case Lihat Data
Nama Use Case Lihat Data
Aktor Admin
Deskripsi Melihat Data Registrasi mahasiswa
Urutan jenis kegiatan 1. Melihat data mahasiswa yang telah melakukan
registrasi, dan untuk mengubah data pada
database sistem email yang dimiliki oleh
BAPSI.
Tabel 6 Penjelasan Use Case Reset Password
Nama Use Case Reset Password
Aktor Admin
Deskripsi Mereset Password Mahasiswa yang lupa data bantu
pada lupa password.
Urutan jenis kegiatan 1. Admin memasukkan NIM mahasiswa yang lupa
Password dan lupa data bantu.
2. Akan muncul nama, email dan alternative email
mahasiswa. Jika alternative mahasiswa telah
berubah data bisa diubah oleh admin.
35
3. Jika data sudah benar maka klik button Reset.
4. Maka data password baru akan dikirim ke
alternative email dan akan di print.
Tabel 7 Penjelasan Use Case Hapus Data
Nama Use Case Hapus Data
Aktor Admin
Deskripsi Menghapus data registrasi bagi mahasiswa yang
sudah tidak mempunyai hak email mahasiswa.
Urutan jenis kegiatan 1. Memasukkan data NIM mahasiswa yang akan
dihapus data registrasi email mahasiswa.
2. Muncul data nama dan email.
3. Klik button Hapus.
3.1.4. Pemodelan dan Analisis Data
Sistem registrasi dan enkripsi, dekripsi password mahasiswa dapat
dimodelkan dengan menggunakan DFD sebagai berikut:
1. Diagram Konteks / Level 0
Data mahasiswa
Account email (Username dan Password)
0
Sistem Account Email Mahasiswa
Mahasiswa Admin
Username, password login
Data registrasi mahasiswa
Gambar 10. Diagram Konteks
36
2. Diagram Berjenjang
0
Sistem Account Email Mahasiswa
2
Meregistrasi data mahasiswa
3
Mengubah password
2.1p
Membuat account baru
3.2p
Mengenkripsi password baru
2.2p
Mengenkripsi password
3.1p
Mendekripsi password lama
4
Lupa password
4.1p
Membuat password baru
4.2p
Mengenkripsi Password
1
Login
5Lihat data account
mahasiswa
6
Reset Password
7
Hapus Data
6.1p
Membuat password baru
6.2p
Mengenkripsi Password
Gambar 11. Diagram Berjenjang
3. Diagram Alir Data Proses 1
Gambar 12. Diagram Alir Data Proses 1
4. Diagram Alir Data Level 2 Proses 2
Gambar 13. Diagram Alir Data Level 2 Proses 2
5. Diagram Alir Data Level 2 Proses 3
Mahasiswa
Password lama& password baru
Password baru
3.2p
Mengenkripsi password baru
3.1p
Mendekripsi password lama
1 account_email
Chipertext password baru
Validitasi password lama
Konfirmasi ubah password
Gambar 14. Diagram Alir Data Level 2 Proses 3
37
6. Diagram Alir Data Level 2 Proses 4
Gambar 15. Diagram Alir Data Level 2 Proses 4
7. Diagram Alir Data Level 2 Proses 6
Gambar 16. Diagram Alir Data Level 2 Proses 6
3.2. Perancangan Database
3.2.1. Entity Relational Diagram
Dalam Sistem Account Email Mahasiswa mempunyai 2 entitas yaitu:
Gambar 17. Entity Relational Diagram
Entitas account_email tersebut mempunyai primary key NIM dan
mempunyai atribut Nama, Nama_panggil, Alamat_asal, Alternative_email,
Telepon, Username, Password, Pertanyaan dan Jawaban. Mahasiswa
38
mengisikan NIM, Nama, Alamat, Alternative_email, Telepon, Pertanyaan
dan Jawaban yang akan disimpan dalam tabel account_email tersebut. Dan
sistem akan membuatkan/me-generate username dan password, dan akan
disimpan dalam tabel account_email tersebut. Hasil hasil Username dan
Password akan dikirim ke alternative email yang dimiliki oleh mahasiswa.
Entitas mahasiswa mempunyai primary key NIM dan mempunyai
atribut Nama dan Alamat_asal.
3.2.2. Tabel-tabel Yang Diperlukan
3.2.2.1. Tabel account_email
Tabel ini berisi data registrasi account email mahasiswa.
Tabel 8 Penjelasan Tabel Account_email
Nama Field Tipe Data Panjang Keterangan
Pk NIM Varchar 12 NIM mahasiswa
Nama Varchar 80 Nama lengkap
Nama_Panggil Varchar 20 Nama panggilan untuk
username.
Alamat_asal Varchar 100 Alamat
Alternative_email Varchar 80 Email yang dimiliki
Telepon Varchar 12 No Telepon/HP
Username Varchar 50 Username yang diberikan
untuk login ke
Password Varchar 30 Password yang diberikan.
Pertanyaan Varchar 80 Pertanyaan yang dipilih
apabila terjadi lupa password
39
Jawaban Varchar 40 Jawaban dari pertanyaan yang
dipilih.
3.2.2.2. Tabel mahasiswa
Tabel mahasiswa adalah tabel yang menampung semua NIM dan
Nama mahasiswa.
Tabel 9 Penjelasan Tabel Mahasiswa
Nama Field Tipe Data Panjang Keterangan
Pk NIM Varchar 12 NIM mahasiswa
Nama Varchar 80 Nama lengkap
Alamat_asal Varchar 100 Alamat asal mahasiswa
40
3.2.3. Diagram Alir
end
Start
Password lama sesuai
Dekripsi password lama
Enkripsi password baru
ya
tidak peringatan
Masukkan data NIM, pass lama,
pass baru
end
Start
Membuat Password baru
Enkripsi password baru
Masukkan NIM
Masukkan Jawaban dari Pertanyaan
end
Start
NIM belum pernah registrasi
Membuat account
Enkripsi password
ya
tidak peringatan
Masukkan data
registrasi
Registrasi Email Lupa PasswordUbah Password
Data jawaban sesuai
Peringatan reset password oleh
admin
tidak
ya
Print : Username dan
Password
Print : Username dan Password,
kirim email
Print : Username dan Password,
kirim email
Gambar 18. Diagram alir Registrasi Email, Ubah Password dan Lupa
Password
41
Gambar 19. Diagram alir Reset Password
42
Gambar 20. Diagram alir Proses Enkripsi dan Dekripsi Metode H-Playfair
43
3.2.4. Desain Input Output
Halaman Login
Gambar 21. Desain Halaman Login
Halaman login merupakan halaman pertama untuk masuk ke
Sistem account email mahasiswa. User mahasiswa tidak perlu memasukkan
password untuk masuk ke Sistem namun admin harus masuk menggunakan
password.
44
3.2.4.1. User Mahasiswa
1. Halaman Menu
MenuMenu
Sistem Account Email Mahasiswa
Registrasi
Ubah Password
Lupa Password
Petunjuk
Keluar
Gambar 22. Rancangan Halaman Menu Mahasiswa
Halaman ini merupakan menu Mahasiswa, pada halaman Menu
Mahasiswa terdapat 5 button, yaitu button registrasi, button Ubah
Password, button Lupa Password, button Petunjuk dan button Keluar.
Registrasi yaitu apabila mahasiswa akan membuat account baru. Ubah
password apabila mahasiswa sudah membuat account dan ingin
mengubah password. Lupa Password apabila mahasiswa lupa mengingat
password.
45
2. Halaman Registrasi
RegistrasiRegistrasi
Sistem Account Email Mahasiswa
Registrasi
Nama :
NIM :
Nama Panggilan :
Telepon / HP :
Alternative Email :
Pertanyaan :
Jawaban :
055314031
Bhernadet Megaria
Jl. Kebon Jeruk 15
081327999888
Elisa
Siapa nama ibu kandung Anda?
Buat Account BaruBatal
Alamat Asal :
Maya
Gambar 23. Rancangan Halaman Registrasi User Mahasiswa
Halaman ini adalah halaman registrasi. Mahasiswa mengisikan NIM,
Nama, Nama Panggilan, Alamat_asal, Alternative_email, Telepon
,Username, Password, Pertanyaan, dan Jawaban kemudian mengklik
Buat Account Baru maka halaman Registrasi(langkah 2) pada gambar 24
akan terbuka.
46
3. Halaman Registrasi(langkah 2)
RegistrasiRegistrasi
Sistem Account Email Mahasiswa
Registrasi
Nama :
NIM :
Alamat :
Telepon / HP :
Alternative Email :
Pertanyaan :
Jawaban :
055314031
Bhernadet Megaria
Jl. Kebon Jeruk 15
081327999888
Siapa nama ibu kandung Anda?
Elisa
Username : [email protected]
Password : rgcin112
OK
Nama Panggilan : Maya
Gambar 24. Rancangan Halaman Registrasi(langkah 2)
Halaman Registrasi(langkah 2) merupakan hasil registrasi, form yang
akan muncul setelah menekan Buat Account Baru. Data username dan
password harus diingat oleh user untuk dapat login ke email mahasiswa
di http://mail.student.usd.ac.id. Data username dan password juga
dikirimkan ke alamat alternative_email dan mahasiswa akan
mendapatkan print out hasil registrasi.
47
4. Halaman Ubah Password
Halaman ini digunakan apabila mahasiswa ingin mengubah password.
Dengan mengisikan password lama, password baru dan konfirmasi
password baru. Apabila user membuat/mengisikan password baru maka
dapat diketahui kekuatan sandi yang baru. Data password baru juga
dikirimkan ke alamat alternative_email dan akan mahasiswa juga akan
mendapatkan print password baru.
Gambar 25. Rancangan Halaman Ubah Password
5. Halaman Lupa Password
Halaman ini terbuka apabila mengklik lupa password, apabila
mahasiswa lupa akan passwordnya. Mahasiswa mengisikan NIM
kemudian secara otomatis Nama dan Alternative email akan muncul,
48
Nama mahasiswa tidak dapat di ubah namun alternative email dapat
diubah apabila akan mengganti dengan email baru. Mahasiswa
mengisikan Halaman lupa password, apabila data cocok maka akan
diberi pertanyaan saat registrasi dan mahasiswa mengisikan jawaban.
Apabila jawaban yang diberikan benar maka mahasiswa akan diberi
password baru.
Lupa PasswordLupa Password
Sistem Account Email Mahasiswa
Lupa Password
LANJUTBATAL
NIM :
Email :
Alternative email :
055314031
Gambar 26. Rancangan Halaman Lihat Password
49
Lupa PasswordLupa Password
Sistem Account Email Mahasiswa
Lupa Password
LANJUTKEMBALI
Jawaban : Elisa
Siapa nama ibu kandung Anda?
Gambar 27. Rancangan Halaman Lupa Password
Gambar 28. Rancangan Halaman Lupa Password(langkah 2)
50
3.2.4.2. User Admin
1. Form menu admin
Gambar 29. Rancangan Halaman Menu Admin
Pada halaman menu Admin terdapat 5 button yaitu Lihat Data, Reset
Password, Hapus Password, Petunjuk dan Keluar.
2. Halaman lihat data
Halaman lihat data berfungsi apabila admin akan melihat data
mahasiswa yang telah melakukan registrasi. Tidak semua data registrasi
mahasiswa ditampilkan hanya data NIM, Nama, Nama_Panggil,
Alamat_asal, Telepon, Alternative Email dan Username.
51
AdminAdmin
Sistem Account Email Mahasiswa
Lihat Data
KEMBALI
Gambar 30. Rancangan Halaman Lihat Data
3. Halaman Reset Password
Halaman reset password berfungsi apabila ada mahasiswa yang lupa
passwordnya dan lupa jawaban dari pertanyaan yang dipilih saat
registrasi. Sehingga admin dapat mereset password.
Gambar 31. Rancangan Halaman Reset Password
52
Admin akan mencocokkan data NIM mahasiswa dengan nama dan
alternatif email yang dimiliki, alternative email dapat diganti apabila
akan mengubah dengan yang baru. Setelah cocok maka klik Reset
Password dan password baru akan dikirim ke alternative email
mahasiswa dan email admin, juga mahasiswa mendapatkan print out
username dan passsword baru.
Gambar 32. Rancangan Halaman Reset Password(langkah 2)
53
4. Halaman Hapus Data
Gambar 33. Rancangan Halaman Hapus Data
Halaman hapus data berfungsi untuk menghapus data mahasiswa yang
sudah tidak mempunyai hak untuk Email Mahasiswa. Admin
memasukkan NIM mahasiswa yang akan dihapus data accountnya.
54
BAB 4
IMPLEMENTASI DAN ANALISA HASIL
4.1. Implementasi
Implementasi dan hasil merupakan tahap pengkodean dari
perancangan bab III dan hasil analisa implementasi sistem. Berikut ini akan
dijelaskan lebih lanjut mengenai implementasi dari ”Enkripsi Dan Dekripsi
Account Email Mahasiswa Dengan Metode H-Playfair Menggunakan Java
Dan MySql. Studi Kasus di BAPSI USD”.
4.1.1. Karakteristik Sistem
Sistem Account Email Mahasiswa merupakan sistem yang
digunakan untuk melakukan registrasi email mahasiswa, membantu apabila
lupa password dan ubah password. Untuk meningkatkan keamanan sistem
ini mengenkripsi data password account email mahasiswa dengan
menggunakan algoritma H-Playfair. Database pada sistem ini belum
tersambung oleh database pada Sistem Email Mahasiswa Sanata Dharma
sehingga dalam menyimpan password masih dilakukan oleh admin.
4.1.2. Kebutuhan Sistem
4.1.2.1. Kebutuhan Perangkat Keras
Perangkat keras yang digunakan untuk membangun Sistem
Account Email Mahasiswa ini adalah:
- Prosesor Intel® Core™2 Duo T5250
55
- Memori DDR2 1526 MB
- Hardisk 120 GB
4.1.2.2. Kebutuhan Perangkat Lunak
Perangkat lunak yang digunakan untuk membangun Sistem
Account Email Mahasiswa ini adalah:
- Sistem Operasi : Wndows Vista™ Home Basic
- IDE : Netbeans 6.0
- Database tool : SQLyog Community-Edition-MySQL GUI v5.14
4.1.3. Implementasi Enkripsi dan Dekripsi Menggunakan Algoritma
H-Playfair
Semua data password Account Mahasiswa tersimpan di database
setelah dienkripsi dengan algoritma H-Playfair. Seperti yang telah
dijelaskan pada BAB 2, algoritma H-Playfair menggunakan kunci 26 huruf
(a,b,c,d,…,z) ditambah 10 buah angka (0,1,2,3,...,9) yang disusun didalam
bujur sangkar 6x6. Setiap bujur sangkar berisi huruf yang berbeda satu sama
lain. Berikut ini merupakan potongan listing program untuk membuat kunci.
public HPlayfair(String dataKunci) { this.dataKunci = dataKunci; char[] dataKunciArray = dataKunci.toCharArray(); kunci = new UtilList[6]; int indexArray = 0; for (int i = 0; i < kunci.length; i++) { UtilList temp = new UtilList(i); for (int j = 0; j < 6; j++) { temp.insert(String.valueOf(dataKunciArray[indexArray])); System.out.print(String.valueOf(dataKunciArray[indexArray]) + " "); indexArray++; }
56
kunci[i] = temp; System.out.println(""); } }
Untuk membentuk kunci menggunakan senarai, dengan method insert.
Berikut ini merupakan listing method insert:
public void insert(String nilai) { if (getAwal() == null) { setAwal(akhir = new UtilListNode(nilai)); } else { UtilListNode node = new UtilListNode(nilai); node.setIndex(akhir.getIndex() + 1); node.setSebelum(getAkhir()); node.setSesudah(getAwal()); getAkhir().setSesudah(node); getAwal().setSebelum(node); setAkhir(node); } }
4.1.3.1. Implementasi Enkripsi Password Menggunakan Algoritma H-
Playfair
Algoritma enkripsi H-Playfair adalah sebagai berikut :
1. Password yang akan dienkripsi dituliskan dalam pasangan huruf. Jika
dalam pasangan terdapat huruf yang sama, sisipkan huruf-huruf dummy.
Jika terdapat huruf yang belum berpasangan, maka pasangkan huruf
tersebut dengan dummy.
public String[] pecahKata(String kata) { String[] hasilPecah = null; char[] kataCharArray = kata.toCharArray(); String[] kataArray = new String[kataCharArray.length]; for (int i = 0; i < kataCharArray.length; i++) { kataArray[i] = String.valueOf(kataCharArray[i]); } hasilPecah = new String[100]; int indexArray = 0; String tempKata = "";
57
for (int i = 0; i < kataArray.length; i++) { if (i + 1 < kataArray.length) { if (kataArray[i].equals(kataArray[i + 1])) { tempKata += kataArray[i] + DUMMY; } else { tempKata += kataArray[i] + kataArray[i + 1]; i++; } } else { tempKata += kataArray[i]; } if (tempKata.length() % 2 == 1) { tempKata += DUMMY; } } System.out.println("\nKaTA BAGI 2 = " + tempKata); kataCharArray = tempKata.toCharArray(); kataArray = new String[kataCharArray.length]; for (int i = 0; i < kataCharArray.length; i++) { kataArray[i] = String.valueOf(kataCharArray[i]); } for (int i = 0; i < kataArray.length; i++) { if (i + 1 < kataArray.length) { if (kataArray[i].equals(kataArray[i + 1])) { tempKata += kataArray[i] + DUMMY; } else { tempKata += kataArray[i] + kataArray[i + 1]; i++; } } else { tempKata += kataArray[i] + DUMMY; } hasilPecah[indexArray] = tempKata; tempKata = ""; indexArray++; } return hasilPecah; }
Password yang akan di enkripsi disimpan dalam variabel kataArray
dibagi menjadi pasangan-pasangan karakter. Pada program tersebut
dilakukan pengecekan jika dalam pasangan karakter terdapat huruf yang
sama maka disisipkan huruf dummy yaitu huruf ‘xyz’, jika tidak ada
huruf yang sama maka akan dilanjutkan pasangan karakter kembali, dan
58
jika terdapat karakter yang tidak mendapatkan pasangan huruf maka
dipasangkan dengan huruf dummy. Hasil dari pengecekan disimpan pada
variable hasilPecah.
2. Aturan enkripsi dan dekripsi mengikuti aturan segiempat dan karakter
yang ada terlebih dahulu dibagi menjadi dua karakter setiap bagiannya.
Bila kedua karakter tidak terletak pada satu baris atau kolom maka
pergerakan karakter dimulai dari huruf kedua secara vertikal menuju
karakter teks-kode yang pertama.
UtilList listKar1 = kunci[indexKar1[0]]; UtilList listKar2 = kunci[indexKar2[0]]; UtilListNode nodeKar1 = listKar1.cariNilai(listKar1.getAwal(), indexKar2[1]); UtilListNode nodeKar2 = listKar2.cariNilai(listKar2.getAwal(), indexKar1[1]); System.out.println("Encript karakter 1 = " + nodeKar1.getNilai()); System.out.println("Encript karakter 2 = " + nodeKar2.getNilai()); String[] enkripsiPlayfair = {nodeKar1.getNilai(), nodeKar2.getNilai()}; System.out.println(nodeKar1.getNilai() + nodeKar2.getNilai()); return enkripsiPlayfair;
3. Bila karakter-karakter yang dienkripsi atau dekripsi berada pada kolom
atau baris yang sama dan saling berdekatan maka digunakan prinsip
enkripsi atau dekripsi ke bawah atau ke samping.
int[] indexKar1 = getIndex(kar1); int[] indexKar2 = getIndex(kar2); if (indexKar1[0] == indexKar2[0]) { int kolom1 = indexKar1[1] + 1; int kolom2 = indexKar2[1] + 1; if (kolom1 > 6) { kolom1 -= 6; } if (kolom2 > 6) { kolom2 -= 6;
59
} UtilList listKar1 = kunci[indexKar1[0]]; UtilList listKar2 = kunci[indexKar2[0]]; UtilListNode nodeKar1 = listKar1.cariNilai(listKar1.getAwal(), kolom2); UtilListNode nodeKar2 = listKar2.cariNilai(listKar2.getAwal(), kolom1); System.out.println("Encript karakter 1 = " + nodeKar1.getNilai()); System.out.println("Encript karakter 2 = " + nodeKar2.getNilai()); String[] enkripsiPlayfair = {nodeKar1.getNilai(), nodeKar2.getNilai()}; System.out.println(nodeKar1.getNilai() + nodeKar2.getNilai()); return enkripsiPlayfair; } else if (indexKar1[1] == indexKar2[1]) { int baris1 = indexKar1[0] + 1; int baris2 = indexKar2[0] + 1; if (baris1 > 5) { baris1 -= 6; } if (baris2 > 5) { baris2 -= 6; } UtilList listKar1 = kunci[baris2]; UtilList listKar2 = kunci[baris1]; UtilListNode nodeKar1 = listKar1.cariNilai(listKar1.getAwal(), indexKar1[1]); UtilListNode nodeKar2 = listKar2.cariNilai(listKar2.getAwal(), indexKar2[1]); System.out.println("Encript karakter 1 = " + nodeKar1.getNilai()); System.out.println("Encript karakter 2 = " + nodeKar2.getNilai()); String[] enkripsiPlayfair = {nodeKar1.getNilai(), nodeKar2.getNilai()}; System.out.println(nodeKar1.getNilai() + nodeKar2.getNilai()); return enkripsiPlayfair;
4. Hasil enkripsi tadi kemudian dikenakan algoritma enkripsi lanjutan.
Huruf hasil enkripsi tadi dipasangkan dengan huruf pertama kunci untuk
digantikan menjadi huruf baru menggunakan fungsi enkripsi jarak.
Fungsi enkripsi jarak ini adalah menghitung jarak antara huruf yang akan
60
dienkripsi dengan huruf kunci lalu mencari huruf dengan jarak yang
sama terhadap kunci. Jika panjang kunci telah habis, sisanya diganti
dengan huruf-huruf yang akan dienkripsi dari awal.
public String getHplayfair(String kar1, String kar2) { int kanan = 0; int atas = 0; int baris1 = 0; int kolom1 = 0; int baris2 = 0; int kolom2 = 0; baris1 = getBaris(kar1); UtilListNode tempNode = getKolom(kunci[baris1], kar1); kolom1 = tempNode.getIndex(); baris2 = getBaris(kar2); UtilListNode tempNode2 = getKolom(kunci[baris2], kar2); kolom2 = tempNode2.getIndex(); if (baris1 - baris2 < 0) { atas = (baris1 + 6) - baris2; } else { atas = baris1 - baris2; } boolean ketemu = false; UtilList barisCari = kunci[baris1]; UtilListNode nodeCari = barisCari.cariNilai(barisCari.getAwal(), kolom1); while (ketemu == false) { if (nodeCari.getIndex() == kolom2) { ketemu = true; } else { nodeCari = nodeCari.getSesudah(); kanan++; } } int index = 0; if (baris2 - atas < 0) { index = (baris2 + 6) - atas; } else { index = baris2 - atas; } UtilList hasil = kunci[index]; UtilListNode nodeHasil = hasil.cariNilai(hasil.getAwal(), tempNode2.getIndex()); for (int i = 0; i < kanan; i++) { nodeHasil = nodeHasil.getSesudah(); } return nodeHasil.getNilai(); }
61
4.1.3.2. Implementasi Dekripsi Menggunakan Algoritma H-Playfair
Algoritma enkripsi H-Playfair adalah sebagai berikut :
1. Cari karakter-karakter yang berjarak dari karakter kunci sama dengan
karakter kunci ke cipherteks.
2. Lalu lakukan algoritma dekripsi playfair.
public String[] getDekripsiPlayfair(String kar1, String kar2) { int[] indexKar1 = getIndex(kar1); int[] indexKar2 = getIndex(kar2); if (indexKar1[0] == indexKar2[0]) { int kolom1 = indexKar1[1] - 1; int kolom2 = indexKar2[1] - 1; if (kolom1 <= 0) { kolom1 += 6; } if (kolom2 <= 0) { kolom2 += 6; } UtilList listKar1 = kunci[indexKar1[0]]; UtilList listKar2 = kunci[indexKar2[0]]; UtilListNode nodeKar1 = listKar1.cariNilai(listKar1.getAwal(), kolom2); UtilListNode nodeKar2 = listKar2.cariNilai(listKar2.getAwal(), kolom1); String[] dekripsiPlayfair = {nodeKar1.getNilai(), nodeKar2.getNilai()}; return dekripsiPlayfair; } else if (indexKar1[1] == indexKar2[1]) { int baris1 = indexKar1[0] - 1; int baris2 = indexKar2[0] - 1; if (baris1 < 0) { baris1 += 6; } if (baris2 < 0) { baris2 += 6; } UtilList listKar1 = kunci[baris2]; UtilList listKar2 = kunci[baris1];
62
UtilListNode nodeKar1 = listKar1.cariNilai(listKar1.getAwal(), indexKar1[1]); UtilListNode nodeKar2 = listKar2.cariNilai(listKar2.getAwal(), indexKar2[1]); String[] dekripsiPlayfair = {nodeKar1.getNilai(), nodeKar2.getNilai()}; return dekripsiPlayfair; } else { UtilList listKar1 = kunci[indexKar1[0]]; UtilList listKar2 = kunci[indexKar2[0]]; UtilListNode nodeKar1 = listKar1.cariNilai(listKar1.getAwal(), indexKar2[1]); UtilListNode nodeKar2 = listKar2.cariNilai(listKar2.getAwal(), indexKar1[1]); String[] dekripsiPlayfair = {nodeKar1.getNilai(), nodeKar2.getNilai()}; return dekripsiPlayfair; } }
3. Hilangkan dummy (jika ada).
for (int i = 0; i < hasilDekripsiArray.length; i++) { if (hasilDekripsiArray[i] != null) { hasilDekripsi += hasilDekripsiArray[i]; } else { break; } } String[] tempDekripsi = hasilDekripsi.split(DUMMY); System.out.println("TESTING " + hasilDekripsi); hasilDekripsi = ""; for (int i = 0; i < tempDekripsi.length; i++) { System.out.println(i + " : " + tempDekripsi[i]); if (i + 1 != tempDekripsi.length) { if (String.valueOf(tempDekripsi[i].charAt(tempDekripsi[i].length() - 1)).equals(String.valueOf(tempDekripsi[i + 1].charAt(0)))) { hasilDekripsi += tempDekripsi[i] + tempDekripsi[i + 1]; i++; } } else { hasilDekripsi += tempDekripsi[i]; } }
63
4.1.4. Implementasi Sistem
Sistem ini digunakan oleh mahasiswa dan admin. Apabila user
mahasiswa maka Password Field tidak aktif, namun apabila user admin
maka Password Field aktif dan memasukkan password, jika password admin
valid maka masuk menu admin apabila password admin tidak valid maka
muncul konfirmasi "Proses Login Admin Gagal. Silahkan Login Kembali".
4.1.4.1. Menu Mahasiswa
4.1.4.1.1. Registrasi
Pada saat mahasiswa melakukan registrasi account email,
mahasiswa mengisikan data-data kemuadian mahasiswa mendapatkan
username dan password baru. Data password didapat dari karakter dan
angka random, password awal yang diberi terdiri dari 8-10 karakter. Di
bawah ini merupakan listing membuat password secara random:
public static String randomstring(int lo, int hi) { int n = rand(lo, hi); Random rand = new Random(36); int randNumber; byte b[] = new byte[n]; for (int i = 0; i < n; i++) { randNumber = rand.nextInt(); if (randNumber < 5) { b[i] = (byte) rand('0', '9'); } else { b[i] = (byte) rand('a', 'z'); } } return new String(b, 0); } private static int rand(int lo, int hi) { java.util.Random rn = new java.util.Random(); int n = hi - lo + 1; int i = rn.nextInt() % n; if (i < 0) { i = -i; } return lo + i;
64
} public static String randomstring() { return randomstring(8, 10); }
Penjelasan listing program di atas:
Kelas Random merupakan untuk membangkitkan bilangan dan
karakter bilangan acak. Pada method rand di atas membangkitkan bilangan
acak menurut waktu sehingga setiap kali dijalankan maka akan dihasilkan
bilangan acak yang berbeda.
Setelah sukses melakukan registrasi kemudian data account
email mahasiswa berupa username dan password tersebut di print dan
dikirim ke alternatif email juga ke email admin Bapsi. Di bawah ini
merupakan listing untuk mengirim email:
private String SMTP_HOST_NAME = "smtp.gmail.com";//server keluar private String SMTP_PORT = "465"; private String emailMsgTxt = "Test Message Contents"; private String emailSubjectTxt = "A test from gmail"; private String emailFromAddress = "[email protected]"; private String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; private String[] sendTo; public static void main(String args[]) throws Exception { } public void sendMessage(String recipients[], String subject, String message, String from) throws MessagingException { Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); boolean debug = true; Properties props = new Properties(); props.put("mail.smtp.host", getSMTP_HOST_NAME()); props.put("mail.smtp.auth", "true"); props.put("mail.debug", "true"); props.put("mail.smtp.port", getSMTP_PORT()); props.put("mail.smtp.socketFactory.port", getSMTP_PORT()); props.put("mail.smtp.socketFactory.class", getSSL_FACTORY()); props.put("mail.smtp.socketFactory.fallback", "false"); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
65
protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("[email protected]", "sanata2009usd"); } }); session.setDebug(debug); Message msg = new MimeMessage(session); InternetAddress addressFrom = new InternetAddress(from); msg.setFrom(addressFrom); InternetAddress[] addressTo = new InternetAddress[recipients.length]; for (int i = 0; i < recipients.length; i++) { addressTo[i] = new InternetAddress(recipients[i]); } msg.setRecipients(Message.RecipientType.TO, addressTo); msg.setSubject(subject); msg.setContent(message, "text/plain"); Transport.send(msg); } public String getSMTP_HOST_NAME() { return SMTP_HOST_NAME; } public void setSMTP_HOST_NAME(String SMTP_HOST_NAME) { this.SMTP_HOST_NAME = SMTP_HOST_NAME; } public String getSMTP_PORT() { return SMTP_PORT; } public void setSMTP_PORT(String SMTP_PORT) { this.SMTP_PORT = SMTP_PORT; } public String getSSL_FACTORY() { return SSL_FACTORY; } public void setSSL_FACTORY(String SSL_FACTORY) { this.SSL_FACTORY = SSL_FACTORY; } public String getEmailMsgTxt() { return emailMsgTxt; } public void setEmailMsgTxt(String emailMsgTxt) { this.emailMsgTxt = emailMsgTxt; } public String getEmailSubjectTxt() { return emailSubjectTxt; } public void setEmailSubjectTxt(String emailSubjectTxt) {
66
this.emailSubjectTxt = emailSubjectTxt; } public String getEmailFromAddress() { return emailFromAddress; } public void setEmailFromAddress(String emailFromAddress) { this.emailFromAddress = emailFromAddress; } public String[] getSendTo() { return sendTo; } public void setSendTo(String[] sendTo) { this.sendTo = sendTo; }
Pengiriman email menggunakan sumber email dari
“[email protected]” maka yang digunakan adalah setting gmail. Dalam
mengirimkan email program mengeset server terlebih dahulu pada
SMTP_HOST_NAME, dan Port nya dismpan pada SMTP_PORT.
Di bawah ini merupakan listing untuk mengirim email dan
mencetak hasil registrasi email mahasiswa.
String message = "Username dan password anda untuk email USD" + "\nUsername : " + username + "\nPassword : " + pass; String[] to = {email2.getText(), "[email protected]"}; System.out.println(email2.getText()); String nimbuatquery = nim2.getText(); SendEmail send = new SendEmail(); send.setEmailFromAddress("[email protected]"); send.sendMessage(to, "Regristrasi Email USD", message, send.getEmailFromAddress()); String query = "SELECT Username,'" + pass + "' AS Password" + " FROM account_email" + " WHERE nim = '" + nimbuatquery + "'"; System.out.println("query nya " + query); Connection koneksi = login.koneksi; Statement statement;
67
statement = koneksi.createStatement(); ResultSet resultSet = statement.executeQuery(query); JOptionPane.showMessageDialog(this, "Proses Registrasi Sukses"); menu baru = new menu(); baru.setVisible(true); JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet); System.out.println("Filling report..."); String print = JasperFillManager.fillReportToFile("report/ReportTest.jasper", new HashMap(), resultSetDataSource); JasperViewer.viewReport(print, false, false); System.out.println("Done!"); resultSet.close(); statement.close(); } catch (Exception ex) { Logger.getLogger(registrasi2.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(this, "Proses Kirim Email Gagal, Silahkan Cek Kembali"); }
Penjelasan potongan listing di atas:
Listing di atas merupakan program untuk kirim email. Isi pesan
yang akan dikirim disimpan dalam variable message. Pesan dikirim ke
alternative email mahasiswa dan ke email admin yaitu ke
[email protected], dengan menggunakan alamat sumber
dari [email protected]. Kemudian proses mencetak hasil registrasi
dengan menggunakan jesperReport.
4.1.4.1.2. Ubah Password
Untuk mengubah password mahasiswa mengisikan data NIM,
password lama, password baru dan konfirmasi password baru. Dalam
membuat password baru dapat menggunakan kekuatan password. Berikut ini
merupakan potongan listing kekuatan password.
68
public String CheckPasswordStrength(String passwd) { int upper = 0, lower = 0, numbers = 0, special = 0, length = 0; int strength = 0, intScore = 0; String strVerdict = "none", strLog = ""; Pattern p; Matcher m; if (passwd == null) { return "gagal"; } // PASSWORD LENGTH length = passwd.length(); if (length < 6) { intScore = (intScore + 5); } else if (length >= 6 && length <= 8) // length between 5 and 7 { intScore = (intScore + 6); } else if (length > 8) // length between 8 and 15 { intScore = (intScore + 10); } // LETTERS p = Pattern.compile(".??[a-z]"); m = p.matcher(passwd); while (m.find()) // [verified] at least one lower case letter { lower += 1; } if (lower > 0) { intScore = (intScore + 1); } // NUMBERS p = Pattern.compile(".??[0-9]"); m = p.matcher(passwd); while (m.find()) // [verified] at least one number { numbers += 1; } if (numbers > 0) { intScore = (intScore + 1); if (numbers > 1) { intScore = (intScore + 1); if (numbers > 2) { intScore = (intScore + 1); } } } // COMBOS if (lower > 0 && numbers > 0) // [verified] both letters and numbers { intScore = (intScore + 1); } if (intScore < 10) { strVerdict = "weak"; } else if (intScore >= 10 && intScore < 15) { strVerdict = "mediocre"; } else { strVerdict = "strong"; } System.out.println(strVerdict + " - " + intScore + "\n" + strLog); // Does it meet the password policy? try {
69
int min = Integer.parseInt(PASSWORD_MIN_LENGTH); if (length < min) { return "gagal"; } } catch (Exception e) { } // undefined try { int max = Integer.parseInt(PASSWORD_MAX_LENGTH); if (length > max) { return "gagal"; } } catch (Exception e) { } return strVerdict; }
Penjelasan potongan listing di atas:
Dalam pengecekan kekuatan password dipengaruhi oleh
beberapa faktor yaitu panjang password, karakter huruf, karakter angka dan
karakter yang sama.
4.1.4.1.3. Lupa Password
Apabila mahasiswa lupa password, maka akan diberi password
baru. Dengan cara mengisikan data jawaban dari pertanyaan rahasia yang
telah dipilih pada waktu registrasi. Berikut ini adalah potongan listing untuk
mengecek data jawaban mahasiswa:
String pertanyaan = lblPertanyaan.getText(); String sql = "select Jawaban from account_email where NIM like '" + nim + "'"; Statement stmt = sambung.createStatement(); ResultSet rs = stmt.executeQuery(sql); rs.first(); String jawaban = rs.getString("Jawaban"); System.out.print(jawaban); stmt.close(); if (txtJawaban.getText().equalsIgnoreCase(jawaban)) { this.setVisible(false); lupaPass3 baru = new lupaPass3(nim,email); baru.setVisible(true); } else { JOptionPane.showMessageDialog(rootPane, "jawaban anda salah"); }
70
4.1.4.2. Menu Admin
4.1.4.2.1. Lihat Data
Admin dapat melihat data mahasiswa yang sudah melakukan
registrasi. Data yang dapat dilihat admin adalah data NIM, Nama, Alamat,
Telepon, Alternative_email, dan Username.
String sql = "select NIM, Nama, Alamat_asal, Telepon, Alternative_email, Username" + " from account_email"; ResultSet rs = (ResultSet) st.executeQuery(sql); ResultSetMetaData rsmd; rsmd = (ResultSetMetaData) rs.getMetaData(); int kolom = 0; int baris = 0; int j = 0; kolom = rsmd.getColumnCount(); rs.last(); baris = rs.getRow(); String[] Judul_kolom = new String[kolom]; Object[][] data = new Object[baris][kolom]; for (int i = 1; i <= kolom; i++) { Judul_kolom[i - 1] = rsmd.getColumnLabel(i); } rs.beforeFirst(); while (rs.next()) { if (j <= baris) { for (int i = 1; i <= kolom; i++) { data[j][i - 1] = rs.getString(i); } j++; } } tblData.setModel(new javax.swing.table.DefaultTableModel(data, Judul_kolom)); tblData.setPreferredSize(new java.awt.Dimension(1600, 16 * baris));
71
4.2. Antarmuka Pengguna Sistem
4.2.1. Halaman Login
Gambar 34. Halaman Login
Gambar 34 merupakan halaman Login. Apabila User memilih
mahasiswa maka field Password tidak muncul, namun apabila user admin
maka field password akan muncul.
72
4.2.2. Menu Mahasiswa
Gambar 35. Halaman Menu Mahasiswa
Pada halaman Menu Mahasiswa terdapat 5 menu yaitu Registrasi, Ubah
Password, Lupa Password, Petunjuk dan Keluar.
73
4.2.2.1. Halaman Registrasi
Gambar 36. Halaman Registrasi
Gambar 36 merupakan halaman untuk melakukan registrasi account email
Mahasiswa. Mahasiswa mengisikan data NIM kemudian secara otomatis
data Nama Lengkap dan Alamat_asal akan muncul, sistem akan mengambil
dari database tabel Mahasiswa.
Sebelum melakukan proses penambahan dilakukan pengecekan
apakah data NIM tersebut sudah pernah melakukan registrasi atau belum.
74
Jika NIM tersebut sudah pernah melakukan registrasi maka akan
ditampilkan pesan seperti berikut:
Gambar 37. Pesan Eror Data Sama
Apabila semua data registrasi tersebut telah diisi semua, kemudian klik
button Buat Account Baru maka akan muncul Halaman
Registrasi(langkah2) pada gambar 38.
75
Gambar 38. Halaman Registrasi(langkah 2)
Gambar 38 merupakan halaman registrasi(langkah 2) berisi data-data yang
sudah dimasukkan pada halaman registrasi. Dan pada halaman ini
ditampilkan hasil registrasi account. Yaitu mahasiswa mendapatkan
Username dan Password untuk masuk ke http://student.usd.ac.id.
Gambar 39 merupakan tampilan setelah sukses melakukan
proses registrasi email mahasiswa.
76
Gambar 39. Pesan Berhasil Melakukan Registrasi Account Email.
Gambar 40 merupakan pesan berhasil melakukan kirim email
apabila komputer berkoneksi dengan internet.
Gambar 40. Pesan Berhasil Melakukan Kirim Email.
Gambar 41 merupakan tampilan hasil print account email
mahasiswa.
Gambar 41. Tampilan Hasil Print Account Email Mahasiswa.
77
Berdasarkan gambar di atas yaitu mahasiswa dengan Nama
Bhernadet Megaria mendapatkan Username [email protected] dan
mendapatkan password 36yzbh415x. Data password tersebut dienkripsi
menggunakan algoritma H-Playfair sebagai berikut:
Gambar 42. Kunci Algoritma H-Playfair.
Proses enkripsi password tersebut adalah:
Plainteks :
Chiperteks1:
Kunci :
Chiperteks2 :
36 yz bh 41 5x
jb cv sp 2j a9
do an k5 er sb
rj yg 0q cp iw
D O A N K
E R S B T
G L I U M
Y Q H P C
V W X F Z
5
6
7
8
9
0 1 2 3 4 J
78
Gambar di bawah ini merupakan hasil penyimpanan password yang sudah
terenkripsi.
Gambar 43. Tampilan Database account email mahasiswa.
4.2.2.2. Halaman Ubah Password
Gambar 44. Halaman Ubah Password
Berikut ini merpakan tampilan pesan apabila data password
lama, password baru dan konfirmasi password baru sesuai.
79
Gambar 45. Konfirmasi Ubah Password
Dalam mengubah password juga mengirimkan perubahan
password melalui email ke alternative email dan print hasil ubah password.
Proses dalam melakukan ubah password yaitu mendekripsi password lama,
kemudian mengenkripsi password baru.
4.2.2.3. Halaman Lupa Password
Gambar 46. Halaman Lupa Password(langkah 1)
80
Gambar 46 merupakan halaman lupa password. Mahasiswa memasukkan
NIM kemudian akan muncul Nama, Email dan Alternative Email.
Mahasiswa dapat mengubah alamat alternative email yang digunakan untuk
mengirimkan password baru apabila alamat alternative email tersebut telah
berubah. Kemudian klik button Lanjut maka halaman lupa
password(langkah 2) akan terbuka.
Gambar 47. Halaman Lupa Password(langkah 2)
Gambar 47 adalah halaman lupa password(langkah 2) yang meminta
mahasiswa untuk mengisikan pertanyaan rahasia pada saat registrasi.
Apabila data jawaban benar maka halaman lupa password(langkah 3)
muncul, namun apabila mahasiswa lupa data jawaban maka harus
konfirmasi ke petugas Admin untuk reset pasword.
81
Gambar 48. Halaman Lupa Password(langkah 3)
82
4.2.2.4. Halaman Petunjuk Mahasiswa
Gambar 49. Halaman Petunjuk Mahasiswa
83
4.2.3. Menu Admin
Gambar 50. Halaman Menu Admin
Gambar 50 merupakan tampilan menu utama Admin. Terdapat 5
menu yaitu Lihat Data Account Email Mahasiswa, Reset Password, Hapus
Data, Petunjuk dan Keluar.
84
4.2.3.1. Halaman Lihat Data
Gambar 51. Halaman Lihat Data
Gambar 51 di atas merupakan halaman lihat data email account
email mahasiswa. Data yang boleh dilihat oleh admin adalah data NIM,
Nama, Alamat, Telepon, Alternative email, dan Username.
85
4.2.3.2. Halaman Reset Password
Gambar 52. Halaman Reset Password
Gambar 52 merupakan halaman reset Password mahasiswa oleh
admin. Admin memasukkan data NIM mahasiswa yang akan reset
password, kemudian akan muncul data Nama, Email, dan Alternative email.
Apabila data benar maka klik button Lanjut, dan akan muncul halaman
Reset Password(langkah 2)
86
Gambar 53. Halaman Reset Password(langkah 2)
Gambar 53 merupakan halaman Reset Password langkah 2,
setelah admin menekan button OK kemudian sistem mencetak hasil print
data account mahasiswa yang baru dan akan mengirim email ke alternative
email dan ke email admin.
87
4.2.3.3. Halaman Hapus Data
Gambar 54. Halaman Hapus Data
Gambar 54 merupakan halaman hapus data account email
mahasiwa yang sudah tidak mempunyai hak untuk email mahasiswa. Admin
memasukkan data NIM kemudian muncul Nama dan email apabila data
benar maka menekan button hapus dan akan muncul konfirmasi dahulu.
4.3. Analisa Serangan Terhadap H-Playfair
1. Exhaustive attack atau brute force attack.
Serangan ini adalah mencoba semua kemungkinan kunci. Setiap
plainteks yang diketahui dienkripsi dengan kunci terkaan untuk
dicocokkan dengan cipherteks pasangannya. Kunci masukkan untuk
algoritma kriptografi H-Playfair memiliki panjang 36 karakter. Oleh
88
karena itu, serangan ini mencoba kunci sebanyak 36! Untuk
mendapatkan posisi-posisi yang cocok untuk huruf (a,b,c,d,…,z) dan
angka (0,1,2,3,…,9).
2. Ciphertext-only attack
Penaksiran tidak berguna dilakukan karena plainteks selanjutnya sulit
dipecahkan tidak bisa ditentukan hanya dari cipherteks yang diketahui.
3. Known-plaintext attack
Prinsip known-plaintext attack adalah menerka plainteks dari pasangan
cipherteksnya yang bersesuaian akibat pesan yang memiliki format
yang terstruktur. H-Playfair mencegah kemungkinan ini karena pada H-
Playfair, untuk kata-kata yang sama berkemungkinan kecil mempunyai
cipherteks yang sama pula, teratasi pada tahap dua enkripsi H-Playfair.
Penduga bisa saja menduga suatu kata pada pesan yang terstruktur,
tetapi dugaan itu hanya sebatas beberapa kata dan itupun hanya berupa
terkaan yang sulit untuk dibuktikan.
4. Chosen-plaintext attack
Sama halnya dengan ciphertext-only attack, serangan ini tidak mampu
mematahkan algoritma kriptografi H-Playfair. H-Playfair tidak
menyebabkan adanya korelasi antara cipherteks dan plainteks.
5. Adaptive-chosen-plaintext attack
Serangan ini merupakan kasus khusus untuk serangan chosen-plainteks
attack sehingga serangan ini pun sulit melumpuhkan H-Playfair.
6. Chosen-ciphertext attack
89
Jika cipherteks diketahui, maka plainteks yang telah dienkripsi oleh H-
Playfair tetap sulit dicari. Jenis serangan ini tidak cocok untuk
algoritma H-Playfair karena kunci pun tidak bersifat public.
7. Teknik distribusi frekuensi pasangan huruf
Dengan bantuan komputer, frekuensi pasangan huruf hasil enkripsi
algoritma kriptografi H-Playfair adalah sebagai berikut (yang
ditampilkan adalah frekuensi pasangan yang memiliki distribusi
tertinggi).
4.4. Analisa Hasil
Setelah mengimplementasikan metode enkripsi dan dekripsi H-
Playfair ke dalam Sistem Account Email Mahasiswa, secara umum program
dapat berjalan dengan baik. Program enkripsi dan dekripsi dapat melakukan
enkripsi dan dekripsi data password account email mahasiswa dengan cepat.
Dengan melakukan enkripsi password account email dapat meningkatkan
keamanan data password karena H-Playfair memenuhi prinsip Shannon
yaitu confusion (membingungkan) dan diffusion (menyebar) :
1. Confusion (membingungkan)
Contoh password email mahasiswa : passaku09
Cipherteks : c5szcmtdlapz
Password passaku09 setelah dienkripsi maka cipherteksnya
adalah c5szcmtdlapz. Huruf ‘a’ pertama menjadi angka ‘5’, dan huruf
‘a’ kedua menjadi huruf ‘d’. Huruf a tidak selalu berasosiasi dengan
90
huruf yang sama. Begitu pula untuk pasangan huruf, pasangan huruf
yang sama belum tentu menghasilkan pasangan huruf cipherteks yang
sama.
Password passaku09 terdiri terdari 9 karakter, sedangkan
cipherteks terdiri dari 12 karakter. Cipherteks yang dihasilkan belum
tentu mempunyai panjang karakter yang sama dengan plainteks. Hal ini
juga dapat menyembunyikan hubungan apapun yang ada antara
plainteks, cipherteks, dan kunci. Prinsip confusion dapat terpenuhi
karena pada H-Playfair dilakukan enkripsi dua tahap yaitu :
• Tahap pertama : enkripsi playfair bujursangkar 6x6. Tahap ini yang
masih bisa dipecahkan dengan teknik frekuensi kemunculan
pasangan huruf.
• Tahap kedua : enkripsi jarak bujursangkar 6x6. Pada tahap ini
penambahan huruf kunci dengan huruf plainteks kedua (hasil
enkripsi tahap pertama H-Playfair) bergantung pada posisi huruf-
huruf pada kotak kunci 6x6. Tahap kedua tidak bisa dipecahkan
dengan metode kasiski karena kunci tidak diulang. Tahap kedua H-
Playfair memiliki mekanisme substitusi tidak biasa sehingga perlu
diketahui posisi-posisi huruf kunci pada kotak 6x6 untuk
memecahkan cipherteks.
2. Diffusion (menyebar)
Contoh password email mahasiswa 1 : passaku09
Cipherteks : c5szcmtdlapz
91
Contoh password email mahasiswa 2: pasdaku09
Cipherteks : c54knod8wv4z
Pada contoh di atas terdapat 2 contoh password yaitu passaku09
dan pasdaku09, kedua password tersebut hanya berbeda pada 1 karakter
tetapi pengubahan satu karakter plainteks dapat menyebabkan
perubahan semua karakter cipherteks setelahnya. Hal tersebut dapat
terjadi karena pada tahap dua H-Playfair yaitu enkripsi jarak
bujursangkar 6x6 dilakukan substitusi tanpa kunci berulang lalu
substitusi selanjutnya (untuk plainteks yang lebih panjang dari panjang
kunci) berdasarkan cipherteks hasil enkripsi tahap pertama sehingga
statistik kemunculan huruf/karakter dan statistik hubungan plainteks
dan cipherteks menjadi sulit diprediksikan.
Berdasarkan prinsip Shannon yang dipenuhi oleh algoritma H-
Playfair tersebut dapat disimpulkan bahwa algoritma kriptografi H-Playfair
merupakan algoritma klasik namun cukup aman digunakan untuk
mengamankan data password.
Sistem Account Email Mahasiswa ini juga dapat membantu
mahasiswa dalam pembuatan account email mahasiswa, membantu apabila
terjadi lupa password. Sistem ini dapat melengkapi Sistem Email
Mahasiswa Universitas Sanata Dharma yang belum memiliki fasilitas
Registrasi.
Adapun kelebihan dan kekurangan program ini adalah sebagai
berikut:
92
4.4.1. Kelebihan Sistem
Kelebihan dari program aplikasi ini adalah sebagai berikut :
1. Aplikasi ini dapat meminimalkan kesalahan yang disebabkan oleh user
karena adanya error handling pada sistem. Misalnya kesalahan
memasukkan data telepon menggunakan huruf dan lain sebagainya.
2. Mengirimkan data account email mahasiswa melalui email ke email
alternative mahasiswa dan email BAPSI.
3. Mengamankan data password account email mahasiswa di database
dengan enkripsi menggunakan algoritma H-Playfair.
4. Dapat mengetahui kekuatan password, apabila mahasiswa ingin
mengubah password. Mahasiswa dapat mengetahui kekuatan password
barunya apakah weak(lemah), mediocre(sedang) atau strong(kuat)
berdasarkan keacakan karakter antara huruf dan angka.
4.4.2. Kekurangan Sistem
Adapun kekurangan pada aplikasi ini adalah :
1. Database pada sistem ini belum terhubung pada database Sistem Email
Mahasiswa Sanata Dharma sehingga masih membutuhkan admin untuk
mengubah secara manual setiap terjadi perubahan data email mahasiswa.
2. Dalam pengiriman pemberitahuan via email. Data password account
email mahasiswa terkirim tanpa proses enkripsi.
93
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil analisis, desain dan implementasi sistem ini
maka dapat disimpulkan bahwa:
1. Algoritma kriptografi H-Playfair merupakan algoritma klasik namun
cukup aman digunakan untuk mengamankan data password.
Dikarenakan data password yang tersimpan dalam database dapat
menyembunyikan hubungan apapun yang ada antara plainteks,
cipherteks, dan kunci.
2. Sistem ini mempermudahkan dalam melakukan registrasi karena dapat
melengkapi sistem Email Student Sanata Dharma dalam melakukan
registrasi juga membantu membuat password awal yang acak dan kuat
karena password acak huruf dan angka.
3. Sistem ini membantu mahasiswa dalam mengubah password dengan
mengetahui kekuatan password.
5.2. Saran
Saran untuk pengembangan aplikasi yang akan datang adalah
sebagai berikut:
94
1. Database yang digunakan pada sistem ini tersambung dengan database
Sistem Email Mahasiswa. Sehingga Admin tidak perlu mengubah secara
manual dan keamanan password lebih terjamin karena Admin tidak
mengetahui password account email yang dimiliki mahasiswa.
2. Dalam mengirimkan data account email mahasiswa melalui email ke
alternative email dan ke email admin sebaiknya juga dienkripsi.
3. Sistem ini bisa diakses lewat jaringan internet untuk memudahkan
mahasiswa sehingga tidak perlu setiap ganti password ke Sekretariat
BAPSI.
95
DAFTAR PUSTAKA
Ariyus, Dony, Pengantar Ilmu Kriptografi, Andi Offset, 2008
Kadir, Abdul, Dasar Pemrograman Java 2, Andi Offset, 2004
Schneir, B, Applied Cryptography, John Wiley & Sons, Inc., Canada, 1994
______,(2007).H-Playfair Page.[online].(http://www.informatika.org/~rinaldi/Buku/Kriptografi/Bab-
1_Pengantar%20Kriptografi.pdf, diakses tanggal 27 September 2008)