Advance Encryption Standard (AES)
Advanced
Encryption Standard (AES) merupakan algoritma cryptographic yang dapat
digunakan untuk mengamankan data. Algoritma AES adalah blok chipertext simetrik
yang dapat mengenkripsi (encipher)
dan dekripsi (decipher) info rmasi. Enkripsi merubah data yang tidak
dapat lagi dibaca disebut ciphertext; sebaliknya dekripsi adalah merubah
ciphertext data menjadi bentuk semula yang kita kenal sebagai plaintext.
AES
(Advanced Encryption Standard) adalah lanjutan dari
algoritma enkripsi standar DES (Data Encryption Standard) yang masa
berlakunya dianggap telah usai karena faktor keamanan. Kecepatan
komputer yang sangat pesat dianggap sangat membahayakan DES, sehingga
pada tanggal 2 Maret tahun 2001 ditetapkanlah algoritma baru Rijndael
sebagai AES.
Metode Algoritma AES
Algoritma
Rijndael kemudian dikenal dengan Advanced Encryption Standard (AES).
Setelah mengalami beberapa proses standardisasi oleh NIST, Rijndael kemudian
diadopsi menjadi standard algoritma kriptografi secara resmi pada 22 Mei 2002.
Pada 2006, AES merupakan salah satu algoritma terpopuler yang digunakan dalam
kriptografi kunci simetrik.
AES
ini merupakan algoritma block cipher dengan menggunakan sistem permutasi dan
substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel sebagaiman
block cipher pada umumnya. Jenis AES terbagi 3, yaitu :
1.AES-128
2.AES-192
3.AES-256
Pengelompokkan
jenis AES ini adalah berdasarkan panjang kunci yang digunakan. Angka-angka di
belakang kata AES menggambarkan panjang kunci yang digunakan pada tipa-tiap
AES. Selain itu, hal yang membedakan dari masing-masing AES ini adalah
banyaknya round yang dipakai. AES-128 menggunakan 10 round, AES-192 sebanyak 12
round, dan AES-256 sebanyak 14 round.
Garis besar Algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai
berikut (di luar proses pembangkitan round
key):
1. AddRoundKey:
melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round.
2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada
setiap putaran adalah:
a. SubBytes:
substitusi byte dengan menggunakan
tabel substitusi (S-box).
b. ShiftRows:
pergeseran baris-baris array state
secara wrapping.
c. MixColumns:
mengacak data di masing-masing kolom array
state.
d. AddRoundKey:
melakukan XOR antara state sekarang round key.
3. Final
round: proses untuk putaran terakhir:
a.
SubBytes
b.
ShiftRows
c.
AddRoundKey
AES
memiliki ukuran block yang tetap sepanjang 128 bit dan ukuran kunci sepanjang
128, 192, atau 256 bit. Berdasarkan ukuran block yang tetap, AES bekerja pada
matriks berukuran 4x4 di mana tiap-tiap sel matriks terdiri atas 1 byte (8
bit). Sedangkan Rijndael sendiri dapat mempunyai ukuran matriks yang
lebih dari itu dengan menambahkan kolom sebanyak yang diperlukan.
Blok
chiper tersebut dalam pembahasan ini akan diasumsikan sebagai sebuah kotak.
Setiap plainteks akan dikonversikan terlebih dahulu ke dalam blok-blok tersebut
dalam bentuk heksadesimal. Barulah kemudian blok itu akan diproses dengan
metode yang akan dijelaskan. Secara umum metode yang digunakan dalam pemrosesan
enkripsi dalam algoritma ini dapat dilihat melalui gambar berikut:
Gambar diagram AES
1. ADD ROUND KEY
Add Round Key pada dasarnya adalah mengkombinasikan chiper teks yang sudah ada dengan chiper key yang chiper key dengan hubungan XOR. Bagannya bisa dilihat pada gambar
Pada
gambar tersebut di sebelah kiri adalah chiper teks dan sebelah kanan adalah
round key nya. XOR dilakukan per kolom yaitu kolom-1 chiper teks di XOR dengan
kolom-1 round key dan seterusnya.
2. SUB BYTES
Prinsip
dari Sub Bytes adalah menukar isi matriks/tabel yang ada dengan matriks/tabel
lain yang disebut dengan Rijndael S-Box. Di bawah ini adalah contoh Sub Bytes
dan Rijndael S-Box.
Gambar ilustrasi Sub-Bytes
Pada
ilustrasi Sub Bytes diatas, di sana terdapat nomor kolom dan nomor baris. Seperti
yang telah disebutkan sebelumnya, tiap isi kotak dari blok chiper berisi
informasi dalam bentuk heksadesimal yang terdiri dari dua digit, bisa
angka-angka, angka-huruf, ataupun huruf-angka yang semuanya tercantum dalam
Rijndael S-Box. Langkahnya adalah mengambil salah satu isi kotak matriks,
mencocokkannya dengan digit kiri sebagai baris dan digit kanan sebagai kolom.
Kemudian dengan mengetahui kolom dan baris, kita dapat mengambil sebuah isi
tabel dari Rijndael S-Box. Langkah terakhir adalah mengubah keseluruhan blok
chiper menjadi blok yang baru yang isinya adalah hasil penukaran semua isi blok
dengan isi langkah yang disebutkan sebelumnya.
3. SHIFT ROWS
Shift
Rows seperti namanya adalah sebuah proses yang melakukan shift atau pergeseran
pada setiap elemen blok/tabel yang dilakukan per barisnya. Yaitu baris pertama
tidak dilakukan pergeseran, baris kedua dilakukan pergeseran 1 byte, baris
ketiga dilakukan pergeseran 2 byte, dan baris keempat dilakukan pergeseran 3
byte. Pergeseran tersebut terlihat dalam sebuah blok adalah sebuah pergeseran
tiap elemen ke kiri tergantung berapa byte tergesernya, tiap pergeseran 1 byte
berarti bergeser ke kiri sebanyak satu kali.
4. MIX COLUMNS
Yang
terjadi saat Mix Column adalah mengalikan tiap elemen dari blok chiper dengan
matriks yang ditunjukkan oleh Gambar 11. Tabel sudah ditentukan dan siap pakai.
Pengalian dilakukan seperti perkalian matriks biasa yaitu menggunakan dot
product lalu perkalian keduanya dimasukkan ke dalam sebuah blok chiper baru.
Ilustrasi dalam gambar 12 akan menjelaskan mengenai bagaimana perkalian ini
seharusnya dilakukan. Dengan begitu seluruh rangkaian proses yang terjadi pada
AES telah dijelaskan dan selanjutnya adalah menerangkan mengenai penggunaan
tiap-tiap proses tersebut.
Tabel untuk mix columns
Gambar ilustrasi mix columns
Kembali
melihat diagram yang ditunjukkan oleh Gambar 6. Seperti yang terlihat semua
proses yang telah dijelaskan sebelumnya terdapat pada diagram tersebut. Yang
artinya adalah mulai dari ronde kedua, dilakukan pengulangan terus menerus
dengan rangkaian proses Sub Bytes, Shift Rows, Mix Columns, dan Add Round Key,
setelah itu hasil dari ronde tersebut akan digunakan pada ronde berikutnya
dengan metode yang sama. Namun pada ronde kesepuluh, Proses Mix Columns tidak
dilakukan, dengan kata lain urutan proses yang dilakukan adalah Sub Bytes,
Shift Rows, dan Add Round Key, hasil dari Add Round Key inilah yang dijadikan
sebagai chiperteks dari AES.
Dengan
mengetahui semua proses yang ada pada AES, maka kita dapat menggunakannya dalam
berbagai contoh kasus yang muncul di kehidupan sehari-hari.
Implementasi Advanced Encryption Standard
AES
atau algoritma Rijndael sebagai salah satu algoritma yang penting tentu
memiliki berbagai kegunaan yang sudah diaplikasikan atau diimplementasikan di
kehidupan sehari-hari yang tentu saja membutuhkan suatu perlindungan atau
penyembunyian informasi di dalam prosesnya.
Salah
satu contoh penggunaan AES adalah pada kompresi 7-Zip. Salah satu proses di
dalam 7-Zip adalah mengenkripsi isi dari data dengan menggunakan metode
AES-256. Yang kuncinya dihasilkan melalui fungsi Hash. Perpaduan ini membuat
suatu informasi yang terlindungi dan tidak mudah rusak terutama oleh virus yang
merupakan salah satu musuh besar dalam dunia komputer dan informasi karena
sifatnya adalah merusak sebuah data.
Hal
yang serupa digunakan pada WinZip sebagai salah satu perangkat lunak
yang digunakan untuk melakukan kompresi. Tapi prinsip kompresi pun tidak sama
dengan prinsip enkripsi. Karena kompresi adalah mengecilkan ukuran suatu data,
biasanya digunakan kode Huffman dalam melakukan hal tersebut. Contoh penggunaan
lain adalah pada perangkat lunak DiskCryptor yang kegunaannya adalah
mengenkripsi keseluruhan isi disk/partisi pada sebuah komputer. Metode enkripsi
yang ditawarkan adalah menggunakan AES-256, Twofish, atau Serpent.
Belajar implementasi algoritma aes di php yuk langsung ke https://www.kodefan.com/implementasi-algoritma-aes-128-dan-rc4-di-php/
BalasHapus