CREATING DELIVERY MESSAGING APPLICATION USING RSA AND AES (ADVANCED ENCRYPTION STANDARD)-128 ENCRYPTION ALGORITHM
Rio Bastian Undergraduate Program, Faculty of Industrial Engineering, 2010 Gunadarma University http://www.gunadarma.ac.id
Keywords: Cryptography, Encryption, AES, RSA, Socket Programming ABSTRACT
Flow of information from one computer to another more rapidly, with strong support access will speed up this process, the network joint communication media can be used by many people, more people in one space interaction the scope of the same network, the greater the likelihood the occurrence of attack are we send data, as for it could be a reconnaissance attack, vandalism or theft of data. One of the best solution is to make the data unreadable to others, even if someone else managed to retrieve the data, he will not be able to read it, security can be achieved by using one of the encryption cryptographic techniques. AES (Advanced Encryption Standard) and RSA is the current standard encryption technology, security level two of this algorithm has been tested, using the JAVA programming language that encryption algorithm process can be computerized and used as a safety on process the message. RSA encryption using the key form numbers and do the encryption of data capital format letter with the limited size of 99 characters, while using the AES encryption key as many as 16 characters that are a combination of letters and numbers, with the number of characters that can be encrypted as many as 16 characters in single process.
Creating Delivery Messaging Application Using RSA and AES(Advanced Encryption Standard)-128 Encryption Algorithm Rio Bastian, Informatics Engineering Departement, Graduate Program, Gunadarma University, Jakarta, 2010 Email: altanovela[at]gmail[dot]com
Abstract—Arus informasi dari satu komputer ke komputer lain semakin pesat, dengan adanya dukungan akses jaringan akan semkin mempercepat proses tersebut, jaringan merupakan media komunikasi bersama yang dapat digunakan oleh banyak orang, semakin banyak orang berinteraski dalam satu ruang lingkup jaringan yang sama maka semakin besar pula kemungkinan terjadinya aksi penyerangan data yang sedang kita kirimkan, adapun serangan tersebut dapat berupa pengintaian, perusakan maupun pencurian data. Salah satu cara penyelesaian terbaik adalah dengan membuat data itu tidak dapat dibaca orang lain, sekalipun orang lain berhasil mengambil data tersebut, dia tidak akan dapat membacanya, pengamanan tersebut dapat dilakukan dengan menggunakan salah satu teknik kriptografi yaitu enkripsi. AES(Advanced Encryption Standard) dan RSA merupakan standar teknologi enkripsi saat ini, tingkat kemanan dua buah algoritma ini sudah teruji, dengan menggunakan bahasa pemrograman JAVA proses algoritma enkripsi tersebut dapat di komputerisasi dan dimanfaatkan sebagai pengaman pada proses oengiriman pesan tersebut. RSA menggunakan kunci enkripsi berupa angka dan melakukan enkripsi terhadap data huruf berformat kapital dengan ukuran yang dibatasi sebanyak 99 karakter, sedangkan AES menggunakan kunci enkripsi sebanyak 16 karakter yang merupakan gabungan dari huruf maupun angka, dengan banyaknya karakter yang dapat dienkripsi sebanyak 16 karakter dalam sekali prosesnya.
Kata Kunci-Kriptografi, Enkripsi, AES(Advanced Encryption Standard), RSA, Socket Programming Abstract—Flow of information from one computer to another more rapidly, with strong support access will speed up this process, the network joint communication media can be used by many people, more people in one space interaction the scope of the same network, the greater the likelihood the occurrence of attack are we send data, as for it could be a reconnaissance attack, vandalism or theft of data. One of the best solution is to make the data unreadable to others, even if someone else managed to retrieve the data, he will not be able to read it, security can be achieved by using one of the encryption cryptographic techniques. AES (Advanced Encryption Standard) and RSA is the current standard encryption technology, security level two of this algorithm has been tested, using the JAVA programming language that encryption algorithm process can be computerized and used as a safety on process the message. RSA encryption using the key form numbers and do the encryption of data capital format letter with the limited size of 99 characters, while using the AES encryption key as many as 16 characters that are a combination of letters and numbers, with the number of characters that can be encrypted as many as 16 characters in single process. Keywords—Cryptography, Encryption, AES(Advanced Encryption Standard), RSA, Socket Programming
I. P ENDAHULUAN
S
Eiring dangan kemajuan teknologi saat ini, arus pengiriman data dan informasi dari satu individu ke individu lain juga semakin cepat, jaringan komputer sebagai sebagai salah satu teknologi yang digunakan sebagai media dalam pertukaran data juga telah mengalami banyak kemajuan, sehingga transfer data dapat dilakukan lebih cepat dan efisien. Masalah yang terjadi adalah banyaknya pengguna jaringan internet, pada tahun 2008 saja jumlah pengguna internet sudah mencapai 1,5 miliar jiwa atau sekitar 23,3% penduduk dunia, semakin banyak orang berinteraski dalam satu ruang lingkup jaringan yang sama maka semakin besar kemungkinan terjadinya cybercrime berupa pencurian data. salah satu solusi tersbut adalah dengan mengkodifikasi isi data, sekalipun orang lain berhasil mencuri data tersebut, dia tidak akan dapat membacanya. Hal ini dapat dilakukan dengan menggunakan teknik kriptografi yaitu enkripsi, idenya adalah melakukan kodifikasi kepada data sehingga data tersebut tidak dapat dibaca dengan mudah, agar dapat dibaca kembali kita harus melakukan dekripsi dengan menggunakan algoritma yang sama seperti saat kita melakukan enkripsi. Salah satu agoritma enkripsi modern yang menjadi standar saat ini adalah algoritma AES(Advanced Encryption Standard), algoritma AES merupakan salah satu algoritma enkripsi kunci simetris, yaitu algoritma yang menggunakan kunci enkripsi yang sama dengan kunci yang digunakan untuk dekripsi, sehingga hanya pihak yang memiliki kuncinya saja yang dapat membaca isi data yang telah dienkripsi tersebut. Sejak November 2001 AES telah digunakan oleh NIST(National Institute of Standards an Technology) sebagai standar pemrosesan data untuk informasi federal, kemudian dilanjutkan pada bulan Juni 2003 pemerintah Amerika mengumumkan bahwa AES cukup aman untuk memproteksi informasi. Algoritma RSA sebagai salah satu algoritma kriptografi kunci publik(asimetris), yaitu kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi, sehingga memungkinkan kedua belah pihak yang saling bertukar pesan memiliki kunci enkripsi dan dekripsi masing masing. Algoritma ini ditemukan oleh tiga orang peneliti dari MIT(Massachussets Institute of Technology) pada tahun 1976, mereka adalah Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Java sebagai bahasa pemrograman open source, memiliki banyak fungsi yang dapat membantu seorang programmer untuk mnegembangkan sebuah aplikasi, salah satu fungsi tersebut adalah fungsi socket connection yang digunakan untuk mengembangkan aplikasi berbasis jaringan. Berangkat dari masalah yang telah dipaparkan diatas, maka penulis ingin membuat sebuah aplikasi yang dapat mengirimkan pesan melalui media jaringan dengan mengimplementasikan algoritma enkripsi AES dan RSA pada proses pengiriman datanya, penulis memberi nama aplikasi tersebut "Network Encryption Messanger".
II. BATASAN M ASALAH Penulis membuat sebuah aplikasi yang dapat mengirimkan pesan dari satu komputer ke komputer lain dengan menggunakan bahasa
pemrograman Java, aplikasi ini merupakan sebuah sarana implementasi algoritma RSA dan AES-128 dalam mengamankan pesan yang dikirim.
III. T UJUAN Adapun tujuan dari penulisan ini antara lain : • Membuat aplikasi chat dengan bahasa pemrograman Java. • Membuat core RSA dan AES-128 sebagai sebuah modul pengamanan. • Membandingkan ketahanan algoritma RSA dan AES-128 dengan menggunakan analisis frekwensi.
IV. A NALISA A LGORITMA Sebelum kita membuat modul core dari kedua algoritma di atas kita harus memahami terlebih dahulu cara kerja dari algoritma tersebut, hal ini sangat penting agar kita dapat membuat algoritma untuk melakukan proses dekripsi.
A. Algoritma RSA Algoritma RSA adalah algoritma kunci publik yang populer, Algoritma RSA dibuat oleh tiga orang ilmuwan dari MIT(Massachusset Institute of Technology) pada tahun 1976, ilmuwan tersebut adalah Ron Rivest, Adi Shamir, dan Leonard Adleman, nama RSA sendiri diambil dari gabungan nama ketiga penemunya yaitu, (R)ivest (S)hamir (A)dleman. Algoritma ini dinilai aman karena melibatkan proses perhitungan bilangan prima dalam jumlah yang besar, secara garis besar proses enkripsi dengan Algoritma RSA dibagi kedalam dua buah proses, yaitu membangkitkan pasangan kunci dan melakukan enkripsi dengan pasangan kunci tersebut. Algoritma membangkitkan pasangan kunci : 1) Pilih secara acak 2 buah bilangan prima, P dan Q. 2) Hitung nilai n = P.Q, sebaiknya nilai P tidak sama dengan Q agar tidak mudah difaktorkan dengan cara menarik akar pangkat 2 dari n. 3) Hitung Φ(n)=(P-1)(Q-1). 4) Pilih kunci publik e yang relatif prima dengan Φ(n), relatif prima artinya nilai PBB(kuncipublik, Φ(n))=1. 5) Buat sebuah kunci privat d dengan menggunakan persamaan d = 1+kΦn e Nilai k adalah salah satu bilangan bulat 1, 2, 3, , i. yang menghasilkan variabel d yang bulat, ketika diproses dengan menggunakan persamaan diatas. Algoritma Enkripsi : 1) Anggaplah kita telah memiliki pasangan kunci enkripsi e nilai n.(cara mencari nilai e dan n dapat dilihat pada penjelasan di atas). 2) Input sebuah plaintext(Pj ), setiap karakter pada plaintext(Pj ) akan diindikasikan sebagai P=P1, P2, P3,..., Pj. 3) Cari ciphertext(Cj ) dengan cara : C1 = P1e modn C1 = P2e modn .... Cj = Pje modn
Proses dekripsi dari RSA tidakjauh berbeda dengan proses enkripsinya, hanya perlu merubah nilai fariabel e menjadi fariabel d dimana d merupakan kunci dekripsi, sehingga persamaan dekripsinya menjadi , hal penting yang perlu diketahui dari algoritma RSA adalah proses matematika yang terlibat seperti pencarian bilangan prima, PBB([param1],[param2]) atau Pembagi Bersama Terbesar(greatest common divisor), dan Totient Euler(Φ(n)). PBB digunakan untuk mencari nilai pembagi bilangan bersama terbesar, sebagai contoh PBB(27,36) : Faktor(25)= 1, 3, 9, 27 Faktor(36) = 1, 2, 3, 4, 9, 12, 18, 36
Faktor pembagi bersama 25 dan 36 adalah 1, 3, 9. Maka PBB(25, 36) = 9. Tottient Euler (Φ(n)) menyatakan jumlah bilangan bulat yang relatif prima terhadap n, relatif prima memiliki arti PBB(n, m) = 1, dimana dalam kasus ini n = P.Q dan m adalah bilangan bulat.
B. Algoritma AES-128 Proses enkripsi yang terjadi pada AES akan menggunakan empat fungsi utama, yaitu Add Round Key, Sub Bytes, Shift Rows, dan Mix Column. Add Round Key adalah melakukan proses XOR antara state dengan key, Sub Bytes adalah kodifikasi nilai dari state sesuai dengan tabel S-Box, Shift Rows adalah menggeser nilai byte state sesuai dengan nilai barisnya secara simultan, Mix Column adalah mengacak nilai kolom pada state dengan menggunakan Galois Field, hal yang tidak kalah penting pada AES adalah mencari nilai round key, nilai round key dibutuhkan dalam proses enkripsi untuk tiap putaran, jumlah putaran AES tergantung dari ukuran kunci yang dipakai perhatikan tabel berikut. TABLE I P ERBANDINGAN PANJANG KUNCI DAN JUMLAH PUTARAN PADA AES
AES-128 AES-192 AES-256
Panjang Kunci 128 bit 192 bit 256 bit
Jumlah Putaran 10 12 14
Pada tiap putaran akan digunakan key yang di dapat di dari round key, secara garis besar algoritma AES pertama kali akan membuat initial round dengan melakukan proses XOR antara plaintext dengan key, dan hasilnya akan disimpan di plaintext, kemudian langkah selanjutnya adalah dengan melakukan putaran sesuai dengan jumlah kuncinya, namun pada putaran terakhir akan terdapat sedikit perbedaan. Pada putaran 1 (Σr-1) proses yang terjadi adalah Sub Bytes, Shift Rows, Mix Column, Add Round Key dengan key sesuai roundnya, sedangkan pada putaran ke Σr proses yang terjadi hanya Sub Bytes, Shift Rows, dan Add Round Key, tanpa Mix Column, untuk lebih jelasnya perhatikan gambar di bawah ini.
Fig. 1.
Alur algoritma AES-128
Proses pada putaran ke (Σr-1) terjadi secara simultan, dimana hasilnya akan disimpan pada state, kemudian untuk round terakhir hasilnya akan disimpan pada cpher text. Penjelasan mengenai Add Round Key, Sub Bytes, Shift Rows, Mix Column, dan pencarian nilai Round Key akan dijelaskan secara lebih terperinci di bawah.
C. Add Round Key Proses Add Round Key adalah proses untuk mencari nilai XOR antara state dengan key dan kemudian hasilnya akan disimpan pada
state, key disini tidak bersifat konstan, pada initial round, key yang dimaksud adalah chiperkey, sedangkan pata round(1-(Σr-1)) key yang digunakan adalah key yang berasal dari round key.
Melihat gambar di atas dapat kita jabarkan bahwa nilai S’n,c(n merepresentasikan nilai kolom dari 0 sampai 3) dapat dicari dengan cara sebagai berikut :
D. Sub Bytes Sub Bytes merupakan proses kodifikasi nilai states sesuai dengan tabel S-Box, tabel S-Box bersifat konstan, nilai nilai yang ada pada tabel S-Box telah ditetapkan sebelumnya, secara umum nilai nilai dari tabel S-Box tersebut dapat dilihat pada gambar di bawah ini.
Nilai S’n,c di dapat dari proses XOR tiap kolom yang sebelumnya telah di kalikan dengan matriks polinom horizontal secara dot product, kemudian hasilnya akan disimpan sesuai dengan kolomnya masing masing.
G. Round Key
Fig. 2.
Tabel S-Box
Apabila kita memiliki state berisi 16 karakter dalam hexadesimal berturut turut sebagai berikut 32, 88, 31, e0, 43, 5a, 31, 37, f6, 30, 98, 07, a8, 8d, a2, 34, ambil contoh kita akan melakukan Sub Bytes terhadap karakter 32, maka kita dapat cari langsung angka 3 pada kolom bold, kemudian 2 pada baris bold, maka hasilnya adalah karakter 23, begitu pula dengan karakter lainnya.
E. Shift Rows Shift Rows adalah proses pergeseran nilai byte sesuai dengan nilai barisnya, pergeseran ini bersifat siklik, artinya tiap pergeseran yang keluar dari jumlah baris maka akan dimasukan ke dalam baris dibelakangnya, ,untuk lebih jelasnya perhatikan gambar di bawah ini.
Round Key merupakan sekumpulan key berjumlah Σr yang sengaja di generate dari key awal(key yang diinput oleh user), tiap key ini nantinya akan digunakan untuk proses Add Round Key sesuai dengan nilai putarannya masing masing, pada putaran ke 0 akan di gunakan round key ke 0, pada putaran ke 1 akan digunakan round key ke 1, begitu seterusnya hingga Σr, cara membuat round key adalah dengan melakukan sejumlah proses dasar AES dengan target key, adapun proses tersebut adalah rotate column, sub bytes, dan Add Round Key. Rotate merupakan proses rotasi 1 byte kolom dari nilai paling atas ke bawah, sub bytes sama dengan proses sebelumnya, proses Add Round key sedikit berbeda, karena target XOR merupakan kolom key yang telah di rotate dan di sub bytes dengan nilai cipher(pada putaran pertama) dan di XOR kan lagi dengan nilai Rcon merupakan eksponensiasi dari 2 ke nilai yang diinput user, dalam hal ini nilai tersebut adalah key, hasil dari semua proses tersebut akan disimpan pada kolom pertama untuk round key pertama. Pada putaran berikutnya Add Round Key akan melakukan XOR antara kolom round key yang di dapat pada putaran pertama dengan kolom key ke 2 yang telah di rotate dan di sub bytes, dan hasilnya akan disimpan pada kolom ke dua pada round key pertama, begitu selanjutnya hingga semua kolom pada round key yang berjumlah Σr terisi.
V. PENGUJIAN APLIKASI
Fig. 3.
Proses Shift Rows
Sebagai contoh kita memiliki sebuah state S, yang berisi karakter S0,0 sampai S3,3, artinya kita punya empat baris dan empat kolom dengan masing masing index 0 3, maka pada baris ke 0 akan di shift sejauh 0 byte, hasilnya adalah posisi itu sendiri(tetap), pada baris ke 1 akan di shift sejauh 1 byte, baris ke dua akan di shift sebanyak 2 byte, dan baris ke 3 akan di shift sejauh 3 byte. Perhatikan gambar, posisi tiap tiap karakter pada state S stelah dilakukan proses shift rows.
F. Mix Column Proses Mix Column adalah mengalikan tiap tiap kolom pada state dengan sebuah polinom bernilai tetap, dalam hal ini polinom yang dimaksud adalah a(x) = 03x3 + 01x2 + 01x + 02, untuk lebih jelasnya perhatikan gambar di bawah ini.
Fig. 4.
Perhitungan Mix Columns
Pada tahap ini akan dilakukan pengujian terhadap aplikasi, apakah aplikasi berjalan sesuai dengan tujuan atau tidak, apabila aplikasi berjalan sesuai maka dilakukanlah analisa kebutuhan minimal untuk perangkat keras, pada tahap ini akan ditentukan berapakah minimal speseifikasi perangkat keras yang dibutuhkan. Dalam proses pengujian ini penulis membuat dua buah skenario yang akan di uji cobakan kepada aplikasi, pertama skenario RSA dan kedua skenario AES, adapun skenarionya adalah sebagai berikut. Skenario RSA 1) Sebuah aplikasi yang dibuat dijalankan pada sebuah komputer, dalam hal ini aplikasi tersebut dijalankan dengan status sebagai server, perhatikan bagian status koneksi, user coba mengirim pesan berisi kalimat "UNIVERSITAS GUNADARMA" dengan menggunakan algoritma enkripsi RSA dengan public key 779931, setelah di generate maka akan menghasilkan private key 1151 dan nilai n = 3337, setelah dienkripsi akan menghasilkan cipher text "UM V? H Q7 + 9 )ACGRH0!"+,!!", kemudian cipher text tersebut dikirm ke komputer lain, pada uji coba ini, koneksi dibangun dengan menggunakan perantara localhost. 2) Bukalah sebuah aplikasi serupa dan jalankan dalam mode client, masukan alamat IP server, karena kita terkoneksi dengan menggunakan localhost maka IP server yang kita masukan adalah 127.0.0.1, maka secara otomatis pesan yang tadi dikirim oleh client akan diterima dan ditampilkan pada panel pesan masuk, untuk melihat isi pesan yang sebenaranya kita harus melakukan proses dekripsi, caranya adalah pilih jenis algoritma
Fig. 5.
Mode RSA (server)
enkripsi yaitu RSA, masukan cipher key dan nilai n pada panel pesan masuk, dalam kasus ini cipher key dan nilai n yang dimaksud masing masing adalah 1151 dan 3337. kemudian tekan button decrypt, maka pada text area yang telah ditentukan akan ditampilkan isi pesan sesungguhnya, dalam kasus ini isi pesan yang dimaksud adalah "UNIVERSITAS GUNADARMA".
Fig. 6.
Fig. 7.
Mode AES (server)
Fig. 8.
Mode AES (client)
Mode RSA (client)
Skenario AES 1) Skenario kedua bertema mengirimkan pesan yang berisi kalimat "RIO BASTIAN GO GET GOLD" dengan algoritma AES dengan kunci "5040661901031 989", langkahnya adalaah Jalankan aplikasi yang dibuat, pilih tab pane 2 yaitu tab AES, kemudian isi text field pada bagian kunci enkripsi dengan karkater "5040661901031989", kemudian isi pesan dengan pesan yang telah ditentukan yaitu "RIO BASTIAN GO GET GOLD", kemudian tekan button encrypt, untuk mengirim pesan kita dapat langsung tekan button kirim, maka hasilnya akan seperti gambar di bawah ini, 2) Langkah selanjutnya adalah kita lihat pesan yang dikirim tadi pada client, kita dapat lihat pesan tersebut sudah masuk atau belum pada text area Pesan masuk, pesan yang dikirim merupakan pesan yang telah terenkripsi dengan menggunakan algoritma AES, untuk melihat isi sesungguhnya dari pesan tersebut maka kita harus mendekripsinya, caranya adalah lihat pada panel masuk di samping kanan, kita pilih jenis algoritma AES, kemudian kita masukan kunci enkripsi, dalam kasus ini kunci yang dimaksud adalah "5040661901031989", setelah diinput tekan button decrypt, maka secara otomatis pesan tersebut akan di dekripsi dan menghasilkan pesan sesungghunya, untuk lebih jelasnya perhatikan gambar di bawah ini.
VI. ANALISIS APLIKASI VII. P ERBANDINGAN K EMANAN RSA DAN AES-128 Pada dasarnya kedua algoritma ini, RSA dan AES-128 merupakan algoritma yang kuat dan sulit untuk diretas, kekuatan RSA terletak pada penggunaan bilangan matematika prima dengan jumlah besar sebagai key sehingga sangat sulit bila kita coba menembus algoritma ini dengan cara meretas key-nya, sedangkan AES-128 terletak pada variasi kemanan yang digunakan berupa shift rows, sub bytes, mix columns dan add round key. Namun algoritma RSA pada dasarnya masih dapat diretas dengan menggunakan teknik analisis frekwensi, teknik analisi frekwensi adalah teknik meretas sebuah ciphertext berdasarkan kemungkinan karakter yang paling sering muncul dalam statu istilah, misal karakter a pada setiap kata dalam bahasa indonesia sering muncul dengan presentase 73% dan karakter lain memiliki presentasenya masing masing. Kita akan meretas bukan pada key-nya melainkan langsung pada ciphertext-nya, hal ini dimungkinkan bila kita menerapkan algoritma RSA murni dimana prosesnya dilakukan tanpa menggunakan fungsi pengacakan karakter, artinya tiap karakter plaintext akan dikodifikasi menjadi ciphertext tepat pada posisi karakter yang sama, plaintext P1 , P2 , P3 , . . . Pi akan dikodifikasi menjadi ciphertext C1 , C2 , C3 , . . . Ci . Kita ambil contoh bila sebuah pesan "MEDAN DAN BANJARMASIN BANJIR" dikodifikasi dengan menggunakan RSA menjadi. ôÅü0æpü0æp?0æk0Lô09*æp?0æk*L
Maka dengan menggunakan teknik analisis frekwensi bila kita menjadikan acuan bahwa kalimat tersebut berasal dari bahasa indonesia dan karakter ’a’ dalam bahasa indonesia adalah karakter yang paling sering muncul, maka kita dapat mencoba merubah karakter ciphertext yang paling sering muncul dengan karakter ’a’, dalam ciphertext tersebut karakter yang paling sering muncul adalah karakter ’0’ sebanyak 6 kali. ôÅüAæpüAæp?AækALôA9*æp?Aæk*L Perhatikan bagian A, dalam bahasa indonesia biasanya karakter A akan sering ditempatkan ditengah untuk membentuk kata DAN. Maka bila kita coba mengganti semua karakter ’ü’ dan ’æ’ masing masing dengan dengan menggunakan karakter ’D’ dan ’N’, maka akan didapatkan. ôæpDAæp?AækALôA9*æp?Aæk*L Perhatikan bagian ôDAN, pembentukan kata yang paling sesuai dalam bahasa indonesia untuk bagian tersbut adalah antara BADAN dan MEDAN, kita pilih MEDAN karena karakter kedua merupakan karakter yang berbeda. Sehingga kita dapat merubah ciphertext diatas menjadi. MEDANpDANp?ANkALMA9*Np?ANk*L Dengan demikian kita dapat langsung menebak bahwa karakter ’p’ adalah spasi dan pada bagian ?ANkALMA9*N kemungkinan besar merupakan nama sebuah kota, dan kita tebak BANJARMASIN, sehingga apabila kita sesuaikan dengan keadaan ciphertext akan menjadi. MEDANpDANpBANJARMASINpBANJIR. Sesuai dengan kalimat plaintext-nya bukan tanpa harus meretas key-nya. hal ini dapat dihindari bila kita menambahkan sebuah fungsi pengacak kata pada algoritma RSA, juga memastikan untuk mengganti sesering mungkin key yang kita gunakan untuk mengenkripsi sebuah pesan.
VIII. A NALISA K EBUTUHAN M INIMUM Pada sub bab ini akan dibahas mengenai kebutuhan minimum agar sebuah Personal Computer(PC) dapat menjalankan aplikasi ini, dalam hal ini kita meletakkan titik berat pada konsumsi memori dan besaran hard disk yang dibutuhkan oleh aplikasi, untuk membantu proses tersebut penulis menggunakan bantuan aplikasi jconsole untuk memperoleh datanya. • Kebutuhan Memori Minimal Untuk menentukan kebutuhan memori minimal penulis menggunakan bantuan aplikasi jconsole, aplikasi ini bertugas mengum pulkan data besarnya memori yang dikonsumsi ketika aplikasi ini dijalankan, jconsole berjalan berdasarkan PID(Process ID) dari sebuah aplikasi, hasil uji coba yang dilakukan adalah pendataan jumlah konsumsi memori yang diperlukan aplikasi saat berjalan selama renatang waktu tertentu, dari uji coba tersebut didapatkan data konsumsi memori dalam bentuk tabel sebagai berikut.
TABLE II KONSUMSI M EMORI
Time 7:34:37 AM 7:34:47 AM 7:34:51 AM 7:34:55 AM 7:34:59 AM 7:35:03 AM 7:35:07 AM 7:35:11 AM 7:35:15 AM 7:35:19 AM 7:35:23 AM 7:35:27 AM 7:35:31 AM 7:35:35 AM 7:35:39 AM 7:35:43 AM 7:35:47 AM 7:35:51 AM 7:35:58 AM 7:35:59 AM 7:36:03 AM 7:36:07 AM 7:36:11 AM 7:36:15 AM 7:36:19 AM 7:36:26 AM 7:36:27 AM 7:36:31 AM
Memory Used 6374024 5569080 7208248 7394720 5614936 8102120 6716784 5431352 6034464 6841992 7627880 6383768 7356184 6757960 5428688 6052232 8192504 7222232 8014656 8176072 7391568 5870208 6453632 6766440 5266072 8514384 7856344 6493192
Commited 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984 11177984
Max 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960 97320960
Tabel di atas merupakan tabel konsumsi memori dari aplikasi yang dibuat, dimana pengambilan data dilakukan selama 00.01.54, dengan rata rata memori yang terpakai adalah 6.825.419,143 bytes atau 6.509226935 Mb, kolom commited menggambarkan banyaknya memori yang dijamin oleh sistem dapat digunakan oleh JVM(Java Virtual Machine), kolom Max menyatakan maksimal memori yang dapat digunakan untuk manajemen memori. Bila digambarkan dalam bentuk chart maka akan menghasilkan grafik seperti gambar dibawah ini.
Fig. 9. •
Grafik konsumsi memori aplikasi
Kebutuhan Minimum Storage
Kebutuhan minimal dari penyimpanan(storage) dalam hal ini berupa Hard Disk aplikasi ini tidak memerlukan banyak penyimpanan, minimal harus memiliki free space sebesar 988 Kb (1,011,712 bytes), hal ini di karenakan aplikasi ini berbentuk sebuah file dengan ekstensi *.jar, yang dapat dieksekusi oleh komputer dengan sistem operasi apapun yang telah memiliki Java runtime versi 1.6.0-20-b02, sedangkan minimal free space yang dibutuhkan Java runtime versi 1.6.0-20-b02 adalah sebesar 116 Mb (121,856,000 bytes), sehingga total free space yang dibutuhkan akan menjadi 122,867,712 bytes atau kuranglebih sebesar 118 Mb.
IX. PENUTUP Kesimpulan – Uji coba aplikasi membuktikan bahwa aplikasi dapat berjalan pada komputer yang telah terpasang JRE 1.6.0-20b02 dengan spesifikasi memori sebesar 6.825.419,143 bytes dan free space minimum pada hard disk sebesar 118 Mb. – Algoritma RSA murni masih dapat ditembus dengan menggunakan teknik analisis frekwensi sedangkan algoritma AES-128 tidak, hal ini disebabkan pada algoritma AES terdapat fungsi pengacakan karakter sedangkan RSA tidak . – Algoritma RSA memerlukan waktu eksekusi yang lebih lama dibandingkan algoritma AES-128, karena pada algoritma RSA melibatkan perhitungan bilangan prima dalam jumlah besar. Saran Dengan berkembangnya teknologi algoritma enkripsi saat ini dikenallah sebuah algoritma "Hybrid" yang merupakan penggabungan dari algoritma enkripsi simetris dan asimetris, dalam kaitanya dengan penulisan ini kita dapat menggabungkan algoritma RSA dan AES-128 dalam satu sistem kemanan terpadu yang tidak terlepas sebagai modul independen.
R EFERENCES [1] Berent, Adam, AES(Advanced Encryption Standard) Simplified, ABI Software Development. [2] Xintong, Kit Choy, Understanding AES Mix-Columns Transformation Calculation, Univerity of Wollongong, Australia. [3] Federal Information Processing Standards Publications (FIPS PUBS)-197, Advance Encryption Standard(AES), 26 November 2001. [4] Munir, Rinaldi, Kriptografi, Penerbit Informatika, 2006. [5] Adamson Chris, Marinacci Joshua, Swing Hacks, O’Reilly, Juni 2005. [6] Dwi Prasetyo, Didik, 150 Rahasia Pemrograman Java, Elex Media Komputindo, 2007. [7] Purbo, W Onno, Trik Pemrograman Java untuk Jaringan dan Internet, Elex Media Komputindo, 2007. [8] http://nusantaranews.wordpress.com, "Daftar Jumlah Pengguna Internet Dunia", diakses selama bulan juli 2010. [9] http://www.moserware.com/2009/09/stick-figure-guide-toadvanced.html, A Stick Figure Guide to the Advanced Encryption Standard (AES), diakses selama bulan juni 2010.
Rio Bastian: lahir di Pemalang, 03 Maret 1989 anak kedua dari pasangan Khalimi dan Sudiyati. Penulis telah pernah membuat penulisan ilmiah di kampus Gunadarma pada tahun 2009 dengan judul "Pembuatan Aplikasi News Reader pada ponsel dengan menggunakan J2ME dan kXML". penulis sangat berminat dalam bidang programming baik web maupun dektop, adapun beberapa aplikasi dan website yang pernah dibuat penulis diantaranya Journal Analysis, Macro Excel with MySQL dependencies, QRCode encoder, pembuatan website www.rosefloristasri.com, dll. Saat ini penulis menjadi salah satu Asisten Tetap di Laboratorium Teknik Informatika Universitas Gunadarma, juga bekerja sebagai programming developer di rinktechnology. Semoga penulisan ini bukan merupakan penulisan terakhir yang penulis buat. penulis dapat dihubungi melalui alamat Email :
[email protected].