Hasil Observasi Aplikasi Acrypt cs Fase Konstruksi

Direktur Utama Andi Muhammad AR Direktur Operasional H. Ahmad AR Direktur Keuangan Inah Roinah Direktur Pemasaran Alfian Kabag Produksi Ichram Masrul Kabag Kreatif Anwar Rosandi Kabag Keuangan Nani Rustini Manajer Pemasaran Iwan Pegawai Pegawai Pegawai Pegawai Gambar 4.1. Struktur Organisasi CV Maharta Mandiri Promo Sumber : Company Profile CV Maharta Mandiri Promo

4.2. Hasil Observasi

Observasi yang dilaksanakan selama bulan Juli 2009 di Kantor CV Maharta Mandiri Promo memberikan kesimpulan bahwa data yang tersimpan di komputer yang terhubung dalam jaringan LAN Local Area Network CV Maharta Mandiri Promo tidak aman dari pencurian data. Karena data yang dicuri dapat langsung dimanfaatkan oleh pihak yang tidak berhak seperti yang pernah terjadi sebelumnya. Oleh karena itu diperlukan suatu aplikasi enkripsi yang dapat melindungi data-data penting perusahaan dari pihak yang tidak bertanggung jawab.

4.3. Aplikasi Acrypt cs

Aplikasi acrypt cs Aplikasi Enkripsi berbasis Client Server adalah sebuah aplikasi keamanan data berbasis client server yang 59 menggunakan metode Advance Encryption Standard dan Rivest Shamir Adleman. Aplikasi ini diharapkan dapat membantu anda dalam menjaga data-data penting dari pengaksesan orang-orang yang tidak berhak.

4.4. Fase Perencanaan Syarat-syarat

4.4.1. Analisis Kebutuhan Masalah

Aplikasi keamanan data yang akan dibuat seperti yang telah dianalisis pada subbab 3.2.1 adalah aplikasi enkripsi dan dekripsi berbasis web yang mudah digunakan menggunakan metode kriptografi Advance Encryption Standard dan Rivest Shamir Adleman.

4.4.2. Tujuan

Seperti yang telah dijelaskan pada subbab 3.2.2 peneliti bertujuan untuk membuat suatu aplikasi enkripsi yang mengimplementasikan metode enkripsi dan dekripsi Advance Encryption Standard dan Rivest Shamir Adleman, dan juga pembangkitan pasangan kunci publik dan kunci privat Rivest Shamir Adleman sehingga dapat menjaga kerahasiaan data di CV Maharta Mandiri Promo. 60

4.4.3. Syarat-syarat

Untuk mewujudkan tujuan tersebut digunakan beberapa syarat dalam pembuatan aplikasi keamanan data ini yaitu meliputi hal-hal sebagai berikut : a. Web server Dalam pengembangan aplikasi ini digunakan Web Server Apache 2.2.8. yang tergabung dalam paket xampp 1.6.6a. b. Bahasa Pemrograman Bahasa pemrograman yang digunakan untuk membangun aplikasi ini adalah PHP 5.2.5. Interpreter PHP telah ada dalam paket xampp 1.6.6a. Dalam penulisan kode, peneliti memakai editor teks editplus 2.12. c. Database Database yang digunakan dalam aplikasi ini adalah database MySQL 5.0.51a yang ada dalam paket xampp 1.6.6a. Untuk pembuatan database, digunakan editor phpMyAdmin.

4.5. Fase Perancangan

Workshop Design Pada tahap ini dilakukan perancangan, evaluasi dan memperbaiki sistem sesuai dengan kebutuhan agar sistem yang sedang dibuat dapat dimanfaatkan secara optimal. 61

4.5.1. Perancangan Proses

