953X
Vol.1, No.2, Desember 2020, Hal. 46-51
Available Onlineat journal.upgris.ac.id/index.php/jipetik
Abstract- AES Rijndael algorithm is a modern AES Rijndael sebagai pengganti dari
cryptographic algorithm published by NIST Algoritma DES (Data Encryption Standard)
(National Institute of Standards and yang penggunaannya dimulai tahun 1977 dan
Technology) in 2001 using block cipher mode telah berakhir. Panjang cipher blok yang
and using symmetric keys. AES Rijndael as a digunakan sebesar 128 bit dan variasi panjang
substitute for DES (Data Encryption Standard) kunci 128 bit, 192 bit dan 256 bit.
algorithm whose use began in 1977 and has Kehandalan-kehandalan Algoritma AES
ended. The length of the block cipher used is Rijndael sudah dibuktikan oleh: Michell
128 bits and variations in key length are 128 (2011) memberikan kesimpulan algoritma
bits, 192 bits and 256 bits. AES Rijndael's AES Rijndael memiliki tingkat keamanan
algorithm has a reliability that is the simplicity yang tinggi berdasarkan variasi panjang kunci
of the bytes transformation process so that it yang dimiliki, serta memiliki kompleksitas
can streamline encryption and decryption, and waktu dan ruang yang baik karena
has high security. kesederhanaannya dengan perbandingan
Implementation of the AES Rijndael algorithm algoritma DES. Bagus, dkk (2014) algoritma
will be done on Android devices to secure AES Rijndael lebih efisien dibandingkan
digital files, which can be used for all types of dengan algoritma Camellia, menggunakan
file types. The parameters used in the analysis teori kompleksitas waktu sebagai parameter
are testing of the encryption and decryption efisiensi. Algoritma Camellia lebih efektif
processing time, changes in size and bits of the dibandingkan algoritma AES Rijndael,
encrypted and decrypted files, then proving the menggunakan nilai Avalanche Effect sebagai
strength of the key length against the parameter efektifitas. Algoritma AES Rijndael
robustness of the AES Rijndael algorithm as a lebih berkualitas dibandingkan dengan
symmetric algorithm. algoritma Camellia,menggunakan perhitungan
deviasi maksimum, koefisien korelasi, deviasi
Keywords : Cryptography, AES Rijndael, File, ketidakteraturan dan PSNR sebagai parameter
Android. kualitas. Penelitian dilakukan pada file
berbentuk citra. Bayu, dkk (2015) algoritma
1. Pendahuluan AES Rijndael lebih efisien diimplementasikan
Algoritma AES Rijndael adalah algoritma di perangkat android karena memiliki
kriptografi modern yang di publikasi oleh kompleksitas waktu yang unggul dibandingkan
NIST (National Institute of Standard and dengan algoritma serpent. Penelitian dilakukan
Technology) tahun 2001 menggunakan mode pada teks untuk pesan singkat/Short Message
cipher blok dan menggunakan kunci simetris. Service. Oleh karena itu, dalam penelitian ini
1
akan mengimplementasikan algoritma AES Tahap perencanan sistem merupakan
Rijndael sebagai algoritma kriptografi pada tahapan awal yang dilakukan dalam
aplikasi android pengamanan file digital untuk merancang sebuah sistem. Pada tahap ini
seluruh jenis file extension, kemudian akan dilakukan identifikasi kebutuhan dan
dilakukan analisa pada proses dan hasil dari menentukan tujuan pembuatan sistem. Tujuan
algoritma AES Rijndael, dalam penerapan di dilakukannya pembuatan sistem ini adalah
perangkat android dengan beberapa parameter untuk membuat aplikasi enkripsi dan dekripsi
yang digunakan diantaranya pengujian file berbasis android.
terhadap waktu proses enkripsi dan dekripsi,
pengujian terhadap perubahan size dan Analisis Sistem
perubahan bit pada file hasil enkripsi dan 1) Analisis Algoritma
pengujian tentang pembuktian kekuatan a) Pembangkitan (Ekspansi) Kunci
algoritma simetris terletak pada panjang kunci Pembangkitan atau ekspansi kunci
yang dimiliki. dilakukan dengan tujuan mendapatkan
kunci ronde atau round key yang akan
2. Metode digunakan untuk proses enkripsi dan
Metode penelitian yang digunakan adalah dekripsi, tepatnya pada tahap transformasi
pola siklus hidup pengembangan AddRoundKey. Tanpa proses
sistem/System Development Life Cycle pembangkitan kunci maka proses enkripsi
(SDLC). Pertimbangan menggunakan model dan dekripsi tidak akan berjalan
ini karena mempunyai tahapan yang cukup sebagaimana mestinya. Langkah pertama
lengkap dan terstruktur. Informasi ini yaitu menyediakan blok matrik (array)
menyangkut langkah-langkah yang diperlukan 128 bit untuk menampung kunci cipher
untuk merancang sistem tersebut. Berikut studi yang akan dibangkitkan.
yang digunakan dalam pengumpulan Untuk kunci ronde ke-0 yaitu
informasi. menggunakan kunci yang kita inputkan,
untuk kunci ronde ke-1 s/d kunci ronde
Perencanaan
ke-10 pada AES-128 kita bangkitkan dari
kunci awal, yaitu dengan cara melakukan
transformasi byte Rotation Word,
Analisis
Subtitution Bytes dan XOR (Exclusive
OR) dengan table Round Constant
Perancangan (RCon).
Simulasi Ekspansi Kunci AES-128
Plain text : ILMUKOMPUTER2012
Implementasi Tidak
Hexadecimal : 49 4C 4D 55 4B 4F 4D
50 55 54 45 52 32 30 31 32
Uji Coba Key :
FMIPAILKOMUNPAK1
Hexadecimal : 46 4D 49 50 41 49 4C
Valid 4B 4F 4D 55 4E 50 41 4B 31
Ya
Tabel 1. Matrik Plain Text / State
Penggunaan
2
Tabel 4. Round Constanta / RCon
Tabel 2. Matrik Cipher Key
Transformasi AddRoundKey
Transformasi ini merupakan pencampuran
anatara kunci ronde dengan state dengan
operasi XOR. Transformasi ini terjadi pada
ronde ke-0 dan terjadi pada ronde ke-1 sampai
ronde ke-9 setelah transformasi MixColumns
untuk AES-128, ronde ke-1 sampai ronde ke-
11 setelah transformasi MixColumns untuk
AES-192, dan ronde ke-1 sampai ronde ke-13
setelah transormasi MixColumns untuk AES-
Gambar 3. Proses Subtitution Bytes
256. Serta ronde ke-10 setelah transformasi
ShiftRows untuk AES-128, ronde ke-12
Langkah selanjutnya, hasil Subtitution
setelah transformasi ShiftRows untuk AES-
Bytes di-XOR dengan kolom 1 kunci ronde
192, dan ronde ke-14 setelah transformasi
ke-0 dan kolom 1 tabel RCon.
3
ShiftRows untuk AES-256 karena pada ronde state hasil ShiftRows dengan matrik
terakhir/final round tanpa transformasi multiplication. Setiap kolom pada state
MixColumns. dikalikan dengan matrik multiplication
Simulasi Transformasi AddRoundKey tersebut, bilangan didalam matrik
AES-128 (Ronde 0) multiplication tersebut merupakan bilangan
hexadecimal. Jika nilai yang dihasilkan lebih
besar dari hexadecimal 0xFF (256 desimal)
maka harus di XOR dengan hexadecimal
0x11B.
Transformasi SubBytes
Gambar 9. Matrik Multiplication MixColumns
Transformasi SubBytes merupakan
transformasi yang dilakukan setelah
AddRoundKey. Pada Transformasi ini Simulasi Transformasi MixColumns
melakukan operasi subtitusi hasil dari (Ronde 1)
AddRoundKey (Ronde ke-0) menggunakan
table S-Box.
Transformasi MixColumns
Transformasi MixColumns disebut juga
transformasi perkalian matrik, proses perkalian
4
Gambar 11. Proses AddRoundKey (Ronde 1)
Proses transformasi bytes pada ronde ke-1
dilakukan secara berulang sampai ronde ke-9.
Setelah selesai ronde ke-9, melakukan
transformasi pada ronde ke-10/final round.
Pada final round transformasi yang dilakukan
hanya SubBytes, ShiftRows dan
AddRoundKey. Setelah selesai melakukan
tahap final round, didapatkanlah hasil proses
enkripsi yang di sebut ciphertext.
Transformasi SubBytes
Transformasi SubBytes merupakan
transformasi yang dilakukan setelah
AddRoundKey. Pada Transformasi ini Gambar 12. Transformasi InvShiftRows
melakukan operasi subtitusi hasil dari
AddRoundKey (Ronde ke-0) menggunakan Transformasi InverseSubBytes
table S-Box. InvSubBytes juga merupakan transformasi
bytes yang berkebalikan dengan transformasi
Transformasi Proses Dekripsi SubBytes. Pada InvSubBytes, tiap elemen
Pada Proses dekripsi AES terjadi 4 pada state dipetakan dengan menggunakan
transformasi, dimana 3 transformasi tabel Inverse S-Box.
merupakan inverse atau kebalikan dari
transformasi pada proses enkripsi AES. Tabel 5. Tabel Inverse S-Box
1. Transformasi AddRoundKey
2. Transformasi InverseMixColumns
3. Transformasi InverseShiftRows
4. Transformasi InverseSubBytes
Transformasi AddRoundKey
Transformasi AddRoundKey merupakan
pencampuran antara kunci ronde ke-10/final
round pada AES-128 dengan state (blokarray
berisi 16 byte ciphertext). Proses dekripsi AES
beroperasi berlawanan arah dengan proses
enkripsi, sehingga dimulai pada tahap final
round. Transformasi InverseMixColumns
Transformasi InverserMixColumns
Transformasi InverseShiftRows melakukan operasi perkalian matrik antara
Setelah AddRoundKey dilanjutkan state dengan matrik multiplication. Jika
dengan transformasi InverseShiftRows, terdapat hasil perkalian yang melebihi nilai
dimana terjadi pergeseran ke sebalah kanan 0xFF maka harus di XOR dengan 0x11B.
pada baris 2, 3, dan 4. Pergeseran tersebut
merupakan kebalikan dari transformasi
ShiftRows.
5
Analisis Masalah telah berhasil di enkripsi/dekripsi di
Langkah-langkah yang ditempuh yang simpan.
berguna untuk mengetahui berbagai masalah 6. Setelah melakukan proses
yang ada, sehingga dengan adanya aplikasi enkripsi/dekripsi file, user dapat
enkripsi dan dekripsi file berbasis android ini melihat file dengan membuka menu
diharapkan bisa membantu permasalahan yang file manager, file tersimpan pada main
ada. Adapun beberapa masalah tersebut adalah storage dengan nama folder crypto.
sebagai berikut:
1. Penyalahgunaan data 2) Tahap Proses Perancangan
2. Pemalsuan data Struktur Navigasi
Struktur navigasi berfungsi untuk
Analisis Sistem mengarahkan pengguna dalam menjalankan
Tahapan analisis ini berisi identifikasi dan aplikasi prioritas standar pengelolaan. Berikut
evaluasi permasalahan yang ada serta struktur navigasi aplikasi prioritas pengelolaan
kebutuhan apa saja yang dibutuhkan dalam dapat dilihat pada Gambar 14.
pembuatan proyek perangkat lunak, dengan
adanya analisa dan perancangan maka akan di
didapatkan suatu gambaran mengenai
kebutuhan apa saja yang dibutuhkan dalam
program aplikasi ini. Langkah-langkah dalam
penggunaan aplikasi dari awal hingga akhir
adalah sebagai berikut:
Gambar 14. Struktur Navigasi
1. Buka aplikasi enkripsi dan dekripsi file
ini
Flowchart
2. Ketika dibuka halaman awal yang
Perancangan system memerlukan suatu
tampil yaitu splashscreen dari aplikasi
diagram alur atau flowchart program yang
ini, berisi nama algoritma yang di
menggambarkan proses kerja program dari
gunakan pada aplikasi ini, background
aplikasi enkripsi dan dekripsi file berbasis
dari tampilan splashscreen dan
android. Berikut dapat dilihat pada Gambar 15.
progress bar.
3. Setelah splashscreen tampil lalu akan
tampil halaman menu utama,
dihalaman ini terdapat empat widget
button image, yaitu encryption,
decryption, file manager dan about.
4. Lakukan proses enkripsi/dekripsi
dengan cara memilih menu yang
terdapat pada menu utama, yaitu menu
encryption/decryption.
5. Setelah menentukan proses yang
diinginkan, pada menu
encryption/decryption user dapat
melampirkan file yang akan di
enkripsi/dekripsi, menginputkan kunci
sebesar 128/192/256 bit atau 16/24/32
karakter, lakukan proses
enkripsi/dekripsi file dengan menekan Gambar 15. Flowchart Sistem
button image bergambar file terkunci,
indikator proses telah selesai yaitu Perancangan Interface
waktu akan tampil, setalah itu file yang Pada tahap perancangan interface,
6
dirancang agar pengguna mudah n
menggunakan dan design yang di tampilkan Splashscree Text View Menampilkan Berfungsi
menarik dan enak di lihat. n Nama Algoritma
7
Decryption Button Melakukan Aksi Berfungsi for (i = 1; i < lenght; i++) n
Image Dekripsi File
Dekripsi padding[i] = 0;
Decryption Button Menyimpan File Berfungsi byte[] tmp = new byte[in.length + lenght]; 1
Image Save Yang Telah
Didekripsi byte[] bloc = new byte[16]; 1
}
Tabel 7. Perhitungan Jumlah Eksekusi Source
Code Enkripsi return tmp; 1
Source Code Jumlah Eksekusi
}
public static byte[] encrypt(byte[] in,byte[]
key){ T(n) = 17 + 2n = O(n)
8
state = SubBytes(state); bloc[i % 16] = in[i];
state = ShiftRows(state); }
state = InvSubBytes(state); 1
Tabel 8. Perhitungan Jumlah Eksekusi Source
Code Dekripsi for (int round = Nr-1; round >=1; round--) { n
Source Code Jumlah
Eksekusi state = AddRoundKey(state, w, round);
9
Perubahan Size Documents 2.758.074 2.758.080 2.758.074
(.docx)
Berdasarkan hasil pengujian dari proses 5.583.829 5.583.840 5.583.829
enkripsi dan dekripsi file, file yang telah
berhasil di enkripsi akan mengalami Image
(.jpg)
2.651.905 2.651.920 2.651.905
penambahan size file beberapa KB, hal ini di 5.286.662 5.286.672 5.286.662
karenakan adanya proses padding, yaitu
pengelompokan bit-bit sepanjang 128 bit, Video
(.mp4)
2.661.097 2.661.104 2.661.097
sehingga ketika ada kelompok bit yang kurang 5.646.551 5.646.560 5.646.551
dari 128 akan mengalami penambahan bit
dummy, sehingga akan mempengaruhi pada
ukuran file. Perubahan Bit
Pada pengujian perubahan bit ini,
Tabel 9. Ukuran File Hasil Enkripsi dan menggunakan metode avalanche effect. Suatu
Dekripsi avalanche effect dikatakan baik jika perubahan
Jenis File Size File Asli Size File Size File bit yang dihasilkan berkisar antara 45-60%.
(KB) Enkripsi (KB) Dekripsi (KB)
Hal ini dikarenakan perubahan tersebut berarti
Aplikasi 2.918.464 2.918.480 2.918.464 membuat perbedaan yang cukup sulit untuk
(.exe) kriptanalis melakukan serangan. Nilai
5.489.552 5.489.568 5.489.552
avalanche effect dirumuskan dengan :
Audio 2.680.708 2.680.720 2.680.708 Jumlah bit berubah
(.mp3) Avalanche Effect ( AE )= X 100 %
5.736.825 5.736.832 5.736.825 Jumlah bit total
Compress 2.625.102 2.625.104 2.625.102 Gambar 17. Perhitungan Avalanche Effect
(.rar)
5.290.754 5.290.768 5.290.754
010011010101101010010000000 001100100010111001101011101
000000000001100000000000000 000111010000000111010111000 76
128 000000000000000100000000000 010101101101110010101010010 x 100 %=59 %
000000000000000111111111111 110101111111100111101100011 128
11110000000000000000 11001010111111110001
010011010101101010010000000 111001111100000101000011011
000000000001100000000000000 101111110111010010111100111 78
192 000000000000000100000000000 011111100111000011111110101 x 100 %=60 %
000000000000000111111111111 011010010101111101100100000 128
11110000000000000000 01100100011010010000
010011010101101010010000000 011010101001000111000010110
000000000001100000000000000 000111111111100000001010001 59
256 000000000000000100000000000 011010010010101101111001001 x 100 %=46 %
000000000000000111111111111 010010001010010010110101001 128
11110000000000000000 00111111110000100001
Audio (.mp3)
10
000000000000000000000000000 000110100010010010010011101
000000000000000000000000000 001010111011101110000000110 58
128 000000000000000000000000000 111101100010001110100011110 x 100 %=45 %
000000000000000000000000000 100110111011010101010000010 128
00000000000000000000 00111100000010100000
000000000000000000000000000 000110101101001111111110011
000000000000000000000000000 010011111011110011111011001 69
192 000000000000000000000000000 011011101000010011101110111 x 100 %=53 %
000000000000000000000000000 000100011010011111011010000 128
00000000000000000000 00000010010011100001
000000000000000000000000000 100111100110010001011011111
000000000000000000000000000 011110010101100100000010101 62
256 000000000000000000000000000 001000001001111001001001101 x 100 %=48 %
000000000000000000000000000 011011010001100110000101111 128
00000000000000000000 01010000101011010110
Compress (.rar)
Documents (.docx)
11
256 0101000001001011000000110000 000101010101001001111011001 64
0100000010100000000000000000 010111111010001110000111011 x 100 %=50 %
0000000000000000000000001000 111100100011001101001000010 128
0111010011101110001001000000 001011011101010110111001111
0000000000000000 00010001101001110010
Image (.jpg)
Video (.mp4)
12
attack adalah kalkulasi peluang untuk dengan bytes kunci, sehingga bytes dari file
pemecahan kunci. Kemungkinan kunci yang di asli teracak. Size file hasil enkripsi akan
hasilkan dari AES-128 adalah 3,4 x 1038 , bertambah beberapa bytes, karena ada proses
AES-192 adalah 6,2 x 1057 dan AES-256 penambahan bytes pada saat pembentukan
adalah 1,2 x 1077 . Asumsi kecepatan block cipher atau operasi padding.
komputasi adalah 106 key/sec. dan Berdasarkan pengujian kompleksitas waktu
perhitungan detik dalam 1 tahun adalah 3,1536 dengan notasi Big O, algoritma AES Rijndael
x 107 . untuk enkripsi file, memiliki notasi O(n),
Kemungkinan Kunci Kemungkinan Kunciartinya besaran masukan berpengaruh terhadap
= waktu proses. Berdasarkan pengujian
Asumsi Kecepatan Komputasi 3,1536 x 107 perubahan bit menggunakan metode
Avalanche Effect, untuk AES-128, AES-192,
3,4 x 1038 3,4 x 1032 25 dan AES-256 memiliki nilai Avalanche Effect
= =1,08 x 10 tahun
10 6
3,1536 x 10 7 45%-60%. Nilai tersebut mengindikasikan
algoritma AES Rijndael algoritma yang baik,
dan aman terhadap serangan kriptoanalis.
Dengan perhitungan matematis brute force
attack membuktikan AES-256 memiliki
tingkat ketahanan yang lebih tinggi dan lebih
Gambar 18. Simulasi Perhitungan Brute Force aman yaitu memiliki kemungkinan waktu
Attack AES-128 untuk pemecahan kunci sebesar 3,8 x 108
tahun. Aplikasi yang telah dibuat telah berhasil
Tabel 11. Tabel Kemungkinan Waktu di uji coba untuk enkripsi dan dekripsi file
Pemecahan Kunci yaitu image(.jpg), documents(.docx), audio
No Panjang Kunci Kemungkinan Waktu Pemecahan (.mp3), video(.mp4), compress (.rar), dan
Kunci aplikasi (.exe) dengan ukuran maksimal
sebesar 30 MB.
1 128 1,08 x 1025 tahun
14