Anda di halaman 1dari 14

JIPETIK: Jurnal Ilmiah Penelitian Teknologi Informasi & Komputer ISSN 2722-

953X
Vol.1, No.2, Desember 2020, Hal. 46-51
Available Onlineat journal.upgris.ac.id/index.php/jipetik

Implementasi Algoritma AES (Advance


Encryption Standard) Rijndael Pada Aplikasi
Keamanan Data
Agung Prajuhana Putra1, Herfina2, Sufiatul Maryana3, Andrian Setiawan4
1,2,3,4
Prodi Teknik Informatika
Universitas Pakuan Bogor
1
prajuhana.putra@unpak.ac.id, 2herfina@unpak.ac.id, 3sufiatul.maryana@unpak.ac.id.
4
setiawanandrian1@gmail.com

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

Gambar 1. Tahapan System Development


Life Cycle (SDLC)

3. Hasil Dan Pembahasan

Tahap Perencanaan Sistem

2
Tabel 4. Round Constanta / RCon
Tabel 2. Matrik Cipher Key

Tabel 3. Ekspansi Kunci

Gambar 4. Proses XOR

Selanjutnya mencari kolom ke-2 sampai


kolom ke-4 kunci ronde ke-1 menggunakan
proses XOR, yaitu kolom ke-1 kunci ronde ke-
Selanjutnya mencari kunci ronde ke-1 1 di-XOR dengan kolom ke-2 kunci ronde ke-
akan digunakan transformasi Rotation Word 0, kemudian kolom ke-2 kunci ronde ke-1 di-
atau menggeser blok paling atas ke blok paling XOR dengan kolom ke-3 kunci ronde ke-0,
bawah pada kolom terakhir kunci ronde ke-0. kemudian kolom ke-3 kunci ronde ke-1 di-
XOR dengan kolom ke-4 kunci ronde ke-0.

Gambar 2. Proses Rotation Word


Gambar 5. Proses XOR Untuk Kolom Ke-2
Kunci Ronde Ke-1
Kemudian hasil Rotation Word di
Subtitution Bytes menggunakan table S-Box.
Transformasi Proses Enkripsi
Terdapat 4 transformasi yang akan
digunakan pada proses enkripsi, yaitu:
1. Transformasi AddRoundKey
2. Transformasi SubBytes
3. Transformasi ShiftRows
4. Transformasi MixColumns

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.

Gambar 6. Proses AddRoundKey Ronde ke-0

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.

Simulasi Transformasi SubBytes AES-


128 (Ronde 1)

Gambar 7. Proses SubBytes Ronde ke-1


Gambar 10. Proses MixColumns Ronde ke-1
Transformasi ShiftRows
Transformasi ShiftRows merupakan S’0,1 = (02*76) XOR (03*6F) XOR
pergeseran baris 2, 3, dan 4 pada state hasil (01*CA) XOR (01*7B),
transformasi SubBytes. S’1,1 = (01*76) XOR (02*6F) XOR
(03*CA) XOR (01*7B),
Simulasi Transformasi ShiftRows S’2,1 = (01*76) XOR (01*6F) XOR
(Ronde 1) (02*CA) XOR (03*7B),
S’3,1 = (03*76) XOR (01*6F) XOR
(01*CA) XOR (02*7B), dan seterusnya.

Simulasi Transformasi AddRoundKey


(Ronde 1)

Gambar 8. Proses ShiftRows Ronde ke-1

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.

Gambar 13. Matrik Multiplication


InverseMixColumns

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

Splashscree Image View Menampilkan Berfungsi


n Background

Splashscree Progressbar Indicator Proses Berfungsi


n Splashscreen

Gambar 16. Perancangan Interface Menu Button Menampilkan Berfungsi


Utama Image Halaman Enkripsi
Encryption
3) Tahap Uji Coba
Menu Button Menampilkan Berfungsi
Uji Coba Struktural Utama Image Halaman Dekripsi
Uji Coba Struktural dilakukan untuk Decryption
mengetahui apakah struktur atau alur sistem
Menu Button Menampilkan Berfungsi
yang dibuat sudah sesuai dengan rancangan. Utama Image File Aplikasi File
Hasil uji coba sistem secara structural dapat Manager Manager +
dilihat pada Table 6. Menu Button Menampilkan Berfungsi
Utama Image About Halaman Petunjuk
Table 6. Uji Coba Struktural Penggunaan

Encryption Button Untuk Memilih File Berfungsi


Image Yang Akan di
Lampirkan Enkripsi
File

Encryption Text View Menampilkan Berfungsi


Nama File Nama File Yang
Dipilih

Encryption Edit Text Menginput Kunci Berfungsi


Input Kunci Untuk Proses
Enkripsi