1. Diagram konteks sistem yang diusulkan user username, password, public key, private key public key, private key user file filename1, filename2, sender_id, receiver_id aplikasi acryptcs file filename1, filename2, sender_id, receiver_id Gambar 4.2. Diagram konteks sistem yang diusulkan Dalam konteks diagram pada gambar 4.2 terdapat dua entity yang menunjang proses aplikasi acrypt cs yaitu user dan file. 2. Diagram zero sistem yang diusulkan user username, password 1.0 login private key file password, public key filename1, sender, receiver 2.0 enkripsi filename2, sender, receiver filename2, sender, receiver file 3.0 dekripsi filename1, sender, receiver Gambar 4.3. Diagram zero sistem yang diusulkan 62 3. Diagram level satu sistem yang diusulkan user username, password 1.1 cek database username, password 1.2 buat session Gambar 4.4. Diagram level satu proses 1.0 login user password, public key, jumlah file 2.2 2.1 cek file password enkripsi AES file filename1, sender, receiver 2.3 enkripsi RSA public key filename2, sender, receiver file Gambar 4.5. Diagram level satu proses 2.0 enkripsi user private key, jumlah file 3.1 cek file private key 3.2 dekripsi RSA file filename2 3.3 dekripsi AES password filename1 file Gambar 4.6. Diagram level satu proses 3.0 dekripsi 63

4.5.2. Perancangan

