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 (Low-
level). 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 J K L M N P O Q R S T U V W X Y Z
D E F G H I J 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. IMPLEMENTASI DAN PEMBAHASAN
4.1 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-dari-hp.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.