implementasi algoritma aes (advanced encryption standard...

21
Implementasi Algoritma AES (Advanced Encryption Standard) Untuk Enkripsi URL Pada Aplikasi Inventaris Aset Berbasis Web Artikel Ilmiah Kepada Fakultas Teknologi Informasi untuk memperoleh Gelar Sarjana Komputer Peneliti : Ardo Sarofa Putra (672013214) Dr. Sri Yulianto J.P., S.Si., M.Kom. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Agustus 2017

Upload: vubao

Post on 21-Mar-2019

288 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

Implementasi Algoritma AES (Advanced Encryption

Standard) Untuk Enkripsi URL Pada Aplikasi Inventaris

Aset Berbasis Web

Artikel Ilmiah

Kepada

Fakultas Teknologi Informasi

untuk memperoleh Gelar Sarjana Komputer

Peneliti :

Ardo Sarofa Putra (672013214)

Dr. Sri Yulianto J.P., S.Si., M.Kom.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Agustus 2017

Page 2: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah
Page 3: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah
Page 4: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah
Page 5: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah
Page 6: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

1. Pendahuluan

Aset merupakan barang atau benda yang terdiri dari benda yang bersifat

tidak bergerak dan benda yang bersifat bergerak, baik yang berwujud dan tidak

berwujud yang tercakup dalam kekayaan perusahaan atau instansi. Pengelolaan

aset dan kebutuhan informasi mengenai data dan informasi suatu aset sangatlah

penting guna untuk memperbaiki kinerja atau efisiensi di dalam suatu instansi atau

lembaga [1]. Sebagai contoh informasi untuk mengetahui apakah suatu alat

produksi sudah saatnya untuk diganti atau masih layak untuk diperbaiki.

Lembaga Penjaminan Mutu dan Audit Internal (LPMAI) merupakan suatu

lembaga yang berada dalam Universitas Kristen Satya Wacana (UKSW) yang

bergerak dalam penjaminan mutu UKSW. LPMAI terdiri dari beberapa divisi,

diantara divisi tersebut adalah Sumber Daya dan Informasi (SDI) yang dimana

salah satu tugas dari divisi SDI adalah melakukan pengelolaan aset. LPMAI

Universitas Kristen Satya Wacana memiliki banyak aset yang belum

terdokumentasi dengan baik. Oleh karena belum adanya sebuah sistem untuk

mengelola data aset di LPMAI dan untuk memudahkan proses inventarisasi aset,

maka dibuatlah aplikasi inventaris aset yang berbasis web.

Dalam pemrograman web terdapat dua metode untuk mengirimkan data dari

client ke server. Kedua metode tersebut adalah parameter POST method dan

parameter GET method. POST method adalah jenis request dimana pengiriman

data dilakukan dengan memasukkan data pada sebuah permintaan (body of

request), sementara GET method adalah jenis request yang menempatkan data

yang dikirimkan pada URL web yang dituju. Hal ini menjadi salah satu

kelemahan dari GET method karena rentan terhadap serangan seperti XSS

maupun SQL injection [2]. Salah satu mekanisme untuk meningkatkan keamanan

adalah dengan menggunakan teknologi enkripsi. Enkripsi (encryption) adalah

proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut plaintext)

menjadi pesan yang tersembunyi (disebut ciphertext). Ciphertext adalah pesan

yang sudah tidak dapat dibaca dengan mudah. Proses sebaliknya, untuk mengubah

ciphertext menjadi plaintext, disebut dekripsi (decryption) [3].

Berikut adalah hasil pengujian terhadap keamanan web dari serangan SQL

injection sebelum dilakukan proses enkripsi URL. Pengujian dilakukan

menggunakan aplikasi Web Cruiser Web Vulnerability Scanner.

Gambar 1 Celah Keamanan SQL injection

Berdasarkan gambar 1, terdapat beberapa celah keamanan web inventaris

aset yaitu SQL injection pada parameter GET dan POST sehingga perlu dilakukan

Page 7: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

1

enkripsi URL. Hal ini perlu dilakukan karena dalam aplikasi inventaris aset ini

berisi informasi penting tentang seluruh aset berupa data tanggal masuk, kondisi

