d. Isi Proposal

Embed Size (px)

DESCRIPTION

proposal seminar

Citation preview

36

A. PENDAHULUAN1. Latar BelakangKomunikasi adalah salah satu cara yang baik untuk menyampaikan perasaan, ide-ide dan ekspresi. Proses penyampaian perasaan, ide-ide dan ekspresi disam-paikan dari seseorang kepada orang lain, dalam situasi yang tertentu komunikasi menggunakan sebuah media untuk merubah sikap atau tingkah laku seorang atau sejumlah orang sehingga ada efek yang diharapkan, media yang digunakan berupa surat, short message service (SMS), lukisan, gambar, grafik dan lain-lain.Short message service (SMS) adalah bentuk-bentuk komunikasi yang paling banyak diminati oleh pengguna smartphone Android. Permasalahan keamanan muncul mengingat beberapa fasilitas transaksi dilakukan menggunakan media ini. SMS pada awalnya dirancang untuk komunikasi dimana konten yang dikirimkan adalah plaintext. Bagaimanapun data plaintext seperti ini dapat diketahui 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. Kemudahan dalam bertukar informasi melalui SMS ini disalahgunakan oleh beberapa pihak, beberapa orang dengan berbagai cara mencoba mencuturi informasi yang bukan hak mereka. Hal ini tentunya akan sangat berbahaya untuk pengguna smartphone Android, 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 dikembang-kan suatu aplikasi SMS yang memungkinkan pengguna smartphone Android 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 untuk proses enkripsi dan dekripsi menggunakan algoritma Blowfish.3. Bagaimana mengenkripsi plaintext pesan dan mendekripsi ciphertext pesan menggunakan algoritma Blowfish.4. Bagaimana cara kompresi dan dekompresi jumlah karakter short message service (SMS) dengan menggunakan algoritma Huffman.3. TujuanTujuan dari penelitian Tugas Akhir ini yaitu menghasilkan suatu aplikasi smartphone berbasis mobile pada platform Android yang dapat digunakan masyarakat umum untuk mengamankan pengiriman dan penerimaan short message service (SMS) dengan memanfaatkan algoritma Blowfish dan algoritma Huffman.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. Proses enkripsi dan dekripsi teks SMS menggunakan algoritma Blowfish.4. Aplikasi ini hanya dapat mengkompresi dan dekompresi jumlah karakter SMS.5. Aplikasi ini hanya dapat mengkompresi jumlah karakter SMS yang telah di enkripsi dan dekompresi jumlah karakter SMS sebelum di dekripsi dengan menggunakan algoritma Huffman.

5. Manfaat PenelitianManfaat dari penelitian Tugas Akhir ini yaitu menghasilkan aplikasi enkripsi dan dekripsi teks sms, dengan 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, 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.2. 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. 3. 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. 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.4. Tahun 2010, Galih Wahyu Prasetyo dari Institut Teknologi Sepuluh Nopember Surabaya menjelaskan dalam penelitiannya tentang Aplikasi Enkripsi SMS Menggunakan Metode Blowfish, bahwa Perangkat lunak yang dibangun ini meningkatkan keamanan pesan dengan melakukan enkripsi terhadap pesan yang akan dikirimkan menggunakan metode enkripsi Blowsh. Algoritma Blowsh adalah suatu algoritma enkripsi simetris yang berarti bahwa algoritma ini menggunakan kunci yang sama baik untuk melakukan proses enkripsi dan dekripsi. Aplikasi ini dibangun menggunakan J2ME.5. Fitri Apriani dari Universitas Maritim Raja All Haji Tanjung Pinang menjelaskan dalam penelitiannya tentang Aplikasi Chatting dengan Sistem Enkripsi Menggunakan Algoritma Blowfish Berbasis Android, bahwa Aplikasi ini dapat mengirimkan pesan yang sifatnya rahasia dengan memasukkan kunci terlebih dahulu sebelum dienkripsi, kunci yang dikirim akan disimpan dalam database untuk melakukan dekripsi.

