BAB 3
METODOLOGI PENELITIAN
3.1. Pengantar
Metodologi penelitian merupakan sekumpulan proses terstruktur mengenai peraturan, kegiatan, dan prosedur yang digunakan oleh pelaku suatu disiplin ilmu dalam melaksanakan penelitian. (Zarlis, et al., 2015)
Untuk menyelesaikan permasalahan penelitian ini, adapun metode penelitian yang digunakan antara lain :
a. Metode studi kepustakaan
Penulis mempelajari teori kriptografi dan algoritma AES 128 bit, algoritma elgamal, dan algoritma terkait lainnya melalui buku, artikel, jurnal yang mendukung penulisan penelitian ini baik dari perpustakaan, internet ataupun sumber-sumber yang lain.
b. Metode analisis
Menganalisa algoritma AES 128 bit, algoritma elgamal, algoritma Elias gamma code dan algoritma terkait lainnya agar dapat diimplementasikan untuk enkripsi dan dekripsi data.
c. Metode perancangan
Penulis melakukan perancangan antar muka pengguna, yaitu rancangan layar dan menu serta pembuatan kode untuk proses enkripsi dan dekripsi data. d. Metode Penyelesaian Masalah
Penulis merancang algoritma kriptografi yang telah dimodifikasi dimana algoritma ini mengkombinasikan algoritma AES 128 bit dan algoritma elgamal.
3.2. Waktu Penelitian
3.3. Data yang Digunakan
Pada penelitian ini, penulis menggunakan filetext dengan ukuran 100 kb, 200 kb, 300 kb, 400 kb, dan 500 kb. Dari masing-masing data akan dicatat kecepatan enkripsi dan dekripsi, panjang kunci awal, panjang kunci sesudah enkripsi, dan perbandingan panjang kunci sebelum dan sesudah enkripsi.
3.4. Prosedur Penyelesaian Masalah
Untuk menyelesaikan permasalahan diatas, maka penulis membuat sebuah rancangan yang berguna untuk mengamankan data menggunakan algoritma AES 128 bit yang dimodifikasi pada tahapan mix columns diganti menjadi pseudo hadamard transform
yang digunakan algoritma twofish. Untuk enkripsi kunci, digunakan algoritma elgamal dengan menggunakan algoritma kompresi Elias gamma code agar ciphertext yang dihasilkan berukuran lebih kecil.
3.4.1. Enkripsi
Langkah-langkah enkripsi adalah sebagai berikut :
a. Pengirim menentukan plaintext yang akan dienkripsi. b. Pengirim memasukkan kunci untuk enkripsi plaintext.
c. Tabel S-Box diacak menggunakan persamaan Wichmann-Hill.
d. Plaintext tersebut di enciphering sebanyak 10 putaran menggunakan algoritma AES 128 bit yang menghasilkan ciphertext dimana tahapan mix columns diganti menjadi pseudo hadamard transform.
e. Kunci enkripsi kemudian di enkripsi menggunakan algoritma elgamal yang menghasilkan cipherkey.
f. Cipherkey dikompresi menggunakan algoritma Elias gamma code.
3.4.2. Dekripsi
Langkah-langkah dekripsi adalah sebagai berikut :
a. Penerima melakukan dekompresi terhadap cipherkey menggunakan algoritma Elias gamma Code.
b. Penerima melakukan dekripsi cipherkey menggunakan algoritma elgamal yang menghasilkan kunci dekripsi.
c. Penerima melakukan deciphering sebanyak 10 putaran terhadap ciphertext
menggunakan algoritma AES 128 bit sehingga menghasilkan plaintext dimana tahapan inverse mix columns diganti menjadi pseudo hadamard transform.
Plaintext Enkripsi Algoritma AES
128 bit
Ciphertext
Kunci AES 128 bit
Kunci AES 128
bit
Algoritma Elgamal
Cipherkey Penerima
3.5. Diagram Alir
3.5.1. Diagram Alir Proses Ekspansi Kunci AES 128 bit
Proses ekspansi kunci berfungsi untuk menghasilkan kunci (round key) yang digunakan pada proses enkripsi dan dekripsi. Berikut ini adalah diagram alir ekspansi kunci algoritma AES 128 bit.
Kunci AES 128 bit
Penerima Cipherkey
Ciphertext
Algoritma Elgamal
Dekripsi Algoritma
M-AES 128 bit
Plaintext
Alur proses dari flowchart diatas dimulai dari Start, kemudian user akan diminta untuk memasukkan key sebesar 16 byte (karakter). Terlihat pada Round 0 tidak terjadi proses apapun, key yang dimasukkan oleh user akan menjadi Round Key
untuk Round 0. Kemudian dilanjutkan dengan Round 1 sampai Round 10 dimana proses yang terjadi pada masing-masing Round adalah RotWord, SubWord, Rcon dan
XOROperation.
Gambar 3.3. Diagram Alir Ekspansi Kunci AES 128 bit End
InputKey (16 Byte)
Round = 0
Round = Round +1
RotWord()
SubWord()
RCon()
XOR Operation
Round = 10
Yes
3.5.2. Diagram Alir Pembentukan Tabel S-Box
Tabel S-Box pada algoritma AES digunakan untuk proses SubBytes dan SubWord. Proses tersebut adalah mensubstitusi Byte menggunakan tabel S-Box. Secara sederhana, proses ini mudah untuk dibalikkan kembali ke nilai awal jika seorang kriptanalis berhasil mendapatkan nilai setelah SubBytes dengan menggunakan tabel
inverse S-Box. Dengan melakukan pengacakan terhadap tabel S-Box menggunakan
Pseudo-Random Number Generator metode Wichmann-Hill, maka seorang kriptanalis akan sulit mengembalikan ke nilai awal.
Gambar 3.4. Diagram Alir Pembentukan tabel S-Box dan RS-Box
3.5.3. Diagram Alir Proses Enkripsi AES 128 bit
Proses enkripsi bertujuan untuk mendapat ciphertext dan sebuah pesan asli menggunakan kunci. Berikut ini adalah diagram alir proses enkripsi algoritma AES 128 bit, dimana proses Mix Columns diganti menjadi Pseudo Hadamard Transform
agar proses enkripsi lebih efisien waktu.
Gambar 3.5. Diagram Alir Enkripsi AES 128 bit End
Start
InputPlaintext
(16 Byte)
Round = 9
Round = 0
Round = Round + 1
No
Yes AddRoundKey()
SubBytes()
ShiftRows() PHT()
AddRoundKey()
SubBytes()
ShiftRows()
Dalam proses enkripsi ini, dimulai dari Start, kemudian user diminta untuk memasukkan 16 byte (karakter) plaintext yang akan dienkripsi. Round 0 dilakukan proses AddRoundKey(), sedangkan Round 1 sampai 9 dilakukan proses SubBytes(),
ShiftRows(), PHT(), AddRoundKey(), dan pada Round 10 dilakukan proses yang sama kecuali PHT sehingga didapatkan Ciphertext.
3.5.4. Diagram Alir Proses Enkripsi Elgamal
Proses enkripsi elgamal digunakan untuk mengenkripsi kunci yang digunakan algoritma AES 128 bit.
Gambar 3.6. Diagram Alir Enkripsi Elgamal
3.5.5. Diagram Alir Proses Kompresi Elias Gamma Code
Proses kompresi Elias gamma code digunakan untuk kompresi bilangan bulat yang dihasilkan ciphertext elgamal.
Start
Input p, α, a
Hitung $=αa mod p
Hitung += α ,- p
End
Gambar 3.7. Diagram Alir Kompresi Elias Gamma Code
3.5.6. Diagram Alir Proses Dekripsi AES 128 bit
Proses dekripsi berfungsi untuk mengembalikan ciphertext ke plaintext.
Start
Urutkan karakter berdasarkan frekensi
kemunculan
Input teks
Bentuk tabel kode Elias Gamma Code
Ganti karakter pada teks sesuai tabel kode
Generate Kode Elias Gamma ke ASCII
Konversi kode ASCII ke karakter
Gambar 3.8. Diagram Alir Dekripsi AES 128 bit
Dalam proses dekripsi ini, dimulai dari Start, kemudian user diminta untuk memasukkan 16 byte (karakter) ciphertext yang akan di dekripsi. Round 0 dilakukan proses AddRoundKey(), sedangkan Round 1 sampai 9 dilakukan proses Inv. ShiftRows(), Inv. SubBytes(), AddRoundKey(), Inv. PHT() dan pada Round 10 dilakukan proses yang sama kecuali Inv. PHT sehingga didapatkan Plaintext.
Start
End
InputCiphertext
(16 Byte)
Round = 9
Round = 0
Round = Round + 1
Yes
No AddRoundKey()
Inv. ShiftRows()
Inv. SubBytes()
AddRoundKey()
Inv. PHT()
Inv. ShiftRows()
Inv. SubBytes()
3.5.7. Diagram Alir Proses Dekripsi Elgamal
Proses dekripsi elgamal digunakan untuk mendekripsi kunci yang digunakan untuk dekripsi AES 128 bit.
Gambar 3.9. Diagram Alir Dekripsi Elgamal
3.5.8. Diagram Alir Proses Dekompresi Elias Gamma Code
Proses dekompresi Elias gamma code digunakan untuk dekompresi bilangan bulat yang dihasilkan ciphertext elgamal.
Start
Input p, α, $, a
Hitung + /−1− /
Hitung -=.. (+ ) −1 m /
End
Gambar 3.10. Diagram Alir Dekompresi Elias Gamma Code
3.6. Analisis Enkripsi
Untuk melakukan enkripsi, plaintext dienkripsi menggunakan algoritma AES 128 bit
modifikasi menghasilkan Ciphertext, kemudian kunci enkripsi di enkripsi menggunakan algoritma elgamal yang menghasilkan cipherkey. Cipherkey dikompresi menggunakan metode Elias gamma code. Ciphertext dan cipherkey dikirimkan kepada penerima pesan.
3.6.1. Analisis Enkripsi Algoritma AES 128 bit Modifikasi
Misalkan dipilih plaintext yang akan dienkripsi “Ilmu Kriptografi” dengan menggunakan kunci “KeamananKomputer”, untuk enkripsi kunci digunakan algoritma elgamal dengan bilangan prima aman p = 2579, elemen primitif α = 2, dan
bilangan acak a = 765. Tahap pertama adalah membangkitkan 256 bilangan acak menggunakan metode Wichmann-Hill untuk menghasilkan tabel S-Box yang baru. Metode Wichmann-Hill membutuhkan 3 buah bilangan yang disebut seed, yaitu S1, S2, dan S3. Nilai dari bilangan tersebut dihasilkan dari kode ASCII kunci yang digunakan untuk enkripsi.
Start
Generate isi file ke binary Input teks
Kembalikan ke stringbit
semula
Ganti stringbit sesuai tabel kode elias gamma
Tabel 3.1. Kode ASCII Kunci
Karakter Kode ASCII (Dec) Kode ASCII (Hex)
K 75 4B
e 101 65
a 97 61
m 109 6D
a 97 61
n 110 6E
a 97 61
n 110 6E
K 75 4B
o 111 6F
m 109 6D
p 112 70
u 117 75
t 116 74
e 101 65
r 114 72
S1 = K+e+a+m+a = 75+101+97+109+97 = 479 S2 = n+a+n+K+o = 110+97+110+75+111 = 503 S3 = m+p+u+t+e = 109+112+117+116+101 = 555
Tabel 3.2. Tabel S-Box
Tabel 3.4. Key Expansion
Kemudian dilakukan enkripsi menggunakan algoritma AES 128 bit yang telah dimodifikasi dengan urutan langkah sebagai berikut.
Round 0 dilakukan AddRoundKey, yaitu proses XOR antara plaintext dengan key.
State awal didapatkan dengan mengonversi masing-masing karakter plaintext ke kode ASCII.
Tabel 3.5. Kode ASCII Plaintext
Karakter Kode ASCII (Dec) Kode ASCII (Hex)
Plaintext = 49 6C 6D 75 20 4B 72 69 70 74 6F 67 72 61 66 69
R0 Key = 4B 65 61 6D 61 6E 61 6E 4B 6F 6D 70 75 74 65 72 XOR
---State = 02 09 0C 18 41 25 13 07 3B 1B 02 17 07 15 03 1B
State = 90 81 EE 79 27 B5 69 3E 42 96 A8 69 8F 9C 8A C8
Pada Round 10, tidak dilakukan tahapan PHT sehingga pada round ini hanya dilakukan SubBytes, ShiftRows dan AddRoundKey yang menghasilkan Ciphertext.
Round 10 SubBytes State diatas dikonversi ke karakter sehingga didapatkan Ciphertext “
ù-àGƒ-üQï卿¯ ð*X”.
3.6.2. Analisis Enkripsi Kunci Algoritma Elgamal
Kunci “KeamananKomputer” dienkripsi menggunakan algoritma elgamal dengan bilangan prima aman p = 2579, elemen primitif α = 2, dan bilangan rahasia a = 765.
Penerima pesan menghitung nilai $ =αa mod p
$=2765 2579 = 949
Kemudian nilai (p, α, $) = (2579, 2, 949) dikirimkan kepada pengirim pesan,
penerima pesan menyimpan bilangan rahasia a dan tidak boleh diketahui siapapun termasuk pengirim pesan. Karakter kunci dikonversi ke kode ASCII, kemudian dibangkitkan bilangan acak rahasia ki dengan range nilai kє {0, 1, ..., p-2}. Kelebihan
utama dari algoritma elgamal adalah plaintext yang sama akan menghasilkan
ciphertext yang berbeda karena adanya proses pembangkitan bilangan acak rahasia ki.
Pengirim pesan kemudian mengenkripsi kunci dengan menghitung nilai (+-, .-) dengan menggunakan persamaan berikut ini.
.i = $,-. - p
Tabel 3.6. Proses Enkripsi Kunci Algoritma Elgamal
Karakter ASCII (Dec)
Perbandingan ukuran key sebelum dienkripsi dengan sesudah dienkripsi dihitung menggunakan persamaan berikut ini.
:-/ℎ<=,<> ?-@<
A<> ?-@< B 100% = 146
16 B 100% = 912.5%
kompresi bilangan bulat integer. Oleh karena itu, penulis menggunakan metode kompresi Elias gamma code yang memiliki tingkat kompresi yang signifikan untuk data berupa bilangan bulat integer.
3.6.3. Analisis Kompresi Cipherkey Algoritma Elias Gamma Code
Untuk melakukan kompresi dengan algoritma Elias gamma code, karakter yang akan dikompresi disusun secara menaik / ascending sesuai dengan frekuensi kemunculan karakter. Karakter yang memiliki frekuensi kemunculan yang besar akan mendapatkan jumlah bit yang lebih sedikit. Berikut ini adalah tabel karakter yang disusun berdasarkan teks cipherkey dibawah ini.
1714:1642:1247:266:557:119:2115:1273:956:2139:2109:1754:902:1824:2207:2079 sehingga dihasilkan deretan bit berikut ini.
Jumlah total bit = 592 1100111000101000110101100101001100001010 00000001 bit yang ditambahkan
String bit diatas di konversi ke desimal setiap 8 bit, kemudian dikonversi ke karakter sehingga didapatkan hasil kompresi adalah
“BPŠ!Ó&Å‹”¢iÒ-1' ¢í–ŒJQЦ"لل’Œa4 ç ‡”¥Š!b…:8³ÙÈkZ"ˆ(‘
P¤"„‘Î(ÖS
”
Dengan ukuran data 75 byte, kemudian dianalisis Compression Ratio (ukuran data setelah dikompresi) dan Space Saving (penghematan ruang) dengan menggunakan persamaan berikut.
algoritma elgamal yang menghasilkan kunci dekripsi. Kunci tersebut kemudian digunakan untuk dekripsi Ciphertext menggunakan algoritma AES 128 bit modifikasi.
3.7.1. Analisis Dekompresi Cipherkey Algoritma Elias Gamma Code
Untuk melakukan dekompresi dengan algoritma Elias gamma code, maka cipherkey di
generate menjadi stringbit terlebih dahulu.
Cipherkey
“BPŠ!Ó&Å‹”¢iÒ-1' ¢í–ŒJQЦ"لل’Œa4 ç ‡”¥Š!b…:8³ÙÈkZ"ˆ(‘
P¤"„‘Î(ÖS
”
dikonversi ke string bit menjadi
010000100101000010001010000101100010000111010011000100000010011011000
Selanjutnya string bit dikembalikan ke string bit semula sebelum penambahan bit
dengan cara menghilangkan bit pada bagian akhir sebanyak 7+n, dengan nilai n adalah nilai desimal dari 8 bit terakhir.
8 bit terakhir = 00000001 = 1, bit yang dihilangkan adalah 7+1=8 bit terakhir, sehingga string bit menjadi
010000010100010010001000011010101000010100100001000101000010010010001 1100111000101000110101100101001100001010
Stringbit diatas kemudian dikonversi ke karakter asli dengan menggunakan tabel 3.7. yang menghasilkan cipherkey dibawah ini.
1714:1642:1247:266:557:119:2115:1273:956:2139:2109:1754:902:1824:2207:2079 :1007:1433:993:555:895:882:1363:2390:265:184:1989:421:1814:1792:380:2508
3.7.2. Analisis Dekripsi Kunci Algoritma Elgamal
Untuk melakukan dekripsi, dibutuhkan bilangan prima p=2579 dan bilangan rahasia
a=765. Kemudian dihitung : a. + /−1− /
b. -=.i. (+i -1-p)m /
Tabel 3.8. Proses Dekripsi Kunci Algoritma Elgamal
(+i, .i) +-1813 2579 -=.-.+-1813mo 2579 Karakter
3.7.3. Analisis Dekripsi Algoritma AES 128 bit Modifikasi
Berikut ini adalah proses dekripsi menggunakan algoritma AES 128 bit yang telah dimodifikasi sebagai berikut.
Round 0 dilakukan AddRoundKey, yaitu proses XOR antara ciphertext dengan
Round-10key. State awal didapatkan dengan mengonversi masing-masing karakter ciphertext
ke kode ASCII.
Tabel 3.9. Kode ASCII Ciphertext
Karakter Kode ASCII (Dec) Kode ASCII (Hex)
ù 249 F9
Round 1 sampai 9 dilakukan proses InvShiftRows, InvSubBytes, InvPHT, dan
AddRoundKey. Round 1 InvShiftRows
State = 81 BA 74 E9 C4 DE 96 04 17 8F F1 6C B7 BB 45 45
ISR = 81 BB F1 04 C4 BA 45 6C 17 DE 74 45 B7 8F 96 E9
State = 2A C2 D4 B5 A9 2D F9 12 5C 9A 3C 24 E1 16 9A 61 dilakukan InvShiftRows, InvSubBytes dan AddRoundKey yang menghasilkan
Plaintext.
Round 10 InvShiftRows
ISR = B4 39 E4 7A BD 2A 97 55 2B 19 B4 DA 55 21 68 19
State diatas dikonversi ke karakter sehingga didapatkan Plaintext “Ilmu Kriptografi”.
3.8. Kompleksitas Waktu Algoritma
Kompleksitas waktu adalah jumlah operasi yang dilakukan untuk melaksanakan algoritma berdasarkan ukuran masukan n. Ada 3 variasi kompleksitas waktu, yaitu untuk keadaan terbaik (best case), keadaan rata-rata (average case), dan keadaan terburuk (worst case). Kinerja dari sebuah algoritma biasanya diukur dengan worst case yang dinyatakan dengan Big-O.
3.8.1. Kompleksitas Waktu Algoritma Modified AES 128 bit
Untuk mengetahui kompleksitas waktu Algoritma Modified AES 128 bit, maka akan dihitung jumlah langkah pada saat enkripsi dengan asumsi jumlah data adalah 16 byte.
'AddRoundKey
state(j) = sbox(state(j) (16 langkah dilakukan 10 kali = 160 langkah)
Next j
temp(10) = state(2)
Jumlah langkah yang dibutuhkan adalah sebagai berikut.
Jumlah langkah = 17+1+1+170+160+10+9+144+17+170+10 = 709 langkah Pertumbuhan jumlah langkah terhadap banyak data ditunjukkan tabel dibawah ini.
Tabel 3.10. Kompleksitas Waktu Algoritma Modified AES 128 bit Jumlah Data (byte) Jumlah Langkah
16 709
32 1418
48 2127
64 2836
n (n/16) * 709
Sehingga disimpulkan bahwa algoritma modified AES 128 bit memiliki kompleksitas linear Big-O(n/16*709) atau ditulis Big-O(n).
3.8.2. Kompleksitas Waktu Algoritma Compressed Elgamal
'Algoritma Elgamal
For x As Integer = 0 To Len(txtKey.Text) – 1 (6 langkah) seckey = Rnd() * (p - 2)
gamma(x) = BigInteger.ModPow(alpha, seckey, p)
delta(x) = BigInteger.ModPow(BigInteger.Pow(beta, seckey) * Asc(Mid(txtKey.Text, x + 1, 1)), 1, p)
For i As Integer = 1 To charcount.Length() – 1 (2 langkah, asumsi enkripsi elgamal menghasilkan 2 karakter)
egcitem.SubItems.Add(charcount(i)) (2 langkah) egcitem.SubItems.Add(egc(i)) (2 langkah) ListView1.Items.Add(egcitem) (2 langkah) Next
Jumlah langkah yang dibutuhkan adalah sebagai berikut. Jumlah langkah = 6+2+2+2+16+6+2+2+2= 40 langkah
Tabel 3.11. Kompleksitas Waktu Algoritma Compressed Elgamal
Jumlah Data (byte) Jumlah Langkah
1 40
Sehingga disimpulkan bahwa algoritma compressed elgamal memiliki kompleksitas linear Big-O(n * 40) atau ditulis Big-O(n).
3.9. Alat Penelitian
Pada penelitian ini, digunakan alat penelitian berikut ini. a. Perangkat keras Laptop ASUS dengan spesifikasi
1. Processor Intel Core i3 4030U 1.9 GHz 2. Memory DDR3 2 GB
Windows 7 adalah jajaran sistem operasi berbasis grafis yang dibuat oleh
Microsoft untuk digunakan pada komputer pribadi, yang mencakup komputer rumah, desktop bisnis, laptop, dan MediaCenter. Windows 7 merupakan sistem dasar untuk dapat menjalankan berbagai perangkat lunak yang digunakan pada penelitian ini.
2. MicrosoftVisual Basic .NET
Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak diatas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, aplikasi
diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET.
Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari
Microsoft Visual Basic versi sebelumnya yang diimplementasikan diatas .NET Framework. Peluncurannya mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft dan versi baru ini tidak kompatibel dengan versi terdahulu.
Apakah Visual Basic .NET dianggap sebagai sebuah versi Visual Basic
atau benar-benar bahasa yang berbeda merupakan sebuah topik perdebatan yang hangat. Hal ini dikarenakan sintaksis bahasa Visual Basic .NET tidak mengalami perubahan yang sangat drastis, dan hanya menambahkan beberapa dukungan fitur baru seperti penanganan eksepsi secara terstruktur dan eskpresi yang bisa di-short-circuit-kan. Dua perubahan tipe dan pun terjadi saat berpindah ke Visual Basic .NET. Dibandingkan Visual Basic 6.0, tida data integer yang dimiliki oleh
Visual Basic .NET memiliki panjang dua kali lebih panjang dari 16 bit
menjadi 32 bit. Selain itu, tipe data long juga sama-sama berubah menjadi dua kali lebih panjang dari 32 bit menjadi 64 bit. Bilangan bulat 16-bit dalam Visual Basic .NET dinamakan dengan Short. Lagi pula, desainer GUI Windows Forms yang terdapat di dalam Visual Studio
.NET atau Visual Basic .NET memiliki gaya yang sangat mirip dengan
editorformVisual Basic klasik.
Secara sintaksis tidak banyak yang berubah, lain halnya dengan semantik, yang berubah secara signifikan. Visual Basic .NET merupakan sebuah bahasa pemrograman yang mendukung fitur "Bahasa Pemrograman Berorientasi Objek" secara penuh, karena memang didukung oleh arsitektur Microsoft .NET Framework, yang mengandung kombinasi dari Common Language Runtime dan Base Class Library.
Visual Basic klasik, hanya merupakan sebuah bahasa pemrogaman berbasis objek, yang berjalan di atas arsitektur Component Object Model
Perubahan ini telah mengubah banyak asumsi tentang hal yang benar yang harus dilakukan dengan mempertimbangkan performa dan kemudahan untuk dipelihara. Beberapa fungsi dan pustaka perangkat lunak, yang ada di dalam Visual Basic klasik, kini tidak terdapat di dalam Visual Basic .NET, mungkin masih banyak yang masih terdapat di dalam Visual Basic .NET, tapi tidak seefisien apa yang ditawarkan oleh .NET Framework. Bahkan jika program Visual Basic klasik bisa dikompilasi dengan benar, sebagian besar program Visual Basic klasik harus melalui beberapa proses refactoring untuk mengadopsi fitur bahasa baru secara keseluruhan. Dokumentasi untuk ini pun tersedia di situs
BAB 4
HASIL DAN PEMBAHASAN
4.1. Pengantar
Pada bab ini, dijelaskan hasil penelitian dari modified algoritma AES 128 bit dan
compressed elgamal. Penelitian ini akan membandingkan kinerja dari algoritma AES 128 bit sebelum di modifikasi dengan AES 128 bit modifikasi. Selain itu, juga dianalisis tingkat kompresi cipherkey yang dihasilkan algoritma elgamal menggunakan algoritma Elias gamma code. Penelitian ini menggunakan file text
berbagai ukuran yaitu 100 kb, 200 kb, 300 kb, 400 kb, dan 500 kb. Diharapkan dari penelitian ini, didapat algoritma yang lebih efisien dibanding algoritma sebelumnya.
4.2. Analisis Simulasi Algoritma AES 128 bit dan Elgamal
Untuk menganalisis algoritma AES 128 bit dan elgamal, penulis menggunakan file
teks berbagai ukuran dengan asumsi 1 kb adalah 1024 karakter, ukuran kunci yang digunakan adalah 16 byte (128 bit), bilangan prima p=2579, bilangan primitive α=2, dan bilangan rahasia a=765. Masing-masing file teks terdiri dari kombinasi huruf kecil, huruf besar, angka 0 sampai 9, dan karakter khusus. Dari masing-masing file
Gambar 4.1. Tampilan Enkripsi AES 128 bit dan Elgamal Pada FileText 100 kb Gambar 4.1 diatas merupakan proses enkripsi menggunakan AES 128 bit dan elgamal pada file berukuran 100 kb. Pada gambar juga terlihat tabel S-Box dasar yang belum dimodifikasi. Ukuran key awal adalah 16 byte, setelah di enkripsi menggunakan elgamal, cipherkey menjadi berukuran 150 byte, ukuran cipherkey memiliki perbandingan yang besar yaitu 937.5%. Dari segi waktu enkripsi, algoritma AES membutuhkan waktu 1.397 detik, algoritma elgamal membutuhkan waktu 0.021 detik sehingga didapat total waktu enkripsi adalah 1.419 detik.
Gambar 4.3. Tampilan Enkripsi AES 128 bit dan Elgamal Pada FileText 200 kb Gambar 4.3 diatas merupakan proses enkripsi menggunakan AES 128 bit dan elgamal pada file berukuran 200 kb. Ukuran key awal adalah 16 byte, setelah di enkripsi menggunakan elgamal, cipherkey menjadi berukuran 149 byte, ukuran
cipherkey memiliki perbandingan yang besar yaitu 931.25%. Dari segi waktu enkripsi, algoritma AES membutuhkan waktu 2.029 detik, algoritma elgamal membutuhkan waktu 0.014 detik sehingga didapat total waktu enkripsi adalah 2.043 detik.
Gambar 4.4 diatas merupakan proses dekripsi menggunakan AES 128 bit dan elgamal pada file berukuran 200 kb. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 4.409 detik, algoritma elgamal membutuhkan waktu 0.005 detik sehingga didapat total waktu dekripsi adalah 4.414 detik.
Gambar 4.5. Tampilan Enkripsi AES 128 bit dan Elgamal Pada File Text 300 kb Gambar 4.5 diatas merupakan proses enkripsi menggunakan AES 128 bit dan elgamal pada file berukuran 300 kb. Ukuran key awal adalah 16 byte, setelah di enkripsi menggunakan elgamal, cipherkey menjadi berukuran 141 byte, ukuran
Gambar 4.6. Tampilan Dekripsi AES 128 bit dan Elgamal Pada File Text 300 kb Gambar 4.6 diatas merupakan proses dekripsi menggunakan AES 128 bit dan elgamal pada file berukuran 300 kb. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 5.744 detik, algoritma elgamal membutuhkan waktu 0.002 detik sehingga didapat total waktu dekripsi adalah 5.746 detik.
Gambar 4.7. Tampilan Enkripsi AES 128 bit dan Elgamal Pada File Text 400 kb Gambar 4.7 diatas merupakan proses enkripsi menggunakan AES 128 bit dan elgamal pada file berukuran 400 kb. Ukuran key awal adalah 16 byte, setelah di enkripsi menggunakan elgamal, cipherkey menjadi berukuran 144 byte, ukuran
algoritma AES membutuhkan waktu 3.398 detik, algoritma elgamal membutuhkan waktu 0.019 detik sehingga didapat total waktu enkripsi adalah 3.417 detik.
Gambar 4.8. Tampilan Dekripsi AES 128 bit dan Elgamal Pada File Text 400 kb Gambar 4.8 diatas merupakan proses dekripsi menggunakan AES 128 bit
dan elgamal pada file berukuran 400 kb. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 7.607 detik, algoritma elgamal membutuhkan waktu 0.001 detik sehingga didapat total waktu dekripsi adalah 7.608 detik.
enkripsi menggunakan elgamal, cipherkey menjadi berukuran 148 byte, ukuran
cipherkey memiliki perbandingan yang besar yaitu 925%. Dari segi waktu enkripsi, algoritma AES membutuhkan waktu 4.248 detik, algoritma elgamal membutuhkan waktu 0.014 detik sehingga didapat total waktu enkripsi adalah 4.262 detik.
Gambar 4.10. Tampilan Dekripsi AES 128 bit dan Elgamal Pada File Text 500 kb Gambar 4.10 diatas merupakan proses dekripsi menggunakan AES 128 bit
dan elgamal pada file berukuran 500 kb. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 9.369 detik, algoritma elgamal membutuhkan waktu 0.001 detik sehingga didapat total waktu dekripsi adalah 9.370 detik.
Tabel 4.1 dibawah ini hasil simulasi algoritma AES 128 bit dan elgamal berupa panjang kunci, panjang cipherkey, perbandingan panjang kunci dengan panjang cipherkey, dan waktu proses baik enkripsi maupun dekripsi.
Tabel 4.1. Hasil Simulasi Algoritma AES 128 bit dan Elgamal
Ukuran
Waktu Enkripsi (Detik) Waktu Dekripsi (Detik)
Tabel 4.2 menunjukkan kecepatan enkripsi dan dekripsi algoritma AES 128
bit dari masing-masing ukuran dokumen yang berbeda-beda.
Tabel 4.2. Kecepatan Enkripsi dan Dekripsi Algoritma AES 128 bit
Ukuran Dokumen (kilobyte) Kecepatan Enkripsi (kb/s) Kecepatan Dekripsi (kb/s)
100 71.581 42.900
200 98.570 45.361
300 114.372 52.228
400 117.716 52.583
500 117.702 53.367
Tabel 4.3 menunjukkan kecepatan enkripsi dan dekripsi algoritma AES 128
bit dan elgamal dari masing-masing ukuran dokumen yang berbeda-beda.
Tabel 4.3. Kecepatan Enkripsi dan Dekripsi algoritma AES 128 bit dan Elgamal
Ukuran Dokumen (kilobyte) Kecepatan Enkripsi (kb/s) Kecepatan Dekripsi (kb/s)
100 70.472 42.863
200 97.895 45.310
300 113.507 52.210
400 117.061 52.576
500 117.315 53.361
4.3. Analisis Simulasi Algoritma Modified AES 128 bit dan Compressed Elgamal
Untuk menganalisis algoritma modified AES 128 bit dan compressed elgamal dengan fungsi kompresi Elias gamma code, penulis menggunakan file teks yang sama, ukuran kunci yang digunakan adalah 16 byte (128 bit), bilangan prima p=2579, bilangan
Gambar 4.11. Tampilan Enkripsi Modified AES 128 bit dan Compressed Elgamal Pada FileText 100 kb
Gambar 4.11 diatas merupakan proses enkripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 100 kb. Pada gambar terlihat tabel S-Box yang sudah dimodifikasi menggunakan pseudo random number generator
(PRNG) metode wichmann-hill. Ukuran key awal adalah 16 byte, setelah di enkripsi menggunakan elgamal, cipherkey berukuran 146 byte, ukuran cipherkey memiliki perbandingan yang besar yaitu 912.5%. Setelah dikompresi, cipherkey berukuran 72
Gambar 4.12. Tampilan Dekripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 100 kb
Gambar 4.13. Tampilan Enkripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 200 kb
Gambar 4.13 diatas merupakan proses enkripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 200 kb. Ukuran key awal adalah 16 byte, setelah di enkripsi menggunakan elgamal, cipherkey menjadi berukuran 144
byte, ukuran cipherkey memiliki perbandingan yang besar yaitu 900%. Setelah dikompresi, cipherkey berukuran 71 byte dengan space saving 51.91% dan
Gambar 4.14. Tampilan Dekripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 200 kb
Gambar 4.15. Tampilan Enkripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 300 kb
Gambar 4.15 diatas merupakan proses enkripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 300 kb. Ukuran key awal adalah 16 byte, setelah di enkripsi menggunakan elgamal, cipherkey menjadi berukuran 152
byte, ukuran cipherkey memiliki perbandingan yang besar yaitu 950%. Setelah dikompresi, cipherkey berukuran 73 byte dengan space saving 52.80% dan
Gambar 4.16. Tampilan Dekripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 300 kb
Gambar 4.17. Tampilan Enkripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 400 kb
Gambar 4.17 diatas merupakan proses enkripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 400 kb. Ukuran key awal adalah 16 byte, setelah di enkripsi menggunakan elgamal, cipherkey menjadi berukuran 138
byte, ukuran cipherkey memiliki perbandingan yang besar yaitu 862.5%. Setelah dikompresi, cipherkey berukuran 72 byte dengan space saving 48.55% dan
Gambar 4.18. Tampilan Dekripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 400 kb
Gambar 4.19. Tampilan Enkripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 500 kb
Gambar 4.19 diatas merupakan proses enkripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 500 kb. Ukuran key awal adalah 16 byte, setelah di enkripsi menggunakan elgamal, cipherkey menjadi berukuran 142
byte, ukuran cipherkey memiliki perbandingan yang besar yaitu 887.5%. Setelah dikompresi, cipherkey berukuran 73 byte dengan space saving 49.82% dan
Gambar 4.20. Tampilan Dekripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 500 kb
Gambar 4.20 diatas merupakan proses dekripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 500 kb. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 2.221 detik, algoritma elgamal membutuhkan waktu 0.001 detik, algoritma Elias gamma code membutuhkan waktu 0.003 sehingga didapat total waktu dekripsi adalah 2.226 detik.
Tabel 4.4. Hasil Simulasi Algoritma Modified AES 128 bit dan Compressed Elgamal
Waktu Enkripsi (Detik) Waktu Dekripsi (Detik)
MAES Compressed Elgamal Total MAES Compressed Elgamal Total
100 16 72 450% 0.695 0.075 0.770 0.638 0.008 0.647 200 16 71 443.75% 1.081 0.023 1.105 1.029 0.006 1.035 300 16 73 456.25% 1.530 0.027 1.558 1.443 0.005 1.450 400 16 72 450% 1.941 0.039 1.981 1.859 0.006 1.866 500 16 73 456.25% 2.365 0.025 2.392 2.221 0.004 2.226 Tabel 4.5 menunjukkan kecepatan enkripsi dan dekripsi algoritma modified
AES 128 bit dari masing-masing ukuran dokumen yang berbeda-beda.
Tabel 4.5. Kecepatan Enkripsi dan Dekripsi Algoritma Modified AES 128 bit
Ukuran Dokumen (kilobyte) Kecepatan Enkripsi (kb/s) Kecepatan Dekripsi (kb/s)
100 143.884 156.739
200 185.013 194.363
300 196.078 207.900
400 206.079 215.169
500 211.416 225.123
4.4. Analisis Perbandingan Hasil Enkripsi
Rata-rata rasio kompresi dan space saving terhadap cipherkey disajikan pada tabel 4.6 dibawah ini.
Efisiensi waktu enkripsi algoritma modified AES 128 bit terhadap AES 128
bit disajikan pada tabel 4.7.
Tabel 4.7. Efisiensi Waktu Enkripsi Algoritma Modified AES 128 bit Ukuran
Perbandingan kecepatan enkripsi antara algoritma modified AES 128 bit
dengan algoritma AES 128 disajikan pada tabel 4.8.
Tabel 4.8. Perbandingan Kecepatan Enkripsi Algoritma AES 128 bit Ukuran
Grafik perbandingan waktu enkripsi algoritma modified AES 128 bit
Gambar 4.21. Grafik Perbandingan Waktu Enkripsi Algoritma AES 128 bit
Grafik perbandingan kecepatan enkripsi (kb/s) antara algoritma modified
AES 128 bit dengan algoritma AES 128 bit disajikan pada gambar 4.22.
Gambar 4.22. Grafik Perbandingan Kecepatan Enkripsi Algoritma AES 128 bit 4.5. Analisis Perbandingan Hasil Dekripsi
Berdasarkan hasil dekripsi yang diperoleh, maka didapat data waktu dekripsi. Berikut ini adalah tabel perbandingan hasil dekripsi dari algoritma yang digunakan.
1,397
AES 128 bit Modified AES 128 bit
71,581
Efisiensi waktu dekripsi algoritma modified AES 128 bit terhadap AES 128
bit disajikan pada tabel 4.9.
Tabel 4.9. Efisiensi Waktu Dekripsi Algoritma Modified AES 128 bit Ukuran
Perbandingan kecepatan dekripsi antara algoritma modified AES 128 bit
dengan algoritma AES 128 bit disajikan pada tabel 4.10.
Tabel 4.10. Perbandingan Kecepatan Dekripsi Algoritma AES 128 bit Ukuran
Grafik perbandingan waktu dekripsi algoritma modified AES 128 bit
Gambar 4.23. Grafik Perbandingan Waktu Dekripsi Algoritma AES 128 bit
Grafik perbandingan kecepatan dekripsi (kb/s) antara algoritma modified
AES 128 bit dengan algoritma AES 128 bit disajikan pada gambar 4.24.
Gambar 4.24. Grafik Perbandingan Kecepatan Dekripsi Algoritma AES 128 bit
2,331
AES 128 bit Modified AES 128 bit
42,900 45,361 52,228 52,583 53,367
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil analisis yang diperoleh, maka kesimpulan penelitian ini sebagai berikut.
a. Algoritma modified AES 128 bit memiliki efisiensi waktu enkripsi dan dekripsi yang lebih baik dibanding algoritma AES 128 bit.
b. Cipherkey algoritma elgamal yang dikompresi menggunakan Elias gamma code
memiliki rasio kompresi yang lebih rendah dan space saving yang lebih tinggi jika data yang digunakan adalah bilangan bulat integer. Algoritma Elias gamma code disarankan untuk kompresi cipherkey yang dihasilkan algoritma elgamal karena cipherkey yang dihasilkan algoritma elgamal merupakan bilangan bulat
integer.
c. Secara rata-rata, algoritma modified AES 128 bit memiliki efisiensi waktu enkripsi sebesar 82.964% dibanding algoritma AES 128 bit.
d. Secara rata-rata, algoritma modified AES 128 bit memiliki efisiensi waktu dekripsi sebesar 304.585% dibanding algoritma AES 128 bit.
e. Secara rata-rata, cipherkey yang dihasilkan algoritma elgamal memiliki space saving sebesar 50.992% dan rasio kompresi sebesar 49.008% menggunakan metode kompresi Elias gamma code.
Penulis menarik kesimpulan bahwa algoritma modified AES 128 bit memiliki efisiensi waktu enkripsi dan dekripsi yang lebih baik dibanding algoritma AES 128
bit. Agar cipherkey yang dihasilkan algoritma elgamal memiliki ukuran yang lebih kecil, maka algoritma yang disarankan adalah Elias gamma code yang memiliki rasio kompresi yang lebih rendah dan space saving yang lebih tinggi terhadap data berupa bilangan bulat integer.
5.2. Saran
Pada penelitian ini, penulis menggunakan data text dengan berbagai ukuran file. Disarankan untuk pengembangan penelitian ini, maka pada penelitian selanjutnya data