aset, harga tiap aset, anggaran tiap tahun, data pengguna dll. Dalam penelitian ini

enkripsi URL dengan algoritma AES hanya diterapkan pada parameter GET saja.

Tujuan dari penelitian ini adalah menciptakan suatu URL yang aman melalui

teknik enkripsi dengan algoritma AES pada parameter GET method. Proses

enkripsi yang pertama adalah mengenkripsi parameter dan value terlebih dahulu.

Selanjutnya pada script pemrosesan, parameter dan value di dekripsi menjadi

parameter dan value yang asli. Setelah itu parameter dan value itu diproses

sebagai input dalam script pemrosesan. Hasil dari penelitian ini adalah sebuah

aplikasi inventaris aset berbasis web yang telah menerapkan enkripsi AES pada

URL web tersebut.

2. Tinjauan Pustaka

Penelitian terdahulu yang berkaitan dalam penelitian ini berjudul

“Perlindungan Web pada Login Sistem Menggunakan Algoritma Rijndael”

membahas tentang pengamanan sistem menggunakan algoritma Rijndael untuk

mengenkripsi data. Algoritma Rijndael terpilih sebagai algoritma kriptografi yang

dapat melindungi informasi dengan baik serta efisien dalam implementasinya dan

dinobatkan sebagai Advanced Encryption Standard (AES). Algoritma ini akan

ditanamkan pada login sistem untuk melindungi akses yang tidak sah dari

penyerang. Hasil dari penggunaan algoritma Rinjdael dapat melindungi sistem

login dengan baik sehingga sistem dinyatakan aman dari para penyerang website

[4].

Penelitian yang berjudul “Implementasi AESCHIPPER Class Untuk

Enkripsi URL di Sistem Informasi Akademik Fakultas Teknik Universitas

Diponegoro” membahas tentang bagaimana mengatasi kelemahan parameter GET

yang ada pada aplikasi berbasis web yaitu Sistem Informasi Akademik Fakultas

Teknik Universitas Diponegoro dengan menggunakan teknik enkripsi ke URL

yang menggunakan parameter GET. Prosesnya adalah mengenkripsi variabel pada

sisi client dan mendekripsi pada sisi server untuk mengembalikan data aktual.

Hasilnya adalah variabel yang dikirim dengan parameter GET tidak ditampilkan

pada URL pada tiga modul, yaitu halaman menu utama, ganti password dan link

keluar dari sistem. Proses enkripsi menambahkan akses waktu ke sistem dengan

rata-rata 0:05 detik, sehingga garis besar tidak mempengaruhi kinerja sistem [2].

Mengacu pada penelitian terdahulu, maka penelitian ini akan

mengimplementasikan algoritma AES untuk enkripsi URL pada aplikasi

inventaris aset LPMAI yang berbasis web. Dalam penelitian ini, aplikasi

inventaris aset dibuat dengan PHP, MySQL, Bootstrap, Javascript, library FPDF

untuk generate keluaran berupa dokumen pdf, dan library ChartJs untuk

menampilkan anggaran dalam bentuk grafik.

Pemrograman web atau aplikasi web adalah aplikasi yang dibangun

berbasiskan web dengan menggunakan konsep client-server. Aplikasi yang

dibangun disimpan pada sisi server dalam bentuk dokumen yang disebut dengan

dokumen web yang dirancang dengan menggunakan HTML. Sisi client bertugas

untuk menampilkan halaman web yang terdapat pada server sesuai dengan

Page 8: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

2

permintaan pengguna/client dengan menggunakan protokol HTTP [2]. Proses

enkripsi URL menggunakan modul enkripsi dan dekripsi yang berasal dari

phpclasses.org dan diterapkan ke dalam aplikasi inventaris aset. Ilmu yang

mempelajari enkripsi dan dekripsi adalah kriptografi.

Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak

menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh

seseorang yang tidak memiliki kunci dekripsi [5]. Pada dasarnya, sebuah metode

keamanan memiliki 2 proses utama yaitu enkripsi dan dekripsi. Enkripsi

(encryption) adalah proses menyandikan plaintext menjadi ciphertext, sedangkan

dekripsi (decryption) adalah proses mengembalikan chipertext menjadi plaintext

