BAB III

20
BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM III.1. Analisis Analisis adalah penguraian dari suatu pembahasan, dalam hal ini pembahasan mengenai SMS enkripsi menggunakan metode blowfish. Blowfish dirancang pada komputer yang mempunyai microprosessor besar ( 32-bit keatas dengan cache data yang besar ). Banyaknya algoritma yang ditawarkan hamper semua terhalang oleh paten dan kerahasian sedangkan blowfish bebas paten dan berapa pada domain public dan telah mendapat tempat pada dunia kriptografi. Sekarang ini sudah sangat sering terjadinya pencurian data yang bersifat personal atau rahasia, apalagi sekarang ini sistem pengamanan data dengan telah banyak dibobol oleh pencurinya. Dengan ini penulis akan merancang aplikasi yang dapat mengamankan sms dari penyadap agar pesan tersebut dapat dijaga 20

description

test

Transcript of BAB III

BAB III

34

BAB IIIANALISIS MASALAH DAN RANCANGAN PROGRAMIII.1. AnalisisAnalisis adalah penguraian dari suatu pembahasan, dalam hal ini pembahasan mengenai SMS enkripsi menggunakan metode blowfish. Blowfish dirancang pada komputer yang mempunyai microprosessor besar ( 32-bit keatas dengan cache data yang besar ). Banyaknya algoritma yang ditawarkan hamper semua terhalang oleh paten dan kerahasian sedangkan blowfish bebas paten dan berapa pada domain public dan telah mendapat tempat pada dunia kriptografi.

Sekarang ini sudah sangat sering terjadinya pencurian data yang bersifat personal atau rahasia, apalagi sekarang ini sistem pengamanan data dengan telah banyak dibobol oleh pencurinya. Dengan ini penulis akan merancang aplikasi yang dapat mengamankan sms dari penyadap agar pesan tersebut dapat dijaga kerahasiaannya. Perancangan yang dilakukan penulis berupa perancangan aplikasi SMS enkripsi menggunakan metode blowfish. Adapun perancangan aplikasi SMS enkripsi dan defkripsi ini adalah untuk mengamankan pesan yang berbasis android. III.2.Strategi Pemecahan Masalah

Di dalam hal ini adalah bagaiaman penyelesaian masalah aplikasi sms enkripsi dan deskripsi pesan menggunakan metode blowfish berbasis android yang akan diterapkan dalam aplikasi yang dirancang, agar proses berjalan dengan baik dan hasil yang diinginkan sesuai dengan yang diharapkan. Maka untuk itu penulis menyelesaikan masalah yang terjadi dalam proses pembuatan aplikasi ini. Adapun beberapa strategi yang diterapkan yaitu dengan membuat bagan alir program yang menyangkut semua alir program mulai dari awal program sampai akhir program. Selanjutnya, penulis menganalisa tentang bagaimana cara untuk membuat suatu aplikasi ini lebih efektif dan efisien sehingga aplikasi ini dapat digunakan. Penulis mengumpulkan teoriteori yang berhubungan dengan masalah perancangan aplikasi ini, dan dari buku-buku, artikel yang di dapat dari internet. Dan bahasa pemograman yang penulis pilih dalam implementasi rancangan program adalah bahasa pemograman Eclipse.III.4.PerancanganPerancangan merupakan proses yang dilakukan oleh penulis untuk merancangan apliksi tersebut. Perancangan sistem yang penulis buat secara umum adalah pembangunan aplikasi SMS enkripsi dan deskripsi menggunakan metode blowfish berbasis android, adapun beberapa tahap dalam perancangan aplikasi adalah sebagai berikut : 1. ProsesPerancangan proses yang dimaksudkan adalah bagaimana sistem akan bekerja, proses-proses yang digunakan mulai dari user melakukan input kemudian diproses oleh aplikasi sehingga dapat mengeluarkan output berupa hasil enkripsi pesan tersebut.2. Antar mukaPerancangan antar muka mengandung penjelasan tentang desain dan implementasi sistem yang digunakan dalam sistem yang dibuat. a. Uraian Perancangan Sistem Aplikasi.

Proses SMS Enkripsi merupakan proses pengiriman pesan yang ingin dienkripsi, dan proses Deskripsi merupakan proses mengembalikan pesan yang dienkrip sehingga dapat dibaca kembali isi pesan tersebut.

