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. Handphone dengan spesifikasi minimum :
a. Mendukung Java
b. Memiliki GPRS
c. Type Qwerty
f. 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 :
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
Merancang tampilan
antar muka mobile
dan desktop
Merancang Early
Warning dan Event
Handling
Rekayasa perangkat
lunak remote
desktop server
Merancang image
processing pada HP
Menerapkan system
keamanan enkripsi
pada aplikasi
Integrasi perangkat
keras, perangkat
lunak, uji coba dan
implementasi
Tahap satu Tahap dua Tahap ketiga
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 tipa-
tiap 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 AES-
256 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 ����<U�����C�d. Berbeda jika dirubahnya pada sistem operasi
windows, maka akan terlihat symbol tanda tanya atau semacam itu.
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 ditengah-
tengah 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.