APLIKASI ENKRIPSI DAN DEKRIPSI SMS
BERBASIS ANDROID
MENGGUNAKAN ALGORITMA RC6
NASKAH PUBLIKASI
diajukan oleh
Alfian Chandra Alviana
14.21.0759
kepada
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM YOGYAKARTA
YOGYAKARTA
2016
NASKAH PUBLIKASI
APLIKASI ENKRIPSI DAN DEKRIPSI SMS DENGAN MENGGUNAKAN ALGORITMA RC6
BERBASIS ANDROID
yang dipersiapkan dan disusun oleh
Alfian Chandra Alviana
14.21.0759
Dosen Pembimbing
Rizqi Sukma Kharisma, M.Kom
NIK. 190302215
Tanggal, 06 Juni 2016
Ketua Program Studi
Teknik Informatika
Sudarmawan, MT
NIK. 190302035
1
APLIKASI ENKRIPSI DAN DEKRIPSI SMS BERBASIS ANDROID MENGGUNAKAN ALGORITMA RC6
Alfian Chandra Alviana
1), Rizqi Sukma Kharisma
2),
1,2)
Teknik Informatika STMIK AMIKOM Yogyakarta
Jl Ringroad Utara, Condongcatur, Depok, Sleman, Yogyakarta Indonesia 55283 Email : Alfian0759@students.amikom.ac.id1), sukma@amikom.ac.id2)
Abstract - This thesis built on a software that can be useful to improve the security of the message happens to communication via SMS. SMS is a service provided by mobile phone to its users to communicate via short message delivery with a cheap cost. SMS is extremely popular, besides the cost is cheap, because messages sent can be received by recipients with good and fast. messages sent through SMS media not directly to the destination, but rather through the SMS network. On the network security, the SMS messages are extremely threatened to be read by people who are not responsible. Software built improved security messages by encryption with a message that was sent.
The software is built using the RC6 algorithm to encrypt SMS so that security can be improved. RC6 algorithm is an algorithm with parameters that can work on a variety of key length. To the security aspects, giving priority to the principle of the RC6 algorithm is iterated cipher.
The author has built applications that aim to improve the security of the message using encryption, device built using the RC6 Algorithm-based method of Android. The application is expected to protect the contents of short messages that are sent by the sender to the destination number and protect messages from being read by people who are not responsible.
Keyword : SMS, Cryptography, Android, RC6,
Encryption, Decryption
1. Pendahuluan 1.1 Latar Belakang
Aplikasi Android dibangun sebagai kombinasi beragam komponen yang bisa dipanggil satu per satu. Misalnya, satu aktivitas individual menyediakan satu layar untuk antarmuka pengguna, dan layananyang secara terpisah melakukan tugas di latar belakang.Dari satu komponen dapat memulai komponen lainnya menggunakan intent. [1]
Banyaknya fitur-fitur yang disediakan Android seperti pemutaran video, push mail,mengakses layanan internet dan sebagainya. Akan tetapi, fitur-fitur yang digunakan seperti ponsel biasa lainnya yaitu seperti
Short Message Service (SMS)merupakan layanan yang
banyak diaplikasikan pada sistem komunikasi tanpa kabel (nirkabel), bahwa pengguna dapat mengirim dan menerima pesan singkat kepada pengguna ponsel lain.
Layanan SMS yang menggunakan aplikasi SMS
bawaan ponsel masih banyak digunakan oleh setiap orang, dan bukan merupakan jalur yang aman dalam pertukaran informasi. Pesan yang dikirim menggunakan aplikasi SMS bawaan ponsel masih berupa teks terbuka yang belum terproteksi, selain itu Adanya kemungkinan handphone digunakan oleh pihak lain baik sengaja dipinjamkan kepada pihak lain maupun tidak disengaja handphone hilang atau diambil oleh pihak lain sehingga pihak lain tersebut dapat dengan mudah dan bebas untuk membuka data penting kita.Oleh karena hal itulah maka dibutuhkannyakeamanan data agar data dalam handphone dapataman dan kerahasiaan data akan tetap terjamin.
Berdasarkan latar belakang yang telah dikemukakan, maka permasalahan yang dapat dirumuskan adalah “bagaimana membangun Aplikasi Enkripsi dan Dekripsi SMS Berbasis Android Menggunakan Algoritma RC6”? 1.2 Tinjauan Pustaka
Pada naskah publikasi milik Eli Pujastuti dari STMIK Amikom Yogyakarta, meneliti tentang Enkripsi SMS menggunakan advanced encryption standard pada j2me dengan bantuan bouncy castle cryptography api. Setelah menganalisa Sistem enkripsi SMS yang diterapkan menggunakan bahasa pemrograman J2ME dan metode
advance encryption Standard (AES) dengan bantuan Bouncy Castle Cryptography API(Application Programming Interface).Aplikasi yang di buat mampu
dalam menampilkan menu utama, modifikasi kontak, daftar kontak, mampu menerima pesan dan menyimpan pesan kedalam inbox, mengidentifikasi pengirim berdasarkan nomor pengirim, mampu mengenkripsi dan dekripsi pesan yang di kirim maupun di terima.[2] Pada naskah publikasi Rudy Hendrayanto dan A. Ramadona Nilawati dari Universitas Gunadarma, meneliti tentang Program aplikasi Enkripsi dan Dekripsi SMS ponsel berbasis Android dengan algoritma DES. Dalam penelitian ini aplikasi yang di terapkan menggunakan bahasa pemerograman J2ME dan menggunaka algoritma DES (Data Encryption Standard). Aplikasi ini mampu menulis pesan, menampilkan laporan pengiriman, menampilkan laporan pesan masuk, dan menampilkan kotak masuk pesan.[3]
Pada naskah publikasi milik Tri Puji Rahayu, Yakub, Irwan Limiady dari STMIK Dharma Putra Tangerang, meneliti tentang Aplikasi Aplikasi Enkripsi Pesan Teks (SMS) Pada Perangkat HandphoneDengan Algoritma Caesar Cipher. setelah manganalisa sistem enkripsi dan
2 dekripsi sms ini memanfaatkan MIDP (Mobile Information Device Profile) dari J2ME.Aplikasi ini mampu mengenkripsi pesan, dan mendekripsi pesan. Untukfungsi pengambilan nomor tujuan dari kontak masih belum tersedia di aplikasi tersebut. Dan user harus mengcopy – paste pesan yang akan dienkripsi ataupun didekripsi ke aplikasi sebelum mengirim ataupun membaca pesan. [4]
1.3 Landasan Teori
1.3.1 Pengertian Algoritma RC6
Algoritma enkripsi RC6 adalah suatu algoritma yang menggunakan kunci private, mampu bekerja dengan panjang kunci yang beragam dan mengunakan prinsip intered chiper. Algoritma RC6 merupakan salah satu kandidat Advanced Encryption Standard (AES) yang diajukan oleh RSA Security Laboratories kepada NIST. Dirancang oleh Ronald L Rivest, M.J.B. Robshaw, R. Sidney dan Y.L. Yin, algoritma ini merupakan pengembangan dari algoritma sebelumnya yaitu RC5 dan telah memenuhi semua kriteria yang diajukan oleh NIST. RC6 adalah algoritma yang menggunakan ukuran blok hingga 128 bit, dengan ukuran kunci yang diguankan bervariasi antara 128, 192 dan 256 bit. [5]
Key Expansion Algorithm
Algoritma untuk membangkitkan kunci internal [5]: S[0] = Pw for i = 1 to (2r + 3) do S[i] = S[i – 1] + Qw i = 0 j = 0 A = 0 B = 0
for 3 × max(c, (2r + 4)) times do S[i] = (S[i] + A + B) <<< 3 A = S[i] L[i] = (L[j] + A + B) <<< 3 B = L[i] Algoritma Enkripsi RC6 [5] B = B + S[0] D = D + S[1] for i = 1 to r do p = (B × (2B + 1)) <<< 5 q = (D × (2D + 1)) <<< 5 A = ((Ap) <<< q) + S[2i] C = ((Cq) <<< p) + S[2i+1] (A,B,C,D) = (B,C,D,A) A = A + S[2r + 2] C = C + S[2r + 3] Algoritma Dekripsi RC6 [5] C = C – S[2r + 3] A = A – S[2r + 2] for i = r downto 1 do (A,B,C,D) = (D,A,B,C) p = (D × (2D + 1)) <<< 5 q = (B × (2B + 1)) <<< 5 C = ((C – S[2i + 1]) >>> q) p A = ((A – S[2i]) >>> p) q D = D – S[1] B = B – S[0] 1.3.2 Pengertian Java
Pemrograman Java dikompilasi, dan akan dikonvrsi ke bentuk bytecode, yang merupakan bahasa mesin yang portable. Selanjutnya, bytecode dijalankan di Java Virtual Machine (atau Java VM atau JVM).[6]
1.3.3 Pengertian Android
Menurut Nazruddin Safaat H (2015:1)Android adalah sebuah sistem operasi untuk perangkat mobile berbasis Linux yang mencangkup sistem operasi, middleware dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Awalnya Google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat piranti lunak untuk ponsel / smartphone. Kemudian untuk mengembangkan Android, dibentuklah Open Handeset
Alliance, konsursium dari 34 perushaan peranti keras,
peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. [7]
2. Pembahasan
2.1 Analisis Kebutuhan Sistem 2.1.2 Analisis Kebutuhan Fungsional
Analisis kebutuhan fungsional adalah menganalisa jenis kebutuhan yang berisi proses-proses apa saja yang nantinya akan dilakukan oleh sistem. Dari hasil analisa yang telah dilakukan maka terdapat fitur-fitur sebagai berikut :
1. Aplikasi harus dapat menampilkan form menu utama. Pada form menu utama pengguna dapat memilih menu tulis pesan, menu pesan masuk, menu bantuan, menu tentang aplikasi.
2. Aplikasi dapat mengirim pesan. 3. Aplikasi dapat menerima pesan.
4. Aplikasi dapat menampilkan pesan asli yang telah dienkripsi.
5. Aplikasi dapat menampilkan menu help untuk membantu pengguna dalam mengoprasikan aplikasi. 6. Aplikasi dapat menampilkan menu about yang berisi
tentang informasi aplikasi.
2.3 Analisis Kebutuhan Nonfungsional
Analisis kebutuhan non-fungsional dilakukan untuk mengetahui spesifikasi kebutuhan sistem yang dilakukan dalam perancangan ini :
1. Windows 8.1 Pro 64bit. Sebagai sistem operasi yang akan digunakan untuk pengembangan aplikasi android.
2. Android SDK. Sebagai Emulator Perangkat Android
3. Android Studio. Sebagai editor pengembangan aplikasi android
3 4. Java. Sebagai bahasa pemerograman yang akan
digunakan
2.2 Perancangan Sistem
Perancangan sistem merupakan bagian penting dalam pembuatan sistem aplikasi. Untuk memperjelas gambaran aplikasi penulis membuat UML sebagai panduan agar terciptanya aplikasi yang terstruktur. 2.2.1 Perancangan Usecase diagram
Usecase RC6SMS menceritakan tentang user yang menggunakan aplikasi ini secara opsional bisa memilih untuk mengakses menu sesuai dengan yang diinginkan.
Actor Akses Kontak Mengirim SMS Pesan Masuk Pesan Terkirim Informasi Tentang Enkripsi SMS Dekripsi SMS << include >> << include >> << include >> Baca SMS << Extend >> Bantuan << include >> << include >>
Gambar 1. Usecase Diagram 2.2.2 Perancangan Class Diagram
Berikut rancangan object yang berupa class diagram.
Menu Utama.java - Tulis_Pesan : Button - Pesan_Masuk : Button - Pesan_Terkirim : Button - Informasi : Button
+void onClick mulai TulisPesan(view.v) +void onClick mulai PesanMasuk(view.v) +void onClick mulai Informasi(view.v) +void onClick mulai Pesanterkirim(view.v) Tulis_Pesan.java - No_Tujuan : String - Kontak : Button - Kunci : String - Pesan : String - Enkripsi : Button - Hasil : String - Kirim : Button +input No Tujuan() +onClick button Kontak() +input text Kunci() +input text Pesan() +onClick button Enkripsi() +text Hasil Enkripsi() +button Kirim() Pesan_Masuk.java - No Pengirim : String - Pesan : String - Kunci : String - Dekripsi : Button - Hasil : String +tampil No Pengirim() +tampil Pesan Enkripsi() +input text Kunci() +onClick button Dekripsi() +onClick button Hapus() +Tampil text Pesan Asli()
Bantuan.java - Detail Bantuan +String Bantuan(view.v) Tentang.java - Detail Tentang +String Tentang(view.v) Pesan_Keluar.java - No Tujuan : String - kunci : String - Ciphertext : String - Dekripsi : Button - Hasil +tampil No Pengirim() +input text Kunci() +tampil Pesan Enkripsi() +onClick button Dekripsi() +Tampil text Pesan Asli() Informasi.java
- Bantuan : Button - Tentang : Button
+void onClick Mulai Bantuan(view v) +void onClick Mulai Bantuan(view v)
Gambar 2. Class Diagram 2.2.3 Perancangan Activity Diagram
Perancangan activity diagram RC6SMS dimulai ketika pengguna membuka aplikasi, tampilan utama merupakan menu utama yang akan menampilkan button tulis pesan, pesan masuk, pesan keluar dan informasi. Setelah menekan tombol informasi akan menaplikan menu yang didalamnya terdapat tombol bantuan dan tentang.
2.2.3.1 Mengirim pesan Pengirim Aplikasi Membuka Aplikasi Tulis Pesan Input No Tujuan/Kontak Input Kunci Menulis Pesan Menekan Tombol Enkripsi
Menekan Tombol Kirim
Tampil Menu SMS
Menampilkan Form Tulis Pesan
Mengenkripsi Pesan
Mengirim Pesan
Gambar 3. Activity mengirim SMS 2.2.3.2 Activity Pesan Masuk
Pengirim Aplikasi
Membuka Aplikasi
Pesan Masuk
Memilih Pesan
Tampil Menu SMS
Tampil Pesan Masuk
Menampilkan Pesan
Menekan Tombol Dekripsi
Mendekripsi Pesan
Pesan Tidak dapat terbaca Membaca Pesan Benar
Salah
Input Kunci
Gambar 4. Activity pesan masuk 2.2.3.3 Activity Pesan Keluar
Pengirim Aplikasi
Membuka Aplikasi
Pesan Keluar
Memilih Pesan
Tampil Menu SMS
Tampil Pesan Keluar
Menampilkan Pesan
Menekan Tombol Dekripsi
Mendekripsi Pesan
Pesan Tidak dapat terbaca Membaca Pesan Benar
Salah Input Kunci
Gambar 5. Activity pesan keluar 2.2.3.4 Activity Bantuan
4
Pengguna Aplikasi
Membuka Aplikasi
Tampil Menu utama
Tampil Halaman Help Informasi
Menekan Tombol Help
Tampil Menu Informasi
Gambar 6. Activity Bantuan 2.2.3.5 Activity Tentang
Pengguna Aplikasi
Membuka Aplikasi
Tampil Menu utama
Tampil Halaman Tentang Informasi
Menekan Tombol Tentang
Tampil Menu Informasi
Gambar 7. Activity Tentang 2.2.4 Perancangan Sequence Diagram
Berikut merupakan Sequence diagram dari aplikasi RC6SMS:
2.2.4.1 Sequence diagram Tulis Pesan
Pengirim
Pengguna Menu Utama Tulis Pesan Enkripsi KirimKirim 1.Start 1.1 Menu 2.1 Tulis Pesan 1.1.1 Kontak 1.1.2 Request Kontak 2. Input Kontak 2.1.1 kunci 2.1.2Request Kunci 3. Input Kunci 3.1 Enkripsi 3.1.2 Hasil Enkripsi 3.1.3 Mengirim Pesan
Gambar 8. Sequence diagram tulis pesan 2.2.4.2 Sequence diagram Pesan Masuk
Pengirim
Pengguna Menu Utama Inbox Isi Pesan Baca Sms
1. Start 1.1 Menu Utama 1.1.1 Pilih Pesan 1.1.1.1 Isi Pesan 1.1.1.1.1 Kunci 2. Input Kunci 2.1 Dekripsi 2.2 Hasil Dekripsi 1.1.1.1.2 Request Kunci
Gambar 10. Sequence diagram pesan masuk 2.2.4.3 Sequence Diagram Pesan Keluar
Pengirim
Pengguna Menu Utama Pesan Terkirim Isi Pesan Baca SMS
1. Start 1.1 Menu Utama 1.1.1 Pilih Pesan 1.1.1.1 Isi Pesan 1.1.1.1.1 Kunci 2. Input Kunci 2.1 Dekripsi 2.2 Hasil Dekripsi 1.1.1.1.2 Request Kunci
Gambar 11. Sequence diagram Pesan Keluar 2.2.4.4 Sequence Diagram Bantuan
Pengguna Menu Utama Informasi
1. Start
1.1 Pilih Informasi
Bantuan
1.1.1 Pilih Bantuan
1.1.1.1 Tampil Bantuan
Gambar 12. Sequence Diagram Bantuan 2.2.4.5 Sequence Diagram Tentang
Pengguna Menu Utama Informasi
1. Start
1.1 Pilih Informasi
Tentang
1.1.1 Pilih Tentang
1.1.1.1 Tampil Bantuan
Gambar 13. Sequence diagram Tentang 2.3 Implementasi
5 2.3.1 Implementasi Tampilan
Pada tampilan menu utama akan ditampilkan 4 tombol utama yaitu tulis pesan, pesan masuk, pesan keluar dan informasi. Berikut tampilan menu utama:
Gambar 14. Menu Utama
Berikut tampilan tulis pesan:
Gambar 15. Tulis Pesan Berikut tampilan Inbox dan Outbox
Gambar 16. Inbox dan Outbox
Berikut tampilan Baca Pesan
Gambar 17. Baca Pesan Berikut tampilan Menu Informasi
Gambar 18. Menu informasi Berikut tampilan Bantuan
Gambar 18. Tampilan Bantuan
6
Gambar 19. Tampilan Tentang
3. Penutup 3.1 Kesimpulan
Setelah tahapan-tahapan penelitian dilakukan kesimpulan yang dapat diambil dalam penelitian ini adalah:
1. Didalam tahapan pembuatan aplikasi RC6SMS dilakukan dengan :
a. Perancangan : pada tahapan ini penulis mengambil kesimpulan bahwa aplikasi ini telah memenuhi studi kelayakan baik secara teknis maupun secara teknologi.
b.Analisis : pada tahapan ini penulis menyimpulkan bahwa analisis kebutuhan antara lain analisis kebutuhan fungsional dan nonfungsional, Yang mana kebutuhan tersebut sudah terpenuhi.
c. Desain : pada tahapan ini proses desain sistem menggunakan beberapa diagram UML yaitu
Usecase Diagram, Activity Diagram, Sequence Diagram dan Class Diagram.
d.Implementasi : pada tahapan ini penulis menyimpulkan implementasi Algoritma RC6 dan implementasi interface aplikasi menggunakan android 5.0.1 (Lolipop) berjalan dengan baik.
e. Pengujian : Proses pengujian aplikasi ini menggunakan Whitebox dan Blackbox testing. Dimana proses pengujian tersebut
mampu bekerja pada android minimal 2.2 (Froyo) hingga yang terbaru saat ini yaitu 6.0 (Marsmellow).
f. Pemeliharaan Sistem : proses pemeliharaan sistem penulis mempublish aplikasi pada Google Play Store yang diharapkan dapat membantu penulis menemukan kekurangan dan kesalahan pada aplikasi yang terjadi dari pengguna aplikasi RC6SMS.
2. Dari kesimpulan yang penulis dapatkan, aplikasi RC6SMS berfungsi dengan baik serta mampu mengirim pesan yang terenkripsi, menerima pesan, dan membaca pesan yang terenkripsi.
3.2 Saran
1. Saat ini bagi perangkat android dengan fitur dual SIM Card, maka aplikasi akan mendeteksi penggunaan SIM Card pada slot 1 (slot utama).
Diharapkan pada pengembangan berikutnya, proses pengirimannya dapat memilih SIM card untuk mengirim pesan.
2. Algoritma enkripsi yang diterapkan sebaiknya dapat menangani panjang karakter yang memiliki panjang 160 karakter untuk melakukan enkripsi SMS. Pada dasarnya panjang karakter pada SMS adalah 160 karakter oleh karena itu agar SMS yang dikirimkan tidak mengalami penambahan panjang sebaiknya digunakan suatu algoritma enkripsi yang mampu menangani karakter sepanjang 160 karakter.
3. Aplikasi ini masih sederhana, disarankan menambahkan fitur kirim kunci otomatis agar mempermudah bagi penerima pesan.
Daftar Pustaka
[1] D. Android, “Google.inc,” Developer Android, 24 10 2015.[Online].Available:https://developer.android.co m/intl/in/guide/index.html. [Diakses 24 10 2015]. [2] E. Pujastuti, 2011. “ENKRIPSI SMS
MENGGUNAKAN ADVANCED ENCRYPTION STANDARD,” Naskah Publikasi, pp. 1-10.
[3] A. R. N. Rudy Hendrayanto, 2012 “APLIKASI ENKRIPSI DAN DEKRIPSI SMS BERBASIS ANDROID DENGAN ALGORITMA DES,”
PROSIDING KOMMIT 2012, vol. 7, pp. 631-633. [4] Y. I. L. Tri Puji Rahayu, 2012 “APLIKASI
ENKRIPSI PESAN TEKS (SMS) PADA
PERANGKAT HANDPHONE DENGAN
ALGORITMA CAESAR CIPHER,” SENTIKA 2012, Vol. %1 dari %22089-9815, pp. 143-149.
[5] D. Ariyus, 2008.PENGANTAR ILMU KRIPTOGRAFI, YOGYAKARTA: C.V ANDI OFFSET.
[6] D. D. Prasetyo, 2007. 150 RAHASIA PEMEROGRAMAN JAVA, Jakarta: PT Elex Media Komputindo.
[7] N. S. H. , 2015. PEMROGRAMAN APLIKASI MOBILE SMARTPHONE DAN TABLET PC BERBASIS ANDROID, Bandung: Informatika Bandung.
Biodata Penulis
Alfian Chandra Alviana, memperoleh gelar Ahli Madya (A.Md) pada jurusan D3 Teknik Informatika AMIKOM ASM Mataram lulus pada tahun 2014 dan memperoleh gelar Sarjana Komputer (S.Kom) pada jurusan S1-Teknik Informatika STMIK AMIKOM Yogyakarta. Lulus pada tahu 2016.
Rizqi Sukma Kharisma, memperoleh gelar S1 pada STMIK AMIKOM Yogyakarta pada tahun 2009 dan memperoleh gelar S2 pada STMIK AMIKOM Yogyakarta pada tahun 2012. Saat ini menjadi dosen di STMIK AMIKOM Yogyakarta.