semula [6]. Dalam proses enkripsi dekripsi ada 2 istilah yaitu plaintext dan

ciphertext, dimana plaintext adalah pesan atau data awal yang masih jelas terbaca,

sedangkan ciphertext adalah pesan hasil pemrosesan suatu algoritma kemanan

data sehingga pesan atau data tidak terbaca, bisa berupa simbol ataupun susunan

huruf yang acak. Dalam penelitian ini enkripsi URL pada aplikasi inventaris aset

menerapkan algoritma AES (Advanced Encryption Standard).

Algoritma AES merupakan algoritma enkripsi yang populer dan merupakan

standar baru yang menggantikan algoritma DES (Data Encryption Standard),

karena DES sudah dianggap tidak aman. Pada bulan Oktober 2000, NIST

mengumumkan untuk memilih Rijndael (dibaca: Rhine-doll), dan pada bulan

November 2001, Rijndael ditetapkan sebagai AES, dan diharapkan Rijndael

menjadi standard kriptografi yang dominan paling sedikit selama 10 tahun [7].

Algoritma AES memiliki panjang kunci yang fleksibel dengan 3 varian bit, yaitu

128, 192 dan 256. Untuk panjang blok plaintext yang akan dienkripsi sebesar 128

bit atau setara dengan 16 karakter.

Gambar 2 Diagram Proses Enkripsi AES-128 [8]

Rijndael menggunakan substitusi dan permutasi, dan sejumlah putaran

(cipher berulang) – setiap putaran mengunakan kunci internal yang berbeda

(kunci setiap putaran disebut round key). Tetapi tidak seperti DES yang

berorientasi bit, Rijndael beroperasi dalam orientasi byte (untuk memangkuskan

implementasi algoritma ke dalam software dan hardware) [8]. Garis besar

Algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit

adalah sebagai berikut (di luar proses pembangkitan round key):

Page 9: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

3

1. AddRoundKey: melakukan XOR antara state awal (plaintext) dengan cipher

key. Tahap ini disebut juga initial round.

2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran

adalah:

a. SubBytes: substitusi byte dengan menggunakan tabel substitusi (S-box).

b. ShiftRows: pergeseran baris-baris array state secara wrapping.

c. MixColumns: mengacak data di masing-masing kolom array state.

d. AddRoundKey: melakukan XOR antara state sekarang round key.

3. Final round: proses untuk putaran terakhir:

a. SubBytes

b. ShiftRows

c. AddRoundKey

3. Metode Penelitian

Pada penelitian ilmiah ini dilakukan beberapa tahapan penelitian yang

memiliki keterkaitan antara tahapan satu dengan tahapan lain. Tahapan dalam

penelitian ini dapat dilihat pada gambar 3 [9].

Gambar 3 Tahapan Penelitian [9]

Berdasarkan gambar 3 tahapan penelitian dapat dijelaskan sebagai berikut,

tahapan pertama adalah identifikasi masalah, pada tahap ini dilakukan identifikasi

terhadap permasalahan yang terkait dengan keamanan pada aplikasi inventaris

aset berbasis web yaitu kerentanan pada URL terhadap serangan SQL injection.

Tahapan kedua adalah perancangan sistem, tahap ini meliputi perancangan proses

menggunakan UML (Unified Modeling Language), meliputi use case diagram,

dan activity diagram, serta perancangan arsitektur aplikasi. Perancangan aristektur

dari sistem yang dibangun adalah perancangan database seperti relasi antar tabel

yang dibuat pada database. Tahapan ketiga yaitu perancangan aplikasi, pada tahap

ini dilakukan pembuatan aplikasi dengan menerapkan metode AES untuk

mengenkripsi URL pada parameter GET. Tahapan keempat yaitu implementasi

dan pengujian sistem. Pada tahap ini aplikasi yang telah dirancang akan

diimplementasi dan diuji, kemudian selanjutnya akan dianalisis terhadap hasil

pengujian. Tahapan yang terakhir adalah penulisan hasil penelitian, tahap ini

Page 10: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

4

merupakan tahap dokumentasi terhadap penelitian yang telah dilakukan dalam

bentuk artikel ilmiah.