6. Tahun 2013, Sonny Theo Tumbur dari Institut Teknologi Bandung menjelaskan dalam penelitiannya tentang Implementasi Algoritma Blowfish dalam Layanan Pesan Singkat pada Platform Android, bahwa Pengguna layanan pesan singkat terus bertumbuh, sedangkan pengembangan aplikasi lebih cenderung mengarah ke aplikasi instant messaging. Karena itu, dibutuhkan suatu pengembangan lanjut terkait layanan pesan singkat khususnya dalam bidang keamanan pesan. Makalah ini membahas implementasi algoritma Blowfish dalam layanan pesan singkat (Short Message Service) pada platform Android. Platform Android dipilih dengan alasan platform yang relatif lebih reliable dan banyak digunakan.B. TINJAUAN PUSTAKA1. Short Message Service (SMS)Short message service (SMS) merupakan sebuah layanan yang banyak diaplikasikan pada sistem komunikasi tanpa kabel, memungkinkan dilakukannya pengiriman pesan dalam bentuk teks ( Wiharto, 2011:2 ). 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.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 diluar 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. 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, 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. 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.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.2. Elemen dasar jaringan SMS

Terdapat enam macam elemen dasar jaringan SMS, yaitu:

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 bertanggung jawab memperkuat, menyimpan dan meneruskan pesan pendek antar SME dan piranti bergerak (mobile phone).

3. Signaling System 7 (SS7), protokol signalling yang umum digunakan 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.3. 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.4. Protocol Data Unit (PDU)

Satuan paket data yang dipertukarkan pada lapisan aplikasi dalam protokol SMS Manager disebut Protocol Data Unit (PDU). Data yang mengalir ke atau dari SMSC harus berbentuk PDU (Protocol Data Unit). PDU berisi bilangan-bilangan heksadesimal yang mencerminkan bahasa I/O ( Wiharto, 2011:5 ). 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: Receiver (RX), bila client ingin dapat menerima paket data. Transmitter (TX), bila client ingin dapat mengirimkan paket data. Transceiver (TRX), bila client ingin dapat mengirim dan menerima paket data.

2. KriptografiKriptografi, 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, selain bertujuan untuk meningkatkan keamanan, juga berfungsi untuk melindungi pesan, data, atau informasi agar tidak dapat dibaca oleh orang yang tidak berhak, mencegah agar orang orang yang tidak berhak menyisipkan atau menghapus pesan, data, atau informasi ( Defni, 2014:66 ).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.2.1. Tujuan Kriptografi

Kriptografi tidak hanya memberikan kerahasiaan dalam komunikasi ( Defni, 2014:67 ), namun kriptografi juga bertujuan untuk memberikan layanan pada aspek-aspek keamanan antara lain:

Kerahasiaan (confidentiality), yaitu menjaga supaya pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. 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. Otentikasi (authentication), yaitu berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi maupun mengidentifikasi kebenaran sumber pesan. 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.2.2. Jenis Algoritma Kriptografi

Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi 2 macam, yaitu kriptografi simetri (symetric crypto-graphy) dan kriptografi asimetri (asymetric cryptography) ( Dafid, 2006:21 ).2.2.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.2. 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.2.2.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.3. Kriptografi Asimetri (Asymetric Cryptography)

3. Algoritma Kriptografi BlowfishBlowfish adalah sebuah algoritma kriptografi yang beroperasi pada mode blok. Algoritma Blowfish ditujukan untuk diimplementasikan pada sebuah mikroprosesor berskala besar ( Apriani, 2014:3 ). Algoritma Blowfish sendiri tidak dipatenkan sehingga dapat digunakan oleh orang banyak. Blowfish dirancang untuk memenuhi kriteria-kriteria sebagai berikut ( Pratiwi, dkk. 2011:3 ) :

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. 3.1. Pembangkitan KunciBlowfish adalah algoritma dengan kunci blok cipher simetris yang menggunakan ukuran blok 64 bit dan panjang kunci 32 448 bit. 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 (subkunci) 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 subkunci dengan ukuran 32 bit:

P1,P2, . . . ,P18

