Anda di halaman 1dari 44

1

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)

merupakan layanan yang banyak diaplikasikan pada sistem komunikasi tanpa


kabel (nirkabel), memungkinkan dilakukannya pengiriman pesan dalam bentuk
alphanumeric antar terminal pelanggan atau antar terminal pelanggan dengan
sistem eksternal seperti e-mail, paging, voice mail dan lain-lain.
Pengiriman short message service (SMS) dari satu terminal pelanggan ke
terminal yang lain dapat dilakukan berkat adanya sebuah entitas dalam sistem
short message service (SMS) yang bernama Short Message Service Centre
(SMSC), disebut juga Message Centre (MC). SMSC merupakan sebuah perangkat
yang melakukan tugas store and forward trafik short message. Didalamnya
termasuk penentuan atau pencarian rute tujuan akhir dari sort message.

Gambar 1.1. Arsitektur dasar jaringan SMS


SMSC memiliki interkonektivitas dengan SME (Short Messaging Entity)
yang dapat berupa jaringan e-mail, web, dan voice e-mail. SMSC inilah yang akan
melakukan manajemen pesan SMS, baik untuk pengiriman, pengaturan antrian
SMS, ataupun penerimaan SMS.
Layanan SMS merupakan sebuah layanan yang bersifat non-real time dimana
sebuah short message dapat disubmit ke suatu tujuan, tidak peduli apakah tujuan
tersebut aktif atau tidak. Bila dideteksi tujuan tidak aktif, maka sistem akan
menunda pengiriman ke tujuan hingga tujuan aktif kembali. Pada dasarnya sistem
SMS akan menjamin delivery dari suatu short message hingga sampai ke tujuan.
Kegagalan pengiriman yang bersifat sementara seperti tujuan yang tidak

diaktifkan selalu teridentifikasi sehingga pengiriman ulang short message akan


selalu dilakukan kecuali bila diberlakukan aturan bahwa short message yang telah
melampaui batas waktu tertentu harus dihapus dan dinyatakan gagal terkirim.
Namun dengan fitur SMS yang telah ada, timbul pertanyaan mengenai keamanan
informasi jika seseorang ingin mengirimkan suatu informasi rahasia melalui
fasilitas SMS.
Permasalahan keamanan data muncul disini mengingat beberapa fasilitas
transaksi dilakukan menggunakan media ini. SMS pada awalnya dirancang untuk
komunikasi tidak sinkron dimana konten yang dikirimkan adalah plaintext.
Bagaimanapun data plaintext seperti ini dapat dicegat di jalan oleh siapa saja yang
memiliki akses ke sistem SMS. Server SMS milik operator merupakan salah satu
pihak yang dapat mengambil data ini, walaupun dalam setiap perjanjian terdapat
klausul tentang kerahasiaan data, akan tetapi data plaintext yang terkirim dan
berkasnya tersimpan di berbagai tempat baik di server milik operator maupun
milik content provider membawa satu potensi bahaya yang besar. Kelemahan itu
dikarenakan SMS menggunakan standar pengkodingan yang universal, SMS
dibangun dengan sistem bahasa program yang sejenis dengan bahasa program
hardware seperti komputer dan telepon selular dapat menerjemahkan semua data
dalam frekuensi tertentu yang terbuka (di udara) yang sangat rentan akan ancaman
seperti penyadapan pihak yang tak bertanggung jawab. Kemudahan dalam
bertukar informasi melalui SMS ini disalahgunakan oleh beberapa pihak.
Beberapa orang dengan berbagai cara mencoba mencuri informasi yang bukan
hak mereka. Hal ini tentunya akan sangat berbahaya untuk pengguna, terutama
bagi mereka yang sering mengirimkan data dan informasi rahasia melalui SMS.

Karena itu, dibutuhkan suatu cara untuk mengamankan informasi yang


sifatnya penting atau rahasia. Dengan melakukan enkripsi terhadap teks SMS,
maka tingkat keamanan informasi dari pesan tersebut dapat ditingkatkan. Saat ini,
algoritma Blowfish merupakan algoritma kriptografi modern kunci simetris
berbentuk cipher block yang digunakan sebagai standar algoritma kriptografi
terbaru. Dengan memanfaatkan algoritma Blowfish ini, maka dapat dikembangkan
suatu aplikasi SMS yang memungkinkan pengguna untuk mengirimkan pesan
singkat dengan enkripsi teks dan dapat melakukan dekripsi terhadap pesan
terenkripsi. Aplikasi SMS ini akan dibangun berbasis mobile pada platform
Android.
2.

Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan, maka yang menjadi

rumusan masalah pada penulisan ini adalah :


1. Bagaimana membuat aplikasi Short Message Service (SMS) yang dapat
mengirim dan menerima pesan berbasis mobile pada platform Android.
2. Bagaimana cara membangkitkan kunci private dengan kriptografi Block
Cipher Simetrik menggunakan algoritma Blowfish untuk proses enkripsi dan
dekripsi.
3. Bagaimana mengenkripsi teks pesan menggunakan algoritma Blowfish agar
pesan yang dikirimkan tidak diketahui oleh pihak yang tidak berhak.
4. Bagaimana mendekripsi ciphertext yang diterima agar pengguna dapat
mengetahui dan membaca isi dari teks pesan tersebut.
5. Bagaimana cara menerapkan fitur enkripsi dan dekripsi dengan menggunakan
algoritma Blowfish untuk aplikasi berbasis mobile pada platform Android
dengan menggunakan bahasa pemograman Java Enterprise Edition.
3.

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,