Flowchart Pada tahap ini dilakukan perancangan flowchart algoritma aplikasi enkripsi. Pada tahapan ini akan digambarkan alur proses enkripsi dan dekripsi pada program yang dikembangkan dengan menggunakan flowchart. 64 1. Flowchart proses enkripsi start Input jumlah file Input file Cek file File salahkosong ? true false Input kunci AES Pilih penerima i=0, jml file = file tdk kosong Panggil modul enkripsi AES 1 2 Panggil modul enkripsi RSA 3 4 Update database i++ true i jml file? false Tampilkan hasil enkripsi stop Gambar 4.7. Flowchart proses enkripsi 65 Berdasarkan gambar 4.7, proses enkripsi dimulai dengan memasukkan jumlah file yang akan dienkripsi. Setelah itu, user memasukkan file yang akan dienkripsi. Kemudian data file akan ditampilkan sementara. Jika file salah, maka user harus memasukkan kembali file yang akan dienkripsi. Jika semua file yang dipilih sudah pernah dienkripsi sebelumnya dengan nama file yang masih sama, maka user harus memasukkan kembali file yang akan dienkripsi. Selanjutnya user harus memasukkan string yang akan digunakan sebagai kunci untuk enkripsi file. String dapat berupa karakter apapun dengan panjang maksimal 20 karakter. Kemudian user memilih penerima pesan secara tidak langsung memasukkan kunci publik penerima. Setelah itu proses enkripsi dimulai. Proses memanggil fungsi enkripsi Advance Encryption Standard untuk enkripsi file, kemudian memanggil fungsi enkripsi Rivest Shamir Adleman untuk enkripsi password. Sesudah selesai, proses memasukkan data file ke dalam database. Proses enkripsi dilakukan sebanyak jumlah file yang terisi tidak kosong. Setelah proses enkripsi selesai, data file terenkripsi ditampilkan. 66 2. Flowchart enkripsi Advance Encryption Standard 1 Baca file r = 10 AddRoundKey SubBytes ShiftRows true r = 1 ? false MixColumns Panggil modul ekspansi kunci 5 6 AddRoundKey r - 1 r = 0 ? false true 2 Gambar 4.8. Flowchart proses enkripsi dengan metode Advance Encryption Standard Sumber : Munir, 2006 67 Proses enkripsi dengan metode Advance Encryption Standard seperti ditunjukkan pada gambar 4.8, dimulai dengan membaca file. Didefinisikan bahwa jumlah round adalah sepuluh. Proses melakukan fungsi AddRoundKey terhadap data dengan round key awal. Selanjutnya proses berlanjut dengan round-1 putaran dengan memanggil fungsi SubBytes , ShiftRows , MixColumns , KeyExpansion, dan AddRoundKey. Setelah selesai, putaran terakhir dilakukan dengan memanggil fungsi SubBytes , ShiftRows, KeyExpansion, dan AddRoundKey. Setelah itu proses enkripsi Advance Encryption Standard Selesai. 68 3. Flowchart enkripsi Rivest Shamir Adleman 3 plainteks M, n, e Transformasi M m m n - 1 false m dibagi menjadi blok-blok true c = m e mod n cipherteks c c n - 1 false c disatukan menjadi kesatuan bilangan integer true cipherteks c Transformasi c C cipherteks C 4 Gambar 4.9. Flowchart proses enkripsi dengan metode Rivest Shamir Adleman Sumber : Munir : 2006 Berdasarkan gambar 4.9, enkripsi dengan metode Rivest Shamir Adleman dimulai dengan inisialisasi plainteksM, np x q, dan kunci publike. Plainteks dalam hal ini password, ditransformasi ke dalam angka m. Selanjutnya, jika m lebih 69 besar dari n dikurang 1, m dibagi menjadi blok-blok. Selanjutnya dilakukan penghitungan cipherteks c dengan rumus c = m e mod n. Jika c lebih besar dari n dikurang1, c disatukan menjadi kesatuan bilangan integer. Selanjutnya dilakukan transformasi cipherteks c menjadi C. 70 4. Flowchart proses dekripsi start Pilih file Cek file sementara File benar? false true Input kunci private Kunci valid? false true i=0, n = jml file, jml file10, n=10 Panggil modul dekripsi RSA 7 8 Panggil modul dekripsi AES 9 10 i++ true i n ? false Tampilkan hasil dekripsi stop Gambar 4.10. Flowchart proses dekripsi 71 Untuk proses dekripsi, sesuai dengan gambar 4.10, dekripsi dimulai dengan memilih file yang akan didekripsi. Lalu menampilkan sementara file-file yang akan didekripsi. Jika file benar, masukkan kunci privat. Setelah itu periksa apakah kunci privat valid atau tidak. Jika kunci privat tidak valid, masukkan lagi kunci privat. Jika valid, proses dekripsi berjalan. Dimulai dengan menginisialisasi i=0, njumlah file, jika jumlah file lebih dari 10, maka n=10. Selanjutnya selama i kurang dari n, proses memanggil modul dekripsi Rivest Shamir Adleman, setelah itu memanggil modul dekripsi Advance Encryption Standard. Setelah proses dekripsi selesai, file-file hasil dekripsi ditampilkan. 72 5. Flowchart dekripsi Advance Encryption Standard 9 Baca file r = 10 AddRoundKey r = 10? true false Inv MixColumns Inv SubBytes Inv ShiftRows Panggil modul ekspansi kunci 5 6 AddRoundKey r -1 false r = 0 ? true 10 Gambar 4.11. Flowchart proses dekripsi dengan metode Advance Encryption Standard Sumber : Munir, 2006 Proses dekripsi dengan metode Advance Encryption Standard seperti ditunjukkan pada gambar 4.11, dimulai dengan membaca file. Didefinisikan bahwa jumlah round adalah sepuluh. Proses 73 melakukan fungsi AddRoundKey terhadap data dengan round key awal. Selanjutnya proses berlanjut selama round-1 putaran dengan memanggil fungsi InvMixColumns, InvSubBytes, InvShiftRows , KeyExpansion, dan AddRoundKey. Setelah selesai, putaran terakhir dilakukan dengan memanggil fungsi InvSubBytes , InvShiftRows , KeyExpansion , dan AddRoundKey . Setelah itu proses dekripsi Advance Encryption Standard Selesai. 74 c 6. Flowchart dekripsi Rivest Shamir Adleman 7 cipherteks C, n, d Transformasi C c c n - 1 false c dibagi menjadi blok-blok true m = d mod n plainteks m m n - 1 false m disatukan menjadi kesatuan bilangan integer true plainteks m Transformasi m M plainteks M 8 Gambar 4.12. Flowchart proses dekripsi dengan metode Rivest Shamir Adleman Sumber : Munir, 2006 Berdasarkan gambar 4.12, dekripsi dengan metode Rivest Shamir Adleman dimulai dengan inisialisasi cipherteksC, np x q, dan kunci privat d. Cipherteks ditransformasi ke dalam angka c. Selanjutnya, jika c lebih besar dari n dikurang 1, c 75 dibagi menjadi blok-blok. Selanjutnya dilakukan penghitungan plainteks m dengan rumus m = c d mod n. Jika m lebih dari n dikurang1, m disatukan menjadi kesatuan bilangan integer. Selanjutnya dilakukan transformasi plainteks m menjadi M.