b. Tahap Enkripsi dan Dekripsi DataTahap Enkripsi dan Dekripsi data merupakan tahap untuk mengubah suatu pesan menjadi suatu kode yang bertujuan untuk menyembunyikan pesan tersebut agar tidak dapat diketahui oleh orang yang tidak berhak melihatnya.Proses perancangan aplikasi SMS enkripsi dan deskripsi menggunakan metode Blowfish berbasis android secara umum dapat diuraikan sebagai berikut:

a. Input kan plainteks dan key yang akan disandikan ke dalam aplikasi yang sedang dijalankan.b. Enkrip plainteks dan key pada aplikasi yang telah dirancang menggunakan button Send SMS.c. Proses Enkripsi pesan dengan menggunakan metode blowfish.d. Dari proses Enkripsi tersebut akan menghasilkan kode-kode yang acak yang di dalamnya telah disisipi pesan rahasia.e. Proses Dekripsi Proses atau tahap yang dilakukan untuk membaca pesan yang telah disandikan dengan melakukan dekripsi pesan tersebut untuk membacanya kembali.III.4.1. Rancangan layarSetelah diagram alur dari perancangan aplikasi enkripsi dengan metode blowfish telah dirancang, maka selanjutnya penulis akan melakukan perancangan pada desain aplikasi. III.4.1.1. Desain Halaman Utama Aplikasi

Tahap awal dalam perancangan adalah halaman utama aplikasi, seperti yang terlihat pada gambar III.1. di bawah ini

Tampilan gambar III.1. merupakan tampilan utama dari aplikasi, dimana dalam tampilan halaman utama terdapat button untuk menjalankan aplikasi. Pada tiap button akan terdapat form lagi.1. Desain Halaman

Tampilan gambar III.2. merupakan tampilan untuk aplikasi enkripsi dan deskripsi blowfish. Tahap yang dilakukan adalah menginputkan nomor tujuan dan plainteks pada kolom edittext tersebut, sehingga akan melakukan proses untuk enkrip pesan tersebut kedalam metode blowfish, dimana dalam form aplikasi di atas tampak beberapa bagian yang memiliki fungsi sebagai berikut :1. EditText pada Nomor tujuan berfungsi untuk menginputkan nomor tujuan yang akan di tuju.2. EditText pada Pesan merupakan penyandian pesan yang akan di kirim.3. EditText pada key merupakan data kunci dari pesan yang akan di enkripsi untuk dikirim ketujuan.4. Button Send SMS adalah proses untuk mengubah pesan menjadi suatu kode yang telah dienkrip oleh program, dimana kode tersebut akan dikirim ke nomor tujuan yang telah diinputkan. III.4.2. Flowchart atau algoritmaFlowchart pada program ini dimulai dengan membuka aplikasi program, jika pengguna menjalankan program tersebut maka program berjalan sesuai intruksinya. Gambar Flowchart tampilan utama seperti yang ditunjukkan pada gambar III.3. dibawah ini :

Pada gambar III.3. diatas dapat dilihat cara kerja sistem ini dibagi kedalam beberapa tahapan proses supaya dapat dilihat dengan jelas. Tahapan proses dibagi menjadi empat sebelum tercipta sebuah sistem yang bisa digunakan untuk bisa mengirim pesan via SMS dan pesan tersebut terenkripsi. Tahapan tersebutantara lain enkripsi pesan, pengiriman pesan, dekripsi pesan yang sudah diterima, dan yang terakhir adalah proses penyimpanan pesan kedalam inbox aplikasi.III.5. Algoritma dari programSetelah perancangan aplikasi telah dirancang dan flowchart alur proses perancangan telah disusun oleh penulis, maka selanjutnya adalah implementasi algoritma pada program yang dirancang. Implementasi tersebut merupakan algoritma metode Blowfish yang diimplentasikan kedalam bahasa pemrograman android, adapun implementasi algoritma metode Blowfish merupakan blok chiper 64-bit dengan panjang kunci variabel. Algoritma ini terdiri dari dua bagian yaitu key expansion atau perluasan kunci dan enkripsi data. Key expansion berfungsi merubah kunci (minimum 32-bit, maksimum 448-bit) menjadi beberapa array subkunci atau subkey dengan total 4168 byte. Sedangkan enkripsi data terdiri dari iterasi fungsi sederhana (Feistel Network) sebanyak 16 kali putaran. Setiap putaran terdiri dari permutasi kunci dependent, substitusi kunci, dan data dependent. Semua operasi adalah penambahan (addition) dan XOR pada variabel 32-bit. Operasi tambahan lainnya hanyalah empat penelusuran tabel (table lookup) array berindeks untuk setiap putaran. Untuk alur algoritma Blowfish dijelaskan sebagai berikut:

