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
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
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
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 ( ), yaitu tempat dimana
SMS disimpan sebelum dikirim ke tujuan. Pesan yang sifatnya 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 . XXTEA
beroperasi dalam ukuran blok kelipatan 32 bit dan panjang kunci 128 bit.
Karakteristik dari XXTEA adalah dan . 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
sedangkan waktu rata?rata proses dekripsi adalah 83722.58
Kata kunci: Enkripsi, SMS, , XXTEA, Kompleksitas Waktu
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
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. (SMS) 5
Cara Kerja SMS 6
2.2. Keamanan SMS 7
2.3. Android 8
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. 20
3.2. ! " 21
3.3. # $ 21
3.4. Perancangan Sistem 24
% & Kebutuhan Perangkat Lunak 24
% & Perancangan Antar Muka Sistem 24
3.5. Perancangan Database 34
% ' Perancangan Tabel 34
% ' Relasi Antar Tabel 35
% ( 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 59
4.4. Analisis Performa Aplikasi 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 69
5.2. Saran 69
Daftar Pustaka 70
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
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.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
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 ( ), yaitu tempat dimana
SMS disimpan sebelum dikirim ke tujuan. Pesan yang sifatnya 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 . XXTEA
beroperasi dalam ukuran blok kelipatan 32 bit dan panjang kunci 128 bit.
Karakteristik dari XXTEA adalah dan . 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
sedangkan waktu rata?rata proses dekripsi adalah 83722.58
Kata kunci: Enkripsi, SMS, , XXTEA, Kompleksitas Waktu
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
! " "
# " "
" "
$
" " %&'%
# " "(
" " )
" "(
#
" " "
" " *
) " " +
,
-" -" ./ 0
''1 %&'% 2
3 4
! %&'%
) 5567
6 5567 , $ * ! 8 9
'..1 5567 67 5567
0% '%1 2 5567
* 5567
2 %&&.
# " "
" "( " "
)
" "(
#
* " "
" " 5567
:
;
' ) " "
% * % 0
! "
; '
%
5567
# $
6 ;
< )
<< = 6
)
<<< )
!
5567
<3 < )
)
" "
Pada bab ini, akan dibahas dasar teori, penelitian terdahulu, kerangka pikir dan hipotesis yang mendasari penyelesaian permasalahan pengamanan pesan pada SMS dengan Algoritma XXTEA.
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).
Proses cara kerja SMS dilakukan oleh 2 sisi yaitu dan ,
mengirim pesan SMS yang kemudian ditangkap oleh (BTS)
yang kemudian dilanjutkan ke (BSC) setelah itu proses akan
dikerjakan oleh (MSC) yang bertugas sebagai dan
yang terakhir proses dilakukan oleh (SMSC) yang
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 ( ). BTS melaksanakan proses modulasi/demodulasi sinyal, equalisasi sinyal dan pengkodean error ( ). Beberapa BTS dapat terhubung dengan
sebuah BSC ( ), sementara itu radius cakupan dari suatu
berkisar antara 10 sampai 200 m untuk terkecil hinggal beberapa kilometer untuk 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 , konfigurasi ,
pengaturan sumber daya radio, serta dan frekuensi pada suatu
3. MSC
MSC berfungsi melakukan fungsi dan bertanggung jawab untuk
melakukan pengaturan panggilan, dan . MSC juga
melakukan fungsi dan sebagai ke jaringan lain. 4. SMSC
SMSC berfungsi menyampaikan pesan SMS antar (MS)/ HP,
dan juga melakukan fungsi 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.
! " "
Ada beberapa risiko yang dapat mengancam keamanan pesan pada layanan SMS salah
satunya adalah SMS . 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 . 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
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.
# "$ $
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:
– aplikasi yang mendukung penggantian komponen dan reusable
– !
– "
– Grafik berdasarkan OpenGL – SQLite untuk penyimpanan data –
– Linkungan ! yang lengkap dan kaya termasuk perangkat ,
untuk , profil dan kinerja memori, dan untuk IDE Eclipse.
% & '
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
Berikut ini adalah beberapa mekanisme yang berkembang pada kriptografi: 1. Fungsi #
Fungsi adalah fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut dengan panjang yang tetap. Fungsi 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 ( ). Sedangkan kunci yang digunakan untuk dekripsi bersifat rahasia ( ). 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).
% ((
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 &.
3. Pengacakan pertama: Xr 1<<2 di XOR kan dengan Xr+1>>5. 4. Pengacakan kedua: Xr 1>>3 di XOR kan dengan Xr+1<<4. 5. Hasil yang didapat dari tahap 4 dan 5 ditambahkan.
6. Pengacakan ketiga: Xr 1 di XOR kan dengan D yang merupakan perkalian antara konstanta DELTA yang bernilai 0x9E3779B dengan jumlah iterasi pertama yang telah dilakukan.
7. Pengacakan keempat: Xr+1 di XOR kan dengan salah satu blok kata kunci, yaitu blok ke (r XOR D>>2).
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 & ke r. XXTEA tidak memiliki batas ukuran blok, XXTEA dapat digunakan untuk mengenkripsi satu buah pesan utuh tanpa memerlukan mode operasi . 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 nya
– Mudah diimplementasikan
– Memberikan keamanan yang baik pada 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).
) *
bahasa C. SQLite merupakan proyek yang bersifat yang dikerjakan oleh D. Richard Hipp. Tidak seperti pada paradigma 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 dan secara
keseluruhan lebih sederhana. Seluruh elemen (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file pada saat sebuah transaksi dimulai.
SQLite mengimplementasikan hampir seluruh elemen elemen standar yang berlaku pada SQL 92, termasuk transaksi yang bersifat atomic, konsistensi , isolasi, dan durabilitas (dalam bahasa inggris lebih sering disebut ACID), 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 , utamanya ketika digunakan dalam bahasa pemrograman berbasis script (PHP, Perl), sementara kalangan lain melihat hal tersebut sebagai sebuah kekurangan. Beberapa proses ataupun dapat berjalan secara bersamaan dan mengakses 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
+ +%
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).
, !&- . - !
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 ( ) , diukur dari jumlah tahapan
komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran
masukan , di mana ukuran masukan ( ) merupakan jumlah data yang diproses oleh
sebuat algoritma. Sedangkan kompleksitas ruang, ' ( , diukur dari memori yang
digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari
masukan . Dengan menggunakan kompleksitas waktu atau kompleksitas ruang, dapat
ditentukan laju peningkatan waktu atau ruang yang diperlukan algoritma, seiring
dengan meningkatnya ukuran masukan ( ).
Kecenderungan saat ini, ruang (memori utama) yang disediakan semakin besar
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 algoritma tersebut.
, !& .
Untuk nilai 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 ( ) algoritma adalah notasi
asimptotik ( ). Notasi asimptotik didefinisikan sebagai fungsi dengan
domain himpunan bilangan asli N = {0,1,2, 3,…. } (Cormen ., 2009: 43).
Kompleksitas waktu asimptotik terdiri dari tiga macam. Pertama, keadaan terbaik
( ) dinotasikan dengan (Ω) ( ) ), keadaan rata rata ( )
dilambangkan dengan notasi (Θ) ( ) dan keadaan terburuk ( )
[image:30.595.230.399.485.670.2]dilambangkan dengan (O) ( )).
Gambar 2.7.1.1 Contoh Grafik dari Notasi Asimptotik Ω
konstanta positif n0 dan c sedemikian sehingga pada n0 dan di kanan n0 , nilai ' ( selalu berada tepat ' ( pada atau di atas ' ( .
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 ' ( agar berada dalam faktor konstan. Dinyatakan ' ( * Θ ' ' (( jika terdapat konstanta positif n0, c+, dan c, sedemikian sehingga pada n0 dan di kanan n0, nilai ' ( selalu berada tepat pada c+ ' (, tepat pada c, ' ( , atau di antara c+ ' ( dan c, ' ( .
Gambar 2.7.1.3 Contoh Grafik dari Notasi Asimptotik O
positif - dan sedemikian sehingga pada - dan di kanan -, nilai ' ( selalu berada tepat pada c ' ( atau di bawah c ' (. Kompleksitas waktu algoritma biasanya dihitung dengan menggunakan notasi )' ' (( dibaca “big O dari ' ( ”.
, !&- . / . 0 - !
Untuk menentukan kompleksitas waktu suatu algoritma, diperlukan ukuran masukan
serta algoritma tersebut. Pada umumnya, algoritma
meningkat seiring dengan bertambahnya ukuran . Sehingga, suatu algoritma dapat dinyatakan sebagai fungsi dari .
Ukuran masukan 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.
. algoritma pada masukan tertentu merupakan jumlah operasi atau langkah yang dieksekusi. Selanjutnya, jumlah waktu yang konstan diperlukan untuk mengeksekusi setiap baris (kode semu). Satu baris dapat memiliki jumlah waktu yang berbeda dari baris lain. Namun asumsikan bahwa setiap pelaksanaan baris ke membutuhkan waktu sebesar , di mana adalah konstanta.
Dalam menentukan suatu baris pada , kalikan
konstanta dengan jumlah waktu yang diperlukan untuk mengeksekusi baris tersebut. Untuk kasus di mana terdapat perintah atau dengan panjang , maka perintah tersebut dieksekusi dengan waktu /+. Sedangkan untuk baris berisi komentar, dinyatakan sebagai baris yang tidak dieksekusi, sehingga jumlah waktu untuk baris tersebut adalah nol.
Selanjutnya, dari algoritma adalah jumlah dari setiap perintah yang dieksekusi. Sebuah perintah yang membutuhkan langkah waktu untuk dieksekusi akan memiliki pengaruh sebesar pada running time total ' ' ( (.
Suatu algoritma dikatakan anggota θ(g(n)) jika algoritma itu adalah anggota O(g(n)) dan anggota S(g(n)). Contoh : Karena T(n) = c1n2 + c2n adalah angota O( n2) dan anggota S( ), 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 S, 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.
1 2 " - " $ 0-0
rata rata sebesar 118 milidetik (Muko, et al. 2012 ). Kemudian dengan algoritma Vigenere yang dimodifikasi dengan fibonacci dan tambahan sehingga memperkuat keamanan dan privasi(Anjari, et al. 2012).
Sedangkan, penelitian mengenai algoritma XXTEA atau
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 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 login website. Hasil yang di dapat ialah proses enkripsi pada sisi ,dan dekripsi pada sisi telah menambah waktu akses website rata rata18ms (0,018 sekon).
Berikut penelitian terdahulu disajikan dalam bentuk tabel:
3 - 1 2 " - " $ 0-0
40$0- 0" 2 "
-Enkripsi SMS (Short Message Service) pada Telepon Selular Berbasis Android
2010 Becik Gati Anjari
Aplikasi Enkripsi SMS dengan Metode Rabin pada Android
2012 Gayuh Taruna Muko, et al
Implementasi Enkripsi Dengan Algoritma XXTEA Pada
Virtual Disk Berbasis Windows
Arif rahman Sujatmika.
Perancangan Secure Login Website Menggunakan Algoritma Enkripsi XXTEA
proses apa saja yang dapat dilakukan oleh pengguna, yang
menggambarkan alir aktifitas dari level atas secara umum, dari sistem, serta
proses enkripsi dan dekripsi menggunakan algoritma XXTEA.
adalah teknik untuk merekam persyaratan fungsional sebuah sistem.
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
[image:35.595.113.528.526.735.2]menghapus contact. Berikut adalah dari aplikasi enkripsi sms.
menggambarkan berbagai alir aktivitas dalam sistem yang sedang
[image:36.595.110.531.174.470.2]dirancang, bagaimana masing%masing alir berawal dan berakhir.
Gambar 3.2
pada gambar 3.2 menampilkan aktivitas dalam sistem. Aktivitas
tersebut berupa tampilan menu utama yang bercabang menjadi tiga yaitu SMS,
dan . Dan pada menu SMS, terdapat aktivitas tulis, enkripsi, dan kirim
SMS. Serta aktivitas baca, dekripsi dan hapus SMS. Pada menu , terdapat
aktivitas tambah, lihat, edit dan hapus. Sedangkan menu merupakan menu
bantuan.
!" #
sistem merupakan bagan yang menunjukkan alur kerja atau apa yang
sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari
deskripsi secara grafik dari urutan prosedur%prosedur yang terkombinasi membentuk
suatu sistem.
Adapun fungsi lainnya dari ini dibuat adalah agar 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 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
[image:37.595.143.488.295.754.2]didekripsi.
Pada Gambar 3.3.1, dapat dijelaskan bahwa aplikasi memulai dengan
menampilkan pilihan menu SMS dan . Kemudian, mengecek apakah
nomor penerima SMS sudah tersimpan atau belum. Jika belum, maka harus
membuat 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,
tersebut disimpan di dalam .
Selanjutnya, apabila kontak sudah ada, maka akan menginput nama
dan menulis pesan. Kemudian, SMS yang bersifat tersebut, akan dienkripsi
dengan kunci yang ada di berdasarkan nama penerima yang diinput. Setelah
[image:38.595.253.405.319.746.2]itu, SMS yang telah berbentukciphertext akan dikirim.
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 atau SMS biasa. Apabila tidak bisa, maka proses akan berakhir.
Apabila bisa, maka hasil dekripsi dari SMS tersebut akan disimpan di dalam .
Kemudian akan ditampilkan di dalam inbox.
$ % % %
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.
$ & '( (# % ) (% )
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.
$ % % % % *()
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
1. Tampilan Menu Utama
[image:40.595.226.408.152.435.2]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
Keterangan:
A. SMS, tombol untuk ke menu SMS
B. , tombol untuk ke menu
2. Tampilan Contact
[image:41.595.222.408.147.437.2]Berikut ini adalah rancangan dari :
Gambar 3.4.2.2 Rancangan Tampilan
Pada Gambar 3.4.2.2 dapat dilihat bahwa tampilan Contact memiliki dua bagian
utama, yaitu ! dan
Keterangan:
A. ! , untuk membuat contact baru.
B. , menampilkan yang tersimpan di dalam .
3. Tampilan New Contact
[image:42.595.224.409.149.433.2]Berikut ini adalah rancangan dari ! :
Gambar 3.4.2.3 Rancangan Tampilan !
Pada Gambar 3.4.2.3, dapat dilihat terdapat form untuk pengisian baru.
Terdapat tiga yaitu, dan " . Dan terdapat tombol .
Keterangan:
A. ! , nama yang ingin disimpan.
# $ ! nomor telepon
% teks kunci yang digunakan untuk melakukan enkripsi dan dekripsi.
Dalam hal ini pengirim dan penerima harus memiliki key yang sama.
4. Tampilan Update Contact
[image:43.595.224.407.145.434.2]Berikut ini adalah rancangan dari :
Gambar 3.4.2.4 Rancangan Tampilan
Pada Gambar 3.4.2.3, dapat dilihat terdapat form untuk memperbarui yang
sudah ada. Terdapat tiga yaitu, dan " yang telah terisi
oleh data yang belum diperbarui. Dan terdapat tombol .
Keterangan:
A. ! , nama yang ingin diperbarui.
# $ ! nomor telepon
% teks kunci yang digunakan untuk melakukan enkripsi dan dekripsi.
5. Tampilan SMS
[image:44.595.222.409.147.438.2]Berikut ini adalah rancangan dari SMS:
Gambar 3.4.2.5 Rancangan Tampilan SMS
Pada Gambar 3.4.2.4, dapat dilihat bahwa, tampilan SMS terbagi dua yaitu
dan
Keterangan
A. ! ' , untuk membuat pesan baru
# ' berisi list SMS yang dikirim dan diterima. Dikelompokkan
berdasarkan nama dan menampilkan pesan yang terakhir dikirim
6. Tampilan New Message
[image:45.595.232.414.121.415.2]Berikut ini adalah rancangan dari ! ' :
Gambar 3.4.2.6 Rancangan Tampilan ! '
Pada Gambar 3.4.2.4, dapat dilihat bahwa, terdapat dua field yaitu dan
Dan terdapat tombol & &'&
Keterangan
A. ! , nama yang ingin dikirim pesan.
# ' pesan yang ingin dikirim.
7. Tampilan SMS Thread
[image:46.595.224.408.149.433.2]Berikut ini adalah rancangan dari &'& ( :
Gambar 3.4.2.7 Rancangan Tampilan ( &'&
Pada Gambar 3.4.2.7, dapat dilihat bahwa,terdapat label dialog
dan , dan tombol .
Keterangan
A. ! , nama yang mengirim atau menerima SMS.
# ' berisi SMS yang diterima, terletak di sebelah kiri
tampilan.
' berisi SMS yang dikirim, terletak di sebelah kanan tampilan.
) berfungsi untuk menulis SMS yang ingin dibalas.
8. Tampilan Delete SMS
[image:47.595.223.407.149.433.2]Berikut ini adalah rancangan dari &'&:
Gambar 3.4.2.8 Rancangan Tampilan &'&
Keterangan
A. Pesan peringatan yang akan ditampilkan kepada pengguna ketika pengguna
ingin menghapus &'&.
B. , tombol konfirmasi menyetujui sistem untuk menghapus .
C. , tombol pembatalan untuk menghapus thread SMS, dan kembali ke
9. Tampilan Delete Contact
[image:48.595.226.409.145.432.2]Berikut ini adalah rancangan dari
Gambar 3.4.2.9 Rancangan Tampilan
Keterangan
A. Pesan peringatan yang akan ditampilkan kepada pengguna ketika pengguna
ingin menghapus .
B. , tombol konfirmasi menyetujui sistem untuk menghapus .
C. , tombol pembatalan untuk menghapus , dan kembali ke
+ % % % '
+ % % % , '
Berikut adalah perancangan aplikasi keamanan SMS
1. Tabel Contact
[image:49.595.243.459.587.702.2]Berikut ini adalah perancangan dari tabel
Gambar 3.5.1.1 Tabel Contact
Keterangan gambar
A. _idphone, untuk menyimpan id dari tabel dengan
tipe data integer
B. name, untuk menyimpan nama dari tabel dengan
tipe data text
C. phoneNumb, untuk menyimpan nomor telepon dari
dengan tipe data text
D. passKey, untuk menyimpan kunci yang digunakan untuk
enkripsi dan dekripsi dengan tipe data text
2. Tabel SMS
Berikut ini adalah perancangan dari tabel sms.
Keterangan gambar
A. _id, untuk menyimpan id dari tabel sms dengan tipe data
integer
B. _idphone, untuk menyimpan id dari tabel dengan
tipe data integer
C. tipe , untuk menyimpan tipe dari sms dengan tipe data text
D. tgl , untuk menyimpan tanggal pengiriman dan penerimaan
dengan tipe data text
E. isi, untuk menyimpan isi dari sms dengan tipe data text
+ % , '
Relasi antar tabel dalam database berguna untuk melihat keterkaitan identitas dari satu
tabel dengan table yang lainnya, agar identitas yang ada tidak redundansi. Berikut ini
adalah gambar relasi antar tabel:
Gambar 3.5.2 Database Relationship
Pada gambar 3.4.2 terlihat relasi antar tabel contact dan sms yang dihubungkan
oleh field _idphone. Field _idphone merupakan id dari tabel contact yang digunakan
- ! %) . / % ) . 00,
Berikut adalah proses enkripsi dan dekripsi:
! %) .
Diberikan sebuah plaintext “rabiatul” dengan kunci “inikunci” . Kemudian plaintext
dan kunci tersebut diubah ke dalam bentuk ASCII.
Plaintext “rabiatul” akan dibagi menjadi 4 karakter (32 bit). 4 karakter pertama yaitu
“rabi” akan bernilai :
, ' + % 1 2 ' 3
& ) %
r 72 01110010
a 61 01100001
b 62 01100010
i 69 01101001
Digabung : 01101001 01100010 01100001 01110010
Desimal : 1768055154
4 karakter selajutnya yaitu “atul” akan bernilai :
, ' + % 1 2 ( 4
& ) %
a 61 01100001
t 74 01110100
u 75 01110101
l 6C 01101100
Digabung : 01101100 01110101 01110100 01100001
Kunci “inikunci” dibagi menjadi 4 karakter (32 bit) , 32 bit pertama yaitu “inik”.
, ' + &(% 2 % )3
Karakter ASCII Binary
i 69 01101001
n 6E 01101110
i 69 01101001
k 6B 01101011
Digabung : 011010110110100101101110 01101001
Desimal : 1802071657
32 bit selanjutnya yaitu “unci”.
, ' + $ &(% 2(% 3
Karakter ASCII Binary
u 75 01110101
n 6E 01101110
c 63 01100011
i 69 01101001
Digabung : 01101001011000110110111001110101
Desimal : 1768124021
Nilai binary dari plaintext “rabiatul” di simpan di dalam array v[].
v[]={1768055154, 1819636833, 8}
dimana
v[0] adalah nilai desimal dari “rabi”,
v[1] adalah nilai desimal dari “atul”,
v[2] adalah jumlah karakter “8”
Nilai binary dari key “inikunci” disimpan didalam array k[ ].
k[] = {1802071657,1768124021}
k[0] adalah 32 bit pertama key “inikunci”
k[1] adalah 32 bit kedua key “inikunci”
%
n = v.length – 1 = panjang array v – 1 =3%1 =2
z = v[n] = v[1] = 8
y = v[0] = 1768124021
sum = 0
q= 6+52 / (n+1) = 6+52/(2+1) =23
delta = 0x9E3779B9
(% () % %
Iterasi 1
Untuk q=22,
sum = sum + delta
= 0 + 9E3779B9
= %1640531527
e = sum >>> 2 & 3
= %1640531527 >>> 2 & 3
= 2
!" #$
% !" $ &' ( ( %( ( ( )
*
!" $
% !" $ &' ( ( %( ( ( )
*
!+ , #
% !" $( !" $( (
Untuk p = 0,
y = v[p+1] = v[1] = 1819636833
MX = (z >>>5 XOR y << 2)+ ( y >>> 3 X O R z << 4 ) XOR (sum XOR
y)+( k [ p & 3 XOR e ] XOR z )
= 1294365296
v[p] = v[p] + MX
v[0] = v[0] +MX
= 1768055154 + 1294365296
= %1232546846
Untuk p = 1,
y = v[p+1] = v[1] = 1819636833
MX = (z >>>5 XOR y << 2)+ ( y >>> 3 X O R z << 4 ) XOR (sum XOR
y)+( k [ p & 3 XOR e ] XOR z )
= 981584243
v[p] =v[p] + MX
v[1] = v[1] +MX
= 1819636833 + 981584243
= %1493746220
z = v[p] = v[1]= %1493746220
p berakhir
y = v[0] = %1232546846
MX = (z >>>5 XOR y<< 2 )+( y >>> 3 XOR z << 4) XOR ( sum XOR y )
+ ( k [ p & 3 XOR e ] XOR z )
= %1360378950
v[n] = v[n] + MX(sum, y, z, p, e, k)
v[2] = v[2] + MX(sum, y, z, p, e, k)
= 8 + (%1360378950)
= %1360378942
z = v[n] = v[2] = %1360378942
Untuk memudahkan perhitungan maka perubahan nilai beberapa variable akan
, ' + + (' # % 5678 5 7 / % 5 7 . / %) . 00,
! 9 567 5 7 5 7
1 22 %1232546846 %1493746220 %1360378942
2 21 %1346154341 %1735199074 600475406
3 20 %1498157237 %237308543 %734128833
4 19 7646349 1755594801 1106100587
5 18 1986960415 677647725 83125019
6 17 1563169151 751486342 787014091
7 16 %1871644735 %117796156 %452034560
8 15 1801930277 %1155198416 %239635569
9 14 %1543421014 615254863 %1313441892
10 13 %1357965086 158282577 %1906557270
11 12 1544387584 %2073033948 1654883960
12 11 2014560903 460003596 %2122425032
13 10 %33886125 222263674 1126084793
14 9 %2006816892 122059134 1571757831
15 8 356613576 1240882849 %895561531
16 7 %1554362845 %227475257 1468657929
17 6 %1669609042 1294209931 %922743191
18 5 %707585673 1115345868 1741129690
19 4 %252439763 %1726417826 2142859056
20 3 2103936016 %2004930855 1397138085
21 2 207465589 864132831 %1894779065
22 1 1562211471 %457961418 %1378998152
23 0 894014351 209764419 2017426609
Hasil enkripsi tersebut yaitu desimal dan biner dari v[0], v[1] dan v[2] :
v[0] = 894014351 = 0011 0101 0100 1001 1001 0011 1000 1111
v[1] = 209764419 = 0000 1100 1000 0000 1100 0000 0100 0011
Kemudian, setiap 8 bit, di terjemahkan ke dalam ASCII
1000 1111 = 143
1001 0011 = 147 “
0100 1001 = 73 I
0011 0101 = 53 5
0100 0011 = 67 C
1100 0000 = 192 À
1000 0000 = 128 €
0000 1100 = 24 Cancel
1011 0001 = 177 ±
0111 1100 = 124 |
0011 1111 = 63 ?
0111 1000 = 120 x
Sehingga didapat hasil enkripsi yaitu ?“I5CÀ€□.±|?x
-$ % !/
# : 2
1 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1
%/ 1 35 57 13 9
-$ j 5 N J
# + À
0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0
%/ 1 13 20 15 0
-$ N U P A
# € □ ±
1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1
%/ 1 32 0 50 49
Berdasarkan tabel perhitungan base 64 code tersebut, maka di dapat hasil enkripsi
yaitu : j5NJNUPAgAyxfD94.
' ! ) .
!/ -$
# ; : 1
0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0
%/ 1 31 3 61 56
-$ f D 9 4
-$ < + =
%/ 1 35 57 13 9
1 0 0 0 1 1 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1
# : 2
-$
%/ 1 13 20 15 0
0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0
# + À
-$ 1
%/ 1 32 0 50 49
1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1
# € □ ±
-$ f D 9 4
%/ 1 31 3 61 56
0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0
Hasil decode base64 diubah menjadi bit ASCII dan dibagi per 32 bit dan disimpan di
dalam v[ ] yaitu :
0011 0101 0100 1001 1001 0011 1000 111 = 894014351 = v[0]
0000 1100 1000 0000 1100 0000 0100 0011 = 209764419 = v[1]
0111 1000 0011 1111 0111 1100 1011 0001 = 2017426609 = v[2]
% %
n = v.length – 1 = 3%1 = 2
z = v[n] = v[2] = 2017426609
y = v[0] = 894014351
q = 6 + 52 / (n + 1) = 23
delta = 9E3779B9 = 2654435769 dalam decimal
sum = q x delta = 23 x 2654435769 = 922480543
(% () % %
Iterasi 1
Selama q tidak sama dengan 0
e = sum >>> 2 & 3 = 922480543 >>> 2 & 3 = 3 0
% !" #$
!" $ &' ( ( %( ( ( )
*
% !" $
!" $ &' ( ( %( ( ( )
*
% !" $( !" $( (
( - . / #
Selama p = n = 2
z = v[p%1] = v[2%1]= v[1] = 209764419
MX = (z >>>5 XOR y<< 2)+(y>>>3XOR z << 4)XOR(sum XOR
y) + ( k [ p & 3 XOR e] XOR z)
= %898542535
v[p] = v[p] – MX
= v[2] – MX
= 2017426609 % (%898542535) = %1378998152
y = v[p] = v[2] = %1378998152
Selama p = 1
z = v[1%1] = v[1%1]= v[0] = 894014351
MX = (z >>>5 XOR y<< 2)+(y>>>3XOR z << 4)XOR(sum XOR
y) + ( k [ p & 3 XOR e] XOR z)
= 667725837
v[p] = v[p] – MX
= v[1] – MX
= 209764419 – 667725837 = %457961418
y = v[p] = v[1] = %457961418
p berakhir
z = v[n] = v[2] = %1378998152
MX = %668197120
v[0] = v[0] –MX
= 894014351 – (%668197120) = 1562211471
y = v[0] = 1562211471
sum = sum – delta
= 922480543 – (%1640531527)
= %1731955226
Untuk memudahkan perhitungan maka perubahan nilai beberapa variable akan
, ' + - (' # % 5678 5 7 / % 5 7 . / %) . 00,
9 567 5 7 5 7
1562211471 %457961418 %1378998152
207465589 864132831 %1894779065
6 2103936016 %2004930855 1397138085
> %252439763 %1726417826 2142859056
? %707585673 1115345868 1741129690
@ %1669609042 1294209931 %922743191
- %1554362845 %227475257 1468657929
+ 356613576 1240882849 %895561531
$ %2006816892 122059134 1571757831
%33886125 222263674 1126084793
2014560903 460003596 %2122425032
1544387584 %2073033948 1654883960
6 %1357965086 158282577 %1906557270
> %1543421014 615254863 %1313441892
? 1801930277 %1155198416 %239635569
@ %1871644735 %117796156 %452034560
- 1563169151 751486342 787014091
+ 1986960415 677647725 83125019
$ 7646349 1755594801 1106100587
%1498157237 %237308543 %734128833
%1346154341 %1735199074 600475406
%1232546846 %1493746220 %1360378942
6 1768055154 1819636833 8
Hasil akhir yang di dapat berupa
v[0] = 1768055154 = 0110 1001 0110 0010 0110 0001 0111 0010
v[1] = 1819636833 = 0110 1100 0111 0101 0111 0100 0110 0001
v[0] yang berbentuk binary dibagi per 8 bit kemudian diubah kedalam ASCII
01110010 = 72 r
01100001 = 61 a
01100010 = 62 b
01101001 = 69 i
v[1] yang berbentuk binary dibagi per 8 bit kemudian diubah kedalam ASCII
01100001 = 61 a
01110100 = 74 t
01110101 = 75 u
01101100 = 6C l
Sehingga hasil dekripsi yang didapat yaitu “rabiatul”. Dan v[2] mewakili jumlah
bab ini akan menjelaskan tentang proses pengimplementasian algoritma kedalam
sistem dan melakukan pengujian dari aplikasi yang dikembangkan. Berikut ini hasil
implementasi dan pengujian sistem dari aplikasi.
Pada proses pengimplementasian, lingkungan dimana proses pengoperasian apikasi
dan pengujian sistem berlangsung harus jelas, yang dimaksudkan untuk mengetahui
hasil dari pengujian secara signifikan. Dalam hal ini spesifikasi dari perangkat keras
dan perangkat lunak yang digunakan.
Spesifikasi perangkat keras yang digunakan dalam pembangunan aplikasi
1. Intel(R) Pentium(R) Dual CPU T3400 @ 2.16GHz 2.17 GHZ
RAM yang digunakan 2.50 GB
Spesifikasi perangkat lunak yang digunakan dalam pembangunan aplikasi
1. Windows 7 Ultimate
2. Eclipse Galileo
3. Android SDK 2.3
Spesifikasi perangkat keras yang digunakan dalam pengujian aplikasi
1. Client 1
1. Processor 800 MHz
RAM 278 MB
Ukuran Layar 3.2 inchi
2. Client 2
1. Processor Dual Core 800 MHz
2. RAM 768 MB
3. Ukuran Layar 3.8 inchi
Spesifikasi perangkat lunak yang digunakan dalam pengujian aplikasi
1. Client 1
Android OS, v 2.3.6
2. Client 2
Android OS, v 4.2.2
! " # $ % & '
Untuk mengetahui apakah penelitian ini telah memenuhi tujuan penelitian yang
disampaikan pada bab 1, maka diperlukanlah pengujian terhadap software yang
dibangun dalam penelitian ini. Pengujian sistem menyeluruh yang dilakukan yaitu
pengujian sistem pada aplikasi yang akan digunakan oleh user, dari segi tampilan dan
segi proses yang terjadi pada setiap halaman dan melakukan analisis terhadap
performa aplikasi pada saat pengiriman dan proses penerimaan SMS setelah
menerapkan kriptografi.
Pengujian pada sisi user, dilakukan pengujian pada semua proses yang terjadi pada
aplikasi, seperti menu utama, inbox, send sms, contact list dan sebagainya.
1. Menu Utama
Gambar 4.2.1.1 Tampilan Menu Utama
Pada tampilan awal aplikasi, dihapadkan pada dua pilihan. Yaitu SMS,
dan . Menu SMS berisi thread SMS dan pengiriman pesan baru SMS, menu
Contact berisi manajemen contact, dan merupakan menu bantuan dari aplikasi
2. SMS
Gambar 4.2.1.2 Tampilan SMS
Ketika user memilih menu SMS pada menu utama tadi, maka tampilan ini yang
muncul. untuk membuat pesan baru dan untuk membaca
3. Send SMS
Ketika men>tap . Maka, tampilan ini yang akan muncul. Yaitu,
pengiriman SMS. memasukkan nama yang sudah tersimpan pada ,
kemudian menulis pesan dan men> . Maka, SMS yang terkirim
sudah berbentuk karena langsung dienkrip sesuai dengan kunci yang
[image:66.595.190.440.227.591.2]dimasukkan pada Contact List
4. Thread SMS
Pada , dapat membaca pesan masuk dan keluar dalam bentuk
! . Selain itu, terdapat fungsi , sehingga dapat membalas sms
[image:67.595.196.438.207.582.2]langsung tanpa ke menu
5. Delete SMS
Menu delete SMS ini akan muncul ketika melakukan " pada .
[image:68.595.196.438.188.483.2]" ini berguna untuk mengkonfirmasi penghapusan pesan.
6. Contact List
Gambar 4.2.1.6 Tampilan Contact
Pada tampilan # terdapat nama, nomor telepon dan key. juga dapat
7. New Contact
berguna untuk membuat baru.$ yang harus diisi yaitu #
[image:70.595.194.438.183.548.2]dan % .
8. Update Contact
Gambar 4.2.1.8 Tampilan Update Contact
berguna apabila ingin merubah yang telah ada. $
9. Delete Contact
Gambar 4.2.1.9 Tampilan Delete Contact
Tampilan & ini berupa " yang muncul ketika melakukan "
pada . Tampilan ini berguna utuk melakukan konfirmasi terhadap
10. Help
Gambar 4.2.2.0 Tampilan Menu Help
Tampilan ini merupakan penjelasan singkat mengenai aplikasi dan
( & ) ' #
4.3.1 Analisi Keamanan Pesan Antar Pengguna
Untuk menganalisis keamanan pesan antar pengguna, maka perlu dicek apakah SMS
yang terkirim sudah terenkripsi dan berbentuk . Hal ini dapat dilakukan
dengan memeriksa penerima. Karena SMS yang diterima, otomatis akan
tersimpan pada database SMS default dari OS handphone. Untuk lebih jelasnya dapat
dilihat pada gambar berikut.
[image:74.595.189.436.294.664.2]Pengirim :
Gambar 4.3.1.1 Pengirim mengirim SMS
Pada gambar 4.3.1.1 terlihat pengirim mengirim SMS kepada contact, dengan
name Bilqis.SMS ini akan terenkrip dengan menggunakan % sesuai dengan
Penerima :
Gambar 4.3.1.2 SMS Diterima dengan Aplikasi Default
Pada gambar 4.3.1.2, penerima menerima SMS yang dikirim dengan
menggunakan aplikasi default. Tampak pada gambar bahwa SMS yang dikirim
melalui jaringan berupa Hal ini membuktikan bahwa keamanan SMS pada
Gambar 4.3.1.3 SMS Diterima dengan Aplikasi Enkripsi
Pada gambar diatas, terlihat bahwa pesan yang dikirim berhasil didekripsi.
( ! & ) # &
4.3.2.1 Analisis Kompleksitas waktu
Analisis performa aplikasi dilakukan dengan menghitung kompleksitas algoritma
menggunakan notasi asimptotik Big>Theta
1. Kompleksitas waktu enkripsi XXTEA
* & ( ! ' )# & ++
Baris Code C # C.#
1 private static final int[] encrypt(int[] v, int[] k) C1 1 C1
2 {
3 int n = v.length > 1; C2 1 C2
4 if (n < 1) { C3 1 C3
5 return v; C4 1 C4
6 }
7 if (k.length < 4) { C3 1 C3
8 int[] key = new int[4]; C2 1 C2
9 System.arraycopy(k, 0, key, 0,
k.length); C5 1 C5
10 k = key; C6 1 C6
11 }
12 int z = v[n], y = v[0], sum = 0, e; C2 1 C2
13 int p; C2 1 C2
q = 6 + 52 / (n + 1); C6 1 C6
14 while (q>> > 0) { C7 q C7.q
15 sum = sum + delta; C6 q C6.q
16 e = sum >>> 2 & 3; C6 q C6.q
17 for (p = 0; p < n; p++) { C8 n.q C8. nq
18 y = v[p + 1]; C6 n.q C6.nq
19 z = v[p] += MX(sum, y, z, p, e,
k); C6 n.q C6.nq
20 }
21 y = v[0]; C6 q C6.q
22 z = v[n] += MX(sum, y, z, p, e, k); C6 q C6.q
23 }
24 return v; C4 1 C4
T (n,q) = C1 + 4 C2 + 2C3 + 2C4 + C5 + 2C6 + 4C6q + C7q + 2C6nq + C8nq
T (n,q) = (C1 + 4 C2 + 2C3 + 2C4 + C5+2C6) + (4C6 + C7)q + (2C6 + C8) nq = Θ(nq)
Keterangan:
n merupakan jumlah karakter yang ingin dienkripsi >1 dan
q merupakan q = 6 + 52 / (n + 1)
Maka, kompleksitas waktu algoritma enkripsi XXTEA yang dinyatakan dalam notasi
asimptotik Θ menyatakan kemungkinan waktu rata>rata yang dapat dicapai. Maka,
kompleksitas waktu untuk algoritma ini berbentuk T (n,q) = (C1 + 4 C2 + 2C3 + 2C4 +
C5+2C6) + (4C6 + C7)q + (2C6 + C8) nq= Θ(nq).
2. Kompleksitas waktu dekripsi XXTEA
Berikut adalah tabel perhitungan kompleksitas dekripsi xxtea:
* & ( ! ! ' )# & ++
Baris Code C # C.#
1 private static final int[] decrypt(int[] v, int[] k) C1 1 C1
2 {
3 int n = v.length > 1; C2 1 C2
4 if (n < 1) { C3 1 C3
5 return v; C4 1 C4
6 }
7 if (k.length < 4) { C3 1 C3
8 int[] key = new int[4]; C2 1 C2
9 System.arraycopy(k, 0, key, 0,
k.length); C5
1 C5
10 k = key; C6 1 C6
11 }
12 int z = v[n], y = v[0], sum, e; C2 1 C2
13 int p; C2 1 C2
14 q = 6 + 52 / (n + 1); C6 1 C6
* & ( ! ! ' )# & ++ , "
-Baris Code C # C.#
16 while (sum != 0) { C7 s C7.s
17 e = sum >>> 2 & 3; C6 s C6.s
18 for (p = n; p > 0; p>>) { C8 n.s C8.ns
19 z = v[p > 1]; C6 n.s C6.ns
20 y = v[p] >= MX(sum, y, z, p, e, k); C6 n.s C6.ns
21 }
22 z = v[n]; C6 s C6.s
23 y = v[0] >= MX(sum, y, z, p, e, k); C6 s C6.s
24 sum = sum > delta; C6 s C6.s
25 }
26 return v; C4 1 C4
27 }
T(n,s) = C1 + 4 C2 + 2C3 + 2C4 + C5 + 3C6 + 4C6s + C7s + 2C6ns + C8ns
T(n,s) = (C1 + 4 C2 + 2C3 + 2C4 + C5+3C6) + (4C6 + C7)s + (2C6 + C8) ns = Θ(ns)
Keterangan
n merupakan jumlah karakter yang ingin dienkripsi > 1
s merupakan sum = q x delta, dimana delta = 2654435769
Maka, kompleksitas waktu algoritma dekripsi XXTEA yang dinyatakan dalam notasi
asimptotik Θ menyatakan kemungkinan waktu rata>rata yang dapat dicapai. Maka,
kompleksitas waktu untuk algoritma ini berbentuk T(n,s)= (C1 + 4 C2 + 2C3 + 2C4 +
C5+3C6) + (4C6 + C7)s + (2C6 + C8) ns = Θ(ns).
4.3.2.2 Analisis Performa Waktu Aplikasi
Uji coba performa waktu dilakukan dengan tujuan mengetahui waktu yang dibutuhkan
suatu proses tertentu. Setelah mengetahui waktu yang dibutuhkan, dapat dilakukan
perbandingan terhadap proses yang memiliki kesamaan tujuan. Sehingga dapat
dilakukan perbandingan dari sisi efisiensi waktu.Pada uji coba berikut ini, akan
SMS. Pengujian dilakukan dengan melakukannya secara berulang sejumlah 19 kali
proses dengan panjang data yang diproses berbeda kemudian dihitung nilai rata>rata
dari 19 kali proses tersebut. Berikut Tabel 4.3.2.2.1 menyajikan tahapan uji coba.
* & ( ! ! " . ++
#& ' .
,
-1 251635
2 266268
3 247791
4 228839
5 223628
6 608816
7 251580
8 258688
9 767060
10 260583
20 384714
30 290905
40 1762723
50 1188257
60 161087
70 226944
80 224575
90 227891
100 129344
/ 0 12 3 (
Pada tabel 4.3.2.2.1 dapat dilihat waktu rata>rata dalam melakukan enkripsi yaitu
419017.3 . Selanjutnya, dilakukan pengujian pada dekripsi algoritma
XXTEA yang disajika dalam tabel berikut:
* & ( ! ! ! " . ++
#& ' .
,
-1 113915
2 70595
3 77229
4 70121
5 75807
6 183832
7 75807
8 72490