permasalahan dibatasi pada :


1. Aplikasi ini hanya dapat mengenkripsi dan mendekripsi data berupa teks
SMS.
2. Aplikasi ini difokuskan untuk pengamanan SMS berbasis mobile pada
platform Android.
3. Panjang kunci yang digunakan adalah 448 bit dengan ukuran blok cipher
64-Bit.
4. Dalam pembuatan aplikasi ini menggunakan bahasa pemograman Java
Enterprise Edition dan XML.
5.

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.

Rood Map Penelitian


Beberapa penelitian yang berhubungan dengan penelitian ini yang pernah

dibuat sebelumnya antara lain :


1. Tahun 2012, Israa Tahseen dan Shatha Habeeb dari Madent Alelem College,
India menjelaskan dalam penelitiannya tentang Proposal New Approach for
Blowfish Algorithm by Using Random Key Generator, bahwa ada tiga
metode enkripsi dasar yaitu hashing, kriptografi simetris, dan kriptografi

asimetris. Masing-masing metode enkripsi ini memiliki kegunaan mereka


sendiri. Tiga metode enkripsi ini menggunakan kriptografi atau ilmu
mengacak data. Meskipun ada beberapa untuk proses enkripsi, hal yang
paling utama adalah algoritma dan kunci. Algoritma Blowfish merupakan
blok cipher simetris dan jaringan Feistel enciphering sederhana. Kekuatan
algoritma Blowfish bergantung pada generasi sub-kunci dan desain
kebingungan dasar dan difusi berbasis. Metode yang diusulkan menghasilkan
kunci diambil dari bagian gambar dan dengan ukuran kunci yang digunakan
dengan Blowfish.
2. Tahun 2012, Manisha Madhwani, Kavyashree C.V. dan Dr. Jossy P. George
dari Christ University India menjelaskan dalam penelitiannya tentang
Cryptography On Android Message Application Using Look Up Table And
Dynamic Key (Cama), bahwa bentuk tekstual yang paling populer,
terpendek dan termurah dalam komunikasi adalah short message service
(SMS). Untuk menjamin keamanan teks yang dikirim, banyak algoritma yang
tersedia. Dalam penelitian ini menggunakan algoritma yang efisien untuk
kriptografi yang didasarkan pada static Look Up table and Dynamic Key.
Enkripsi simetris dan dekripsi digunakan dalam algoritma ini. Algoritma yang
diusulkan lebih aman dan sederhana untuk diterapkan. Aplikasi ini
memanfaatkan dan di dibuat untuk platform android dan menggunakan SMS
manajer untuk mengirim dan menerima pesan.
3. Tahun 2012, Asst. Prof. Pratap Chnadra Mandal dari B.P.Poddar Institute of
Management & technology, West Bengal, India menjelaskan dalam
penelitiannya tentang Superiority of Blowfish Algorithm, bahwa Keamanan

Informasi sangatlah penting dalam komunikasi data. Segala kerugian atau


ancaman terhadap informasi dapat menjadi kehilangan besar bagi organisasi.
Teknik enkripsi memainkan peran utama dalam sistem keamanan informasi.
Pada penelitian ini memberikan perbandingan yang adil antara empat simetris
algoritma kunci yang paling umum digunakan: DES, 3DES, AES dan
Blowfish. Perbandingan telah dibuat berdasarkan parameter ini: putaran blok
ukuran, ukuran kunci, dan waktu enkripsi / dekripsi, waktu proses CPU dalam
bentuk throughput dan konsumsi daya. Hasil ini menunjukkan bahwa
blowfish lebih baik daripada algoritma lainnya.
4. Tahun 2013, Nishika dan Rahul Kumar Yadav dari PDM College of
Engineering Bahadurgarh, India menjelaskan dalam penelitiannya tentang
Cryptography on Android Message Applications A Review, bahwa Short
Message Service (SMS) adalah layanan komponen pesan teks dari telepon,
web, atau sistem komunikasi mobile yang menggunakan protokol komunikasi
standar dan memungkinkan pertukaran pesan teks singkat antara fixed line
atau perangkat ponsel. Keamanan SMS masih merupakan tugas yang
menantang.

Berbagai

algoritma

kriptografi

telah

diterapkan

untuk

mengamankan SMS. Keberhasilan teknik kriptografi tergantung pada


berbagai faktor seperti kompleksitas, waktu, kebutuhan memori, biaya dll.
5. Tahun 2013, Miss Kirti . P. Lokhande dan Prof. Avinash . P.Wadhe dari G.H.
Raisoni College of Engineering, Amravati, India menjelaskan dalam
penelitiannya tentang Security in Android File System, bahwa smartphone
dan tablet merupakan gadget terbaru. Perangkat ini mengandung Personal
Information diidentifikasi. Seorang penyerang bisa mendapatkan kontrol

penuh dengan menghubungkan perangkat komputer lain menggunakan kabel