4.5.3. Perancangan Basis Data

Pada pengembangan aplikasi acrypt cs ini digunakan database sebagai pelengkap program seperti proses login dan proses penamaan dan penyimpanan file enkripsi. Database yang digunakan adalah database MySQL. 1. Struktur Entity Relationship Diagram ERD user mengenkripsi mendekripsi plainteks menjadi cipherteks Gambar 4.13. Struktur Entity Relationship Diagram 2. Normalisasi a. Relasi User_Plainteks UnNormalized Form Bentuk Tidak Normal id_user username fullname password public_key private_key sec_question sec_answer id_plainteks plain_name plain_size 1 st Normal Form Bentuk Normal Pertama 76 id_user username fullname password public_key private_key sec_question sec_answer id_plainteks plain_name plain_size 2 nd Normal Form Bentuk Normal Kedua id_user username fullname password public_key private_key sec_question sec_answer id_plainteks plain_name plain_size id_outbox id_plainteks id_user b. Relasi User_Cipherteks UnNormalized Form Bentuk Tidak Normal id_user username fullname password public_key private_key sec_question sec_answer id_cipherteks cipher_name cipher_size aes_key iv 1 st Normal Form Bentuk Normal Pertama id_user username fullname password public_key private_key sec_question sec_answer id_cipherteks cipher_name cipher_size aes_key iv 2 nd Normal Form Bentuk Normal Kedua id_user username fullname password public_key private_key sec_question sec_answer id_cipherteks cipher_name cipher_size aes_key iv id_inbox id_cipherteks id_user c. Relasi Plainteks_Cipherteks UnNormalized Form Bentuk Tidak Normal id_plainteks plain_name plain_size id_cipherteks cipher_name cipher_size aes_key iv 77 1st Normal Form Bentuk Normal Pertama id_plainteks plain_name plain_size id_cipherteks cipher_name cipher_size aes_key iv 2nd Normal Form Bentuk Normal Kedua Karena satu plainteks pasti menjadi satu cipherteks, maka tabel dapat digabungkan menjadi satu tabel. Maka semua field id_cipherteks dan id_plainteks akan digabungkan menjadi id_file. id_file plain_name plain_size cipher_name cipher_size aes_key iv 3. Logical Record Structure Gambar 4.14. Logical Record Structure LRS 4. Spesifikasi Tabel Nama Database : acryptcs 1. Nama Tabel : user Primary Key : id_user Foreign Key : - 78 Tipe File : File Master field type attributes extra id_user int11 unsigned auto_increment username varchar30 fullname varchar50 password varchar50 public_key varchar20 private_key varchar20 sec_question varchar50 sec_answer varchar20 2. Nama Tabel : file Primary Key : id_file Foreign Key : - Tipe File : File Master field type attributes extra id_file int11 unsigned auto_increment plain_name varchar100 plain_size varchar20 cipher_name varchar100 cipher_size varchar20 aes_key varchar50 iv varchar20 date varchar27 3. Nama Tabel : inbox Primary Key : id_inbox Foreign Key : id_file, id_user Tipe File : File Master field type attributes extra 79 id_inbox int11 unsigned auto_increment id_file int11 id_user int11 4. Nama Tabel : outbox Primary Key : id_outbox Foreign Key : id_file, id_user Tipe File : File Master field type attributes extra id_outbox int11 unsigned auto_increment id_file int11 id_user int11

4.5.4. Perancangan Antarmuka

