1 APLIKASI SMS BERBASIS ANDROID DENGAN ENKRIPSI VIGENERE RUNNING KEY SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komput...
Saya menyatakan dengan sesungguhnya bahwa di dalam skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama : Tiara Kusuma Ayu NIM
: 105314015
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul:
APLIKASI SMS BERBASIS ANDROID DENGAN ENKRIPSI VIGENERE RUNNING KEY
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencamtumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya. Dibuat di Yogyakarta, Pada tanggal: 19 Januari 2015 Yang menyatakan,
ABSTRAK Kriptografi adalah ilmu untuk menyandikan data Metode Vigenere Running Key adalah penyandian data dengan menggunakan algoritma Vigenere yang divariasi dalam pembentukan kunci-nya. Pada Metode Enkripsi Vigenere Running Key, karakter plaintext dibagi sesuai dengan karakter kunci. Masingmasing karakter diubah menjadi angka yang menunjukan indeks karakter tersebut dalam abjad. Angka dari plaintext dijumlah dengan angka dari kunci dan hasilnya diubah kembali menjadi karakter-karakter sehingga menjadi ciphertext-nya. Sedangkan kunci yang dipakai menggunakan teks yang memiliki arti atau dikenal dalam masyarakat. Metode ini cukup aman dibandingkan dengan metode vigenere biasa, dikarenakan tidak bisa dikenai teknik kasiski untuk melakukan kriptanalis. Metode ini juga cukup sederhana sehingga tidak membebani smartphone. Dalam Tugas Akhir ini, penulis membuat aplikasi untuk melakukan enkripsi dan dekripsi Short Message Service (SMS) yang dibangun dengan bahasa pemrograman Java dengan menggunakan Eclipse IDE. Aplikasi ini tidak melibatkan masalah jaringan dan di buat untuk mengamankan isi pesan yang bersifat rahasia/penting, seperti pengiriman PIN, transaksi keuangan yang bersifat rahasia, rahasia perusahaan atau perseorangan lewat SMS. Selain itu, dengan menggunakan aplikasi ini, SMS yang akan terbaca di provider adalah ciphertext. Berbicara mengenai SMS pada android dengan pengamanan enkripsi vigenere running key, sebelum melakukan pengiriman SMS atau penerimaan SMS terenkripsi, aplikasi ini sudah harus terpasang pada kedua belah pihak (smartphone pengirim dan smartphone penerima). Sebelum user mengirimkan SMS, SMS (sebagai plaintext) tersebut akan dienkripsi dengan menggunakan aplikasi yang sudah terpasang pada smartphone pengirim sehingga SMS tersebut akan menjadi ciphertext, dengan memasukkan kata kunci terlebih dahulu. Kemudian SMS (ciphertext) tersebut dikirim ke no tujuan. Setelah SMS sampai ke smartphone penerima, penerima harus memasukkan kata kunci yang sama dengan kata kunci pengirim untuk men-dekripsi (mengubah SMS ciphertext menjadi SMS plaintext ) SMS tersebut. Sehingga SMS sudah dapat dibaca oleh penerima. Hasil akhir yang diperoleh adalah Aplikasi SMS berbasis android dengan metode Vigenere Running Key yang dapat berjalan dengan lancar dan stabil pada Android dengan minimal versi 2.3.3 (gingerbread) dan maksimal versi 4.2 (jellybean). Pengujian pada tiga buah smartphone android dengan versi yang berbeda menunjukan bahwa aplikasi dapat berjalan lancar dan stabil.
ABSTRACT Cryptography is a science to code data. Vigenere Running Key method is data coding using Vigenere algorithm varied in making its key. In Vigenere Running key encryption method, plaintext character is divided according to key character. Each character is changed to be number indicating the character index in alphabet. Number of plaintext is summed with number of key and its result is re-changed into character that resulted in ciphertext. Key used is text having meaning or popular in community. The method is safe compared with common Vigenere method, because it is not subject to kasiski technique to do cryptanalysis. The method is enough simple so it does not load smartphone. In this final assignment, author makes application to encrypt and decrypt short message service (SMS) built with Java programming language using Eclipse IDE. This application does not involve network issue and is made to secure confidential/important message such as sending PIN, confidential financial transaction, individual/corporate secret. Provider reads the message as ciphertext. As to SMS in android with Vigenere running key encryption security, before sending or receiving encrypted message, this application should be installed in both sides (sending and receiving smartphones). Before user sending message, the message (plaintext) will be encrypted using the application installed in the sending smartphone so the SMS will be ciphertext, by entering keyword previously. Then the SMS (ciphertext) is sent to target number. After SMS is received in receiving smartphone, the receiver should inputting keywords same as sending keyword to decrypt SMS (change ciphertext SMS to plaintext SMS). Then, the SMS may be read by receiver. Final result is android based SMS application with Vigenere Running Key method can work well and stable in android at least version 2.3.3 (gingerbread) and maximally version 4.2 (jellybean). Testing on three android smartphone with different version indicated that the application can work well and stable.
KATA PENGANTAR Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, sehingga penulis dapat menyelesaikan tugas akhir sebagai salah satu mata kuliah wajib dan merupakan syarat akademik pada jurusan Teknik Informatika Universitas Sanata Dharma Yogyakarta. Pada kesempatan ini, penulis ingin mengucapkan terima kasih kepada pihakpihak yang telah membantu penulis baik selama penelitian maupun saat pengerjaan skripsi ini. Ucapan terima kasih penulis baik selama penelitian maupun saat pengerjaan skripsi ini. Ucapan terima kasih penulis sampaikan diantaranya kepada : 1. Bapak Benedictus Herry Suharto, S.T., M.T., sebagai Dosen Pembimbing Tugas Akhir. 2. Bapak Henricus Agung Hernawan, S.T., M.Kom dan Bapak Stephanus Yudianto Asmoro, S.T., M.Kom sebagai Dosen Penguji Tugas Akhir. 3. Orang tua, Stefanus Sudarsana dan M.M Sri Handiati, dan juga adek, Alfianus Bagus Darsana Putra atas dukungan moral, spiritual dan financial dalam penyusunan skripsi. 4. Seluruh teman-temanku, terutama Peter Pra Aditya, Heribertus Budi Setyawan, Aloysius Chrisdianto atas dukungan dan doanya. 5. Seluruh teman-teman Teknik Informatika 2010 atas masukan dan dukungannya. Terutama teman-teman seperjuangan skripsi, Antonius
Windy, Yonathan Chris Purwanto, Benedictus Theo Yulian, Krisma Argyanta, Florencia Paramitha, Yohanes Wisnu, Fidelis Asterina, Priska Delania. 6. Semua pihak yang tidak dapat disebutkan satu per satu yang telah membantu penulis dalam pengerjaan skripsi ini. Akhirnya penulis berharap semoga skripsi ini dapat berguna bagi pembaca
DAFTAR ISI HALAMAN PERSETUJUAN .......................................................................................... i HALAMAN PERSEMBAHAN ...................................................................................... iii PERNYATAAN KEASLIAN KARYA .......................................................................... iv LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ........................................................................ v ABSTRAK ........................................................................................................................ vi ABSTRACT ..................................................................................................................... vii KATA PENGANTAR .................................................................................................... viii DAFTAR ISI...................................................................................................................... x Daftar Gambar ............................................................................................................... xiii Daftar Tabel ................................................................................................................... xiv BAB I PENDAHULUAN ................................................................................................ 1 1.1.
Latar Belakang................................................................................................... 1
1.2.
Rumusan Masalah ............................................................................................. 4
1.3.
Tujuan Penelitian ............................................................................................... 5
1.4.
Batasan Masalah ................................................................................................ 5
DAFTAR PUSTAKA .................................................................................................... 126 LAMPIRAN................................................................................................................... 128
Daftar Gambar Gambar 2. 1 Enkripsi dan Dekripsi dengan kunci Simetri.................................... 11 Gambar 2. 2 Enkripsi dan Dekripsi dengan kunci Asimetri ................................. 11 Gambar 2. 3 Bujursangkar Vigenere ..................................................................... 13 Gambar 2. 4 Tabel ASCII ..................................................................................... 15 Gambar 2. 5 Point-to-Point ................................................................................... 19 Gambar 2. 6 Manajemen Kunci ............................................................................ 20 Gambar 2. 7 Cara kerja Key Distribution Center .................................................. 21 Gambar 2. 8 Cara Kerja SMS ............................................................................... 29 Gambar 2. 9 Arsitektur Android ........................................................................... 30 Gambar 2. 10 Actor ............................................................................................... 36 Gambar 2. 11 Use case .......................................................................................... 36 Gambar 2. 12 Include ............................................................................................ 37
Gambar 3. 1 Penghitungan manual proses enkripsi .............................................. 55 Gambar 3. 2 Penghitungan manual proses dekripsi .............................................. 57 Gambar 3. 3 Usecase diagram pengguna Aplikasi VinereySMS .......................... 59 Gambar 3. 4 Sequenced Diagram Mengirim SMS................................................ 66 Gambar 3. 5 Sequenced diagram Menerima SMS ................................................ 67 Gambar 3. 6 Sequenced Diagram Menghapus Pesan............................................ 68 Gambar 3. 7 Flowcart Aplikasi VinereySMS ....................................................... 71 Gambar 3. 8 Form Menu Utama ........................................................................... 72 Gambar 3. 9 Tampilan Menu Inbox ...................................................................... 73 Gambar 3. 10 Tampilan Menu Outbox ................................................................. 74 Gambar 3. 11 Tampilan Menu Info....................................................................... 75
Gambar 5. 1 Grafik Pertanyaan 1 ........................................................................ 113 Gambar 5. 2 Grafik Pertanyaan 2 ........................................................................ 114 Gambar 5. 3 Grafik Pertanyaan 3 ........................................................................ 115 Gambar 5. 4 Grafik Pertanyaan 4 ........................................................................ 116 Gambar 5. 5 Grafik Pertanyaan 5 ........................................................................ 117 Gambar 5. 6 Grafik Pertanyaan 6 ........................................................................ 118 Gambar 5. 7 Grafik Pertanyaan 7 ........................................................................ 119
Gambar 5. 8 Grafik Pertanyaan 8 ........................................................................ 120 Gambar 5. 9 Grafik Pertanyaan 9 ........................................................................ 121
Perkembangan teknologi beberapa tahun terakhir semakin meningkat pesat. Banyak teknologi-teknologi baru yang bermunculan, namun ada juga teknologi baru yang tercipta untuk menyempurnakan teknologi yang sudah ada sebelumnya[1]. Beberapa sistem yang saat ini popular digunakan pada smartphone, seperti IOS, Blackberry, Windows Phone, dan juga Android. Dari beberapa sistem operasi smartphone tersebut, android menjadi yang paling diunggulkan oleh para pengguna dan juga produsen smartphone karena fiturnya yang sangat menarik. Semenjak perkembangannya pada tahun 2005 dan dirilis pertama kali pada 2008 android sudah memiliki banyak user yang tersebar dari seluruh dunia, dengan sebab itu android yang merupakan salah satu sistem operasi open source memiliki banyak peminat sehingga memunculkan juga banyak pengembang (Developer), sehingga android mendukung perkembangan yang cepat, karena seperti open source lainnya android membuka code sumbernya secara gratis untuk dikembangkan oleh para developer [2]. Security atau keamanan pada sebuah perangkat android merupakan salah satu keunggulan dari perangkat ini yang telah dirancang sedemikian rupa demi kenyamanan pengguna, namun beberapa fitur-fitur tertentu tidak disertai dengan metode pengamanan [2]. Salah satu fitur tersebut adalah SMS, pada perangkat
android secara default sama sekali tidak memiliki metode pengamanan. Walaupun banyak fitur-fitur menarik yang terdapat pada android, namun fitur SMS tetap tidak dapat ditinggalkan. Fitur SMS mulai dikembangkan pada tahun 1991 yang berguna untuk pengiriman data berupa pesan text singkat. Meskipun SMS dibatasi hanya sampai 160 karakter saja, namun keunggulan fitur SMS ini adalah merupakan komunikasi nonvoice yang tidak mahal[3]. Namun SMS tidak dapat menjamin keamanan dari pesan yang dikirimkan maupun diterima. Hal tersebut terbukti dengan adanya isu penyadapan oleh Australia pada orang nomor satu di Indonesia yang terjadi ditahun 2009. Ada beberapa resiko yang dapat mengancam keamanan pesan pada layanan SMS, antara lain SMS interception dan SMS snooping[1]. Celah keamanan terbesar pada layanan SMS adalah pada saat SMS tersebut dikirim melalui jaringan Telekomunikasi (provider). Pihak provider memang terkadang menjanjikan kepada pelanggan mengenai keamanan terhadap penyadapan data. Namun pada kenyataannya data yang dikirimkan melalui SMS tersebut bisa saja akan tersadap atau diketahui dengan gampang saat data SMS tersimpan pada data center sebuah provider [1]. Hal tersebut merupakan ancaman SMS interception. Ancaman SMS lainnya adalah SMS snooping. SMS snooping lebih sering terjadi karena kelalaian pengguna smartphone [1]. Contohnya ketika ponsel dipinjamkan kepada orang lain, maka dengan mudahnya pesan SMS dapat dibuka dan dibaca.
Untuk mengantisipasi terjadinya penyadapan (interception), pengintaian (snooping), dan gangguan fitur SMS lainnya, maka dibutuhkan sebuah sistem keamanan pada layanan SMS yang mampu menjaga integritas dan keamanan isi pesan tersebut. Agar isi pesan hanya bisa dibaca maknanya oleh pengirim dan penerima, maka isi pesan sebelum dikirim melalui SMS harus dienkripsi terlebih dahulu dengan menggunakan algoritma kriptografi. Namun pada algoritma kriptografi modern jika diimplementasikan dalam enkripsi dekripsi SMS mengakibatkan pesan SMS yang tadinya mempunyai maksimal 160 karakter, akan berkurang jauh dari maksimal karakter yang sudah ada pada aplikasi SMS. Hal itu dikarenakan pada Algoritma Kriptografi Modern beroperasi dalam mode bit. Kunci, plaintext, ciphertext diproses dalam rangkaian bit sehingga menyebabkan ukuran ciphertext yang akan dikirimkan menjadi lebih besar dari plaintext, bahkan bisa 2 sampai 4 kali ukuran plaintext. Oleh sebab itu pada aplikasi yang akan dibangun akan digunakan algoritma kriptografi klasik, yaitu algoritma Vigenere. Algoritma kriptografi Vigenere merupakan salah satu algoritma klasik dengan teknik substitusi. Penerima dapat membaca makna isi pesan tersebut dengan melakukan dekripsi isi pesan tersebut menggunakan kunci yang sama dengan kunci yang digunakan oleh pengirim. Apabila ada orang lain yang mencuri isi pesan tersebut, orang tersebut tidak akan mampu membaca makna pesan tersebut karena yang terbaca olehnya hanya ciphertext[3]. Algoritma Kriptografi Vigenere yang digunakan adalah Vigenere yang divariasi dalam cara menghasilkan kunci. Variasi tersebut adalah Running_key vigenere cipher. Pada
varian ini, kunci bukan string pendek yang diulang secara periodik seperti pada vigenere cipher standar, tetapi kunci merupakan string panjang dan diambil dari teks yang memiliki arti atau cukup dikenal dalam masyarakat, bisa juga berupa teks pada buku yang dimiliki oleh pengirim dan penerima pesan. Running-key vigenere Cipher dikatakan sebagai enkripsi yang tidak terpecahkan [5]. Dengan penggunaan algoritma Running-key Vigenere cipher, jumlah maksimal karakter dari setiap pengiriman sms menggunakan Aplikasi VinereySMS
kurang lebih sama dengan sistem SMS yang sudah ada, dan
diharapkan gangguan terhadap kerahasiaan isi SMS dapat dihindari, karena untuk melakukan penyadapan, pengintaian, atau gangguan lainnya menjadi tidak mudah karena kunci yang dipakai merupakan kesepakatan antara pengirim dan penerima SMS. 1.2.
Rumusan Masalah
Dari latar belakang masalah, maka rumusan masalah diperoleh adalah sebagai berikut: 1. Bagaimana menganalisis cara kerja algoritma vigenere dengan variasi running-key vigenere cipher? 2. Bagaimana implementasi algoritma Running-key Vigenere cipher pada aplikasi enkripsi SMS berbasis Android? 3. Apakah Aplikasi VinereySMS menambah daya guna sistem SMS?
Tujuan Penelitian Tujuan dari penelitian ini adalah: 1. Mengetahui cara kerja Algoritma Vigenere dengan variasi Runningkey Vigenere cipher. 2.
Mengimplementasikan algoritma Running-key Vigenere cipher pada aplikasi SMS berbasis android.
3. Mengetahui dengan dibangunnya Aplikasi VinereySMS akankah menambah daya guna sistem SMS. 1.4.
Batasan Masalah Batasan masalah yang ada pada penelitian ini adalah: 1. Aplikasi yang dibangun difokuskan pada pengiriman SMS dan penerimaan SMS. 2. Informasi yang akan dienkripsi hanya pesan singkat (SMS) pada smartphone yang berbasis Android. 3. SMS yang akan didekripsi hanya SMS yang memiliki header VNyang tersimpan pada inbox pada smartphone berbasis Android. 4. Metode Kriptografi yang digunakan yaitu Algoritma Vigenere dengan variasi Running-key. 5. Karakter yang digunakan adalah karakter yang terdaftar dalam kode ASCII (American Standard Code for Information Interchange) dari decimal range 32-126.
6. Aplikasi yang dibangun dapat dijalankan pada ponsel yang memiliki sistem operasi android minimal versi 2.3.3 (Gingerbread) API level 9 dan maksimal versi 4.2 (jellybean) API level 17. 7. Hardware yang digunakan adalah smartphone yang berbasis Android. 1.5. Manfaat Manfaat dari penyusunan tugas akhir ini adalah: Membantu pengguna SMS khususnya yang menggunakan perangkat mobile berbasis Android dalam mengamankan konten SMS antar pengirim dan penerima.
1.6. Metodologi Penelitian Metode penelitian yang digunakan adalah metode penelitian dengan langkahlangkah sebagai berikut : 1. Studi literatur dengan membaca buku acuan mengenai Object Oriented Programing , pemrograman android, kriptografi, dan skripsi terkait serta mencari informasi-informasi lain yang mendukung pembuatan aplikasi ini. 2. Menganalisis dan mendesain Aplikasi VinereySMS. 3. Membuat Program menggunakan Aplikasi Eclipse (IDE) v 4.2.
4. Menguji coba aplikasi menggunakan smartphone android dengan minimal versi 2.3.3 (gingerbread) dan maksimal versi
4.2
(jellybean). 5. Menguji fitur tambahan pada Aplikasi VinereySMS terhadap user dengan melakukan kuisioner. 1.7.
Sistematika Penulisan Sistematika penulisan yang digunakan dalam tugas akhir ini terbagi dalam
beberapa pokok bahasan, yaitu : BAB I
PENDAHULUAN Bab ini menguraikan tentang latar belakang, rumusan masalah, tujuan, batasan masalah, manfaat penelitian, metodologi penelitian, dan sistematika penulisan
BAB II
LANDASAN TEORI Bab ini membahas dasar-dasar teori mengenai SMS, Android, Ilmu Kriptografi, Algoritma Kriptografi Vigenere, RunningKey Vigenere Cipher.
BAB III
ANALISIS DAN PERANCANGAN SISTEM Bab ini berisi tentang analisis kebutuhan pada aplikasi VinereySMS dan perancangan perangkat lunak.
IMPLEMENTASI SISTEM Bab ini berisi tentang penerapan dari rancangan yang telah dibuat. Bab ini juga menjelaskan secara menyeluruh dari awal sampai bagian implementasi yang penting.
BAB V
ANALISIS HASIL IMPLEMENTASI Bab ini berisi analisis hasil implementasi yang mencakup kelebihan dan kekurangan dari aplikasi yang telah dibuat.
BAB VI
PENUTUP Bab ini berisi tentang kesimpulan dan saran yang didapatkan selama proses perancangan dari sistem serta rencana pengembangan dari perangkat lunak di masa yang akan datang.
BAB II LANDASAN TEORI 2.1 Kriptografi Kriptografi berasal dari bahasa yunani, menurut bahasa yunani dibagi menjadi kripto dan graphia, kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ketempat yang lain. Dalam kriptografi juga terdapat berbagai istilah atau terminologi. Beberapa istilah yang penting untuk diketahui antara lain : 1.
Enkripsi
: Proses mengubah data asli (plaintext) menjadi data yang tersandi (ciphertext) dengan menggunakan kunci (key).
2.
Dekripsi
: Proses mengembalikan data tersandi (ciphertext) menjadi data asli (plaintext) dengan menggunakan kunci (key).
3.
Plaintext
: data atau informasi yang dapat dibaca atau dimengerti maknanya.
4.
Kunci/Key
: parameter yag digunakan untuk transformasi enkripsi dan dekripsi.
5.
Ciphertext
: data atau informasi yang sudah dienkripsi
6.
Kriptografer : orang yang berhak untuk membaca data yang dikirim dan memiliki kunci untuk mengembalikan data tersandi ke data asli.
Kriptoanalis : orang yang menganalisadata tersandi untuk menemukan kunci dan kemudian mengembalikan data tersandi ke data asli. Kriptoanalis tidak memiliki hak untuk
8.
Penyadap
:
orang
yang
ditransmisikan.
mencoba
menangkap
pesan
selama
Tujuan
penyadap
adalah
untuk
mendapatkan informasi sebanyak-banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Dengan menggunakan kunci (K) maka fungsi enkripsi dan dekripsi menjadi
Terdapat dua jenis algoritma kriptografi berdasarkan jenis kuncinya, yaitu : 1. Algoritma Simetri, adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Contoh Algoritma Simetri adalah Algoritma Vigenere Cipher, DES, Blowfish, RC2, RC4, RC5, Twofish, Blowfish.
Gambar 2. 1 Enkripsi dan Dekripsi dengan kunci Simetri
2. Algoritma Asimetri, adalah algoritma yang kunci untuk enkripsi dan dekripsinya berbeda. Contoh Algoritma Asimetri adalah algoritma RSA (Rivest- Shamir-Adleman). Enkripsi dan dekripsi dengan kunci Asimetri ditunjukan pada gambar 2.2.
Gambar 2. 2 Enkripsi dan Dekripsi dengan kunci Asimetri
termasuk dalam cipher abjad-majemuk (polyalpabetic substitution cipher), nama vigenere diambil dari seorang yang bernama Blaise de Vigenere pada abad
16
(1586),
tetapi
sebenarnya
Giovan
Batista
Belaso
telah
menggambarkannya pertama kali pada tahun 1553 seperti ditulis di dalam bukunya La Cifra del Sig. Vigenere cipher menggunakan suatu kunci yang memiliki panjang tertentu. Panjang kunci tersebut bisa lebih pendek ataupun sama dengan panjang plaintext. Jika panjang kunci kurang dari panjang plaintext, maka kunci yang tersebut akan diulang secara periodik hingga panjang kunci tersebut sama dngan panjang plainteksnya. Pada Vigenere Cipher, setiap karakter mengandung sebuah angka yang merupakan urutan karakter tersebut ditempatkan. Untuk melakukan enkripsi, angka yang terkandung pada karakter ke-n pada plaintext dijumlah dengan angka yang terkandung pada karakter ke-n pada key sehingga menghasilkan sebuah angka yang disebut sebagai ciphertext. Hasil tersebut dimodulo sebesar jumlah karakter yang ada (mod 256). Sedangkan untuk melakukan dekripsi, angka yang terkandung pada karakter ke-n pada ciphertext dikurangi dengan angka yang terkandung pada karakter ke-n pada key dan dimodulo dengan banyaknya jumlah karakter yang ada (mod 256). Algoritma enkripsi vigenere cipher :
Keterangan : Cn = nilai decimal karakter ciphertext ke-n Pn = nilai decimal karakter plaintext ke-n Kn = nilai decimal karakter kunci ke-n Vigenere Cipher menggunakan Bujursangkar Vigenere untuk melakukan enkripsi, dimana setiap baris di dalam bujursangkar menyatakan huruf-huruf ciphertext yang diperoleh dengan Caesar Cipher, yang dapat dilihat pada gambar 2.
THEBEAUTYANDTHEBEAST dan key adalah ABC maka proses enkripsi yang terjadi adalah sebagai berikut: Plaintext
: THEBEAUTYANDTHEBEAST
Key
: ABCABCABCABCABCABCAB
Ciphertext
: TIGBFCUUAAOFTIGBFCSU
Pada contoh di atas kata kunci ABC diulang sedemikian rupa hingga panjang kunci sama dengan panjang plainteksnya. Kemudian setelah panjang kunci sama dengan panjang plainteks, proses enkripsi dilakukan dengan menggeser setiap huruf pada plainteks sesuai dengan huruf kunci yang bersesuaian dengan huruf plainteks tersebut. Pada contoh diatas plainteks huruf pertama adalah T akan dilakukan pergeseran huruf dengan kunci Ki=0 (kunci huruf pertama adalah A yang memiliki Ki=0) menjadi I. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada tiap huruf hingga semua plainteks telah terenkripsi menjadi ciphetext. Vigenere Cipher yang akan dipakai pada aplikasi ini adalah Vigenere Cipher extended di mana ekripsi tidak hanya untuk huruf alphabet saja, tetapi termasuk juga karakter-karakter ASCII. Jadi batas pengenkripian tidak terbatas untuk 26 karakter tetapi mencapai 128 karakter. Algoritma Extended Vigenere Chiper merupakan pengembangan dari algoritma
bujursangkar vigenere yang berisi 26 alphabet, maka pada algoritma Extended Vigenere digunakan table ASCII, ditunjukan pada gambar 2.3, untuk melakukan proses enkripsi dan dekripsi. Dengan penggunaan ASCII, karakter yang digunakan dapat lebih komplek dibanding dengan penggunaan bujursangkar Vigenere.
Gambar 2. 4 Tabel ASCII Rumus Vigenere Cipher Extended :
Pada aplikasi VinereySMS ini, Algoritma Vigenere yang digunakan yaitu yang telah divariasi dalam pembentukan kuncinya, yaitu dengan RunKey Vigenere Cipher. Perbaikan pada metode Vigenere ditujukan untuk menghilangkan pengulangan cipherteks yang sama untuk plainteks yang sama agar tidak bisa dikenakan teknik kasiski untuk melakukan kriptanalisis. Telah banyak yang mengembangkan variasi dari Vigenere Cipher, salah satunya adalah Running-key Vigenere Cipher. Running-key Vigenere Cipher menggunakan teks yang memiliki arti atau cukup dikenal dalam masyarakat. Teks ini bisa berupa buku yang dimiliki oleh pengirim dan penerima pesan. Sebagai contoh : 1.
2.1.3. Kunci Simetris Kunci Simetris sering juga disebut dengan algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik.
Skema algoritma sandi akan disebut kunci-simetris apabila untuk setiap proses enkripsi maupun dekripsi menggunakan kunci yang sama. Algoritma ini mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka saling berkomunikasi. Keamanan algoritma simetris tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Sifat kunci yang seperti ini membuat pengirim harus selalu memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman
atau memastikan bahwa seseorang yang ditunjuk membawa kunci untuk dipertukarkan adalah orang yang dapat dipercaya. Kelebihan
kunci
simetris
adalah
proses
enkripsi/dekripsi
membutuhkan waktu yang singkat, ukuran kunci simetri relative pendek, dan Otentikasi pengirim pesan langsung diketahui dari ciphertext yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja. 2.1.4. Distribusi kunci simetris Masalah
utama
dari
kriptografi
simetris
adalah
sulitnya
mendistribusikan kunci. Kunci tidak dapat dipertukarkan dengan aman melalui saluran data, kecuali di-enkripsi. Dengan mengenkripsi kunci, bagaimanapun pasti membutuhkan kunci lain. Dan kunci tersebut perlu dipertukarkan antara kedua entitas yang akan berkomunikasi(pengirim dan penerima SMS). Salah satu solusi dalam pendistribusian kunci adalah dengan cara manual misalnya dengan surat pos. Distribusi manual memiliki kelemahan seperti mahal, memakan waktu, dan rentan terhadap kesalahan. Dua pendekatan otomatis untuk mendistribusikan kunci yang dibahas dalam bagian ini adalah : ANSI (American National Standards Institute) standar X9.17, Manajemen kunci dan pertukaran kunci Diffie / Hellman.
Pendekatan ANSI X9.17 Pendekatan ANSI X9.17 didasarkan pada hirarki kunci. Pada hirarki kunci, bagian bawah adalah kunci data(DK), kunci data ini digunakan untuk mengenkripsi dan mendekripsi pesan. Sedangkan dibagian paling atas dari hirarki kunci adalah kunci enkripsi (KKM) yang harus didistribusikan secara manual. Kunci KKM memiliki rentan hidup yang lebih lama daripada kunci DK. Pada hirarki kunci dua lapis, KKM berguna untuk mengenkripsi DK. Kemudian DK didistribusikan secara elektronik untuk mengenkripsi dan mendekripsi pesan. Model hirarki kunci 2 lapis tersebut dapat ditingkatkan menjadi 3 lapis. Dalam model hirarki kunci tiga lapis, KKM tidak digunakan untuk mengenkripsi kunci secara langsung, tetapi untuk mengenkripsi kunci enkripsi kunci lainnya(KK). KK yang dipertukarkan secara elektronik, digunakan untuk mengenkripsi kunci data. Pada gambar 2.5 menggambarkan pertukaran kunci antara dua pihak yang menggunakan model hirarki kunci tiga lapis.
Pada gambar diatas mengilustrasikan dua pengguna bertukar kunci secara langsung, yang dikenal dengan Point-to-Point. Selain itu standar ANSI X9.17 juga memberikan gambaran lain mengenai distribusi kunci dengan
Key
Distribution
Center(KDC)
dan
Key
Translation
Center(KTC) yang memungkinkan untuk memanajemen kunci yang terpusat. Manajemen Kunci terpusat ditunjukan pada gambar 2.6
Gambar 2. 6 Manajemen Kunci
Perbedaan antara KDC dan KTC adalah bahwa KDC menghasilkan kunci bagi penggunanya sedangkan KTC digunakan ketika kedua entitas(pengirim dan penerima) membutuhkan manajemen kunci. Key Distribution Center (KDC) Pada mekanisme KDC dimisalkan Alice dan Bob ingin berkomunikasi dan menggunakan kunci simetris. Mereka tidak pernah bertemu (mungkin mereka hanya bertemu disebuah chat online)
dengan demikian belum ada kesepakatan mengenai kunci yang akan digunakan. Bagaimana mereka bisa setuju atau menyepakati kunci. Solusi yang sering digunakan adalah menggunakan KDC. KDC adalah server yang dapat menghasilkan kunci yang berbeda pada masing-masing pengguna yang terdaftar dengan melakukan register terlebih dahulu untuk mendaftar ke KDC. Diilustrasikan bahwa Alice dan Bob adalah pengguna terdaftar KDC, mereka hanya tahu kunci masing-masing, KA – KDC dan KB – KDC.
Alice mengetahui R1 Bob mengetahui R1 Bob mengetahui R1
Alice dan Bob berkomunikasi menggunakan kunci session yaitu R1
Gambar 2. 7 Cara kerja Key Distribution Center
1. Langkah pertama yang harus dilakukan Alice adalah menggunakan KA – KDC untuk mengenkripsi komunikasinya dengan KDC, Alice mengirimkan pesan ke KDC dan mengatakan bahwa dia (A) ingin berkomunikasi dengan Bob (B). 2. Setelah itu KDC akan mendekripsi KA – KDC (A,B) dan kemudian
menghasilkan nomor acak, R1. Ini adalah nilai yang akan menjadi kunci bersama untuk Alice dan Bob dan akan digunakan untuk melakukan enkripsi simetris ketika mereka berkomunikasi satu sama lain. R1 ini disebut dengan kunci one-time session. Lalu KDC menginformasikan kepada Alice dan Bob mengenai kunci one-time session mereka yaitu R1. KDC mengirimkan kembali pesan terenkripsi ke Alice berisi sebagai berikut :
R1 merupakan kunci one-time session yang akan digunakan
Alice dan Bob untuk berkomunikasi.
Sepasang nilai A, dan R1, Dienkripsi oleh KDC
menggunakan kunci Bob, KB – KDC. Kunci yang dihasilkan adalah KB-KDC (A, R1). 3. Selanjutnya Pesan dari KDC ke Alice adalah KA – KDC (R1, KB – KDC (R1)). Alice menerima pesan dari KDC dan memverifikasi R1. Dan Alice mengetahui kunci One-Time Sessionnya adalah R1. Alice juga mengekstrak KB – KDC (A, R1) dan memforward pesan kepada Bob. 4. Bob mendekripsi pesan yang diterima, KB – KDC (A, R1). Bob mengetahui bahwa R1 adalah kunci one-time sessionnya, dan Alice (A)
yang
akan
berkomunikasi
dengan
dia.
Bob
harus
mengotentikasi Alice terlebih dahulu menggunakan R1.
Keuntungan menggunakan KDC adalah fleksibilitas dan efisiensi. Karena pengguna hanya perlu bertukar dan menyimpan KKM. Bukan KKM dari setiap penerima. One-Time Session Key Kita telah melihat diatas bahwa kunci one-time session dihasilkan oleh KDC untuk digunakan dalam enkripsi kunci simetris antara dua entitas. Dengan menggunakan kunci one-time session dari KDC pengguna dibebaskan dari keharusan untuk menyepakati kunci bersama untuk setiap entitas dengan siapa ingin berkomunikasi. Sebaliknya, pengguna hanya perlu memiliki satu kunci rahasia bersama untuk berkomunikasi dengan KDC, dan KDC akan menginformasikan kunci one-time session dari KDC untuk semua komunikasi dengan entitas lainnya. Kunci one-time session juga digunakan dalam kriptografi kunci publik . Sistem kunci publik sering digunakan untuk tujuan otentikasi. Setelah dua pihak telah dikonfirmasi, mereka kemudian menggunakan komunikasi kunci public yang dienkripsi untuk menyepakati satu kali
kunci simetris bersama . Session key simetris ini kemudian digunakan untuk mengenkripsi pesan. Pertukaran kunci dengan Algoritma Diffie / Helman Solusi lain untuk masalah distribusi kunci rahasia adalah pertukaran kunci Diffie / Hellman. Algoritma ini pertama kali diperkenalkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1975. Mereka berdua adalah peneliti pada universitas Stanford. Mereka memperkenalkan algoritma ini untuk memberi solusi atas pertukaran informasi secara rahasia. Algoritma ini tidak berdasarkan pada proses enkripsi dan dekripsi, melainkan lebih kepada proses matematika yang dilakukan untuk menghasilkan kunci rahasia yang dapat disebarkan secara bebas tanpa harus khawatir karena kunci rahasia tersebut hanya dapat didekripsi hanya oleh pengirim dan penerima pesan. Dasar dari algoritma ini adalah matematika dasar dari aljabar eksponen dan aritmatika modulus. Langkah-langkah dalam pertukaran kunci dengan menggunakan algoritma Diffie-Hellman adalah sebagai berikut: 1. Pilih bilangan prima yang besar, p dan bilangan integer yang tidak melebihi dari nilai p, g, biasa disebut bilangan basis atau generator. Kedua bilangan tersebut dapat diketahui secara publik.
2. Pilih sebuah bilangan acak oleh pengirim, x, bilangan ini tidak boleh diketahui oleh orang lain. 3. Pilih sebuah bilangan acak oleh penerima, y, bilangan ini tidak boleh diketahui oleh orang lain. 4. Pengirim menghitung A = gx mod p. Bilangan A ini dapat diketahui secara publik. 5. Penerima menghitung B = gy mod p. Bilangan B ini dapat diketahui secara publik. 6. Lakukan pertukaran bilangan A dan B terhadap pengirim dan penerima. 7. Lalu Pengirim menghitung ka = Bx mod p. 8. Penerima menghitung kb = Ay mod p. 9. Berdasarkan hukum aljabar nilai ka sama dengan kb atau bisa disebut ka = kb = k. Sehingga pengirim dan penerima tersebut mengetahui kunci rahasia tersebut “k”. Contoh penggunaan dari algoritma ini adalah: 1. Alice dan Bob menetapkan p = 23 dan g = 5. 2. Eve (penyadap) tahu nilai p dan g. 3. Alice memilih nilai x = 6 dan Bob memilih nilai y = 15.
4. Alice menghitung nilai A = 56 mod 23 = 8. 5. Bob menghitung nilai B = 515 mod 23 = 19. 6. Alice dan Bob bertukar nilai A dan B. 7. Eve menyadap mereka dan tahu nilai A dan B. 8. Alice melakukan perhitungan ka = 196 mod 23 = 2. 9. Bob melakukan perhitungan kb = 815 mod 23 = 2. 10. Eve mengetahui nilai p , g, A, dan B tetapi dia tidak dapat mengetahui kunci rahasia, k dari Bob dan Alice. Alice dan Bob dapat mengetahui kunci rahasia tersebut dan dapat bertukar pesan dengan aman tanpa harus diketahui oleh Eve. Eve hanya dapat mengetahui nilai p, g, A, dan B tetapi tidak dapat menghitung kunci rahasia dari mereka berdua. Sehingga Eve tidak dapat mengetahui pesan rahasia apa antara Alice dan Bob.
Short Message Service (SMS) Short message service atau yang disebut SMS merupakan suatu teknologi
nirkabel yang memungkinkan seseorang untuk mengirim dan menerima pesan secara cepat melalui perangkat mobile. Pesan yang dikirim juga terbatas, satu pesan SMS dapat berisi paling banyak 140 bytes dari data, sehingga satu pesan SMS dapat berisi 160 karakter. 2.2.1.
Keunggulan SMS
SMS memiliki beberapa keunggulan, yaitu: 1. Mudah dan efisien: SMS mudah untuk digunakan bahkan oleh orang awam sekalipun serta informasi yang didapat langsung diterima oleh yang berkepentingan. 2. Jangkauan luas : Informasi melalui media SMS dapat menjangkau seluruh nusantara hingga kepelosok desa. 3. Relatif lebih murah: Bandingkan dengan media penyampaian informasi seperti surat pos, telepon, dan fax yang masih membedakan biaya pengiriman antara dalam kota atau luar kota, local dan interlokal. Dengan penggunaan media SMS akan lebih murah. 4. Informasi realtime: Informasi yang disampaikan dapat langsung diterima hanya dengan beberapa detik, walaupun mengalami gangguan informasi tersebut tidak akan hilang dan tetap tersampaikan.
2.2.2. Kekurangan SMS Adapun kekurangan dari SMS yaitu: 1.
Keamanan data yang kurang terjamin, dimana masih banyak terjadi pencurian data-data SMS penting oleh orang-orang yang tidak bertanggung jawab.
2.
Belum ada sistem yang dapat membantu pengguna agar terhindar dari ancaman SMS interception dan SMS snooping.
2.2.3. Cara Kerja Short Message Service (SMS) Dalam sistem SMS, mekanisme utama yang dilakukan dalam suatu sistem adalah melakukan pengiriman short message dari satu terminal customer ke terminal yang lain. Hal ini dapat dilakukan karena adanya sebuah entitas dalam sistem SMS
yang bernama
Short
Message Service
Center(SMSC), disebut juga Message Center(MC). Pada saat pesan SMS dikirim dari handphone, pesan tersebut tidak langsung dikirim ke handphone tujuan, akan tetapi terlebih dahulu akan melewati SMSC baru kemudian pesan tersebut dikirimkan ke handphone tujuan. SMSC merupakan sebuah perangkat yang melakukan tugas store and forward trafik short message. Didalamnya termasuk penentuan atau pencarian rute tujuan akhir dari short message. Sebuah SMSC biasanya didesain untuk dapat menangani short message dari berbagai sumber seperti Voice Mail System (VMS), Web-based messaging, Email Integration, External Short
Message Entities (ESME), dan lain-lain. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.
Gambar 2. 8 Cara Kerja SMS
2.3.
Android Android adalah sebuah sistem operasi untuk perangkat mobile berbasis
linux. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Adapun arsitektur Android dapat dilihat pada gambar 2.10
Libraries LiveWebcore mencakup modern web browser dengan engine embedded web view.
Libraries 3D yang mencakup implementasi OpenGL ES 1.0 API’s (Application programing interface).
3.
Android Runtime Layer yang membuat aplikasi Android dapat dijalankan di mana dalam prosesnya menggunakan implementasi Linux, Dalvik Virtual Machine (DVM) Merupakan mesin yang membentuk dasar kerangka aplikasi Android. Didalam Android Runtime dibagi menjadi dua bagian yaitu:
Core Libraries: Aplikasi Android dibangun dalam bahasa java, sementara Dalvik sebagai virtual mesinnya bukan Virtual Machine Java, sehingga diperlukan sebuah libraries yang berfungsi untuk menterjemahkan bahasa Java/C yang ditangani oleh Core Libraries.
Dalvik Virtual Machine: Virtual mesin berbasis register yang dioptimalkan untuk menjalankan fungsi-fungsi secara efisien, di mana merupakan pengembangan yang mampu membuat Linux kernel untuk melakukan threading dan manajemen tingkat rendah.
Application Framework Pengembangan aplikasi memiliki akses penuh ke Android sama dengan aplikasi inti yang tersedia. Pengembang dapat dengan mudah mengakses informasi lokasi, mengatur alarm, menambah pemberitahuan ke status bar dan lain sebagainya. Arsitekstur aplikasi ini dirancang untuk menyederhanakan penggunaan kembali komponen, aplikasi apa pun dapat mempublikasikan kemampuan dan aplikasi lain dapat menggunakan kemampuan mereka sesuai batasan keamanan.
5.
Application Application adalah layer di mana kita berhubungan dengan aplikasi saja, di mana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut. Di layer terdapat aplikasi inti termasuik klien email, program, SMS, kalender, peta, browser, kontak, dan lain-lain. Semua aplikasi ditulis menggunakan bahasa pemrograman Java. 2.3.1. Versi Android Android berisi sistem operasi, middleware dan aplikasi-aplikasi dasar. Basis OS Android adalah kernel Linux 2.6 yang telah dimodifkasi untuk mobile device. Android versi 1.0 dikeluarkan tanggal 23 September 2008. Versi 1.1 adalah versi yang pertama kali digunakan dimobile phone disusul versi 1.5 (Cupcake), 1.6 (Donut), dst.
2.2 (Froyo), mempercepat kinerja dengan Just In Time complier dan Crome V8 JavaScript engine, Wi-Fi hotspot tethering dan support Adobe Flash.
2.
2.3 (Gingerbread), memperbaiki user interface, soft keyboard, copy/paste features dan support Near Field Communication (NFC).
3.
3.0 (Honeycomb), diperuntukkan untuk tablet yang menggunakan layar lebih besar, multicore processors dan hardware acceleration untuk grafis.
4.
4.0 (Ice-cream sandwich) kombinasi Gingerbread dan Honeycomb. Integrasi antara platform untuk tablet dan smartphone.
5.
4.1 dan 4.2 (Jelly-Bean), user interface yang lebih halus (Project butter).
2.3.2.
Android Software Development Kit (SDK) Android SDK adalah tools API (Aplication Programming Interface)
yang diperlukan untuk memulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Saat ini Android sudah mendukung arsitektur x86 pada Linux (distribusi Linux apapun untuk desktop modern), Mac OS 10.4.8 atau lebih, Windows XP atau Vista. Sebagai platform aplikasi-netral, Android memberikan kesempatan untuk
membuat aplikasi yang kita butuhkan yang bukan merupakan aplikasi bawaan handpone/smartphone. 2.3.3.
Android Development Tools (ADT) Menurut Safaat (2012), Android Development Tools (ADT) adalah
plugin yang didesain untuk IDE Eclipse yang memberikan kita kemudahan dalam mengembangkan aplikasi andoid dengan menggunakan IDE Eclipse. Dengan menggunakan ADT untuk Eclipse akan memudahkan kita dalam membuat aplikasi project android, membuat GUI (Graphical user interface) aplikasi, dan menambahkan komponen-komponen yang lainnya, begitu juga kita dapat melakukan running aplikasi menggunakan Android SDK melalui eclipse. Mengembangkan aplikasi Eclipse dengan ADT sangat dianjurkan dan merupakan cara tercepat untuk memulai membuat aplikasi android, karena banyak kemudahan-kemudahan sebagai tools yang terintegrasi seperti, custom XML editor, dan debug panet output. Selain itu ADT memberikan dorongan luar biasa dalam mengembangkan aplikasi Android. 2.4.
Java Java memiliki cara kerja yang unik dibandingkan dengan bahasa
pemrograman lainnya yaitu bahasa pmrograman java bekerja menggunakan interpreter dan juga compiler dalam proses pembuatan program. Interpreter java dikenal sebagai pemrograman bytecode yaitu dengan cara kerja mengubah paket class pada .java dengan extensi java menjadi .class, hal ini dikenal dengan class bytecode, yaitu class yang dihasilkan agar program dapat dijalankan pada semua
jenis perangkat dan juga platform, sehingga program java cukup ditulis sekali namun mampu bekerja pada jenis lingkungan yang berbeda. Pada bahasa java programmer mengcompile menggunakan java compiler menjadi java bytecode, dan sebuah java virtual machine akan menjalankan java bytecode tersebut. Sedangkan pada pemrograman android ada sedikit yang berbeda, programmer meng-compile menggunakan java compiler yang sama. namun kemudian perlu dicompile ulang menggunakan dalvik compile sehingga menjadi dalvik bytecode. Dan dalvikbytecode ini kemudian dieksekusi dalam dalvik virtual machine. 2.5.
SQLite Android memiliki fasilitas untuk membuat database yang dikenal dengan
SQLite. SQlite adalah salah satu software yang embedded dan sangat popular, kombinasi SQL interface dan penggunaan memori yang sangat sedikit dengan kecepatan yang sangat cepat dan ringan dalam hal sumber daya. SQL tidak memiliki server, namun bentuknya adalah library yang akan dipanggil suatu saat program dijalankan. 2.6.
Metode Analisis Sistem 2.6.1.
Use Case Use case diagram menggambarkan kebutuhan (requirements)
dengan melihat bagaimana sistem digunakan dan siapa penggunanya. Dengan deminian, use case diagram dapat membantu untuk menemukan obyek, kelas, relasi dengan cara yang dapat dimengerti oleh user. Elemen-elemen use case diagram adalah:
1. Actor Actor merepresentasikan pemakai sistem, yaitu seseorang atau sesuatu yang harus berinteraksi dengan sistem. Actor dilambangkan seperti pada gambar dibawah ini
Gambar 2. 10 Actor 2. Use case Use case merupakan representasi fungsional atau layanan yang diberikan sistem kepada pemakai. Use case mendekripsikan sederetan aksi yang dilakukan sistem untuk mendapatkan hasil tertentu. Sederetan aksi tersebut menyatakan interaksi antara sistem dengan sesuatu diluar sistem yang disebut dengan actor.
Gambar 2. 11 Use case 3. Include Relasi include memungkinkan terjadinya penambahan perilaku (behavior) ke dalam use case awal yang pada dasarnya use case ini tidak dapat berdiri sendiri tanpa penambahan use case, dan use case awal tidak akan lengkap tanpa adanya use case tambahan ini.
Use case yang berada pada kepala anak panah adalah use case awal, dan pada sisi lain adalah use case penambah.
Gambar 2. 12 Include
2.6.2. Sequenced Diagram Sequence diagram merupakan diagram interaksi yang menekankan pada urutan waktu pesan dan menggambarkan interaksi antar kelas. Elemenelemen pada Sequence diagram. 1. Class roles
: peranan (roles) yang dimainkan objek dalam
interaksi. 2. Lifelines
: menggambarkan keberadaan objek dalam suatu periode waktu tertentu.
3. Activations
: saat dimana suatu objek melakukan operasi.
4. Message
: menggambarkan komunikasi antar objek.
2.6.3. Class Diagram Class diagram menunjukkan keberadaan kelas dan relasi antar kelas. UML memodelkan elemen dalam kelas dan struktur serta perilakunya. Class merupakan elemen dalam Class diagram. Class merupakan sekumpulan obyek dengan struktur dan perilaku yang sama.
Class didapatkan dengan eksaminasi obyek dalam sequence dan usecase diagram dan digambarkan dengan segi empat dengan tiga bagian. 2.7.
Event Input 2.7.1. Event Listener Event Listener adalah antarmuka di class view yang berisi satu method callback. Method ini akan dipanggil oleh framework Android ketika View yang dikaitkan dengan listener tersebut terpicu oleh interaksi pengguna degan item di UI. Biasanya di event listener akan ditambah dengan sejumlah method callback berikut:
onClick() : Dari View.OnClickListener. Ini akan dipanggil ketika pengguna melakukan touch pada item, fokus ke item dengan tombol-tombol navigasi, atau di trackball.
onLongClick()
: Dari View.OnLongClickListener. Ini akan
dipanggil ketika pengguna mengklik atau meng-hold item yang disentuh. Bisa juga ketika memfokus pada item dengan kunci navigasi atau trackball dan menekan atau meng-hold tombol Enter atau trackball.
onFocusChange() : Dari View.OnFocusChangeListener. Ini dipanggil ketika pengguna menavigasi kea tau dari item, baik menggunakan tombol navigasi atau trackball.
ketika pengguna fokus ke item dan mengklik atau melepas tombol di perangkat.
onTouch()
: Dari View.OnTouchListener. Ini dipanggil
ketika pengguna melakukan action touch, termasuk penekanan, melepas atau gesture gerakan di layar (dalam batasan item).
onCreateContextMenu()
:
Dari
View.OnCreateContextMenuListener. Ini akan dipanggil ketika context menu sedang dibuat. Semua method diatas merupakan method yang berkaitan dengan antarmukanya sendiri-sendiri. 2.8.
Komponen-komponen Layout 2.8.1. Layout Kategori komponen pertama adalah layout. Komponen-komponen di kategori layout ini menentukan struktur visual untuk antarmuka pengguna, seperti UI untuk activity atau widget aplikasi. Anda bisa mendeklarasikan UI dengan dua cara, yaitu: 1.
Mendeklarasikan elemen UI di XML. Android menyediakan sintaks XML untuk class View dan subclass seperti widget dan layout.
Membuat instance elemen layout saat run time. Aplikasi bisa membuat objek View dan ViewGroup, kemudian mengubah propertinya menggunakan program.
Framework Android menyediakan fleksibilitas, apakah akan menggunakan keduanya, atau salah satu untuk mendeklarasikan atau memanajemen antarmuka. 2.8.2.
InputControl Input control adalah komponen interaktif di UI dari aplikasi.
Android menyediakan banyak variasi control yang bisa dipakai, seperti button, text field, seek bar, checkbox, zoom button, toogle button, dan sebagainya. Menambahkan input control ke UI sangat mudah, yaitu dengan menambah elemen XML ke layout XML. Setiap input control mendukung event tertentu sehingga bisa menghandle event seperti ketika pengguna memasukkan teks atau meng-klik pada button. Berikut adalah komponen yang umum dikategori Input Control. Tipe Kontrol
Dekripsi
Class yang berhubungan
Button
Tombol yang bisa diklik Button atau ditekan oleh pengguna untuk melakukan action tertentu.
Text field
Teks yang bisa diedit, dapat menggunakan widget AutoCompleteTextView untuk membuat entri teks
Sebuah switch on/off yang Checkbox bisa di-toggle oleh pengguna. Dapat menggunakan checkbox ketka memberikan opsi yang bisa dipilih oleh pengguna tapi tidak eksklusif (bisa memilih lebih dari satu)
Radio button
Mirip dengan checkbox, namun hanya satu opsi yang dapat dipilih dalam satu group
RadioGroup RadioButton
Toggle button
Button on/off dengan indikator
ToggleButton
Button Sebuah button atau tombol terdiri dari teks atau ikon yang akan
memicu event ketika pengguna mengklik atau menyentuhnya. Ketika pengguna mengklik button akan menerima event on-click. Untuk mendefinisikan event click handler untuk button, perlu ditambahkan atribut Android:onClick ke elemen button di layout XML. Nilai atribut ini harus sama dengan method yang akan dipanggil untuk merespon event klik. Activity yang meng-host layout akan mengimplementasikan method yang berkaitan.
mengetikkan teks aplikasi. Ini bisa berupa single line atau multi line. Jika pengguna menyentuh textfield maka kursor akan otomatis ditampilkan dikeyboard. Selain untuk mengetik, textfield dapat digunakan untuk melakukan banyak hal seperti memilih teks(cut, copy, dan paste), serta data look up melalui fitur autocomplete. Textfield ditambahkan ke layout dengan menggunakan objek edit text pada XML menggunakan elemen <EditText>. 2.8.5. Dialog Sebuah dialog adalah jendela kecil yang menampilkan prompt ke pengguna dan menanyakan pengguna untuk mengambil keputusan atau menambahkan informasi tambahan. Sebuah dialog tidak memasukkan layar dan normalnya digunakan untuk event modal yang membutuhkan keputusan pengguna sebelum mengambil action tertentu. 2.8.6. Toast Toast adalah Feedback sederhana yang memberitahukan kepada pengguna dalam bentuk popup kecil. Isinya hanya berupa tempat untuk memasang teks saja, dimana aktivitas yang sedang dilakukan oleh pengguna tetap terlihat dan bisa digunakan secara interaktif. . Kelebihan Toast adalah mudah untuk dibuat, sedangkan kelemahannya adalah pengguna dapat saja tidak melihat pesan yang dikandung Toast. Sebagai contoh, ketika pengguna menutup email sebelum sempat disimpan akan
muncul toast menandakan bahwa pesan disimpan sebagai draft. Untuk membuat toast, perlu membuat instance dari objek toast dengan nama makeText(). Method ini memerlukan tiga parameter, yaitu:
Application Context
Pesan yang ditampilkan
Durasi dari toast
2.8.7. Layout Relative Pada Android, RelativeLayout memungkinkan anda menentukan letak komponen secara relative dengan komponen lainnya. Ini merupakan layout paling fleksibel yang memungkinkan meletakkan posisi komponen dimanapun sesuai keinginan. 2.8.8.
Layout Linier Layout linier adalah layout yang mengatur komponen-komponen
didalamnya secara vertikal atau horizontal dengan atribut orientation. Komponen dengan bobot paling banyak akan mengisi space sisanya dari linierLayout. 2.8.9. Layout Tabel Layout berikutnya adalah TableLayout yang memungkinkan mengatur komponen via baris dan kolom. Mirip dengan layout table standar di HTML yang menggunakan
2.8.10. Layout Frame Frame Layout adalah tipe layout paling sederhana dan paling efisienyang digunakan oleh developer Android untuk mengatur view, namun jarang dipakai karena hanya dipakai untuk menampilkan satu view, atau beberapa view yang overlap.
3.1.1. Gambaran Umum Sistem SMS Mekanisme pengiriman dan penerimaan SMS adalah sebagai berikut awalnya pengirim menginputkan pesan pada editor SMS. Lalu pengirim menginputkan nomor tujuan penerima SMS tersebut. Setelah itu SMS akan sampai pada penerima melalui SMSC (Send Message Service Center). Setelah SMS sampai pada penerima, maka penerima akan membuka SMS tersebut dan membacanya. Sebaliknya jika penerima SMS akan membalas SMS tersebut, maka mekanisme yang dilakukan sama seperti pada saat mengirim SMS. 3.1.2. Gambaran Umum Sistem VinereySMS Aplikasi VinereySMS dibangun untuk melakukan enkripsi pada saat pengiriman SMS dan dekripsi pada saat penerimaan SMS. Mekanisme pengiriman dan penerimaan SMS dengan VinereySMS ini yaitu sebelum melakukan pengiriman SMS user pengirim harus melakukan kesepakatan dengan user penerima mengenai kunci yang akan digunakan. Setelah itu, user harus memasukkan kunci, Setelah user memasukkan kunci maka aplikasi ini akan mengenkripsi SMS tersebut sehingga menjadi ciphertext. Lalu ciphertext tersebut yang nantinya akan sampai pada user penerima SMS.
SMS yang masuk ke smartphone penerima akan disimpan pada kotak masuk sedangkan SMS yang terkirim ke smartphone penerima akan masuk pada kotak keluar. Untuk dapat membaca isi SMS, user penerima harus membuka aplikasi VinereySMS. Dan secara otomatis pesan yang diterima akan masuk pada inbox VinereySMS tersebut. Untuk dapat membacanya, user penerima harus memasukkan kunci pada editor kunci yang berada diatas list pesan yang diterima tersebut. Setelah kunci dimasukkan, lalu user meng-klik pesan yang akan dibaca dan aplikasi akan mendekripsi ciphertext tersebut, sehingga user dapat membaca isi pesan.
VINEREYSMS
VINEREYSMS No.Tujuan
INBOX Ciphertext
Ciphertext
Pesan kunci
kunci List pesan
send
SMSCenter Proses Enkripsi dan menghasilkan ciphertext
Proses Dekripsi dan pesan diubah menjadi plaintext dan user dapat membaca dalam bentuk pop up
Selain mengirim dan menerima SMS, aplikasi VinereySMS ini juga dilengkapi button simpan yang berfungsi untuk menyimpan sementara kunci agar saat user berpindah tap, kunci tetap tersimpan pada editor kunci pada masing-masing tap. Hal tersebut bertujuan untuk memudahkan user saat berkomunikasi menggunakan kunci yang sama. Pada Aplikasi ini juga terdapat menu informasi, yang berisi mengenai petunjuk dan aturan untuk menggunakan aplikasi VinereySMS.
Banyak cara dalam pertukaran kunci namun jalur yang paling aman untuk melakukan pertukaran kunci adalah jalur kopi darat atau langsung bertemu. Jika menggunakan media sosial
yang ada, kunci dapat
dikodekan terlebih dahulu dan hanya kedua entitas yang akan berkomunikasi yang mengetahui maksud dari kode tersebut.
Setelah adanya Tabel Kesepakatan, Alice dapat bertukar Kunci pada Bob dengan menyebutkan nomor pada tabel.
ALICE
Sebelum Alice dan Bob berkirim pesan, Alice dan Bob membuat tabel kesepakatan.
BOB
TABEL KESEPAKATAN
Membuat tabel kesepakatan terlebih dahulu juga dapat dilakukan dalam pertukaran kunci. Pada skema pertukaran kunci diatas, dimisalkan bahwa Alice dan Bob akan berkirim pesan, sebelum melakukan pengiriman pesan Alice dan Bob membuat tabel kesepakatan. Contoh tabel kesepakatan dibawah ini :
Mungkin dalam hidupmu bagai datang menyerbu, Mungkin doamu bagai tak terjawab namun yakinlah tetap Tuhan tidak akan terlambat.
3
………………………………
4
………………………………
5
………………………………
Setelah dibuat tabel kesepakatan, Alice dapat memberitahu Bob mengenai kunci yang akan digunakan melalui media sosial atau komunikasi lainnya dengan angka, misal “1” maka kunci yang akan digunakan adalah “Didalam hidup ini semua ada waktunya. Ada waktunya kita menabur, ada juga waktu menuai.”.
Analisis Sistem Dalam tugas akhir ini akan membahas mengenai cara kerja dari algoritma
Vigenere Running Key untuk menangani proses pengiriman pesan yang terenkripsi dan penerimaan pesan yang terdekripsi. Data yang akan ditangani adalah data pesan dari sistem SMS yang ada pada android. Sistem ini akan diimplementasikan menggunakan sebuah aplikasi dengan platform android (bahasa JAVA) sedangkan untuk penyimpanan data sms menggunakan penyimpanan pada inbox dan outbox yang sudah tersedia pada sistem SMS pada Android. 3.3.
Analisis Masalah Untuk mengamamankan jalur pengiriman SMS, maka diperlukan suatu
aplikasi penyandian SMS yang bertujuan untuk mengamankan isi pesan pada aplikasi SMS, agar isi SMS hanya dapat dibaca oleh pihak yang dituju. Hasil akhir yang diinginkan adalah SMS yang terenkripsi saat dikirimkan dan didekripsi saat diterima.
Aturan Aplikasi Untuk mengoptimalkan kinerja Aplikasi VinereySMS dan menghasilkan
hasil yang akurat dibutuhkan batasan-batasan atau aturan. Berikut ini adalah batasanbatasan (hard constraints dan soft constraints ) yang akan diterapkan dalam Aplikasi VinereySMS : Batasan yang tidak boleh dilanggar (Hard Constraints) 1. Harus menggunakan device android dengan spesifikasi Android Ginger, Android Honeycomb, Android ICE, Android jelly yang dapat mengoperasikan Aplikasi SMS yang sudah ada. 2. Aplikasi VinereySMS harus terinstal pada Android. 3. Aplikasi hanya dapat dijalankan jika kedua pihak(pengirim dan penerima) menginstal aplikasi VinereySMS. 4. Perangkat Android harus terlanggan dengan provider. 5. Pada Pengiriman pesan, No.Tujuan, pesan, dan Kunci harus terisi. 6. Sebelum melakukan pengiriman pesan, kedua user (pengirim dan penerima) harus melakukan kesepakatan mengenai kunci yang akan digunakan. 7. Sedangkan dalam penerimaan pesan, Kunci harus di masukkan terlebih dahulu. Batasan yang sebaiknya tidak dilanggar, tapi jika terlanggar masih dapat ditoleransi (Soft constraints) 1. Panjang kunci harus sama dengan panjang isi pesan. 2. Menggunakan kata kunci yang berbeda-beda untuk setiap penerima.
3. Kata kunci di ubah-ubah secara periodik. 4. Pesan yang terbaca segera dihapus. 3.5.
Peruntukan Aplikasi Aplikasi VinereySMS ini dapat digunakan pada: 1. Perbankan. 2. Organisasi atau antar organisasi. 3. Perusahaan atau antar perusahaan. 4. Universitas. 5. Pihak-pihak yang berkebutuhan Khusus dan rahasia sehingga membutuhkan media pengiriman pesan text yang lebih aman.
3.6.
Pemodelan Algoritma Vigenere Running Key pada Aplikasi Vinerey SMS
Cara Kerja Algoritma Vigenere cipher running key yaitu mengenkripsi plaintext pada pesan dengan cara menggeser huruf pada pesan tersebut sejauh nilai kunci. Sedangkan pada Algoritma Vigenere cipher running key kunci yang digunakan berbentuk deretan kalimat yang memiliki panjang yang sama dengan atau lebih dari panjang plaintext yang diinputkan.
Berikut adalah tahap-tahap Pemodelan Algoritma Vigenere Running Key pada Aplikasi VinereySMS yaitu : a. Pada Proses Enkripsi 1.
Transformasi pesan dan kunci menjadi kode ASCII Proses Enkripsi dimulai dengan melakukan pencarian urutan untuk masing-masing karakter plaintext dan key, sehingga didapatkan angka untuk setiap karakter plaintext dan key yang merupakan urutan pada daftar ASCII.
2.
Menjumlahkan kode ASCII pesan dan kunci Selanjutnya setelah mendapatkan kode ASCII pada masing-masing karakter. Lalu akan dijumlahkan untuk mendapatkan decimal chiper.
3.
Normalisasi desimal chiper Setelah mendapatkan decimal chiper maka akan dilakukan normalisasi, normalisasi ini dilakukan karena kode ASCII yang dapat digunakan untuk aplikasi smartphone hanya dari urutan 32 hingga 126. Normalisasi akan dilakukan dengan tahapan jika decimal chiper lebih kecil dari 158 maka akan dilakukan pengurangan 32, hal tersebut dilakukan agar menjadi range 126. Namun jika lebih besar dari 158 maka akan dikurangi dengan 126 agar menjadi range 32.
Transformasi desimal chiper menjadi karakter chiper Setelah selesai proses normalisasi maka decimal chiper yang berupa kode ASCII akan ubah menjadi karakter chiper yang nantinya akan dikirimkan ke nomor yang dituju.
Berikut adalah contoh penerapan penghitungan manual proses enkripsi :
Berikut adalah algoritma method enkripsi dengan Vigenere Running Key yang akan diterapkan pada kelas Vinerey
1. Mulai. 2. Deklarasikan atribut hasil bertipe string sama dengan “ “. 3. Deklarasikan atribut tampung bertipe int sama dengan 0. 4. Deklarasikan atribut tampungChar bertipe char 5. Untuk i=0 sampai I kurang dari panjang pesan lakukan langkah. 6. Ubah pesan menjadi kode ASCII. 7. Ubah kunci menjadi kode ASCII. 8. Jumlah kode pesan dengan kode pesan. 9. Hasil penjumlahan ditampung pada variabel tampung. 10. Apakah, tampung <= 158 ? a. Ya, tampung-32. b. Tidak, tampung-126. 11. Ubah tampung menjadi karakter. 12. Selesai.
Transformasi karakter chiper menjadi kode ASCII Proses dekripsi dimulai dengan mengubah karakter chiper yang diterima menjadi kode ASCII sehingga menjadi decimal chiper.
2.
Normalisasi kode ASCII chiper Setelah itu akan dilakukan normalisasi. a. Decimal chiper akan ditambah dengan 32. b. Setelah itu decimal chiper dikurangi dengan decimal key c. Lalu hasil pengurangan decimal chiper tersebut akan dinormalisasi kembali, jika lebih kecil dari 32 maka ditambah dengan 94 agar menjadi range 126, dan jika tidak maka tetap.setelah normalisasi selesai maka akan diperoleh decimal plaintext.
3.
Transformasi kode ASCII plaintext menjadi karakter plaintext Setelah mendapatkan decimal plaintext, maka akan diubah menjadi karakter kembali, dan plaintext dapat dibaca oleh user.
Berikut adalah contoh penerapan penghitungan manual proses dekripsi :
Berikut adalah algoritma method dekripsi dengan Vigenere Running Key yang akan diterapkan pada kelas Vinerey 1. Mulai. 2. Deklarasikan atribut hasil bertipe string sama dengan “ “. 3. Deklarasikan atribut tampung bertipe int sama dengan 0. 4. Untuk i=0 sampai I kurang dari panjang pesan lakukan langkah. 5. Ubah pesan(Chiper) menjadi kode ASCII + 32. 6. Hasil penjumlahan ditampung pada variabel tampung. 7. Apakah, tampung < 32? 8. tampung+94. 9. Ubah tampung menjadi karakter. 10. Selesai.
3.7.2. Narasi Use Case Skenario Use Case Mengirim SMS Aktor
: Pengirim
Kondisi awal
: Aktor belum mengirim SMS
Kondisi Akhir
: Aktor sudah mengirim SMS
Actor Action
System Respons
1. Pengguna membuka Aplikasi VinereySMS. 2. Sistem menampilkan menu Tulis. 3. User memasukkan No.hp, Pesan, Kunci . 4. Sistem melakukan enkripsi terhadap pesan yang akan dikirim, kemudian sistem mengirimkan pesan ke no HP tujuan. 5. Sistem menampilkan toast yang berisi bahwa sms sukses dikirimkan Tabel 3. 1 Narasi Usecase Mengirim SMS
System Respons 1. Sistem menampilkan peringatan bahwa ada pesan masuk.
2. User membuka Aplikasi VinereySMS 3. User memilih menu Inbox. 4. Sistem menampilkan list pesan yang diterima beserta dengan Nomor pengirim. 5. User memasukkan kunci 6. User memilih pesan yang akan dibaca 7. Sistem melakukan dekripsi pada pesan yang dipilih, dan menampilkan form yang berisi pesan asli (plaintext) yang dapat dibaca user Tabel 3. 2 Narasi Usecase Menerima SMS
1. User membuka Aplikasi VinereySMS 2. Sistem menampilkan Menu Utama 3. Jika user ingin menghapus pesan masuk, maka user memilih menu Inbox. Jika user ingin menghapus pesan keluar, maka user memilih menu outbox. 4. Sistem menampilkan list pesan 5. User memilih (hold tap) pesan yang akan dihapus. 6. Sistem menampilkan pilihan Delete pesan. 7. User memilih Delete. 8. Sistem menghapus pesan. Tabel 3. 3 Narasi Usecase Menghapus SMS
Aplikasi yang akan dibangun memiliki fungsi yang sama dengan sms biasa. Didalam Aplikasi terdapat menu Tulis pesan, Kotak Masuk, Kotak keluar, dan Petunjuk. Hanya berbeda saat melakukan pengiriman Pesan, saat pesan akan dikirimkan, terlebih dahulu pesan akan dienkripsi, agar pesan yang melewati Short Message Service Center (SMSC) bukan pesan yang bisa terbaca, namun disamarkan seperti pesan sembarang. Begitu juga saat penerimaan pesan, pesan akan didekripsi untuk mengembalikan pesan agar dapat dibaca.
Tampilan utama Aplikasi VinereySMS yaitu: 1. Form Menu Utama Pada saat user membuka aplikasi VinereySMS, maka menu utama yang tampil seperti berikut:
Gambar 3. 8 Tampilan Menu Utama
Pada menu utama Vinerey SMS ini berisi beberapa tab yang mempunyai fungsinya masing-masing, seperti tulis, inbox, outbox, dan info. Setelah user membuka Aplikasi VinereySMS, maka langsung masuk pada menu tulis. Menu tulis ini berguna untuk menulis SMS. Seperti yang terlihat pada Gambar 3.20 terdapat 3 button yaitu send, encrypt, dan reset. Button Send berguna untuk mengirimkan SMS, button Encrypt berguna agar user dapat
mengetahui hasil enkripsi pesan dengan memunculkan pop up hasil enkripsi, dan yang terakhir button Reset berguna untuk menghapus semua termasuk no. tujuan, kata kunci, dan isi pesan yang sudah dimasukkan. 2. Form Menu Inbox Menu ini berguna untuk user saat akan membuka SMS. Pada menu Inbox ini, semua pesan yang diterima terdapat pada inbox list. Namun sebelum user memilih pesan mana yang akan dibuka, user harus memasukkan kata kunci terlebih dahulu.
3. Form Menu Outbox Menu Outbox ini berguna untuk user saat akan membuka SMS yang telah dikirim. Pada menu Outbox ini, semua pesan yang telah terkirim terdapat pada outbox list. Jika user ingin membuka pesan yang telah dikirim tersebut user harus memasukkan kata kunci terlebih dahulu.
4. Form Menu Info Menu Info ini berguna untuk sebagai petunjuk bantuan bagi user yang mungkin belum mengetahui bagaimana mengoprasikan aplikasi VinereySMS ini.
4.1.1. Perangkat yang digunakan Perangkat lunak yang digunakan dalam pengimplementasian sistem ini adalah: 1. Eclipse IDE v 4.2. 2. Sistem Operasi Windows 8, 64 bit. 3. JDK (Java Development Kit) 64 bit. 4. Android SDK. 5. ADT (Android Development Tools). Perangkat keras yang digunakan dalam pembuatan sistem ini adalah computer dengan spesifikasi sebagai berikut: 1. Prosesor Intel Core i5 CPU 1.70 GHz. 2. RAM 4.00 GB. 3. Harddisk Hitachi 500 GB. 4.2.
Penyelesaian Enkripsi Metode Running Key Vigenere Cipher Metode vigenere cipher adalah metode enkripsi dekripsi simetris.
Dalam melakukan enkripsi dan dekripsi, metode running key Vigenere cipher ini sama hal nya dengan metode Vigenere biasa yang berbeda adalah kunci yang dipakai dan panjang kuncinya.
4.2.1. Enkripsi Menggunakan Metode Running key Vigenere Cipher Untuk mengenkripsi pesan, langkah pertama yang dilakukan adalah mengubah pesan dan kunci yang berupa karakter menjadi angka yang merupakan urutan dari tabel ASCII. Berikut adalah potongan program pada Method enkripsi:
Terlihat pada potongan program diatas setelah pesan dan key menjadi code ASCII, maka akan dilakukan penjumlahan lalu hasil dari penjumlahan akan dimasukkan pada tampung. Setelah hasil penjumlahan disimpan pada tampung, jika tampung lebih kecil atau sama dengan 158 maka akan dikurangi dengan 32 agar berada pada range 126 jika tidak maka akan dikurangi 126 agar berada pada range 32. Setelah itu hasil dari tampung tersebut akan diubah menjadi karakter sebagai chipertext.
4.2.2. Dekripsi Menggunakan Metode Running key Vigenere Cipher Penyelesaian dekripsi dimulai dengan melakukan pencarian urutan untuk karakter ciphertext. Sehingga didapatkan angka untuk karakter ciphertext yang merupakan urutan pada daftar ASCII.
Setelah mendapatkan code ASCII pada chipertext lalu akan dinormalisasi dengan ditambah 32 setelah itu akan masuk pada normalisasi berikutnya maka jika lebih kecil dari 32 maka akan ditambah dengan 94 agar masuk pada range 126, jika tidak maka tetap. Setelah itu akan ditansformasikan menjadi karakter yang merupakan plaintext dan dapat dibaca.
4.3. Tampilan Aplikasi pada Smartphone Android berserta potongan program Berikut ini akan dijelaskan mengenai tampilan aplikasi VinereySMS menggunakan beserta potongan program. 4.3.1. Menu Utama
Pada gambar 4.1 menunjukan tampilan Menu Utama pada smartphone yang akan ditampilkan pertama kali ketika aplikasi dijalankan. Pada Menu Utama, terdapat 4 pilihan yang disajikan dalam bentuk tab, berikut ini : 1. Tulis Pada menu Tulis ini berfungsi untuk melakukan pengiriman pesan baru.
2. Inbox Pada menu Inbox ini berfungsi untuk menampilkan list pesan yang diterima beserta penginputan kunci, mengedit pesan yang diterima, membalas pesan yang diterima, dan menghapus pesan yang diterima. 3. Outbox Pada menu Outbox ini berfungsi untuk menampilkan pesan yang terkirim beserta penginputan kunci jika user ingin melihat isi pesan yang terkirim, mengedit pesan yang terkirim, membalas pesan yang terkirim, dan menghapus pesan yang terkirim. 4. Info Pada menu Info ini berfungsi untuk menampilkan informasi tentang Aplikasi VinereySMS.
Pada gambar 4.2 menunjukan tampilan Pada menu Tulis. Menu ini digunakan saat user akan mengirimkan pesan baru. Pada Menu ini, terdapat Textbox untuk 1. Mengisi no hp, yang berfungsi meng-inputkan nomor tujuan 2. Mengisi pesan, yang berfungsi meng-inputkan isi pesan 3. Mengisi kunci, yang berfungsi meng-inputkan kunci 4. cari kontak, yang berfungsi jika user akan mencari kontak
Berikut adalah potogan program yang digunakan untuk cari kontak
Selain itu, pada Menu tulis ini terdapat beberapa button 1.
Simpan, yang berfungsi untuk menyimpan kunci sementara jika user akan berpindah-pindah tab, sekaligus akan menyimpan pada text box kunci yang berada pada inbox dan outbox. Untuk lebih jelasnya, dapat diperhatikan pada tampilan di bawah ini:
Ketika Button Simpan di-klik maka button akan menjadi button lepas, dan menyimpan kunci pada textbox kunci, penyimpanan kunci sementara ini juga menyimpan pada kunci di menu Inbox dan menu Outbox.
Encrypt, yang berfungsi untuk mengenkripsi isi pesan sebelum pesan dikirimkan, button ini dapat digunakan oleh user, jika user ingin melihat hasil enkripsi pesan yang akan dikirimkan. Hasil Enkripsi Pesan akan ditampilkan diatas button.
Pada gambar 4.6 menunjukan tampilan menu Inbox. Pada menu ini, pesan yang memiliki header VN- akan diterima dan ditampilkan pada list pesan. Jika user akan membuka dan membaca pesan tersebut maka kata kunci harus diinputkan terlebih dahulu. Selain itu pada menu ini, terdapat reply,forward dan delete. Berikut adalah potongan program untuk menu Inbox
Pada gambar 4.7 menunjukan tampilan menu Outbox. Pada menu ini, pesan yang terkirim akan ditampilkan pada list pesan. Jika user ingin membuka dan membaca pesan tersebut maka kata kunci harus diinputkan terlebih dahulu. Pada menu ini juga terdapat reply,forward dan delete. Berikut adalah potongan program untuk menu Outbox
Berikut adalah potongan program untuk reply forward dan delete yang ada pada Menu Inbox maupun Outbox
4.3.5.
Menu Info
Pada gambar 4.8 menunjukan tampilan menu info. Menu info ini berisi petunjuk penggunaan aplikasi VinereySMS. Berikut adalah potongan program untuk Menu Info
Pop-up Peringatan Beberapa peringatan atau pesan error ditampilan pada aplikasi melalui
pop-up. Pop-up peringatan tersebut adalah pop-up validasi no. HP, pop-up validasi pesan, pop-up validasi kunci, Pop-up informasi pesan berhasil dikirim. Berikut ini adalah cuplikan kode program yang digunakan untuk membuat pop-up. Berikut ini adalah tampilan pop-up peringatan pada Aplikasi VinereySMS. 1. Pop-up validasi no. HP
Berikut adalah potongan program untuk validasi no HP
Pengiriman Pesan Pengiriman SMS dapat dilakukan dengan cara menulis SMS baru,
mengedit SMS diterima, mengedit SMS terkirim, dan membalas pesan yang telah diterima dilanjutkan dengan pengiriman SMS. 4.4.1.1.
Tulis SMS baru
Langkah-langkah untuk melakukan pengiriman SMS baru dengan cara membuat SMS baru adalah sebagai berikut: 1. Memilih tab menu Tulis.
2. Menginputkan no. HP. Dalam penginputan nomor tujuan dapat dilakukan dengan 2 cara, user meng-inputkan manual nomor tujuan, atau user menggunakan cari kontak, untuk mencari dari kontak yang sudah tersimpan pada android.
3. Memasukkan pesan yang akan dikirim pada textbox pesan . Pesan yang valid adalah pesan dengan maksimal panjang karakter sebanyak 157 karakter. Pengujian dilakukan dengan meng-input-kan 157 karakter yang terdiri dari abjad ‘a-o’ @10 karakter ditambah dengan abjad ‘p’ sebanyak 7 karaker.
4. Memasukkan kata kunci pada textbox Kunci. Panjang minimal kata kunci adalah sebanyak panjang isi pesan yang sudah diinputkan. Panjang maksimal kunci sebanyak 157 karakter. Pengujian yang dilakukan sama dengan pengujian kolom pesan, yaitu dengan meng-input-kan 157 karakter yang terdiri dari abjad ‘a-o’ @10 karakter ditambah dengan abjad ‘p’ sebanyak 7 karaker.
5. Meng-klik button send. Dan akan mendapatkan informasi apakah pesan sudah terkirim. 4.4.1.2.
Edit SMS diterima
Untuk melakukan pengiriman SMS dengan mengedit SMS diterima, langkah-langkah yang harus dilakukan adalah sebagai berikut: 1. Memilih tab menu Inbox.
2. Untuk memunculkan fungsi forward pada menu inbox maka harus dilakukan hold tap pada pesan yang dipilih.
3. Memasukkan kunci yang diinginkan, dilanjutkan dengan memasukkan nomor tujuan. Dan dilanjutkan dengan mengklik button send. Dan akan mendapatkan informasi apakah pesan sudah terkirim.
3. Memasukkan kunci yang diinginkan, dilanjutkan dengan memasukkan nomor tujuan. Dan dilanjutkan dengan mengklik button send. Dan akan mendapatkan informasi apakah pesan sudah terkirim.
2. Untuk memunculkan fungsi reply pada menu inbox maka harus dilakukan hold tap pada pesan yang dipilih.
3. Memasukkan kunci yang diinginkan, dilanjutkan dengan memasukkan nomor tujuan. Dan dilanjutkan dengan mengklik button send. Dan akan mendapatkan informasi apakah pesan sudah terkirim.
Simulasi pendistribusian Kunci Pengujian Aplikasi VinereySMS juga dilakukan dengan simulasi
real pada metode distribusi kunci. Pengujian bertujuan untuk mengetahui apakah dengan menggunakan panduan manual pemakaian Aplikasi VinereySMS user dapat mengoperasikan Aplikasi dan metode distribusi kunci dapat diterapkan. Pengujian
disimulasikan
pada
beberapa
responden
secara
acak(tidak saling kenal). Sasaran pengujian tersebut adalah beberapa mahasiswa Farmasi, matematika, Teknik Mesin, dan Psikologi yang diambil secara acak. Untuk setiap responden hanya diberi panduan manual pemakaian Aplikasi VinereySMS dan nomor tujuan dimana masing-masing responden akan mengirimkan SMS. Didalam panduan manual penggunaan Aplikasi VinereySMS berisi tampilan Menu, fungsi dari setiap menu, cara mengoperasikan Aplikasi VinereySMS, dan metode pendistribusian kunci. Setiap responden dihimbau untuk menggunakan metode distribusi kunci yang dianjurkan pada panduan. Sedangkan responden sebagai user penerima harus membuka dan membaca pesan dengan menggunakan kunci yang telah disepakati. Pada pengujian tersebut dibagi menjadi 2 skenario pengiriman SMS. Skenario Pertama untuk 1 responden sebagai user pengirim melakukan pengiriman SMS kepada 1 responden lain sebagai user penerima, lalu responden sebagai user penerima harus membuka isi pesan. Sedangkan skenario kedua, 3 responden sebagai user pengirim
Hasil Pengujian Sistem User dapat menggunakan dan memanfaatkan aplikasi VinereySMS jika user
telah melakukan instalasi aplikasi VinereySMS pada Smartphone Android sesuai dengan spesifikasi. Sebelum melakukan pengiriman dan penerimaan pesan, penerima dan pengirim harus melakukan perjanjian mengenai kata kunci yang akan digunakan untuk melakukan enkripsi dan dekripsi pesan. Kata kunci pada VinereySMS ini berupa text yang dapat diambil dari ebook, majalah, novel, atau buku yang terkenal lainnya. Karena kata kunci berupa kalimat maka kata kunci pada Aplikasi VinereySMS ini didesain untuk memanfaatkan copy-paste pada perangkat android, dan juga fasilitas searching menggunakan mesin pencari yang sudah ada pada android, menggingat pastinya perangkat Smartphone Android pasti mengaktifkan paket Internet. Jika kata kunci yang dimasukkan oleh penerima tidak sama dengan kata kunci yang dimasukkan oleh pengirim, maka pesan yang ditampilkan tidak akurat atau tidak sama dengan isi pesan yang dikirimkan oleh pengirim.
5.1.1. Pengujian dengan Smartphone android berbeda versi dan merek Pengujian aplikasi VinereySMS dilakukan dengan menggunakan Smartphone Android Samsung Wonder, Lenovo S850 v4.2 (Jelly Bean), Oppo Neo R813 v4.0.4 (Ice Cream Sandwich) No Aksi
5.1.2. Analisa hasil uji coba pengguna (kuisioner) Uji coba terhadap pengguna dilakukan dengan menyebarkan kuisioner kepada 30 orang. Sasaran penyebaran kuisioner tersebut terdiri dari 30 mahasiswa sebagai user. Hasil jawaban responden kemudian diolah sehingga memperoleh hasil sebagai berikut: Pertanyaan 1 : Aplikasi VinereySMS mudah dioperasikan Jumlah Jawaban Responden Total Sangat Setuju 13 43% Setuju 16 53% Ragu – ragu 1 3% Tidak Setuju 0 0% Sangat Tidak Setuju 0 0% Tabel 5. 2 Tabel hasil kuisioner pertanyaan 1
Dari perhitungan di atas dapat dianalisa bahwa secara umum Aplikasi VinereySMS mudah dioperasikan. Pertanyaan 2 : Menu-menu pada Aplikasi VinereySMS mudah digunakan Jumlah Jawaban Responden Total Sangat Setuju 9 30% Setuju 19 63% Ragu – ragu 2 6% Tidak Setuju 0 0% Sangat Tidak Setuju 0 0% Tabel 5. 3 Tabel hasil kuisioner pertanyaan 2
Gambar 5. 2 Grafik Pertanyaan 2
Dari perhitungan di atas dapat dianalisa bahwa secara umum menu-menu pada Aplikasi VinereySMS mudah digunakan
Pertanyaan 3 : Aplikasi VinereySMS menarik Jumlah Jawaban Responden Total Sangat Setuju 13 43% Setuju 17 56% Ragu – ragu 0 0% Tidak Setuju 0 0% Sangat Tidak Setuju 0 0% Tabel 5. 4 Tabel hasil kuisioner pertanyaan 3
Gambar 5. 3 Grafik Pertanyaan 3 Dari perhitungan di atas dapat dianalisa bahwa secara umum bahwa Aplikasi VinereySMS menarik.
Pertanyaan 4 : Aplikasi VinereySMS mudah dipahami Jumlah Jawaban Responden Total Sangat Setuju 10 33% Setuju 18 60% Ragu – ragu 2 6% Tidak Setuju 0 0% Sangat Tidak Setuju 0 0% Tabel 5. 5 Tabel hasil kuisioner pertanyaan 4
Gambar 5. 4 Grafik Pertanyaan 4
Dari perhitungan di atas dapat dianalisa bahwa secara umum Aplikasi VinereySMS mudah digunakan.
Pertanyaan 6: Aplikasi VinereySMS dapat berjalan lancar Jumlah Jawaban Responden Total Sangat Setuju 5 16% Setuju 18 60% Ragu – ragu 7 23% Tidak Setuju 0 0% Sangat Tidak Setuju 0 0% Tabel 5. 7 Tabel hasil kuisioner pertanyaan 6
Gambar 5. 6 Grafik Pertanyaan 6
Dari perhitungan di atas dapat dianalisa bahwa secara umum Aplikasi VinereySMS dapat berjalan lancar.
Pertanyaan 7 : Aplikasi VinereySMS dapat berjalan stabil Jumlah Jawaban Responden Total Sangat Setuju 7 23% Setuju 12 40% Ragu – ragu 11 36% Tidak Setuju 0 0% Sangat Tidak Setuju 0 0% Tabel 5. 8 Tabel hasil kuisioner pertanyaan 7
Gambar 5. 7 Grafik Pertanyaan 7
Dari perhitungan di atas dapat dianalisa bahwa secara umum Aplikasi VinereySMS dapat berjalan stabil.
Pertanyaan 9 : Kenyamanan menggunakan aplikasi secara keseluruhan Jumlah Jawaban Responden Total Sangat Setuju 8 26% Setuju 19 63% Ragu – ragu 3 10% Tidak Setuju 0 0% Sangat Tidak Setuju 0 0% Tabel 5. 10 Tabel hasil kuisioner pertanyaan 9
Gambar 5. 9 Grafik Pertanyaan 9
Dari perhitungan di atas dapat dianalisa bahwa secara umum pengguna merasa nyaman menggunakan aplikasi secara keseluruhan.
5.2. Kelebihan Sistem Setelah melakukan pengujian terhadap aplikasi VinereySMS. Didapatkan hasil bahwa Sistem ini memiliki kelebihan sebagai berikut: 1. Karena Aplikasi dibangun dengan menggunakan Algoritma Vigenere Running Key maka hasil enkripsi tidak bisa dikenakan teknik kasiski karena ciphertext yang dihasilkan tidak berpola dan meminimalkan erjadinya brute force sehingga dapat dipastikan aplikasi lebih aman. 2. Jumlah maksimal karakter pesan pada VinereySMS kurang lebih sama dengan karakter pesan pada SMS biasa. 3. Mengingat kunci yang digunakan berupa text, maka sistem ini dilengkapi dengan toast peringatan jika panjang kunci masih belum sama dengan panjang pesan, sehingga memudahkan user untuk proses pengiriman pesan 4. Sistem ini menyediakan button simpan yang berguna untuk menyimpan sementara kunci, sehingga memudahkan user jika masih akan melakukan komunikasi SMS dengan orang yang sama dan dengan kunci yang sama.
5.3. Kekurangan Sistem Setelah melakukan pengujian terhadap aplikasi VinereySMS. Didapatkan hasil bahwa Sistem ini memiliki kekurangan sebagai berikut: 1. Service pengiriman SMS pada aplikasi hanya bisa menggunakan layanan yang ada pada SIM Card yang terdeteksi sebagai SIM 1 atau SIM utama, sehingga pada perangkat android yang memiliki dual SIM Card atau lebih tidak dapat melakukan pemilihan kartu SIM untuk melakukan proses pengiriman pesan.
BAB VI PENUTUPAN 6.1. Kesimpulan Berdasarkan hasil analisis, desain dan implementasi, serta uji coba sistem ini dapat disimpulkan bahwa : 1. Dengan mengimplementasikan algoritma Vigenere dengan variasi Running key pada aplikasi VinereySMS maka aplikasi menjadi lebih aman, karena pada cipherteks yang dihasilkan tidak terjadi pengulangan untuk setiap plainteks yang sama atau tidak berpola. 2. Dengan menerapkan algoritma Running-key Vigenere cipher maka jumlah maksimal karakter dalam setiap pengiriman SMS dengan menggunakan aplikasi VinereySMS kurang lebih sama dengan jumlah maksimal karakter pada SMS biasa. 3. Aplikasi VinereySMS dapat menambah daya guna sistem SMS. Hal tersebut dibuktikan dengan hasil uji coba pengguna menyatakan 15 dari 30 responden (50%) menyatakan sangat
setuju bahwa aplikasi VinereySMS dapat
bermanfaat dan membantu menjaga kerahasiaan pesan (SMS). 4. Aplikasi VinereySMS mudah dioperasikan. Hal tersebut dibuktikan pada saat pengujian simulasi distribusi kunci semua responden dapat mengoperasikan aplikasi dengan bantuan panduan manual selain itu hasil uji coba pengguna menyatakan 13 dari 30 responden (43%) menyatakan sangat setuju bahwa
aplikasi VinereySMS mudah dioperasikan. Sementara 16 dari 30 responden (53%) menyatakan setuju bahwa aplikasi VinereySMS mudah dioperasikan. 5. Berdasarkan hasil pengujian simulasi distribusi kunci, pendistribusian kunci dengan metode tabel kesepakatan dapat dietrapkan namun akan menjadi tidak efisien saat terjadi komunikasi dengan beberapa user. Pendistribusian kunci dapat dilakukan dengan menggunakan media komunikasi lain seperti telefon, email. 6.2. Saran
Saran yang penulis dapat berikan dalam pengembangan sistem ini adalah pengembang Aplikasi selanjutnya dapat mengembangkan aplikasi VinereySMS dengan menambahkan fitur pemilihan SIM Card pada perangkat Android yang memiliki dual SIM Card atau lebih.
DWINANTO, A. D. (2014). Penerapan Algoritma AES (Advance Encryption Standard) 128 dan Vigenere Cipher pada Aplikasi Enkripsi Pesan Singkat Berbasis Android (Doctoral dissertation, Universitas Negeri Gorontalo).
[2].
Defni, D., & Rahmayuni, I. (2014). Enkripsi SMS (Short Message Service) pada telepon selular berbasis android dengan metode RC6. Jurnal Momentum ISSN: 1693-752X, 16(1).
[3].
Irwan. Perancangan Aplikasi SMS (Short Message Service) Dengan enkripsi teks menggunakan algoritma Block Cipher AES (Advanced Encrypt Standard) Berbasis Mobile pada Platform Android. Fakultas Teknik Universitas Tanjungpura.
[4].
KURNIAWATI, A., Agusten, D., & Hutagalung, H. W. Aplikasi Enkripsi dan Dekripsi Pada Short Message Service Menggunakan Algoritma Vigenere.
[5].
RESPATIONO, U. S. Venigmare Cipher dan Vigenere Cipher. Fakultas Teknik Informatika Institut Teknologi Bandung.
[6].
ANJARI, B. G. Enkripsi SMS (Short Message Service) pada Telepon Selular Berbasis Android.
[7].
DWI, A. K. Penenerapan algoritma Vigenere Cipher pada Aplikasi SMS Android. Institut Teknologi Bandung.
NUGROHO, B. K. (2010). Aplikasi Enkripsi SMS pada Telepon Selular berbasis J2ME dengan Metode Vigenere Chiper (Doctoral dissertation, Faculty of Mathematics and Natural Sciences).
[9].
RINTIKASARI, M. Y. (2008). Aplikasi Enkripsi dan Dekripsi SMS dengan Metode Vigenere Cipher Menggunakan J2ME. Universitas Sanata Dharma Yogyakarta.
[10].
Hernita, 2013, Android Programming with Eclipse, Penerbit Andi, Yogyakarta.
[11].
Aji,
Foss.,
2011,
Simetris
Kriptografi,
http://idnetwork2102.wordpress.com/2011/03/22/simetris-kriptografi/ (akses tanggal 22 November 2014).
Form Kuisioner KUISIONER PENGUJIAN APLIKASI VINEREYSMS
Nama : Nim : Prodi : Menggunakan Android versi : Setelah anda menjalankan Aplikasi VinereySMS. Silahkan isi data-data dibawah ini dengan memberikan tanda untuk jawaban setiap pernyataan yang menurut anda paling tepat dengan aplikasi tersebut. Keterangan: SS = Sangat Setuju S = Setuju R = Ragu-ragu TS = Tidak Setuju STS = Sangat Tidak Setuju Pernyataan
SS
S
R
TS
Aplikasi VinereySMS mudah dioperasikan Menu-menu pada Aplikasi VinereySMS mudah digunakan Aplikasi VinereySMS menarik Aplikasi VinereySMS mudah dipahami Aplikasi VinereySMS bermanfaat dan dapat membantu menjaga kerahasiaan pesan(SMS) Aplikasi VinereySMS dapat berjalan lancar Aplikasi VinereySMS dapat berjalan stabil Aplikasi VinereySMS membebani sistem pada Android yang anda punya Kenyamanan menggunakan aplikasi secara keseluruhan