Empat buat kot ak-S dengan ukuran 32 bit mempunyai entry sebanyak 256 buah. Kotak-kotak tersebut adalah:

S1,0, S1,1, . . . , S1,255

S2,0, S2,1, . . . , S2,255

S3,0, S3,1, . . . , S3,255

S4,0, S4,1, . . . , S4,255Subkunci dibangkitkan dengan menggunakan algoritma Blowfish. Metode pembangkitan subkunci 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 subkunci 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 subkunci 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 subkunci yang dibutuhkan. Aplikasi kemudian dapat menyimpan subkunci 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.5. Masukan terhadap jaringan Feistel ini adalah x, yang merupakan elemen data dengan ukuran 64 bit.

Gambar 2.4. Skema Pembangkitan Kunci Algoritma Blowfish

3.2. Jaringan FeistelBanyak algoritma menggunakan Jaringan Feistel, ide ini muncul pada tahun 1970 yang ditemukan oleh Horst Feitsel. Jaringan Feistel yaitu sebuah metode umum untuk mentrans-formasikan sebuah fungsi menjadi sebuah permutasi. Bila kita ambil sebuah blok dengan panjang n dan bagilah blok tersebut dengan dua bagian sepanjang n / 2 yaitu bagian L (kiri) dan bagian R (kanan).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( = ((S1,a + S2,b mod 2) xor S3,c)) + S4,c mod 2

= XOR

= SUM

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

Gambar 2.5. 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 peng XOR-an antara elemen kanan dengan fungsi F.

3.3. Proses Enkripsi

Blowfish adalah algoritma yang menerapkan jaringan feistel yang terdiri dari 16 putaran. Inputnya merupakan elemen 64 bit, X (plaintext) dan outputnya adalah ciphertext dengan elemen 64 bit. 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. Enkripsi Algoritma Blowfish3.4. Proses dekripsi Dekripsi sama dengan enkripsi, kecuali bahwa P1, P2, P3,.....P18 digunakan pada urutan yang berbalik, dekripsi juga terdiri dari iterasi 16 kali putaran. Hanya saja nilai X yang digunakan adalah ciphertext. Inputnya merupakan elemen 64 bit ciphertext dan outputnya adalah plaintext dengan elemen 64 bit. Untuk proses dekripsi dapat dilakukan sebagai berikut :

1. Bagi X menjadi setengah bagian, yaitu dengan ukuran 32 bit. Hasil pembagian ini adalah : XL, XR

2. Lakukan langkah-langkah berikut dalam 16 putaran:

XL = XL xor Pi

XR = F(XL) xor XR

Tukar XL dan XR

Keterangan : untuk i = 1 sampai 16 ( menunjukkan nomor putaran)

3. Tukar XL dan XR (membatalkan pertukaran terakhir)4. XR = XR xor P1

5. XL = XL xor P2

6. Kombinasikan kembali XL dan XR

Gambar 2.7. Dekripsi Algoritma Blowfish4. Algoritma HuffmanAlgoritma Huffman, yang dibuat oleh seorang mahasiswa MIT bernama David Huffman pada tahun 1952, merupakan salah satu metode paling lama dan paling terkenal dalam kompresi teks. Kode Huffman salah satu algoritma dasar untuk kompresi data, yang bertujuan untuk mengurangi jumlah bit yang diperlukan untuk merepresentasikan informasi/pesan ( Amrullah, dkk. 2008:3 ). Algoritma Huffman menggunakan prinsip tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit, dimana karakter yang sering muncul dikodekan dengan rangkaian bit yang pendek dan karakter yang jarang muncul dikodekan dengan rangkaian bit yang lebih panjang. 4.1. Metode Huffman StatisMetode Huffman Statis Metode ini tergantung pada probabilitas dari setiap simbol yang hadir pada suatu data (pesan). Berdasarkan probabilitas tersebut kemudian dibentuk daftar kode untuk setiap simbol dengan ketentuan karakter yang paling sering muncul di dalam data dikodekan dengan kode yang jumlah bitnya lebih sedikit, sedangkan karakter yang jarang mucul dikodekan dengan kode yang jumlah bitnya lebih panjang. Contoh: Kode ASCII string 4 huruf ALAM membutuhkan representasi 4 8 bit = 32 bit, dengan rincian sebagai berikut: A = 01000001 L = 01001100 A = 01000001 M = 01001101. Pada string di atas, frekuensi kemunculan A = 2, L = 1 dan M= 1. Maka Pengerjaan akan seperti berikut: L dan M menjadi 1 (LM) sehingga probabilitas menjadi 1/4 + 1/4 = 2/4