Metode perancangan sistem yang dipakai dalam pembuatan aplikasi

inventaris aset yaitu metode prototype. Metode prototype adalah metode dalam

pengembangan rekayasa software yang bertahap dan berulang serta

mementingkan sisi user. Pengembangan software dengan metode ini dilakukan

secara bertahap mulai dari membuat purwarupa yang sederhana, selanjutnya

purwarupa akan dikembangkan dari waktu ke waktu hingga pembuatan software

selesai dan sesuai dengan kebutuhan user.

Gambar 4 Metode Prototype [10]

Gambar 4 merupakan gambar tahapan dari metode prototype yang dapat

dijelaskan sebagai berikut: 1) Listen to Customer, pada tahap ini dilakukan

analisis apa saja yang dibutuhkan customer yaitu sebuah aplikasi inventaris aset

yang aman dan mudah digunakan; 2) Build adalah membangun sistem dan desain

antarmuka web berdasarkan perancangan menggunakan UML (Unified Modeling

Language). Sistem dirancang menggunakan UML untuk selanjutnya dibuat

aplikasi berbasis web dan di integerasikan dengan database; 3) Customer Test,

pada tahap ini dilakukan pengujian sistem dengan cara pengujian secara langsung

oleh customer dan customer akan memberikan review terhadap aplikasi.

Gambar 5 Use Case Diagram

Gambar 5 merupakan use case diagram pada aplikasi inventaris aset. Use

case menjelaskan manfaat sistem yang dilihat dari sudut pandang orang atau

Page 11: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

5

sesuatu yang berada diluar sistem (aktor), aktor user hanya bisa melihat data aset,

divisi, laporan peminjaman aset, dan grafik anggaran per tahun saja, yang telah

diolah oleh admin, manipulasi data atau menghapus sejumlah data hanya bisa

dilakukan oleh aktor admin. Admin merupakan staf bagian SDI (Sumber Daya dan

Informasi) yang bertugas melakukan manajemen aset, user, divisi, dan anggaran.

Gambar 6 Activity Diagram Admin Gambar 7 Activity Diagram User

Gambar 6 merupakan activity diagram admin dari aplikasi inventaris aset.

Admin melakukan login dan melakukan manipulasi data, proses manipulasi data

terbagi menjadi 3 yaitu insert data, update data, dan delete data.

Page 12: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

6

Gambar 7 merupakan activity diagram user dari aplikasi inventaris aset.

User melakukan login untuk melihat data aset, melihat laporan peminjaman, dan

melihat grafik anggaran.

Proses enkripsi dan dekripsi URL pada aplikasi inventaris aset dapat

dijelaskan dalam flowchart pada gambar 8 dan gambar 9.

Gambar 8 Flowchart Enkripsi URL Gambar 9 Flowchart Dekripsi URL

Gambar 8 menunjukkan flowchart proses enkripsi URL, langkah-langkah

proses enkripsi tersebut dapat dijelaskan sebagai berikut:

a) Mengambil plaintext berupa data dari parameter GET.

b) Membangkitkan kunci enkripsi.

c) Membagi panjang string yang akan dienkripsi dengan panjang 16 karakter.

d) Mengenkripsi setiap 16 karakter.

e) Menggabung hasil enkripsi setiap 16 karakter menjadi satu string enkripsi

utuh.

f) Mengambil chipertext hasil proses enkripsi untuk ditampilkan pada URL.

Gambar 9 merupakan flowchart proses dekripsi URL, langkah-langkah

proses dekripsi tersebut dapat dijelaskan sebagai berikut:

a) Mengambil chipertext dari URL.

b) Membangkitkan kunci dekripsi (sama dengan kunci enkripsi).

c) Karena string hasil enkripsi memiliki panjang 32 karakter, maka untuk proses

dekripsi ini panjang string dibagi menjadi 32 karakter.

d) Mendekripsi setiap 32 karakter hasil enkripsi.

Page 13: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

7

e) Menggabung hasil dekripsi 32 karakter menjadi satu string dekripsi utuh.

f) Mengambil plaintext hasil proses dekripsi untuk diproses di database.

4. Hasil dan Pembahasan

Penelitian ini menghasilkan penerapan enkripsi URL pada aplikasi

