PERANCANGAN APLIKASI KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD BERBASIS ANDROID
NASKAH PUBLIKASI
diajukan oleh
Soraya Kusumawati 09.11.3502
kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA YOGYAKARTA 2013
THE DESIGN OF THE ADVANCED ENCRYPTION STANDARD CRYPTOGRAPHY APPLICATION USING ANDROID PERANCANGAN APLIKASI KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD BERBASIS ANDROID Soraya Kusumawati Ema Utami Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT In the current era of global information, cryptography is an inseparable part of the system data security as it relates to the security aspects of the data such as data confidentiality, data integrity and authentication of data. One way to maintain the confidentiality of data, data encryption process that is required to use an application that is able to secure and maintain the confidentiality of such data. In data security, there are two main aspects: the encryption and decryption process. Encryption is done when the data is sent. This process will transform an initial data into confidential data or data encryption that can not be read and known by others. While the decryption process is done by the data receiver, wherein the received confidential data will be converted back to the initial data.So that it can be understood by the recipient of the data, where the data recipient must have the decryption key from the data. So it is necessary to create an AES cryptographic applications as a medium for securing the data, so that data is not easily accessible to others. AES algorithm design for sending messages on the Android could be one solution to the problem above, this application has a simple view that this application is easy to use and can be a security solution in exchanging information. Keywords: AES, Data Security, Encryption, Decryption, Android
1.
Pendahuluan Dunia keamanan semakin berkembang seiring dengan pesatnya teknologi dan
informasi,
perkembangan
ilmu
pengetahuan,
banyak
informasi
baru
bermunculan, baik yang layak disebarluaskan atau dirahasiakan. Nyatanya, sebuah informasi kadang bisa bernilai sangat besar seperti halnya data nasabah suatu bank, organisasi, data pribadi dan strategi perusahaan bahkan yang lebih besar dan berskala internasional yang menyangkut hajat hidup suatu negara. Untuk mengamankan informasi tersebut, digunakanlah ilmu Kriptografi. Ilmu kriptografi sangat cepat berkembang, tidak hanya bisa digunakan di komputer tetapi juga digunakan di beberapa perangkat dan sistem operasi, seperti Blackberry, Android, iPhone dan masih banyak lagi. Terutama disini adalah Android, sistem operasi yang dikembangkan oleh Google ini mengalami peningkatan jumlah pengguna dan tentu saja perangkat yang menggunakan sistem operasi ini menjamur dan sangat laris di pasaran. Setiap telepon selular membutuhkan komunikasi, SMS merupakan suatu bentuk komunikasi yang saat ini banyak digunakan oleh semua orang, karena efisien dan biayanya yang murah.Seseorang dapat dengan mudah bertukar informasi antara satu dengan yang lain menggunakan layanan pesan singkat. Namun, kemudahan ini sering disalahgunakan oleh beberapa pihak dengan mencoba mencuri informasi yang bukan hak mereka. Disinilah diperlukan cara agar suatu informasi yang penting dapat terjaga keamanan dan kerahasiannya. 2.
Landasan Teori
2.1
Pengertian Kriptografi Kriptografi (Cryptography) dapat diartikan sebagai suatu ilmu atau seni untuk mengamankan pesan agar aman.Metode ini sudah digunakan oleh bangsa Mesir sejak 4000 tahun lalu. Menurut bahasa, kriptografi terdiri dari dua kata, yaitu crypto dan graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan), yang mempunyai arti “tulisan rahasia”1.
2.2
Algoritma Kriptografi Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu2:
1
Dony Ariyus, Pengantar Ilmu Kriptografi Teori Analisis dan Implementasi, (Yogyakarta: Andi Offset, 2008), hal 13.
1
1. Enkripsi, merupakan hal yang sangat penting dalam kriptografi yang merupakan pengamanan data yang dikirimkan agar tejaga kerahasiaannya. 2. Dekripsi, merupakan pesan yang telah dienkripsi dikembalikan kebentuk asalnya (pesan asli). 3. Kunci, yang dimaksud adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi menjadi 2 (dua) bagian, yaitu kunci rahasia (private key) dan kunci umum (public key).
2.3
Algoritma AES – Rijndael Dalam proses enkripsi input, diperlukan empat macam operasi yang dilakukan berulang-ulang dalam beberapa putaran dan menggunakan kunci cipher. Jumlah putaran yang digunakan algoritma ini ada tiga macam seperti pada tabel di bawah ini 3.
Tabel 2.1 Jumlah Putaran Pengoperasian AES
2.3.1
Tipe
Panjang Kunci (Nk words)
Ukuran Blok (Nb words)
Jumlah Putaran (Nr)
AES 128
4
4
10
AES 192
6
4
12
AES 256
8
4
14
Proses Enkripsi Proses enkripsi algoritma AES terdiri dari 4 jenis transformasi bytes, yaitu SubBytes, ShiftRows, MixColumns, dan AddRoundKey4: 1. Transformasi SubBytes Transformasi SubBytes()memetakan setiap byte dari array state dengan menggunakan tabel subtitusi S-Box5. 2. Transformasi ShiftRows
2
Dony Ariyus, Kriptografi: Keamanan Data dan Komunikasi, (Yogyakarta: Graha Ilmu, 2006), hal 13. Dony Ariyus, op. cit, hal 169. 4 Dony Ariyus, op. cit., hal 173. 5 Rinaldi Munir, Bahan Kuliah“Advanced Encryption Standard (AES)”, (Bandung: Institut Teknologi Bandung, 2004), hal 10. 3
2
Transformasi ShiftRows() melakukan pergeseran secara wrapping (siklik) pada 3 baris terakhir dari array state. Jumlah pergeseran bergantung pada nilai baris (r). Baris r = 1 digeser sejauh 1 byte, baris r = 2 digeser sejauh 2 byte, dan baris r = 3 digeser sejauh 3 byte. Baris r = 0 tidak digeser6. 3. Transformasi MixColumns Transformasi MixColumns() mengalikan setiap kolom dari array state dengan polinom a(x) mod (x4 + 1). Setiap kolom diperlakukan sebagai polinom 4 suku pada GF (28).7 Polinom a(x) yang ditetapkan adalah8 : a(x) = {03}x3 + {01}x2 + {01}x + {02}
(2.4)
Transformasi ini dinyatakan sebagai perkalian matriks9: s’(x) = a(x) s(x)
(2.5)
4. Transformasi AddRoundKey Pada operasi ini, kunci ronde ditambahkan ke state dengan operasi XOR. Setiap kunci ronde terdiri dari Nb word10. 2.4
Pengenalan UML UML
(Unified Modelling
Languange)
adalah sebuah
bahasa
untuk
menentukan, visualisasi, konstruksi dan mendokumentasikan artifacts dari sistem software untuk memodelkan bisnis dan sistem non-software lainnya11.
2.4.1
Konsepsi UML 1. Use Case Diagram Diagram ini menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem berinteraksi dengan dunia luar12. 2. Activity Diagram
6
Ibid, hal 11. Ibid, hal 13. 8 Ibid. 9 Ibid. 10 Ibid. 11 Suhendar dan Hariman, Visual Modeling menggunakan UML dan Rational Rose, (Bandung: Penerbit Informatika, 2002), hal 26. 12 Ibid, hal 49. 7
3
adalah representasi grafis dari alur kerja tahapan aktivitas. Activity diagram digunakan untuk menjelaskan bisnis dan alur kerja operasional secara tahap demi tahap dari komponen suatu sistem. Activity diagram menunjukkan dari keseluruhan dari aliran kontrol13. 3. Sequence Diagram Menjelaskan interaksi objek yang disusun dalam suatu urutan waktu. Sequence diagram memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu di dalam use case14. 4. Class Diagram adalah suatu diagram yang memperlihatkan struktur sebuah sistem. Class diagram menggambarkan struktur class, package, dan objek beserta hubungan satu sama lain seperti dinamis, pewarisan, asosiasi, dan agregasi 15. 2.5
Pengenalan Android Android adalah sistem operasi bergerak (mobile operating system) yang mengadopsi sistem operasi Linux, namun telah dimodifikasi.Android diambil alih oleh Google pada tahun 2005 dari Android, Inc sebagai bagian strategi untuk mengisi pasar sistem operasi bergerak. Google mengambil alih seluruh hasil kerja Android termasuk tim yang mengembangkan Android16.
3.
Analisis Sistem
3.1
Identifikasi Masalah Perkembangan teknologi yang semakin canggih saat ini, mengirim pesan adalah sesuatu yang sering dilakukan.Mengirim pesan dapat dilakukan dengan cepat dan murah.Hal inilah yang dapat membuat keamanan pesan yang kita kirim tidak begitu aman. Untuk mengatasi permasalahan di atas, penulis membuat aplikasi SMS yang ditambahkan dengan fitur enkripsi SMS untuk meminimalisir pencurian data SMS,
13
Ibid.,hal 109. Ibid., hal 87. 15 Ibid.,hal 51. 16 Dodit Suprianto dan Rini Agistina, Pemrograman Aplikasi Android, (Yogyakarta: Mediakom, 2012), hal 9. 14
4
pesan akan terjaga kerahasiaannya sehingga pengguna layanan SMS dapat terjaga privasinya.
3.2
Analisis Kebutuhan Sistem
3.2.1 Analisis Kebutuhan Fungsional Analisis kebutuhan fungsional berisi proses-proses apa saja yang nantinya dilakukan oleh sistem. Kebutuhan fungsional juga berisi informasi-informasi apa saja yang harus ada, dihasilkan dan dilakukan oleh sistem. Fungsi-fungsi tersebut meliputi : 1. Pengirim dan penerima SMS menginstal aplikasi kriptografi AES. 2. Pengirim dan penerima SMS memiliki kunci simetri yang sama sesuai yang telah disepakati sebelum mengirim dan menerima SMS yang terenkripsi. 3. Dengan menu-menu yang ada pada aplikasi kriptografi AES, pesan dapat terenkripsi dan didekripsi secara baik menggunakan metode kriptografi AES 128 bit. 4. Pesan atau SMS yang terenkripsi berupa kode-kode yang tidak dapat dibaca oleh orang awam sehingga pesan terjaga kerahasiaannya. 3.2.2 Analisis Kebutuhan Non Fungsional Analisis Kebutuhan non-fungsional menjabarkan apa saja yang harus dimiliki oleh sistem agar dapat berjalan. Kebutuhan non-fungsional meliputi ketersediaan perangkat keras, perangkat lunak dan pengguna. 3.3
Analisis Kelemahan Sistem Untuk mengidentifikasi masalah, maka harus dilakukan analisis terhadap kekuatan, kelemahan, peluang dan ancaman. Panduan analisis ini dikenal dengan analisis SWOT (Strenghts, Weakness, Opportunities dan Threats).
3.3.1
Analisis Kekuatan (Strenghts) 1. Aplikasi Kriptografi AES mampu mengenkripsi dan mendekripsi pesan dengan metode kriptografi AES 128 bit. 2. Aplikasi ini dapat mengenkripsi dan mendekripsi teks atau tulisan yang berupa huruf dan angka.
5
3. Aplikasi ini dibuat dengan tampilan yang sederhana agar user atau pengguna mudah menggunakannya.
3.3.2 Analisis Kelemahan (Weakness) 1. Penerima pesan harus memiliki aplikasi ini dan mengetahui kata kunci untuk mendekripsi dan mengetahui isi pesan 2. Jika kunci pesan tersebar atau diketahui oleh orang lain maka isi pesan tidak dapat lagi aman kerahasiaannya.
3.3.3 Analisis Peluang (Opportunities) 1. Aplikasi ini dapat dimanfaatkan oleh semua pengguna perangkat keras berbasis android dalam kehidupan para pembisnis dan orang-orang yang membutuhkan kerahasiaan dalam berkomunikasi. 2. Aplikasi ini dapat digunakan oleh semua smartphone dengan Android versi 2.2 ke atas. 3.3.4 Analisis Ancaman (Threats) Aplikasi kriptografi AES ini merupakan aplikasi yang sangat sederhana dan hanya bisa dengan metode 128 bit. Karena itu, jika ada aplikasi android yang lebih lengkap kemungkinan pengguna akan beralih kepada aplikasi tersebut.
3.4
Analisis Kelayakan Sistem Analisis ini digunakan untuk menentukan kemungkinan apakah aplikasi kriptografi AES layak untuk dikembangkan atau harus dihentikan.
3.4.1
Analisis Kelayakan Teknologi Dari segi kelayakan teknologi aplikasi ini dapat dikatakan layak karena untuk menjalankan aplikasi pengguna (user) tidak harus menggunakan Android terbaru, Android versi 2.2 pun bisa menggunakan aplikasi ini.
3.4.2 Analisis Kelayakan Hukum
6
Kelayakan
hukum
disini
merupakan
peraturan
yang
ada
dalam
pemerintahan, yang pasti selalu berubah-ubah setiap waktu dan diantisipasi dengan undang-undang yang berlaku.Dalam membuat aplikasi, tidak boleh menyimpang dari hukum dan peraturan pemerintah atau instansi terkait. Dari segi kelayakan hukum, aplikasi ini dapat dikatakan layak karena dilihat dari konten aplikasi Kriptografi AES ini tidak ada unsur yang melanggar hukum karena tidak mengandung unsur SARA dan pornografi. Dilihat dari segi pemakaian aplikasi ini dibutuhkan sistem operasi android yang sudah tersedia oleh pengguna smartphone.
3.4.3
Analisis Kelayakan Operasional Dari segi operasional aplikasi ini dikatakan layak, karena saat ini masyarakat sudah mampu mengoperasikan handphone dengan baik dan aplikasi ini mudah di pahami dan di jalankan.
4.
Implementasi Implementasi merupakan penerapan hasil rancangan yang telah dibuat dari penggabungan beberapa kode program menjadi sebuah aplikasi. Pada tahap ini aplikasi yang telah dianalisis dan dirancang akan difungsikan atau dijalankan, sehingga akan diketahui bagaimana kinerja dari aplikasi tersebut. Aplikasi ini diimplementasikan dari desain dan kode berdasarkan rancangan bab sebelumnya. Aplikasi ini dibuat dengan dasar coding java yang dikembangkan dalam software dari android.
4.1.
Implementasi User Interface Implementasi interface merupakan penerapan user interface yang ada pada aplikasi ini. Implementasi interface pada aplikasi kriptografi AES ini disesuaikan dengan perancangan interface pada bab sebelumnya. Berikut ini merupakan implementasi interface pada aplikasi kriptografi AES : 1. Splash Screen Splash screen adalah tampilan pertama program sebelum masuk ke halaman utama atau tampilan awal dari sebuah aplikasi.
7
Gambar 4.1 Halaman Splash Screen 2. Halaman Utama Merupakan halaman yang tampil ketika aplikasi telah dijalankan. Pada halaman utama ini terdapat dua menu yaitu menu masuk untuk masuk ke menu utama dan menu keluar untuk keluar dari aplikasi .
Gambar 4.2 Halaman Utama
3. Menu Utama Merupakan halaman yang menampilkan menu dari aplikasi ini diantaranya menu tulis SMS, baca SMS, tentang aplikasi dan menu bantuan.
8
Gambar 4.3 Menu Utama
a. Menu Tulis SMS Menu tulis SMS merupakan suatu halaman untuk mengirim pesan secara terenkripsi dengan menuliskan nomer tujuan, kunci pesan dan isi pesan.yang akan dikirim.
9
Gambar 4.4 Menu Tulis SMS
b. Menu Baca SMS Menu baca SMS merupakan halaman yang berisi list SMS yang kemudian pesan tersebut didekripsi agar isi pesan dapat diketahui.
10
Gambar 4.5 Menu Baca SMS
4. Menu Tentang Aplikasi Menu tentang aplikasi ini menampilkan informasi tentang aplikasi sms kriptografi AES.
11
Gambar 4.6 Menu Tentang Aplikasi
5. Menu Bantuan Menu bantuan menampilkan informasi penggunaan aplikasi kriptografi AES ini.
Gambar 4.7 Menu Bantuan
6. Menu Keluar Aplikasi Halamaninidigunakan untuk keluar dari aplikasi, dibuat dengan menggunakan sebuah alert sehingga tampilannya akan seperti berikut:
12
Gambar 4.8 Menu Keluar Aplikasi
4.2
Uji Coba
4.2.1 Uji Coba Aplikasi Pengujian program bertujuan untuk menghindari kesalahan pada program yang
telah dibuat, pengujian program ini biasanya dilakukan selama pembuatan
aplikasi dan setelah aplikasi dibuat. Untuk mengetahui ada tidaknya kesalahan pada program yang dibuat, maka akan dilakukan pengujian dengan metode pengujian Black Box Testing.
Pada uji coba aplikasi SMS kriptografi, Black box testing dilakukan untuk mengetahui apakah program yang dibuat sudah sesuai dengan kebutuhan fungsionalnya. Aplikasi ini akan diuji dari segi fitur yang terdapat didalamnya dan mendapatkan hasil sebagai berikut:
Tabel 4.1 Hasil pengujian program menggunakan metode black box testing No.
Interface
Fitur
1.
SplashScreen
Tampilan Awal
2.
Halaman Utama
Masuk Aplikasi
Input
Hasil
Status Sukses
Masuk Menu Utama
13
Sukses
Keluar Aplikasi
Aplikasi ditutup No.tujuan,
Tulis SMS
kunci dan teks pesan
Kirim Teks Pesan Terenkripsi 3.
Menu Utama
Baca SMS Dekripsi Pesan
Kunci Kunci dan
Balas Pesan
teks
Teks pesan terenkripsi
Sukses
Pesan dibaca
Sukses
Teks terdekripsi
Sukses
Teks terenkripsi
Sukses
Aplikasi
Bantuan
Sukses
Pesan terkirim
Tampilan Tentang
Tentang Aplikasi
Sukses
Tampilan Bantuan
Sukses Sukses
4.2.2 Uji Coba Sistem Uji coba sistem dibutuhkan untuk memeriksa apakah sistem yang dibuat sudah sesuai rancangannya. Tujuan uji coba sistem adalah untuk memastikan semua fitur berfungsi dengan baik sesuai yang diharapkan oleh pengguna. 4.2.2.1 Kebutuhan Sistem Berdasarkan analisis SWOT dan kebutuhan, hasil pengujian sistem menunjukkan bahwa sistem ini dapat bekerja dengan baik, sesuai dengan analisis yang dilakukan. Hasil pengujian sistem sebagai berikut: 1. Sistem mampu menjalankan fitur-fitur utama aplikasi seperti enkripsi, dekripsi, kirim, terima pesan dan balas pesan dengan baik. 2. Sistem mampu mengikuti alur aplikasi sesuai dengan yang direncanakan.
Kebutuhan sistem yang diperlukan untuk tahap uji coba sistem ini adalah kebutuhan yang terdapat pada smartphone sebagai wadah implementasi algoritma enkripsi dekripsi yang dimiliki aplikasi ini. Adapun spesifikasi smartphone yang dibutuhkan untuk menjalankan aplikasi ini adalah: 1. Sistem operasi android versi 2.2 ke atas.
14
2. Memori minimal 180 MB.
5.
Kesimpulan Berdasarkan rumusan masalah dari hasil pengujian yang telah dilakukan, dapat disimpulkan : 1. Aplikasi Kriptografi Advanced Encryption Standard (AES) berbasis Android dibuat melalui tahap analisis yaitu dengan menggunakan analisis kebutuhan dan analisis kelayakan, setelah itu tahap perancangan mulai dari rancangan konsep dan rancangan user interface.
2. Aplikasi Kriptografi Advanced Encryption Standard (AES) berbasis Android dapat memenuhi tujuannya yaitu mampu meningkatkan keamanan pengiriman dan penerimaan SMS dengan cara enkripsi dan dekripsi untuk smartphone android. Dan ini membantu pengguna yang ingin menjaga keamanan dalam berkomunikasi khususnya lewat SMS dari pihak-pihak yang tidak diinginkan.
6.
Daftar Pustaka
Ariyus, Dony. 2006. Kriptografi: Keamanan Data dan Komunikasi. Yogyakarta: Graha Ilmu. Ariyus, Dony. 2008. Pengantar Ilmu Kriptografi Teori Analisis dan Implementasi. Yogyakarta: Andi Offset. Munir, Rinaldi. 2004. Bahan Kuliah “Advanced Encryption Standard (AES)”. Bandung: Institut Teknologi Bandung. Suhendar dan Hariman. 2002. Visual Modeling menggunakan UML dan Rational Rose. Bandung: Penerbit Informatika. Suprianto, Dodit dan Rini Agistina. 2012. Pemrograman Aplikasi Android. Yogyakarta: Mediakom.
15