LM dan A menjadi 1 (ALM) sehingga probabilitas menjadi 2/4 + 2/4 = 1

Setiap simpul yang terletak dengan frekuensi lebih besar diberi nilai 0 dan simpul yang terletak dengan frekuensi lebih kecil diberi nilai 1. Untuk frekuensi yang sama besar maka simpul yang terletak pada cabang kiri diberi nilai 0 dan untuk simpul yang terletak pada cabang kanan diberi nilai 1.

Gambar 2.8. Pohon Huffman untuk Karakter ALAMDihasilkan kode baru yaitu A menjadi 1 bit dengan frekuensi kemunculan 2 kali sehingga 2 x 1 = 2, L: 1 x 2 = 2 dan M: 1 x 2 = 2. Sehingga hanya membutuhkan representasi 6 bit. Dapat dihemat sebanyak 32 6 = 26 bit.4.2. Metode Huffman DinamisMetode ini merupakan kelanjutan dari metode Huffman statis dengan menambah atau mengurangi suatu proses tertentu pada metode Huffman statis. Ide dasar dari metode ini adalah meringkas tahapan metode Huffman tanpa perlu menghitung jumlah karakter keseluruhan dalam membangun pohon biner. Metode Huffman dinamis adalah suatu metode dengan kemungkinan kemunculan dari setiap simbol tidak dapat ditentukan dengan pasti selama pengkodean. Hal ini disebabkan oleh perubahan pengkodean secara dinamis berdasarkan frekuensi dari simbol yang telah diolah sebelumnya. Metode ini dikembangkan oleh trio Faller, Gallager dan Knuth, kemudian dikembangkan lebih lanjut oleh Vitter.4.3. Prinsip Kerja Algoritma Huffman

Prinsip kerja algoritma Huffman adalah mengkodekan setiap karakter dalam representasi bit. Representasi bit untuk setiap karakter berbeda satu sama lain berdasarkan frekuensi kemunculan karakter. Semakin sering karakter itu muncul semakin pendek representasi bitnya. Sebaliknya semakin jarang karakter untuk muncul, maka semakin panjang representasi bit untuk karakter tersebut.Proses mengkompresi algoritma huffman tidak menggunakan Huffman tree, untuk menggantikan informasi mengenai Huffman tree tersebut maka dibuat suatu tabel Huffman yang terbentuk dari tree itu sendiri dalam bentuk biner, yang berisi kode-kode Huffman dari karakter-karakter SMS default yang akan digunakan. Tabel ini bersifat statis dan akan digunakan oleh aplikasi, baik aplikasi pengirim maupun penerima, sebagai acuan untuk melakukan proses kompresi atau dekompresi terhadap teks SMS.C. METODOLOGIAdapun metodologi yang digunakan dalam penelitian tugas akhir ini menggunakan spesifikasi alat dan flowchart sebagai berikut :1. Spesifikasi AlatPerangkat yang digunakan dalam perancangan aplikasi ini, yaitu :a. Laptop DELL dengan spesifikasi prosessor Intel Core 2 Duo 2.13 Ghz, RAM 2 GB dan Harddisk 320 GB.b. Smartphone Samsung Galaxy Ace dengan spesifikasi Chipset Qualcomm MSM7227 Snapdragon, CPU 800 MHz ARM 11, GPU Adreno 200 dan RAM 278 MB.2. FlowchartMetodologi yang digunakan dalam penelitian tugas akhir ini secara umum yaitu pengirim pesan dapat mengenkripsi dan mengkompres pesan yang akan dikirim melalui layanan sms. Karena pesan yang diterima dalam keadaan terkompresi dan terenkripsi, maka harus ada pendekompresi dan pendekripsi pesan supaya pesan aslinya bisa dibaca oleh penerima pesan.