USB . Selain itu, dengan hanya melacak ponsel pintar secara fisik, lawan
memiliki akses ke data rahasia atau bahkan diklasifikasikan jika pemilik
adalah pejabat pemerintah atau personel militer. Dalam penelitian ini
membahas file sistem yang aman dan terenkripsi di sistem operasi Android
dan mengoptimalkan kinerjanya menggunakan sertifikat enkripsi algoritma
Blowfish yang disediakan di OPENSSL.
6. Tahun 2014, Hery Munanzar dari Politeknik Negeri Lhokseumawe
menjelaskan dalam penelitiannya tentang Rancang Bangun Aplikasi Enkripsi
dan Dekripsi Short Message Service (SMS) Menggunakan Algoritma Rivest
Shamir Adlman (RSA), bahwa Proses Enkripsi dan Dekripsi dilakukan
menggunakan algoritma RSA dengan panjang kunci

512 bit, aplikasi

tersebut berbasis mobile pada platform Android.


B. TINJAUAN PUSTAKA
1.

Short Message Service (SMS)


Short Message Service (SMS) adalah komunikasi yang berbentuk teks. SMS

termasuk ke dalam bentuk komunikasi verbal. Setiap pesan dalam komunikasi


mobile dapat berisi paling banyak 140 byte (1120 bit) data, setara dengan hingga
160 karakter [1].
Short Message Service (SMS) secara umum dapat diartikan sebagai sebuah
service yang memungkinkan ditransmisikannya pesan text pendek dari dan ke
mobile phone, fax, mesin, atau IP address. Disebut pesan text pendek karena
pesan yang dikirimkan hanya berupa karakter text dan tidak lebih dari 160
karakter. Pentransmisian SMS menggunakan kanal signalling, bukan kanal suara,

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.

Merupakan deliver oriented service, artinya pesan akan selalu diusahakan


untuk dikirimkan ke tujuan. Jika suatu saat nomor tujuan sedang tidak aktif
atau di luar area, maka pesan akan disimpan di SMSC server dan akan
dikirimkan segera setelah nomor tujuan aktif kembali. Pesan juga akan tetap
terkirim ke tujuan walaupun nomor tujuan sedang melakukan pembicaraan
(sibuk).

Dapat dikirim ke banyak penerima sekaligus pada saat yg bersamaan.

Pesan dapat dikirmkan ke berbagai jenis tujuan, seperti e-mail, IP ataupun


aplikasi lain.

Kegunaannya banyak, dengan cara diintegrasikan dengan applikasi content,


SMS dapat digunakan untuk berbagai macam keperluan seperti kuis, voting,
chatting, reservasi, request informasi, sensus/survey, dan lainnya tergantung
dengan kegunaan dan fungsi aplikasi content yang terhubungan dengan
SMSC

1.1. Sejarah Short Message Service (SMS)

10

Short Message Service (SMS) merupakan sebuah layanan yang banyak


diaplikasikan pada sistem komunikasi tanpa kabel, dikembangkan dan
distandarisasi oleh suatu badan yang bernama European Telecomunication
Standards Institute (ETSI) sebagai bagian dari pengembangan GSM fase 2, yang
terdapat pada dokumentasi GSM 03.40 dan GSM 03.38. Fitur SMS ini
memungkinkan perangkat Stasiun Seluler Digital (Digital Cellular Terminal,
seperti ponsel) untuk dapat mengirim pesan dalam bentuk alphanumeric dan
menerima pesan-pesan teks dengan panjang sampai dengan 160 karakter melalui
jaringan GSM. Isu SMS pertama kali muncul dibelahan Eropa pada sekitar tahun
1991 bersama sebuah teknologi komunikasi wireless yang saat ini cukup banyak
pengunanya, yaitu Global System for Mobile Comunication (GSM). Dipercaya
bahwa pesan pertama yang dikirimkan menggunakan SMS dilakukan pada bulan
Desember 1992, dikirimkan dari sebuah Personal Computer (PC) ke telepon
mobile (bergerak) dalam jaringan GSM milik Vodafone Inggris.
Perkembangannya kemudian merambah ke benua Amerika, dipelopori oleh
beberapa operator komunikasi bergerak berbasis digital seperti BellSouth
Mobility, PrimeCo, Nextel, dan beberapa operator lain.
Layanan SMS merupakan layanan yang bersifat nonreal time dimana sebuah
short message dapat di-submit ke suatu tujuan, tidak peduli apakah tujuan tersebut
aktif atau tidak. SMS merupakan sebuah sistem pengiriman data dalam paket yang
bersifat out-of-band dengan bandwidth kecil, dengan karakteristik ini pengiriman
suatu burst data yang pendek dapat dilakukan dengan efisiensi yang sangat tinggi.
1.2. Perkembangan Teknologi Messaging

11

SMS adalah salah satu teknologi messaging (penyampaian pesan). SMS


sendiri mulai dikenalkan pada era teknologi wireless generasi ke 2 (2G), yaitu
pada saat dimungkinkannya melakukan komunikasi data pada telekomunikasi
wireless. Di Eropa, SMS mulai diperkenalkan pada tahun 1991, pada saat mulai
digunakannya GSM yg merupakan teknologi 2G yang digunakan digunakan di
negara-negara Eropa. Tabel di bawah ini menunjukan perkembangan dari
teknologi messaging (SMS/MMS) dari mulai era teknologi generasi pertama (1G)
sampai ke teknologi 3G.