inventaris aset di LPMAI yang berbasis web. Pengguna aplikasi ini dibagi menjadi

dua, yaitu admin dan user. Admin berperan untuk mengelola seluruh data aset dan

user hanya dapat melihat data keseluruhan aset dan melihat data anggaran per

tahun berupa grafik.

Gambar 10 Halaman Login

Pada halaman ini mengharuskan admin maupun user untuk melakukan login

dengan memasukkan username dan password yang sudah terdaftar di database

sistem. Kemudian sistem akan menentukan apakah pengguna merupakan admin

atau user. Jika sistem memverifikasi pengguna maka akan tampil halaman

beranda seperti pada gambar 11.

Gambar 11 Halaman Admin

Page 14: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

8

Gambar 11 merupakan tampilan halaman admin. Admin memiliki semua

hak akses create, read, update, delete terhadap fungsi-fungsi pada aplikasi seperti

mengelola data aset, divisi, anggaran, dan laporan peminjaman aset.

Seperti pada penjelasan sebelumnya, penelitian ini menambahkan fitur pada

aplikasi inventaris aset berupa enkripsi URL pada parameter GET dengan

algoritma AES yang bertujuan untuk meningkatkan keamanan aplikasi inventaris

aset.

AES merupakan algoritma block cipher yang menggunakan sistem

permutasi dan subtitusi (P-BOX dan S-BOX) dan memiliki 3 jenis yaitu 128, 192,

dan 256 bit. Berdasarkan ukuran blok yang tetap, AES bekerja pada matriks

berukuran 4x4 di mana tiap-tiap sel matriks terdiri atas 1 byte (8 bit). Dalam

penelitian ini menggunakan AES 128-bit yang setara dengan 16 karakter.

Tabel 1 S-BOX AES (Advanced Encryption Standard)

hex y

0 1 2 3 4 5 6 7 8 9 a b c d e f

x

0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76

1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0

2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15

3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75

4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84

5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf

6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8

7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2

8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73

9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db

a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79

b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08

c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a

d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e

e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df

f 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16

Berikut merupakan contoh penerapan AES 128 bit pada variabel URL.

1. Definisikan plaintext dan key.

Plaintext : kode_aset=A00003 (16 karakter)

Key : ard0.saR0fa rich

2. Lakukan konversi plaintext dan key diatas ke dalam nilai hexadecimal.

Konversi plaintext ke hexadecimal.

k o d e _ a s e t = A 0 0 0 0 3

6B 6F 64 65 5F 61 73 65 74 3D 41 30 30 30 30 33

Page 15: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

9

Konversi key ke hexadecimal.

a r d 0 . s a R 0 f a r i c h

61 72 64 30 2E 73 61 52 30 66 61 20 72 69 63 68

Plaintext dalam HEX (128 bit): 6B 6F 64 65 5F 61 73 65 74 3D 41 30 30 30 30

33

Key dalam HEX (128 bit): 61 72 64 30 2E 73 61 52 30 66 61 20 72 69 63 68

3. Proses ekspansi kunci

• Key dalam HEX: 61 72 64 30 2E 73 61 52 30 66 61 20 72 69 63 68

• Ubah menjadi matriks 4x4:

- w[0] = (61,72,64,30),

- w[1] = (2E,73,61,52),

- w[2] = (30,66,61,20),

- w[3] = (72,69,63,68)

• Ambil matriks terakhir dan geser byte ke kiri melingkar. w[3] =

(69,63,68,72)

• Subtitusi byte dengan S-BOX. w[3] = (F9,FB,45,40)

• XOR w[3] dengan round constant (01,00,00,00). g(w[3]) = (F8,FB,45,40)

• XOR g(w[3]) dengan matriks awal. w[4] = w[0] ⊕ g(w[3]) =

(99,89,21,70)

• w[5] = w[4] ⊕ w[1] = (B7,FA,40,22)

• w[6] = w[5] ⊕ w[2] = (87,9C,21,02)

• w[7] = w[6] ⊕ w[3] = (F5,F5,42,6A)

• Gabung w[4],w[5],w[6],w[7], jadi roundkey pertama adalah: 99 89 21 70