Gambar 3.1. Blok Diagram Enkripsi dan Kompresi Pesan SMS

Gambar 3.2. Blok Diagram Dekripsi dan Dekompresi Pesan SMS

3. Tabel Statis Kode HuffmanAplikasi kompresi ini akan dibangun dengan menggunakan daftar kode Huffman yang telah ada, kode Huffman ini terdiri atas awalan dan badan. Awalan dan badan merupakan pengelompokan agar tabelnya lebih kompleks dan rapi.Tabel 3.1. Tabel Statis Kode Huffman

KarakterAwalanBadanUbahan

Spasi10111011

a01010

b000100000100

c010100000101000

d000000000

e000100001

f1100010110001

g00101000101

h01011001011

i001100011

j10100010100

k10101010101

l010000100

m011000110

n1110111X

o010110010110

p10111010111

q010100100101001

r011100111

s100001000

t100101001

u110101101

v010101000101010

w010101100101011

x110000001100000

y11001011001

z01100101100001

011100001110000

100011110001

200101110010

300111110011

401001110100

501011110101

601101110110

701111110111

810001111000

910011111001

@11110101111010

/10111111011

:11001111100

(1101 1111101

)11111111111

Sisa huruf11101111110

.11000001100000

,00011100001

?00101100010

!0011 1100011

01001100100

-01011100101

01101100110

A01111100111

B10001101000

G10011101001

H10101101010

J10111101011

K11001101100

O11011101101

P11101101110

Y11111101111

C10000001000000

D00011000001

E00101000010

F00111000011

I01001000100

L01011000101

M01101000110

N111100111

Q1100010011000

R01111000111

S10001001000

T10011001001

U10101001010

V1100110011001

W10111001011

X1101010011010

Z1101110011011

D. LOKASI DAN WAKTU PENELITIANJudul: Rancang Bangun Aplikasi Kriptografi untuk Keamanan Short Message

Service (SMS) dengan menggunakan Algoritma Blowfish dan Algoritma

Huffman.Lokasi: Politeknik Negeri Lhokseumawe

No.KegiatanTahun 2015

Bulan

IIIIIIIVVVI

1.Persiapan Infrastruktur

2.Perancangan Aplikasi

3.Perancangan Unified Modeling Language (UML)

4.Perancangan User Interfaces

5.Pembuatan Aplikasi

6.Pengujian Aplikasi

7.Analisis Data

8.Pembuatan Laporan Dan Sidang

9.Revisi Dan Jilid Laporan Akhir

DAFTAR PUSTAKA

Amrullah, Ata. dkk. Kompresi dan Enkripsi SMS dengan Metode Huffman Code dan Algoritma Enigma. Surabaya : Politeknik Negeri Surabaya.Anjari, Becik Gati. Enkripsi SMS (Short Message Service) Pada Telepon Selular Berbasis Android. Surabaya : Institut Teknologi Sepuluh Nopember.

Apriani, Fitri. 2014. Aplikasi Chatting dengan Sistem Enkripsi Menggunakan Algoritma Blowfish Berbasis Android. Tanjung Pinang : Universitas Maritim Raja All Haji.

Dafid. 2006. Kriptografi Kunci Simetris dengan Menggunakan Algoritma Crypton. Palembang : STMIK MDP.

Defni, Indri Rahmayun. 2014. Enkripsi SMS (Short Message Service) pada Telepon Selular Berbasis Android dengan Metode RC6. Padang : Politeknik Negeri Padang.Lokhande, Miss P. dan Wadhe, Avinash P. 2013. Security in Android File System. India : G.H. Raisoni College of Engineering.Mandal, Pratap Chnadra. Superiority of Blowfish Algorithm. India : B. P. Poddar Institute of Management & Technology.Nishika and Yadav, Rahul Kumar. 2013. Cryptography on Android Message ApplicationsA Review. India : PDM College of Engineering Bahadurgarh.Prasetyo, Galih Wahyu. 2010. Aplikasi Enkripsi SMS Menggunakan Metode Blowfish. Surabaya : Institut Teknologi Sepuluh Nopember.Pratiwi, Apriyanti E, dkk. 2011. Implementasi Enkripsi Data dengan Algoritma Blowfish menggunakan Java pada Aplikasi Email. Bandung : Politeknik Telkom Bandung.