Tabel 2.1. Teknologi Messaging (SMS/MMS)


Gen

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.

Gambar 2.1. Arsitektur Jaringan GSM dengan SMS Center


Dengan SMS, kita dapat mentransmisikan pesan singkat dari dan ke Mobile
Subscriber(MS). Pengiriman pesan singkat ini (SMS) dimungkinkan dengan
adanya sebuah SMSC (Short Message Service Center). Secara umum SMSC
berfungsi menerima SMS yang dikirim, menyimpannya untuk sementara, dan
memforward (mengirimkan) SMS tersebut ke mobile subscriber (MS) ataupun
ESME tujuan.

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.

Web. Dengan teknologi internet yang berkembang pesat, MS dapat


mengirimkan SMS dan langsung ditampilkan dalam suatu halamanan web.

E-Mail. MS dapat juga mengirimkan SMS ke suatu alamat e-mail dan akan
diterima sebagai sebuah e-mail.

Aplikasi content lainnya. Dengan perkembangan teknologi IT, terutama


dibidang software, maka SMS dapat digunakan untuk berbagai macam

14

tujuan, seperti : voting, reservasi tiket, registrasi anggota suatu komunitas,


games/kuis, survey, bahkan memungkinkan juga untuk digunakan sebagai
sarana PEMILU (Pemilihan Umum). Semua itu dimungkinkan karena adanya
aplikasi-aplikasi content yang mendukung.
Bila sebuah SMS dikirimkan dari MS A ke MS B, maka SMS itu akan
diteruskan oleh BSS ke MSC dan kemudian ke SMSC. SMSC berfungsi
mengirimkan SMS tersebut ke MS B. Untuk keperluan ini, SMSC harus tahu
bagaimana status subscriber (aktif/tidak aktif), dimana lokasi MS B berada.
Informasi-informasi mengenai MS B ini didapat dari HLR.
Jika MS B dalam keadaan aktif, maka SMSC akan mengirimkan SMS ke MS
B melalui MSC A, MSC B dan kemudian MS B. Bila misalnya MS B dan MS A
adalah MS dari 2 operator yang berbeda, maka pada saat pengirman SMS dari A
ke B, maka SMS tersebut hanya akan melalui SMSC A, tidak singgah lagi di
SMSC B atau jika MS B dalam keadaan tidak aktif, maka SMS tidak akan
diforward dan diteruskan ke MSB, tapi akan disimpan untuk sementara di SMSC.
Pada kondisi ini, SMSC A akan selalu berkomunikasi dengan HLR untuk
mengetahui kondisi MS B. Bila suatu saat SMSC mendapatkan informasi dari
HLR bahwa MS B aktif kembali, maka SMS akan diteruskan ke MSC A, MSCB,
dan MS B.

1.4. Mekanisme Distribusi Pesan SMS

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

kejadian yang berlangsung.


c. Push - Schedule, yaitu pesan yang diaktivasi oleh aplikasi berdasarkan waktu

yang telah terjadwal.


d. Push Personal Profile, yaitu pesan yang diaktivasi oleh aplikasi berdasarkan

profile dan preference dari pengguna.


1.5. Elemen dasar jaringan SMS
1.

Short Messaging Entities (SME), suatu piranti yang dapat menerima dan
mengirim pesan pendek.

2.

Short Message Service Center (SMSC), kombinasi perangkat lunak dan


perangkat keras yang brtanggung jawab memperkuat, menyimpan dan
meneruskan pesan pendek antar SME dan piranti bergerak (mobile phone).

3.

Signaling System 7 (SS7), protokol signalling yang umum di gunakan dalam


jeringan telepon seluler.

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

5. Home Location Register (HLR), basis data yang digunakan untuk

penyimpanan permanen, pengelolaan dan profil layanan.


6.

Visitor Location Register (VLR), basis data yang berisi informasi temporal
mengenai pelanggan yang berasal dari suatu HLR yang roaming ke HLR
lainnya.

1.6. Protocol Data Unit (PDU)


Satuan paket data yang dipertukarkan pada lapisan aplikasi dalam protokol
SMS Manager disebut Protocol Data Unit (PDU). Dalam protokol tersebut
terdapat beberapa macam format PDU dimana penggunaan masing-masing PDU
terebut harus sesuai dengan fungsinya, sebagai contoh untuk mengirim sebuah
pesan, harus digunakan PDU dengan format submit_sm, deliver_sm, atau
data_sm. Umumnya cara pengiriman paket data dari satu titik ke titik lain, slah
satu titik harus bertindak sebagai server dan titik lainnya sebagai client, Inisiatif
dan pembentukan sebuah session (jenis permintaan atau perintah) dilakukan oleh
client. Jenis session yang dipilih sepenuhnya diserahkan kepada client (otorisasi
diterima atau tidak tetap dipegang oleh server), terdapat tiga buah session yang
dapat dipilih yaitu:
1. Receiver (RX), bila client ingin dapat menerima paket data.
2. Transmitter (TX), bila client ingin dapat mengirimkan paket data.

3. Transceiver (TRX), bila client ingin dapat mengirim dan menerima paket
data.

17

Secara umum format PDU dalam protokol SMS Manager adalah sebagai berikut:

Gambar 2.2. Format umum PDU


