APLIKASI SMS BERBASIS ANDROID DENGAN
ENKRIPSI
VIGENERE RUNNING KEY
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Disusun oleh
Tiara Kusuma Ayu
105314015
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ANDROID BASED SMS APPLICATION WITH
ENCRYPTION VIGENERE RUNNING KEY
THESIS
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Komputer Degree
In Informatics Engineering
By:
Tiara Kusuma Ayu
105314015
INFORMATION ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
HALAMAN PERSEMBAHAN
Karya ini saya persembahkan kepada :
Tuhan Yesus Kristus, yang selalu membantu dan memberikan solusi dalam doa.
Bunda Maria , yang selalu menularkan kesabaran dan pengabulan atas doa novena tiga salam maria.
Bapak, Ibu, Alfin, yang selalu mendorong, menyemangati, memfasilitasi dan mendoakanku.
PERNYATAAN KEASLIAN KARYA
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.
Yogyakarta, 19 Januari 2015
Penulis
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. Masing-masing 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
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.
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
pihak-pihak 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
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
Penulis,
DAFTAR ISI
HALAMAN PERSETUJUAN ... i
HALAMAN PERSEMBAHAN ... iii
PERNYATAAN KEASLIAN KARYA ... iv
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... v
ABSTRAK ... vi
1.6. Metodologi Penelitian... 6
1.7. Sistematika Penulisan ... 7
BAB II LANDASAN TEORI ... 9
2.1 Kriptografi ... 9
2.1.1. Algoritma Vigenere ... 12
2.1.2. The Run-Key Vigenere Cipher ... 16
2.1.3. Kunci Simetris ... 17
2.1.4. Distribusi kunci simetris ... 18
2.2. Short Message Service (SMS) ... 27
2.2.1. Keunggulan SMS ... 27
2.2.2. Kekurangan SMS ... 28
2.3. Android ... 29
2.3.1. Versi Android ... 32
2.3.2. Android Software Development Kit (SDK) ... 33
2.3.3. Android Development Tools (ADT) ... 34
2.4. Java ... 34
2.5. SQLite... 35
2.6. Metode Analisis Sistem ... 35
2.6.1. Use Case ... 35
2.6.2. Sequenced Diagram ... 37
2.6.3. Class Diagram ... 37
2.7. Event Input ... 38
2.7.1. Event Listener ... 38
2.8. Komponen-komponen Layout ... 39
2.8.1. Layout ... 39
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 45
3.1. Gambaran Umum Sistem... 45
3.1.1. Gambaran Umum Sistem SMS ... 45
3.1.2. Gambaran Umum Sistem VinereySMS ... 45
3.1.3. Gambaran Umum Mekanisme Pertukaran Kunci ... 48
3.2. Analisis Sistem ... 51
3.3. Analisis Masalah ... 51
3.4. Aturan Aplikasi ... 52
3.5. Peruntukan Aplikasi ... 53
3.6. Pemodelan Algoritma Vigenere Running Key pada Aplikasi Vinerey SMS .. 53
3.7. Analisis Kebutuhan Sistem ... 59
3.7.1. Use Case Diagram ... 59
3.7.2. Narasi Use Case ... 60
3.7.3. Diagram Aktifitas Setiap Usecase ... 63
3.7.5. Class Diagram ... 69
3.8. Desain Fisikal ... 70
3.8.1. Arsitektur Aplikasi ... 70
3.8.2. Rancangan Antarmuka ... 71
BAB IV IMPLEMENTASI SISTEM ... 76
4.1. Implementasi Sistem... 76
4.1.1. Perangkat yang digunakan ... 76
4.2. Penyelesaian Enkripsi Metode Running Key Vigenere Cipher ... 76
4.2.1. Enkripsi Menggunakan Metode Running key Vigenere Cipher ... 77
4.2.2. Dekripsi Menggunakan Metode Running key Vigenere Cipher ... 78
4.3. Tampilan Aplikasi pada Smartphone Android berserta potongan program .... 79
4.3.1. Menu Utama ... 79
4.4. Pengujian Aplikasi ... 96
4.4.1. Pengiriman Pesan ... 96
4.4.1.6. Penghapusan SMS diterima ... 105
4.4.1.7. Penghapusan SMS terkirim ... 106
4.4.2. Simulasi pendistribusian Kunci ... 108
BAB V ANALISIS DAN HASIL IMPLEMENTASI ... 110
5.1. Hasil Pengujian Sistem ... 110
5.1.1. Pengujian dengan Smartphone android berbeda versi dan merek ... 111
5.1.2. Analisa hasil uji coba pengguna (kuisioner) ... 113
5.2. Kelebihan Sistem ... 122
5.3. Kekurangan Sistem ... 123
BAB VI PENUTUPAN ... 124
6.1. Kesimpulan ... 124
DAFTAR PUSTAKA ... 126
LAMPIRAN... 128
Daftar Gambar
Gambar 2. 1 Enkripsi dan Dekripsi dengan kunci Simetri ... 11Gambar 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. 8 Grafik Pertanyaan 8 ... 120
Gambar 5. 9 Grafik Pertanyaan 9 ... 121
Daftar Tabel
Tabel 3. 1 Narasi Usecase Mengirim SMS ... 60Tabel 3. 2 Narasi Usecase Menerima SMS ... 61
Tabel 3. 3 Narasi Usecase Menghapus SMS ... 62
Tabel 5. 1 Tabel Pengujian Aplikasi VinereySMS dengan Smartphone ... 112
Tabel 5. 2 Tabel hasil kuisioner pertanyaan 1... 113
Tabel 5. 3 Tabel hasil kuisioner pertanyaan 2... 114
Tabel 5. 4 Tabel hasil kuisioner pertanyaan 3... 115
Tabel 5. 5 Tabel hasil kuisioner pertanyaan 4... 116
Tabel 5. 6 Tabel hasil kuisioner pertanyaan 5... 117
Tabel 5. 7 Tabel hasil kuisioner pertanyaan 6... 118
Tabel 5. 8 Tabel hasil kuisioner pertanyaan 7... 119
Tabel 5. 9 Tabel hasil kuisioner pertanyaan 8... 120
BAB I
PENDAHULUAN
1.1. Latar Belakang
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
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
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
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?
1.3. Tujuan Penelitian
Tujuan dari penelitian ini adalah:
1. Mengetahui cara kerja Algoritma Vigenere dengan variasi
Running-key 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 VN-
yang 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
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
langkah-langkah 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.
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,
Running-Key Vigenere Cipher.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang analisis kebutuhan pada aplikasi
BAB IV 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
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
7. 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 mencoba menangkap pesan selama
ditransmisikan. 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,
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.
2.1.1. Algoritma Vigenere
Vigenere cipher merupakan salah satu algoritma klasik yang
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 :
Algoritma dekripsi vigenere cipher :
Cn= (Pn+Kn) mod 256
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.
Sebagai contoh, jika plaintext adalah
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
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 :
Ci= (Pi + Ki) mod 128
Contoh penyelesaian Vigenere chipper extended sederhana:
Plainteks :gorontalo
Key :arif
Ciphertext : Ha[UOfJRP
2.1.2. The Run-Key Vigenere Cipher
Pada aplikasi VinereySMS ini, Algoritma Vigenere yang digunakan
yaitu yang telah divariasi dalam pembentukan kuncinya, yaitu dengan
Run-Key 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. Plaintext : BUKUKRIPTOGRAFI
Key : INDONESIATANAHA
Ciphertext : JHNIXVAXTHGEAMI
Ciphertext : {YGcQe@’Vu?Xs$fX
3. Plaintext : 209790854
Key : INDONESIA
Ciphertext : [~}()u-~u
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
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
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
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 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
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
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
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
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
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.
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
2.2. 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
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
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. 9 Arsitektur Android
Penjelasan masing-masing lapisan:
1. Linux Kernel
Linux Kernel adalah layer dimana inti dari operating sistem dari
Android itu berada.
2. Libraries
Libraries ini adalah layar di mana fitur-fitur Android berada.
SSL(Secure Sockets Layer), serta:
Libraries media untuk pemutaran media audio dan video.
Libraries untuk manajemen tampilan.
Libraries Graphic mencakup SGL (Scene Graph Library) dan
OpenGL (Open Graphics Library) untuk grafis 2D dan 3D.
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
4. 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
Versi Android terakhir adalah:
1. 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.
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
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
di-compile 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
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
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.
Elemen-elemen pada Sequence diagram.
1. Class roles : peranan (roles) yang dimainkan objek dalam
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
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
onKey() :Dari View.OnKeyListener. Ini dipanggil
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
2. 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 atau ditekan oleh
pengguna untuk
melakukan action tertentu.
Button
yang menyediakan saran auto-complete
Checkbox Sebuah switch on/off yang bisa di-toggle oleh
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
2.8.4. TextField
TextField adalah textbox yang memungkinkan pengguna
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
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 <tr> untuk table row dan <td> untuk
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,
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Gambaran Umum Sistem
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
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
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
3.1.3. Gambaran Umum Mekanisme Pertukaran Kunci
Karena kunci yang digunakan dalam Aplikasi VinereySMS adalah
kunci simetris, maka memerlukan mekanisme pertukaran kunci yang
optimal.
Dalam melakukan pertukaran kunci user harus
1. Memastikan bahwa jalur yang digunakan untuk pertukaran
kunci aman.
2. Kedua entitas yang berkomunikasi harus menjaga
kerahasiaan kunci.
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.
TABEL KESEPAKATAN
Setelah adanya Tabel Kesepakatan, Alice dapat bertukar Kunci pada Bob dengan menyebutkan nomor
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
1 Didalam hidup ini semua ada
waktunya. Ada waktunya kita
menabur, ada juga waktu menuai.
2 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,
3.2. 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
3.4. Aturan Aplikasi
Untuk mengoptimalkan kinerja Aplikasi VinereySMS dan menghasilkan
hasil yang akurat dibutuhkan batasan atau aturan. Berikut ini adalah
batasan-batasan (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.
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