JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi...

15
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

Transcript of JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi...

Page 1: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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

Page 2: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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

Page 3: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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

Page 4: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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

Page 5: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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

Page 6: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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

Page 7: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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

Page 8: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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); } }); } . . .

Page 9: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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)); }

Page 10: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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)); } }

Page 11: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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.

Page 12: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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.

Page 13: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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.

Page 14: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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.

Page 15: JUDUL - repository.amikom.ac.idrepository.amikom.ac.id/files/Publikasi_10.11.3599.pdf · enkripsi pesan tersebut. ... pesan ter-enkripsi ataupun terdekripsi menggunakan Algoritma

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.