Berikut merupakan contoh Strutuktur yang dikirim PDU

Tabel 2.2. Struktur umum PDU


Oktet atau
Keterangan
Digit Hexa
07

Panjang atau jumlah pasangan digit dari nomor SMSC


(service number) yang digunakan, dalam hal ini adalah 7

91

pasangan (14 digit berikutnya)


Jenis nomor SMSC. Angka 91 menandakan format nomor
internasional

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

digunakan adalah +62855000000 (IM3)


Oktet pertama untuk PDU SMS untuk dikirim
TP-Message-Reference. Diisi "00" agar diisi otomatis oleh

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

(dalam mode 7 bit)


Pesan SMS dalam mode 7 bit. Jika diterjemahkan kedalam 8
bit, lalu dirubah ke ASCII, maka didapat pesan 'Halo'

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

pengembangannya. Setiap aplikasi yang dimilikinya ditingkatan yang sama.


Android tidak membedakan antara aplikasi inti dengan aplikasi pihak ketiga. API
yang disediakan menawarkan akses kehardware, maupun data-data ponsel
sekalipun, atau data system sendiri. Bahkan pengguna dapat menghapus aplikasi
inti dan menggantikannya dengan aplikasi pihak ketiga.

2.1. Arsitektur Android


Arsitektur android terdiri dari application layer, application framework layer,
android runtime dan sistem perpustakaan [2]. Google sebagai pencipta Android

19

yang kemudian diasuh oleh Open Handset Alliance mengibaratkan Android


sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini menghimpun
beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi.
Tumpukan paling bawah adalah kernel. Google menggunakan kernel Linux versi
2.6 untuk membangun Android, yang mencakup memory management, security
setting, power management, dan beberapa driver hardware. Bertempat di level
yang sama dengan library adalah lapisan runtime yang mencakup serangkaian inti
library Java. Dengannya, para programmer dapat mengembangkan aplikasi untuk
Android menggunakan bahasa pemrograman Java. Lapisan selanjutnya adalah
application framework, yang mencakup program untuk mengatur fungsi- fungsi
dasar smartphone.

Gambar 2.3. Arsitektur Android


1.

Linux Kernel

20

Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan


android bukanlah linux, karena dalam android tidak terdapat paket standar yang
dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal
dalam manajemen memori dan proses. Oleh karenanya pada android hanya
terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori,
manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar,
kamera,

keypad,

WiFi,

Flash Memory, audio, dan

IPC (Interprocess

Communication) untuk mengatur aplikasi dan lubang keamanan.

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.

Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D


dan 3D.

SQLite untuk mengatur relasi database yang digunakan pada aplikasi.

SSl dan WebKit untuk browser dan keamanan internet.

21

3.

Android Runtime
Pada android tertanam paket pustaka inti yang menyediakan sebagian besar

fungsi android. Inilah yang membedakan Android dibandingkan dengan sistem


operasi lain yang juga mengimplementasikan Linux. Android Runtime merupakan
mesin virtual yang membuat aplikasi android menjadi lebih tangguh dengan paket
pustaka yang telah ada. Dalam Android Runtime terdapat 2 bagian utama.
4.

Application Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk

mengembangkan aplikasi android. Selain itu, juga menyediakan abstraksi generik


untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber
daya aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai
berikut [Hello Android 2nd Edition]:
Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan
menjaga keadaan Backstack untuk navigasi penggunaan.
Content Providers, berfungsi untuk merangkum data yang memungkinkan
digunakan oleh aplikasi lainnya, seperti daftar nama.
Resuource Manager, untuk mengatur sumber daya yang ada dalam program.
Serta menyediakan akses sumber daya diluar kode program, seperti karakter,
grafik, dan file layout.
Location Manager, berfungsi untuk memberikan informasi detail mengenai
lokasi perangkat android berada.

22

Notification Manager, mencakup berbagai macam peringatan seperti, pesan


masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.
5.

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.

2.2. Membangun Aplikasi pada Android


2.2.1. Eclipse
Eclipse adalah komunitas bagi individu dan organisasi yang ingin
berkolaborasi pada perangkat lunak komersial yang open source [3]. Eclipse
merupakan

sebuah

IDE

(Integrated

Development

Environment)

untuk

mengembangkan perangkat lunak dan dapat dijalankan di semua platform


(platform-independent). Berikut ini adalah sifat dari Eclipse:

Multi-platform

23

Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java,


akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa
pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain
sebagainya.

Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun


bisa digunakan untuk aktivitas seperti dokumentasi, test perangkat lunak,
pengembangan web, dan lain sebagainya.
Secara standar Eclipse selalu dilengkapi dengan JDT (Java Development

Tools), plug-in yang membuat Eclipse kompatibel untuk mengembangkan


program

Java,

dan

PDE

(Plug-in

Development

Environment)

untuk

mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan


dalam bahasa pemrograman Java. Konsep Eclipse adalah IDE yang terbuka
(open), mudah diperluas (extensible) untuk apa saja, dan tidak untuk sesuatu yang
spesifik. Apabila ingin mengembangkan program C/C++ terdapat plug-in CDT
(C/C++ Development Tools).

2.2.2. Android SDK (Software Development Kit)


