A. PENDAHULUAN
1. Latar Belakang
Komunikasi adalah salah satu cara yang baik untuk menyampaikan perasaan,
ide-ide dan ekspresi [1]. Proses penyampaian perasaan, ide-ide dan ekspresi
disampaikan dari seseorang kepada orang lain dengan menggunakan lambanglambang yang bermakna bagi kedua pihak, dalam situasi yang tertentu komunikasi
menggunakan sebuah media untuk merubah sikap atau tingkah laku seorang atau
sejumlah orang sehingga ada efek yang diharapkan. Komunikasi melibatkan dua
orang dalam menyampaikan informasi melalui komunikasi. Komunikasi
memberikan informasi yang diperlukan individu dan kelompok untuk mengambil
keputusan dengan meneruskan data guna mengenai dan menilai pilihan-pilihan
alternatif. Ada berbagai bentuk komunikasi, salah satunya adalah komunikasi
verbal yaitu bentuk komunikasi yang disampaikan komunikator kepada
komunikan dengan cara tertulis dan lisan.
Komunikasi verbal menempati porsi besar. Karena kenyataannya, ide-ide,
pemikiran atau keputusan, lebih mudah disampaikan secara verbal ketimbang non
verbal. Dengan harapan, komunikan (baik pendengar maupun pembaca) bisa lebih
mudah memahami pesan-pesan yang disampaikan. Komunikasi verbal melalui
lisan dapat dilakukan dengan menggunakan media, contoh seseorang yang
bercakap-cakap melalui telepon. Sedangkan komunikasi verbal melalui tulisan
dilakukan dengan secara tidak langsung antara komunikator dengan komunikan.
Proses penyampaian informasi dilakukan dengan menggunakan berupa media
surat, short message service (SMS), lukisan, gambar, grafik dan lain-lain.
Short message service (SMS) adalah bentuk-bentuk komunikasi verbal yang
paling banyak diminati oleh pengguna smartphone. Short message service (SMS)
Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan, maka yang menjadi
Tujuan
Tujuan dari penelitian Tugas Akhir ini, yaitu menghasilkan suatu aplikasi
smartphone yang berbasis mobile pada platform Android yang dapat digunakan
masyarakat umum untuk mengamankan pengiriman dan penerimaan short
message service (SMS) dengan memanfaatkan algoritma Blowfish.
4.
Batasan Masalah
Agar pembahasan dalam penelitian ini terarah dan tidak melebar. Maka,
Manfaat Penelitian
Manfaat dari penelitian Tugas Akhir ini yaitu menghasilkan aplikasi enkripsi
dan dekripsi teks sms dengan adanya aplikasi ini maka pengguna smartphone
dapat mengirimkan suatu teks SMS yang berisi informasi rahasia tanpa takut
diketahui isi pesan tersebut oleh pihak-pihak yang tidak berhak.
6.
Berbagai
algoritma
kriptografi
telah
diterapkan
untuk
sehingga kita dapat saja menerima SMS walaupun kita sedang melakukan
komunikasi suara.
Dalam perkembangannya, SMS menjadi salah satu service yang banyak
diminati dan digunakan oleh user, hal ini karena teknologi SMS memiliki
beberapa keunggulan, antara lain :
Harganya murah.
10
11
Freq
~ Kbps
Teknologi
-
800
1 MHz
range
9.6
800
900
2 1900
MHz
range
9.6 to
14.4
TDMA
CDMA
GSM
1900
2.5 MHz
range
56 to
144
GPRSCDMA2000-1X
EDGE
AMPS
-
144
vehicle,
WCDMACDMA2000384
3 G 2 GHz
MX
outside,
UMTS
2 Mbps
indoors
1.3. Arsitektur Jaringan SMS
Service
Circuit-switched wireless
analog voice.- Limited system
capacity dan capability.
No data.
Circuit-switched wireless
digital voice data- Security
lebih baik
Kapasiatas lebih besar
Support komunikasi data.
Circuit-switched wireless
digital voicediperkenalkannya packetswitched data services.
Kecepatan & Kapasitas lebih
baik.
Packet-switched wirelessvoice dan data
enkripsi, high-speed multimedia
12
Gambar di bawah ini menunujukan salah satu contoh arsitektur jaringan GSM
dengan SMS center (SMSC) di dalamnya.
13
External Short Message Entities (ESME) adalah device selain MS yang dapat
berfungsi untuk menerima atau mengirim SMS. Pada umumnya ESME dipakai
untuk menciptakan layanan yang lebih beragam kepada pelanggan ataupun untuk
meningkatkan performance jaringan telekomunikasi dari operator telekomunikasi
wireless yang bersangkutan. ESME dapat berupa antara lain :
-
VMS (Voice Mail Service). VMS berfungsi untuk menerima, menyimpan dan
memainkan/memperdengarkan voice mail (pesan suara) yang ditujukan
kepada subscriber. Pesan suara ini direkam ketika ada orang yang hendak
menghubungi subscriber tertentu, tapi subscriber tersebut dalam keadaan
tidak aktif, sibuk, ataupun di luar area, sehingga si pemanggil tidak dapat
tersambung dengannya. Pada saat ini, pemanggil dapat meninggalkan pesan
berupa suara dan akan disimpan di VMS. Pada suatu saat nanti, apabila
subscriber yang akan dipanggil tadi sudah aktif kembali atau sudah idle, maka
akan menerima notifiksi bahwa ada pesan suara untuknya, dan dapat
mendengarkan pesan suara tersebut dengan merequest VMS untuk
memperdengarkannya di handsetnya.
E-Mail. MS dapat juga mengirimkan SMS ke suatu alamat e-mail dan akan
diterima sebagai sebuah e-mail.
14
15
Terdapat empat macam mekanisme distribusi pesan SMS oleh aplikasi SMS,
yaitu:
a. Pull, yaitu pesan yang dikirimkan ke pengguna berdasarkan permintaan
pengguna.
b. Push Event based, yaitu pesan yang diaktivasi oleh aplikasi berdasarkan
Short Messaging Entities (SME), suatu piranti yang dapat menerima dan
mengirim pesan pendek.
2.
3.
4. Base Station System (BSS), berfungsi mengendalikan satu atau lebih BTS
dan bertanggung jawab dalam pemberian sumber data dan transmisi sinyal
radio elektromagnetis antara MSC dan mobile phone.
16
Visitor Location Register (VLR), basis data yang berisi informasi temporal
mengenai pelanggan yang berasal dari suatu HLR yang roaming ke HLR
lainnya.
3. Transceiver (TRX), bila client ingin dapat mengirim dan menerima paket
data.
17
Secara umum format PDU dalam protokol SMS Manager adalah sebagai berikut:
91
2658050000F0
(misal
+6281xxx).
Untuk
081xxx
menggunakan angka 81
Nomor SMSC yang digunakan. Karena jumlah digit nomor
SMS adalah ganjil, maka digit paling belakang dipasangkan
dengan huruf F. Kalau diterjemahkan, nomor SMSC yang
11
00
18
0C
91
265836164900
handphone.
Panjang digit dari nomor penerima (0C hex = 12 desimal)
Jenis nomor penerima (sama dengan jenis nomor SMSC)
Nomor penerima SMS, yang jika diterjemahkan adalah
00
00
FF
04
+628563619400
Pengenal protokol, dalam hal ini adalah 0
Skema pengkodean SMS, juga bernilai 0
Validitas waktu. FF berarti maksimum
Panjang dari pesan SMS, dalam hal ini adalah 4 huruf
C830FB0D
2.
Android
Android merupakan sistem operasi yang dikembangkan untuk perangkat
mobile yang berbasis linux. Android merupakan OS mobile yang tumbuh ditengah
OS lainnya yang berkembang dewasa ini. OS Android menyediakan platform
terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri.
Android
juga
menawarkan
sebuah
lingkungan
yang
berbeda
untuk
19
Linux Kernel
20
keypad,
WiFi,
IPC (Interprocess
2.
Libraries
Android menggunakan beberapa paket pustaka yang terdapat pada C/C++
dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang
aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya:
Media Library untuk memutar dan merekam berbagai macam format audio
dan video.
Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.
21
3.
Android Runtime
Pada android tertanam paket pustaka inti yang menyediakan sebagian besar
Application Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk
22
Application Layer
Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget.
Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika
menjalankan program. Pengguna hanya akan melihat program ketika digunakan
tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan
dalam Android runtime dengan menggunakan kelas dan service yang tersedia
pada framework aplikasi.
Lapisan aplikasi android sangat berbeda dibandingkan dengan sistem operasi
lainnya. Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi
pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API
(Application Programming Interface) yang sama.
sebuah
IDE
(Integrated
Development
Environment)
untuk
Multi-platform
23
Java,
dan
PDE
(Plug-in
Development
Environment)
untuk
24
(distribusi Linux apapun untuk desktop modern), Mac OS X 10.4.8 atau lebih,
Windows XP atau Vista. Persyaratan mencakup JDK, Apache Ant dan Python 2.2
atau yang lebih baru. IDE yang didukung secara resmi adalah Eclipse 3.2 atau
lebih dengan menggunakan plugin Android Development Tools (ADT), dengan ini
pengembang dapat menggunakan teks editor untuk mengedit file Java dan XML
serta menggunakan peralatan command line untuk menciptakan, membangun,
melakukan debug aplikasi Android dan pengendalian perangkat Android.
Beberapa fitur android adalah :
1. Framework aplikasi yang mendukung penggantian komponen dan reusable
2. Dalvik Virtual Machine dioptimalkan untuk perangkat mobile
3. Integrated browser berdasarkan engine open source WebKit
4. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D
berdasarkan spesifikasi opengl ES 1.0
5. SQLite untuk penyimpanan data/database
6. Media suport yang mendukung audio, video dan gambar
7. Bluetooth,EDGE,3G,WiFi(Tergantung hardware)
8. Kamera,GPS,kompas dan accelerometer(tergantung hardware)
9. Lingkugan Development yang lengkap dan kaya termasuk perangkat
emulator,tools untuk debugging,profil dan kinerja memori dan plugin untuk
IDE eclipse
Aplikasi Android dipaketkan ke dalam format .apk dan disimpan pada
folder /data/app. Pengguna dapat menjalankan perintah adb root untuk mengakses
folder tersebut karena root memiliki izin untuk mengakses folder tersebut.
25
digunakan
untuk
distribusi
aplikasi
android
yang
dirancang.
Semakin
tinggi
platform
android
yang
kita
gunakan,
dianjurkan
menggunakan ADT yang lebih terbaru, karena biasanya munculnya platform baru
diikuti oleh munculnya versi ADT yang terbaru. Untuk melakukan instalasi ADT
di-elipse dapat dilakukan secara on-line maupun offline. Developing Android di
eclipse sangat direkomendasikan karena banyak kemudahan kemudahan sebagai
tools terintegrasi seperti custom XML editor, debuging dan banyak hal hal lain
yang mempercepat pembuatan aplikasi.
Konfigurasi Plugin ADT:
26
Pada SDK Location, klik Browse, cari kemudian pilih SDK File yang sudah
anda miliki sebelumya. Pilih salah satu platform android, kemudian klik
Apply. Klik Ok.
2.2.4. UML
UML (Unified Modeling Language) adalah bahasa pemodelan untuk sistem
atau perangkat lunak yang berparadigma (berorientasi objek). Pemodelan
(modeling) sesungguhnya digunakan untuk penyederhanaan permasalahanpermasalahan yang kompleks sedemikian rupa sehingga lebih mudah dipelajari
dan dipahami [7].
UML (Unified Modeling Language) merupakan bahasa standar yang bekerja
dalam object-oriented untuk menentukan, memvisualisasikan, merancang, dan
mendokumentasikan elemen-elemen informasi yang terdapat dalam sistem
software. UML mulai diperkenalkan oleh Object Management Group, sebuah
organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak
tahun 1980-an. UML merupakan dasar bagi perangkat (tool) desain berorientasi
objek dari IBM.
Dalam UML terdapat beberapa diagram untuk memodelkan aplikasi
berorientasi objek, yaitu:
1. Use Case diagram, untuk memodelkan proses bisnis dan merepresentasikan
sebuah interaksi antara aktor dengan sistem.
2. Class diagram, untuk menggambarkan keadaan (atribut/properti) suatu sistem,
sekaligus menggambarkan struktur dan dekripsi class, package dan objek
27
beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan
lain-lain. Class memiliki tiga area pokok yakni nama (dan stereotype), atribut,
dan metoda.
3. Statechart diagram, untuk memodelkan perilaku objects di dalam sistem atau
menggambarkan transisi dan perubahan keadaan (dari satu state ke state
lainnya) suatu objek pada sistem. Pada umumnya statechart diagram
menggambarkan class tertentu.
4. Activity diagram, untuk memodelkan perilaku Use Cases dan objects di
dalam system.
5. Sequence diagram, untuk memodelkan pengiriman pesan (message) antar
object dan juga digunakan untuk menggambarkan skenario atau rangkaian
langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk
menghasilkan output tertentu.
6. Collaboration diagram, untuk memodelkan interaksi antar objects seperti
sequence diagram, tetapi lebih menekankan pada peran masing-masing objek
dan bukan pada waktu penyampaian message.
7. Component
diagram,
untuk
memodelkan
komponen
object
atau
3.
Kriptografi
28
Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan
berita. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari
teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi
seperti kerahasiaan data, keabsahan data, integrasi data, serta autentifikasi. Tidak
semua aspek keamanan informasi ditangani oleh kriptografi. Kriptografi selalu
menjadi tugas penting. Tujuan utama dari setiap kegiatan kriptografi adalah
Keamanan Data (misalnya "menyembunyikan pesan dari mata yang tidak sah")
[8].
Dalam menjaga kerahasiaan data dengan kriptografi, data sederhana yang
dikirim (plainteks) diubah ke dalam bentuk data sandi (cipherteks), kemudian data
sandi tersebut hanya dapat dikembalikan ke bentuk data sebenarnya hanya dengan
menggunakan kunci (key) tertentu yang dimiliki oleh pihak yang sah saja.
Tentunya hal ini menyebabkan pihak lain yang tidak memiliki kunci tersebut tidak
akan dapat membaca data yang sebenarnya sehingga dengan kata lain data akan
tetap terjaga.
29
2. Integritas data (data integrity), yaitu memberikan jaminan bahwa untuk tiap
bagian pesan tidak akan mengalami perubahan dari saat data dibuat/dikirim
oleh pengirim sampai dengan saat data tersebut dibuka oleh penerima data.
3. Otentikasi (authentication), yaitu berhubungan dengan identifikasi, baik
mengidentifikasi kebenaran pihak-pihak yang berkomunikasi maupun
mengidentifikasi kebenaran sumber pesan.
4. Nirpenyangkalan
(non
repudiation),
yaitu
memberikan
cara
untuk
30
dalam
bentuk
bit
tunggal
yang
dalam
hal
ini
rangkaian
bit
blok
(block
cipher) Algoritma
kriptografi
beroperasi
pada
plainteks/cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian bit
dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya.
Cipher blok mengenkripsi satu blok bit setiap kali.
31
4.
Blowfish
dirancang
hanya
menggunakan
operasi-operasi
32
33
berurutan dengan sebuah string yang sama. String yang digunakan ini terdiri
dari digit heksadesimal dari p.
2. Lakukan operasi XOR antara P1 dengan 32 bit pertama dari kunci, lakukan
operasi XOR antara P2 dengan 32 bit kunci berikutnya, dan begitu seterusnya
untuk semua bit pada kunci (hingga P18). Ulangi langkah ini melalui
perputaran bit-bit kunci hingga seluruh elemen pada P-array telah dilakukan
operasi XOR dengan bit-bit kunci.
3. Lakukan proses enkripsi terhadap string dengan keseluruhan elemen nol
7. Lanjutkan proses mengubah semua elemen yang terdapat pada P-array, dan
kemudian keempat kotak-S secara berurutan, dengan hasil keluaran algoritma
Blowfish yang terus menerus berubah.
34
Secara keseluruhan terdapat 521 iterasi atau putaran yang dibutuhkan untuk
membangkitkan seluruh upa-kunci yang dibutuhkan. Aplikasi kemudian dapat
menyimpan upa-kunci yang telah dihasilkan. Proses pembangkitan kunci ini tidak
perlu selalu dilakukan setiap saat. Blowfish menggunakan jaringan Feistel yang
terdiri dari 16 buah putaran. Skema jaringan Feistel pada algoritma Blowfish
dapat dilihat pada Gambar 2.8. Masukan terhadap jaringan Feistel ini adalah x,
yang merupakan elemen data dengan ukuran 64 bit.
35
Selesai
36
fungsi F dan hasilnya XOR-kan dengan 32-bit elemen kanan, kemudian tukarkan
elemen kanan dan elemen kiri untuk melanjutkan ke-iterasi berikutnya. Seluruh
proses dari algoritma ini terdiri dari 16 iterasi dengan menggunakan sub kunci P1
sampai P18, pada iterasi ke-16 terjadi dua kali pertukaran elemen kanan dan kiri,
dengan kata lain pada iterasi ini tidak ada pertukaran elemen kanan dan
kiri,kemudian gabungkan kembali elemen kanan dan kiri untuk menghasilkan
suatu ciphertext 64-bit.
37
38
Ciphertex
Plaintext
Gambar 2.9. Skema Dekripsi Algoritma Blowfish
39
40
Di luar serangan diferensial yang telah disebutkan di atas, hingga saat ini
belum ditemukan kriptanalisis yang dapat sukses dan efektif bekerja pada
algoritma Blowfish.
5.
41
User interface bisa dibuat dengan 2 cara, thin dan thick client.
Thin client merupakan sebutan untuk user interface yang berbasis web.
Komponen web interface ini disusun di sisi server kemudian hasilnya
dirender oleh web browser yang dijalankan di client. Untuk komponen ini,
Java menyediakan Servlet, Java Server Page (JSP), dan Java Server Faces
(JSF).
Cara kedua adalah menggunakan user interface berbasis Graphical User
Interface (GUI), atau yang disebut juga thick client karena aplikasi berjalan
sepenuhnya menggunakan resource dari komputer client. Untuk komponen
ini, Java menyediakan Swing dan Abstract Windowing Toolkit (AWT).
Command line atau text based user interface tentunya juga dapat digunakan,
meskipun biasanya jarang digunakan untuk aplikasi enterprise. User interface
ini biasanya juga digolongkan ke dalam thick client.
42
Komponen ini merupakan pusat dari semua proses bisnis (business logic)
aplikasi. Sebagai gambaran, pada sebuah aplikasi internet banking, business
logicnya meliputi autentikasi dan otorisasi user, query saldo, pembayaran
kartu kredit, pembayaran bill/tagihan, transfer, dan sebagainya. Semua proses
ini ditangani oleh business logic component yang berjalan di dalam sebuah
application server. Java menyediakan komponen yang bernama Enterprise
Java Bean (EJB) untuk melakukan hal ini.
43
Kegiatan
Nov
Des
Jan
Feb
Mar
Apr
Mei
Jun
Jul
44
2014
1
2
Pengajuan Judul
Konsultasi dengan
3
4
5
6
7
Pembimbing
Pembuatan Proposal
Perancangan Aplikasi
Pembuatan Aplikasi
Pengujian Aplikasi
Pembuatan Laporan
Dan Sidang
Revisi Dan Jilid
Laporan Akhir
2014
2015
2015
2015
2015
2015
2015
2015