B7 FA 40 22 87 9C 21 02 F5 F5 42 6A

Semua kunci yang telah melalui proses ekspansi kunci disajikan pada tabel

2.

Tabel 2 Hasil Ekspansi Kunci Setiap Putaran

Putaran Hasil (Hexadecimal)

0 617264302e7361523066612072696368

1 99892170b7fa4022879c2102f5f5426a

2 7da52396ca5f63b44dc342b6b83600dc

3 7cc6a5fab699c64efb5a84f8436c8424

4 249993e0920055ae695ad1562a365572

5 3165d305a36586abca3f57fde009028f

6 1012a0e4b377264f794871b29941733d

7 d39d870a60eaa14519a2d0f780e3a3ca

8 4297f3c7227d52823bdf8275bb3c21bf

9 b26afb2d9017a9afabc82bda10f40a65

10 3b0db6e7ab1a1f4800d2349210263ef7

4. Proses enkripsi AES 128 bit

• Add Roundkey, Putaran 0

Page 16: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

10

o Plaintext dalam HEX: 6B 6F 64 65 5F 61 73 65 74 3D 41 30 30 30 30

33.

o Ambil plaintext lalu XOR dengan kunci putaran 0.

⊕ =

• Putaran 1, Substitution Bytes

o Subtitusikan matriks terkini hasil XOR yaitu dengan S-BOX AES.

S-BOX

• Putaran 1, Shift Row

o Geser baris 1,2,3 ke kiri.

• Putaran 1, Mix Column

o Mix column mengalikan matriks tetap dengan matriks saat ini.

=

• Add Roundkey, Putaran 1

o XOR kan matriks saat ini dengan kunci putaran 1.

⊕ =

Jadi hasil AES Putaran 1: 999CB1D5B0FB04EB0E3582A8590006FC

Semua hasil putaran dalam hexadecimal yang telah melalui proses enkripsi

disajikan dalam tabel 3.

Page 17: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

11

Tabel 3 Hasil Ciphertext Setiap Putaran

Putaran Hasil (Hexadecimal)

0 0a1d005571121237445b20104259535b

1 999cb1d5b0fb04eb0e3582a8590006fc

2 08d02fd8d23dc979840421327c95b729

3 2d01a72102526b1398d81a510dc320ff

4 3baa2e1d958a2a00b6d98614b54968aa

5 841b2841494ee4f64937e5e3a151bf4d

6 e580472efbf8098d11d4359e6f9c0f8f

7 5c14bd4be1de5908822130ae8dc2d9f3

8 f8e6bb1a5388f3243838107f3b2c3cba

9 5909f61311707330ea3ec82499d41164

10 f05c5ea429a89d35879a7696fe27b1c1

Putaran ke-10 adalah putaran akhir pada proses enkripsi. Pada putaran ini

tidak ada proses mix column, hanya melalui proses subtitusi S-BOX, shift row dan

add roundkey. Jadi chipertext yang ditampilkan ke URL adalah hasil putaran ke-

10 yaitu: f05c5ea429a89d35879a7696fe27b1c1. Tabel 3 merupakan hasil dari satu

contoh proses enkripsi dengan AES 128 bit, untuk hasil enkripsi dari masukan

berupa plaintext dan keluaran berupa chipertext dapat dilihat pada tabel 4.

Tabel 4 Plaintext dan Chipertext

Plaintext Chipertext

kode_aset=A00001 933410dc26eff325c753a12dfc1720cb

kode_aset=A00002 88faa3bd4023c954025018656050fec8

kode_aset=A00003 f05c5ea429a89d35879a7696fe27b1c1

kode_aset=A00004 d0ce13b245bd91b313cb4585a5406533

kode_aset=A00005 c01ab31748256519b06cd5bc39cd88fd

kode_aset=A00006 6de44cc18d8174e3bf34a17f4ffbcbb3

kode_aset=A00007 84b29a2671a30a1f9802d36c920b33d2

kode_aset=A00008 356f12422898151720b71e89acc5b5fd

kode_aset=A00009 e2e0cffba5b21e84a90c3aa0aa434053

kode_aset=A00010 f75b5124b45c1b293192efbb132ebb83