Android SDK (Software Development Kit) adalah tools API (Aplication
Programming Interface) yang digunakan untuk mulai mengembangkan aplikasi
pada platform android menggunakan bahasa pemrograman Java [4]. Android
SDK mencakup seperangkat alat pengembangan yang komprehensif. Android
SDK terdiri dari debugger, libraries, handset emulator,dokumentasi, contoh kode
dan tutorial. Saat ini Android sudah mendukung arsitektur x86 pada Linux

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

2.2.3. ADT (Android Development Tools)


ADT (Android Developer Tools) adalah plugin untuk Eclipse yang
menyediakan seperangkat alat yang terintegrasi dengan Eclipse IDE. Hal ini
menawarkan akses ke banyak fitur yang dapat membantu untuk mengembangkan
aplikasi Android [5]. ADT dapat melakukan pembuatan package android (.apk)
yang

digunakan

untuk

distribusi

aplikasi

android

yang

dirancang.

Mengembangkan aplikasi android dengan menggunakan ADT di eclipse sangat


dianjurkan dan sangat mudah untuk memulai mengembangkan aplikasi android.

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:

Jalankan Eclipse, pilih window > Preference

Pada panel sebelah kiri, pilih Android

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

menggambarkan struktur dan hubungan antar modul yang berisi code,


termasuk ketergantungan (dependency) di antaranya.
8. deployment diagram, untuk memodelkan distribusi aplikasi.

3.

Kriptografi

3.1. Pengertian 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.

3.2. Tujuan Kriptografi


Kriptografi bertujuan untuk memberikan layanan pada aspek-aspek keamanan
antara lain:
1. Kerahasiaan (confidentiality), yaitu menjaga supaya pesan tidak dapat dibaca
oleh pihak-pihak yang tidak berhak.

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

membuktikan bahwa suatu dokumen datang dari seseorang tertentu sehingga


apabila ada seseorang yang mencoba mengakui memiliki dokumen tersebut,
dapat dibuktikan kebenarannya dari pengakuan orang tersebut.

3.3. Jenis Algoritma Kriptografi


Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi
dapat dibedakan menjadi 2 macam, yaitu kriptografi simetri (symetric
cryptography) dan kriptografi asimetri (asymetric cryptography).
3.3.1. Kriptografi Simetri (Symetric Cryptography)
Pada sistem kriptografi simetri, kunci untuk proses enkripsi sama dengan
kunci untuk proses dekripsi. Keamanan sistem kriptografi simetri terletak pada
kerahasiaan kunci. Istilah lain untuk kriptografi simetri adalah kriptografi kunci
privat (private key cryptography) atau kriptografi konvensional (conventional
cryptography).

30

Gambar 2.4. Kriptografi Simetri (Symetric Cryptography)

Algoritma kriptografi simetri dapat dikelompokkan menjadi dua kategori antara


lain :
1. Stream Cipher, Algoritma kriptografi beroperasi pada plainteks/cipherteks

dalam

bentuk

bit

tunggal

yang

dalam

hal

ini

rangkaian

bit

dienkripsikan/didekripsikan bit per bit. Stream cipher mengenkripsi satu bit


setiap kali.
2. Cipher

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.

3.3.2. Kriptografi Asimetri (Asymetric Cryptography)


Pada sistem kriptografi asimetri, kunci untuk proses enkripsi tidak sama
dengan kunci untuk proses dekripsi. Istilah lain untuk kriptografi asimetri adalah
kriptografi kunci publik (public key cryptography), sebab kunci untuk enkripsi
tidak rahasia dan dapat diketahui oleh siapapun, sementara kunci untuk dekripsi
hanya diketahui oleh penerima pesan.

31

Gambar 2.5. Kriptografi Asimetri (Asymetric Cryptography)

4.

Algoritma Kriptografi Blowfish

4.1. Definisi Blowfish


Blowfish adalah sebuah algoritma kriptografi yang beroperasi pada mode
blok. Algoritma Blowfish ditujukan untuk diimplementasikan pada sebuah
mikroprosesor berskala besar. Algoritma Blowfish sendiri tidak dipatenkan
sehingga dapat digunakan oleh orang banyak. Blowfish dirancang untuk
memenuhi kriteria-kriteria sebagai berikut:
1. Cepat.

Blowfish dirancang agar dapat mengenkripsikan data pada

mikroprosesor 32 bit dengan kecepatan 26 clock cycles per byte.


2. Kompak. Blowfish dirancang agar dapat berjalan dengan penggunaan memori

kurang dari 5 kB.


3. Sederhana.

Blowfish

dirancang

hanya

menggunakan

operasi-operasi

sederhana. Operasi-operasi yang digunakan dalam Blowfish adalah


penambahan, XOR, dan table lookup dalam operand 32 bit. Rancangan yang
sederhana ini mempermudah proses analisa yang membuat Blowfish
terhindar dari kesalahan implementasi.

32

4. Keamanan yang beragam. Panjang kunci yang digunakan dalam algoritma


Blowfish bervariasi dengan panjang kunci maksimal 448 bit.

4.2. Pembangkitan Kunci


