Top Banner
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 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.
68

INET TEKNOLOGI

Nov 19, 2015

Download

Documents

Aries Munandar

NETADMIN
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

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