Pada tabel 4 disajikan plaintext berupa parameter GET dari URL dan hasil

keluaran berupa chipertext hasil enkripsi AES 128 bit.

Proses dekripsi merupakan proses merubah ciphertext menjadi plaintext

awal. Proses dekripsi dilakukan sama seperti enkripsi, tetapi dimulai dari putaran

ke-10 menuju putaran ke-0 untuk mendapatkan plaintext awal.

Page 18: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

12

Pada bagian ini dijelaskan pseudo-code implementasi algoritma AES untuk

enkripsi URL pada sistem informasi data aset LPMAI berbasis web. Proses

enkripsi dan proses dekripsi sebagai berikut:

Proses Enkripsi

{Program ini digunakan untuk melakukan proses enkripsi URL}

Kamus:

Nr: Jumlah Ronde

w: Baris Byte Kunci Ronde

CT: Chipertext

K: Kunci

P: Plaintext: parameter GET

Start

(Nr, w) (K)

CT = P AddRoundKey(CT,w[0...3])

for i=1 Nr do

SubBytes(CT)

ShiftRows(CT) if i ≠ Nr then

MixColumn(CT)

endif

AddRoundKey(CT,w[(i*4)...(i*4+3)]) end for

End

Proses Dekripsi

{Program ini digunakan untuk melakukan proses dekripsi URL}

Kamus:

Nr: Jumlah Ronde

w: Baris Byte Kunci Ronde

CT: Chipertext

K: Kunci

P: Plaintext: parameter GET

Start

(Nr, w) (K)

P = CT AddRoundKey (P, w [Nr*4...Nr*4-3])

for i=1 Nr do

InvSubBytes (P)

InvShiftRows (P) AddRoundKey (P, w [(Nr-1)*4...((Nr-i)*4)+3])

if i ≠ Nr then

InvMixColumn (P)

end if AddRoundKey (CT, w [(i*4)...(i*4+3)])

end for

End

Page 19: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

13

Selanjutnya pada penelitian ini dilakukan pengujian keamanan web dari

serangan SQL injection setelah proses enkripsi URL menggunakan aplikasi Web

Cruiser Web Vulnerability Scanner dan pengujian waktu akses sistem. Waktu

akses sistem merupakan salah satu parameter yang digunakan untuk mengukur

performa suatu sistem/aplikasi. Pengukuran waktu akses sistem yang

menggunakan enkripsi URL maupun yang tanpa enkripsi URL menggunakan

add-on bernama firebug di perambah Mozilla Firefox.

Pengujian keamanan web dari serangan SQL injection menggunakan

aplikasi Web Cruiser Web Vulnerability Scanner ditampilkan pada gambar 12.

Gambar 12 Pengujian Web Cruiser Web Vulnerability Scanner

Gambar 12 menunjukkan hasil pengujian keamanan web dari serangan SQL

injection. Hasilnya tidak lagi terdeteksi celah keamanan dari parameter GET

seperti pada gambar 1, tetapi masih ada celah kemanan dari parameter POST

karena pada penelitian ini memang tidak menguji parameter POST. Dibawah ini

merupakan gambar pengujian firebug pada perambah Mozilla Firefox.

Gambar 13 Pengujian firebug untuk sistem dengan enkripsi URL

Gambar 14 Pengujian firebug untuk sistem tanpa enkripsi URL

Waktu akses diukur dalam satuan detik. Dari gambar 13 dan 14 terlihat

bahwa sistem dengan enkripsi URL memiliki waktu akses 1.08 detik. Sedangkan

pada sistem tanpa enkripsi URL memiliki waktu akses 1.01 detik. Terdapat selisih

sebesar 0.07 detik dimana sistem dengan enkripsi memiliki waktu akses lebih

lama dibanding sistem tanpa enkripsi.

Page 20: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

14

Tabel 5 Perbandingan waktu akses dengan enkripsi dan tanpa enkripsi

No Proses Waktu Akses (detik)

Selisih Dengan enkripsi Tanpa enkripsi

1 Beranda / menu utama 2.19 2.11 0.08

2 Melihat detail aset 1.08 1.01 0.07

3 Pencarian data aset 2.3 2.28 0.02

4 Masuk log 1.91 1.86 0.05