Blowfish adalah algoritma dengan kunci blok cipher simetris yang
menggunakan ukuran blok 64 bit dan panjang kunci 32 448 bit [9]. Algoritma
ini mengiterasi algoritma enkripsi sederhana sebanyak 16 putaran (round).
Algoritma ini terdiri dari dua bagian: key expansion dan enkripsi data. Key
expansion merubah kunci yang dapat mencapai 448 bit menjadi beberapa array
subkunci (subkey) dengan total 4168 Byte dan enkripsi data terdiri dari iterasi
fungsi sederhana sebanyak 16 kali. Setiap putaran terdiri dari permutasi kuncidependent dan substitusi kunci dan data-dependent. Seluruh operasi adalah
penambahan dan XOR pada variable 32-bit. Tambahan operasi lainnya hanyalah
empat penelusuran tabel (table lookup) array berindeks untuk setiap putaran.
Blowfish menggunakan subkunci yang besar. Kunci ini harus dihitung sebelum
enkripsi atau dekripsi data.
P-array terdiri dari 18 buat upa-kunci dengan ukuran 32 bit:
P1,P2, . . . ,P18
Empat buat kotak-S dengan ukuran 32 bit mempunyai entry sebanyak 256
buah. Kotak-kotak tersebut adalah:
S1,0, S1,1, . . . , S1,255
S2,0, S2,1, . . . , S2,255
S3,0, S3,1, . . . , S3,255

33

S4,0, S4,1, . . . , S4,255

Subkey dibangkitkan dengan menggunakan algoritma Blowfish. Metode


pembangkitan Subkey ini dilakukan dengan langkah-langkah sebagai berikut:
1. Pertama-tama inisialisasi P-array dan kemudian keempat kotak-S, secara

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

dengan algoritma Blowfish, menggunakan Subkey yang dijelaskan pada


langkah 1 dan 2.
4. Ubah nilai P1 dan P2 dengan hasil keluaran pada langkah 3.
5. Lakukan proses enkripsi terhadap hasil keluaran dari langkah 3 menggunakan

algoritma Blowfish dengan Subkey yang telah dimodifikasi.


6. Ubah nilai P3 dan P4 dengan hasil keluaran pada langkah 5.

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.

4.3. Proses Enkripsi


Blowfish adalah algoritma yang menerapkan jaringan Feistel (Feistel
network) yang terdiri dari 16 putaran. Input merupakan elemen 64 bit, X. Untuk
proses enkripsi dapat dilakukan sebagai berikut :
1. Bagi x menjadi setengah bagian, yaitu dengan ukuran 32 bit. Hasil
pembagian ini adalah : XL, XR
2. Lakukan langkah-langkah berikut dalam 16 putaran:
XL = XL xor Pi
XR = F(XL) xor XR
Tukar XL dan XR
Keterangan : untuk i = 1 sampai 16 ( menunjukkan nomor putaran)
3. Tukar XL dan XR (membatalkan pertukaran terakhir)
4. XR = XR xor P17
5. XL = XL xor P18
6. Kombinasikan kembali XL dan XR

35

Gambar 2.6. Skema Enkripsi Algoritma Blowfish

Selesai

Gambar 2.7. Diagram Alir Algoritma Blowfish

Gambar 2.7. menunjukan diagram alir algoritma enkripsi Blowfish dengan


dekripsi sebagai berikut, 64-bit pesan yang pertama dibagi menjadi 2 bagian, 32bit elemen kiri dan 32-bit elemen kanan. XOR-kan 32-bit elemen kiri yang
pertama dengan sub-kunci yang pertama, kemudian kenakan elemen kiri dengan

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.

Fungsi F yang terdapat pada jaringan Feistel difinisikan sebagai berikut:


1. Bagi XL, menjadi empat bagian yang berukuran 8 bit. Keempat bagian
yang dihasilkan adalah a, b,c, dan d.
2. Fungsi F(XL) didefinisikan sebagai berikut:
F(XL) = ((S1,a + S2,b mod 2) xor S3,c) + S4,c mod 2

Gambar 2.8. Skema Fungsi Feistel (F) pada Algoritma Blowfish

37

Gambar 2.8. menunjukan fungsi F dengan dekripsi sebagai berikut,


32-bit elemen kiri dibagi menjadi 4 X 8 bit, fungsi F merupakan array 2 dimensi
yang ditunjukan pada algoritma diatas, dimana S-BOX 1 menjadi elemen x dan 8bit pertama menjadi elemen y, S-BOX 2 menjadi elemen x dan 8-bit kedua
menjadi elemen y, dan seterusnya sampai elemen ke-4, empat bagian tersebut
menghasilkan keluaran masing-masing 32-bit, 32-bit pertama dijumlahkan dengan
32-bit bagian kedua, keluarannya di-XOR-kan dengan 32-bit bagian ketiga, dan
keluarannya dijumlahkan lagi dengan 32-bit bagian keempat menghasilkan 32-bit
keluaran. Keluaran tersebut digunakan untuk masukan pada operasi pengXOR-an
antara elemen kanan dengan fungsi F.

4.4. Proses dekripsi


Dekripsi sama persis dengan enkripsi, kecuali bahwa P1, P2, P3,.....P18
digunakan pada urutan yang berbalik. Dekripsi data juga terdiri dari iterasi 16
kaliputaran yang dapat digambarkan dalam skema di bawah ini :

38

Ciphertex

Plaintext
Gambar 2.9. Skema Dekripsi Algoritma Blowfish

4.5. Keamanan pada Algoritma Blowfish