Encryption Text View Menampilkan Berfungsi


Waktu Waktu Proses
Enkripsi

Encryption Button Melakukan Aksi Berfungsi


Image Enkripsi File
Enkripsi

Encryption Button Menyimpan File Berfungsi


Image Save Yang Telah
Dienkripsi

Decryption Button Untuk Memilih File Berfungsi


Image Yang Akan di
Lampirkan Dekripsi
File

Decryption Text View Menampilkan Berfungsi


Nama File Nama File Yang
Uji Coba Funsional Dipilih
Uji coba fungsional dilakukan untuk
Decryption Edit Text Menginput Kunci Berfungsi
mengetahui apakah sistem yang dibuat sudah Input Kunci Untuk Proses
berfungsi dengan baik. Pada tahap ini Dekripsi
dilakukan dengan baik. Hasil uji coba sistem
Decryption Text View Menampilkan Berfungsi
secara fungsional dapat dilihat pada Tabel 7. Waktu Waktu Proses
Dekripsi
Tabel 7. Uji Coba Fungsional
Halaman Widget Fungsi Keteranga

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

About Image View Menampilkan Berfungsi w = generateSubkeys(key); 1


Petunjuk
Penggunaan int count = 0; 1
Aplikasi
for (i = 0; i < in.length + lenght ; i++) { n

Uji Kompleksitas Waktu if (i > 0 && i % 16 == 0) {

Uji Coba Validasi bloc = encryptBloc(bloc);


Pada pengujian kompleksitas waktu,
System.arraycopy(bloc, 0, tmp, i - 16,
metode yang digunakan yaitu notasi Big O. bloc.length);
Kompleksitas waktu T(n) diukur dari jumlah
tahapan komputasi yang dibutuhkan untuk }

menjalankan algoritma sebagai fungsi dari if (i < in.length) 1


ukuran masukan (n). Jumlah tahapan
komputasi dihitung dari berapa kali suatu bloc[i % 16] = in[i];

operasi dilaksanakan di dalam sebuah else{ 1


algoritma sebagai fungsi ukuran masukan (n).
bloc[i % 16] = padding[count % 16];
Dalam menghitung time complexity dan
space complexity (yang biasanya dinotasikan count++;
dengan Big-O notation), ada beberapa aturan
}
yang perlu dilakukan disini:
1. Abaikan konstanta, misalkan O(N + 2), }
maka dianggap O(N) saja.
if(bloc.length == 16){ 1
2. Abaikan non dominant terms,misalkan
O(N² + N), maka dianggap O(N²) saja. bloc = encryptBloc(bloc);

System.arraycopy(bloc, 0, tmp, i - 16,


Kompleksitas Waktu Enkripsi bloc.length);

}
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)

Nb = 4; 1 Source Code Jumlah


Ekesekusi
Nk = key.length/4; 1
public static byte[] encryptBloc(byte[] in) {
Nr = Nk + 6; 1
byte[] tmp = new byte[in.length]; 1
int lenght=0; 1
byte[][] state = new byte[4][Nb]; 1
byte[] padding = new byte[1]; 1
for (int i = 0; i < in.length; i++) n
int i; 1
state[i / 4][i % 4] = in[i%4*4+i/4];
lenght = 16 - in.length % 16; 1
state = AddRoundKey(state, w, 0); 1
padding = new byte[lenght]; 1
for (int round = 1; round <Nr; round++) { n
padding[0] = (byte) 0x80; 1

8
state = SubBytes(state); bloc[i % 16] = in[i];

state = ShiftRows(state); }

state = MixColumns(state); bloc = decryptBloc(bloc); 1

state = AddRoundKey(state, w, round); System.arraycopy(bloc, 0, tmp, i - 16, 1


bloc.length);
}
tmp = deletePadding(tmp); 1
state = SubBytes(state); 1
return tmp; 1
state = ShiftRows(state); 1
}
state = AddRoundKey(state, w, Nr); 1
T(n) = 11 + n = O(n)
for (int i = 0; i < tmp.length; i++) n
Source Code Jumlah
tmp[i%4*4+i/4] = state[i / 4][i%4]; Ekesekusi

return tmp; 1 public static byte[] decryptBloc(byte[] in) {

} byte[] tmp = new byte[in.length]; 1

T(n) = 7 + 3n = O(n) byte[][] state = new byte[4][Nb]; 1

for (int i = 0; i < in.length; i++) n

Perhitungan kompleksitas waktu state[i / 4][i % 4] = in[i%4*4+i/4];


enkripsi :T(n) = O(n) + O(n) = O (2n) = On
state = AddRoundKey(state, w, Nr); 1

Kompleksitas Waktu Dekripsi state = InvShiftRows(state); 1

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);