5 Melihat grafik anggaran 1.22 1.15 0.07

Tabel 5 menampilkan perbandingan hasil perhitungan waktu akses sistem

yang menggunakan enkripsi URL dan tanpa enkripsi URL. Berdasarkan tabel 5

menunjukkan bahwa setiap sistem yang menggunakan enkripsi selalu memiliki

waktu akses lebih lama dibandingkan dengan sistem yang tanpa enkripsi. Dapat

disimpulkan bahwa rata-rata hasil perhitungan waktu akses sistem adalah 0.06

detik. Tetapi dengan selisih waktu akses yang tidak sampai 1 detik, hal ini tidak

akan mempengaruhi performa keseluruhan sistem. Angka-angka dari pengujian

waktu akses sistem diatas selalu berubah setiap saat, akan tetapi selisih antara

keduanya tidak jauh berbeda.

5. Simpulan

Berdasarkan data penelitian yang telah dilakukan, maka dapat diambil

kesimpulan bahwa algoritma AES dapat diimplementasikan pada URL sebuah

web dengan teknik enkripsi. Enkripsi URL ini menghasilkan keluaran berupa

URL yang tidak menampilkan variabel asli melainkan chipertext hasil enkripsi.

Hal ini akan membuat keamanan sistem yang lebih baik, karena akan melindungi

dari serangan SQL injection yang menyerang melalui URL. Hasil dari pengujian

keamanan web terhadap serangan SQL injection menggunakan aplikasi Web

Cruiser Web Vulnerability Scanner adalah URL dengan parameter GET yang

telah melalui proses enkripsi tidak lagi terdeteksi sebagai celah keamanan, namun

masih terdapat celah keamanan pada parameter POST karena penelitian ini tidak

menguji parameter tersebut. Pengujian waktu akses sistem menjelaskan bahwa

sistem dengan enkripsi URL menyebabkan waktu akses sistem sedikit lebih lama

dibandingkan sistem tanpa enkripsi, dengan selisih rata-rata sebesar 0.06 detik.

6. Daftar Pustaka

[1] Yahya, Mochammad Indra. 2012. Perancangan Sistem Informasi Aset

Manajemen Berbasis Web di SMP Negeri 35 Surabaya. Surabaya:

Universitas Pembangunan Nasional.

[2] Subari, Arkhan dan Manan, Saiful. 2014. Implementasi Aeschipper Class

Untuk Enkripsi URL Di Sistem Informasi Akademik Fakultas Teknik

Universitas Diponegoro. Semarang: Jurnal Sistem Komputer Vol. 4 No. 2,

Universitas Diponegoro.

[3] Rahardjo, Budi. 2002. Keamanan Sistem informasi Berbasis Internet. PT

Page 21: Implementasi Algoritma AES (Advanced Encryption Standard ...repository.uksw.edu/bitstream/123456789/13706/2/T1_672013214_Full... · proses yang dilakukan untuk mengamankan sebuah

15

Insan Komunikasi Indonesia, Bandung.

[4] Dharmawan, Eka A. Yudaningtyas, Erni dan Sarosa, M. 2013. Perlindungan

Web pada Login Sistem Menggunakan Algoritma Rijndael. Malang: Jurnal

EECCIS Vol. 7, No. 1, Universitas Brawijaya.

[5] Kromodimoeljo, S. 2009. Teori dan Aplikasi Kriptografi. SPK IT

Consulting. Hal. 5.

[6] Wowor, A. D. Kriptografi. Salatiga: Fakultas Teknologi Informasi UKSW.

[7] Munir, R. 2004. Data Encryption Standart (DES). Bandung: Institut

Teknologi Bandung.

[8] Munir, R. 2004. Advanced Encryption Standard (AES). Bandung: Institut

Teknologi Bandung.

[9] Hasibuan, Zainal A. 2007. Metode Penelitian Pada Bidang Ilmu Komputer

dan Teknologi Informasi:konsep, teknik dan aplikasi. Jakarta: Fakultas Ilmu

Komputer Universitas Indonesia.

[10] Pressman, Roger S. 2001. Software Engineering a Practitioner’s Approach.

New York: McGraw-Hill Higher Education.