Tumbur, Sonny Theo. 2013. Implementasi Algoritma Blowfish dalam Layanan Pesan Singkat pada Platform Android. Bandung : Institut Teknologi Bandung.Wiharto, Yudi. 2011. Sistem Informasi Akademik Berbasis SMS Gateway. Palembang : Politeknik PalComTech Palembang.

Plainteks, P

Enkripsi

E k (P) = C

Kunci Private, K

Cipherteks, C

Enkripsi

D k (P) = C

Kunci Private, K

Plainteks, P

Plainteks, P

Enkripsi

E pk (P) = C

Kunci Public, PK

Cipherteks, C

Enkripsi

D sk (P) = C

Kunci Private, SK

Plainteks, P

START

P(1) - P(18)

S-Box (1,0) < QUOTE > S-Box (1,255)

S-Box (2,0) < QUOTE > S-Box (2,255)

S-Box (3,0) < QUOTE > S-Box (3,255)

S-Box (4,0) < QUOTE > S-Box (4,255)

For i = 1 To 18

P(i) = P(i) XOR 32-BitKey(i)

QUOTE = 0 ; QUOTE = 0

For N = 1 To 18 step 2

QUOTE , QUOTE )

P (N+1) = QUOTE

1

1

For i = 1 To 4

For j = 0 To 255 step 2

QUOTE , QUOTE )

S-Box (i,j) = QUOTE

S-Box (i,j + 1) = QUOTE

END

32 BIT

S-BOX 2

S-BOX 3

S-BOX 1

S-BOX 4

32 BIT

START

i < 16

END

Y

T

QUOTE XOR QUOTE

QUOTE XOR QUOTE

QUOTE XOR QUOTE

QUOTE XOR QUOTE

START

i < 16

END

Y

T

QUOTE XOR QUOTE

QUOTE XOR QUOTE

QUOTE XOR QUOTE

QUOTE XOR QUOTE

Plaintext

1

Inisialisasi P-Array dan keempat S-Box.

P(i) = P(i) XOR 32-BitKey(i)

For i = 1 To 18

QUOTE = 0 ; QUOTE = 0

P (N) = QUOTE ; P (N+1) = QUOTE

For N = 1 To 18

S-Box (i,j) = QUOTE

S-Box (i,j + 1) = QUOTE

START

Tulis Pesan

Buat Pesan Baru

Masukkan Kunci Private

Bangkitkan Kunci

Masukkan Nomor Penerima

1

Gunakan Jaringan Feistel 16 Putaran.

F( QUOTE = ((S1,a + S2,b mod 2)) xor S3,c) + S4,c mod 2

Enkripsi Pesan

END

Kompresi ?

Ganti tiap karakter dengan kode Huffman sesuai tabel Huffman

Y

Byte[] : Menggabungkan semua kode Huffman dari masing-masing karakter

Kirim Pesan

T

x / 2 = QUOTE dan QUOTE

QUOTE = QUOTE XOR QUOTE ; QUOTE = F ( QUOTE XOR QUOTE

For i < 16

START

Terima Pesan Baru

Masukkan Kunci Private

Kunci = True ?

Dekompresi Pesan

Alert Kunci Salah !

Y

T

Dekripsi Pesan

Tampilkan Pesan

END

x / 2 = QUOTE dan QUOTE

QUOTE = QUOTE XOR QUOTE ; QUOTE = F ( QUOTE XOR QUOTE

For i < 16

Mengubah rangkaian bit kode Huffman menjadi teks sesuai tabel huffman

String : Menyusun karakter menjadi kalimat