Dalam perancangan antarmuka aplikasi keamanan data yang berbasis client server ini, dibuat beberapa form yang akan ditampilkan. 1. Perancangan Halaman Login Halaman login merupakan tampilan untuk login. Pengguna telah terdaftar diharuskan untuk mengisikan username dan password. 80 Logo acrypt cs Please login image username : password : enter sign up image footer Gambar 4.15. Rancangan halaman login Apabila pengguna belum terdaftar, dapat mendaftar terlebih dahulu dengan mengklik tombol “sign up”. Hal ini mencegah aplikasi agar tidak diakses oleh sembarang orang. 81 sign up clear Logo acrypt cs Sign up image Fullname : username : password : confirm password : security question question : answer : image enter word above : login footer Gambar 4.16. Rancangan halaman sign up 2. Perancangan Halaman Utama Home Halaman Home merupakan tampilan utama yang di dalamnya terdapat sembilan link utama yang masing- masing mempunyai fungsi sebagai berikut : 1. Encrypt : menampilkan halaman enkripsi. 2. Decrypt : menampilkan halaman dekripsi. 3. Inbox : menampilkan halaman kotak masuk. 4. Outbox : menampilkan halaman kotak keluar. 82 5. My key : menampilkan halaman untuk melihat kunci privat dan mengubah pasangan kunci. Halaman ini dilindungi dengan pertanyaan pengaman yang dibuat saat sign up. 6. Change password : menampilkan halaman untuk mengubah password login. 7. About : menampilkan halaman profil pembuat aplikasi. 8. Help : menampilkan halaman bantuan aplikasi. 9. Logout : keluar dari account. Logo acrypt cs Keterangan inbox baru Keterangan menu saat mouseover Keterangan menu saat mouseover Menu utama footer Gambar 4.17. Rancangan halaman utama 83 3. Perancangan Halaman Encrypt Halaman enkripsi akan muncul jika user memilih menu “encrypt” pada halaman utama. Terdapat enam halaman dalam rancangan halaman encrypt, yaitu: a. Rancangan halaman input jumlah file Halaman input jumlah file merupakan halaman awal dari proses enkripsi. User memilih jumlah file yang akan dienkripsi pada halaman ini. Logo acrypt cs encryption Number of file : Combo box enter cancel footer Gambar 4.18. Rancangan halaman input file enkripsi b. Rancangan halaman input file Halaman input file merupakan halaman kedua dari proses enkripsi. Terdapat input file yang akan dienkripsi. Halaman menyediakan input file sebanyak 5 file. User dapat memilih file dengan mengklik tombol browse. Untuk menghindari 84 kesalahan, user tidak dapat mengetikkan sendiri file yang akan dienkripsi. Logo acrypt cs encryption File 1 : enter : : Browse.. File n : enter Browse.. next clear all cancel footer Gambar 4.19. Rancangan halaman input file enkripsi c. Halaman cek file Halaman ini menampilkan sementara file-file yang akan dienkripsi. 85 Logo acrypt cs encryption File 1 File name : File type : File size : Status : : : : File n File name : File type : File size : Status : next cancel footer Gambar 4.20. Rancangan halaman cek file d. Halaman input password. Halaman ini meminta user untuk memasukkan password berupa string yang akan digunakan untuk enkripsi file pada halaman sebelumnya. 86 Logo acrypt cs encryption input string for AES password encryption : next cancel footer Gambar 4.21. Rancangan halaman input password e. Halaman pilih tujuan penerima. Sebenarnya halaman ini meminta user untuk memasukkan kunci publik penerima pesan. Tetapi untuk mencegah kesalahan input, aplikasi menyediakan form yang memudahkan user untuk memilih tujuan penerima pesan. Setelah button encrypt diklik, proses enkripsi akan dimulai. 87 Logo acrypt cs encryption Select receiver o Username 1 o Username 2 : : o Username n next cancel footer Gambar 4.22. Rancangan halaman pilih tujuan f. Halaman encryption complete Halaman ini muncul setelah proses enkripsi selesai. Halaman ini menginformasikan file hasil enkripsi, ukuran file, waktu enkripsi, dan user penerima. 88 Logo acrypt cs encryption Encryption complete for these file File 1 File name : File size : Process time : : : : File n File name : File size : Process time : finish footer Gambar 4.23. Rancangan halaman encryption complete 4. Perancangan Halaman Decrypt Halaman dekripsi akan muncul jika user memilih menu “decrypt” pada halaman utama. Terdapat lima halaman dalam rancangan halaman decrypt, yaitu: a. Rancangan halaman pilih file Halaman pilih file merupakan halaman awal dari proses dekripsi. Terdapat checkbox untuk memilih file yang akan didekripsi. User diizinkan memilih paling banyak 10 file. Jika user memilih lebih dari 89 10 file, maka file ke 11 dan seterusnya akan diabaikan. Logo acrypt cs decryption Record 1 Record 2 : : : : Record n decrypt cancel footer Gambar 4.24. Rancangan halaman pilih file b. Halaman cek file Halaman ini menampilkan sementara file-file yang akan didekripsi. 90 Logo acrypt cs decryption File 1 File name : File size : Sender : Date : : : : File n File name : File size : Sender : Date : next cancel footer Gambar 4.25. Rancangan halaman cek file c. Halaman input private key Halaman ini meminta user untuk memasukkan kunci private miliknya. Kunci private ini akan digunakan untuk dekripsi password pada file yang terenkripsi. Setelah button decrypt diklik, proses dekripsi akan dimulai. 91 Logo acrypt cs decryption Your private key: next clear cancel footer Gambar 4.26. Rancangan halaman input private key d. Halaman decryption complete. Halaman ini menginformasikan file hasil dekripsi, ukuran file, dan waktu dekripsi. 92 Logo acrypt cs decryption Decryption complete for these file File 1 File name : File size : Process time : : : : File n File name : File size : Process time : finish footer Gambar 4.27. Rancangan halaman decryption complete 5. Perancangan Halaman Inbox Halaman inbox akan muncul jika user memilih menu “inbox” pada halaman utama. Halaman ini menampilkan semua file terenkripsi yang telah dikirimkan oleh user lain kepadanya. User dapat langsung mendekripsi file dari halaman ini. Tetapi user hanya dapat mendekripsi satu file pada satu waktu. User juga dapat menghapus file tersebut. 93 No Filename Filesize Sender Date Action Record 1 decrypt Logo acrypt cs inbox delete Record 2 decrypt delete : : : : Record n decrypt delete footer Gambar 4.28. Rancangan halaman inbox 6. Perancangan Halaman Outbox Halaman outbox akan muncul jika user memilih menu “outbox” pada halaman utama. Halaman ini menampilkan semua file terenkripsi yang telah dikirimkan oleh user ini kepada user lain. User dapat menghapus file tersebut. 94 Logo acrypt cs outbox No Filename Filesize Receiver Date Action Record 1 delete Record 2 delete : : : : Record n delete footer Gambar 4.29. Rancangan halaman outbox 7. Perancangan Halaman My Key Halaman my key akan muncul jika user memilih menu “my key” pada halaman utama. Halaman ini memberi kesempatan user untuk melihat kunci privat jika user lupa dan merubah pasangan kuncinya. Halaman ini dilindungi pertanyaan pengaman yang dibuat saat sign up. Jika pertanyaan dijawab dengan benar, maka private key akan muncul dan memberikan link untuk mengubah pasangan kuncinya. Jika user memilih link tersebut, maka aplikasi akan langsung membangkitkan pasangan kunci publik dan kunci private jika inbox user dalam keadaan kosong. Jika inbox tidak kosong, maka user harus 95 menghapus dulu seluruh file yang ada di inbox-nya. User juga dapat merubah lagi pasangan kuncinya dengan me- refresh halaman ini. User harus langsung menyimpan kunci private yang telah ada. Logo acrypt cs My key image For security reason, you have to answer your security question to get your private key or change your key pair.. sequrity question your answer : answer enter clear cancel footer Gambar 4.30. Rancangan halaman my key security question Logo acrypt cs My key image your private key : new key Please safely keep your private key.. change my key footer Gambar 4.31. Rancangan halaman my key private key 96 Logo acrypt cs Change key image your key has been change refresh page for new key.. you have to save your private key : new key footer Gambar 4.32. Rancangan halaman generate key 8. Perancangan Halaman Change Password Halaman change password akan muncul jika user memilih menu “change password” di halaman utama. Halaman ini memberi kesempatan user untuk merubah password loginnya. 97 Logo acrypt cs Change password image current password : new password : confirm password : save clear footer Gambar 4.33. Rancangan halaman change password 9. Perancangan Halaman Help Halaman help akan muncul jika user memilih menu “help” pada halaman utama. Halaman ini menampilkan semua bantuan yang mungkin diperlukan oleh user. Termasuk sedikit materi tentang metode yang digunakan dalam aplikasi ini. 98 Logo acrypt cs help Singkat tentang acrypt cs Algoritma AES Algoritma RSA Link bantuan Gambar marquee footer Gambar 4.34. Rancangan halaman help 10. Perancangan Halaman About Halaman about akan muncul jika user memilih menu “about” pada halaman utama. Halaman ini menampilkan beberapa informasi tentang pembuat aplikasi. 99 Logo acrypt cs about foto Nama : zaenal muttaqin Nim : 2040 9100 2553 Jurusan : teknik informatika Fakultas : sains dan tekologi e-mail : jayker85gmail.com Ucapan terima kasih footer Gambar 4.35. Rancangan halaman about

