BAB 3 METODOLOGI PENELITIAN

dokumen-dokumen yang mirip
BAB IV PENGUJIAN DAN ANALISIS

BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

Blox: Algoritma Block Cipher

BAB III ANALISIS SISTEM

OZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5

Algoritma Cipher Block EZPZ

Bab 2 Tinjauan Pustaka

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

Penggunaan Timing Attack Sebagai Salah Satu Jenis Serangan pada Kriptografi

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN. bagian dekompresi dan bagian client server yang dapat melakukan kompresi dan

BAB IV ANALISIS DAN PERANCANGAN

Rancang Bangun Aplikasi Keamanan Data Menggunakan Metode AES Pada Smartphone

Modifikasi Blok Cipher

BAB III ANALISIS DAN PERANCANGAN

KRIPTOGRAFI FILE MENGGUNAKAN METODE AES DUAL PASSWORD. Imron Abdul Ilyas 1 Suryarini Widodo 2. Abstrak

BAB 2 LANDASAN TEORI


BAB III ANALISA DAN DESAIN SISTEM. perancangan pembuatan kriptografi Impementasi AES ( Advanced Encyrption

BAB III ANALISIS DAN PERANCANGAN. yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat

BAB IV HASIL DAN PEMBAHASAN

PERANCANGAN APLIKASI PENGAMANAN DATA TEKS DENGAN METODE ADVANCED ENCRYPTION STANDARD (AES) DAN METODE END OF FILE (EOF)

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN

BAB III PERANCANGAN SISTEM

BAB 3 METODOLOGI PENELITIAN

Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

BAB II TINJAUAN PUSTAKA

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS DAN PERANCANGAN

Gambar 3.1 Flowchart proses enkripsi AES

BAB III METODE PENELITIAN. Tahapan yang dilakukan dalam penelitian ini disajikan pada Gambar 3. Pengujian

TINJAUAN PUSTAKA. Kriptografi

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA MASALAH DAN PERANCANGAN

BAB II TINJAUAN PUSTAKA

BAB IV HASIL DAN UJI COBA

BAB II TINJAUAN PUSTAKA

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

BAB III ANALISIS DAN PERANCANGAN SISTEM. permasalahan-permasalahan dan kebutuhan-kebutuhan yang diharapkan sehingga dapat

Prosiding Matematika ISSN:

BAB III ANALISIS DAN PERANCANGAN

BAB IV HASIL DAN UJI COBA

PRESENTASI TUGAS AKHIR KI091391

Algoritma Cipher Block RG-1

Properti Algoritma RSA

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

BAB III ANALISIS DAN PERANCANGAN SISTEM

ANALISA DAN PERANCANGAN SISTEM

Adi Shamir, one of the authors of RSA: Rivest, Shamir and Adleman

MENGAMANKAN BASIS DATA KEUANGAN KOPERASI DENGAN MENGGUNAKAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISA DAN PERANCANGAN. pengamanan file teks dengan menggunakan algoritma triangle chain dan rivest cipher (RC4).

BAB III ANALISIS DAN PERANCANGAN SISTEM


BAB IV HASIL DAN UJI COBA

BAB I PENDAHULUAN. dan rahasia telah menjadi suatu hal yang sangat berharga. Data atau informasi

BAB III ANALISIS DAN DESAIN SISTEM

BAB 4 IMPLEMENTASI DAN EVALUASI. dan sistem operasi dengan spesifikasi sebagai berikut: 1. Processor: Intel Pentium, Core Duo, 1.

Pengamanan Removable Disk dengan Mengenkripsi Seluruh Header File

BAB III ANALISA DAN DESAIN SISTEM

ALGORITMA DAN PEMROGRAMAN II. Indra Gunawan, ST., M.Kom., CEH., CHFI


BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM. Analisa yang dilakukan bertujuan untuk menentukan solusi dari

BAB 1 PENDAHULUAN Latar Belakang

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB 2 LANDASAN TEORI

Bab 3 Metode Perancangan

BAB III METODOLOGI PENELITIAN. ditemukan oleh Rivest, Shamir dan Adleman (RSA) pada tahun

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III BAB III METODE PENELITIAN

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN PERANCANGAN

BAB III METODE PENELITIAN

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Rancang Bangun Aplikasi Enkripsi dan Dekripsi Dengan Menggunakan Algoritma Advanced Encryption Standard Dan Knapsack

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

BAB III ANALISA MASALAH DAN SISTEM

Analisis Algoritma Blowfish Pada Proses Enkripsi Dan Dekripsi File

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA MASALAH DAN PERANCANGAN

SEMINAR TUGAS AKHIR PERIODE JANUARI 2012

BAB IV HASIL DAN PENGUJIAN

PERANCANGAN APLIKASI KOMPRESI CITRA DENGAN METODE RUN LENGTH ENCODING UNTUK KEAMANAN FILE CITRA MENGGUNAKAN CAESAR CHIPER

BAB 3 ANALISIS DAN PERANCANGAN

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

BAB I PENDAHULUAN 1.1 Latar Belakang

Konversi Citra ke dalam Bentuk Teks Terenkripsi dengan Memanfaatkan Chiper Abjad Majemuk

BAB IV. HASIL PENELITIAN DAN PEMBAHASAN

BAB 1 PENDAHULUAN Latar belakang

PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD (AES)

PERANCANGAN DAN ANALISIS MODIFIKASI KUNCI KRIPTOGRAFI ALGORITMA TWOFISH PADA DATA TEKS

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

BAB III ANALISIS MASALAH

Transkripsi:

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 Waktu yang diperlukan untuk penelitian ini diperkirakan ±6 (enam) bulan. Dalam penelitian ini, penulis mengumpul data-data terkait penelitian melalui pustaka baik berupa buku, jurnal, makalah, dan data di internet.

24 3.3. Data yang Digunakan Pada penelitian ini, penulis menggunakan file text 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. g. Pengirim mengirimkan ciphertext, cipherkey yang telah dikompresi kepada penerima.

25 Kunci AES 128 bit Plaintext Enkripsi Algoritma AES 128 bit Ciphertext Kompresi EGC Kunci AES 128 bit Algoritma Elgamal Cipherkey Penerima Gambar 3.1. Proses Enkripsi Pesan 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.

26 Dekompresi EGC Penerima Cipherkey Ciphertext Algoritma Elgamal Dekripsi Algoritma M- AES 128 bit Kunci AES 128 bit Plaintext Gambar 3.2. Proses Dekripsi Pesan 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.

27 Start Input Key (16 Byte) Round = 0 Round = Round +1 RotWord() SubWord() RCon() No XOR Operation Round = 10 Yes End Gambar 3.3. Diagram Alir Ekspansi Kunci AES 128 bit 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 XOR Operation.

28 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. Start Input S1, S2, S3 i=0; iterasi i Hitung S1= MOD (171 * S1, 30269) Hitung S2= MOD (172 * S2, 30307) Hitung S3= MOD (170 * S3, 30323) No Hitung R= MOD (S1/30269 + S2/30307 + S3/30323,1) i=255 Yes Susun tabel S-Box & RS-Box sesuai urutan bilangan acak End Gambar 3.4. Diagram Alir Pembentukan tabel S-Box dan RS-Box

29 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. Start Input Plaintext (16 Byte) Round = 0 AddRoundKey() Round = Round + 1 SubBytes() ShiftRows() PHT() AddRoundKey() No Round = 9 Yes SubBytes() ShiftRows() AddRoundKey() End Gambar 3.5. Diagram Alir Enkripsi AES 128 bit

30 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. Start Input p, α, a Hitung $= α a mod p Hitung += α,- p Hitung.= $,-.- p End 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.

31 Start Input teks Urutkan karakter berdasarkan frekensi kemunculan Bentuk tabel kode Elias Gamma Code Ganti karakter pada teks sesuai tabel kode Generate Kode Elias Gamma ke ASCII Konversi kode ASCII ke karakter 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.

32 Start Input Ciphertext (16 Byte) Round = 0 AddRoundKey() Round = Round + 1 Inv. ShiftRows() Inv. SubBytes() AddRoundKey() No Inv. PHT() Round = 9 Yes Inv. ShiftRows() Inv. SubBytes() AddRoundKey() End 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.

33 3.5.7. Diagram Alir Proses Dekripsi Elgamal Proses dekripsi elgamal digunakan untuk mendekripsi kunci yang digunakan untuk dekripsi AES 128 bit. Start Input p, α, $, a Hitung + / 1 / Hitung -=.. (+ ) 1 m / Konversi ke karakter End 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.

34 Start Input teks Generate isi file ke binary Kembalikan ke string bit semula Ganti string bit sesuai tabel kode elias gamma 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.

35 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 Kemudian dibangkitkan bilangan acak sebanyak 256 buah, bilangan acak yang terbentuk ditulis sesuai urutan dari 0 sampai 255 dalam bilangan heksadesimal dan dibentuk menjadi tabel S-Box dan Reverse S-Box.

36 Tabel 3.2. Tabel S-Box 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1F A7 B4 68 22 FB 6B 55 57 39 D6 9B E4 05 92 E0 1 B0 3D 08 97 9D 21 26 DA 7A CC 88 19 A9 DD AB 28 2 C6 F4 89 CF 5E 2A 90 C4 D5 10 AD D1 03 5F 5B 54 3 65 7E E3 9E 4F F6 DC C5 85 4E EC 2B B2 53 6C A4 4 AF BD 17 67 DB E8 8A 09 23 F2 5C 8D CB 72 E5 BC 5 1E 9C 37 3B B5 29 4A 4D 94 BF 25 ED 82 E7 18 42 6 40 C3 7D EB D4 84 F9 F3 8C 45 76 99 41 BE C8 30 7 34 CA DF 32 66 3A E2 70 43 04 56 FE 1A 91 52 A2 8 B3 BB 2F 46 E6 06 F5 77 61 FC 96 AE 78 44 A8 B7 9 81 64 7B 79 A0 A1 DE 38 0A 3C D9 62 8F 02 8B AA A F8 B6 6D B1 13 95 48 60 74 D0 3E 00 CD 73 FF 8E B AC 6E 01 63 15 BA FA B8 24 3F 12 87 93 58 A3 0C C 6F B9 31 80 FD 47 2C C0 E9 9A E1 C1 36 2D 7C F7 D 1D 35 98 1C 83 59 0D 27 EA 50 D3 6A 5A 14 EE 7F E 4C 49 20 5D 2E A6 EF D2 0F D7 07 A5 71 69 F1 D8 F 33 75 11 C7 51 0E C9 CE 4B 1B 16 F0 9F 86 0B C2 Tabel 3.3. Tabel Reverse S-Box 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 AB B2 9D 2C 79 0D 85 EA 12 47 98 FE BF D6 F5 E8 1 29 F2 BA A4 DD B4 FA 42 5E 1B 7C F9 D3 D0 50 00 2 E2 15 04 48 B8 5A 16 D7 1F 55 25 3B C6 CD E4 82 3 6F C2 73 F0 70 D1 CC 52 97 09 75 53 99 11 AA B9 4 60 6C 5F 78 8D 69 83 C5 A6 E1 56 F8 E0 57 39 34 5 D9 F4 7E 3D 2F 07 7A 08 BD D5 DC 2E 4A E3 24 2D 6 A7 88 9B B3 91 30 74 43 03 ED DB 06 3E A2 B1 C0 7 77 EC 4D AD A8 F1 6A 87 8C 93 18 92 CE 62 31 DF 8 C3 90 5C D4 65 38 FD BB 1A 22 46 9E 68 4B AF 9C 9 26 7D 0E BC 58 A5 8A 13 D2 6B C9 0B 51 14 33 FC A 94 95 7F BE 3F EB E5 01 8E 1C 9F 1E B0 2A 8B 40 B 10 A3 3C 80 02 54 A1 8F B7 C1 B5 81 4F 41 6D 59 C C7 CB FF 61 27 37 20 F3 6E F6 71 4C 19 AC F7 23 D A9 2B E7 DA 64 28 0A E9 EF 9A 17 44 36 1D 96 72 E 0F CA 76 32 0C 4E 84 5D 45 C8 D8 63 3A 5B DE E6 F FB EE 49 67 21 86 35 CF A0 66 B6 05 89 C4 7B AE Tahap berikutnya adalah key expansion yang berfungsi untuk mendapatkan kunci yang digunakan untuk 10 putaran pada algoritma AES 128 bit.

37 Tabel 3.4. Key Expansion Round-0 4B 65 61 6D 61 6E 61 6E 4B 6F 6D 70 75 74 65 72 Round-1 Round-2 Round-3 2C E1 BE 57 4D 8F DF 39 06 E0 B2 49 73 94 D7 3B 8E C6 95 65 C3 49 4A 5C C5 A9 F8 15 B6 3D 2F 2E D9 92 CE 9F 1A DB 84 C3 DF 72 7C D6 69 4F 53 F8 Round-4 6D A9 85 DA 77 72 01 19 A8 00 7D CF C1 4F 2E 37 Round-5 C1 F2 40 63 B6 80 41 7A 1E 80 3C B5 DF CF 12 82 Round-6 16 FA 6F 1C A0 7A 2E 66 BE FA 12 D3 61 35 00 51 Round-7 A0 E5 F3 DF 00 9F DD B9 BE 65 CF 6A DF 50 CF 3B Round-8 3E 12 D8 A0 3E 8D 05 19 80 E8 CA 73 5F B8 05 48 Round-9 01 E9 FB E2 3F 64 FE FB BF 8C 34 88 E0 34 31 C0 Round-10 78 97 94 AE 47 F3 6A 55 F8 7F 5E DD 18 4B 6F 1D 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. awal didapatkan dengan mengonversi masing-masing karakter plaintext ke kode ASCII. Tabel 3.5. Kode ASCII Plaintext Karakter Kode ASCII (Dec) Kode ASCII (Hex) I 73 49 l 108 6C m 109 6D u 117 75 [spasi] 32 20 K 75 4B r 114 72 i 105 69 p 112 70 t 116 74 o 111 6F g 103 67 r 114 72 a 97 61 f 102 66 i 105 69

38 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 ----------------------------------------------------- = 02 09 0C 18 41 25 13 07 3B 1B 02 17 07 15 03 1B Round 1 sampai 9 dilakukan proses SubBytes, ShiftRows, PHT, dan AddRoundKey. Round 1 SubBytes = 02 09 0C 18 41 25 13 07 3B 1B 02 17 07 15 03 1B SB = B4 39 E4 7A BD 2A 97 55 2B 19 B4 DA 55 21 68 19 Round 1 ShiftRows = B4 39 E4 7A BD 2A 97 55 2B 19 B4 DA 55 21 68 19 SR Round 1 PHT PHT = B4 2A B4 19 BD 19 68 7A 2B 21 E4 55 55 39 97 DA = B4 2A B4 19 BD 19 68 7A 2B 21 E4 55 55 39 97 DA = DF 4B 98 6E 12 52 FF 54 0A 6C 7C C3 67 8B 96 2E Round 1 AddRoundKey = DF 4B 98 6E 12 52 FF 54 0A 6C 7C C3 67 8B 96 2E R1 Key = 2C E1 BE 57 4D 8F DF 39 06 E0 B2 49 73 94 D7 3B ----------------------------------------------------- = F3 AA 26 39 5F DD 20 6D 0C 8C CE 8A 14 1F 41 15 XOR xor Round 2 SubBytes = F3 AA 26 39 5F DD 20 6D 0C 8C CE 8A 14 1F 41 15 SB = C7 3E 90 4E 42 14 C6 BE E4 78 7C 96 9D 28 BD 21 Round 2 ShiftRows = C7 3E 90 4E 42 14 C6 BE E4 78 7C 96 9D 28 BD 21 SR = C7 14 7C 21 42 78 BD 4E E4 28 90 BE 9D 3E C6 96 Round 2 PHT = C7 14 7C 21 42 78 BD 4E E4 28 90 BE 9D 3E C6 96 PHT = AB 3C 0C DF DF B6 83 E4 8F 64 9C 9D 7C F4 49 7A Round 2 AddRoundKey = AB 3C 0C DF DF B6 83 E4 8F 64 9C 9D 7C F4 49 7A R2 Key = 8E C6 95 65 C3 49 4A 5C C5 A9 F8 15 B6 3D 2F 2E ----------------------------------------------------- = 25 FA 99 BA 1C FF C9 B8 4A CD 64 88 CA C9 66 54 xor

39 Round 3 SubBytes = 25 FA 99 BA 1C FF C9 B8 4A CD 64 88 CA C9 66 54 SB = 2A 16 3C 12 A9 C2 9A 24 5C 2D D4 61 E1 9A F9 B5 Round 3 ShiftRows = 2A 16 3C 12 A9 C2 9A 24 5C 2D D4 61 E1 9A F9 B5 SR = 2A C2 D4 B5 A9 2D F9 12 5C 9A 3C 24 E1 16 9A 61 Round 3 PHT = 2A C2 D4 B5 A9 2D F9 12 5C 9A 3C 24 E1 16 9A 61 PHT = 86 5C 10 D9 8A 43 93 73 E2 F6 4C FD 6B 59 2D D4 Round 3 AddRoundKey = 86 5C 10 D9 8A 43 93 73 E2 F6 4C FD 6B 59 2D D4 R3 Key = D9 92 CE 9F 1A DB 84 C3 DF 72 7C D6 69 4F 53 F8 ----------------------------------------------------- = 5F CE DE 46 90 98 17 B0 3D 84 30 2B 02 16 7E 2C xor Round 4 SubBytes = 5F CE DE 46 90 98 17 B0 3D 84 30 2B 02 16 7E 2C SB = 42 7C EE 8A 81 0A DA AC 53 E6 65 D1 B4 26 52 03 Round 4 ShiftRows = 42 7C EE 8A 81 0A DA AC 53 E6 65 D1 B4 26 52 03 SR Round 4 PHT PHT = 42 0A 65 03 81 E6 52 8A 53 26 EE AC B4 7C DA D1 = 42 0A 65 03 81 E6 52 8A 53 26 EE AC B4 7C DA D1 = 95 30 53 AF 35 62 2C 5B E8 56 41 5B E9 DE 06 2C Round 4 AddRoundKey = 95 30 53 AF 35 62 2C 5B E8 56 41 5B E9 DE 06 2C R4 Key = 6D A9 85 DA 77 72 01 19 A8 00 7D CF C1 4F 2E 37 ----------------------------------------------------- = F8 99 D6 75 42 10 2D 42 40 56 3C 94 28 91 28 1B xor Round 5 SubBytes = F8 99 D6 75 42 10 2D 42 40 56 3C 94 28 91 28 1B SB = 4B 3C 0D 3A 17 B0 5F 17 AF 4A B2 A0 D5 64 D5 19 Round 5 ShiftRows

40 = 4B 3C 0D 3A 17 B0 5F 17 AF 4A B2 A0 D5 64 D5 19 SR Round 5 PHT PHT = 4B B0 B2 19 17 4A D5 3A AF 64 0D 17 D5 3C 5F A0 = 4B B0 B2 19 17 4A D5 3A AF 64 0D 17 D5 3C 5F A0 = FA 14 BF 30 EC 86 34 DA A9 78 CC 47 C1 C2 93 7A Round 5 AddRoundKey = FA 14 BF 30 EC 86 34 DA A9 78 CC 47 C1 C2 93 7A R5 Key = C1 F2 40 63 B6 80 41 7A 1E 80 3C B5 DF CF 12 82 ----------------------------------------------------- = 3B E6 FF 53 5A 06 75 A0 B7 F8 F0 F2 1E 0D 81 F8 xor Round 6 SubBytes SB = 3B E6 FF 53 5A 06 75 A0 B7 F8 F0 F2 1E 0D 81 F8 = 2B EF C2 3B 25 6B 3A F8 B8 4B 33 11 AB 05 BB 4B Round 6 ShiftRows = 2B EF C2 3B 25 6B 3A F8 B8 4B 33 11 AB 05 BB 4B SR = 2B 6B 33 4B 25 4B BB 3B B8 05 C2 F8 AB EF 3A 11 Round 6 PHT = 2B 6B 33 4B 25 4B BB 3B B8 05 C2 F8 AB EF 3A 11 PHT = E3 70 F5 43 D0 3A F5 4C 9B 75 B7 3B 7B 29 2F 5D Round 6 AddRoundKey = E3 70 F5 43 D0 3A F5 4C 9B 75 B7 3B 7B 29 2F 5D R6 Key = 16 FA 6F 1C A0 7A 2E 66 BE FA 12 D3 61 35 00 51 ----------------------------------------------------- = F5 8A 9A 5F 70 40 DB 2A 25 8F A5 E8 1A 1C 2F 0C xor Round 7 SubBytes SB = F5 8A 9A 5F 70 40 DB 2A 25 8F A5 E8 1A 1C 2F 0C = 0E 96 D9 42 34 AF 6A AD 2A B7 95 0F 88 A9 54 E4 Round 7 ShiftRows SR Round 7 PHT = 0E 96 D9 42 34 AF 6A AD 2A B7 95 0F 88 A9 54 E4 = 0E AF 95 E4 34 B7 54 42 2A A9 D9 AD 88 96 6A 0F = 0E AF 95 E4 34 B7 54 42 2A A9 D9 AD 88 96 6A 0F

41 PHT = 38 58 6E 91 BC 4D BE 51 62 01 47 3E 44 E3 28 60 Round 7 AddRoundKey = 38 58 6E 91 BC 4D BE 51 62 01 47 3E 44 E3 28 60 R7 Key = A0 E5 F3 DF 00 9F DD B9 BE 65 CF 6A DF 50 CF 3B ----------------------------------------------------- = 98 BD 9D 4E BC D2 63 E8 DC 64 88 54 9B B3 E7 5B xor Round 8 SubBytes SB = 98 BD 9D 4E BC D2 63 E8 DC 64 88 54 9B B3 E7 5B = 0A 58 02 E5 93 98 EB 0F 5A D4 61 B5 62 63 D2 ED Round 8 ShiftRows SR Round 8 PHT PHT = 0A 58 02 E5 93 98 EB 0F 5A D4 61 B5 62 63 D2 ED = 0A 98 61 ED 93 D4 D2 E5 5A 63 02 0F 62 58 EB B5 = 0A 98 61 ED 93 D4 D2 E5 5A 63 02 0F 62 58 EB B5 = 64 FB 63 FC F5 2C BD 9A BE 5E 65 0B 57 84 A8 4F Round 8 AddRoundKey = 64 FB 63 FC F5 2C BD 9A BE 5E 65 0B 57 84 A8 4F R8 Key = 3E 12 D8 A0 3E 8D 05 19 80 E8 CA 73 5F B8 05 48 ----------------------------------------------------- = 5A E9 BB 5C CB A1 B8 83 3E B6 AF 78 08 3C AD 07 Round 9 SubBytes = 5A E9 BB 5C CB A1 B8 83 3E B6 AF 78 08 3C AD 07 SB = 25 D7 87 82 C1 B6 24 46 6C FA 8E 43 57 B2 73 55 Round 9 ShiftRows = 25 D7 87 82 C1 B6 24 46 6C FA 8E 43 57 B2 73 55 SR = 25 B6 8E 55 C1 FA 73 82 6C B2 87 46 57 D7 24 43 Round 9 PHT = 25 B6 8E 55 C1 FA 73 82 6C B2 87 46 57 D7 24 43 PHT = 91 68 15 9B 18 D1 97 C5 FD 1A 9C E1 6F A8 BB 08 Round 9 AddRoundKey = 91 68 15 9B 18 D1 97 C5 FD 1A 9C E1 6F A8 BB 08 R9 Key = 01 E9 FB E2 3F 64 FE FB BF 8C 34 88 E0 34 31 C0 ----------------------------------------------------- xor xor

42 = 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 SB = 90 81 EE 79 27 B5 69 3E 42 96 A8 69 8F 9C 8A C8 = 81 BB F1 04 C4 BA 45 6C 17 DE 74 45 B7 8F 96 E9 Round 10 ShiftRows = 81 BB F1 04 C4 BA 45 6C 17 DE 74 45 B7 8F 96 E9 SR = 81 BA 74 E9 C4 DE 96 04 17 8F F1 6C B7 BB 45 45 Round 10 AddRoundKey = 81 BA 74 E9 C4 DE 96 04 17 8F F1 6C B7 BB 45 45 R10 Key= 78 97 94 AE 47 F3 6A 55 F8 7F 5E DD 18 4B 6F 1D ----------------------------------------------------- = F9 2D E0 47 83 2D FC 51 EF F0 AF B1 AF F0 2A 58 diatas dikonversi ke karakter sehingga didapatkan Ciphertext ù-àgƒüqïð ± ð*x. xor 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 $=2 765 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 k i 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 k i. Pengirim pesan kemudian mengenkripsi kunci dengan menghitung nilai (+-,.-) dengan menggunakan persamaan berikut ini. +i = α,- p

43.i = $,-.- p Karakter Tabel 3.6. Proses Enkripsi Kunci Algoritma Elgamal ASCII (Dec) m i ki +i = 2,- 2579.i = 949,-.- 2579 K 75 2497 1714 1642 e 101 1937 1247 266 a 97 598 557 119 m 109 1400 2115 1273 a 97 1180 956 2139 n 110 2520 2109 1754 a 97 2260 902 1824 n 110 2315 2207 2079 K 75 249 1007 1433 o 111 2530 993 555 m 109 784 895 882 p 112 1965 1363 2390 u 117 1529 265 184 t 116 1792 1989 421 e 101 2108 1814 1792 r 114 44 380 2508 Pasangan (+i :.i) merupakan hasil enkripsi dari algoritma elgamal sehingga didapatkan cipherkey berikut. 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 Perbandingan ukuran key sebelum dienkripsi dengan sesudah dienkripsi dihitung menggunakan persamaan berikut ini. :-/h<=,<>?-@< A<>?-@< B 100% = 146 B 100% =912.5% 16 Dari hasil perhitungan diatas, disimpulkan bahwa cipherkey yang dihasilkan memiliki ukuran yang sangat besar dan mengalami peningkatan ukuran yang sangat signifikan. Oleh karena itu, dibutuhkan fungsi kompresi data yang bisa memperkecil ukuran data secara signifikan juga. Dari segi jenis data, hasil enkripsi algoritma elgamal menghasilkan deretan angka sehingga metode kompresi yang paling cocok adalah

44 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 :1007:1433:993:555:895:882:1363:2390:265:184:1989:421:1814:1792:380:2508 Tabel 3.7. EGC yang Terbentuk Karakter Frekuensi EGC : 31 1 1 22 010 2 18 011 9 13 00100 5 11 00101 0 9 00110 3 9 00111 4 9 0001000 7 9 0001001 8 9 0001010 6 6 0001011 Teks cipherkey dikonversi sesuai dengan kode Elias Gamma dari tabel diatas, sehingga dihasilkan deretan bit berikut ini. 010000100101000010001010000101100010000111010011000100000010011011000 101100010111001010010100010011010010001001011010010001011010011000100 100111100100001010001011101101000111001001011010001100010010100001001 001010001000100100001100111010000101001100010001011011001100001001101 100110000100100100101000110001100001001101000010000011100111100100001 000011110010100101001011000101000100001011000101000010100111010001110 001011001111011001110010000110101100010110010110100001010000100010100 010000010100010010001000011010101000010100100001000101000010010010001 1100111000101000110101100101001100001010

45 Jumlah total bit = 592 N = 592 mod 8 = 0 Karena nilai N = 0, maka penambahan bit adalah 00000001, sehingga string bit menjadi 010000100101000010001010000101100010000111010011000100000010011011000 101100010111001010010100010011010010001001011010010001011010011000100 100111100100001010001011101101000111001001011010001100010010100001001 001010001000100100001100111010000101001100010001011011001100001001101 100110000100100100101000110001100001001101000010000011100111100100001 000011110010100101001011000101000100001011000101000010100111010001110 001011001111011001110010000110101100010110010110100001010000100010100 010000010100010010001000011010101000010100100001000101000010010010001 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. Input Stream = 146 Output Stream = 75 :/=<DD-E FG- = HI/IG?G=< JE/IG?G=< B100%?/K<?L-EM =100% :/=<DD-E FG- :/=<DD-E FG- = NO B100% =50.67% 5PQ?/K<?L-EM =1 100% =49.32% 3.7. Analisis Dekripsi Untuk melakukan dekripsi, cipherkey yang di kompresi di dekompresi terlebih dahulu sehingga menghasilkan cipherkey. Cipherkey kemudian di dekripsi menggunakan

46 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 string bit terlebih dahulu. Cipherkey BPŠ!Ó&Å iò-1' í ŒJQÐ "Ù Ù Œa4 ç Š!b :8³ÙÈkZ"ˆ( P " Î(ÖS dikonversi ke string bit menjadi 010000100101000010001010000101100010000111010011000100000010011011000 101100010111001010010100010011010010001001011010010001011010011000100 100111100100001010001011101101000111001001011010001100010010100001001 001010001000100100001100111010000101001100010001011011001100001001101 100110000100100100101000110001100001001101000010000011100111100100001 000011110010100101001011000101000100001011000101000010100111010001110 001011001111011001110010000110101100010110010110100001010000100010100 010000010100010010001000011010101000010100100001000101000010010010001 110011100010100011010110010100110000101000000001 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 010000100101000010001010000101100010000111010011000100000010011011000 101100010111001010010100010011010010001001011010010001011010011000100 100111100100001010001011101101000111001001011010001100010010100001001 001010001000100100001100111010000101001100010001011011001100001001101 100110000100100100101000110001100001001101000010000011100111100100001 000011110010100101001011000101000100001011000101000010100111010001110 001011001111011001110010000110101100010110010110100001010000100010100

47 010000010100010010001000011010101000010100100001000101000010010010001 1100111000101000110101100101001100001010 String bit 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 -=.-.+- 1813 mo 2579 Karakter (1714, 1642) 1811 75 K (1247, 266) 1891 101 e (557, 119) 716 97 a (2115, 1273) 306 109 m (956, 2139) 1893 97 a (2109, 1754) 2235 110 n (902, 1824) 1274 97 a (2207, 2079) 464 110 n (1007, 1433) 1627 75 K (993, 555) 516 111 o (895, 882) 1968 109 m (1363, 2390) 477 112 p (265, 184) 2033 117 u (1989, 421) 1544 116 t (1814, 1792) 865 101 e (380, 2508) 1524 114 r Dari tabel diatas, didapatkan kunci dekripsi adalah KemananKomputer.

48 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. 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-45 2D à 224 E0 G 71 47 ƒ 131 83-45 2D ü 252 FC Q 81 51 ï 239 EF ð 240 F0 175 AF ± 177 B1 175 AF ð 240 F0 * 42 2A X 88 58 Ciphertext= F9 2D E0 47 83 2D FC 51 EF F0 AF B1 AF F0 2A 58 R10 Key = 78 97 94 AE 47 F3 6A 55 F8 7F 5E DD 18 4B 6F 1D ----------------------------------------------------- = 81 BA 74 E9 C4 DE 96 04 17 8F F1 6C B7 BB 45 45 Round 1 sampai 9 dilakukan proses InvShiftRows, InvSubBytes, InvPHT, dan AddRoundKey. Round 1 InvShiftRows = 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 Round 1 InvSubBytes XOR

49 ISB = 81 BB F1 04 C4 BA 45 6C 17 DE 74 45 B7 8F 96 E9 = 90 81 EE 79 27 B5 69 3E 42 96 A8 69 8F 9C 8A C8 Round 1 AddRoundKey = 90 81 EE 79 27 B5 69 3E 42 96 A8 69 8F 9C 8A C8 R9 Key = 01 E9 FB E2 3F 64 FE FB BF 8C 34 88 E0 34 31 C0 ----------------------------------------------------- = 91 68 15 9B 18 D1 97 C5 FD 1A 9C E1 6F A8 BB 08 Round 1 InvPHT = 91 68 15 9B 18 D1 97 C5 FD 1A 9C E1 6F A8 BB 08 IPHT = 25 B6 8E 55 C1 FA 73 82 6C B2 87 46 57 D7 24 43 xor Round 2 InvShiftRows = 25 B6 8E 55 C1 FA 73 82 6C B2 87 46 57 D7 24 43 ISR = 25 D7 87 82 C1 B6 24 46 6C FA 8E 43 57 B2 73 55 Round 2 InvSubBytes = 25 D7 87 82 C1 B6 24 46 6C FA 8E 43 57 B2 73 55 ISB = 5A E9 BB 5C CB A1 B8 83 3E B6 AF 78 08 3C AD 07 Round 2 AddRoundKey = 5A E9 BB 5C CB A1 B8 83 3E B6 AF 78 08 3C AD 07 R8 Key = 3E 12 D8 A0 3E 8D 05 19 80 E8 CA 73 5F B8 05 48 ----------------------------------------------------- Round 2 InvPHT IPHT = 64 FB 63 FC F5 2C BD 9A BE 5E 65 0B 57 84 A8 4F = 64 FB 63 FC F5 2C BD 9A BE 5E 65 0B 57 84 A8 4F = 0A 98 61 ED 93 D4 D2 E5 5A 63 02 0F 62 58 EB B5 xor Round 3 InvShiftRows ISR = 0A 98 61 ED 93 D4 D2 E5 5A 63 02 0F 62 58 EB B5 = 0A 58 02 E5 93 98 EB 0F 5A D4 61 B5 62 63 D2 ED Round 3 InvSubBytes ISB = 0A 58 02 E5 93 98 EB 0F 5A D4 61 B5 62 63 D2 ED = 98 BD 9D 4E BC D2 63 E8 DC 64 88 54 9B B3 E7 5B Round 3 AddRoundKey = 98 BD 9D 4E BC D2 63 E8 DC 64 88 54 9B B3 E7 5B

50 R7 Key = A0 E5 F3 DF 00 9F DD B9 BE 65 CF 6A DF 50 CF 3B ----------------------------------------------------- = 38 58 6E 91 BC 4D BE 51 62 01 47 3E 44 E3 28 60 Round 3 InvPHT = 38 58 6E 91 BC 4D BE 51 62 01 47 3E 44 E3 28 60 IPHT = 0E AF 95 E4 34 B7 54 42 2A A9 D9 AD 88 96 6A 0F xor Round 4 InvShiftRows ISR = 0E AF 95 E4 34 B7 54 42 2A A9 D9 AD 88 96 6A 0F = 0E 96 D9 42 34 AF 6A AD 2A B7 95 0F 88 A9 54 E4 Round 4 InvSubBytes ISB = 0E 96 D9 42 34 AF 6A AD 2A B7 95 0F 88 A9 54 E4 = F5 8A 9A 5F 70 40 DB 2A 25 8F A5 E8 1A 1C 2F 0C Round 4 AddRoundKey = F5 8A 9A 5F 70 40 DB 2A 25 8F A5 E8 1A 1C 2F 0C R6 Key = 16 FA 6F 1C A0 7A 2E 66 BE FA 12 D3 61 35 00 51 ----------------------------------------------------- Round 4 InvPHT = E3 70 F5 43 D0 3A F5 4C 9B 75 B7 3B 7B 29 2F 5D = E3 70 F5 43 D0 3A F5 4C 9B 75 B7 3B 7B 29 2F 5D IPHT = 2B 6B 33 4B 25 4B BB 3B B8 05 C2 F8 AB EF 3A 11 xor Round 5 InvShiftRows = 2B 6B 33 4B 25 4B BB 3B B8 05 C2 F8 AB EF 3A 11 ISR = 2B EF C2 3B 25 6B 3A F8 B8 4B 33 11 AB 05 BB 4B Round 5 InvSubBytes ISB = 2B EF C2 3B 25 6B 3A F8 B8 4B 33 11 AB 05 BB 4B = 3B E6 FF 53 5A 06 75 A0 B7 F8 F0 F2 1E 0D 81 F8 Round 5 AddRoundKey = 3B E6 FF 53 5A 06 75 A0 B7 F8 F0 F2 1E 0D 81 F8 R5 Key = C1 F2 40 63 B6 80 41 7A 1E 80 3C B5 DF CF 12 82 ----------------------------------------------------- Round 5 InvPHT = FA 14 BF 30 EC 86 34 DA A9 78 CC 47 C1 C2 93 7A xor

51 IPHT = FA 14 BF 30 EC 86 34 DA A9 78 CC 47 C1 C2 93 7A = 4B B0 B2 19 17 4A D5 3A AF 64 0D 17 D5 3C 5F A0 Round 6 InvShiftRows = 4B B0 B2 19 17 4A D5 3A AF 64 0D 17 D5 3C 5F A0 ISR = 4B 3C 0D 3A 17 B0 5F 17 AF 4A B2 A0 D5 64 D5 19 Round 6 InvSubBytes = 4B 3C 0D 3A 17 B0 5F 17 AF 4A B2 A0 D5 64 D5 19 ISB = F8 99 D6 75 42 10 2D 42 40 56 3C 94 28 91 28 1B Round 6 AddRoundKey = F8 99 D6 75 42 10 2D 42 40 56 3C 94 28 91 28 1B R4 Key = 6D A9 85 DA 77 72 01 19 A8 00 7D CF C1 4F 2E 37 ----------------------------------------------------- Round 6 InvPHT IPHT = 95 30 53 AF 35 62 2C 5B E8 56 41 5B E9 DE 06 2C = 95 30 53 AF 35 62 2C 5B E8 56 41 5B E9 DE 06 2C = 42 0A 65 03 81 E6 52 8A 53 26 EE AC B4 7C DA D1 xor Round 7 InvShiftRows = 42 0A 65 03 81 E6 52 8A 53 26 EE AC B4 7C DA D1 ISR = 42 7C EE 8A 81 0A DA AC 53 E6 65 D1 B4 26 52 03 Round 7 InvSubBytes = 42 7C EE 8A 81 0A DA AC 53 E6 65 D1 B4 26 52 03 ISB = 5F CE DE 46 90 98 17 B0 3D 84 30 2B 02 16 7E 2C Round 7 AddRoundKey = 5F CE DE 46 90 98 17 B0 3D 84 30 2B 02 16 7E 2C R3 Key = D9 92 CE 9F 1A DB 84 C3 DF 72 7C D6 69 4F 53 F8 ----------------------------------------------------- Round 7 InvPHT = 86 5C 10 D9 8A 43 93 73 E2 F6 4C FD 6B 59 2D D4 = 86 5C 10 D9 8A 43 93 73 E2 F6 4C FD 6B 59 2D D4 IPHT = 2A C2 D4 B5 A9 2D F9 12 5C 9A 3C 24 E1 16 9A 61 xor Round 8 InvShiftRows

52 = 2A C2 D4 B5 A9 2D F9 12 5C 9A 3C 24 E1 16 9A 61 ISR = 2A 16 3C 12 A9 C2 9A 24 5C 2D D4 61 E1 9A F9 B5 Round 8 InvSubBytes = 2A 16 3C 12 A9 C2 9A 24 5C 2D D4 61 E1 9A F9 B5 ISB = 25 FA 99 BA 1C FF C9 B8 4A CD 64 88 CA C9 66 54 Round 8 AddRoundKey = 25 FA 99 BA 1C FF C9 B8 4A CD 64 88 CA C9 66 54 R2 Key = 8E C6 95 65 C3 49 4A 5C C5 A9 F8 15 B6 3D 2F 2E ----------------------------------------------------- Round 8 InvPHT = AB 3C 0C DF DF B6 83 E4 8F 64 9C 9D 7C F4 49 7A = AB 3C 0C DF DF B6 83 E4 8F 64 9C 9D 7C F4 49 7A IPHT = C7 14 7C 21 42 78 BD 4E E4 28 90 BE 9D 3E C6 96 xor Round 9 InvShiftRows = C7 14 7C 21 42 78 BD 4E E4 28 90 BE 9D 3E C6 96 ISR = C7 3E 90 4E 42 14 C6 BE E4 78 7C 96 9D 28 BD 21 Round 9 InvSubBytes = C7 3E 90 4E 42 14 C6 BE E4 78 7C 96 9D 28 BD 21 ISB = F3 AA 26 39 5F DD 20 6D 0C 8C CE 8A 14 1F 41 15 Round 9 AddRoundKey = F3 AA 26 39 5F DD 20 6D 0C 8C CE 8A 14 1F 41 15 R1 Key = 2C E1 BE 57 4D 8F DF 39 06 E0 B2 49 73 94 D7 3B ----------------------------------------------------- Round 9 InvPHT IPHT = DF 4B 98 6E 12 52 FF 54 0A 6C 7C C3 67 8B 96 2E = DF 4B 98 6E 12 52 FF 54 0A 6C 7C C3 67 8B 96 2E = B4 2A B4 19 BD 19 68 7A 2B 21 E4 55 55 39 97 DA Pada Round 10, tidak dilakukan tahapan InvPHT sehingga pada round ini hanya dilakukan InvShiftRows, InvSubBytes dan AddRoundKey yang menghasilkan Plaintext. xor Round 10 InvShiftRows = B4 2A B4 19 BD 19 68 7A 2B 21 E4 55 55 39 97 DA

53 ISR = B4 39 E4 7A BD 2A 97 55 2B 19 B4 DA 55 21 68 19 Round 10 InvSubBytes = B4 39 E4 7A BD 2A 97 55 2B 19 B4 DA 55 21 68 19 ISB = 02 09 0C 18 41 25 13 07 3B 1B 02 17 07 15 03 1B Round 10 AddRoundKey = 02 09 0C 18 41 25 13 07 3B 1B 02 17 07 15 03 1B R0 Key = 4B 65 61 6D 61 6E 61 6E 4B 6F 6D 70 75 74 65 72 ----------------------------------------------------- = 49 6C 6D 75 20 4B 72 69 70 74 6F 67 72 61 66 69 diatas dikonversi ke karakter sehingga didapatkan Plaintext Ilmu Kriptografi. xor 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 For j = 0 To 15 (1 langkah) state(j) = state(j) Xor expkey(j + koff + ski * 176) (16 langkah) Next j koff = koff + 16 (1 langkah) For i = 1 To 10 (1 langkah) 'SubBytes For j = 0 To 15 (1 langkah dilakukan 10 kali = 10 langkah) state(j) = sbox(state(j) (16 langkah dilakukan 10 kali = 160 langkah) Next j 'ShiftRows (sama seperti SubBytes, 160 langkah) temp(0) = state(0) temp(1) = state(5) temp(2) = state(10) temp(3) = state(15) temp(4) = state(4) temp(5) = state(9) temp(6) = state(14) temp(7) = state(3) temp(8) = state(8) temp(9) = state(13)

54 Next i temp(10) = state(2) temp(11) = state(7) temp(12) = state(12) temp(13) = state(1) temp(14) = state(6) temp(15) = state(11) If (i < 10) Then (10 langkah) 'PHT For k As Integer = 0 To 7 (9 langkah) state(k) = (CInt(temp(k)) + CInt(temp(k + 8))) Mod 256 (72 langkah) state(k + 8) = (CInt(temp(k)) + CInt(2 * temp(k + 8))) Mod 256 (72 langkah) Next Else For j = 0 To 15 (1 langkah) state(j) = temp(j) (16 langkah) Next j End If 'AddRoundKey() For j = 0 To 15 (10 langkah) state(j) = state(j) Xor expkey(j + koff + ski * 176) (160 langkah) Next j 'Increment key koff = koff + 16 (10 langkah) 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 Untuk mengetahui kompleksitas waktu Algoritma Compressed Elgamal, maka akan dihitung jumlah langkah pada saat enkripsi dengan asumsi jumlah data adalah 1 byte.

55 '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) If x < Len(txtKey.Text) - 1 Then txtc.text = txtc.text & gamma(x) & ":" & delta(x) & ":" Else txtc.text = txtc.text & gamma(x) & ":" & delta(x) End If Next 'Algoritma EGC For i As Integer = 1 To charcount.length() 1 (2 langkah, asumsi enkripsi elgamal menghasilkan 2 karakter) egc(i) = Convert.ToString(i, 2) (2 langkah) If Len(egc(i)) = 2 Then (16 langkah) egc(i) = CInt(egc(i)).ToString("000") ElseIf Len(egc(i)) = 3 Then egc(i) = CInt(egc(i)).ToString("00000") ElseIf Len(egc(i)) = 4 Then egc(i) = CInt(egc(i)).ToString("0000000") ElseIf Len(egc(i)) = 5 Then egc(i) = CInt(egc(i)).ToString("000000000") ElseIf Len(egc(i)) = 6 Then egc(i) = CInt(egc(i)).ToString("00000000000") ElseIf Len(egc(i)) = 7 Then egc(i) = CInt(egc(i)).ToString("0000000000000") ElseIf Len(egc(i)) = 8 Then egc(i) = CInt(egc(i)).ToString("000000000000000") End If If charorder(i) = " " Then (6 langkah) egcitem = New ListViewItem("Space") ElseIf charorder(i) = vbcrlf Then egcitem = New ListViewItem("Enter") Else egcitem = New ListViewItem(charorder(i)) End If 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 Pertumbuhan jumlah langkah terhadap banyak data ditunjukkan tabel dibawah ini.

56 Tabel 3.11. Kompleksitas Waktu Algoritma Compressed Elgamal Jumlah Data (byte) Jumlah Langkah 1 40 2 80 3 120 4 160 5 200 n n *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 3. Harddisk 500 GB 4. Monitor resolusi 1366 x 768 px (32 bit true color) 5. Mouse dan Keyboard b. Perangkat lunak 1. Sistem operasi Windows 7 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. Microsoft Visual 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 web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini

57 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 editor form Visual 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 (COM).

58 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 Microsoft.

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 teks, akan dicatat ukuran cipherkey, perbandingan ukuran cipherkey sebelum dan sesudah dienkripsi dengan algoritma elgamal, dan waktu yang dibutuhkan untuk enkripsi. Setelah di enkripsi, file text akan disimpan dengan ektensi *.encrypt.

60 Gambar 4.1. Tampilan Enkripsi AES 128 bit dan Elgamal Pada File Text 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.2. Tampilan Dekripsi AES 128 bit dan Elgamal Pada File Text 100 kb Gambar 4.2 diatas merupakan proses dekripsi menggunakan AES 128 bit dan elgamal pada file berukuran 100 kb. Pada gambar juga terlihat tabel RS-Box dasar yang belum dimodifikasi. Ukuran key awal adalah 16 byte, setelah di dekripsi menggunakan elgamal, cipherkey yang berukuran 150 byte dibalikkan ke ukuran awal 16 byte. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 2.331 detik, algoritma elgamal membutuhkan waktu 0.002 detik sehingga didapat total waktu dekripsi adalah 2.333 detik.

61 Gambar 4.3. Tampilan Enkripsi AES 128 bit dan Elgamal Pada File Text 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. Tampilan Dekripsi AES 128 bit dan Elgamal Pada File Text 200 kb

62 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 cipherkey memiliki perbandingan yang besar yaitu 881.25%. Dari segi waktu enkripsi, algoritma AES membutuhkan waktu 2.623 detik, algoritma elgamal membutuhkan waktu 0.020 detik sehingga didapat total waktu enkripsi adalah 2.643 detik.

63 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 cipherkey memiliki perbandingan yang besar yaitu 900%. Dari segi waktu enkripsi,

64 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. Gambar 4.9. Tampilan Enkripsi AES 128 bit dan Elgamal Pada File Text 500 kb Gambar 4.9 diatas merupakan proses enkripsi menggunakan AES 128 bit dan elgamal pada file berukuran 500 kb. Ukuran key awal adalah 16 byte, setelah di

65 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 Panjang Dokumen Kunci (kilobyte) (byte) Panjang Perbandingan Cipherkey Panjang Kunci (byte) Waktu Enkripsi (Detik) Waktu Dekripsi (Detik) AES Elgamal Total AES Elgamal Total 100 16 150 937.5% 1.397 0.021 1.419 2.331 0.002 2.333 200 16 149 931.25% 2.029 0.014 2.043 4.409 0.005 4.414 300 16 141 881.25% 2.623 0.020 2.643 5.744 0.002 5.746 400 16 144 900% 3.398 0.019 3.417 7.607 0.001 7.608 500 16 148 925% 4.248 0.014 4.262 9.369 0.001 9.370

66 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 primitive α=2, dan bilangan rahasia a=765.

67 Gambar 4.11. Tampilan Enkripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 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 byte dengan space saving 51.88% dan compression ratio 48.12%. Dari segi waktu enkripsi, algoritma AES membutuhkan waktu 0.695 detik, algoritma elgamal membutuhkan waktu 0.013 detik, algoritma Elias gamma code membutuhkan waktu 0.062 detik sehingga didapat total waktu enkripsi adalah 0.770 detik.

68 Gambar 4.12. Tampilan Dekripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 100 kb Gambar 4.12 diatas merupakan proses dekripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 100 kb. Pada gambar terlihat tabel RS-Box yang sudah dimodifikasi menggunakan pseudo random number generator (PRNG) metode wichmann-hill. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 0.638 detik, algoritma elgamal membutuhkan waktu 0.004 detik, algoritma Elias gamma code membutuhkan waktu 0.004 sehingga didapat total waktu dekripsi adalah 0.647 detik.

69 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 compression ratio 48.09%. Dari segi waktu enkripsi, algoritma AES membutuhkan waktu 1.081 detik, algoritma elgamal membutuhkan waktu 0.015 detik, algoritma Elias gamma code membutuhkan waktu 0.008 detik sehingga didapat total waktu enkripsi adalah 1.105 detik.

70 Gambar 4.14. Tampilan Dekripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 200 kb Gambar 4.14 diatas merupakan proses dekripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 200 kb. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 1.029 detik, algoritma elgamal membutuhkan waktu 0.003 detik, algoritma Elias gamma code membutuhkan waktu 0.003 sehingga didapat total waktu dekripsi adalah 1.035 detik.

71 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 compression ratio 47.20%. Dari segi waktu enkripsi, algoritma AES membutuhkan waktu 1.530 detik, algoritma elgamal membutuhkan waktu 0.017 detik, algoritma Elias gamma code membutuhkan waktu 0.010 detik sehingga didapat total waktu enkripsi adalah 1.558 detik.

72 Gambar 4.16. Tampilan Dekripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 300 kb Gambar 4.16 diatas merupakan proses dekripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 300 kb. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 1.443 detik, algoritma elgamal membutuhkan waktu 0.001 detik, algoritma Elias gamma code membutuhkan waktu 0.004 sehingga didapat total waktu dekripsi adalah 1.450 detik.

73 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 compression ratio 51.45%. Dari segi waktu enkripsi, algoritma AES membutuhkan waktu 1.941 detik, algoritma elgamal membutuhkan waktu 0.031 detik, algoritma Elias gamma code membutuhkan waktu 0.008 detik sehingga didapat total waktu enkripsi adalah 1.981 detik.

74 Gambar 4.18. Tampilan Dekripsi Modified AES 128 bit dan Compressed Elgamal Pada File Text 400 kb Gambar 4.18 diatas merupakan proses dekripsi menggunakan modified AES 128 bit dan compressed elgamal pada file berukuran 400 kb. Dari segi waktu dekripsi, algoritma AES membutuhkan waktu 1.859 detik, algoritma elgamal membutuhkan waktu 0.003 detik, algoritma Elias gamma code membutuhkan waktu 0.003 sehingga didapat total waktu dekripsi adalah 1.866 detik.

75 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 compression ratio 50.18%. Dari segi waktu enkripsi, algoritma AES membutuhkan waktu 2.365 detik, algoritma elgamal membutuhkan waktu 0.017 detik, algoritma Elias gamma code membutuhkan waktu 0.008 detik sehingga didapat total waktu enkripsi adalah 2.392 detik.

76 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 dibawah ini hasil simulasi algoritma AES 128 bit modifikasi dan elgamal berupa panjang kunci, panjang cipherkey, perbandingan panjang kunci dengan panjang cipherkey, dan waktu proses baik enkripsi maupun dekripsi.