public static byte[] decrypt(byte[] in,byte[] key){ state = InvMixColumns(state);

int i; 1 state = InvShiftRows(state);

byte[] tmp = new byte[in.length]; 1 state = InvSubBytes(state);

byte[] bloc = new byte[16]; 1 }

Nb = 4; 1 state = AddRoundKey(state, w, 0); 1

Nk = key.length/4; 1 for (int i = 0; i < tmp.length; i++) n

Nr = Nk + 6; 1 tmp[i%4*4+i/4] = state[i / 4][i%4];

w = generateSubkeys(key); 1 return tmp; 1

for (i = 0; i < in.length; i++) { N }

if (i > 0 && i % 16 == 0) { T(n) = 7 + 3n = O(n)

bloc = decryptBloc(bloc); Perhitungan kompleksitas waktu


System.arraycopy(bloc, 0, tmp, i - 16, dekripsi :T(n) = O(n) + O(n) = O(2n) = O(n)
bloc.length);

if (i < in.length) Uji Coba Perubahan Size dan


Perubahan bit

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

Tabel 10. Perubahan Bit Plainttext dan Ciphertext


Aplikasi (.exe)

Jenis Kunci Plaintext Ciphertext Avalanche Effect

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)

Jenis Kunci Plaintext Ciphertext Avalanche Effect

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)

Jenis Kunci Plaintext Ciphertext Avalanche Effect

128 0101001001100001011100100010 11111011110001110101110101 65


0001000110100000011100000001 10010001000111111110111010 x 100 %=50 %
0000000001011010000111110101 01111000100001000111010110 128
0000101010000000110000000001 11011110010010101111110101
0000010100001000 111001101100101111011000

192 0101001001100001011100100010 01010000111010111000110110 61


0001000110100000011100000001 11111111101110100101111001 x 100 %=47 %
0000000001011010000111110101 10110101001001100011111111 128
0000101010000000110000000001 10010000110011110000001101
0000010100001000 110100001111010001010111

256 0101001001100001011100100010 10110000011101100110100001 69


0001000110100000011100000001 10011011010010100110001110 x 100 %=53 %
0000000001011010000111110101 11101000101110000010100110 128
0000101010000000110000000001 00010100001001001111000001
0000010100001000 111101100110100110110001

Documents (.docx)

Jenis Kunci Plaintext Ciphertext Avalanche Effect

128 0101000001001011000000110000 001110000111110111011000011 69


0100000010100000000000000000 100010111000010111001000111 x 100 %=53 %
0000000000000000000000001000 100110111110000100101010111 128
0111010011101110001001000000 001001110100110101101111100
0000000000000000 10111011010011011110

192 0101000001001011000000110000 110101101011100010101010101 63


0100000010100000000000000000 001001101100111011001000110 x 100 %=49 %
0000000000000000000000001000 010100000010101011111110011 128
0111010011101110001001000000 101000000011101000001101110
0000000000000000 01010010100100110010

11
256 0101000001001011000000110000 000101010101001001111011001 64
0100000010100000000000000000 010111111010001110000111011 x 100 %=50 %
0000000000000000000000001000 111100100011001101001000010 128
0111010011101110001001000000 001011011101010110111001111
0000000000000000 00010001101001110010

Image (.jpg)

Jenis Kunci Plaintext Ciphertext Avalanche Effect

128 111111111101100011111111111 010110000010101000010011011 62


000011010110101110101010001 101011011110101001100101001 x 100 %=48 %
010111100001101001011001100 110000000000001011010100100 128
000000000000000010010010100 110101110101111111101011101
10010010101000000000 10010000101011111001

192 111111111101100011111111111 010010010110000011000001111 69


000011010110101110101010001 000100110001101011000110001 x 100 %=53 %
010111100001101001011001100 110010011111010101111000100 128
000000000000000010010010100 010111000111111001100101111
10010010101000000000 11011101010000000101

256 111111111101100011111111111 110100010000110111110111011 62


000011010110101110101010001 000011000110000010011111101 x 100 %=48 %
010111100001101001011001100 111100110010010111111100001 128
000000000000000010010010100 100110001010100101110011100
10010010101000000000 01111101010101010100

Video (.mp4)

Jenis Kunci Plaintext Ciphertext Avalanche Effect

128 00000000000000000000000000 010010110010101001101110000 60


01100001100110011101000111 011100000110101101011010110 x 100 %=46 %
10010111000001101101011100 010011010111101000100100010 128
00001101000011001000000000 110010011010101101001100101
000000000000000000000000 00011101100111010010

192 00000000000000000000000000 011110111110001111000111001 71