1. Bentuk inisial array P sebanyak 18 buah (P1,P2,.P18) masing-masing bernilai 32-bit. Array P terdiri dari delapan belas kunci 32-bit sukunci: P1,P2,.,P182. Bentuk S-box sebanyak 4 buah masing-masing bernilai 32-bit yang memiliki masukan 256. Empat 32-bit S-box masing-masing mempunyai 256 entri :a. S1,0,S1,1,..,S1,255

b. S2,0,S2,1,..,S2,255c. S3,0,S3,1,..,S3,255d. S4,0,S4,1,..,S4,2553. Plainteks yang akan dienkripsi diasumsikan sebagai masukan, Plainteks tersebut diambil sebanyak 64-bit, dan apabila kurang dari 64-bit maka kita tambahkan bitnya, supaya dalam operasi nanti sesuai dengan datanya.4. Hasil pengambilan tadi dibagi 2, 32-bit pertama disebut XL, 32-bit yang kedua disebut XR.5. Selanjutnya lakukan operasi XL = XL xor Pi dan XR = F(XL) xor XR.6. Hasil dari operasi di atas ditukar XL menjadi XR dan XR menjadi XL.7. Lakukan sebanyak 16 kali, perulangan yang ke-16 lakukan lagi proses penukaran XL dan XR.8. Pada proses ke-17 lakukan operasi untuk XR = XR xor P17 dan XL = XL xor P18.9. Proses terakhir satukan kembali XL dan XR sehingga menjadi 64-bit kembali.Blowfish menggunakan jaringan Feistel yang terdiri dari 16 putaran. Skema jaringan Fesitel dapat dilihat pada gambar III.4.

Algoritma Blowish Memiliki keunikan dalam hal proses dekripsi, yaitu proses dekripsi dilakukan dengan urutan yang sama persis dengan proses enkripsi, hanya saja pada proses dekripsi P1, P2,.............,P18 digunakan dalam urutan terbalik. Dalam algoritma Blowfish juga terdapat fungsi F. Berikut ini gambar III.6. mengenai fungsi F.

Sebelumnya telah dijelaskan bahwa array P terdiri dari delapan belas subkunci. Subkunci dihitung menggunakan algoritma Blowfish, metodenya adalah sebagai berikut:1. Pertama inialisasi P array dan kemudian empat S-Box secara berurutan dengan string yang tetap. String ini terbagi atas digit hexadecimal dari Pi.

2. XOR P1 dengan 32-bit pertama kunci, XOR P2 dengan 32-bit kedua dari kunci dan seterusnya untuk setiap bit dari kunci (sampai p18). Ulangi terhadap bit kunci sampai seluruh P-array di XOR dengan bit kunci.3. Enkrip semua String nol dengan algoritma Blowfish dengan menggunakan sub kunci.4. Ganti P1 dan P2 dengan keluaran dari String nol menggunakan sub kunci.5. Enkrip keluaran P1 dan P2 dengan algoritma Blowfish dengan subkunci yang sudah di modifikasi.

6. Ganti P3 dan P4 dengan keluaran P1 dan P2 yang sudah di enkrip.7. Lanjutkan proses tersebut, ganti seluruh elemen P-array, kemudian seluruh keempat S-Box berurutan, dengan keluaran yang berubah secara continue dari algoritma Blowfish.Secara keseluruhan terdapat 521 iterasi atau putaran yang dibutuhkan untuk membangkitkanseluruh upa-kunci yang dibutuhkan. Aplikasi kemudian dapat menyimpan upa-kunciyang telah dihasilkan. Proses pembangkitan kunci ini tidak perlu selalu dilakukan setiap saat.

III.5.1. Keamanan Blowfish

Sampai saat ini algoritma Blowfish belum ditemukan kelemahan yang berarti hanya adanya weak key dimana dua entri S-Box mempunyai nilai yang sama. Belum ada cara untuk mengecek weak key sebelum melakukan key expansion, tetapi hasil ini tidak berpengaruh kepada hasil enkripsi.

