ANALISIS DAN PERANCANGAN APLIKASI ENKRIPSI SMS DENGAN KOMBINASI METODE SUBSTITUSI DAN AES BERBASIS ANDROID DI KALANGAN MAHASISWA STMIK “AMIKOM” YOGYAKARTA
NASKAH PUBLIKASI
diajukan oleh Mimbar Sutisna Wangsadiria 09.11.3134
kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA YOGYAKARTA 2013
ANALYSIS AND DESIGN SMS ENCRYPTION APPLICATION IN SUBSTITUTION AND AES COMBINATION METHOD BASED IN ANDROID AMONG STMIK “AMIKOM” YOGYAKARTA ANALISIS DAN PERANCANGAN APLIKASI ENKRIPSI SMS DENGAN KOMBINASI METODE SUBSTITUSI DAN AES BERBASIS ANDROID DI KALANGAN MAHASISWA STMIK “AMIKOM” YOGYAKARTA Mimbar Sutisna Wangsadiria Ema Utami Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT Last few years occurred rapid development in technology, one of which is the development of telecommunications technology that has helped us reducing the obstacles in communication limited by distance and time. These developments can we look along in wide range of smart phone developments with sophisticated features. One of the provided features is Short Message Service (SMS). This feature is veru familiar among users of smart phones, using SMS, users can communicate via text messages. In this final project, a software built on the smart phone that are used to enhance the security of the message that will be done through SMS. The software intended to enhance the security of message contents by encrypting sent messages and decrypt received messages. This application can be used to transmit a confidential information securely to others through SMS. This software was built by using a combination of classical cryptographic algorithms and modern cryptographic algorithms to encrypt SMS. The purpose of using this multiple methods is to obtain an reliably algorithm and can be implemented using Android technology. Keywords : SMS, encryption, decryption, substitution technique, AES, android.
1.
Pendahuluan Beberapa tahun terakhir terjadi perkembangan yang pesat pada bidang
teknologi, khususnya smartphone yang dapat digunakan untuk pelbagai macam kegiatan seperti data transferring, multimedia, multiplayer games, browsing, video streaming dan lain – lain. Perkembangan smartphone yang sedang populer saat ini adalah smartphone yang berbasis Android. Perkembangan smartphone berbasis Android ini sangat menakjubkan, dikarenakan Android merupakan Operating Systen Mobile yang open platform. Pelbagai perangkat lunak telah dikembangkan untuk memudahkan kita dalam membangun suatu aplikasi berbasis Android, diantaranya yang terkenal adalah Eclipse. Salah satu fitur penting yang tidak dapat dilupakan dari smartphone adalah fitur untuk melakukan pengiriman data berupa pesan singkat melalui Short Message Service (SMS).Namun
seiring
denganperkembangan
teknologi
yang
semakin
canggih
menimbulkan pertanyaan mengenai keamanan informasi yang dikirimkan melalui SMS. Setelah melalui pelbagai pertimbangan akhirnya penulis menemukan solusi untuk mengembangkan suatu aplikasi pengamanan SMS dengan menggunakan metode gabungan dari algoritma kriptografi klasik dan algoritma kriptografi modern untuk mengenkripsi data yang berjalan pada sistem operasi Android sehingga para pengguna smartphone berbasis Android dapat mengirim pesan dengan lebih aman.
2.
Landasan Teori
2.1
Short Message Service (SMS) Short Message Service (SMS) atau sering disebut dengan layanan pesan
singkat merupakan sebuah layanan pesan singkat yang disediakan oleh Global System of Mobile (GSM) sebagai layanan standar yang digunakan untuk mengirim dan menerima 1
pesan dalam bentuk teks yang dikirim melalui telepon seluler . 2.2
Android Android merupakan sebuah sistem operasi perangkat mobile berbasisi Linux
yang mencakup sistem operasi, middleware, dan aplikasi lainnya. Awalnya pada bulan Juni 2005 Google Inc. membeli Android Inc. yang merupakan pendatang baru dalam pembuatan piranti lunak untuk telepon seluler. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan piranti keras, piranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, 2
Qualcomm, T-Mobile, dan Nvidia .
1
Zulfadli. Aplikasi Supply Chain Management Berbasis SMS. FMIPA UGM, Yogyakarta, 2005. Nazruddin Safaat H, Pemrograman Aplikasi Mobile Smartphone Dan Tablet PC Berbasis Android, Bandung : Informatika, 2012, hal. 1. 2
2.3
SQLite Android memiliki fasilitas untuk membuat database yang dikenal dengan
SQLite. SQLite adalah salah satu software yang embedded yang sangat popular, kombinasi SQL interface dan penggunaan memory yang sangat sedikit dengan kecepatan yang sangat cepat dan ringan dalam hal sumber daya. SQLite tidak memiliki server, namun bentuknya adalah library yang akan dipanggil suatu saat program 3
dijalankan . 2.4
Kriptografi Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata
kriptografi dibagi menjadi dua, yaitu kripto dan graphia. Kripto berarti secret (rahasia) dab graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat menuju tempat yang lain. Dalam perkembangannya, kriptografi juga digunakan untuk 4
mengidentifikasi pengiriman pesan dengan sidik jari digital (fingerprint) . 2.5
Data Flow Diagram (DFD) Pemodelan proses adalah cara formal untuk menggambarkan bagaimana suatu
proses beroperasi. Salah satu cara yang popular untuk merepresentasikan proses model 5
adalah Data Flow Diagram (DFD) . DFD adalah suatu grafik yang menjelaskan sebuah sistem dengan menggunakan bentuk – bentuk atau symbol – symbol untuk 6
menggambarkan aliran data dari proses – proses yang saling berhubungan .
3.
Analisis
3.1
Analisis Sistem Analisis sistem adalah teknik pemecahan masalah yang menguraikan bagian -
bagian komponen dengan mempelajari seberapa bagus komponen - komponen tersebut 7
bekerja dan berinteraksi untuk mencapai tujuan mereka . Analisis merupakan tahapan awal dan sangat penting, karena kesalahan pada tahap ini akan menyebabkan kesalahan pada tahap selanjutnya. Analisis merupakan fondasi untuk menentukan sukses atau tidaknya suatu sistem informasi yang akan dibuat. dalam perancangan sistem nantinya hal yang sangat penting adalah dengan mengetahui masalah yang timbul dan kebutuhan yang yang dibutuhkan.
3
Feri Djuandi, Menggunakan Database Di Android, 2011, hal. 1. Dony Ariyus, Computer Security, Yogyakarta : Andi, 2005, hal. 77. 5 Hanif Al Fatta, Analisis & Perancangan Sistem Informasi, Yogyakarta : Andi, 2007, hal. 105. 6 Elmasri & Navathe, 1994. 7 Hanif Al Fatta, Analisis & Perancangan Sistem Informasi, Yogyakarta : Andi, 2007, hal. 44. 4
3.2
Software Requirement Spesification (SRS) Tabel 3.1 Spesifikasi Kebutuhan Perangkat Lunak
NO
SRS-ID
1
DECS-01
Menerima input nomor tujuan, pesan, key 1, key 2, dan key 3
2
DECS-02
Mengubah pesan dan key menjadi kode ASCII
3
DECS-03
4
DECS-04
5
DECS-05
6
DECS-06
Memeriksa pesan yang masuk apakah memiliki header DECS-
7
DECS-07
Menampilkan nomor pengirim pesan
8
DECS-08
Melakukan dekripsi menggunakan key yang dimasukkan
9
DECS-09
Mengubah pesan dari kode ASCII menjadi karakter
10
DECS-10
Menampilkan pesan asli kepada penerima
3.3
DESKRIPSI
Melakukan enkripsi terhadap pesan menggunakan key yang telah dimasukkan Memberikan header DECS- pada pesan yang akan dikirimkan Mengirim pesan dan memberikan laporan bahwa pesan telah dikirim ke nomor tujuan
Rancangan Diagram Hierarki Rancangan ini disusun dengan tujuan untuk memudahkan proses perancangan
aplikasi DECryptoSMS. Diagram hierarki ini memiliki dua sub menu, yaitu menu enkripsi dan menu dekripsi. Sedangkan pada tipe sub menu terdapat dua pilihan, yaitu tipe MenuUtama masukan (input) dan proses.
MenuEnkripsi
Menu Input Kunci
MenuDekripsi
Menu Proses Enkripsi
Menu Input Kunci
Gambar 3.1 Diagram Hierarki
3.4
Rancangan Flowchart
Menu Proses Dekripsi
Rancangan ini disusun dengan tujuan mendesain dan merepresentasikan program. Fungsinya adalah untuk memudahkan dalam penentuan alur logika yang akan dibuat.
Gambar 3.2 Flowchart Sistem
3.5
Rancangan Sistem Perancangan sistem dibagi dalam beberapa tahap, yaitu penyusunan arsitektur
dan pemodelan fungsional dengan menggunakan DFD. 3.5.1
Arsitektur Sistem
3.5.1.1
Arsitektur Aliran Pesan Secara Umum (GSM) Gambar dibawah ini menunjukkan dua GSM network dan komponen yang
relevan untuk menyampaikan pesan dari end user A menuju end user B :
Gambar 3.3 Susunan Jaringan dan Aliran SMS 1.
SMS dikirim melalui MSC/ VLR menuju SMSC di PLMN (Public Land Mobile
Network) A. Ini merupakan sebuah pesan MAP “forward SM”, termasuk nomor MSISDN asal A dan MSISDN tujuan B. 2.
Karena end user B berada di PLMN B, SMSC harus me-routing informasi dari HLR
PLMN B. Untuk melakukannya, SMSC mengirim MAP “send routing info for SM” dengan nomor MSISDN B. 3.
HLR mengirim kembali IMSI dari end user B dan VLR-nya.
4.
SMSC mengirim SMS sebagai MAP message melalui MSC/ VLR ke end user B.
(Elemen – elemen SMS sudah dibahas di Bab II).
3.5.1.2
Arsitektur Sistem Aplikasi
Gambar 3.4 Arsitektur Sistem Aplikasi 3.5.2
Perancangan Pemodelan Fungsional
3.5.2.1
Context Diagram Context diagram menunjukkan data yang mengalir antara sistem dan
lingkungan yang digambarkan secara umum.
Gambar 3.5 Context Diagram Penjelasan dari gambar diatas adalah user (pengirim) memasukkan nomor tujuan, menulis pesan dan mengisi key untuk diproses oleh sistem. Setelah itu sistem akan memberikan output pemberitahuan bahwa pesan telah dikirim. Selanjutnya penerima akan mendapatkan pesan yang telah diacak (ciphertext) disertai dengan nomor pengirim (seperti proses sms pada umumnya).Penerima harus memasukkan kunci yang sesuai agar sistem dapat menampilkan pesan yang asli (plaintext).
3.5.2.2
Data Flow Diagram (DFD) Pada tahap ini, proses tunggal dari context diagramakan dibagi menjadi enam
proses yang lebih terperinci, yaitu proses konversi ASCII, proses enkripsi, proses pemberian header, proses pengiriman pesan, proses pemeriksaan header, proses dekripsi, dan proses perubahan kode ASCII menjadi karakter kembali.
Gambar 3.6 DFD Level 1 Gambar diatas merupakan DFD level 1 dari aplikasi perangkat lunak DECryptoSMS. Proses – proses yang berlangsung adalah 1.
Konversi ASCII
Pada proses ini dilakukan perubahan bentuk isi pesan dari karakter menjadi kode ASCII. 2.
Enkripsi
Pada proses ini dilakukan enkripsi terhadap pesan yang akan dikirim dengan menggunakan bantuan kunci yang telah di-inputkan dan dikonversi menjadi kode ASCII.
3.
Pemberian Header
Pada proses ini dilakukan pemberian header pada pesan yang akan dikirim sebagai tanda bahwa pesan tersebut milik DECryptoSMS.Pesan tersebut sudah dalam bentuk ciphertext. 4.
Pengiriman Pesan
Pada proses ini dilakukan pengiriman pesan sesuai nomor tujuan yang telah melalui proses konversi dan enkripsi, setelah pesan terkirim akan muncul pemberitahuan bahwa pesan telah dikirim. 5.
Pemeriksaan Header
Pada proses ini pesan yang masuk akan diperiksa terlebih dahulu apakah memiliki header DECryptoSMS atau tidak. Jika pesan tersebut memiliki header, maka pesan tersebut akan langsung diteruskan menuju proses selanjutnya, yaitu dekripsi. Jika pesan tidak memiliki header, maka system aplikasi DECryptoSMSakan mengabaikan pesan tersebut. Selain itu, proses pemeriksaan header juga akan memisahkan SMS yang memiliki header menuju kotak masuk aplikasi DECryptoSMS. 6.
Dekripsi
Pada proses ini dilakukan dekripsi terhadap pesan yang masuk dengan menggunakan kunci yang sesuai. Apabila kunci yang digunakan sesuai, maka pesan yang asli akan muncul, tetapi apabila kunci yang digunakan tidak sesuai, maka pesan yang ditampilkan tetap berupa chipertext.
3.5.3
Perancangan Sistem Perancangan sistem merupakan langkah awal dalam pembuatan sistem
dimana tahapan ini bertujuan untuk memberikan ketentuan bentuk dan proses pada perangkat lunak yang dibuat agar pembuatan program tidak menyimpang dari aturan yang telah ditetapkan. Pada proses pembuatan aplikasi DECryptoSMS ini terdiri dari 11 (sebelas) kelas, yaitu :About, DB, Decrypto, DecryptoSMSActivity, Help, LazyAdapter, MainActivity, Settings, SMSInfo, SMSInfoAdapter, SMSReceiver. Proses pembuatan menggunakan aplikasi Eclipse. Secara garis besar, fungsi dari masing – masing kelas adalah 1.
About merupakan kelas yang berfungsi untuk memberikan informasi tentang aplikasi
DECryptoSMS kepada pengguna. 2.
DB merupakan kelas yang berfungsi untuk menyimpan data aplikasi.
3.
Decryptomerupakan kelas yang berisi algoritma yang digunakan dalam proses
enkripsi dan dekripsi. Pada bagian ini seluruh pesan yang keluar dan masuk akan melalui proses enkripsi dan dekripsi.
4.
DecryptoSMSActivity merupakan kelas utama yang mengatur tampilan, pengiriman,
penghapusan, dan penerimaan pesan. 5.
Help merupakan kelas yang berfungsi untuk memberikan penjelasan tentang cara
menggunakan aplikasi. 6.
LazyAdaptermerupakan kelas yang berfungsi untuk mengatur tampilan dan activity
pada inboxdan outbox. 7.
MainActivity merupakan kelas yang berfungsi untuk mengatur tampilan awal
sebelum masuk menuju halaman utama aplikasi. 8.
Settingsmerupakan kelas yang berfungsi untuk mengatur tampilan pada halaman
Settings. 9.
SMSInfo merupakan kelas yang berfungsi untuk menampilkan informasi dari pesan
yang diterima seperti nomor telepon pengirim dan pesan. 10. SMSInfoAdapter merupakan kelas yang berfungsi untuk updating otomatis pesan yang masuk. 11. SMSReceiver merupakan kelas yang yang berfungsi untuk mengatur tampilan list pesan yang masuk.
3.6
Perancangan User Interface Perancangan Interface atau antarmuka adalah perancangan tampilan aplikasi
yang menghubungkan pengguna dengan system. Berikut ini adalah perancangan interface pada aplikasi DECryptoSMS. 3.6.1
Rancangan Splash Screen
Logo
Gambar 3.7 Rancangan Splash Screen
3.6.2
Rancangan Form Tab Tulis Pesan
Tab Nomor Tujuan Pesan Kunci 2 Kunci 1 Kirim
Kunci 3 Enkrip
Reset
Gambar 3.8 Rancangan Form Tab Tulis Pesan 3.6.3
Rancangan Form Tab Kotak Masuk Pesan
Tab
Kunci 2 Kunci 1
Kunci 3 Pesan
Gambar 3.9 Rancangan Form Tab Kotak Masuk Pesan
3.6.4
Rancangan Form Tab Kotak Keluar Pesan
Tab
Kunci 1
Kunci 2 Kunci 3 Pesan
Gambar 3.10 Rancangan Form Tab Kotak Keluar Pesan 3.6.5
Rancangan Form Bantuan
Tab
Help About Exit
Gambar 3.11 Rancangan Form Tab Bantuan
4.
Hasil Penelitian Dan Pembahasan
4.1
Implementasi Tahap yang harus dilalui setelah melewati tahap perancangan dan pengkodean
adalah tahap pengujian.Pengujian terhadap program ini dilakukan dengan tujuan untuk mengetahui apakah program atau sistem yang dibuat berjalan dan berfungsi sesuai dengan rancangan.
Dalam proses pembuatan aplikasi, implementasi perancangan antarmuka dibagi menjadi 5 bagian utama, penjelasannya akan dibahas sesuai dengan sub bahasan dibawah ini. 4.1.1
Splash Screen Pada saat aplikasi dijalankan, pengguna akan ditampilkan splash screen berupa
logo aplikasi DECryptoSMS, setelah beberapa saat pengguna akan masuk halaman utama.
Gambar 4.1 Form Splash Screen 4.1.2
Form Tulis Pesan Ketika splash screen telah hilang, pengguna akan langsung menuju menu tab
Tulis Pesan. Pada tab Tulis Pesan ini pengguna diharapkan untuk memasukkan nomor tujuan, pesan yang ingin disampaikan, kunci 1 yang sudah disediakan dalam bentuk number picker sehingga memudahkan pengguna dalam memilih angka yang ingin dijadikan kunci 1. Kemudian pengguna harus memasukkan kunci 2 dengan batas maksimal 8 karakter, langkah terakhir pengguna juga harus memasukkan kunci 3 dengan batas maksimal 8 karakter. Setelah mengisi semua form, pengguna dapat mengirim pesan dengan cara memilih tombol send, apabila pengguna ingin menulis ulang sms, pengguna dapat memilih tombol reset, selain itu pengguna dapat mengetahui ciphertext yang akan dikirim dengan cara memilih tombol encrypt.
Gambar 4.2 Form Tulis Pesan 4.1.3
Form Kotak Masuk Pesan Aplikasi
DECryptoSMS
telah
dilengkapi
dengan
tab,
sehingga
akan
memudahkan pengguna dalam berpindah posisi dari tab Tulis Pesan menuju tab Kotak Masuk Pesan. Setelah berada di tab Kotak Masuk Pesan, telah disediakan form untuk memasukkan kunci 1, kunci 2, dan kunci 3. Pengguna harus mengisi form tersebut kemudian memilih pesan yang ingin dibaca. Jika kunci yang dimasukkan dan pesan yang dipilih sesuai, maka aplikasi akan menampilkan pesan asli. Namun jika kunci yang dimasukkan dan pesan yang dipilih tidak sesuai, maka aplikasi akan tetap menampilkan chipertext.
Gambar 4.3 Form Kotak Masuk Pesan
4.1.4
Form Kotak Keluar Pesan Setelah dari tab kotak masuk pesan, kita beralih menuju tab kotak keluar pesan.
Tab kotak keluar pesan memiliki tampilan yang sama dengan tampilan tab kotak masuk pesan, begitu juga dengan cara kerja. Pesan yang tersimpan didalam kotak keluar pesan pun merupakan pesan yang sudah dienkripsi.Jika pengguna ingin membaca kembali pesan yang telah dikirim, maka pengguna harus memasukkan kunci yang sesuai.
Gambar 4.4 Form Kotak Keluar Pesan 4.1.5
Form Bantuan Tab bantuan berisi menu help, about, dan exit.Help berfungsi untuk memberikan
petunjuk kepada pengguna mengenai cara mengoperasikan aplikasi DECryptoSMS. About berfungsi untuk memberikan informasi kepada pengguna tentang aplikasi DECryptoSMS. Exit berfungsi untuk keluar dari aplikasi DECryptoSMS.
Gambar 4.5 Form Bantuan
5.
Kesimpulan Kesimpulan yang dapat diambil dari penulisan skripsi ini adalah sebagai berikut:
1.
Aplikasi DECryptoSMS ini dapat mengirimkan dan menerima SMS sekaligus
memiliki fasilitas untuk mengamankan informasi dari pesan yang dikirim dengan cara memanfaatkan ilmu kriptografi. 2.
Untuk menghasilkan aplikasi berbasis mobile yang dapat melakukan enkripsi, kita
dapat mengimplementasikan algoritma kriptografi klasik dan atau modern dengan menggunakan eclipse. 3.
Kombinasi algoritma kriptografi klasik dan modern dapat diimplementasikan dengan
baik untuk enkripsi pesan teks yang bekerja pada jaringan GSM dengan mengirimkan pesan dalam bentuk kombinasi abjad dan angka pada ponsel berbasis Android. 4.
Kekurangan dari implementasi algoritma AES untuk enkripsi SMS adalah jumlah
karakter yang lebih besar karena 15 karakter akan menjadi 32 karakter setelah dienkripsi (kelipatan 16).
DAFTAR PUSTAKA
Ariyus, Dony. 2005. Computer Security. Yogyakarta : Andi. Ariyus, Dony. 2008. Pengantar Ilmu Kriptografi. Yogyakarta : Andi. DiMarzio, J. F. 2008. Android A Programmer’s Guide. Mc Graw Hill. nd
Elmastri, R & Navasthe, B. 1994.Fundamental Of Database System 2 Edition. Addison Wesley. Fatta, H. A. 2007. Analisis & Perancangan Sistem Informasi. Yogyakarta: Andi. Felker, Donn. 2011. Android Application Development for Dummies. Wiley. H, Nazruddin Safaat. 2012. Pemrograman Aplikasi Mobile Smartphone Dan Tablet PC Berbasis Android.Bandung : Informatika. Hariyanto, B. 2007.Esensi – Esensi Bahasa Pemrograman Java Edisi 2.Bandung : Informatika. Jackson, Wallace. Android Apps for Absolute Beginners.Apress. Murphy, Mark. 2011. Android Programming Tutorials. CommonsWare.