IMPLEMENTASI ALGORITMA KRIPTOGRAFI CAESAR CHIPER PADA APLIKASI SMS TELEPON SELULAR BERBASIS J2ME
Naskah Publikasi
diajukan oleh Ardiyanto 07.11.1412
kepada JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA 2011
IMPLEMENTATION ALGORITHM CRYPTOGRAPHY CAESAR CIPHER IN APPLICATION SMS CELLULAR PHONE BASED J2ME IMPLEMENTASI ALGORITMA KRIPTOGRAFI CAESAR CHIPER PADA APLIKASI SMS TELEPON SELULAR BERBASIS J2ME Ardiyanto Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT The development of telecommunications technology is so rapid has been a huge benefit. One result of that very famous telecommunication technology is Short Message Service. With the SMS facility that users can exchange information in the form of text messages with other users. In general, the SMS does not guarantee the confidentiality and integrity of the message sent by the user. Because text messages are sent sometimes is a secret message and personal, so that the confidentiality of the message becomes very important. So that required a security system in meyampaikan message. In this case the message will be presented by way of security applications Caesar cipher encryption algorithm on cellular Telephone using J2ME programming language, so that the confidentiality of the message becomes more awake. Keyword: SMS. Encryption, dekription, CaesarChiper
PENDAHULUAN 1.
PENDAHULUAN Beberapa tahun terakhir ini terjadi perkembangan yang pesat pada teknologi,
salah satunya adalah telepon selular(ponsel). Telepon selular merupakan alat komunikasi yan sudah dipakai oleh sebagian besar orang di dunia. Telepon selular menyediakan berbagai macam fungsi seperti SMS (Short Message Service), MMS (Multimedia Message Service), multiplayer games, transfer data, video streaming dan lain-lain.
Berbagai
perangkat
unakuntuk
mengembangkan
aplikasi
ponselpun
bermunculan, diantaranya yang cukup dkenal luas adalah Java 2 Micro Edition (J2ME). Salah satu fasilitas yang disediakan ponsel adalah untuk melakukan pengiriman data berupa pesan singkat melalui Short Message Service (SMS).
Secara umum SMS tidak menjamin kerahasiaan dan keutuhan pesan yang dikirimkan. Ada beberapa resiko yang mungkin dapat mengancam keamanan pesan pada SMS diantaranya adalah SMS Spoofing, SMS Snooping, SMS Interception. SMS Spoofing sendiri adalah sebuah pengiriman sms dimana nomor pengirim yang tertera bukanlah nomer pengirim yang sebenarnya.
SMS Snooping lebih sering terjadi karena kesalahan pengguna telepon seluler. Contohnya ketika pemilik telepon seluler meminjamkan telepon tersebut kepada orang lain untuk menggunakan telepon miliknya dan baik disengaja atau tidak orang lain tersebut membuka data SMS yang maish tersimpan di dalam perangkat telepon seluler tersebut.
Celah keamanan terbesar pada komunikasi SMS adalah pada saat pesan berada pada jaringan SMS tersebut. SMS bekerja pada jaringan nirkabel yag memungkinkan pencurian data pesan SMS ketika masih dalam transmisi dari pengirim ke penerima. Kasus seperti ini disebut SMS Interception.
2.
LANDASAN TEORI
2.1
SMS (Short Message Service) SMS (Short Message Service) adalah sebuah layanan telepon seluler untuk
mengirim atau menerima pesan-pesan pendek.
SMS muncul pada desember 1992.
Bermula dari pesan yang dikirim dari sebuah komputer ke sebuah telepon selular dalam jaringan GSM milik operator seluler Vodafone di Inggris.
2.2
Teknologi Java Java adalah bahasa pemrograman Object Oriented Programing (OOP) yang
dibuat oleh Sun Microsystem. Java dirancang untuk menjadi bahasa yang memiliki kemampuan tinggi dalam hal portabilitas dan pemanfaatan jaringan tanpa mengabaikan kestabilan, keamanan, serta kemudahan dari sisi desain dan pemrograman aplikasi. Java dapat di jalankan di berbagai computer termasuk telepon selular. Sebutan Java 2 diberikan untuk java versi 1.2 dan versi berikutnya. Java 2 terbagi dalam 3 kategori, yaitu: a) Java 2 Standard Edition (J2SE). Kategori ini digunakan untu menjalankan mengambangkan aplikasi Java pada level computer personal. b) Java 2 Enterprie Edition (J2EE). Kategori ini di khususkan untuk pengembangan aplikasi Java pada lingkungan enterprise/server. c) Java 2 Micro Edition (J2ME). Kategori ini digunakan untuk pengembangan aplikasi Java yang diimplementasikan pada perngkat semacam ponsel, Palm, PDA dan PocketPC.
2.3
Antarmuka Pemakai Untuk membuat suatu antarmuka bagi pemakai, program MIDlet harus
mengimpor paket javac.microedition.lcdui. Kelas yang dipergunakan untuk membuat dan memanipulasi antarmuka tersebut adalah kelas yang diturunkan dari kelas Displayable. Melalui kelas-kelas inilah sebuah aplikasi dapat berinteraksi dengan pemakai. Pada MIDP, antarmuka terdiri dari API tingkat tinggi (High-level) dan API tingkat rendah (Lowlevel). API tingkat tinggi berbasis pada kelas Screen, sedangkan API tingkat rendah berbasis pada kelas Canvas. Diagram hirarki dari kelas Displayable dapat dilihat pada gambar 2.4
Gambar 2.4 Hirarki kelas Displayable
Dari gambar 2.2 dapat dilihat bahwa kelas Screen terdiri dari beberapa kelas, yaitu: a) Alert, merupakan kelas yang menyediakan informasi kecil kepada pemakai yang ditampilkan ke layar sebelum kemudian berpindah ke objek lain. Biasanya digunakan untuk menampilkan informasi kesalahan (error). b) TextBox, merupakan kelas yang menyediakan media untuk menerima masukan berupa teks. c) List, merupakan kelas yang menyediakan masukan pilihan (multiple choice) pada layar. d) Form, merupakan kelas yang menyediakan fasilitas untuk menampung beberapa item dalam satu layar, seperti gambar (images), kolom tanggal (datefield), kolom teks (textfield), gauge dan daftar pilihan (choice group).
2.4
Record Management System (RMS) RMS (Record Management System) adalah kumpulan record dan record
disimpan sebagai array dari byte dalam sebuah record store. RMS memiliki orientasi record basis data yang sederhana sehingga MIDlet dapat menyimpan informasi dan mengaksesnya
Gambar 2.5 Overview of J2ME RMS and MIDlet interfacing
2.5
Netbeans Netbeans merupakan Integrated Development Environtment atau IDE. Suatu IDE
adalah lingkup pemrograman yang diintegrasikan kedalam suatu aplikasi perangkat lunak
yang menyediakan pembangun GUI, suatu text editor, suatu compiler atau interpreter dan suatu debugger. Software ini terus berkembang sesuai dengan kemajuan, penulis mengunakan netbeans versi 6.5
2.6
Kriptografi Kriptografi adalah ilmu yang mempelajari tentang cara menjaga keamanan suatu
pesan atau informasi. Pesan atau informasi dapat dikategorikan ke dalam dua jenis, yaitu pesan yang dapat dibaca dengan mudah (plaintext ) dan pesan yang tidak mudah dibaca (ciphertext). Untuk melakukan kriptografi digunakan algoritma kriptografi. Algoritma kriptografi terdiri dari dua bagian, yaitu fungsi enkripsi dan dekripsi. Enkripsi adalah proses untuk mengubah plaintext menjadi ciphertext, sedangkan dekripsi adalah kebalikannya yaitu mengubah ciphertext menjadi plaintext. Salah satu teknik enkripsi adalah teknik subtitusi, yaitu mengganti setiap karakter plaintext dengan karakter lain. Terdapat empat cara dalam menggunakan teknik subtitusi, yaitu : a) Monoalphabet, dimana setiap karakter ciphertext mengganti satu macam karakter plaintext tertentu. b) Polialphabet, dimana setiap karakter ciphertext mengganti lebih dari satu macam karakter plaintext. c) Monograf/unilateral, dimana satu enkripsi dilakukan terhadap satu karakter plaintext. Monograf/unilateral, dimana satu enkripsi dilakukan terhadap satu karakter plaintext. d) Poligraf/multilateral, dimana satu enkripsi dilakukan terhadap lebih dari satu karakter plaintext. Teknik enkripsi substitusi yang pertama kali dikenal dan paling sederhana ditemukan oleh Julius Caesar. Metode yang digunakan dalam caesar chiper ini adalah dengan mempertukarkan setiap huruf dari plaintext dengan huruf lain dengan interval 3 huruf dari huruf plaintext. Sebagai contoh dapat dilihat di bawah ini : A B C D E F G H I D E F G H I
J
J
K L
M N P O Q R S T
U V W X Y Z
K L M N O P Q R S T U V W X Y Z
A B C
Untuk menyandikan sebuah pesan, cukup mencari setiap huruf yang hendak disandikan di alfabet biasa, lalu tuliskan huruf yang sesuai pada alfabet sandi. Untuk memecahkan
sandi tersebut gunakan cara sebaliknya. Contoh penyandian sebuah pesan adalah sebagai berikut. teks terang: kirim pasukan ke sayap kiri teks tersandi: NLULP SDVXNDQ NH VDBDS NLUL Proses penyandian (enkripsi) dapat secara matematis menggunakan operasi modulus dengan mengubah huruf-huruf menjadi angka, A = 0, B = 1,..., Z = 25. Sandi (En) dari "huruf" x dengan geseran n secara matematis dituliskan dengan,
Sedangkan pada proses pemecahan kode (dekripsi), hasil dekripsi (Dn) adalah
Setiap huruf yang sama digantikan oleh huruf yang sama di sepanjang pesan, sehingga sandi Caesar digolongkan kepada, substitusi monoalfabetik, yang berlawanan dengan substitusi polialfabetik. 3.
ANALISIS DAN PERANCANGAN SISTEM
3.1
Aliran Kerja Kebutuhan
3.1.2
Analisis Kebutuhan Aplikasi CaesarSMS ini digunakan untuk mengirim dan menerima pesan.
CaesarSMS akan mengenkripsi pesan yang akan dikirim menjadi chipertext dan CaesarSMS akan mendekripsi pesan masuk berupa chipertext menjadi plaintext. Dalam membangun aplikais CasearSMS, diperlukan batasan yang jelas sebagai tujuan utamanya agar tidak keluar dari rencana yang telah ditetapkan. Beberepa kebutuhan system yang akan didefinisikan antara lain : a) Memiliki kemampuan untuk mengirimkan dan menerima pesan. b) Memiliki kemamuan untuk mengenkripsi pesan. c) Memiliki kemampuan untuk mendekripsi. d) Memiliki kemampuan untuk menyimpan pesan masuk dan pesan keluar. e) Memiliki kemampuan untuk menyimpan pesan yang belum dikirim.
Tidak semua telepon seluler dapat menjalankan aplikasi CaesarSMS ini. Berikut spesifikasi dari telepon seluler agar dapat menjalankan aplikasi CaesarSMS : a) Mempunya Java Runtime Environment. b)
Mempunyai MicroEdition-profil MIDP 2.0.
c) Mempunyai MicroEdition-configuration CLDC 1.0. 3.2 Pemodelan Fungsional
3.2.1
Use Case Diagram Aplikasi ini didesain hanya untuk digunakan oleh seorang pengguna dalam satu
device,artinya dalam sebuah mobile device aplikasi ini hanya akan terinstal satu aplikasi saja dan tidak akan melibatkan aplikasi-aplikasi yang lain pengguna aplikasi ini dapat melakukan beberapa tindakan yaitu :
3.2.2
Sequence Diagram Sequne diagram menggambarkan interaksi antar objek didalam dan disekitar
system berupa message terhadap waktu. Pembuatan sequence diagram bertujuan agar perancangan aplikasi lebih mudah dan terarah. Interaksi-interaksi yang terjadi adalah :
3.3
FlowChart Flowchart menggambarkan alur sebuah aplikasi, flowchart dari aplikasi ini dapat
dijelaskan pertama pengguna menjalankan aplikasi jika ada pesan masuk aplikasi akan memberikan pemberitahuan berupa tampilan receive message kemudian dari pesan yang masuk pengguna dapat membacanya, jika pesan tersebut dienkripsi maka pengguna dapat mengenkrip dengan menggunakan kunci yang telah ditentukan sehingga pesan dapat terbaca. Dan jika tidak ada pesan masuk pengguna masih dapat menjalankan aplikasi dan mendapatkan tampilan pilihan fitur yang tersedia dan dapat dilanjutkan dengan perintah atau fitur-fitur yang tersedia. Untuk lebih jelasnya dapat dilihat pada gambar berikut
Gambar 3.8 flowchart aplikasi
4.
4.1
IMPLEMENTASI DAN PEMBAHASAN
Implemantasi Antar Muka Dalam pembangunan aplikasi ini implementasi perancangan antar muka dibagi
menjadi beberapa bagian, untuk lebih jelasnya akan dipaparkan sesuai dengan sub bahasan dibawah ini. Disini penulis menggunkan emulator wtk 2.5.2 untuk menjalankan aplikais tersebut. 4.1.2
Antar Muka Menu Utama Menu utama merupakan tampilan list yang memuat beberapa elemen yaitu tulis
sms, kotak masuk, item terkirim, item tersimpan, pengaturan, petunjuk, ticker, tentang dan exit. Penambahan ikon pada list ini dimaksudkan menjadikan tampilan menu utama agar menjadi lebih menarik. Tampilan menu utama dapat dilihat pada gambar
Gambar 4.2 tampilan menu utama
4.1.3
Antar Muka Tulis Pesan Di dalam menu tulis pesan terdapat beberapa tampilan atau sub menu. Berikut
tampilan tulis pesan
Gambar 4.3 menu tulis pesan Jika pengguna sudah mengenkrip pesan dan menekan tombol lanjutkan / kirim, maka pengguna akan diminta memasukkan nomer tujuan pesan, tampilannya sebagai berikut
Gambar 4.5 tampilan input nomer tujuan Jika pengguna melanjutan dengan menekan tombol kirim maka pesan akan dikirim ke nomer tujuan. 4.1.4
Antar Muka Kotak Masuk Dalam menu kotak masuk akan menampilkan list pesan yang masuk seperti
terlihat pada gambar dibawah ini
Gambar 4.6 list pesan masuk Jika pengguna menekan tombol hapus maka pesan akan dihapus dan jika pengguna menekan tombol baca pengguna akan mendapatkan tampilan
Gambar 4.6 tampilan baca pesan Pada tampilan ini pengguna diminta memasukkan key untuk dapat membaca pesan asli atau pesan yang tidak ter enkripsi. Kemudian pengguna dapat menekan tombol yang disediakan yang akan membawa pengguna ke tampilan berikutnya. 4.2.1
Pengujian Aplikasi Uji coba pertama adalah pengujian aplikasi, pada uji coba ini menguji menu–
menu yang disediakan apakah sudah sesuai dengan rancangan
Gambar 4.12 tampilan menu awal dan kotak masuk
Gambar 4.13 tampilan item terkirim dan item tersimpan
Gambar 4.14 tampilan pengaturan dan item tersimpan
Gambar 4.15 tampilan menu tentang 4.2.2
Pengujian Enkrip Pesan Yang Akan Dikirim Pada pengujian ini akan dilakukan pengujian dari tulis pesan serta pengenkripan
pesan secara berulang hingga pesan tersebut dikirimkan
Gambar 4.16 tulis pesan dan enkrip kunci pertama 4.2.3
Pengujian Dekrip Pesan Masuk Pada pengujian ini akan dilakukan dekrip pesan dari alert pesan masuk hingga
pesan asli dapat dibaca.
Gambar 4.18 alert pesan masuk dan pesan yang terenkripsi
Gambar 4.20 input kunci pertama dan kedua hingga didapat pesan asli
5.
KESIMPULAN DAN SARAN Kesimpulan yag dapat diambil dari penulisan ini adalah sebagai berikut : a)
Aplikasi ini berhasil meningkatkan keamanan pengiriman pesan SMS melalui telepon seluler karena: 1. Pesan yang dikirimkan terenkripsi 2. Kunci
(key)
yang
dimasukkan
berulang
sehingga
akan
menyulitkan proses dekrip bagi yang tidak tahu kunci sebenarnya. 3. Kunci dekrip berbeda jika proses enkripsi dilakukan lebih dari satu kali atau berulang.
b)
Dengan adanya fitur input key (kunci) pada fitur aplikasi ini maka pengguna dapat menginputkan key (kunci) sesuai keinginannya sehingga keamanan pesan lebih terjaga. Key yang dapat diinputkan adalah antara integer 0 - 255
c)
Aplikasi sms dengan implementasi dari algoritma Caesar Cipher telas berhasil dibuat
Namun pesan yang telah dienkripsi memiliki jumah karakter yang lebih banyak dibandingkan dengan jumlah karakter sebelum pesan dienkripsi. Hal ini mengakibatkan biaya pesan yang digunakan untuk melakukan pengiriman pesan menjadi lebih banyak. Namun jika dilihat dari segi keamanan , maka aplikasi ini lebih aman dari pada pengiriman pesan biasa. 5.1
Saran Untuk perbaikan dan pengembangan aplikasi enkrispsi sms lebih lanjut
disarankan sebagai berikut : a) Logika program dapat dikembangkan lagi untuk optimasi kerja system hal ini dilakukan untuk menghilangkan penambahan karakter saat pesan dienkripsi b) Aplikasi ini dapat mengenkripsi pesan standar ASCII untuk pengembangan lebih lanjut diharapkan aplikasi dapat mengenkripsi karakter selain ASCII c) Kunci yang diinputkan bisa berfariasi dan tidak sebatas integer.
DAFTAR PUSTAKA
Arius, Doni. (2008). ”Pengantar Ilmu KRIPTOGRAFI, Teori, Analisis dan Implementasi”. Yogyakarta. http://ciptamedia-sms-broadcast.blogspot.com/2010/06/mekanisme-pengiriman-sms-darihp.html diakses 18 Desember 2010
http://communication.howstuffworks.com/sms1.htm diakses 18 Desember
2010
http://www.oracle.com/technetwork/java/index.html diakses 18 Desember 2010
http://www.java.com/en/javahistory/ diakses 18 Desember 2010 Huda, Miftahul Choirul, 2010, Perancangan aplikasi enkripsi dan dekripsi SMS dengan algoritma simetri AES pada telepon seluler, STMIK Amikom Yogyakarta. M. Salahudin dan Rosa A.S, Pemrograman J2ME Belajar Cepat Pemrograman Perangkat Komunikasi Mobile, 2010. Nugroho, Bayu Kristian, 2010, Aplikasi Enkripsi SMS Pada Telepon Selular Berbasis J2ME Dengan Metode Vigere Cipher, Universitas Diponegoro Semarang. Prasetyo, Galih Wahyu, 2010, Aplikasi Enkripsi SMS Menggunakan Metode Blowfish, ITS Surabaya.