4.5.5. State Transition Diagram

Berikut adalah gambaran State Transition Diagram-nya : 100 101 Gambar 4.36. State Transition Diagram Aplikasi Acrypt CS 102 Berdasarkan State Transition Diagram pada gambar 4.34, aplikasi acrypt cs dimulai dengan halaman login. User memasukkan username dan password yang telah terdaftar sebelumnya. Jika user belum terdaftar, user mengklik link signup dan menuliskan data pribadi user di form yang disediakan. Setelah signup selesai, user diberikan kunci privat yang harus disimpan oleh user untuk mendekripsi pesan yang dikirimkan kepadanya. Setelah user berhasil login, aplikasi menampilkan halaman utama yang berisi sembilan menu utama yaitu encryption, decryption, inbox, outbox, generate new key pair, change key, help about, dan logout. Jika user mengklik encryption, maka muncul halaman encryption yang meminta User memasukkan jumlah file yang akan dienkripsi. Jika user menekan next, tampil halaman input file yang akan dienkripsi. Jika user menekan back aplikasi akan kembali ke halaman input jumlah file. Jika user menekan next akan tampil halaman cek file yang menginformasikan tentang file yang akan dienkripsi. Jika user menekan next akan tampil halaman input password. Setelah memasukkan password, Jika user menekan next aplikasi akan melakukan enkripsi dan setelah selesai, menampilkan informasi file hasil enkripsi. Pada semua halaman enkripsi tersebut, Jika user menekan cancel aplikasi akan kembali ke halaman utama. 103 Jika user mengklik decryption, maka muncul halaman decryption yang meminta user memilih file yang akan didekripsi. User dapat memilih maksimal 10 file. Jika user memilih lebih dari 10 file, maka file setelah 10 terbawah akan diabaikan. Jika user menekan next akan tampil halaman cek file yang menginformasikan tentang file yang akan didekripsi. Jika user menekan next akan tampil halaman input private key. Setelah memasukkan private key, Jika user menekan next aplikasi akan melakukan dekripsi dan setelah selesai, menampilkan informasi file hasil dekripsi. Pada semua halaman dekripsi tersebut, Jika user menekan cancel aplikasi akan kembali ke halaman utama. Pada halaman hasil dekripsi, user harus menyimpan file yang telah didekripsi. Karena setelah user menekan tombol finish, file akan segera dihapus. Jika user menekan inbox, maka muncul halaman inbox yang menampilkan file terenkripsi yang dikirimkan kepadanya. User dapat langsung mendekripsi atau menghapus file yang ada dalam inbox-nya. Jika user menekan tombol decrypt, akan tampil halaman cek file yang menginformasikan sementara file yang akan didekrip. Jika user menekan next, muncul halaman input private key. Setelah itu, jika user menekan decrypt, dekripsi akan diproses. Setelah selesai, informasi file hasil dekripsi akan ditampilkan. Pada semua halaman inbox tersebut, Jika user menekan cancel aplikasi akan kembali ke halaman 104 inbox. Pada halaman hasil dekripsi, user harus menyimpan file yang telah didekripsi. Karena setelah user menekan tombol finish, file akan segera dihapus. Jika user menekan delete, maka tampil halaman konfirmasi file yang akan dihapus. User dapat menekan yes untuk menghapus, atau no untuk membatalkan. Jika user mengklik outbox, akan tampil halaman outbox yang menampilkan semua file yang telah dikirimkan olehnya. User dapat menghapus file tersebut. Jika user menekan delete, maka tampil halaman konfirmasi file yang akan dihapus. User dapat menekan yes untuk menghapus, atau no untuk membatalkan. Jika user mengklik generate new key, akan tampil halaman yang membangkitkan pasangan kunci publik dan kunci privat yang baru. User harus menyimpan kunci privat yang baru tersebut. Tetapi jika user masih memiliki file di inbox, aplikasi tidak akan membangkitkan pasangan kunci yang baru, tetapi menampilkan link untuk menghapus semua file yang ada di inbox. Jika menekan delete all files, tampil halaman konfirmasi untuk menghapus semua file inbox. Jika menekan yes, akan tampil halaman yang membangkitkan pasangan kunci publik dan kunci privat yang baru. Jika menekan no, aplikasi akan kembali ke menu utama. Jika user mengklik change password, akan tampil halaman yang menampilkan form untuk mengubah password 105 login. Setelah form diisi dan ditekan next, akan diberitahukan bahwa perubahan berhasil. User harus login kembali setelah mengubah passwordnya. Jika user mengklik help, akan tampil halaman help yang berisi deskripsi singkat aplikasi, teori singkat metode Advance Encryption Standard dan Rivest Shamir Adleman, dan link help yang detil yaitu encryption, decryption, inbox, outbox, generate new key pair, dan change password. Jika user mengklik salah satu link tersebut, maka tampil halaman penjelasan sesuai link yang diklik. Pada semua halaman help tersebut, jika user mengklik home, akan kembali ke menu utama. Jika user mengklik about, maka tampil halaman deskripsi singkat tentang pembuat aplikasi. Jika user mengklik home, akan kembali ke menu utama. Jika user mengklik logout, maka aplikasi akan menghapus session dan menampilkan halaman login kembali.

