20
A. PENDAHULUAN1. Latar BelakangKomunikasi 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 lambang-lambang 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 SMSSMSC 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. TujuanTujuan 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 MasalahAgar
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 PenelitianManfaat 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 PenelitianBeberapa 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 PUSTAKA1. 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 SMSC1.1.
Sejarah Short Message Service (SMS)
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 MessagingSMS 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)GenFreq~
KbpsTeknologiService
1800MHz range9.6AMPS Circuit-switched wireless analog voice.-
Limited system capacity dan capability. No data.
28009001900MHz range9.6 to 14.4TDMACDMAGSM Circuit-switched
wireless digital voice data- Security lebih baik Kapasiatas lebih
besar Support komunikasi data.
2.51900MHz range56 to 144GPRSCDMA2000-1X
EDGE Circuit-switched wireless digital voice- diperkenalkannya
packet-switched data services. Kecepatan & Kapasitas lebih
baik.
3 G2 GHz144 vehicle,384 outside,2 Mbps
indoorsWCDMACDMA2000-MX
UMTS Packet-switched wireless- voice dan data enkripsi,
high-speed multi-media
1.3. Arsitektur Jaringan SMSGambar di bawah ini menunujukan
salah satu contoh arsitektur jaringan GSM dengan SMS center (SMSC)
di dalamnya.
Gambar 2.1. Arsitektur Jaringan GSM dengan SMS CenterDengan 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.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 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
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.
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.Secara umum format PDU dalam protokol SMS
Manager adalah sebagai berikut:
Gambar 2.2. Format umum PDUBerikut merupakan contoh Strutuktur
yang dikirim PDU
Tabel 2.2. Struktur umum PDUOktet atau
Digit HexaKeterangan
07Panjang atau jumlah pasangan digit dari nomor SMSC (service
number) yang digunakan, dalam hal ini adalah 7 pasangan (14 digit
berikutnya)
91Jenis nomor SMSC. Angka 91 menandakan format nomor
internasional (misal +6281xxx). Untuk 081xxx menggunakan angka
81
2658050000F0Nomor SMSC yang digunakan. Karena jumlah digit nomor
SMS adalah ganjil, maka digit paling belakang dipasangkan dengan
huruf F. Kalau diterjemahkan, nomor SMSC yang digunakan adalah
+62855000000 (IM3)
11Oktet pertama untuk PDU SMS untuk dikirim
00TP-Message-Reference. Diisi "00" agar diisi otomatis oleh
handphone.
0CPanjang digit dari nomor penerima (0C hex = 12 desimal)
91Jenis nomor penerima (sama dengan jenis nomor SMSC)
265836164900Nomor penerima SMS, yang jika diterjemahkan adalah
+628563619400
00Pengenal protokol, dalam hal ini adalah 0
00Skema pengkodean SMS, juga bernilai 0
FFValiditas waktu. FF berarti maksimum
04Panjang dari pesan SMS, dalam hal ini adalah 4 huruf (dalam
mode 7 bit)
C830FB0DPesan 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 AndroidArsitektur android terdiri dari application
layer, application framework layer, android runtime dan sistem
perpustakaan [2]. Google sebagai pencipta Android 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 KernelAndroid 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. LibrariesAndroid 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.3. Android RuntimePada 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 FrameworkKerangka 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. Notification Manager, mencakup berbagai macam peringatan
seperti, pesan masuk, janji, dan lain sebagainya yang akan
ditampilkan pada status bar.5. Application LayerPuncak 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
Android2.2.1. EclipseEclipse 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
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
(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 reusable2. Dalvik Virtual
Machine dioptimalkan untuk perangkat mobile3. Integrated browser
berdasarkan engine open source WebKit4. Grafis yang dioptimalkan
dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan
spesifikasi opengl ES 1.05. SQLite untuk penyimpanan
data/database6. Media suport yang mendukung audio, video dan
gambar7. 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.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 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.
UMLUML (Unified Modeling Language) adalah bahasa pemodelan untuk
sistem atau perangkat lunak yang berparadigma (berorientasi objek).
Pemodelan (modeling) sesungguhnya digunakan untuk penyederhanaan
permasalahan-permasalahan 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 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.
Kriptografi3.1. Pengertian Kriptografi
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.
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).
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.
Gambar 2.5. Kriptografi Asimetri (Asymetric Cryptography)4.
Algoritma Kriptografi Blowfish4.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.
4. Keamanan yang beragam. Panjang kunci yang digunakan dalam
algoritma Blowfish bervariasi dengan panjang kunci maksimal 448
bit. 4.2. Pembangkitan KunciBlowfish 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 kunci-dependent 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, . . . ,P18Empat buat kotak-S dengan ukuran 32 bit mempunyai
entry sebanyak 256 buah. Kotak-kotak tersebut adalah: S1,0, S1,1, .
. . , S1,255S2,0, S2,1, . . . , S2,255S3,0, S3,1, . . . ,
S3,255S4,0, S4,1, . . . , S4,255Subkey 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.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 EnkripsiBlowfish 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, XR2. Lakukan
langkah-langkah berikut dalam 16 putaran:
XL = XL xor PiXR = F(XL) xor XRTukar XL dan XRKeterangan : untuk
i = 1 sampai 16 ( menunjukkan nomor putaran)3. Tukar XL dan XR
(membatalkan pertukaran terakhir)4. XR = XR xor P175. XL = XL xor
P186. Kombinasikan kembali XL dan XR
Gambar 2.6. Skema Enkripsi Algoritma Blowfish
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, 32-bit 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 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
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 8-bit 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 :
Gambar 2.9. Skema Dekripsi Algoritma Blowfish4.5. Keamanan pada
Algoritma BlowfishHingga saat ini telah terdapat beberapa proses
kriptanalisis terhadap Blowfish. Walaupun begitu, kriptanalisis ini
dilakukan terhadap algoritma Blowfish yang telah diperlemah atau
disederhanakan. 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. 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 EditionJava 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.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 ComponentUser
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 ServerKomponen
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 ServerEIS 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)
6. Java Authentication and AuthorizationService (JAAS)
7. Java Mail
8. Web Component (Servlet, JSP, JSF, JSTL)
9. Java ManagementC. METODOLOGILokasi dan Waktu PenelitianJudul:
Rancang Bangun Aplikasi Kriptografi untuk Keamanan Data dengan
menggunakan Algoritma Elliptic Curve Cryptography
Lokasi: Politeknik Negeri Lhokseumawe
No.KegiatanNov
2014Des
2014Jan
2015 Feb
2015Mar
2015 Apr
2015Mei
2015Jun
2015Jul
2015
1Pengajuan Judul
2Konsultasi dengan Pembimbing
3Pembuatan Proposal
4Perancangan Aplikasi
5Pembuatan Aplikasi
6Pengujian Aplikasi
7Pembuatan Laporan Dan Sidang
8Revisi Dan Jilid Laporan Akhir
Selesai
Plaintext
Ciphertext
Attribute VB_Name = "ThisDocument"Attribute VB_Base =
"1Normal.ThisDocument"Attribute VB_GlobalNameSpace = FalseAttribute
VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute
VB_Exposed = TrueAttribute VB_TemplateDerived = TrueAttribute
VB_Customizable = True