JUDUL
IMPLEMENTASI ALGORITMA KRIPTOGRAFI AES 128 BIT SEBAGAI
PENGAMAN SMS PADA SMARTPHONE BERBASIS ANDROID
NASKAH PUBLIKASI
diajukan oleh
Joko Tri Susilo Widodo
10.11.3599
kepada SEKOLAH TINGGI MENAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM YOGYAKARTA YOGYAKARTA
2014
ii
NASKAH PUBLIKASI
IMPLEMENTASI ALGORITMA KRIPTOGRAFI AES 128 BIT SEBAGAI
PENGAMAN SMS PADA SMARTPHONE BERBASIS ANDROID
disusun oleh
Joko Tri Susilo Widodo
10.11.3599
Dosen Pembimbing
Ema Utami, Dr., S.Si, M.Kom NIK. 190302037
Tanggal, 10 Pebruari 2014
Ketua Jurusan Teknik Informatika
Sudarmawan, MT NIK. 190302035
iii
IMPLEMENTATIONS AES 128 BIT ALGORITHM OF CRYPTOGRAPHY AS A SAFETY SMS ON ANDROID-BASED SMARTPHONNE
IMPLEMENTASI ALGORITMA KRIPTOGRAFI AES 128 BIT SEBAGAI
PENGAMAN SMS PADA SMARTPHONE BERBASIS ANDROID
Joko Tri Susilo Widodo Ema Utami
Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT
Today wiretapping case sms increasing in Indonesia. In the discussion of this
study, the authors build an SMS application design security using 128-bit AES
cryptography algorithm is applied to the Smart Phone based on Android. The authors
chose 128 bit AES algorithm for AES algorithm using substitution, permutation, and a
number of rounds imposed on each block to be encrypted or decrypted, than for every
revolution, AES uses a different key, so the algorithm is classified as very secure and is
currently still unresolved for cryptanalyst. The implementation of this application realized
using Eclipse SDK 4.2. Applications that apply to Android-Based Smart Phone is
expected to be one of the solution of the case.
Keywords: AES Implementation, SMS Cryptography, Secure SMS
1
1. Pendahuluan
Dewasa ini sudah banyak cara untuk mendapatkan Informasi termasuk untuk
pengiriman pesan, sudah banyak sarana untuk mengirimkan pesan sehingga kita bisa
dengan mudah mengirim dan menerima pesan. Begitu cepat dan mudahnya kita
mengirim pesan kepada orang lain meski jauh sekalipun, hanya dengan sekali klik pesan
tersebut terkirim dan diterima pada saat yang sama. Dari fasilitas pengiriman pesan yang
kita dapatkan ini, kita sering mengabaikan tentang keamanan pesan dari pihak ketiga.
Dan salah satu yang harus benar-benar dijaga keamanan dan kerahasiaannya adalah
pesan yang bersifat rahasia negara karena jika pesan itu diketahui oleh pihak ketiga dan
tersebar maka akan mengancam persatuan dan keamanan negara.
Ada berbagai macam pengamanan pesan, salah satunya dengan cara meng-
enkripsi pesan tersebut. Enkripsi adalah proses untuk menyamarkan isi dari pesan,
sehingga orang yang tidak berkepentingan atau bahkan penyadap tidak bisa mengetahui
isi dari pesan tersebut. Proses enkripsi membuat pesan yang tersamarkan isinya namun
masih berbentuk tulisan oleh karena itu walau pesan itu telah di enkripsi tetap akan
menimbulkan kecurigaan sehingga dapat memicu orang yang ingin tau makna pesan
untuk mencari makna sebenarnya dari pesan tersebut. Kriptografi masih bisa
depecahkan oleh para Kriptanalis yang memang orang yang mempunyai kemampuan
untuk memecahkan enkripsi pesan.
2. Landasan Teori
2.1 SMS (Short Message Service)
SMS adalah kependekan dari Short Messages Services.Ini merupakan sebuah
teknologi yang menyediakan pelayanan pengiriman dan penerimaan pesan antar mobile
phone. SMS pertama kali dikenalkan di Eropa sekitar tahun 1992. Teknologi SMS hanya
dapat membawa data yang terbatas.Seperti namanya “Short Messages Services”, data
yang mampu ditampung juga terbatas.Hanya 160 karakter per sms.1
2.2 Kriptografi
Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana
penyembunyian pesan. Namun pada pengertian modern kriptografi adalah ilmu yang
bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi
seperti kerahasiaan, keutuhan data dan otentikasi entitas. Jadi pengertian kriptograi
modern adalah tidak hanya dengan penyembuyian pesan, namun lebih pada sekumpulan
teknik yang menyediakan keamanan informasi. Berikut ini adalah rangkuman beberapa
mekanisme yang berkembang pada kiptigrafi modern :
1 Sunardi, Hari Murti, Hersatoto, Aplikasi SMS Gateway
2
1. Fungsi Hash, fungsi hash adalah fungsi yang melakukan pemetaan pesan
dengan panjang sembarang kesebuah teks khusus yang disebut message digest
dengan panjang tetap. Fungsi hash dipakai sebagai nilai uji (cheek value) pada
mekanisme keutuhan data.
2. Penyandian dengan fungsi simetri (Symmetric key encipherment). Penyandian
dengan funfsi simetri adala penyandian yang kunci enkripsi dan dekripsi bernilai
sama. Kunci pada penyandian simetri diasumsikan bersifat rahasia hanya orang
yang melakukan enkripsi dan dekripsi yang mengetahuinya. Oleh karenau
penyandian dengan kunci simetri disebut juga dengan penyandian dengan kunci
rahasia secret key encipherment.
3. Penyandian dengan kunci asimetri (asimetri key encipherment). Penyandian
dengan kunci asimetri atau sering juga disebut dengan penyandian kunci public
(public key) adalah penyandian dengan kunci enktipsi dan dekripsi berbeda nilai.
Kunci enkripsi yang disebut juga dengan kunci public (public key) bersifat
terbuka. Sedangkan kunci dekripsi yang disebut juga kunci privat (private key)
tertutup/ rahasia.2
Gambar 2.1 Konsep Kriptografi Secara Umum
2 Ivan Michael Siregar. “ Membongkar Source Code Berbagai Aplikasi Android”. Hal 299.
Dony Ariyus.” Pengantar ilmu KRIPTOGRAFI”. hal 247
3
2.2.1 Algoritma AES 128bit
Advanded Encryption Standard (AES) dipublikasikan oleh NIST(National Institude
of Standard and Technology)pada tahun 2001. AES merupakan blok kode simetris untuk
menggantikan DES (Data Encryption Standard).3
AES mendukung berbagai variasi ukuran blok dan kunci yang akan digunakan.
Namun AES mempunyai ukuran blok dan kunci yang tetap sebesar 128, 192, 256 bit.
Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses yang harus dilalui
untuk proses enkripsi dan dekripsi. Berikut adalah perbandingan jumlah proses yang
harus dilalui untuk masing-masing masukan.
Blok-blok data masukan dan kunci dioperasikan dalam bentuk array. Setiap
anggota array sebelum menghasilkan keluaran ciphertext dinamakan dengan state.
Setiap state akan mengalami proses yang secara garis besar terdiri dari empat tahap
yaitu, AddRoundKey, SubBytes, ShiftRows, dan MixColumns. Kecuali tahap
MixColumns, ketiga tahap lainnya akan diulang pada setiap proses sedangkan tahap
MixColumns tidak akan dilakukan pada tahap terakhir. Proses dekripsi adalah kebalikkan
dari dekripsi.
2.3 Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux
yang mencakup 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 perangkat lunak
untuk ponsel/smartphone. Kemudian untuk mengembangkan Android, dibentuklah Open
Handset Alliance, konsorsium dari 34 perusahaan piranti keras, piranti lunak, dan
telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan
Nvidia.4
Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open
Handset Alliance menyatakan mendukung pengembangan open source pada perangkat
mobile.5 Di lain pihak, Google merilis kode-kode Android dibawah license Apache,
sebuah lisensi perangkat lunak dan open platform perangkat seluler.6
3 Dony Ariyus.” Pengantar ilmu KRIPTOGRAFI”. hal 165
4H, Nazruddin Safaat, 2012, Pemrograman Aplikasi Mobile Smartphone dan Tablet PC
Berbasis Android, Bandung : Informatika, Hal 1
5 Ibid, Hal 2
6 Ibid, Hal 2
4
2.4 Eclipse
Eclipse adalah IDE software yang digunakan oleh banyak bahasa pemrograman
seperti Java, Ada, C, C++, COBOL, Phyton dan lain-lain7. Di dalam IDE Eclipse terdapat
layanan system extensible (semacam sistem penambahan plugins), editor, drbugger,
control tools, pengaturan direktori dan lain-lain8. IDE Eclipse intinya adalah suatu
software yang lingkungannya dikondisikan agar memudahkan pengembang membangun
suatu aplikasi9.
Eclipse merupakan kakas universal untuk semua platform yang mana sifat
universal Eclipse didapat dari kemampuannya untuk menerima aneka modul tambahan
(plig-in) di dalamnya10
.
3. Analisis
3.1 Analisis SWOT
3.1.1 Strenght
Kekuatan dari aplikasi ini adalah pada keamanan untuk menjaga isi pesan dari
pengirim kepada penerima pesan dari penyadap. Dengan menggunakan Algoritma
kriptografi AES 128 bit pesan sudah sangat aman dari ancaman para penyadap yang
menginginkan isi pesan tersebut meskipun mereka mendapatkan pesannya namun
pesan tersebut tidak bisa terbaca oleh sang penyadap dikarenakan pesan tersebut sudah
tersandikan menjadi karakter acak yang tidak bisa dibaca..
3.1.2 Weakness
Dari ukuran panjang kuncinya, Algoritma AES 128 bit termasuk paling kecil jika
dibandingkan dengan AES 256bit hal ini menjadi kelemahan aplikasi ini karena
cryptanalis bisa membongkar kunci algoritma AES 128bit lebih cepat jika dibandingkan
dengan AES256bit.
3.1.3 Opportunities
Aplikasi ini memiliki peluang yang sangat bagus jika digunakan untuk
Smartohone Andoid karena sangat mendukung keamanan dalam informasi di dalam
SMS.
3.1.4 Threat
Ancaman yang ada adalah pada perkembangan Android yang pesat dan jumlah
perangkat Android yang memiliki banyak tipe, dan perkembangan.
7 Dodit Suprianto dan Rini Agustina, S.Kom, M.Pd, Pemrograman Aplikasi Android, hal
14 8 Ibid.hal 14
9 Ibid.
10 Adi Nugroho, Pemrograman Java Menggunakan IDE Eclipse Callisto, hal 31
5
4. Hasil Penelitian dan Pembahasan
4.1 Class SecureSMS.java
Class ini memiliki fungsi sebagai halaman utama aplikasi.yang ditampilkan adalah
tombol Send SMS, Read SMS, About dan Help. Berikut ini listing programnya:
4.2 Class AES.java
Class ini merupakan metode Algoritma Kriptografi AES 128 bit untuk
mengenkripsi ataupun men-dekripsi pesan dalam aplikasi ini. Class ini akan di panggil
. . . btnKirim.setOnClickListener(new View.OnClickListener() { @Override publicvoid onClick(View v) { // TODO Auto-generated method stub Intent intent = newIntent(getBaseContext(), SendSMS.class); startActivity(intent); } }); btnBaca.setOnClickListener(new View.OnClickListener() { @Override publicvoid onClick(View arg0) { // TODO Auto-generated method stub Intent intent = newIntent(getBaseContext(), InboxSMS.class); startActivity(intent); } }); btnAbout.setOnClickListener(new View.OnClickListener() { @Override publicvoid onClick(View v) { // TODO Auto-generated method stub Intent intent = newIntent(SecureSMS.this, About.class); startActivity(intent); } }); btnHelp.setOnClickListener(new View.OnClickListener() { @Override publicvoid onClick(View v) { // TODO Auto-generated method stub Intent intent = newIntent(SecureSMS.this, Help.class); startActivity(intent); } }); } . . .
6
dengan method encrypt atau decrypt pada halaman Send SMS dan Read SMS sehingga
pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma Kriptografi AES 128bit
yang ada pada Class ini.
publicclass Aes { publicstatic String encrypt(String kunci, String plaintext, int
tipe) throws Exception { byte[] rawKey = rawKey(kunci.getBytes(),tipe); byte[] hasil = encrypt(rawKey,plaintext.getBytes()); returnk_hexa(hasil); } publicstatic String decrypt(String kunci, String plaintext, int
tipe) throws Exception { byte[] rawKey = rawKey(kunci.getBytes(), tipe); byte[] enc = k_byte(plaintext); byte[] result = decrypt(rawKey, enc); returnnew String(result); }
privatestaticbyte[] encrypt(byte[] raw, byte[] clear) throws Exception {
SecretKeySpec s_kunci_rahasia = newSecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, s_kunci_rahasia); byte[] encrypted = cipher.doFinal(clear); return encrypted; } privatestaticbyte[] decrypt(byte[] raw, byte[] encrypted) throws
Exception { SecretKeySpec s_kunci_rahasia = newSecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, s_kunci_rahasia); byte[] decrypted = cipher.doFinal(encrypted); return decrypted; } privatestaticbyte[] rawKey(byte[] kunci,int tipe) throws
Exception { KeyGenerator kunci_gen = KeyGenerator.getInstance("AES"); SecureRandom acak = SecureRandom.getInstance("SHA1PRNG"); acak.setSeed(kunci); kunci_gen.init(tipe, acak); SecretKey kunci_rahasia = kunci_gen.generateKey(); byte[] raw = kunci_rahasia.getEncoded(); return raw;
}
publicstatic String d_hexa(String hexa) { returnnew String(k_byte(hexa)); }
7
4.3 Tampilan Menu Utama
Menu Utama adalah tampilan utama dari aplikasi ini dan akan muncul pertama
kali ketika pengguna membuka aplikasi ini. Terdiri dari 4 Button yang digunakan untuk
masuk ke tiap halaman activity.
publicstatic String k_hexa(byte[] buffer) { if (buffer == null) { return""; } StringBuffer hasil = newStringBuffer(2 * buffer.length); for (int i = 0; i < buffer.length; i++) { appendHex(hasil, buffer[i]); } return hasil.toString(); } publicstaticbyte[] k_byte(String hexa_string) { int panjang = hexa_string.length() / 2; byte[] hasil = newbyte[panjang]; for (int i = 0; i < panjang; i++) { hasil[i] = Integer.valueOf(hexa_string.substring(2
* i,2 * i + 2),16).byteValue(); } return hasil; } privatefinalstatic String hexa = "0123456789ABCDEF"; privatestaticvoid appendHex(StringBuffer str_buffer, byte b) { str_buffer.append(hexa.charAt((b >> 4) &
0x0f)).append(hexa.charAt(b & 0x0f)); } }
8
Gambar 4.1 Tampilan Menu Utama
Tampilan Send SMS berisi tiga textbox dan dua button, textbox masing-masing
digunakan untuk input kontak, pesan dan key dan tombol yang berfungsi masing-masing
untuk look-up kontak dan kirim sms sekaligus enkripsi sms.
Gambar 4.2 Tampilan Send SMS
Read SMS berisi satu textbox yang digunakan untuk menginputkan key dan satu
tombol yang digunakan untuk men-dekripsi pesan.
9
Gambar 4.3 Tampilan Read SMS
Tampilan About berisi textView sebagai info aplikasi.
Gambar 4.4 Tampilan About
Tampilan Help berisi textView sebagai cara penggunaan aplikasi.
10
Gambar 4.5 Tampilan Help
4.4 Analisis Hasil
Tahap ini akan menjelaskan analisis kinerja dari aplikasi SecureSMS. Hasil yang
di dapatkan ketika pengguna mengirimkan pesan yang sudah ter-enkripsi adalah karakter
dari cipherteks menjadi lebih panjang dari plainteks oleh karena itu pesan hanya dibatasi
sampai 80 karakter karena pengiriman pesan standar hanya 160 karakter per sms, jika
pengguna memasukkan 80 karakter dan kemudian di enkripsi maka pesan yang terkirim
tetap 160 karakter karena aplikasi ini mengirimkan cipherteks.
Hasil yang didapatkan ketika melakukan dekripsi pesan adalah semua pesan
yang ada di dalam Inbox sms akan di enkripsi seluruhnya dan yang akan bisa di baca
hanya pesan yang mempunyai kunci yang sama.
Hasil lain yang didapatkan adalah ketika pengguna memasukkan jumlah karakter
untuk key atau kombinasi key, hal ini tidak berpengaruh pada jumlah karakter yang
berubah ketika plaintext menjadi ciphertext melainkan ini mempengaruhi pada perputaran
key tersebut dengan kata lain jika kombinasi antara huruf dan angka dan
memperpanjang karakter kunci akan meningkatkan tingkat keamanan.
11
Gambar 4.6 Perbandingan kombinasi key
Gambar 4.7 kombinasi key dengan karakter yang lebih panjang
5. Kesimpulan
Setelah melalui beberapa tahapan dalam menyelesaikan Aplikasi SecureSMS
dapat disimpulkan bahwa :
1. Cara mengamankan pesan yang akan dikirimkan oleh pengguna yaitu
dengan cara meng-enkripsi pesan tersebut menggunakan Algoritma
kriptografi AES 128bit.
2. Cara membuat pengaman pesan di smartphone berbasis android adalah
membuat coding progam java dan xml sebagai intarfacenya dengan
menggunakan eclipse.
12
3. Penerapan Algoritma Kriptografi AES bisa diterapkan dengan cara membuat
class java.
DAFTAR PUSTAKA
Agustina, S. D. (2012). Pemrograman Aplikasi Android. Yogyakarta: Mediakom. Dony, A. (2008). Pengantar Ilmu Kriptografi Teori Analisis Dan Implementasi. Yogyakarta:
Andi Offset. H, S. N. (2012). Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis
Android. Bandung: Informatika. Hantoro, W. G. MOBILE BROADBAND Trend Teknologi Wireless Saat ini dan Masa
Datang. Surian, D. (2006). TESLA . Jurnal Teknik Elektro, 99.
Top Related