Perancangan Aplikasi SMS (Short Message Service) dengan Enkripsi Teks Menggunakan Algoritma XXTEA Berbasis Android
PERANCANGAN APLIKASI SMS (SHORT MESSAGE SERVICE) DENGAN
ENKRIPSI TEKS MENGGUNAKAN ALGORITMA XXTEA BERBASIS
ANDROID
SKRIPSI
RABIATUL ADAWIYAH DAULAY
101402113
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
Universitas Sumatera Utara
PERANCANGAN APLIKASI SMS (SHORT MESSAGE SERVICE) DENGAN
ENKRIPSI TEKS MENGGUNAKAN ALGORITMA XXTEA
BERBASIS ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Teknologi Informasi
RABIATUL ADAWIYAH DAULAY
101402113
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
Universitas Sumatera Utara
ii
PERSETUJUAN
Judul
:PERANCANGAN APLIKASI SMS (SHORT
MESSAGE SERVICE) DENGAN ENKRIPSI TEKS
MENGGUNAKAN
ALGORITMA
XXTEA
BERBASIS ANDROID
Kategori
: SKRIPSI
Nama
: RABIATUL ADAWIYAH DAULAY
Nomor Induk Mahasiswa
: 101402113
Program Studi
: S1 TEKNOLOGI INFORMASI
Departemen
: TEKNOLOGI INFORMASI
Fakultas
: ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Dedy Arisandi, ST., M.Kom
M. Andri Budiman, ST., M.Comp.Sc., M.E.M.
NIP. 19790831 200912 1 002
NIP. 19751008 200801 1 011
Diketahui/disetujui oleh
Program Studi S1 Teknologi Informasi
Ketua,
Muhammad Anggia Muchtar, ST., MM.IT
NIP. 198001102008011010
Universitas Sumatera Utara
iii
PERNYATAAN
PERANCANGAN APLIKASI SMS (SHORT MESSAGE SERVICE) DENGAN
ENKRIPSI TEKS MENGGUNAKAN ALGORITMA XXTEA
BERBASIS ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan,
Rabiatul Adawiyah Daulay
101402113
Universitas Sumatera Utara
iv
UCAPAN TERIMA KASIH
Puji dan syukur penulis panjatkan kepada Allah SWT Yang Maha Pengasih dan Maha
Penyayang, dengan limpahan rahmat dan karunia-Nya penulisan tugas akhir ini
berhasil diselesaikan dalam waktu yang telah ditetapkan.
Terima kasih kepada Bapak M. Andri Budiman ST., M.Comp.Sc., M.E.M. dan
Bapak Dedy Arisandi, ST., M.Kom selaku pembimbing atas segala ilmu, motivasi,
nasehat, dan bantuan yang telah diberikan sehingga penulis dapat menyelesaikan
penelitian tugas akhir hingga penyelesaian penulisan skripsi ini. Untuk seluruh staf
pengajar Program Studi Teknologi Informasi, terutama Bapak Baihaqi Siregar, S.Si,
M.T dan Ibu Sarah Purnamawati, S.T., M. Sc selaku penguji.
Ucapan terima kasih yang tiada tara untuk kedua orang tua penulis. Untuk
Mamak dan Ayah yang telah menjadi orang tua terhebat sejagad raya, yang selalu
memberikan motivasi, nasehat, cinta, perhatian, dan kasih sayang serta doa yang tentu
takkan bisa penulis balas.
Untuk bunde, abang, kakak dan kedua adik penulis, terima kasih atas segala
perhatian, kasih sayang, dan motivasi serta doanya. Terima kasih banyak telah
menjadi motivator yang luar biasa sehingga penulis dapat menyelesaikan penelitian ini.
Terima kasih untuk sahabat-sahabat, Nency, Ilda, Fitra, Epin, Fhilien, serta
terima kasih yang lebih untuk sahabat masa SMA, Maria Pasaribu dan Winda Safitri
untuk motivasi, dukungan, bantuan, serta perhatian sehingga skripsi ini bisa selesai
tepat waktu.
Dan terima kasih untuk teman-teman seperjuangan Teknologi Informasi USU
Angkatan 2010 serta abang dan kakak senior untuk bantuan dan kebersamaan selama
perkuliahan di Teknologi Informasi USU.
Semoga segala kebaikan dan bantuannya dibalas oleh Allah SWT dan semoga
tugas akhir ini dapat bermanfaat bagi semua pihak yang memerlukannya.
Universitas Sumatera Utara
v
ABSTRAK
SMS adalah salah satu fasilitas yang disediakan ponsel untuk melakukan pengiriman
data berupa pesan singkat. Namun, sayangnya pesan yang dikirimkan melalui SMS
tidak dapat dijamin integritas dan keamanannya. Hal tersebut dikarenakan pesan yang
dikirim akan disimpan di SMSC (Short Message Service Center), yaitu tempat dimana
SMS disimpan sebelum dikirim ke tujuan. Pesan yang sifatnya plaintext ini dapat
disadap oleh siapa saja yang berhasil memiliki akses ke dalam SMSC. Akibatnya,
informasi penting dapat diketahui oleh orang yang tidak berhak. Hal-hal tersebut dapat
menjadi sangat merugikan jika informasi yang dicuri atau disadap adalah informasi
yang bersifat pribadi atau rahasia. Sehingga diperlukan suatu penerapan algoritma
enkripsi untuk mencagah penyadapan terhadap pesan SMS. Pada penelitian ini,
penulis menggunakan algoritma XXTEA atau Corrected Block Tea. XXTEA
beroperasi dalam ukuran blok kelipatan 32 bit dan panjang kunci 128 bit.
Karakteristik dari XXTEA adalah small, secure, simple dan fast. Dengan karakteristik
seperti ini, XXTEA cocok utuk diaplikasikan ke perangkat elektronik mobile. Hasil
pengujian yang didapat, aplikasi yang dibangun dapat mengamankan SMS tepat
sebelum SMS dikirim dan lamanya waktu rata-rata proses enkripsi adalah 419017.3
nanosecond sedangkan waktu rata-rata proses dekripsi adalah 83722.58 nanosecond.
Kata kunci: Enkripsi, SMS, Short Message Text,
XXTEA, Kompleksitas Waktu
Algoritma
Universitas Sumatera Utara
vi
DESIGN SMS (SHORT MESSAGE TEXT) APPLICATION WITH
ENCRYPTION USING XXTEA AGORITHM ANDROID BASED
ABSTRACT
SMS is one of facilities which provided by the phone for data transmission as short
messages. However, unfortunately, message sent via SMS can not guarantee its
integrity and security. That is because message which is sent will be stored in the
SMSC (Short Message Service Center), is a place where SMS is stored before it will
be sent to the destination. This plaintext message can be intercepted by anyone who is
able to have access to the SMSC. As a result, the important information can be known
by an unauthorized person. These things can be very harmful if the information which
is stolen or intercepted is private or confidential. So, we need an encryption algorithm
to prevent malicious application intercepts the SMS. In this study, the author used the
algorithm XXTEA or Corrected Block Tea. XXTEA. XXTEA is operated in blok
dimension with multiplies of 32 bits and the key length of 128 bit. Characteristics of
XXTEA is small, secure, simple and fast. With these characteristics, XXTEA fitted to
be applied to mobile electronic devices. From the acquired test results, the application
can secure the SMS just before it sent and average duration of encryption is 419017.3
nanosecond whereas average duration of decryption is 419017.3 nanosecond.
Keyword: Encryption, SMS, Short Message Text, XXTEA, Time Complexity of
Algorithm, Big Theta
Universitas Sumatera Utara
vii
DAFTAR ISI
Hal.
Persetujuan
ii
Pernyataan
iii
Ucapan Terima Kasih
iv
Abstrak
v
Abstract
vi
Daftar Isi
vii
Daftar Tabel
x
Daftar Gambar
xi
BAB 1 Pendahuluan
1
1.1. Latar Belakang
1
1.2. Rumusan Masalah
2
1.3. Tujuan Penelitian
3
1.4. Batasan Masalah
3
1.5. Manfaat Penelitian
3
1.6. Sistematika Penulisan
3
BAB 2 Landasan Teori
5
2.1. Short Message Service (SMS)
5
2.1.1. Cara Kerja SMS
6
2.2. Keamanan SMS
7
2.3. Android
8
2.4. Kriptografi
8
Universitas Sumatera Utara
viii
2.4.1. XXTEA
9
2.5. SQLite
11
2.6. Base64
13
2.7. Kompleksitas Algoritma
14
2.7.1. Notasi Asimptotik
15
2.7.2. Kompleksitas Waktu Algoritma
17
2.8. Penelitian Terdahulu
18
BAB 3 Analisis dan Perancangan
20
3.1. Use Case Diagram
20
3.2. Activity Diagram
21
3.3. Flowchart Sistem
21
3.4. Perancangan Sistem
24
3.4.1. Kebutuhan Perangkat Lunak
24
3.4.2. Perancangan Antar Muka Sistem
24
3.5. Perancangan Database
34
3.5.1. Perancangan Tabel
34
3.5.2. Relasi Antar Tabel
35
3.6. Proses Enkripsi dan Dekripsi XXTEA
36
BAB 4 Implementasi dan Pengujian
47
4.1. Spesifikasi Perangkat Keras dan Perangkat Lunak
47
4.2. Pengujian Sistem Secara Menyeluruh
48
4.3. Analisis Kriptografi Terhadap Sistem
59
4.3.1. Analisis Keamanan Pesan Antar Pengguna
4.4. Analisis Performa Aplikasi
59
61
4.4.1. Analisis Kompleksitas Waktu
61
4.4.2. Analisis Performa Waktu Aplikasi
64
4.4.3. Analisis Perubahan Panjang Karakter
66
BAB 5 Kesimpulan dan Saran
5.1. Kesimpulan
69
69
Universitas Sumatera Utara
ix
5.2. Saran
69
Daftar Pustaka
70
Lampiran: Source Code Aplikasi
72
Universitas Sumatera Utara
x
DAFTAR TABEL
Hal.
Tabel 2.8 Penelitian Terdahulu
19
Tabel 3.5.3.1 Nilai ASCII Plaintext “rabi”
36
Tabel 3.5.3.2 Nilai ASCII Plaintext “atul"
36
Tabel 3.5.3.3 Nilai ASCII Kunci “inik”
37
Tabel 3.5.3.4 Nilai ASCII Kunci “unci”
37
Tabel 3.5.3.5 Perubahan Nilai v[0], v[1] dan v[2] pada Enkripsi XXTEA
40
Tabel 3.5.3.6 Perubahan Nilai v[0], v[1] dan v[2] pada Enkripsi XXTEA
45
Tabel 4.3.2.1.1 Perhitungangan Kompleksitas Enkripsi XXTEA
62
Tabel 4.3.2.1.2 Perhitungangan Kompleksitas Dekripsi XXTEA
63
Universitas Sumatera Utara
xi
DAFTAR GAMBAR
Hal.
Gambar 2.1 Cara Kerja SMS
6
Gambar 2.4.1 Flowchart XXTEA
10
Gambar 2.6 Nilai Value pada Base 64
13
Gambar 2.7.1.1 Contoh Grafik dari Notasi Asimptotik Ω
15
Gambar 2.7.1.2 Contoh Grafik dari Notasi Asimptotik θ
16
Gambar 2.7.1.3 Contoh Grafik dari Notasi Asimptotik O
16
Gambar 3.1 Use Case Diagram
20
Gambar 3.2 Activity Diagram
21
Gambar 3.3.1 Flowchart Enkripsi
22
Gambar 3.3.2 Flowchart Dekripsi
23
Gambar 3.4.2.1 Rancangan Tampilan Menu Utama
25
Gambar 3.4.2.2 Rancangan Tampilan Contact
26
Gambar 3.4.2.3 Rancangan Tampilan New Contact
27
Gambar 3.4.2.4 Rancangan Tampilan Update Contact
28
Gambar 3.4.2.5 Rancangan Tampilan SMS
29
Gambar 3.4.2.6 Rancangan Tampilan New Message
30
Gambar 3.4.2.7 Rancangan Tampilan Thread SMS
31
Gambar 3.4.2.8 Rancangan Tampilan Delete SMS
32
Gambar 3.4.2.9 Rancangan Tampilan Delete Contact
33
Universitas Sumatera Utara
xii
Gambar 3.5.1.1 Tabel Contact
34
Gambar 3.5.1.2 Tabel SMS
34
Gambar 3.5.2 Database Relationship
35
Gambar 4.2.1.1 Tampilan Menu Utama
49
Gambar 4.2.1.2 Tampilan SMS
50
Gambar 4.2.1.3 Tampilan Send SMS
51
Gambar 4.2.1.4 Tampilan Inbox
52
Gambar 4.2.1.5 Tampilan Delete SMS
53
Gambar 4.2.1.6 Tampilan Contact
54
Gambar 4.2.1.7 Tampilan New Contact
55
Gambar 4.2.1.8 Tampilan Update Contact
56
Gambar 4.2.1.9 Tampilan Delete Contact
57
Gambar 4.2.2.0 Tampilan Menu Help
58
Gambar 4.3.1.1 Pengirim mengirim SMS
59
Gambar 4.3.1.2 SMS Diterima dengan Aplikasi Default
60
Gambar 4.3.1.3 SMS Diterima dengan Aplikasi Enkripsi
61
Universitas Sumatera Utara
v
ABSTRAK
SMS adalah salah satu fasilitas yang disediakan ponsel untuk melakukan pengiriman
data berupa pesan singkat. Namun, sayangnya pesan yang dikirimkan melalui SMS
tidak dapat dijamin integritas dan keamanannya. Hal tersebut dikarenakan pesan yang
dikirim akan disimpan di SMSC (Short Message Service Center), yaitu tempat dimana
SMS disimpan sebelum dikirim ke tujuan. Pesan yang sifatnya plaintext ini dapat
disadap oleh siapa saja yang berhasil memiliki akses ke dalam SMSC. Akibatnya,
informasi penting dapat diketahui oleh orang yang tidak berhak. Hal-hal tersebut dapat
menjadi sangat merugikan jika informasi yang dicuri atau disadap adalah informasi
yang bersifat pribadi atau rahasia. Sehingga diperlukan suatu penerapan algoritma
enkripsi untuk mencagah penyadapan terhadap pesan SMS. Pada penelitian ini,
penulis menggunakan algoritma XXTEA atau Corrected Block Tea. XXTEA
beroperasi dalam ukuran blok kelipatan 32 bit dan panjang kunci 128 bit.
Karakteristik dari XXTEA adalah small, secure, simple dan fast. Dengan karakteristik
seperti ini, XXTEA cocok utuk diaplikasikan ke perangkat elektronik mobile. Hasil
pengujian yang didapat, aplikasi yang dibangun dapat mengamankan SMS tepat
sebelum SMS dikirim dan lamanya waktu rata-rata proses enkripsi adalah 419017.3
nanosecond sedangkan waktu rata-rata proses dekripsi adalah 83722.58 nanosecond.
Kata kunci: Enkripsi, SMS, Short Message Text,
XXTEA, Kompleksitas Waktu
Algoritma
Universitas Sumatera Utara
vi
DESIGN SMS (SHORT MESSAGE TEXT) APPLICATION WITH
ENCRYPTION USING XXTEA AGORITHM ANDROID BASED
ABSTRACT
SMS is one of facilities which provided by the phone for data transmission as short
messages. However, unfortunately, message sent via SMS can not guarantee its
integrity and security. That is because message which is sent will be stored in the
SMSC (Short Message Service Center), is a place where SMS is stored before it will
be sent to the destination. This plaintext message can be intercepted by anyone who is
able to have access to the SMSC. As a result, the important information can be known
by an unauthorized person. These things can be very harmful if the information which
is stolen or intercepted is private or confidential. So, we need an encryption algorithm
to prevent malicious application intercepts the SMS. In this study, the author used the
algorithm XXTEA or Corrected Block Tea. XXTEA. XXTEA is operated in blok
dimension with multiplies of 32 bits and the key length of 128 bit. Characteristics of
XXTEA is small, secure, simple and fast. With these characteristics, XXTEA fitted to
be applied to mobile electronic devices. From the acquired test results, the application
can secure the SMS just before it sent and average duration of encryption is 419017.3
nanosecond whereas average duration of decryption is 419017.3 nanosecond.
Keyword: Encryption, SMS, Short Message Text, XXTEA, Time Complexity of
Algorithm, Big Theta
Universitas Sumatera Utara
BAB 1
PENDAHULUAN
Bab ini membahas tentang hal-hal yang menjadi latar belakang pembuatan tugas
akhir, rumusan masalah, tujuan, batasan masalah, manfaat, metodologi penelitian serta
sistematika penulisan tugas akhir.
1.1.
Latar Belakang
Beberapa tahun terakhir ini terjadi perkembangan yang pesat pada teknologi, salah
satunya adalah telepon selular (ponsel). Mulai dari ponsel yang hanya bisa digunakan
untuk bicara dan mengirim pesan hingga “ponsel cerdas” (smartphone) yang memiliki
berbagai fungsi seperti multimedia, multiplayer games, transfer data, video streaming
dan lain-lain. Berbagai sistem operasi untuk mengembangkan aplikasi ponsel pun
bermunculan, diantaranya yang cukup dikenal luas adalah android .
Meskipun Android menyediakan berbagai macam media komunikasi yang
memudahkan pengguna untuk mengirim pesan, gambar, suara, video dan file lainnya,
namun fasilitas Short Message Service (SMS) tidak pernah ditinggalkan oleh
pengguna. Hal ini dikarenakan SMS merupakan fasilitas yang dimiliki oleh semua
ponsel. SMS adalah salah satu fasilitas yang disediakan ponsel untuk melakukan
pengiriman data berupa pesan singkat. Namun, sayangnya pesan yang dikirimkan
melalui SMS tidak dapat dijamin integritas dan keamanannya. (Anjari, et al. 2012)
Hal tersebut dikarenakan pesan yang dikirim akan disimpan di SMSC (Short
Message Service Center), yaitu tempat dimana SMS disimpan sebelum dikirim ke
tujuan. Pesan yang sifatnya plaintext ini dapat disadap oleh siapa saja yang berhasil
memiliki akses ke dalam SMSC. Akibatnya, informasi penting seperti password,
nomor pin kartu kredit, nomor rekening bank , dan lain-lain dapat diketahui oleh
orang yang tidak berhak untuk mengetahuinya. Hal-hal tersebut dapat menjadi sangat
merugikan jika informasi yang dicuri atau disadap adalah informasi yang bersifat
pribadi atau rahasia. Dari permasalahan keamanan isi pesan SMS yang telah
Universitas Sumatera Utara
2
dijelaskan sebelumnya, muncul pertanyaan bagaimana cara untuk mengamankan isi
SMS tersebut. Salah satu cara untuk mengatasi permasalahan tersebut adalah dengan
melakukan enkripsi terhadap pesan SMS. Dengan semakin majunya perkembangan
pada perangkat mobile, implementasi suatu algoritma enkripsi menjadi mungkin untuk
diterapkan.
Penelitian terhadap enkripsi SMS sudah pernah dilakukan.
Yaitu dengan
menggunakan algoritma Rabin yang dengan hasil waktu yang dibutuhkan untuk
melakukan enkripsi terhadap isi SMS rata-rata sebesar 96,3 milidetik dan dekripsi
rata-rata sebesar 118 milidetik (Muko, et al. 2012 ). Kemudian dengan algoritma
Vigenere yang dimodifikasi dengan Fibonacci dan key tambahan sehingga
memperkuat keamanan dan privasi (Anjari, et al. 2012).
Pada penelitian ini, penulis menggunakan algoritma XXTEA atau Corrected
Block Tea. XXTEA diciptakan oleh Roger M. Needham dan David J. Wheeler pada
tahun 1998. XXTEA merupakan turunan dari Block TEA. XXTEA beroperasi dalam
ukuran blok kelipatan 32 bit dan panjang kunci 128 bit. Karakteristik dari XXTEA
adalah small, secure, simple dan fast. Dengan karakteristik seperti ini, XXTEA cocok
utuk diaplikasikan ke perangkat elektronik mobile (Khandar.2009).
1.2.
Rumusan Masalah
Hal yang riskan pada komunikasi melalui SMS adalah pesan yang dikirimkan
akan disimpan di SMSC (Short Message Service Center), yaitu tempat dimana SMS
disimpan sebelum dikirim ke tujuan. Pesan yang sifatnya plaintext ini dapat disadap
oleh siapa saja yang berhasil memiliki akses ke dalam SMSC. Akibatnya, informasi
penting seperti password, nomor pin kartu kredit, nomor rekening bank, dan lain-lain
dapat diketahui oleh orang yang tidak berhak untuk mengetahuinya. Hal-hal tersebut
dapat menjadi sangat merugikan jika informasi yang dicuri atau disadap adalah
informasi yang bersifat pribadi atau rahasia. Dari permasalahan keamanan isi pesan
SMS yang telah dijelaskan sebelumnya, muncul pertanyaan bagaimana mengamankan
isi SMS tersebut.
Universitas Sumatera Utara
3
1.3.
Tujuan Penelitian
Mengamankan isi SMS dengan membuat aplikasi berbasis android menggunakan
algoritma XXTEA.
1.4.
Batasan Masalah
Untuk menghindari penyimpangan dan perluasan yang tidak diperlukan, penulis
membuat batasan:
1.
Pembangunan aplikasi fokus pada pengimplementasian kriptografi pada SMS.
2.
Dijalankan pada handphone berbasis Android 2.3 ke atas
1.5.
Manfaat Penelitian
Manfaat dari penelitian ini adalah:
1.
Memberikan
kemudahan
kepada pengguna
handphone seluler untuk
melakukan enkripsi terhadap pesan teks atau sms di android.
2.
Menjadi referensi dalam bidang kriptografi khususnya pada algoritma
XXTEA.
1.6.
Sistematika Penulisan
Tugas akhir ini disusun dalam lima bab dengan sistematika penulisan sebagai berikut:
Bab I Pendahuluan
Bab pendahuluan ini berisi tentang hal-hal yang mendasari dilakukannya
penelitian serta pengidentifikasian masalah penelitian. Bagian-bagian yang
terdapat dalam bab pendahuluan ini meliputi latar belakang masalah,
perumusan masalah, batasan masalah, tujuan penelitian, dan manfaat
penelitian.
Bab II Landasan Teori
Pada bab landasan teori menguraikan dasar teori, penelitian terdahulu,
kerangka pikir dan hipotesis yang diperoleh dari acuan yang mendasari dalam
melakukan kegiatan penelitian pada tugas akhir ini.
Bab III Analisis dan Perancangan
Pada bab ini akan dibahas tentang rancangan sistem seperti use case untuk
melihat proses apa saja yang dapat dilakukan oleh pengguna, diagram activity
Universitas Sumatera Utara
4
yang menggambarkan jalur aktifitas dari level atas secara umum, flowchart
dari sistem, serta proses enkripsi dan dekripsi menggunakan algoritma
XXTEA.
Bab IV Implemetasi dan Pengujian
Pada bab hasil dan pembahasan akan memaparkan impkementasi sistem dan
hasil terhadap uji coba algoritma yang telah dilakukan dalam meyelesaikan
permasalahan pengamanan pesan pada SMS.
Bab V Kesimpulan dan Saran
Bab ini berisi tentang kesimpulan hasil penelitian dan saran-saran yang
berkaitan dengan penelitian selanjutnya.
Universitas Sumatera Utara
BAB 2
LANDASAN TEORI
Pada bab ini, akan dibahas dasar teori, penelitian terdahulu, kerangka pikir dan
hipotesis yang mendasari penyelesaian permasalahan pengamanan pesan pada SMS
dengan Algoritma XXTEA.
2.1. Short Message Service (SMS)
SMS merupakan sebuah layanan komunikasi yang ada pada telepon seluler untuk
mengirim dan menerima pesan-pesan pendek. SMS pertama kali dikenalkan pada
tanggal 3 Desember 1982. SMS pertama di dunia dikirimkan menggunakan jaringan
GSM milik operator telepon bernama Vodafone. SMS pertama ini dikirimkan oleh
ahli bernama Neil Papwort kepada Richard Jarvis menggunakan komputer (Dwi P, et
al. 2012). Jumlah karakter maksimum pada pesan SMS adalah 160 karakter (huruf,
angka atau simbol dalam abjad Latin). Untuk huruf lain, seperti Cina, ukuran SMS
maksimum adalah 70 karakter (Rayarikar, et al. 2012).
2.1.1. Cara Kerja SMS
Proses cara kerja SMS dilakukan oleh 2 sisi yaitu sender dan receiver, sender
mengirim pesan SMS yang kemudian ditangkap oleh Base Transceiver Station (BTS)
yang kemudian dilanjutkan ke Base Station Controller (BSC) setelah itu proses akan
dikerjakan oleh Mobile Switching Center (MSC) yang bertugas sebagai Gateway dan
yang terakhir proses dilakukan oleh Short Message Service Center (SMSC) yang
bertugas store dan forwading SMS. Alur kerja SMS, dapat dilihat pada gambar 2.1.
Universitas Sumatera Utara
6
Gambar 2.1 Cara Kerja SMS (Rayarikar, et al. 2012)
Menurut Dwi P. (2012), tugas dari masing-masing perangkat dapat dijelaskan sebagai
berikut:
1. BTS
BTS berfungsi sebagai perangkat tranceiver untuk melakukan komunikasi
dengan semua handset (MS) yang aktif dan berada dalam area cakupannya
(cell). BTS melaksanakan proses modulasi/demodulasi sinyal, equalisasi sinyal
dan pengkodean error (error coding). Beberapa BTS dapat terhubung dengan
sebuah BSC (Base stasion Controller), sementara itu radius cakupan dari suatu
cell berkisar antara 10 sampai 200 m untuk cell terkecil hinggal beberapa
kilometer untuk cell terbesar. Sebuah BTS biasanya dapat melayani 20–40
komunikasi panggilan secara bersamaan.
2. BSC
BSC
menyediakan
fungsi
pengaturan
pada
beberapa
BTS
yang
dikendalikannya. Diantaranya fungsi handover, konfigurasi cell site,
pengaturan sumber daya radio, serta tuning power dan frekuensi pada suatu
BTS. BSC merupakan simpul (konmsentrator) untuk menghubungkan dengan
core network. Dalam jaringan GSM umumnya sebuah BSc dapat mengatur 70
buah BTS.
Universitas Sumatera Utara
7
3. MSC
MSC berfungsi melakukan fungsi switching dan bertanggung jawab untuk
melakukan pengaturan panggilan, call setup, release, dan routing. MSC juga
melakukan fungsi billing dan sebagai gateway ke jaringan lain.
4. SMSC
SMSC berfungsi menyampaikan pesan SMS antar Mobile Station(MS)/ HP,
dan juga melakukan fungsi store-and-forwarding SMS jika nomor penerima
sedang tidak dapat menerima pesan. Didalam jaringanya sebuah operator dapat
mempunyai lebih dari satu perangkat SMSC, sesuai besar trafik SMS jaringan
tersebut.
2.2. Keamanan SMS
Ada beberapa risiko yang dapat mengancam keamanan pesan pada layanan SMS salah
satunya adalah SMS interception. Celah keamanan terbesar pada layanan komunikasi
SMS adalah pada saat SMS tersebut sedang dikirim melalui jaringan SMS tersebut.
SMS bekerja pada jaringan nirkabel yang memungkinkan terjadinya pencurian isi
pesan SMS ketika dalam proses transmisi dari pengirim ke penerima. Kasus ini
disebut SMS interception. Hal ini dikarenakan SMS yang dikirim akan disimpan di
SMSC, sehingga dapat dibaca oleh siapa saja yang dapat mengakses SMSC (Fajar, et
al. 2014).
Di Indonesia, pemberian informasi SMS yang diterima dan dikirim oleh provider
kepada badan hukum diatur oleh Pasal 87 PP No. 52 Tahun 2000 tentang
Penyelenggaraan Telekomunikasi, yang menyatakan dalam hal untuk keperluan
proses peradilan pidana, penyelenggara jasa telekomunikasi dapat merekam informasi
yang dikirim dan atau diterima oleh penyelenggara jasa telekomunikasi serta dapat
memberikan informasi yang diperlukan. Walaupun melanggar privasi pelanggan.
Selain itu, aplikasi penyadapan seperti FlexiSpy. Aplikasi ini bisa memantau
semua aktifitas yang di lakukan ponsel target. Mulai dari data SMS hingga percakapan
telepon. Informasinya di kirim melalui kanal GPRS ke server FlexiSpy dan bisa di
pantau tanpa si ketahui pemilik ponsel.
Universitas Sumatera Utara
8
2.3. Android
Android adalah sistem operasi untuk telepon seluler berbasis Linux. Android
menyediakan platform terbuka bagi para pengembang untuk membangun aplikasi
yang dapat dijalankan di bermacam telepon seluler. Awalnya, Google Inc. membeli
Android Inc. yang merupakan pendatang baru dalam teknologi telepon seluler.
Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance,
konsorsium dari 34 perusahaan piranti keras, piranti lunak, dan telekomunikasi,
termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia (Dwi P, et
al. 2012).
Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open
Handset Aliance menyatakan mendukung pengembangan standar terbuka pada telepon
seluler.
Fitur yang tersedia di Android antara lain:
– Framework aplikasi yang mendukung penggantian komponen dan reusable
– Dalvik virtual machine
– Integrated browser
– Grafik berdasarkan OpenGL
– SQLite untuk penyimpanan data
– Multimedia support
– Linkungan Development yang lengkap dan kaya termasuk perangkat emulator,
tools untuk debugging, profil dan kinerja memori, dan plugin untuk IDE
Eclipse.
2.4. Kriptografi
Menurut Sadikin (2012), kriptografi adalah ilmu yang bersandarkan pada teknik
matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan
data dan otentikasi entitas.
Kriptografi terbagi atas dua kategori yaitu kriptografi klasik dan kriptografi
modern. Kriptografi klasik adalah sistem kriptografi yang menggunakan penyandian
kunci simetris dan menggunakan metode subtitusi (pergantian huruf) atau transposisi
(pertukaran tempat). Dan kriptografi modern adalah sistem kriptografi yang
menggunakan penyandian kunci asimetris (Sadikin, 2012).
Universitas Sumatera Utara
9
Berikut ini adalah beberapa mekanisme yang berkembang pada kriptografi:
1. Fungsi Hash
Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang
sembarang ke sebuah teks khusus yang disebut message digest dengan panjang
yang tetap. Fungsi hash pada umumnya digunakan untuk menguji keutuhan
pada sebuah data.
2. Penyandian dengan kunci asimetris
Penyandian dengan kunci asimetris atau sering juga disebut dengan kunci
publik adalah penyandian yang pada proses enkripsi dan dekripsinya memiliki
kunci yang berbeda. Pada kunci yang digunakan untuk enkripsi bersifat publik
(public key). Sedangkan kunci yang digunakan untuk dekripsi bersifat rahasia
(private key). Beberapa jenis kriptografi dengan penyandian kunci asimetris
antara lain RSA, Diffie-Helman, eL-Gamal, Knapsack, dan beberapa
penerapan teknik Elliptic Curve.
3. Penyandian dengan kunci simetris
Penyandian dengan kunci simetris adalah penyandian yang pada proses
enkripsi dan dekripsinya menggunakan sebuah kunci yang sama. Kunci yang
digunakan pada proses enkripsi dan dekripsi bersifat rahasia. Beberapa jenis
kriptografi dengan penyandian kunci simetris antara lain Data Encryption
Standard (DES), 3DES, Advance Encryption Standard (AES), Blowfish dan
International Data Encryption Algorithm (IDEA).
2.4.1. XXTEA
Correted Block TEA (atau biasa disebut dengan XXTEA) adalah cipher block yang
dirancang untuk memperbaiki kelemahan dalam Block TEA sebelumnya (XTEA).
XXTEA adalah operasi jaringan Feistel pada blok yang terdiri dari setidaknya dua
buah kata 32 -bit dan menggunakan kunci 128-bit (Yarrkov, 2010). Algoritma
XXTEA didesain oleh Roger Needham dan David Wheeler dari Laboratorium
Komputer Cambridge, Algoritma ini dipublikasikan dalam laporan teknis pada bulan
Oktober 1998. XXTEA juga merupakan sebuah algoritma enkripsi efektif yang mirip
dengan DES yang dapat digunakan untuk aplikasi web yang membutuhkan keamanan.
Ketika menggunakan algoritma ini, sebuah perubahan dari teks asal akan mengubah
Universitas Sumatera Utara
10
sekitar setengah dari teks hasil tanpa meninggalkan jejak dimana perubahan berasal
(Atmojo, 2012).
XXTEA beroperasi pada blok yang berukuran tetap yang merupakan kelipatan
32 bits dengan ukuran minimal 64 bits. Jumlah dari putaran lengkap bergantung pada
ukuran blok, tetapi terdapat minimal 6 (bertambah terus hingga 32 untuk ukuran blok
yang lebih kecil). Algoritma ini menggunakan lebih banyak fungsi pengacakan yang
menggunakan kedua blok tetangganya dalam pemrosesan setiap kata dalam blok.
Flowchart XXTEA, dapat dilihat pada gambar 2.4.1(Fernando, 2009)
Gambar 2.4.1 Flowchart XXTEA (Fernando, 2009)
Gambar 2.4.1 menampilkan proses pengacakan yang dilakukan pada satu
iterasinya. Proses iterasi dalam XXTEA dilakukan dalam 2 kali iterasi yang dilakukan
secara bersarang. Pada iterasi teratas, iterasi dilakukan sebanyak q, dimana:
q = 6 + 52/n
dengan n ≥ 1 dimana n adalah jumlah blok dari plaintext. Lalu, pada iterasi
selanjutnya, iterasi dilakukan sebanyak n kali.
Proses pengacakan yang dilakukan dalam satu iterasi XXTEA adalah sebagai
berikut:
1.
Algoritma akan mengacak blok ke-r dari plaintext.
2.
Proses akan mengambil Xr-1, Xr+1, DELTA, dan kata kunci sebagai
input.
Universitas Sumatera Utara
11
3.
Pengacakan pertama: Xr-15.
4.
Pengacakan kedua: Xr-1>>3 di-XOR-kan dengan Xr+12).
8.
Hasil yang didapat dari tahap ke 6 dan 7 ditambahkan.
9.
Hasil yang didapat dari tahap 5 dan 8 di- XOR-kan.
10.
Hasil yang didapat pada tahap 9 ditambahkan ke blok plaintext ke-r.
XXTEA tidak memiliki batas ukuran blok, XXTEA dapat digunakan untuk
mengenkripsi satu buah pesan utuh tanpa memerlukan mode operasi cipher. Meski
XXTEA dapat mengenkripsi keseluruhan pesan atau file sekaligus, pada
implementasinya XXTEA dapat dioperasikan dengan mode operasi untuk file-file
yang berukuran sangat besar sehingga tidak bisa dibaca ke dalam memory sekaligus
(Atmojo, 2012).
Kelebihan dari XXTEA menurut hatipoglu (2009) adalah:
–
Kunci 128 bit
–
Panjang blok adalah kelipatan 32 bit dengan minimal blok adalah 64 bit
–
Hanya membutuhkan komputasi dan kebutuhan memori yang sangat rendah
–
Memberikan keamanan terbaik dilihat dari cycle ratio nya
–
Mudah diimplementasikan
–
Memberikan keamanan yang baik pada cycle yang lebih sedikit
–
Lebih efisien untuk pesan panjang
–
Bebas dipublikasikan karena tidak membutuhkan lisensi atau hak paten
Selain itu, XXTEA sangat cocok untuk diaplikasikan ke perangkat-perangkat
elektronik mobile seperti handphone karena proses enkripsi dan dekripsinya tidak
memakan resource terlalu berat (Khandar, 2009).
2.5. SQLite
SQLite merupakan sebuah sistem manajemen database relasional yang bersifat ACID
- compliant dan memiliki ukuran pustaka kode yang relatif kecil dan ditulis dalam
Universitas Sumatera Utara
12
bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan
oleh D. Richard Hipp. Tidak seperti pada paradigma client-server umumnya, Inti
SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah
program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan.
Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan
API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya
membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara
keseluruhan lebih sederhana. Seluruh elemen database (definisi data, tabel, indeks,
dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa
diraih dengan cara mengunci keseluruhan file database pada saat sebuah transaksi
dimulai.
SQLite mengimplementasikan hampir seluruh elemen-elemen standar yang
berlaku pada SQL-92, termasuk transaksi yang bersifat atomic, konsistensi database,
isolasi, dan durabilitas (dalam bahasa inggris lebih sering disebut ACID), trigger, dan
queri-queri yang kompleks. Tidak ada pengecekan tipe sehingga data bisa dientrikan
dalam bentuk string untuk sebuah kolom bertipe integer. Beberapa kalangan melihat
hal ini sebagai sebuah inovasi yang menambah nilai guna dari sebuah database,
utamanya ketika digunakan dalam bahasa pemrograman berbasis script (PHP, Perl),
sementara kalangan lain melihat hal tersebut sebagai sebuah kekurangan. Beberapa
proses ataupun thread dapat berjalan secara bersamaan dan mengakses database yang
sama tanpa mengalami masalah. Hal ini disebabkan karena akes baca data dilakukan
secara paralel. Sementara itu akses tulis data hanya bisa dilakukan jika tidak ada
proses tulis lain yang sedang dilakukan; jika tidak, proses tulis tersebut akan gagal dan
mengembalikan kode kesalahan (atau bisa juga secara otomatis akan mencobanya
kembali sampai sejumlah nilai waktu yang ditentukan habis). Hanya saja ketika
sebuah tabel temporer dibuat, mekanisme penguncian pada proses multithread akan
menyebabkan masalah . Update yang terkini dikatakan telah memperbaiki masalah
ini. Sebuah program yang mandiri dinamakan sqlite disediakan dan bisa digunakan
untuk mengeksekusi queri dan memanajemen file-file database SQLite (Nugroho, et
Al. 2011).
Universitas Sumatera Utara
13
2.6. Base64
Base64 adalah istilah umum untuk sejumlah skema pengkodean serupa yang
mengkodekan data biner dan menerjemahkannya ke dalam representasi basis 64.
Istilah Base64 berasal dari konten pengkodean MIME tertentu. Skema encoding
base64 biasanya digunakan ketika ada kebutuhan untuk menyandikan data biner yang
perlu disimpan dan ditransfer melalui media yang dirancang untuk menangani data
tekstual. Hal ini untuk memastikan bahwa data tetap utuh tanpa perubahan selama
pengiriman. Base64 digunakan umum dalam beberapa aplikasi termasuk email
melalui MIME, dan penyimpanan data yang kompleks dalam XML.
Base64 menggunakan karakter A – Z, a – z dan 0 – 9 untuk 62 nilai pertama,
sedangkan 2 nilai terakhir digunakan untuk symbol (+ dan /). beberapa metode
encoding lain seperti uuencode dan binhex menggunakan 64 karakter yang berbeda
untuk mewakili 6 binary digit, namun metode-metode tersebut tidak disebut sebagai
encoding Base64 (Atmojo, 2012).
Gambar 2.6 Nilai Value pada Base 64
Universitas Sumatera Utara
14
2.7. Kompleksitas Algoritma
Suatu masalah dapat mempunyai banyak algoritma penyelesaian. Algoritma yang
digunakan tidak saja harus benar, namun juga harus efisien. Efisiensi suatu algoritma
dapat diukur dari waktu eksekusi algoritma dan kebutuhan ruang memori. Algoritma
yang efisien adalah algoritma yang meminimumkan kebutuhan waktu dan ruang.
Dengan menganalisis beberapa algoritma untuk suatu masalah, dapat diidentifikasi
satu algoritma yang paling efisien. Besaran yang digunakan untuk menjelaskan model
pengukuran waktu dan ruang ini adalah kompleksitas algoritma.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak
komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara
informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang
singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan
waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Kompleksitas algoritma terdiri dari dua macam yaitu kompleksitas waktu dan
kompleksitas ruang.
Kompleksitas waktu, dinyatakan oleh T(n) , diukur dari jumlah tahapan
komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran
masukan n, di mana ukuran masukan (n) merupakan jumlah data yang diproses oleh
sebuat algoritma. Sedangkan kompleksitas ruang, S(n) , diukur dari memori yang
digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari
masukan n. Dengan menggunakan kompleksitas waktu atau kompleksitas ruang, dapat
ditentukan laju peningkatan waktu atau ruang yang diperlukan algoritma, seiring
dengan meningkatnya ukuran masukan ( n).
Kecenderungan saat ini, ruang (memori utama) yang disediakan semakin besar
yang artinya kapasitas data yang diproses juga semakin besar. Namun, waktu yang
Universitas Sumatera Utara
15
diperlukan untuk menjalankan suatu algoritma harus semakin cepat. Karena kompleksitas
waktu menjadi hal yang sangat penting, maka analisis kompleksitas algoritma deteksi tepi
akan dilakukan terhadap running time algoritma tersebut.
2.7.1. Notasi Asimptotik
Untuk nilai n cukup besar, bahkan tidak terbatas, dilakukan analisis efisiensi asimptotik
dari suatu algoritma untuk menentukan kompleksitas waktu yang sesuai atau disebut juga
kompleksitas waktu asimptotik. Notasi yang digunakan untuk menentukan kompleksitas
waktu asimptotik dengan melihat waktu tempuh (running time) algoritma adalah notasi
asimptotik (asimptotic notation). Notasi asimptotik didefinisikan sebagai fungsi dengan
domain himpunan bilangan asli N = {0,1,2, 3,…. } (Cormen et al., 2009: 43).
Kompleksitas waktu asimptotik terdiri dari tiga macam. Pertama, keadaan terbaik
(best case) dinotasikan dengan (Ω) (Big-Omega), keadaan rata-rata (average case)
dilambangkan dengan notasi (Θ) (Big-Theta) dan keadaan terburuk (worst case)
dilambangkan dengan (O) (Big-O).
Gambar 2.7.1.1 Contoh Grafik dari Notasi Asimptotik Ω
Gambar 2.7.1.1 menunjukkan notasi Ω menjadi batas bawah dari suatu fungsi f(n)
agar berada dalam suatu faktor konstan. Dinyatakan f(n) =O(g(n)) jika terdapat
Universitas Sumatera Utara
16
konstanta positif n0 dan c sedemikian sehingga pada n0 dan di kanan n0 , nilai f(n)
selalu berada tepat cg(n) pada atau di atas cg(n) .
Gambar 2.7.1.2 Contoh Grafik dari Notasi Asimptotik θ
Pada gambar 2.7.1.2, n0 merupakan nilai n minimum yang mungkin. Yaitu
menunjukkan notasi Θ membatasi suatu fungsi f(n) agar berada dalam faktor konstan.
Dinyatakan f(n) = Θ (g(n)) jika terdapat konstanta positif n0, c1, dan c2 sedemikian
sehingga pada n0 dan di kanan n0, nilai f(n) selalu berada tepat pada c1 g(n), tepat pada
c2 g(n) , atau di antara c1 g(n) dan c2 g(n) .
Gambar 2.7.1.3 Contoh Grafik dari Notasi Asimptotik O
Gambar 2.7.1.3 menunjukkan notasi menjadi batas atas dari suatu fungsi f(n) agar
berada dalam suatu faktor konstan. Dinyatakan f(n) = O (g(n)) jika terdapat konstanta
Universitas Sumatera Utara
17
positif n0 dan c sedemikian sehingga pada n0 dan di kanan n0 , nilai f(n) selalu berada
tepat pada cg(n) atau di bawah cg(n). Kompleksitas waktu algoritma biasanya dihitung
dengan menggunakan notasi O(g(n)), dibaca “big-O dari g(n) ”.
2.7.2. Kompleksitas Waktu Algoritma
Untuk menentukan kompleksitas waktu suatu algoritma, diperlukan ukuran masukan
n serta running time algoritma tersebut. Pada umumnya, running time algoritma
meningkat seiring dengan bertambahnya ukuran n. Sehingga, running time suatu
algoritma dapat dinyatakan sebagai fungsi dari n .
Ukuran masukan n untuk suatu algoritma bergantung pada masalah yang
diselesaikan oleh algoritma tersebut. Pada banyak kasus, seperti pengurutan, ukuran
yang paling alami adalah jumlah item dalam masukan. Dalam kasus lain, seperti
mengalikan dua bilangan bulat, ukuran input terbaik adalah jumlah bit yang
diperlukan untuk mewakili masukan dalam notasi biner biasa.
Running time algoritma pada masukan n tertentu merupakan jumlah operasi
atau langkah yang dieksekusi. Selanjutnya, jumlah waktu yang konstan diperlukan
untuk mengeksekusi setiap baris pseudocode (kode semu). Satu baris dapat memiliki
jumlah waktu yang berbeda dari baris lain. Namun asumsikan bahwa setiap
pelaksanaan baris ke-i membutuhkan waktu sebesar ci, di mana ci adalah konstanta.
Dalam menentukan running time suatu baris pada pseudocode, kalikan
konstanta ci dengan jumlah waktu yang diperlukan untuk mengeksekusi baris tersebut.
Untuk kasus di mana terdapat perintah loop while atau for dengan panjang , maka
perintah tersebut dieksekusi dengan waktu n+1. Sedangkan untuk baris berisi
komentar, dinyatakan sebagai baris yang tidak dieksekusi, sehingga jumlah waktu
untuk baris tersebut adalah nol.
Selanjutnya, running time dari algoritma adalah jumlah dari running time setiap
perintah yang dieksekusi. Sebuah perintah yang membutuhkan ci langkah n waktu
untuk dieksekusi akan memiliki pengaruh sebesar cin pada running time total (T(n) ).
Setelah diperoleh bentuk fungsi T(n) , dapat ditentukan bentuk dari algoritma
tersebut dengan menggunakan notasi asimptotik O. Dengan ditentukannya bentuk
algoritma, maka dapat diramalkan berapa besar peningkatan running time jika ukuran
masukan ditingkatkan.
Universitas Sumatera Utara
18
Suatu algoritma dikatakan anggota θ(g(n)) jika algoritma itu adalah anggota
O(g(n)) dan anggota Ω(g(n)). Contoh : Karena T(n) = c1n2 + c2n adalah angota O( n2)
dan anggota Ω( ), maka T(n) adalah anggota θ (n2 ).
Contoh :
For i ← 1 to n do
For j ← 1 to i do
For k ← j to n do
a←a+1
end for
end for
end for
Nilai big O, big Ω, dan big Θ dari algoritma di atas adalah sebagai berikut :
Untuk i = 1,
Untuk j = 1, jumlah perhitungan = n kali
Untuk i = 2,
Untuk j = 1, jumlah perhitungan = n kali
Untuk j = 2, jumlah perhitungan = n–1 kali
…
Untuk i = n,
Untuk j = 1, jumlah perhitungan = n kali
Untuk j = 2, jumlah perhitungan = n –1 kali
Untuk j = n, jumlah perhitungan = 1 kali.
T(n)
= n2+(n-1)2 +(n-2)2 + ... + 1
= n(n + 1)(2n + 1)/6
= 2n3+3n2 + 1
Diperoleh T(n) ≤ 3untuk n ≥ 4 dan T(n) ≥ 2n3 untuk n ≥ 1.
2.8. Penelitian Terdahulu
Penelitian terhadap enkripsi SMS sudah pernah dilakukan.
Yaitu dengan
menggunakan algoritma Rabin yang dengan hasil waktu yang dibutuhkan untuk
melakukan enkripsi terhadap isi SMS rata-rata sebesar 96,3 milidetik dan dekripsi
Universitas Sumatera Utara
19
rata-rata sebesar 118 milidetik (Muko, et al. 2012 ). Kemudian dengan algoritma
Vigenere yang dimodifikasi dengan fibonacci dan key tambahan sehingga
memperkuat keamanan dan privasi(Anjari, et al. 2012).
Sedangkan, penelitian mengenai algoritma XXTEA atau Corrected Block Tea
sudah pernah dilakukan. Yaitu oleh Sujatmika, dengan mengimplementasikan
XXTEA pada virtual disk pada system operasi windows. Virtual disk tersebut dibuat
dengan merepresentasikan file volume sebagai container dari virtual disk. Proses
enkripsi pada isi virtual disk dilakukan sebelum proses unmounting virtual disk.
Sedangkan proses dekripsi pada isi virtual disk, dilakukan setelah dilakukan proses
mounting file volume. Algoritma XXTEA sendiri, berjalan pada blok 32 bit. Sehingga
sebelum memasuki proses utama enkrip dan dekrip, file perlu diolah terlebih dahulu.
Selanjutnya, Atomojo (2012) mengimplementasikan XXTEA pada secure login
website. Hasil yang di dapat ialah proses enkripsi pada sisi server,dan dekripsi pada
sisi client telah menambah waktu akses website rata-rata18ms (0,018 sekon).
Berikut penelitian terdahulu disajikan dalam bentuk tabel:
Tabel 2.8 Penelitian Terdahulu
Judul
Tahun
Enkripsi
SMS
(Short
Service)
pada
Telepon
Message 2010
Peneliti
Becik Gati Anjari
Selular
Berbasis Android
Aplikasi
Enkripsi
SMS
dengan 2012
Gayuh Taruna Muko, et-al
Metode Rabin pada Android
Implementasi Enkripsi Dengan
Arif rahman Sujatmika.
Algoritma XXTEA Pada
Virtual Disk Berbasis Windows
Perancangan Secure Login Website
2012
Atmojo, Ardani Dwi
Menggunakan Algoritma Enkripsi
XXTEA
Universitas Sumatera Utara
`BAB 3
ANALISIS DAN PERANCANGAN
Pada bab ini akan dibahas tentang rancangan sistem seperti use case untuk melihat
proses apa saja yang dapat dilakukan oleh pengguna, diagram activity yang
menggambarkan alir aktifitas dari level atas secara umum, flowchart dari sistem, serta
proses enkripsi dan dekripsi menggunakan algoritma XXTEA.
3.1. Use Case Diagram
Use case adalah teknik untuk merekam persyaratan fungsional sebuah sistem. Use
case
mendeskripsikan interaksi tipikal antara para pengguna dengan sistem itu
sendiri, dengan memberi narasi bagaimana sistem tersebut digunakan.
Pada use case ini terdiri dari dua aktor yaitu pengirim dan penerima. Pada aplikasi
ini pengirim dapat melakukan penulisan pesan, pengiriman pesan, sedangkan
penerima pesan dapat menerima pesan, menyimpan pesan yang diterima atau
menghapusnya. Selain itu, penerima dan pengirim dapat melihat, mengedit dan
menghapus contact. Berikut adalah use case diagram dari aplikasi enkripsi sms.
Gambar 3.1 Use Case Diagram
Universitas Sumatera Utara
21
3.2. Activity Diagram
Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal dan berakhir.
Gambar 3.2 Activity Diagram
Activity diagram pada gambar 3.2 menampilkan aktivitas dalam sistem. Aktivitas
tersebut berupa tampilan menu utama yang bercabang menjadi tiga yaitu SMS,
Contact dan Help. Dan pada menu SMS, terdapat aktivitas tulis, enkripsi, dan kirim
SMS. Serta aktivitas baca, dekripsi dan hapus SMS. Pada menu Contact, terdapat
aktivitas tambah, lihat, edit dan hapus. Sedangkan menu Help, merupakan menu
bantuan.
3.3. Flowchart Sistem
Flowchart sistem merupakan bagan yang menunjukkan alur kerja atau apa yang
sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari
prosedur-prosedur yang ada di dalam sistem. Dengan kata lain, flowchart merupakan
Universitas Sumatera Utara
22
deskripsi secara grafik dari urutan prosedur-prosedur yang terkombinasi membentuk
suatu sistem.
Adapun fungsi lainnya dari flowchart ini dibuat adalah agar developer atau
pengembang aplikasi perorangan dapat melihat kembali tahapan-tahapan yang akan
dikerjakan jika suatu saat terjadi kesalahan dalam perancangan aplikasi (Prayudi,
2013).
Berikut ini adalah bentuk-bentuk flowchart atau diagram alur yang menjelaskan
alur proses aplikasi keamanan SMS dari awal hingga akhir, termasuk proses
pengiriman SMS yang kemudian dienkripsi dan proses penerimaan SMS yang
didekripsi.
Gambar 3.3.1 Flowchart Enkripsi
Universitas Sumatera Utara
23
Pada Gambar 3.3.1, dapat dijelaskan bahwa aplikasi memulai dengan
menampilkan pilihan menu SMS dan Contact List. Kemudian, mengecek apakah
nomor penerima SMS sudah tersimpan atau belum. Jika belum, maka user harus
membuat contact baru. Yaitu dengan menginput nama, nomor telepon, dan kunci.
Kunci yang dimaksud disini adalah kunci yang telah disepakati oleh penerima dan
pengirim
yang digunakan untuk proses enkripsi dan dekripsi. Selanjutnya, contact
tersebut disimpan di dalam database.
Selanjutnya, apabila kontak sudah ada, maka user akan menginput nama contact
dan menulis pesan. Kemudian, SMS yang bersifat plaintext tersebut, akan dienkripsi
dengan kunci yang ada di contact berdasarkan nama penerima yang diinput. Setelah
itu, SMS yang telah berbentukciphertext akan dikirim.
Gambar 3.3.2 Flowchart Dekripsi
Universitas Sumatera Utara
24
Pada Gambar 3.3.2, dijelaskan mengenai proses dekripsi. Aplikasi dimulai
dengan menerima SMS. Kemudian, aplikasi akan mengecek apakah nomor pengirim
SMS ada di kontak. Apabila tidak ada, maka proses akan berakhir. Apabila ada, maka
akan berlanjut ke proses selanjutnya. Proses selanjutnya, aplikasi akan mengecek,
apakah SMS tersebut bisa didekripsi. Hal ini untuk megetahui apakah SMS tersebut
merupakan chipertext atau SMS biasa. Apabila tidak bisa, maka proses akan berakhir.
Apabila bisa, maka hasil dekripsi dari SMS tersebut akan disimpan di dalam database.
Kemudian akan ditampilkan di dalam inbox.
3.4. Perancangan Sistem
Pada penelitian ini perancangan sistem terbagi dua yakni menjelaskan tentang
kebutuhan perangkat lunak yang digunakan dalam perancangan aplikasi dan
perancangan antar muka sistem yang nantinya akan digunakan pada setiap halaman
aplikasi.
3.4.1. Kebutuhan Peragkat Lunak
Adapun aplikasi ini dibangun dengan menggunakan bahasa pemrograman Java dan
XML untuk aplikasi pada sisi pengguna yang berjalan pada sistem operasi Android,
serta menggunakan SQLite untuk pengelolaan database.
3.4.2. Perancangan Antar Muka Sistem
Perancangan sistem diperlukan agar sistem yang dibangun sesuai dengan yang
diharapkan. Dengan adanya rancangan antar muka bertujuan untuk memudahkan
pengguna dalam pemakaian sistem. Berikut ini adalah beberapa rancangan antar muka
sistem pada aplikasi:
Universitas Sumatera Utara
25
1. Tampilan Menu Utama
Berikut ini adalah rancangan dari menu utama:
Gambar 3.4.2.1 Rancangan Tampilan Menu Utama
Pada Gambar 3.4.2.1, dapat dilihat bahwa terdapat dua menu pilihan, yaitu SMS dan
Contact.
Keterangan:
A. SMS, tombol untuk ke menu SMS
B. Contact, tombol untuk ke menu Contact
C. Help, tombol untuk ke menu Help
Universitas Sumatera Utara
26
2. Tampilan Contact
Berikut ini adalah rancangan dari Contact:
Gambar 3.4.2.2 Rancangan Tampilan Contact
Pada Gambar 3.4.2.2 dapat dilihat bahwa tampilan Contact memiliki dua bagian
utama, yaitu New Contact dan Contact List.
Keterangan:
A. New Contact, untuk membuat contact baru.
B. Contact List, menampilkan contact yang tersimpan di dalam database.
Adapun field yang ditampilkan yaitu name, phone number, dan key
Universitas Sumatera Utara
27
3. Tampilan New Contact
Berikut ini adalah rancangan dari New Contact:
Gambar 3.4.2.3 Rancangan Tampilan New Contact
Pada Gambar 3.4.2.3, dapat dilihat terdapat form untuk pengisian contact baru.
Terdapat tiga form yaitu, name, phone number dan key. Dan terdapat tombol save.
Keterangan:
A. Name, nama contact yang ingin disimpan.
B. Phone Number, nomor telepon contact.
C. Key, teks kunci yang digunakan untuk melakukan enkripsi dan dekripsi.
Dalam hal ini pengirim dan penerima harus memiliki key yang sama.
D. Save, tombol untuk menyimpan data contact ke dalam database.
Universitas Sumatera Utara
28
4. Tampilan Update Contact
Berikut ini adalah rancangan dari Update Contact:
Gambar 3.4.2.4 Rancangan Tampilan Update Contact
Pada Gambar 3.4.2.3, dapat dilihat terdapat form untuk memperbarui contact yang
sudah ada. Terdapat tiga form yaitu, name, phone number dan key yang telah terisi
oleh data yang belum diperbarui. Dan terdapat tombol save.
Keterangan:
A. Name, nama contact yang ingin diperbarui.
B. Phone Number, nomor telepon contact.
C. Key, teks kunci yang digunakan untuk melakukan enkripsi dan dekripsi.
D. Save, tombol untuk meng-update data contact ke dalam database.
Universitas Sumatera Utara
29
5. Tampilan SMS
Berikut ini adalah rancangan dari SMS:
Gambar 3.4.2.5 Rancangan T
ENKRIPSI TEKS MENGGUNAKAN ALGORITMA XXTEA BERBASIS
ANDROID
SKRIPSI
RABIATUL ADAWIYAH DAULAY
101402113
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
Universitas Sumatera Utara
PERANCANGAN APLIKASI SMS (SHORT MESSAGE SERVICE) DENGAN
ENKRIPSI TEKS MENGGUNAKAN ALGORITMA XXTEA
BERBASIS ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Teknologi Informasi
RABIATUL ADAWIYAH DAULAY
101402113
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
Universitas Sumatera Utara
ii
PERSETUJUAN
Judul
:PERANCANGAN APLIKASI SMS (SHORT
MESSAGE SERVICE) DENGAN ENKRIPSI TEKS
MENGGUNAKAN
ALGORITMA
XXTEA
BERBASIS ANDROID
Kategori
: SKRIPSI
Nama
: RABIATUL ADAWIYAH DAULAY
Nomor Induk Mahasiswa
: 101402113
Program Studi
: S1 TEKNOLOGI INFORMASI
Departemen
: TEKNOLOGI INFORMASI
Fakultas
: ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Dedy Arisandi, ST., M.Kom
M. Andri Budiman, ST., M.Comp.Sc., M.E.M.
NIP. 19790831 200912 1 002
NIP. 19751008 200801 1 011
Diketahui/disetujui oleh
Program Studi S1 Teknologi Informasi
Ketua,
Muhammad Anggia Muchtar, ST., MM.IT
NIP. 198001102008011010
Universitas Sumatera Utara
iii
PERNYATAAN
PERANCANGAN APLIKASI SMS (SHORT MESSAGE SERVICE) DENGAN
ENKRIPSI TEKS MENGGUNAKAN ALGORITMA XXTEA
BERBASIS ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan,
Rabiatul Adawiyah Daulay
101402113
Universitas Sumatera Utara
iv
UCAPAN TERIMA KASIH
Puji dan syukur penulis panjatkan kepada Allah SWT Yang Maha Pengasih dan Maha
Penyayang, dengan limpahan rahmat dan karunia-Nya penulisan tugas akhir ini
berhasil diselesaikan dalam waktu yang telah ditetapkan.
Terima kasih kepada Bapak M. Andri Budiman ST., M.Comp.Sc., M.E.M. dan
Bapak Dedy Arisandi, ST., M.Kom selaku pembimbing atas segala ilmu, motivasi,
nasehat, dan bantuan yang telah diberikan sehingga penulis dapat menyelesaikan
penelitian tugas akhir hingga penyelesaian penulisan skripsi ini. Untuk seluruh staf
pengajar Program Studi Teknologi Informasi, terutama Bapak Baihaqi Siregar, S.Si,
M.T dan Ibu Sarah Purnamawati, S.T., M. Sc selaku penguji.
Ucapan terima kasih yang tiada tara untuk kedua orang tua penulis. Untuk
Mamak dan Ayah yang telah menjadi orang tua terhebat sejagad raya, yang selalu
memberikan motivasi, nasehat, cinta, perhatian, dan kasih sayang serta doa yang tentu
takkan bisa penulis balas.
Untuk bunde, abang, kakak dan kedua adik penulis, terima kasih atas segala
perhatian, kasih sayang, dan motivasi serta doanya. Terima kasih banyak telah
menjadi motivator yang luar biasa sehingga penulis dapat menyelesaikan penelitian ini.
Terima kasih untuk sahabat-sahabat, Nency, Ilda, Fitra, Epin, Fhilien, serta
terima kasih yang lebih untuk sahabat masa SMA, Maria Pasaribu dan Winda Safitri
untuk motivasi, dukungan, bantuan, serta perhatian sehingga skripsi ini bisa selesai
tepat waktu.
Dan terima kasih untuk teman-teman seperjuangan Teknologi Informasi USU
Angkatan 2010 serta abang dan kakak senior untuk bantuan dan kebersamaan selama
perkuliahan di Teknologi Informasi USU.
Semoga segala kebaikan dan bantuannya dibalas oleh Allah SWT dan semoga
tugas akhir ini dapat bermanfaat bagi semua pihak yang memerlukannya.
Universitas Sumatera Utara
v
ABSTRAK
SMS adalah salah satu fasilitas yang disediakan ponsel untuk melakukan pengiriman
data berupa pesan singkat. Namun, sayangnya pesan yang dikirimkan melalui SMS
tidak dapat dijamin integritas dan keamanannya. Hal tersebut dikarenakan pesan yang
dikirim akan disimpan di SMSC (Short Message Service Center), yaitu tempat dimana
SMS disimpan sebelum dikirim ke tujuan. Pesan yang sifatnya plaintext ini dapat
disadap oleh siapa saja yang berhasil memiliki akses ke dalam SMSC. Akibatnya,
informasi penting dapat diketahui oleh orang yang tidak berhak. Hal-hal tersebut dapat
menjadi sangat merugikan jika informasi yang dicuri atau disadap adalah informasi
yang bersifat pribadi atau rahasia. Sehingga diperlukan suatu penerapan algoritma
enkripsi untuk mencagah penyadapan terhadap pesan SMS. Pada penelitian ini,
penulis menggunakan algoritma XXTEA atau Corrected Block Tea. XXTEA
beroperasi dalam ukuran blok kelipatan 32 bit dan panjang kunci 128 bit.
Karakteristik dari XXTEA adalah small, secure, simple dan fast. Dengan karakteristik
seperti ini, XXTEA cocok utuk diaplikasikan ke perangkat elektronik mobile. Hasil
pengujian yang didapat, aplikasi yang dibangun dapat mengamankan SMS tepat
sebelum SMS dikirim dan lamanya waktu rata-rata proses enkripsi adalah 419017.3
nanosecond sedangkan waktu rata-rata proses dekripsi adalah 83722.58 nanosecond.
Kata kunci: Enkripsi, SMS, Short Message Text,
XXTEA, Kompleksitas Waktu
Algoritma
Universitas Sumatera Utara
vi
DESIGN SMS (SHORT MESSAGE TEXT) APPLICATION WITH
ENCRYPTION USING XXTEA AGORITHM ANDROID BASED
ABSTRACT
SMS is one of facilities which provided by the phone for data transmission as short
messages. However, unfortunately, message sent via SMS can not guarantee its
integrity and security. That is because message which is sent will be stored in the
SMSC (Short Message Service Center), is a place where SMS is stored before it will
be sent to the destination. This plaintext message can be intercepted by anyone who is
able to have access to the SMSC. As a result, the important information can be known
by an unauthorized person. These things can be very harmful if the information which
is stolen or intercepted is private or confidential. So, we need an encryption algorithm
to prevent malicious application intercepts the SMS. In this study, the author used the
algorithm XXTEA or Corrected Block Tea. XXTEA. XXTEA is operated in blok
dimension with multiplies of 32 bits and the key length of 128 bit. Characteristics of
XXTEA is small, secure, simple and fast. With these characteristics, XXTEA fitted to
be applied to mobile electronic devices. From the acquired test results, the application
can secure the SMS just before it sent and average duration of encryption is 419017.3
nanosecond whereas average duration of decryption is 419017.3 nanosecond.
Keyword: Encryption, SMS, Short Message Text, XXTEA, Time Complexity of
Algorithm, Big Theta
Universitas Sumatera Utara
vii
DAFTAR ISI
Hal.
Persetujuan
ii
Pernyataan
iii
Ucapan Terima Kasih
iv
Abstrak
v
Abstract
vi
Daftar Isi
vii
Daftar Tabel
x
Daftar Gambar
xi
BAB 1 Pendahuluan
1
1.1. Latar Belakang
1
1.2. Rumusan Masalah
2
1.3. Tujuan Penelitian
3
1.4. Batasan Masalah
3
1.5. Manfaat Penelitian
3
1.6. Sistematika Penulisan
3
BAB 2 Landasan Teori
5
2.1. Short Message Service (SMS)
5
2.1.1. Cara Kerja SMS
6
2.2. Keamanan SMS
7
2.3. Android
8
2.4. Kriptografi
8
Universitas Sumatera Utara
viii
2.4.1. XXTEA
9
2.5. SQLite
11
2.6. Base64
13
2.7. Kompleksitas Algoritma
14
2.7.1. Notasi Asimptotik
15
2.7.2. Kompleksitas Waktu Algoritma
17
2.8. Penelitian Terdahulu
18
BAB 3 Analisis dan Perancangan
20
3.1. Use Case Diagram
20
3.2. Activity Diagram
21
3.3. Flowchart Sistem
21
3.4. Perancangan Sistem
24
3.4.1. Kebutuhan Perangkat Lunak
24
3.4.2. Perancangan Antar Muka Sistem
24
3.5. Perancangan Database
34
3.5.1. Perancangan Tabel
34
3.5.2. Relasi Antar Tabel
35
3.6. Proses Enkripsi dan Dekripsi XXTEA
36
BAB 4 Implementasi dan Pengujian
47
4.1. Spesifikasi Perangkat Keras dan Perangkat Lunak
47
4.2. Pengujian Sistem Secara Menyeluruh
48
4.3. Analisis Kriptografi Terhadap Sistem
59
4.3.1. Analisis Keamanan Pesan Antar Pengguna
4.4. Analisis Performa Aplikasi
59
61
4.4.1. Analisis Kompleksitas Waktu
61
4.4.2. Analisis Performa Waktu Aplikasi
64
4.4.3. Analisis Perubahan Panjang Karakter
66
BAB 5 Kesimpulan dan Saran
5.1. Kesimpulan
69
69
Universitas Sumatera Utara
ix
5.2. Saran
69
Daftar Pustaka
70
Lampiran: Source Code Aplikasi
72
Universitas Sumatera Utara
x
DAFTAR TABEL
Hal.
Tabel 2.8 Penelitian Terdahulu
19
Tabel 3.5.3.1 Nilai ASCII Plaintext “rabi”
36
Tabel 3.5.3.2 Nilai ASCII Plaintext “atul"
36
Tabel 3.5.3.3 Nilai ASCII Kunci “inik”
37
Tabel 3.5.3.4 Nilai ASCII Kunci “unci”
37
Tabel 3.5.3.5 Perubahan Nilai v[0], v[1] dan v[2] pada Enkripsi XXTEA
40
Tabel 3.5.3.6 Perubahan Nilai v[0], v[1] dan v[2] pada Enkripsi XXTEA
45
Tabel 4.3.2.1.1 Perhitungangan Kompleksitas Enkripsi XXTEA
62
Tabel 4.3.2.1.2 Perhitungangan Kompleksitas Dekripsi XXTEA
63
Universitas Sumatera Utara
xi
DAFTAR GAMBAR
Hal.
Gambar 2.1 Cara Kerja SMS
6
Gambar 2.4.1 Flowchart XXTEA
10
Gambar 2.6 Nilai Value pada Base 64
13
Gambar 2.7.1.1 Contoh Grafik dari Notasi Asimptotik Ω
15
Gambar 2.7.1.2 Contoh Grafik dari Notasi Asimptotik θ
16
Gambar 2.7.1.3 Contoh Grafik dari Notasi Asimptotik O
16
Gambar 3.1 Use Case Diagram
20
Gambar 3.2 Activity Diagram
21
Gambar 3.3.1 Flowchart Enkripsi
22
Gambar 3.3.2 Flowchart Dekripsi
23
Gambar 3.4.2.1 Rancangan Tampilan Menu Utama
25
Gambar 3.4.2.2 Rancangan Tampilan Contact
26
Gambar 3.4.2.3 Rancangan Tampilan New Contact
27
Gambar 3.4.2.4 Rancangan Tampilan Update Contact
28
Gambar 3.4.2.5 Rancangan Tampilan SMS
29
Gambar 3.4.2.6 Rancangan Tampilan New Message
30
Gambar 3.4.2.7 Rancangan Tampilan Thread SMS
31
Gambar 3.4.2.8 Rancangan Tampilan Delete SMS
32
Gambar 3.4.2.9 Rancangan Tampilan Delete Contact
33
Universitas Sumatera Utara
xii
Gambar 3.5.1.1 Tabel Contact
34
Gambar 3.5.1.2 Tabel SMS
34
Gambar 3.5.2 Database Relationship
35
Gambar 4.2.1.1 Tampilan Menu Utama
49
Gambar 4.2.1.2 Tampilan SMS
50
Gambar 4.2.1.3 Tampilan Send SMS
51
Gambar 4.2.1.4 Tampilan Inbox
52
Gambar 4.2.1.5 Tampilan Delete SMS
53
Gambar 4.2.1.6 Tampilan Contact
54
Gambar 4.2.1.7 Tampilan New Contact
55
Gambar 4.2.1.8 Tampilan Update Contact
56
Gambar 4.2.1.9 Tampilan Delete Contact
57
Gambar 4.2.2.0 Tampilan Menu Help
58
Gambar 4.3.1.1 Pengirim mengirim SMS
59
Gambar 4.3.1.2 SMS Diterima dengan Aplikasi Default
60
Gambar 4.3.1.3 SMS Diterima dengan Aplikasi Enkripsi
61
Universitas Sumatera Utara
v
ABSTRAK
SMS adalah salah satu fasilitas yang disediakan ponsel untuk melakukan pengiriman
data berupa pesan singkat. Namun, sayangnya pesan yang dikirimkan melalui SMS
tidak dapat dijamin integritas dan keamanannya. Hal tersebut dikarenakan pesan yang
dikirim akan disimpan di SMSC (Short Message Service Center), yaitu tempat dimana
SMS disimpan sebelum dikirim ke tujuan. Pesan yang sifatnya plaintext ini dapat
disadap oleh siapa saja yang berhasil memiliki akses ke dalam SMSC. Akibatnya,
informasi penting dapat diketahui oleh orang yang tidak berhak. Hal-hal tersebut dapat
menjadi sangat merugikan jika informasi yang dicuri atau disadap adalah informasi
yang bersifat pribadi atau rahasia. Sehingga diperlukan suatu penerapan algoritma
enkripsi untuk mencagah penyadapan terhadap pesan SMS. Pada penelitian ini,
penulis menggunakan algoritma XXTEA atau Corrected Block Tea. XXTEA
beroperasi dalam ukuran blok kelipatan 32 bit dan panjang kunci 128 bit.
Karakteristik dari XXTEA adalah small, secure, simple dan fast. Dengan karakteristik
seperti ini, XXTEA cocok utuk diaplikasikan ke perangkat elektronik mobile. Hasil
pengujian yang didapat, aplikasi yang dibangun dapat mengamankan SMS tepat
sebelum SMS dikirim dan lamanya waktu rata-rata proses enkripsi adalah 419017.3
nanosecond sedangkan waktu rata-rata proses dekripsi adalah 83722.58 nanosecond.
Kata kunci: Enkripsi, SMS, Short Message Text,
XXTEA, Kompleksitas Waktu
Algoritma
Universitas Sumatera Utara
vi
DESIGN SMS (SHORT MESSAGE TEXT) APPLICATION WITH
ENCRYPTION USING XXTEA AGORITHM ANDROID BASED
ABSTRACT
SMS is one of facilities which provided by the phone for data transmission as short
messages. However, unfortunately, message sent via SMS can not guarantee its
integrity and security. That is because message which is sent will be stored in the
SMSC (Short Message Service Center), is a place where SMS is stored before it will
be sent to the destination. This plaintext message can be intercepted by anyone who is
able to have access to the SMSC. As a result, the important information can be known
by an unauthorized person. These things can be very harmful if the information which
is stolen or intercepted is private or confidential. So, we need an encryption algorithm
to prevent malicious application intercepts the SMS. In this study, the author used the
algorithm XXTEA or Corrected Block Tea. XXTEA. XXTEA is operated in blok
dimension with multiplies of 32 bits and the key length of 128 bit. Characteristics of
XXTEA is small, secure, simple and fast. With these characteristics, XXTEA fitted to
be applied to mobile electronic devices. From the acquired test results, the application
can secure the SMS just before it sent and average duration of encryption is 419017.3
nanosecond whereas average duration of decryption is 419017.3 nanosecond.
Keyword: Encryption, SMS, Short Message Text, XXTEA, Time Complexity of
Algorithm, Big Theta
Universitas Sumatera Utara
BAB 1
PENDAHULUAN
Bab ini membahas tentang hal-hal yang menjadi latar belakang pembuatan tugas
akhir, rumusan masalah, tujuan, batasan masalah, manfaat, metodologi penelitian serta
sistematika penulisan tugas akhir.
1.1.
Latar Belakang
Beberapa tahun terakhir ini terjadi perkembangan yang pesat pada teknologi, salah
satunya adalah telepon selular (ponsel). Mulai dari ponsel yang hanya bisa digunakan
untuk bicara dan mengirim pesan hingga “ponsel cerdas” (smartphone) yang memiliki
berbagai fungsi seperti multimedia, multiplayer games, transfer data, video streaming
dan lain-lain. Berbagai sistem operasi untuk mengembangkan aplikasi ponsel pun
bermunculan, diantaranya yang cukup dikenal luas adalah android .
Meskipun Android menyediakan berbagai macam media komunikasi yang
memudahkan pengguna untuk mengirim pesan, gambar, suara, video dan file lainnya,
namun fasilitas Short Message Service (SMS) tidak pernah ditinggalkan oleh
pengguna. Hal ini dikarenakan SMS merupakan fasilitas yang dimiliki oleh semua
ponsel. SMS adalah salah satu fasilitas yang disediakan ponsel untuk melakukan
pengiriman data berupa pesan singkat. Namun, sayangnya pesan yang dikirimkan
melalui SMS tidak dapat dijamin integritas dan keamanannya. (Anjari, et al. 2012)
Hal tersebut dikarenakan pesan yang dikirim akan disimpan di SMSC (Short
Message Service Center), yaitu tempat dimana SMS disimpan sebelum dikirim ke
tujuan. Pesan yang sifatnya plaintext ini dapat disadap oleh siapa saja yang berhasil
memiliki akses ke dalam SMSC. Akibatnya, informasi penting seperti password,
nomor pin kartu kredit, nomor rekening bank , dan lain-lain dapat diketahui oleh
orang yang tidak berhak untuk mengetahuinya. Hal-hal tersebut dapat menjadi sangat
merugikan jika informasi yang dicuri atau disadap adalah informasi yang bersifat
pribadi atau rahasia. Dari permasalahan keamanan isi pesan SMS yang telah
Universitas Sumatera Utara
2
dijelaskan sebelumnya, muncul pertanyaan bagaimana cara untuk mengamankan isi
SMS tersebut. Salah satu cara untuk mengatasi permasalahan tersebut adalah dengan
melakukan enkripsi terhadap pesan SMS. Dengan semakin majunya perkembangan
pada perangkat mobile, implementasi suatu algoritma enkripsi menjadi mungkin untuk
diterapkan.
Penelitian terhadap enkripsi SMS sudah pernah dilakukan.
Yaitu dengan
menggunakan algoritma Rabin yang dengan hasil waktu yang dibutuhkan untuk
melakukan enkripsi terhadap isi SMS rata-rata sebesar 96,3 milidetik dan dekripsi
rata-rata sebesar 118 milidetik (Muko, et al. 2012 ). Kemudian dengan algoritma
Vigenere yang dimodifikasi dengan Fibonacci dan key tambahan sehingga
memperkuat keamanan dan privasi (Anjari, et al. 2012).
Pada penelitian ini, penulis menggunakan algoritma XXTEA atau Corrected
Block Tea. XXTEA diciptakan oleh Roger M. Needham dan David J. Wheeler pada
tahun 1998. XXTEA merupakan turunan dari Block TEA. XXTEA beroperasi dalam
ukuran blok kelipatan 32 bit dan panjang kunci 128 bit. Karakteristik dari XXTEA
adalah small, secure, simple dan fast. Dengan karakteristik seperti ini, XXTEA cocok
utuk diaplikasikan ke perangkat elektronik mobile (Khandar.2009).
1.2.
Rumusan Masalah
Hal yang riskan pada komunikasi melalui SMS adalah pesan yang dikirimkan
akan disimpan di SMSC (Short Message Service Center), yaitu tempat dimana SMS
disimpan sebelum dikirim ke tujuan. Pesan yang sifatnya plaintext ini dapat disadap
oleh siapa saja yang berhasil memiliki akses ke dalam SMSC. Akibatnya, informasi
penting seperti password, nomor pin kartu kredit, nomor rekening bank, dan lain-lain
dapat diketahui oleh orang yang tidak berhak untuk mengetahuinya. Hal-hal tersebut
dapat menjadi sangat merugikan jika informasi yang dicuri atau disadap adalah
informasi yang bersifat pribadi atau rahasia. Dari permasalahan keamanan isi pesan
SMS yang telah dijelaskan sebelumnya, muncul pertanyaan bagaimana mengamankan
isi SMS tersebut.
Universitas Sumatera Utara
3
1.3.
Tujuan Penelitian
Mengamankan isi SMS dengan membuat aplikasi berbasis android menggunakan
algoritma XXTEA.
1.4.
Batasan Masalah
Untuk menghindari penyimpangan dan perluasan yang tidak diperlukan, penulis
membuat batasan:
1.
Pembangunan aplikasi fokus pada pengimplementasian kriptografi pada SMS.
2.
Dijalankan pada handphone berbasis Android 2.3 ke atas
1.5.
Manfaat Penelitian
Manfaat dari penelitian ini adalah:
1.
Memberikan
kemudahan
kepada pengguna
handphone seluler untuk
melakukan enkripsi terhadap pesan teks atau sms di android.
2.
Menjadi referensi dalam bidang kriptografi khususnya pada algoritma
XXTEA.
1.6.
Sistematika Penulisan
Tugas akhir ini disusun dalam lima bab dengan sistematika penulisan sebagai berikut:
Bab I Pendahuluan
Bab pendahuluan ini berisi tentang hal-hal yang mendasari dilakukannya
penelitian serta pengidentifikasian masalah penelitian. Bagian-bagian yang
terdapat dalam bab pendahuluan ini meliputi latar belakang masalah,
perumusan masalah, batasan masalah, tujuan penelitian, dan manfaat
penelitian.
Bab II Landasan Teori
Pada bab landasan teori menguraikan dasar teori, penelitian terdahulu,
kerangka pikir dan hipotesis yang diperoleh dari acuan yang mendasari dalam
melakukan kegiatan penelitian pada tugas akhir ini.
Bab III Analisis dan Perancangan
Pada bab ini akan dibahas tentang rancangan sistem seperti use case untuk
melihat proses apa saja yang dapat dilakukan oleh pengguna, diagram activity
Universitas Sumatera Utara
4
yang menggambarkan jalur aktifitas dari level atas secara umum, flowchart
dari sistem, serta proses enkripsi dan dekripsi menggunakan algoritma
XXTEA.
Bab IV Implemetasi dan Pengujian
Pada bab hasil dan pembahasan akan memaparkan impkementasi sistem dan
hasil terhadap uji coba algoritma yang telah dilakukan dalam meyelesaikan
permasalahan pengamanan pesan pada SMS.
Bab V Kesimpulan dan Saran
Bab ini berisi tentang kesimpulan hasil penelitian dan saran-saran yang
berkaitan dengan penelitian selanjutnya.
Universitas Sumatera Utara
BAB 2
LANDASAN TEORI
Pada bab ini, akan dibahas dasar teori, penelitian terdahulu, kerangka pikir dan
hipotesis yang mendasari penyelesaian permasalahan pengamanan pesan pada SMS
dengan Algoritma XXTEA.
2.1. Short Message Service (SMS)
SMS merupakan sebuah layanan komunikasi yang ada pada telepon seluler untuk
mengirim dan menerima pesan-pesan pendek. SMS pertama kali dikenalkan pada
tanggal 3 Desember 1982. SMS pertama di dunia dikirimkan menggunakan jaringan
GSM milik operator telepon bernama Vodafone. SMS pertama ini dikirimkan oleh
ahli bernama Neil Papwort kepada Richard Jarvis menggunakan komputer (Dwi P, et
al. 2012). Jumlah karakter maksimum pada pesan SMS adalah 160 karakter (huruf,
angka atau simbol dalam abjad Latin). Untuk huruf lain, seperti Cina, ukuran SMS
maksimum adalah 70 karakter (Rayarikar, et al. 2012).
2.1.1. Cara Kerja SMS
Proses cara kerja SMS dilakukan oleh 2 sisi yaitu sender dan receiver, sender
mengirim pesan SMS yang kemudian ditangkap oleh Base Transceiver Station (BTS)
yang kemudian dilanjutkan ke Base Station Controller (BSC) setelah itu proses akan
dikerjakan oleh Mobile Switching Center (MSC) yang bertugas sebagai Gateway dan
yang terakhir proses dilakukan oleh Short Message Service Center (SMSC) yang
bertugas store dan forwading SMS. Alur kerja SMS, dapat dilihat pada gambar 2.1.
Universitas Sumatera Utara
6
Gambar 2.1 Cara Kerja SMS (Rayarikar, et al. 2012)
Menurut Dwi P. (2012), tugas dari masing-masing perangkat dapat dijelaskan sebagai
berikut:
1. BTS
BTS berfungsi sebagai perangkat tranceiver untuk melakukan komunikasi
dengan semua handset (MS) yang aktif dan berada dalam area cakupannya
(cell). BTS melaksanakan proses modulasi/demodulasi sinyal, equalisasi sinyal
dan pengkodean error (error coding). Beberapa BTS dapat terhubung dengan
sebuah BSC (Base stasion Controller), sementara itu radius cakupan dari suatu
cell berkisar antara 10 sampai 200 m untuk cell terkecil hinggal beberapa
kilometer untuk cell terbesar. Sebuah BTS biasanya dapat melayani 20–40
komunikasi panggilan secara bersamaan.
2. BSC
BSC
menyediakan
fungsi
pengaturan
pada
beberapa
BTS
yang
dikendalikannya. Diantaranya fungsi handover, konfigurasi cell site,
pengaturan sumber daya radio, serta tuning power dan frekuensi pada suatu
BTS. BSC merupakan simpul (konmsentrator) untuk menghubungkan dengan
core network. Dalam jaringan GSM umumnya sebuah BSc dapat mengatur 70
buah BTS.
Universitas Sumatera Utara
7
3. MSC
MSC berfungsi melakukan fungsi switching dan bertanggung jawab untuk
melakukan pengaturan panggilan, call setup, release, dan routing. MSC juga
melakukan fungsi billing dan sebagai gateway ke jaringan lain.
4. SMSC
SMSC berfungsi menyampaikan pesan SMS antar Mobile Station(MS)/ HP,
dan juga melakukan fungsi store-and-forwarding SMS jika nomor penerima
sedang tidak dapat menerima pesan. Didalam jaringanya sebuah operator dapat
mempunyai lebih dari satu perangkat SMSC, sesuai besar trafik SMS jaringan
tersebut.
2.2. Keamanan SMS
Ada beberapa risiko yang dapat mengancam keamanan pesan pada layanan SMS salah
satunya adalah SMS interception. Celah keamanan terbesar pada layanan komunikasi
SMS adalah pada saat SMS tersebut sedang dikirim melalui jaringan SMS tersebut.
SMS bekerja pada jaringan nirkabel yang memungkinkan terjadinya pencurian isi
pesan SMS ketika dalam proses transmisi dari pengirim ke penerima. Kasus ini
disebut SMS interception. Hal ini dikarenakan SMS yang dikirim akan disimpan di
SMSC, sehingga dapat dibaca oleh siapa saja yang dapat mengakses SMSC (Fajar, et
al. 2014).
Di Indonesia, pemberian informasi SMS yang diterima dan dikirim oleh provider
kepada badan hukum diatur oleh Pasal 87 PP No. 52 Tahun 2000 tentang
Penyelenggaraan Telekomunikasi, yang menyatakan dalam hal untuk keperluan
proses peradilan pidana, penyelenggara jasa telekomunikasi dapat merekam informasi
yang dikirim dan atau diterima oleh penyelenggara jasa telekomunikasi serta dapat
memberikan informasi yang diperlukan. Walaupun melanggar privasi pelanggan.
Selain itu, aplikasi penyadapan seperti FlexiSpy. Aplikasi ini bisa memantau
semua aktifitas yang di lakukan ponsel target. Mulai dari data SMS hingga percakapan
telepon. Informasinya di kirim melalui kanal GPRS ke server FlexiSpy dan bisa di
pantau tanpa si ketahui pemilik ponsel.
Universitas Sumatera Utara
8
2.3. Android
Android adalah sistem operasi untuk telepon seluler berbasis Linux. Android
menyediakan platform terbuka bagi para pengembang untuk membangun aplikasi
yang dapat dijalankan di bermacam telepon seluler. Awalnya, Google Inc. membeli
Android Inc. yang merupakan pendatang baru dalam teknologi telepon seluler.
Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance,
konsorsium dari 34 perusahaan piranti keras, piranti lunak, dan telekomunikasi,
termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia (Dwi P, et
al. 2012).
Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open
Handset Aliance menyatakan mendukung pengembangan standar terbuka pada telepon
seluler.
Fitur yang tersedia di Android antara lain:
– Framework aplikasi yang mendukung penggantian komponen dan reusable
– Dalvik virtual machine
– Integrated browser
– Grafik berdasarkan OpenGL
– SQLite untuk penyimpanan data
– Multimedia support
– Linkungan Development yang lengkap dan kaya termasuk perangkat emulator,
tools untuk debugging, profil dan kinerja memori, dan plugin untuk IDE
Eclipse.
2.4. Kriptografi
Menurut Sadikin (2012), kriptografi adalah ilmu yang bersandarkan pada teknik
matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan
data dan otentikasi entitas.
Kriptografi terbagi atas dua kategori yaitu kriptografi klasik dan kriptografi
modern. Kriptografi klasik adalah sistem kriptografi yang menggunakan penyandian
kunci simetris dan menggunakan metode subtitusi (pergantian huruf) atau transposisi
(pertukaran tempat). Dan kriptografi modern adalah sistem kriptografi yang
menggunakan penyandian kunci asimetris (Sadikin, 2012).
Universitas Sumatera Utara
9
Berikut ini adalah beberapa mekanisme yang berkembang pada kriptografi:
1. Fungsi Hash
Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang
sembarang ke sebuah teks khusus yang disebut message digest dengan panjang
yang tetap. Fungsi hash pada umumnya digunakan untuk menguji keutuhan
pada sebuah data.
2. Penyandian dengan kunci asimetris
Penyandian dengan kunci asimetris atau sering juga disebut dengan kunci
publik adalah penyandian yang pada proses enkripsi dan dekripsinya memiliki
kunci yang berbeda. Pada kunci yang digunakan untuk enkripsi bersifat publik
(public key). Sedangkan kunci yang digunakan untuk dekripsi bersifat rahasia
(private key). Beberapa jenis kriptografi dengan penyandian kunci asimetris
antara lain RSA, Diffie-Helman, eL-Gamal, Knapsack, dan beberapa
penerapan teknik Elliptic Curve.
3. Penyandian dengan kunci simetris
Penyandian dengan kunci simetris adalah penyandian yang pada proses
enkripsi dan dekripsinya menggunakan sebuah kunci yang sama. Kunci yang
digunakan pada proses enkripsi dan dekripsi bersifat rahasia. Beberapa jenis
kriptografi dengan penyandian kunci simetris antara lain Data Encryption
Standard (DES), 3DES, Advance Encryption Standard (AES), Blowfish dan
International Data Encryption Algorithm (IDEA).
2.4.1. XXTEA
Correted Block TEA (atau biasa disebut dengan XXTEA) adalah cipher block yang
dirancang untuk memperbaiki kelemahan dalam Block TEA sebelumnya (XTEA).
XXTEA adalah operasi jaringan Feistel pada blok yang terdiri dari setidaknya dua
buah kata 32 -bit dan menggunakan kunci 128-bit (Yarrkov, 2010). Algoritma
XXTEA didesain oleh Roger Needham dan David Wheeler dari Laboratorium
Komputer Cambridge, Algoritma ini dipublikasikan dalam laporan teknis pada bulan
Oktober 1998. XXTEA juga merupakan sebuah algoritma enkripsi efektif yang mirip
dengan DES yang dapat digunakan untuk aplikasi web yang membutuhkan keamanan.
Ketika menggunakan algoritma ini, sebuah perubahan dari teks asal akan mengubah
Universitas Sumatera Utara
10
sekitar setengah dari teks hasil tanpa meninggalkan jejak dimana perubahan berasal
(Atmojo, 2012).
XXTEA beroperasi pada blok yang berukuran tetap yang merupakan kelipatan
32 bits dengan ukuran minimal 64 bits. Jumlah dari putaran lengkap bergantung pada
ukuran blok, tetapi terdapat minimal 6 (bertambah terus hingga 32 untuk ukuran blok
yang lebih kecil). Algoritma ini menggunakan lebih banyak fungsi pengacakan yang
menggunakan kedua blok tetangganya dalam pemrosesan setiap kata dalam blok.
Flowchart XXTEA, dapat dilihat pada gambar 2.4.1(Fernando, 2009)
Gambar 2.4.1 Flowchart XXTEA (Fernando, 2009)
Gambar 2.4.1 menampilkan proses pengacakan yang dilakukan pada satu
iterasinya. Proses iterasi dalam XXTEA dilakukan dalam 2 kali iterasi yang dilakukan
secara bersarang. Pada iterasi teratas, iterasi dilakukan sebanyak q, dimana:
q = 6 + 52/n
dengan n ≥ 1 dimana n adalah jumlah blok dari plaintext. Lalu, pada iterasi
selanjutnya, iterasi dilakukan sebanyak n kali.
Proses pengacakan yang dilakukan dalam satu iterasi XXTEA adalah sebagai
berikut:
1.
Algoritma akan mengacak blok ke-r dari plaintext.
2.
Proses akan mengambil Xr-1, Xr+1, DELTA, dan kata kunci sebagai
input.
Universitas Sumatera Utara
11
3.
Pengacakan pertama: Xr-15.
4.
Pengacakan kedua: Xr-1>>3 di-XOR-kan dengan Xr+12).
8.
Hasil yang didapat dari tahap ke 6 dan 7 ditambahkan.
9.
Hasil yang didapat dari tahap 5 dan 8 di- XOR-kan.
10.
Hasil yang didapat pada tahap 9 ditambahkan ke blok plaintext ke-r.
XXTEA tidak memiliki batas ukuran blok, XXTEA dapat digunakan untuk
mengenkripsi satu buah pesan utuh tanpa memerlukan mode operasi cipher. Meski
XXTEA dapat mengenkripsi keseluruhan pesan atau file sekaligus, pada
implementasinya XXTEA dapat dioperasikan dengan mode operasi untuk file-file
yang berukuran sangat besar sehingga tidak bisa dibaca ke dalam memory sekaligus
(Atmojo, 2012).
Kelebihan dari XXTEA menurut hatipoglu (2009) adalah:
–
Kunci 128 bit
–
Panjang blok adalah kelipatan 32 bit dengan minimal blok adalah 64 bit
–
Hanya membutuhkan komputasi dan kebutuhan memori yang sangat rendah
–
Memberikan keamanan terbaik dilihat dari cycle ratio nya
–
Mudah diimplementasikan
–
Memberikan keamanan yang baik pada cycle yang lebih sedikit
–
Lebih efisien untuk pesan panjang
–
Bebas dipublikasikan karena tidak membutuhkan lisensi atau hak paten
Selain itu, XXTEA sangat cocok untuk diaplikasikan ke perangkat-perangkat
elektronik mobile seperti handphone karena proses enkripsi dan dekripsinya tidak
memakan resource terlalu berat (Khandar, 2009).
2.5. SQLite
SQLite merupakan sebuah sistem manajemen database relasional yang bersifat ACID
- compliant dan memiliki ukuran pustaka kode yang relatif kecil dan ditulis dalam
Universitas Sumatera Utara
12
bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan
oleh D. Richard Hipp. Tidak seperti pada paradigma client-server umumnya, Inti
SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah
program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan.
Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan
API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya
membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara
keseluruhan lebih sederhana. Seluruh elemen database (definisi data, tabel, indeks,
dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa
diraih dengan cara mengunci keseluruhan file database pada saat sebuah transaksi
dimulai.
SQLite mengimplementasikan hampir seluruh elemen-elemen standar yang
berlaku pada SQL-92, termasuk transaksi yang bersifat atomic, konsistensi database,
isolasi, dan durabilitas (dalam bahasa inggris lebih sering disebut ACID), trigger, dan
queri-queri yang kompleks. Tidak ada pengecekan tipe sehingga data bisa dientrikan
dalam bentuk string untuk sebuah kolom bertipe integer. Beberapa kalangan melihat
hal ini sebagai sebuah inovasi yang menambah nilai guna dari sebuah database,
utamanya ketika digunakan dalam bahasa pemrograman berbasis script (PHP, Perl),
sementara kalangan lain melihat hal tersebut sebagai sebuah kekurangan. Beberapa
proses ataupun thread dapat berjalan secara bersamaan dan mengakses database yang
sama tanpa mengalami masalah. Hal ini disebabkan karena akes baca data dilakukan
secara paralel. Sementara itu akses tulis data hanya bisa dilakukan jika tidak ada
proses tulis lain yang sedang dilakukan; jika tidak, proses tulis tersebut akan gagal dan
mengembalikan kode kesalahan (atau bisa juga secara otomatis akan mencobanya
kembali sampai sejumlah nilai waktu yang ditentukan habis). Hanya saja ketika
sebuah tabel temporer dibuat, mekanisme penguncian pada proses multithread akan
menyebabkan masalah . Update yang terkini dikatakan telah memperbaiki masalah
ini. Sebuah program yang mandiri dinamakan sqlite disediakan dan bisa digunakan
untuk mengeksekusi queri dan memanajemen file-file database SQLite (Nugroho, et
Al. 2011).
Universitas Sumatera Utara
13
2.6. Base64
Base64 adalah istilah umum untuk sejumlah skema pengkodean serupa yang
mengkodekan data biner dan menerjemahkannya ke dalam representasi basis 64.
Istilah Base64 berasal dari konten pengkodean MIME tertentu. Skema encoding
base64 biasanya digunakan ketika ada kebutuhan untuk menyandikan data biner yang
perlu disimpan dan ditransfer melalui media yang dirancang untuk menangani data
tekstual. Hal ini untuk memastikan bahwa data tetap utuh tanpa perubahan selama
pengiriman. Base64 digunakan umum dalam beberapa aplikasi termasuk email
melalui MIME, dan penyimpanan data yang kompleks dalam XML.
Base64 menggunakan karakter A – Z, a – z dan 0 – 9 untuk 62 nilai pertama,
sedangkan 2 nilai terakhir digunakan untuk symbol (+ dan /). beberapa metode
encoding lain seperti uuencode dan binhex menggunakan 64 karakter yang berbeda
untuk mewakili 6 binary digit, namun metode-metode tersebut tidak disebut sebagai
encoding Base64 (Atmojo, 2012).
Gambar 2.6 Nilai Value pada Base 64
Universitas Sumatera Utara
14
2.7. Kompleksitas Algoritma
Suatu masalah dapat mempunyai banyak algoritma penyelesaian. Algoritma yang
digunakan tidak saja harus benar, namun juga harus efisien. Efisiensi suatu algoritma
dapat diukur dari waktu eksekusi algoritma dan kebutuhan ruang memori. Algoritma
yang efisien adalah algoritma yang meminimumkan kebutuhan waktu dan ruang.
Dengan menganalisis beberapa algoritma untuk suatu masalah, dapat diidentifikasi
satu algoritma yang paling efisien. Besaran yang digunakan untuk menjelaskan model
pengukuran waktu dan ruang ini adalah kompleksitas algoritma.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak
komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara
informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang
singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan
waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Kompleksitas algoritma terdiri dari dua macam yaitu kompleksitas waktu dan
kompleksitas ruang.
Kompleksitas waktu, dinyatakan oleh T(n) , diukur dari jumlah tahapan
komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran
masukan n, di mana ukuran masukan (n) merupakan jumlah data yang diproses oleh
sebuat algoritma. Sedangkan kompleksitas ruang, S(n) , diukur dari memori yang
digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari
masukan n. Dengan menggunakan kompleksitas waktu atau kompleksitas ruang, dapat
ditentukan laju peningkatan waktu atau ruang yang diperlukan algoritma, seiring
dengan meningkatnya ukuran masukan ( n).
Kecenderungan saat ini, ruang (memori utama) yang disediakan semakin besar
yang artinya kapasitas data yang diproses juga semakin besar. Namun, waktu yang
Universitas Sumatera Utara
15
diperlukan untuk menjalankan suatu algoritma harus semakin cepat. Karena kompleksitas
waktu menjadi hal yang sangat penting, maka analisis kompleksitas algoritma deteksi tepi
akan dilakukan terhadap running time algoritma tersebut.
2.7.1. Notasi Asimptotik
Untuk nilai n cukup besar, bahkan tidak terbatas, dilakukan analisis efisiensi asimptotik
dari suatu algoritma untuk menentukan kompleksitas waktu yang sesuai atau disebut juga
kompleksitas waktu asimptotik. Notasi yang digunakan untuk menentukan kompleksitas
waktu asimptotik dengan melihat waktu tempuh (running time) algoritma adalah notasi
asimptotik (asimptotic notation). Notasi asimptotik didefinisikan sebagai fungsi dengan
domain himpunan bilangan asli N = {0,1,2, 3,…. } (Cormen et al., 2009: 43).
Kompleksitas waktu asimptotik terdiri dari tiga macam. Pertama, keadaan terbaik
(best case) dinotasikan dengan (Ω) (Big-Omega), keadaan rata-rata (average case)
dilambangkan dengan notasi (Θ) (Big-Theta) dan keadaan terburuk (worst case)
dilambangkan dengan (O) (Big-O).
Gambar 2.7.1.1 Contoh Grafik dari Notasi Asimptotik Ω
Gambar 2.7.1.1 menunjukkan notasi Ω menjadi batas bawah dari suatu fungsi f(n)
agar berada dalam suatu faktor konstan. Dinyatakan f(n) =O(g(n)) jika terdapat
Universitas Sumatera Utara
16
konstanta positif n0 dan c sedemikian sehingga pada n0 dan di kanan n0 , nilai f(n)
selalu berada tepat cg(n) pada atau di atas cg(n) .
Gambar 2.7.1.2 Contoh Grafik dari Notasi Asimptotik θ
Pada gambar 2.7.1.2, n0 merupakan nilai n minimum yang mungkin. Yaitu
menunjukkan notasi Θ membatasi suatu fungsi f(n) agar berada dalam faktor konstan.
Dinyatakan f(n) = Θ (g(n)) jika terdapat konstanta positif n0, c1, dan c2 sedemikian
sehingga pada n0 dan di kanan n0, nilai f(n) selalu berada tepat pada c1 g(n), tepat pada
c2 g(n) , atau di antara c1 g(n) dan c2 g(n) .
Gambar 2.7.1.3 Contoh Grafik dari Notasi Asimptotik O
Gambar 2.7.1.3 menunjukkan notasi menjadi batas atas dari suatu fungsi f(n) agar
berada dalam suatu faktor konstan. Dinyatakan f(n) = O (g(n)) jika terdapat konstanta
Universitas Sumatera Utara
17
positif n0 dan c sedemikian sehingga pada n0 dan di kanan n0 , nilai f(n) selalu berada
tepat pada cg(n) atau di bawah cg(n). Kompleksitas waktu algoritma biasanya dihitung
dengan menggunakan notasi O(g(n)), dibaca “big-O dari g(n) ”.
2.7.2. Kompleksitas Waktu Algoritma
Untuk menentukan kompleksitas waktu suatu algoritma, diperlukan ukuran masukan
n serta running time algoritma tersebut. Pada umumnya, running time algoritma
meningkat seiring dengan bertambahnya ukuran n. Sehingga, running time suatu
algoritma dapat dinyatakan sebagai fungsi dari n .
Ukuran masukan n untuk suatu algoritma bergantung pada masalah yang
diselesaikan oleh algoritma tersebut. Pada banyak kasus, seperti pengurutan, ukuran
yang paling alami adalah jumlah item dalam masukan. Dalam kasus lain, seperti
mengalikan dua bilangan bulat, ukuran input terbaik adalah jumlah bit yang
diperlukan untuk mewakili masukan dalam notasi biner biasa.
Running time algoritma pada masukan n tertentu merupakan jumlah operasi
atau langkah yang dieksekusi. Selanjutnya, jumlah waktu yang konstan diperlukan
untuk mengeksekusi setiap baris pseudocode (kode semu). Satu baris dapat memiliki
jumlah waktu yang berbeda dari baris lain. Namun asumsikan bahwa setiap
pelaksanaan baris ke-i membutuhkan waktu sebesar ci, di mana ci adalah konstanta.
Dalam menentukan running time suatu baris pada pseudocode, kalikan
konstanta ci dengan jumlah waktu yang diperlukan untuk mengeksekusi baris tersebut.
Untuk kasus di mana terdapat perintah loop while atau for dengan panjang , maka
perintah tersebut dieksekusi dengan waktu n+1. Sedangkan untuk baris berisi
komentar, dinyatakan sebagai baris yang tidak dieksekusi, sehingga jumlah waktu
untuk baris tersebut adalah nol.
Selanjutnya, running time dari algoritma adalah jumlah dari running time setiap
perintah yang dieksekusi. Sebuah perintah yang membutuhkan ci langkah n waktu
untuk dieksekusi akan memiliki pengaruh sebesar cin pada running time total (T(n) ).
Setelah diperoleh bentuk fungsi T(n) , dapat ditentukan bentuk dari algoritma
tersebut dengan menggunakan notasi asimptotik O. Dengan ditentukannya bentuk
algoritma, maka dapat diramalkan berapa besar peningkatan running time jika ukuran
masukan ditingkatkan.
Universitas Sumatera Utara
18
Suatu algoritma dikatakan anggota θ(g(n)) jika algoritma itu adalah anggota
O(g(n)) dan anggota Ω(g(n)). Contoh : Karena T(n) = c1n2 + c2n adalah angota O( n2)
dan anggota Ω( ), maka T(n) adalah anggota θ (n2 ).
Contoh :
For i ← 1 to n do
For j ← 1 to i do
For k ← j to n do
a←a+1
end for
end for
end for
Nilai big O, big Ω, dan big Θ dari algoritma di atas adalah sebagai berikut :
Untuk i = 1,
Untuk j = 1, jumlah perhitungan = n kali
Untuk i = 2,
Untuk j = 1, jumlah perhitungan = n kali
Untuk j = 2, jumlah perhitungan = n–1 kali
…
Untuk i = n,
Untuk j = 1, jumlah perhitungan = n kali
Untuk j = 2, jumlah perhitungan = n –1 kali
Untuk j = n, jumlah perhitungan = 1 kali.
T(n)
= n2+(n-1)2 +(n-2)2 + ... + 1
= n(n + 1)(2n + 1)/6
= 2n3+3n2 + 1
Diperoleh T(n) ≤ 3untuk n ≥ 4 dan T(n) ≥ 2n3 untuk n ≥ 1.
2.8. Penelitian Terdahulu
Penelitian terhadap enkripsi SMS sudah pernah dilakukan.
Yaitu dengan
menggunakan algoritma Rabin yang dengan hasil waktu yang dibutuhkan untuk
melakukan enkripsi terhadap isi SMS rata-rata sebesar 96,3 milidetik dan dekripsi
Universitas Sumatera Utara
19
rata-rata sebesar 118 milidetik (Muko, et al. 2012 ). Kemudian dengan algoritma
Vigenere yang dimodifikasi dengan fibonacci dan key tambahan sehingga
memperkuat keamanan dan privasi(Anjari, et al. 2012).
Sedangkan, penelitian mengenai algoritma XXTEA atau Corrected Block Tea
sudah pernah dilakukan. Yaitu oleh Sujatmika, dengan mengimplementasikan
XXTEA pada virtual disk pada system operasi windows. Virtual disk tersebut dibuat
dengan merepresentasikan file volume sebagai container dari virtual disk. Proses
enkripsi pada isi virtual disk dilakukan sebelum proses unmounting virtual disk.
Sedangkan proses dekripsi pada isi virtual disk, dilakukan setelah dilakukan proses
mounting file volume. Algoritma XXTEA sendiri, berjalan pada blok 32 bit. Sehingga
sebelum memasuki proses utama enkrip dan dekrip, file perlu diolah terlebih dahulu.
Selanjutnya, Atomojo (2012) mengimplementasikan XXTEA pada secure login
website. Hasil yang di dapat ialah proses enkripsi pada sisi server,dan dekripsi pada
sisi client telah menambah waktu akses website rata-rata18ms (0,018 sekon).
Berikut penelitian terdahulu disajikan dalam bentuk tabel:
Tabel 2.8 Penelitian Terdahulu
Judul
Tahun
Enkripsi
SMS
(Short
Service)
pada
Telepon
Message 2010
Peneliti
Becik Gati Anjari
Selular
Berbasis Android
Aplikasi
Enkripsi
SMS
dengan 2012
Gayuh Taruna Muko, et-al
Metode Rabin pada Android
Implementasi Enkripsi Dengan
Arif rahman Sujatmika.
Algoritma XXTEA Pada
Virtual Disk Berbasis Windows
Perancangan Secure Login Website
2012
Atmojo, Ardani Dwi
Menggunakan Algoritma Enkripsi
XXTEA
Universitas Sumatera Utara
`BAB 3
ANALISIS DAN PERANCANGAN
Pada bab ini akan dibahas tentang rancangan sistem seperti use case untuk melihat
proses apa saja yang dapat dilakukan oleh pengguna, diagram activity yang
menggambarkan alir aktifitas dari level atas secara umum, flowchart dari sistem, serta
proses enkripsi dan dekripsi menggunakan algoritma XXTEA.
3.1. Use Case Diagram
Use case adalah teknik untuk merekam persyaratan fungsional sebuah sistem. Use
case
mendeskripsikan interaksi tipikal antara para pengguna dengan sistem itu
sendiri, dengan memberi narasi bagaimana sistem tersebut digunakan.
Pada use case ini terdiri dari dua aktor yaitu pengirim dan penerima. Pada aplikasi
ini pengirim dapat melakukan penulisan pesan, pengiriman pesan, sedangkan
penerima pesan dapat menerima pesan, menyimpan pesan yang diterima atau
menghapusnya. Selain itu, penerima dan pengirim dapat melihat, mengedit dan
menghapus contact. Berikut adalah use case diagram dari aplikasi enkripsi sms.
Gambar 3.1 Use Case Diagram
Universitas Sumatera Utara
21
3.2. Activity Diagram
Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal dan berakhir.
Gambar 3.2 Activity Diagram
Activity diagram pada gambar 3.2 menampilkan aktivitas dalam sistem. Aktivitas
tersebut berupa tampilan menu utama yang bercabang menjadi tiga yaitu SMS,
Contact dan Help. Dan pada menu SMS, terdapat aktivitas tulis, enkripsi, dan kirim
SMS. Serta aktivitas baca, dekripsi dan hapus SMS. Pada menu Contact, terdapat
aktivitas tambah, lihat, edit dan hapus. Sedangkan menu Help, merupakan menu
bantuan.
3.3. Flowchart Sistem
Flowchart sistem merupakan bagan yang menunjukkan alur kerja atau apa yang
sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari
prosedur-prosedur yang ada di dalam sistem. Dengan kata lain, flowchart merupakan
Universitas Sumatera Utara
22
deskripsi secara grafik dari urutan prosedur-prosedur yang terkombinasi membentuk
suatu sistem.
Adapun fungsi lainnya dari flowchart ini dibuat adalah agar developer atau
pengembang aplikasi perorangan dapat melihat kembali tahapan-tahapan yang akan
dikerjakan jika suatu saat terjadi kesalahan dalam perancangan aplikasi (Prayudi,
2013).
Berikut ini adalah bentuk-bentuk flowchart atau diagram alur yang menjelaskan
alur proses aplikasi keamanan SMS dari awal hingga akhir, termasuk proses
pengiriman SMS yang kemudian dienkripsi dan proses penerimaan SMS yang
didekripsi.
Gambar 3.3.1 Flowchart Enkripsi
Universitas Sumatera Utara
23
Pada Gambar 3.3.1, dapat dijelaskan bahwa aplikasi memulai dengan
menampilkan pilihan menu SMS dan Contact List. Kemudian, mengecek apakah
nomor penerima SMS sudah tersimpan atau belum. Jika belum, maka user harus
membuat contact baru. Yaitu dengan menginput nama, nomor telepon, dan kunci.
Kunci yang dimaksud disini adalah kunci yang telah disepakati oleh penerima dan
pengirim
yang digunakan untuk proses enkripsi dan dekripsi. Selanjutnya, contact
tersebut disimpan di dalam database.
Selanjutnya, apabila kontak sudah ada, maka user akan menginput nama contact
dan menulis pesan. Kemudian, SMS yang bersifat plaintext tersebut, akan dienkripsi
dengan kunci yang ada di contact berdasarkan nama penerima yang diinput. Setelah
itu, SMS yang telah berbentukciphertext akan dikirim.
Gambar 3.3.2 Flowchart Dekripsi
Universitas Sumatera Utara
24
Pada Gambar 3.3.2, dijelaskan mengenai proses dekripsi. Aplikasi dimulai
dengan menerima SMS. Kemudian, aplikasi akan mengecek apakah nomor pengirim
SMS ada di kontak. Apabila tidak ada, maka proses akan berakhir. Apabila ada, maka
akan berlanjut ke proses selanjutnya. Proses selanjutnya, aplikasi akan mengecek,
apakah SMS tersebut bisa didekripsi. Hal ini untuk megetahui apakah SMS tersebut
merupakan chipertext atau SMS biasa. Apabila tidak bisa, maka proses akan berakhir.
Apabila bisa, maka hasil dekripsi dari SMS tersebut akan disimpan di dalam database.
Kemudian akan ditampilkan di dalam inbox.
3.4. Perancangan Sistem
Pada penelitian ini perancangan sistem terbagi dua yakni menjelaskan tentang
kebutuhan perangkat lunak yang digunakan dalam perancangan aplikasi dan
perancangan antar muka sistem yang nantinya akan digunakan pada setiap halaman
aplikasi.
3.4.1. Kebutuhan Peragkat Lunak
Adapun aplikasi ini dibangun dengan menggunakan bahasa pemrograman Java dan
XML untuk aplikasi pada sisi pengguna yang berjalan pada sistem operasi Android,
serta menggunakan SQLite untuk pengelolaan database.
3.4.2. Perancangan Antar Muka Sistem
Perancangan sistem diperlukan agar sistem yang dibangun sesuai dengan yang
diharapkan. Dengan adanya rancangan antar muka bertujuan untuk memudahkan
pengguna dalam pemakaian sistem. Berikut ini adalah beberapa rancangan antar muka
sistem pada aplikasi:
Universitas Sumatera Utara
25
1. Tampilan Menu Utama
Berikut ini adalah rancangan dari menu utama:
Gambar 3.4.2.1 Rancangan Tampilan Menu Utama
Pada Gambar 3.4.2.1, dapat dilihat bahwa terdapat dua menu pilihan, yaitu SMS dan
Contact.
Keterangan:
A. SMS, tombol untuk ke menu SMS
B. Contact, tombol untuk ke menu Contact
C. Help, tombol untuk ke menu Help
Universitas Sumatera Utara
26
2. Tampilan Contact
Berikut ini adalah rancangan dari Contact:
Gambar 3.4.2.2 Rancangan Tampilan Contact
Pada Gambar 3.4.2.2 dapat dilihat bahwa tampilan Contact memiliki dua bagian
utama, yaitu New Contact dan Contact List.
Keterangan:
A. New Contact, untuk membuat contact baru.
B. Contact List, menampilkan contact yang tersimpan di dalam database.
Adapun field yang ditampilkan yaitu name, phone number, dan key
Universitas Sumatera Utara
27
3. Tampilan New Contact
Berikut ini adalah rancangan dari New Contact:
Gambar 3.4.2.3 Rancangan Tampilan New Contact
Pada Gambar 3.4.2.3, dapat dilihat terdapat form untuk pengisian contact baru.
Terdapat tiga form yaitu, name, phone number dan key. Dan terdapat tombol save.
Keterangan:
A. Name, nama contact yang ingin disimpan.
B. Phone Number, nomor telepon contact.
C. Key, teks kunci yang digunakan untuk melakukan enkripsi dan dekripsi.
Dalam hal ini pengirim dan penerima harus memiliki key yang sama.
D. Save, tombol untuk menyimpan data contact ke dalam database.
Universitas Sumatera Utara
28
4. Tampilan Update Contact
Berikut ini adalah rancangan dari Update Contact:
Gambar 3.4.2.4 Rancangan Tampilan Update Contact
Pada Gambar 3.4.2.3, dapat dilihat terdapat form untuk memperbarui contact yang
sudah ada. Terdapat tiga form yaitu, name, phone number dan key yang telah terisi
oleh data yang belum diperbarui. Dan terdapat tombol save.
Keterangan:
A. Name, nama contact yang ingin diperbarui.
B. Phone Number, nomor telepon contact.
C. Key, teks kunci yang digunakan untuk melakukan enkripsi dan dekripsi.
D. Save, tombol untuk meng-update data contact ke dalam database.
Universitas Sumatera Utara
29
5. Tampilan SMS
Berikut ini adalah rancangan dari SMS:
Gambar 3.4.2.5 Rancangan T