4.6. Fase Konstruksi

Pada fase ini, dilakukan pengkodean terhadap rancangan-rancangan yang telah didefinisikan sebelumnya menggunakan bahasa pemrograman PHP. Pengkodean aplikasi ini menggunakan software EditPlus untuk mengedit source code program, dan adobe photoshop untuk mendesain user interface . Aplikasi ini dibuat dengan memanfaatkan library dan class yang sudah tersedia. Library yang digunakan adalah library 106 enkripsi Advance Encryption Standard rijndael yang terdapat pada interpreter PHP yang digunakan. Pemanfaatan library tersebut ditunjukkan pada potongan kode sumber berikut : td = mcrypt_module_openrijndael-128, , cbc, ; iv = mcrypt_create_iv mcrypt_enc_get_iv_sizetd, MCRYPT_RAND; ks = mcrypt_enc_get_key_sizetd; key = _SESSION[AESpass]; mcrypt_generic_inittd, key, iv; encrypted_data = mcrypt_generictd, initial_contents; Sedangkan class yang digunakan untuk membangun aplikasi adalah class enkripsi Rivest Shamir Adleman. Penggunaan kelas tersebut ditunjukkan dengan potongan kode sumber berikut : require_once rsa .class; rsa = New SecurityRSA; encoded = rsa - rsa _encryptkey, e, n; Class Rivest Shamir Adleman dan kode sumber selengkapnya dapat dilihat pada lampiran C.

4.7. Fase Pelaksanaan Implementasi