01100001100110011101000111 000001101010000110100110011 x 100 %=55 %
10010111000001101101011100 001001100101101010110011011 128
00001101000011001000000000 001100011001010110001001111
000000000000000000000000 10101110111001100011

256 00000000000000000000000000 010001110001110101111111110 65


01100001100110011101000111 101011011101011110010101101 x 100 %=50 %
10010111000001101101011100 100001011101111100111100110 128
00001101000011001000000000 010011100101000000100100011
000000000000000000000000 01010011010111101010

memiliki rentang nilai avalanche effect 45%-


60%.
Berdasarkan hasil pengujian avalanche
Uji Coba Kemungkinan
effect, algoritma AES-Rijndael yaitu AES-
Pemecahan Kunci
128, AES-192, dan AES 256. Algoritma AES-
Pada uji coba ini dilakukan perhitungan
Rijndael adalah algoritma yang baik, karena
matematis brute force attack. Brute force

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

2 192 1,97 x 1044 tahun Saran


Saran-saran yang dapat membantu dalam
3,8 x 1063 tahun
3 256
aplikasi pengenkripsian dengan menggunakan
algoritma Rijndael adalah sebagai berikut:
1. Dapat di kombinasikan dengan
Berdasarkan perhitungan matematis brute algoritma kriptografi lainnya, agar
force attack, membuktikan bahwa panjang dapat meningkatkan keamanan file.
kunci yang digunakan AES-256 memiliki 2. Diimplementasikan pada platform lain,
waktu pemecahan kunci yang sangat lama, hal yaitu i-phone dan desktop PC.
ini dikarenakan AES-256 melakukan lebih 3. Meningkatkan size file yang dapat di
banyak proses perulangan transformasi bytes enkripsi dan dekripsi.
yaitu sebanyak 14 perulangan sehingga AES-
256 memiliki tingkat keamanan yang lebih
baik. DAFTAR PUSTAKA
Ana Kurniawati & Muhammad Dwiky
4) Penutup Darmawan. 2015. Implementasi
Kesimpulan Algoritma Advanced Encryption
Setelah dilakukan analisis, Standard (AES) Untuk Enkripsi dan
perancangan, implementasi, serta evaluasi Dekripsi Pada Dokumen Teks..
aplikasi pengenkripsian dengan menggunakan
Andry. 2011. Android A sampai Z. PCplus,
algoritma Rijndael dapat ditarik kesimpulan
Jakarta.
hasil enkripsi merupakan hasil dari suatu
transormasi bytes yang di kombinasikan
13
Bagus Satrio Waluyo Putro & Retantyo
Wardoyo. 2014. Perbandingan Efisiensi,
Efektifitas dan Kualitas Algoritma
Rijndael dengan Algoritma Camellia
pada Citra Digital. Berkala MIPA.
Bayu Rizki, R. Rumani M & Muhammad
Nasrun. 2015. Analisis Perbandingan
Antara Algoritma Kriptografi Serpent
dan Aes Pada Implementasi Enkripsi
Sms di Perangkat Android. E-Proceeding
Engineering. Vol. 2 ISSN 2355-9365.
Haris Mufti Maulana & Pulung Nurtantio
Andono. 2014. Implementasi Algoritma
AES-256 Bit Untuk Enkripsi Dan
Deskripsi Pesan Teks Berbasis Android.
Hariyanto, B. 2009. Sistem Operasi. Bandung :
Informatika.
Kristanto, Andri. 2003. Keamanan Data pada
Jaringan Komputer. Yogyakarta:
Penerbit Gava Media.
Lee, W. M. 2011. Beginning Android
Application Development. Wiley
Publishing,Inc.
Michell Setyawati Handaka. 2011. Analisi
AES Rijndael terhadap DES.
Mollin, R. A. 2007. An Introduction to
Cryptography. 2nd ed. Florida: Chapman
& Hall/CRC.
Munir, Rinaldi. 2006. Diktat Kuliah
Kriptografi. Bandung: Program Studi
Tenik Informatika, Institut Teknologi
Bandung.
Munir, Rinaldi. 2008. Belajar Ilmu
Kriptografi. Yogyakarta: Penerbit Andi.
Munir, Rinaldi. 2011. Kriptografi Keamanan.
Bandung: Informatika Bandung.
Rahmat Tullah, Muhammad Iqbal Dzulhaq &
Yudi Setiawan. 2016. Perancangan
Aplikasi Kriptografi File Dengan
Metode Algoritma Advanced Encryption
Standard (AES). Jurnal Sisfotek Global.
Vol. 6 No. 2 2088-1762.
Sadikin, Rifki. 2012. Kriptografi Untuk
Keamanan Jaringan.Yogyakarta:
Penerbit Andi

14

Anda mungkin juga menyukai