• Tidak ada hasil yang ditemukan

Perancangan Aplikasi SMS (Short Message Service) dengan Enkripsi Teks Menggunakan Algoritma XXTEA Berbasis Android

N/A
N/A
Protected

Academic year: 2016

Membagikan "Perancangan Aplikasi SMS (Short Message Service) dengan Enkripsi Teks Menggunakan Algoritma XXTEA Berbasis Android"

Copied!
94
0
0

Teks penuh

(1)
(2)
(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

5.2. Saran 69

Daftar Pustaka 70

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

! " "

# " "

" "

$

" " %&'%

# " "(

" " )

" "(

#

(17)

" " "

" " *

) " " +

,

-" -" ./ 0

''1 %&'% 2

3 4

! %&'%

) 5567

6 5567 , $ * ! 8 9

'..1 5567 67 5567

0% '%1 2 5567

* 5567

2 %&&.

# " "

" "( " "

)

" "(

#

* " "

(18)

" " 5567

:

;

' ) " "

% * % 0

! "

; '

%

5567

# $

6 ;

< )

<< = 6

)

<<< )

(19)

!

5567

<3 < )

)

" "

(20)

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

(21)

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

(22)

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.

(23)

# "$ $

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

(24)

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).

% ((

(25)

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 &.

(26)

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).

) *

(27)

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

(28)

+ +%

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).

(29)

, !&- . - !

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

(30)

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 Ω

(31)
[image:31.595.232.398.148.327.2] [image:31.595.232.398.503.681.2]

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

(32)

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 ' ' ( (.

(33)

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

(34)

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

(35)

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.

(36)

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

(37)

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.

(38)

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.

(39)

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

(40)

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

(41)

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 .

(42)

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.

(43)

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.

(44)

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

(45)

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.

(46)

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.

(47)

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

(48)

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

(49)

+ % % % '

+ % % % , '

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.

(50)

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

(51)

- ! %) . / % ) . 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

(52)

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}

(53)

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

!" #$

% !" $ &' ( ( %( ( ( )

*

!" $

% !" $ &' ( ( %( ( ( )

*

!+ , #

% !" $( !" $( (

(54)

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

(55)

, ' + + (' # % 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

(56)

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

(57)

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

(58)

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

% !" #$

!" $ &' ( ( %( ( ( )

*

% !" $

!" $ &' ( ( %( ( ( )

*

% !" $( !" $( (

( - . / #

(59)

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

(60)

, ' + - (' # % 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

(61)

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

(62)

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

(63)

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.

(64)
[image:64.595.194.441.122.490.2]

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

(65)
[image:65.595.196.436.136.503.2]

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

(66)

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

(67)

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

(68)

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.

(69)
[image:69.595.193.438.123.485.2]

6. Contact List

Gambar 4.2.1.6 Tampilan Contact

Pada tampilan # terdapat nama, nomor telepon dan key. juga dapat

(70)

7. New Contact

berguna untuk membuat baru.$ yang harus diisi yaitu #

[image:70.595.194.438.183.548.2]

dan % .

(71)
[image:71.595.197.436.145.508.2]

8. Update Contact

Gambar 4.2.1.8 Tampilan Update Contact

berguna apabila ingin merubah yang telah ada. $

(72)
[image:72.595.197.438.119.482.2]

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

(73)
[image:73.595.199.435.122.495.2]

10. Help

Gambar 4.2.2.0 Tampilan Menu Help

Tampilan ini merupakan penjelasan singkat mengenai aplikasi dan

(74)

( & ) ' #

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

(75)
[image:75.595.197.438.143.539.2]

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

(76)
[image:76.595.195.437.76.483.2]

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

(77)

* & ( ! ' )# & ++

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

(78)

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

(79)

* & ( ! ! ' )# & ++ , "

-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

(80)

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

(81)

Gambar

Gambar 2.7.1.1 Contoh Grafik dari Notasi Asimptotik Ω
Gambar 2.7.1.3 Contoh Grafik dari Notasi Asimptotik O
Gambar 3.1 �����������������
Gambar 3.2 �����������������
+7

Referensi

Dokumen terkait

1) Menambah pengetahuan penulis dalam melakukan proses enkripsi dan dekripsi suatu pesan dengan menggunakan algoritma Advanced Encryption Standard (AES) dan algoritma

[r]

Kesimpulan kuesioner yaitu penulis telah membuat aplikasi enkripsi dan dekripsi pesan pada ponsel berbasis Android dengan menggunakan algoritma hybrid DES dan Elgamal

Halaman kotak masuk di gunakan user untuk menampilkan pesan teks yang sudah dikirim oleh pengirim dan menginputkan kunci yang sudah diketahui oleh penerima yang nantinya akan

Penggunaan pesan singkat di sistem android, baik melalui aplikasi SMS bawaan atau aplikasi pihak ketiga sangat mudah dan cepat, dan tanpa ragu lagi informasi baik yang

Aplikasi SMS ini memiliki kemampuan untuk mengakses daftar kontak, kotak masuk pesan, menerima input pesan teks, menerima input kunci enkripsi dan dekripsi serta

Tujuan yang dicapai adalah agar dapat menghasilkan aplikasi enkripsi dan deskripsi SMS berbasis Android yang digunakan untuk mengirim dan menerima pesan teks dengan

Algoritma asimetris disebut juga dengan kriptografi kunci publik karena algortima ini memiliki kunci yang berbeda untuk enkripsi dan dekripsi, dimana enkripsi menggunakan