IMPLEMENTATION OF CRYPTOGRAPHY USING ADVANCE ENCRYPTION STANDARD(AES) ON REMOTING SERVER DESKTOP APPLICATION BY MOBILE PHONE
Zhilal El-haq Mubarak Jurusan Teknik Informatika, Fakultas Teknologi Industri, Universitas Gunadarma, Margonda Raya 100 Depok 16424 telp (021) 78881112, 7863788 Abstrak : Kriptografi menjadi suatu bagian yang tidak dapat dipisahkan dari sistem keamanan jaringan pada era informasi global. Terdapat banyak parameter pada sistem kriptografi, sebagai contoh : tingkat keamanan algoritma, flexibility, distribusi frekuensi kemunculan karakter, variansi distribusi, avalanche effect, brute force attack dan waktu eksekusi data. Parameter tersebut dapat menjadi panduan bagi pengguna untuk menyesuaikan algoritma terhadap tingkat kebutuhan sistem kriptografi. Algoritma Advanced Encryption Standard (AES) merupakan contoh algoritma kriptografi berbasis blok cipher dimana pada kedua algoritma tersebut terdapat beberapa kesamaan yaitu, jenis kunci adalah kunci simetris, ukuran blok data senilai 128 bit dan panjang kunci dengan nilai 128, 192 dan 256 bit. Pada tugas akhir ini dilakukan penerapan AES pada aplikasi pengendalian jarak jauh komputer server melalui telepon genggam. Parameter performansi yang diukur meliputi tingkat keamanan, perbandingan dengan algoritma lain dan avalanche effect. Penerapan sebenarnya pada tugas akhir ini menggunakan bahasa pemrograman Java.
Abstract :
Cryptography becomes a fully integrated part of network security system in global information era. There are some parameters for cryptography system, they are level of algorithm security, flexibility, characters appearance distribution frequency, distribution variance, avalanche effect. Those parameters are then could be uses as the guidance for the users to choose the suitable cryptography system based on their needs.
Advanced Encryption Standard (AES) are the examples of the cipher block-based cryptography system. Both cryptography systems using the same symmetric keys, 128 bit block size, and 128, 192, 256 length of keys. This final project measures and analyzes the comparison of AES algorithm performance. This comparison facilitated by the software which simulated the cryptography process for both algorithms. The performance parameters measurements including security, comparison of other algorithm and avalanche effect. This final project use Java programming language as the real implementation.
Keywords: Remote Server, Mobile Phone, Early Warning System, java,Advanced Encryption Starbdard(AES).
Tanggal Pembuatan : 28 Agustus 2010 PENDAHULUAN Pentingnya waktu pada era globalisas ini membuat manusia ingin melakukan segalanya secara praktis, flexibel dan portable. Sehingga timbul istilah waktu adalah uang, mereka dapat membayar dengan apa saja untuk mendapatkan sesuatu yang menjadikan pekerjaan manusia menjadi praktis, flexibel dan portable. Sehingga tercipta teknologi yang terintegrasi yaitu system client server dimana dapat mengintegrasikan sebuah pekerjaan yang dapat diakses kapanpun dan dimanapun. Sehingga pentingnya peran server dalam kehidupan manusia pada era globalisasi yang tentunya memiliki banyak kelebihan dan semakin berkembang. Namun, keterbatasannya waktu untuk menjaga dan mengawasi server tersebut membuat fungsi server menjadi kurang optimal. Masalah timbul saat server kurang optimal dan mulai kehilangan kendali seperti memory yang penuh dapat menyebabkan server mati sehingga administrator dibutuhkan untuk menjaga server. Tetapi keterbatasan waktu administrator menyebabkan server tidak diawasi setiap saat 1 x 24 jam, contohnya jika pengguna membutuhkan data pada malam hari dimana server mati dan saat itu tidak terdapat administrator yang dapat memperbaiki server tersebut dalam kurun waktu beberapa jam, sedangkan jika admin diminta datang untuk memperbaiki server sementara pada malam hari sulit untuk dihubungi serta butuhnya waktu dalam perjalanan ataupun para admin sedang keluar kota sehingga tidak dapat diperbaiki server tersebut maka pengguna akan kehilangan kesempatan untuk mendapatkan data tersebut.
Sehingga muncul ide penulis untuk membuat aplikasi pengendalian jarak jauh komputer server melalui telepon genggam. Karena keterbatasan kemampuan, penulis membuat team dalam pembuatan aplikasi pengendalian server tersebut. Team penulis membagi-bagikan tugas dan tanggung jawab kedalam 4 bagian sesuai banyaknya team penulis, diantaranya adalah bagian antar muka, komunikasi data menggunakan socket programming, image processing dan sistem keamanan informasi dimana penulis bertanggung jawab atas bagian sistem keamanan pada penelitian besar tersebut. Jika dilihat dari sisi teknologi, aplikasi ini sangat jarang ditemukan. Hampir semua pengendalian komputer server menggunakan layanan bluetooth, Internet Protocol ataupun yang sangat mirip pun hanya mensupport telepon genggam dengan tipe tertentu, sedangkan aplikasi ini menggunakan layanan internet dimana port pilihan dari pengguna karena menggunakan fungsi dari socket programming serta dapat berjalan di berbagai OS(Sistem Operasi) dan telepon genggam dengan semua tipe yang support dengan java. Keunggulan dari aplikasi ini adalah dapat mengendalikan dari mana saja tanpa harus memikirkan jarak sehingga pengguna bebas beraktifitas dimana saja dan kapan saja serta aplikasi dapat berjalan di berbagai OS pada telepon genggam dimana syaratnya adalah telepon genggam tersebut support dengan java. Ditinjau dari segi keamanan, teknik untuk mengamankan suatu informasi memiliki beberapa macam, diantaranya Authentication, Firewall, Secure Socket Layerv(SSL), Kriptografi, Pretty Good Privacy. “SSL ini adalah suatu bentuk penyandian data sehingga informasi rahasia seperti nomor kartu kredit atau kontrol autentikasinya tidak dapat dibaca atau di akses oleh pihak lain selain pemiliknya daan server (pemilik servis).”(http://students.ukdw.ac.id). pada aplikasi ini menerapkan teknik SSL secara terpisah, yaitu dengan menerapkan teknik authentikasi dan teknik kriptografi pada socket programming. Dengan kata lain privasi dari penggunaan aplikasi ini cukup aman. Kriptografi adalah salah satu teknik yang digunakan untuk meningkatkan aspek keamanan suatu informasi. Kriptografi merupakan kajian ilmu dan seni untuk menjaga suatu pesan atau data informasi agar data tersebut aman. Kriptografi mendukung kebutuhan dari dua aspek keamanan informasi, yaitu secrecy (perlindungan terhadap kerahasiaan data informasi) dan authenticity (perlindungan terhadap pemalsuan dan pengubahan informasi yang tidak diinginkan).
Algoritma kriptografi yang baik akan memerlukan waktu yang lama untuk memecahkan data yang telah disandikan. Seiring dengan perkembangan teknologi komputer maka dunia teknologi informasi membutuhkan algoritma kripografi yang lebih kuat dan aman. Saat ini, AES (Advanced Encryption Standard) digunakan sebagai standar algoritma kriptografi yang terbaru. AES menggantikan DES (Data Encryption Standar) yang pada tahun 2002 sudah berakhir masa penggunaannya. DES juga dianggap tidak mampu lagi untuk menjawab tantangan perkembangan teknologi komunikasi yang sangat cepat. AES sendiri adalah algoritma kriptografi dengan menggunakan algoritma Rijndael yang dapat mengenkripsi dan mendekripsi blok data sepanjang 128 bit dengan panjang kunci 128 bit, 192 bit, atau 256 bit. Tujuan dari penulisan skripsi ini adalah untuk memperkuat sistem keamanan dari aplikasi pengendalian
server
menggunakan
telepon
genggam
dengan
cara
melakukan
pengimplementasian dari salah satu algoritma kriptografi yang menjadi standar internasional yaitu algoritma AES (Advanced Encryption Standard).
METODOLOGI PENELITIAN Pengumpulan Data Untuk membangun software aplikasi Pengendalian Jarak Jauh Komputer Server Melalui Telepon Genggam secara efektif, beberapa teknik pengumpulan data dan variabel digunakan, diantaranya adalah 1.
Studi Kepustakaan dan Literatur, . Penelusuran pustaka dilakukan dengan 2 cara, pertama, mencari pustaka dalam bentuk buku teks dan hasil penelitian di beberapa perpustakaan, diantaranya perpustakaan Universitas Indonesia, LIPI, dan perpustakaan Nasional Jakarta. Dan cara kedua, penelusuran pustaka elektronik berbentuk jurnal ilmiah dan prosiding hasil seminar ilmiah, melalui internet. Selain itu korespondesi dengan pakar untuk penelitian sejenis baik dari dalam dan luar negeri dilakukan melalui internet. digunakan untuk mendapatkan data awal tentang data dasar Pengendalian Jauh Jauh Komputer Server Melalui Telepon Genggam.
2.
Wawancara mendalam, yaitu dilakukan untuk memperoleh data dengan meminjam keterangan dan penulisan secara langsung kepada pihak yang terkait.
3.
Diskusi Interaktif (Forum Group Discussion). Disamping itu, dalam proses pengumpulan dan penyusunan instrumen data dasar ini dilakukan dengan cara melakukan diskusi/atau lokakarya yang diikuti oleh pihak-pihak terkait yang pernah berkecimpung dalam pembuatan perangkat lunak Remoting Desktop.
Jenis dan Sumber Data Jenis dan sumber data yang menjadi bahan dalam skripsi ini terdiri dari: 1.
Data primer diperoleh dari survey yang dilakukan pada server dan wawancara terhadap administrator sebagai pengelola server. Data primer digunakan saat dilakukan uji coba dan implementasi sistem.
2.
Data sekunder berasal dari hasil monitoring server beberapa minggu yang digunakan dalam penelitian dan dapat diperoleh melalui internet. Data sekunder digunakan saat pembangunan metode dan uji coba algoritma.
Untuk menunjang penelitian secara keseluruhan dibutuhkan pula bahan habis pakai (alat tulis kantor).
Pendekatan Teknis Pencapaian pekerjaan secara optimal, sangat ditentukan pada kadar pemahaman penulis dalam penelitian skripsi ini yang terdiri dari pembuatan interface aplikasi dan penulisan, sehingga dengan demikian bahwa pola pendekatan dalam penanganan pekerjaan perlu mendapat perhatian. Secara umum pola pendekatan yang penulis lakukan adalah sebagai berikut: a)
Pendekatan SDLC (System Development Life Cycle), adalah siklus hidup pengembangan sistem, pendekatan ini mutlak dilakukan dalam mensikronisasikan pekerjaan pembuatan aplikasi Pengendalian Jauh Komputer Server Melalui Telepon Genggam.
b) Pendekatan Proses Bottom Up Planning, dimana dalam kegiatan ini lebih menekankan malalui penjaringan data-data yang dikumpulkan melalui penelusuran dokumen-dokumen yang berkaitan dengan objek yang akan diinput. c)
Pendekatan manajemen, hal ini merupakan suatu pendekatan dengan konsep POAC (Planning, Organizing, Actuiting dan Contolling), agar pekerjaan rancang bangun perangkat lunak dapat terselesaikan dengan baik.
d) Pendekatan Teknis, pekerjaan Rancang Bangun aplikasi Pengendalian Jarak Jauh Komputer Server Melalui Telepon Genggam dilakukan dengan secara terstruktur, terpola dalam melakukan kegiatan baik dari tingkat persiapan, pengumpulan data, pengolahan data, perancangan data, Analisa, dan pengembangan untuk menghasilkan data yang lengkap yang dapat diakses secara cepat, tepat dan akurat. e)
Pendekatan Client-Server, Adalah sebuah model komputerisasi dimana sebuah aplikasi client dijalankan di telepon genggam atau komputer pribadi yang mengakses informasi dan meremote pada server atau host yang terletak di lain tempat. Bagian dari aplikasi yang dijalankan di client biasanya digunakan untuk mengoptimalkan interaksi dengan user.
f)
Pendekatan Pengelolaan, suatu prinsip yang menyangkut aspek administrasi, keuangan, hukum, kelembagaan serta perundang- undangan yang diharapkan agar suatu pekerjaan dapat diterapkan melalui koordinasi dalam pelaksanaan pekerjaan.
Dengan metode–metode pendekatan pekerjaan tersebut diharapkan hasil dari pembuatan aplikasi ini dapat berhasil secara optimal.
Peralatan yang Dibutuhkan Perangkat keras, perangkat lunak dan sarana komunikasi yang dibutuhkan dalam penelitian ini adalah : a.
PC Server dengan spesifikasi minimun : a.
Processor
: Pentium IV 3.0 GHz
b.
Memory
: 512 MB
c.
Harddisk
: 60 GB
d.
VGA Card: Intel 82852/82855 GM/GME Graphics Controller
e.
Modem standar : 56 Kbps atau Ethernet : 100 Mbps
b.
Sistem operasi server yang digunakan dalam penelitian ini adalah Linux Slackware.
c.
Perangkat Lunak yang dibutuhkan untuk pengolahan data dan pembuatan program adalah Java Tool Kit. J2ME, J2SE.
d.
Jaringan telepon atau jaringan LAN-ethernet untuk koneksi internet, serta terdaftar pada suatu ISP (Internet Service Provider). Koneksi internet ini dibutuhkan dalam penelusuran pustaka, memperoleh data penelitian dan berkorespondensi dengan pakar yang memahami topik dalam pembuatan aplikasi ini ini.
e.
f.
Handphone dengan spesifikasi minimum : a.
Mendukung Java
b.
Memiliki GPRS
c.
Type Qwerty
Printer Deksjet seri Canon iP1700 untuk pencetakan pustaka yang diperoleh dari internet.
Prosedur Pengembangan Metode Dalam pembuatan perangkat lunak Pengendalian Jarak Jauh Komputer server Melalui Telepon Genggam ini, penulis membagi dalam beberapa tahapan, diantaranya : 1. Merancang Interface baik untuk aplikasi yang mobile maupun untuk aplikasi dekstopnya. 2. Merancang Early Warning dan Event Handling Sistem serta merekayasa perangkat lunak didasarkan pada metode mengendalikan komputer server melalui telepon genggam dengan socket programming. 3. Merancang Image processing dan Security AES untuk kendali akses pada telepon genggam.
4. Mengintegrasikan perangkat Keras (server, client server, dan telepon genggam) dan perangkat lunak yang sudah dibangun pada tahap sebelumnya, dilanjutkan ujicoba dan implementasi. Tahapan-tahapan tersebut dapat digambarkan dalam bagan di bawah ini :
Tahap satu
Tahap dua
Merancang tampilan antar muka mobile dan desktop
Merancang image processing pada HP
Merancang Early Warning dan Event Handling
Menerapkan system keamanan enkripsi pada aplikasi
Tahap ketiga
Integrasi perangkat keras, perangkat lunak, uji coba dan implementasi
Rekayasa perangkat lunak remote desktop server
Gambar 1 Tahapan Umum Pembuatan Aplikasi Pengendalian Jarak Jauh Komputer Server Melalui Telepon Genggam
Untuk penelitian ini penulis memfokuskan untuk menerapkan sistem keamanan enkripsi pada Aplikasi Pengendalian Jarak Jauh Komputer Server Melalui Telepon Genggam.
Algoritma AES yang digunakan pada Remoting Desktop Server Algoritma AES ini adalah Algoritma kriptografi bernama Rijndael yang didesain oleh Vincent Rijmen dan John Daemen asal Belgia keluar sebagai pemenang kontes algoritma kriptografi pengganti DES yang diadakan oleh NIST (National Institutes of Standards and Technology) milik pemerintah Amerika Serikat pada 26 November 2001. Algoritma Rijndael
inilah yang kemudian dikenal dengan Advanced Encryption Standard (AES). Setelah mengalami beberapa proses standardisasi oleh NIST, Rijndael kemudian diadopsi menjadi standard algoritma kriptografi secara resmi pada 22 Mei 2002. Pada 2006, AES merupakan salah satu algoritma terpopuler yang digunakan dalam kriptografi kunci simetrik. AES ini merupakan algoritma block cipher dengan menggunakan sistem permutasi dan substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel sebagaiman block cipher pada umumnya. Jenis AES terbagi 3, yaitu : 1. AES-128 2. AES-192 3. AES-256 Pengelompokkan jenis AES ini adalah berdasarkan panjang kunci yang digunakan. Angka-angka di belakang kata AES menggambarkan panjang kunci yang digunakan pada tipatiap AES. Selain itu, hal yang membedakan dari masing-masing AES ini adalah banyaknya round yang dipakai. AES-128 menggunakan 10 round, AES-192 sebanyak 12 round, dan AES256 sebanyak 14 round. AES memiliki ukuran block yang tetap sepanjang 128 bit dan ukuran kunci sepanjang 128, 192, atau 256 bit. Tidak seperti Rijndael yang
block dan kuncinya dapat berukuran
kelipatan 32 bit dengan ukuran minimum 128 bit dan maksimum 256 bit. Berdasarkan ukuran block yang tetap, AES bekerja pada matriks berukuran 4x4 di mana tiap-tiap sel matriks terdiri atas 1 byte (8 bit). Sedangkan Rijndael sendiri dapat mempunyai ukuran matriks yang lebih dari itu dengan menambahkan kolom sebanyak yang diperlukan.
Enkripsi Advance Encryption Standar (AES) Pada algoritma AES, jumlah blok input, blok output, dan state adalah 128 bit. Dengan besar data 128 bit, berarti Nb = 4 yang menunjukkan panjang data tiap baris adalah 4 byte. Dengan blok input atau blok data sebesar 128 bit, key yang digunakan pada algoritma AES tidak harus mempunyai besar yang sama dengan blok input. Cipher key pada algoritma AES bisa menggunakan kunci dengan panjang 128 bit, 192 bit, atau 256 bit. Perbedaan
panjang
kunci
akan
mempengaruhi
jumlah
round
yang
akan
diimplementasikan pada algoritma AES ini. Di bawah ini adalah tabel yang memperlihatkan jumlah round (Nr) yang harus diimplementasikan pada masing-masing panjang kunci.
Tabel 1 : Perbandingan jumlah Round dan Key Jumlah Key (Nk)
Besar Block (Nb)
Jumlah Round (Nr)
AES – 128
4
4
10
AES – 192
6
4
12
AES – 256
8
4
14
Sumber : Wibowo (2004)
Proses enkripsi pada algoritma AES terdiri dari 4 jenis transformasi byte, yaitu ShiftRows, Mixcolumns, dan AddRoundKey. Pada awal proses enkripsi, input yang telah dikopikan ke dalam state akan mengalami transformasi byte AddRoundKey. Setelah itu, state akan mengalami transformasi SubBytes, ShiftRows, MixColumns, dan AddRoundKey secara berulang-ulang sebanyak Nr. Proses ini dalam algoritma AES disebut sebagai round function. Round yang terakhir agak berbeda dengan round-round sebelumnya dimana pada round terakhir, state tidak mengalami transformasi MixColumns. Pada gambar 3.6 merupakan contoh algoritma AES dengan panjang kunci 128. Terlihat bahwa putaran pertama adalah intial round dengan hanya dilakukan 1 tahap yaitu AddRoundKey. Selanjutnya pada putaran ke dua dilakukan 4 tahapan dengan melakukan SubBytes, ShiftRows, MixColumns, dan AddRoundKey secara bertahap sebanyak 8x putaran sampai putaran ke 9. Setelah itu masuk pada putaran ke 10 atau final round dimana hanya melakukan 3 tahapan dengan tanpa melakukan tahapan MixColumns.
Gambar 2: Diagram Aliran Proses Enkripsi AES-128 bit Sumber : Munir (2004)
Sehingga penerapan alur algoritma AES ini jika di jadikan bentuk algoritma pada programnya adalah sebagai berikut :
1. Siapkan array berukuran 4x4 bernama Kunci 2. Siapkan array berukuran 4x4 bernama State 3. Cetak : “Masukkan 16 bilangan heksadesimal sebagai kunci : “ 4. Simpan enam belas nilai tersebut sebagai nilai dari masing-masing elemen array Kunci. 5. Cetak : “Masukkan teks yang akan dienkripsi : “ 6. Konversikan teks tersebut ke dalam bentuk bit menggunakan kode ASCII. 7. Konversikan kode ASCII tersebut ke dalam heksadesimal 8. Kelompokkan bit-bit teks tersebut menjadi 128 bit tiap bagiannya. 9. Ambil 128 bit pertama untuk diproses. 10. Kelompokkan bit teks tersebut menjadi 16 bagian dengan 8 bit tiap bagiannya. 11. Masukkan tiap-tiap bagian teks tersebut ke dalam tiap-tiap sel pada matriks berukuran 4x4.
12. Konversikan bit ke dalam heksadesimal. 13. Lakukan langkah AddRoundKey dengan Key awal 14. Lakukan langkah SubBytes 15. Lakukan langkah ShiftRows 16. Lakukan langkah MixColumns 17. Lakukan langkah AddRoundKey 18. Ulangi langkah 14-16 sebanyak 9x. 19. Jika langkah 17 sudah dilakukan, maka lakukan langkah SubByte 20. Lakukan langkah ShiftRows tanpa MixColumns 21. Lakukan langkah AddRoundKey 22. Selesai pada 128 bit plainteks pertama, teruskan ke 128 bit plainteks selanjutnya dari langkah 13 hingga seluruh plainteks sudah tersandikan.
PEMBAHASAN Implementasi AES pada I-Remote Penerapan AES pada aplikasi ini dimulai ketika gambar/aksi yang awalnya dari pengiriman data di HP. AES ini berjalan di 2 aplikasi, yaitu pada aplikasi yang terdapat pada server dan terdapat pada aplikasi HP. Sebelum aksi dikirimkan oleh HP maka aksi ini diolah terlebih dahulu. Proses awal dan algoritmanya adalah sebagai berikut : 1. Siapkan array berukuran 4x4 bernama Kunci 2. Siapkan array berukuran 4x4 bernama State 3. Cetak : “Masukkan 16 bilangan heksadesimal sebagai kunci : “ 4. Simpan enam belas nilai tersebut sebagai nilai dari masing-masing elemen array Kunci. 5. Cetak : “Masukkan teks yang akan dienkripsi : “ 6. Konversikan teks tersebut ke dalam bentuk bit menggunakan kode ASCII. 7. Konversikan kode ASCII tersebut ke dalam heksadesimal 8. Kelompokkan bit-bit teks tersebut menjadi 128 bit tiap bagiannya. 9. Ambil 128 bit pertama untuk diproses. 10. Kelompokkan bit teks tersebut menjadi 16 bagian dengan 8 bit tiap bagiannya. 11. Masukkan tiap-tiap bagian teks tersebut ke dalam tiap-tiap sel pada matriks berukuran 4x4. 12. Konversikan bit ke dalam heksadesimal. 13. Lakukan langkah AddRoundKey dengan Key awal 14. Lakukan langkah SubBytes 15. Lakukan langkah ShiftRows 16. Lakukan langkah MixColumns 17. Lakukan langkah AddRoundKey 18. Ulangi langkah 14-16 sebanyak 9x. 19. Jika langkah 17 sudah dilakukan, maka lakukan langkah SubByte 20. Lakukan langkah ShiftRows tanpa MixColumns 21. Lakukan langkah AddRoundKey 22. Selesai pada 128 bit plainteks pertama, teruskan ke 128 bit plainteks selanjutnya dari langkah 13 hingga seluruh plainteks sudah tersandikan.
Pada implementasi nyata, AES ini dimulai dengan mengubah gambar/aksi yang akan dikirim menjadi byte. Contohnya adalah aksi pengiriman validasi username dan password. Dari aksi pengiriman dengan tipe data string “username : zhilal \npassword:zhilal” akan dirubah menjadi bentuk bit menggunakan kode ASCII dan dirubah menjadi bentuk hexadecimal dengan bentuk “2B28AB097EAEf7Cf15D2154F16A6883C6C200A70617373776F72643A7A68696C616C”. Setelah didapat bentuk hexadecimalnya maka akan disisihkan hexadecimal tersebut sebanyak 128 dengan kunci penyandiannya didapat dari perpaduan username dan password yang ditetapkan juga di aplikasi servernya. Didapat aksi yang ingin disandikan sebanyak 128 terlebih dahulu “2B28AB097EAEf7Cf15D2154F16A6883C” sisanya akan di proses setelah hexadecimal ini sudah di sandikan. Setelah sudah dipisahkan seperti diatas, akan dibuat wadah atau tempat yang akan menampung data hexadecimal dari aksi berupa matriks sebesar 4x4 dan matriks sebesar 4x4(jika menggunakan AES 192 menggunakan kunci sebesar 6x6 dan AES 256 dengan matriks 8x8) untuk kunci yang dipakai untuk menyandikan ataupun mengembalikan penyadian kebentuk sebenarnya.
Gambar 3: Contoh String yang dirubah ke bentuk hexadecimal
Diasumsikan key disini adalah “qwertyuiopasdfgh” dengan panjang karakter adalah 16 karakter atau 128 bit. Setelah ditemukan bentuk matriks dan isinya barulah mulai pemprosesan algoritmanya. Pada perputaran pertama aksi/data/gambar yang sebelum disandikan yang biasanya disebut dengan state atau plaintext akan dilakukan proses AddRoundKey dengan cara menggunakan operator logika Xor :
state[0][0] : 32 XOR key[0][0] :2B = 19 state[0][1] : 88 XOR key[0][1] :28 = a0 state[0][2] : 31 XOR key[0][2] :AB = 9a state[0][3] : E0 XOR key[0][3] :09 = e9 state[1][0] : 43 XOR key[1][0] :7E = 3d state[1][1] : 5A XOR key[1][1] :AE = f4 state[1][2] : 31 XOR key[1][2] :F7 = c6 state[1][3] : 37 XOR key[1][3] :CF = f8 state[2][0] : F6 XOR key[2][0] :15 = e3 state[2][1] : 30 XOR key[2][1] :D2 = e2 state[2][2] : 98 XOR key[2][2] :15 = 8d state[2][3] : 07 XOR key[2][3] :4F = 48 state[3][0] : A8 XOR key[3][0] :16 = be state[3][1] : 8D XOR key[3][1] :A6 = 2b state[3][2] : A2 XOR key[3][2] :88 = 2a state[3][3] : 34 XOR key[3][3] :3C = 8
State + addround Key : | 19 | a0 | 9a | e9 | | 3d | f4 | c6 | f8 | | e3 | e2 | 8d | 48 | | be | 2b | 2a | 08 |
Proses diatas biasa disebut dengan inisialisasi. setelah matrik state sudah dilakukan addrounkey pada pertama kali maka dengan ini putaran pertama selesai. AES ini jika panjang kuncinya adalah 128 maka putaran hanya dilakukan sebanyak 10 putaran. Jika panjang kunci adalah 192 maka banyak putaran adalah 12 putaran dengan matriks kuncinya adalah 6x6 dan jika 256 panjang kuncinya akan dilakukan sebanyak 14 putaran dengan matriks 8x8.
Gambar 4 : Susunan putaran algoritma AES Sumber : Munir (2004)
Mengarah pada gambar 4.9 yaitu algoritma aes dengan panjang kunci 128 bit, hal yang dilakukan pertama adalah melakukan tahapan AddRoundKey. Dimana byte yang akan di sandikan yang sudah dimasukan ke dalam blok akan dilakukan operasi XOR dengan kunci yang sudah dimansukan oleh pengguna.Maka setelah tahap inialisasi selesai maka tahap pertama yang dilakukan dalam putaran adalah SubBytes. SubBytes adalah mensubstitusikan 1 sel pada State dengan 1 sel yang bersesuaian pada tabel S-Box seperti terlihat pada tabel 4.1. Elemen-elemen pada S-Box itu sendiri telah ditentukan sebelumnya. Pada tahapan ini matriks yang ada akan disubstitusikan kepada tabel yang sudah menjadi standarisasi dunia yang difungsikan menyulitkan para pembongkar sandi dengan menggunakan brute force. Tabel ini adalah table rijndael S-Box yang mengacu pada table 4.1.
Tabel 1 : Rijndael S-BOX x0
x1
x2
x3
x4
x5
x6
x7
x8
x9
xa
xb
xc
xd
xe
xf
0x
63
7c
77
7b
f2
6b
6f
c5
30
01
67
2b
fe
d7
ab
76
1x
ca
82
c9
7d
fa
59
47
f0
ad
d4
a2
af
9c
a4
72
c0
2x
b7
fd
93
26
36
3f
f7
cc
34
a5
e5
f1
71
d8
31
15
3x
04
c7
23
c3
18
96
05
9a
07
12
80
e2
eb
27
b2
75
4x
09
83
2c
1a
1b
6e
5a
a0
52
3b
d6
b3
29
e3
2f
84
5x
53
f1
00
ed
20
fc
b1
5b
6a
cb
be
39
4a
4c
58
cf
6x
d0
ef
aa
fb
43
4d
33
85
45
f9
02
7f
50
3c
9f
a8
7x
51
a3
40
8f
92
9d
38
f5
bc
b6
da
21
10
ff
f3
d2
8x
cd
0c
13
ec
5f
97
44
17
c4
a7
7e
3d
64
5d
19
73
9x
60
81
4f
dc
22
2a
90
88
46
ee
b8
14
de
5e
0b
db
ax
e0
32
3a
0a
49
06
24
5c
c2
d3
ac
62
91
95
e4
79
bx
e7
c8
37
6d
8d
d5
4e
a9
6c
56
f4
ea
65
7a
ae
08
cx
ba
78
25
2e
1c
a6
b4
c6
e8
dd
74
1f
4b
bd
8b
8a
dx
70
3e
b5
66
48
03
f6
0e
61
35
57
b9
86
c1
1d
9e
ex
e1
f8
98
11
69
d9
8e
94
9b
1e
87
e9
ce
55
28
df
fx
8c
a1
89
0d
bf
d6
42
68
41
99
2d
0f
b0
54
bb
16
Sumber : http://en.wikipedia.org/wiki/S-box
(2010)
Dengan diketahuinya tabel s-box ini, matrik state yang telah diinisialisasikan akan substitusikan ke dalam tabel s-box tersebut. Langkahnya kurang lebih adalah seperti ini. Dari matriks yang ingin dilakukan subbyte diambil pertama pada kolom dan baris pertama. Disini didapat 19, dari data ini dipisahkan angka 1 yang akan dicocokan dengan tabel s-box sebelah kiri dan angka 9 yang terdapat di tabel s-box maka didapat d4.
Gambar 5 : Implementasi SubByte Setelah semua matriks dilakukan substitusi dengan tabel s-box maka hasil dari putaran ini adalah sebagai berikut :
State + SubByte : | d4 | e0 | b8 | 1e | | 27 | bf | b4 | 41 | | 11 | 98 | 5d | 52 | | ae | f1 | e5 | 30 |
Kemudian setelah tahapan SubByte selesai maka akan berlanjut untuk dilakukan SiftRow. SiftRow ini adalah pergeseran cell-cell yang terdapat pada matrik sebanyak kunci jenisnya. Jika menggunakan AES 128 maka perputarannya adalah matriks pada baris 2 akan dipindahkan ke cell kiri sebanyak satu kali atau satu byte, kemudian matriks pada baris 3 akan dipindahkan ke cell kiri sebanyak 2 kali atau 2 byte dan baris terakhir akan di lakukan pergeseran sebanyak 3 kali atau 3 byte.
Gambar 6 : Proses perpindahan SiftRow
Setelah matriks sudah selesai dalam tahap SiftRow maka akan di dapat Matriks seperti di atas. Setelah tahapan SiftRow makan akan beralih ke tahapan selanjutnya yaitu MixColumns. MixColumns adalah tahapan dimana matriks state akan dikalikan dengan matriks yang sudah ditentukan.
Tabel 2 : Matriks ketentuan dari MixColumns 02
01
01
03
03
02
01
01
01
03
02
01
01
01
02
03
Maka dari matriks state akan di kalikan dengan matriks diatas dengan ketentuan bahwa matriks state pada colom pertama (1x4) akan dikalikan dengan matriks 4x4 diatas. Pada matriks state ini yang telah melewatkan tahapan SiftRow column pertamanya adalah {d4, bf, 5d, 30}. Jadi perkalian pertamanya adalah baris dikalikan dengan kolom pertama. ((d4x02)+(bfx01) +(5dx01) +(30x03)) = 04, ((d4x03)+(bfx02) +(5dx01) +(30x01)) = 66, ((d4x01)+(bfx03) +(5dx02) +(30x01)) = 81, ((d4x01)+(bfx01) +(5dx02) +(30x03)) = e5.
Gambar 7 : Proses perkalian MixColumns
Jika semua matriks sudah dikalian maka hasilnya akan menjadi matriks seperti ini. State + MixColumns :
Dan pada putaran ini hal yang dilakuka terakhir adalah addRoundKey dimana caranya sama seperti pada putaran pertama dalam addRoundKey. Maka akan tampak hasilnya seperti ini.
Gambar 8 : Proses AddRoundKey
State + AddRounKey (Putaran Ke 2) : | a4 | 68 | 6b | 02 | | 9c | 9f | 5b | 6a | | 7f | 35 | ea | 50 | | f2 | 2b | 43 | 49 |
Diatas adalah hasil dari perputaran kedua. Pada addRounkey diputaran kedua ini memiliki kuncu yang berbeda-beda tiap putarannya, itu dikarenakan pada key juga dilakukan proses-proses sehingga menjadikan kunci yang berbeda ditiap perputurannya. Proses ini dinamakan schedule’s Rijdael. Proses yang dilakukan pada putaran kedua ini akan dilakukan sebanyak 9 kali dengan putaran terakhir dilakukan tanpa proses MixColumns.
Implentasi AES pada Java
Pada bahasa pemprograman java ini sudah terdapat class yang dapat digunakan untuk membuat suatu data penyandian yaitu Cryto dari JCE. Tetapi disini terdapat kekurangannya, yaitu crypto pada JCE bawaan javanya tidak dapat melakukan penyandian AES dengan bit selain 128 dan memiliki keterbatasan device seperti pada mobile. Karena pada mobile atau j2me ini memiliki keterbatasan memory. Karena dari itu penulis menggunakan library yang sudah ternama dibidang penyandian ini yaitu bouncycastle. Implementasiannya cukup mudah karena di library ini sudah tersedia fungsi untuk AES dengan bit sampai 256 dan juga memiliki algoritma lain selain AES seperti RSA DES dan lainnya. Kekuatan AES ini jika dibandingkan dengan RSA sangatla besar. Dalam forum dikatakan besar kunci RSA 6000an bit itu sama kekuatannya dengan 128 bit kunci pada AES karena algoritma Rijdael ini sangatlah kuat. Fungsi yang digunakan agar dapat memanfaatkan fungsi AES dilibrary bouncycastle ini cukup mudah :
public byte[] performEncrypt(byte[] key, String plainText) { byte[] ptBytes = plainText.getBytes(); cipher = new PaddedBufferedBlockCipher(new CBCBlockCipher(getEngineInstance()));
String name = cipher.getUnderlyingCipher().getAlgorithmName(); System.out.println(“Using “ + name);
cipher.init(true, new KeyParameter(key));
byte[] rv = new byte[cipher.getOutputSize(ptBytes.length)];
int oLen = cipher.processBytes(ptBytes, 0, ptBytes.length, rv, 0); try { cipher.doFinal(rv, oLen); } catch (CryptoException ce) { System.out.println(“Ooops, encrypt exception”);
// System.out.println(ce.toString()); } return rv; }
Fungsi ini memiliki tipe data byte array yang artinya data yang akan dikembalikan nilainya atau hasilnya berupa byte array. Hasil dari byte array inilah yang akan digunakan oleh program yang mengatur pengiriman data ke server atau ke mobile. Inputan pada fungsi ini membutuhkan 2 tipe data, yaitu key atau kunci yang berupa byte array sepanjang 128 bit yang digunakan sebagai kunci untuk encrypt atau decrypt dan plaintext yang berupa tipe data string dimana plaintext ini adalah kata yang akan disandikan. Agar plaintext dapat diproses atau disandikan dibutuhkan perubahan tipe data dari string ke byte yaitu : byte[] ptBytes = plainText.getBytes();
Jika inputan berupa gambar maka tidak perlu lagi dirubah dari string menuju byte array, di java pun menyediakan fungsi untuk merubah dari data gambar menjadi byte array melalui BufferedImage. Kemudian untuk mengatur tentang jenis penyandiannya apakah ini termasuk sandi yang diproses dengan blok-blok atau bukan, itu diatur dengan syntax : cipher = new PaddedBufferedBlockCipher(new CBCBlockCipher(getEngineInstance()));
Dimana chiper adalah objek B90ufferedBlockCipher yang sudah disediakan oleh bouncycastle. Disini chipher diatur sebagai sandi yang dilakukan perblok dan mengambil metode getEngineInstance() dimana isinya : private BlockCipher getEngineInstance() { BlockCipher rv = null;
switch (whichCipher()) { case 0 : rv = new DESEngine(); break; case 1 :
rv = new DESedeEngine(); break; case 2 : rv = new IDEAEngine(); break; case 3 : rv = new RijndaelEngine();
break; case 4 : rv = new TwofishEngine(); break; default : rv = new DESEngine(); break; } return rv; }
Rv ini sudah diatur dengan nilai 3 pada methode whichCipher().
Private int whichCipher() { return 3; // DES }
Dengan begitu maka didapat dan diatur bahwa ini adalah penyandian AES dengan defaultnya adalah 128. Setelah sudah ditentukan jenis penyandian yang ditentukan setelah itu menetukan kunci yang nantinya akan diproses menjadi kunci siap pakai dengan algoritma schedule’s Rijdael sehingga kunci berubah-ubah tiap putaran.
Cipher.init(true, new KeyParameter(key));
key ini yang akan menentukan bentuk dari penyandian AES. Setelah itu barulah melakukan pemasukan data yang ingin disandikan kedalam mesin atau fungsi AES yang telah disediakan oleh bouncycastle ini dengan format sebagai berikut. Byte[] rv = new byte[cipher.getOutputSize(ptBytes.length)];
int oLen = cipher.processBytes(ptBytes, 0, ptBytes.length, rv, 0); try { cipher.doFinal(rv, oLen); }
rv disini berfungsi untuk menentukan jumlah atau besarnya data string yang akan disandikan setelah didapat barulah dilakukan dofinal proses sehingga didapat hasil data yang sudah disandikan kedalam variabel rv yang akan dikembalikan nilainya ditempat fungsi tersebut dipanggil.
Untuk fungsi pengembalian datanya digunakan kunci yang sama saat menyandikan. Fungsinya adalah sebagai berikut : public String performDecrypt(byte[] key, byte[] cipherText) { cipher.init(false, new KeyParameter(key));
byte[] rv = new byte[cipher.getOutputSize(cipherText.length)];
int oLen = cipher.processBytes(cipherText, 0, cipherText.length, rv, 0); try { cipher.doFinal(rv, oLen); } catch (CryptoException ce) { // System.out.println(“Ooops, decrypt exception”); // System.out.println(ce.toString()); } return new String(rv).trim(); }
Prosesnya sama dengan proses penyandiannya itu dikarenakan menggunakan library yang sama sehingga perintah-perintahnya tidak jauh berbeda. Perbedaaan terlihat hanya pada
hasil nilai atau tipe data yang dikembalikan dari fungsi tersebut. Pada fungsi decrypt ini membutuhkan jenis tipe data byte array sebagai data yang telah tersandikan dan byte array untuk kunci yang dibutuhkan untuk mengembalikan data awal. Dan pengembalian fungsi inipun berupa tipe data string dimana artinya langsung dapat digunakan atau dicetak langsung oleh program. Untuk penggunaan decrypt ini diharuskan untuk menentukan jenis penyandian seperti pada proses penyadian. Jika tidak akan error dengan pengembalian data null. Fungis-fungsi ini akan diletakan diaplikasi server dan aplikasi mobile karena setiap aplikasi membutuhkan proses penyandian dan pengembalian kata sandi ke bentuk semula.
Hasil Uji Coba Pada bagian ini penulis mengujicobakan aplikasi ini dengan sistem keamanan rendah yaitu aplikasi tanpa menggunakan Authentikasi dan kriptografi, sistem kamanan sederhana yaitu aplikasi hanya dengan menggunakan teknik authentikasi username dan password, serta sistem keamanan tinggi yaitu aplikasi dengan menggunakan teknik kriptografi dengan metode penyandian data menggunakan algoritma AES.
Aplikasi Tanpa Authentikasi dan Kriptografi
Gambar 9 : Aplikasi pada telepon genggam tanpa authentikasi
Pada aplikasi dimana tidak menggunakan authentikasi, tampilan pada layar telepon genggam tidak meminta untuk memasukan username dan password. Dengan seperti ini maka sudah dipastikan, setiap pengguna telepon genggam yang memiliki aplikasi I-Remote ini dapat mengakses server siapa saja dengan bebas, karena setiap server yang terhubung akan dihubungkan tanpa ada authentikasi pada server. Sehingga informasi-informasi yang terdapat di server tersebut dapat dimanipulasi dan digunakan secara sembarangan. Peristiwa inilah yang sangat ditakutkan oleh para admin jaringan yang bertanggung jawab akan server mereka. Disini sudah terlihat jelas akan kerendahannya tingkat kemanan dimana aplikasi tidak menggunakan teknik-teknik keamanan informasi.
Aplikasi Hanya Menggunakan Teknik Authentikasi Aplikasi yang sudah ditambahkan sistem keamanannya dengan teknik authentikasi, maka setiap pengguna meminta koneksi kepada server maka server akan bertanya apa username dan passwordnya pada telepon genggam bagian awal program. Jika username dan password sesuai
dengan program yang terdapat pada server yang sudah dikonfigurasi maka pengguna diizinkan untuk menghubungkan atau mengakses server tersebut. Jika tidak maka server akan memutuskan koneksinya. Berikut adalah tampilannya dengan menggunakan simulator.
Gambar 10 : Aplikasi pada telepon genggam hanya menggunakan authentikasi dengan username dan password yang valid
Pada gambar diatas menunjukan bahwa aplikasi pada telepon genggam meminta username dan password yang nantinya akan dikirimkan kepada server. Terlihat dimana tampilan
hitam diatas adalah setatus aplikasi yang berjalan pd server dan dibawahnya yang berwarna putih adalah status aplikasi pada simulasinya. Disini terlihat bahwa saat aplikasi dari telepon genggam mengirimkan informasi ke pada server setelah aplikasi pada server telah berjalan dengan statusnya adalah menunggu koneksi di port :9001. Setelah informasi dikirimkan oleh aplikasi I-Remote yang membawa informasi username dan password maka aplikasi pada server akan melakukan pengecekan pengguna, apakah pengguna ini datanya benar atau salah. Jika benar maka status pada server akan menjadi seperti diatas dimana username dan passwordnya adalah admin serta menampilkan informasi Login berhasil. Jika username dan passwordnya salah maka status kedua aplikasi akan seperti berikut:
Status Pada Server
Tampilan pada I-Remote
Status I-Remote Pada Simulator
Gambar 11 : Aplikasi pada telepon genggam hanya menggunakan authentikasi dengan username dan password yang tidak valid
Disini terlihat dari informasi username dan password berbeda dengan yang sebelumnya, yaitu username : admin dan password : admin. Setelah didapat informasi pada I-Remote maka ditampilkan informasi tersebut, setelah itu dikirimkan informasi tersebut kepada aplikasi server. Saat server mengetahui bahwa data tidak valid maka server mengirimkan data dengan kata “Not Valid” dan memutuskan hubungan terhadap aplikasi tersebut. Teknik autentikasi memiliki kekurangan pada tampilan status dari kedua aplikasi tersebut. Pengiriman informasi ini dilakukan tanpa ada penyandian data, maka jika seseorang telah menyadap koneksi ini maka dengan mudah penyadap mengetahui apa username dan password dari server tersebut. Setelah penyadap mengetahuinya maka penyadap bebas melakukan apa saja termasuk hal-hal yang merugikan.
Aplikasi Menggunakan Teknik Authentikasi dan Kriptografi Uji coba pada bagian ini penulis tidak menggunakan perangkat lunak tambahan seperti perangkat lunak untuk menyadap. Pada uji coba ini penulis akan mengirimkan username dan password yang disandikan sebelum dikirimkan kepada server, sehingga saat dikirimkan akan berupa informasi dalam bentuk symbol-symbol. Penulis tidak mengujicobakan pada informasi berupa gambar dikarenakan data gambar yang sudah disandikan tidak akan dapat ditampilkan karena format dan bentuk bytenya sudah berbeda jauh. Pada aplikasi server, agar terlihat apakah nantinya yang didapat oleh penyadap jika informasi tersebut disandikan maka penulis tidak merubah kembali data yang disandikan tersebut sehingga walaupun informasi yang dikirimkan oleh aplikasi I-Remote pada telepon genggam ini adalah benar maka server akan terus memberitahukan bahwa data tidak valid. Karena data yang diterima server bukanlah data yang benar, tetapi data yang sudah disandikan.
Gambar 11 : Aplikasi pada telepon genggam menggunakan teknik authentikasi dan kriptografi
Test uji coba diatas membuktikan bahwa data sebelum dikirimkan kepada server terlihat di status simulator dengan username : admin dan password : admin. Dan setelah dikirimkan, server menerima informasi berupa data yang sudah disandikan dengan informasi yang ditampilkan pada status server. Pada informasi username, data yang diterima berupa penyandian dalam bentuk hexadecimal dengan tujuan agar terlihat perbedaan penyandiannya. Pada informasi password penulis menampilkan data yang masih dalam bentuk byte sehingga tidak terlihat perbedaannya. Jika informasi yang sudah disandikan dirubah kedalam bentuk symbol-symbol maka pada linux akan tampak seperti ����
PENUTUP Kesimpulan Dengan ditambahkannya sistem keamanan informasi menggunakan teknik authentikasi dan teknik kriptografi dalam aplikasi pengendalian jarak jauh komputer server melalui telepon genggam (I-Remote) ini menjadikan informasi yang diolah dan dikirimkan menjadi lebih aman. Sebelum menggunakan teknik authentikasi, aplikasi ini menjadikan aplikasi yang bebas untuk dilihat dan diakses oleh siapa saja, pengguna aplikasi pada telepon genggam akan dapat melakukan hubungan terhadap server yang diinginkan oleh pengguna yaitu hanya dengan memasukan alamat server terserbut. Dengan menggunakan teknik authentikasi, menjadikan server untuk melakukan pengecekan terhadap semua pengguna yang melakukan hubungan terhadap server tersebut. Maka, hanya pengguna yang mengetahui username dan password yang dapat mengakses server tersebut. Kemudian masalah dalam keamanan informasi kembali muncul karena canggihnya alat penyadap. Dengan menggunakan teknik kriptografi yaitu penyandian data. Tanpa teknik penyandian data ini, informasi yang dikirimkan dapat disadap ditengahtengah perjalanan. Dengan kata lain, para pengguna aplikasi penyadap ini akan dapat bebas mengetahui apa yang dilakukan oleh pengguna yang sebernarnya, dan dapat juga mendapatkan informasi tentang username dan password sehingga penyadap dapat bebas mengakses server tersebut kapan saja.
Dengan teknik penyandian data ini, informasi yang dikirimkan akan berupa data acak dan tidak berbentuk sama sekali. Sehingga penyadap pun tidak akan bisa mengetahui informasi apakah yang sedang dikerjakan oleh pengguna yang sebenarnya sehingga penyadap tidak akan mendapatkan informasi yang berguna. Sekarang adalah zaman dimana komputer sudah memiliki kecepatan yang diluar biasa. Sehingga mengakibatkan munculnya penyandi analisis yang dapat melakukan perombakan ulang informasi yang sudah disandikan menjadi informasi yang dapat digunakan yaitu dengan pengembalian data asli pada informasi tersebut. Penggunaan teknik penyandian menggunakan algoritma vigenere sangat bahaya, karena dapat dilakukan pencarian kata kunci dengan cepat menggunakan teknik brute force.
Saran Saran penulis untuk aplikasi pengendalian jarak jauh computer server melalui telepon genggam dalam hal sistem keamanan yang digunakan baik untuk mobile maupun desktop sebagai berikut : 1.
Agar ditambahkan sistem keamanan yang lain seperti penyandian yang dilakukan 2x agar informasi lebih aman.
2.
Perlunya ditingkatkan kualitas penyandiannya dalam hal kinerja pada telepon genggam.
3.
Perlunya algoritma yang tidak membuat data menjadi lebih besar namun memiliki tingkat keamanan yang sangat tinggi.
DAFTAR PUSTAKA 1. Fikri, Rijalul, Imam Prakoso. Pemrograman Java. Yogyakarta: Penerbit Andi, 2005. 2. Hariyanto, Bambang, Ir., MT. 2003. Esensi-esensi Bahasa Pemprograman Java. Bandung : Informatika Bandung. 3. Hook, David. ”Beginning Cryptography with Java”. 4. Joan Daemen, Vincent Rijmen, "The Design of Rijndael: AES - The Advanced Encryption Standard." Springer, 2002. ISBN 3-540-42580-2. 5. Kurniawan, Yusuf. 2003. “Desain AES (Advance Encryption Standard)”. Infomatek Volume 5 Nomor 2. Hal. 93-99. Jurusan Tenik Informatika Fakultas Teknik Universitas Pasundan. 6. Munir, Rinaldi, Ir., M.T. 2004. “Advance Encryption Standard (AES), Bahan Kuliah”. Departemen Teknik Informatika, Institut Teknologi Bandung, Bandung. 7. Paar, Christof, Jan Pelzl, "The Advanced Encryption Standard", Chapter 4 of "Understanding Cryptography, A Textbook for Students and Practitioners". Springer, 2009. 8. Prasetyo, Didik Dwi. 2007. 150 Rahasia Pemprograman Java. Jakarta : PT Elex Media Komputindo. 9. Raharjo,Budi, Imam Heryanto, Arif Haryono, Tuntunan Pemrograman Java Untuk Handphone, Bandung : Penerbit Informatika, 2007. 10. The
Sensetional
Weblog
Power.2008.”Komunikasi
Data”.
http://bobbyfiles.wordpress.com/2008/01/12/komunikasi-data/ ( di akses tanggal 29 Juli 2010 ) 11. URL : http://blog.rosihanari.net/mengenkripsi-parameter-get-method-untuk-keamanan, 2010. (Tanggal Akses ; 12 Mei 2010) 12. URL : http://en.wikipedia.org/wiki/Advanced_Encryption_Standard, 2010. (Tanggal Akses ; 14 Mei 2010) 13. URL : http://en.wikipedia.org/wiki/Rijndael_key_schedule, 2010. (Tanggal Akses ; 25 Juni 2010) 14. URL : http://en.wikipedia.org/wiki/S-box, 2010. (Tanggal Akses ; 14 Mei 2010) 15. URL : http://java.sun.com/developer/technicalArticles/Media/ AdvancedImage/, 2010. (Tanggal Akses ; 12 Juni 2010)
16. URL :
http://java.sun.com/developer/technicalArticles/Security/AES/
AES_v1.html,
2010. (Tanggal Akses ; 02 Juni 2010) 17. URL
:
http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/
CryptoSpec.html, 2010. (Tanggal Akses ; 01 Juni 2010) 18. URL
:
http://tianeffendi.wordpress.com/2008/12/30/sejarah-advance-encryption-
standard-aes/, 2010. (Tanggal Akses ; 31 Juli 2010) 19. URL
:
http://www.betanews.com/article/Is-AES-encryption-crackable/1257437160,
2010. (Tanggal Akses ; 12 Mei 2010) 20. URL : http://www.daniweb.com/forums/thread191239.html, 2010. (Tanggal Akses ; 11 Mei 2010) 21. URL : http://www.ibm.com/developerworks/java/library/wi-secure/, 2010. (Tanggal Akses ; 02 Juni 2010) 22. Wibowo, Wihartantyo Ari. 2004. Advanced Encryption Standard Algoritmh Rijndael, Departemen Teknik Elektro, Institut Teknologi Bandung, Bandung.