Hingga saat ini telah terdapat beberapa proses kriptanalisis terhadap
Blowfish. Walaupun begitu, kriptanalisis ini dilakukan terhadap algoritma
Blowfish yang telah diperlemah atau disederhanakan.

39

John Kelsey mengembangkan sebuah metode serangan yang dapat


memecahkan Blowfish dengan tiga putaran, tetapi tidak dapat mengembangkan
lebih dari itu. Penyerangan ini mengeksploitasi fungsi F. Vikramjit Singh Chhabra
juga telah mencari cara yang efisien untuk mengimplementasikan mesin pencarian
kunci dengan cara lempang (brute force).
Serge Vaudenay melakukan pemeriksaan terhadap Blowfish dengan kotak-S
diketahui dan putaran sebanyak r. Proses pemeriksaan yang dilakukan dengan
serangan diferensial dapat menghasilkan P-array dengan 28r+1 chosen plainteks
[SCH95]. Untuk kunci lemah tertentu yang menghasilkan kotak-S yang buruk,
serangan yang sama hanya membutuhkan 24r+1 chosen plainteks untuk
menghasilkan P-array. Kemungkinan untuk mendapatkan kunci lemah ini sendiri
adalah 1 berbanding 214. Tanpa diketahuinya kotak-S yang digunakan, serangan
ini dapat mendeteksi lemah tidaknya kunci yang digunakan, tetapi tidak dapat
menentukan kunci, kotak-S, dan P-array yang digunakan. Cara penyerangan ini
hanya efektif terhadap aplikasi algoritma Blowfish dengan jumlah putaran yang
dikurangi. Untuk algoritma Blowfish dengan jumlah putaran sebanyak 16 kali,
cara serangan ini sama sekali tidak efektif dilakukan.
Penemuan kunci lemah sangatlah penting, tetapi kunci-kunci lemah ini
mustahil untuk diketahui. Sebuah kunci lemah adalah kunci yang mempunyai dua
entry yang sama untuk sebuah kotak-S. Tidak ada cara untuk memeriksa kunci
lemah sebelum dilakukan ekspansi kunci. Pemeriksaan kunci lemah hanya dapat
dilakukan ekspansi kunci terlebih dahulu. Tetapi cara ini tidak terlalu penting
untuk dilakukan.

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.

Java Enterprise Edition


Java Platform, Enterprise Edition (Java EE) adalah standar dalam perangkat

lunak. Java EE dikembangkan menggunakan Java Community Process, dengan


kontribusi dari para ahli industri, organisasi komersial dan open source,
Kelompok Pengguna Java, dan individu yang tak terhitung jumlahnya. Setiap rilis
mengintegrasikan fitur baru yang sesuai dengan kebutuhan industri, meningkatkan
aplikasi portabilitas, dan meningkatkan produktivitas pengembang [10]. Java EE
menyediakan spesifikasi yang terbuka dan terstandarisasi, sehingga kita bisa
membangun aplikasi yang mengikuti spesifikasi Java EE, dan ketika kita sudah
sampai pada tahap implementasi kita bisa dengan mudah memilih application
server mana yang kita inginkan. Migrasi antar application serverpun menjadi
sangat mudah karena server yang baru juga mengimplementasikan spesifikasi
yang sama, yaitu Java EE.
Desain Java EE mengacu pada 3 tier application design. Seperti kita ketahui,
desain aplikasi sederhana biasanya menggunakan desain 2 tier, atau yang biasa
disebut client-server. Aplikasi 2 tier terdiri atas aplikasi client (user interface)
yang juga memuat semua business logic aplikasi. Aplikasi client ini berhubungan
secara langsung dengan tier ke dua yaitu database server.

41

Konsep yang digunakan di Java EE dengan 3 tier application design,


bertujuan untuk memisahkan business logic aplikasi dengan user interface
menjadi 2 bagian yang terpisah. Jadi, desain aplikasi ini terdiri dari user interface,
business logic server, dan enterprise information server (EIS). Dengan adanya
pemisahan ini, aplikasi menjadi lebih modular. User interface dan business logic
component memiliki tugas masing-masing.

User Interface Component

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.

Business Logic Server

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.

Enterprise Information Server

EIS adalah server yang menangani manajemen data. Umumnya berupa


sebuah database server. Namun tidak menutup kemungkinan untuk
menggunakan sistem lain (seperti legacy system) sebagai EIS. Layer ini
berada di luar batasan Java EE. Java EE hanya menyediakan standard API
untuk mengakses EIS, tapi tidak menyediakan implementasinya.
Java EE Application Programming Interface (API). Ada banyak sekali
API yang disupport oleh spesifikasi Java EE, diantaranya:
1. Java Persistence API (JPA)
2. Java Transaction API (JTA)
3. Java Messaging Service (JMS)
4. Web Service
5. Java Connector Architecture (JCA)

43

6. Java Authentication and AuthorizationService (JAAS)


7. Java Mail
8. Web Component (Servlet, JSP, JSF, JSTL)
9. Java Management
C. METODOLOGI

Lokasi dan Waktu Penelitian


Judul : Rancang Bangun Aplikasi Kriptografi untuk Keamanan Data dengan
menggunakan Algoritma Elliptic Curve Cryptography
Lokasi : Politeknik Negeri Lhokseumawe
No.

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

Anda mungkin juga menyukai