Hasil enkripsi dengan algoritma Blowfish sangat tidak mungkin dan tidak praktis untuk di terjemahkan tanpa bantuan kunci. Sampai kini belum ada Cryptoanalyst yang dapat membongkar pesan tanpa kunci yang dienkripsi dengan memakai bantuan algortima Blowfish. Agar aman dari pembongkaran pesan maka dalam algoritmanya harus menggunakan 16 putaran agar pesan tersebut tidak dapat dibongkar. Algoritma Blowfish pun dapat digabungkan dengan algoritma algoritma enkripsi yang lain dalam pengenkripsian sebuah pesan untuk lebih menjamin isi dari pesan tersebut. Sehingga algoritma Blowfish cukup aman jika ingin digunakan untuk mengenkripsi data yang ingin diamankan.III.5.2. Enkripsi Blowfish

Blowfish membutuhkan 64-bit blok-blok plaintext sebagai masukannya dan menghasilkan 64 bit chipertext. Ukuran kunci untuk Blowfish dapat dipilih dalam range 32 bit sampai 448 bit yang mana semakin besar ukurannya maka semakin kuat keamananya. Blok masukan dipecah dalam paro L0 dan R0 dimana tiap tiap paro tersebut mengandung 32 bit. Blowfish dapat secara sederhananya digambarkan dengan algoritma berikut :j=1

loop from j to 16

Rj = Lj-1 XoR Pj

Lj = F (Rj) XoR Rj-1

End loop

L17 = R16 XoR P18

R17 = L16 XoR P17

III.5.3. Dekripsi Blowfish

Dekripsi untuk Blowfish bersifat maju kedepan. Ironisnya, dekripsi bekerja dalam arah algoritma yang sama seperti halnya dengan enkripsi, namun sebagai masukannya adalah chipertext. Walaupun begitu,seperti yang diharapkan, sub kunci yang digunakan dalam urutan terbalik. Sehingga algoritma dekripsi Blowfish sebagai berikut:j = 1

loop from j to 16

Rj = Lj-1 XoR P19-j

Lj = F (Rj) XoR Rj-1

end loop

L17 = R16 XoR P1

R17 = L16 XoR P2

III.5.4. Penggunaan Blowfish

Blowfish adalah salah satu algoritma chiper blok yang tercepat dan digunakan secara luas di dunia, kecuali ketika pergantian kunci. Setiap kunci baru memerlukan pemrosesan awal yang sebanding dengan mengenkripsikan teks dengan ukuran sekitar 4 kilobyte.

Pemrosesan awal ini sangat lambat dibandingkan dengan algoritma chiper blok lainnya. Hal ini menyebabkan Blowfish tidak mungkin digunakan dalam beberapa aplikasi, tetapi tidak menimbulkan masalah dalam banyak aplikasi lainnya. Pemrosesan awal yang lama pada Blowfish digunakan sebagai ide untuk metode password hashing yang digunakan pada OpenBSD. Metode password hashing ini menggunakan algoritma yang diturunkan dari algoritma Blowfish yang menggunakan penjadwalan kunci yang lambat. Algoritma ini digunakan dengan pertimbangan bahwa usaha komputasi ekstra yang harus dilakukan dapat memberikan proteksi lebih terhadap serangan password berbasiskan kamus (dictionary attacks).

Dalam beberapa implementasi, Blowfish memerlukan memori yang relatif besar, yaitu sekitar 4 kilobyte. Hal ini tidak menjadi masalah bahkan untuk komputer dekstop dan laptop yang sudah berumur tua. Tetapi hal ini juga membuat implementasi Blowfish pada embedded sistem terkecil (seperti pada smartcard pada awal kemunculannya) tidak mungkin untuk dilakukan.

Send SMS

Aplikasi SMS Enkripsi dan Deskripsi dengan Metode Blowfish

No Tujuan

Pesan

Key

About Me

SMS

Info Blowfish

Image Background

Gambar III.3. Flowchart Aplikasi SMS Enkripsi Pada Andorid

Gambar III.5. Fungsi F (Feistel)

Gambar III.5. Diagram Proses Blowfish

Gambar III.2. Form Aplikasi SMS Enkripsi

Gambar III.1. Form Utama SMS Enkripsi Pada Android

20

_1464022308.vsdStart

Input Nomor Tujuan, Pesan, dan Kunci

Enkripsi Pesan

Kirim Pesan

Alert Pesan Terkirim

Alert SMS Masuk Pada Ponsel Penerima

Masukkan Kunci Dekripsi Untuk Membaca Pesan

Pesan Disimpan di Inbox Aplikasi

End