Algoritma kriptografi bernama Rijndael yang didesain oleh oleh Vincent
Rijmen dan John Daemen asal Belgia keluar sebagai pemenang kontes
algoritma kriptografi pengganti DES yang diadakan oleh NIST (National
Institutes of Standards and Technology) milik pemerintah Amerika Serikat
pada 26 November 2001. Algoritma Rijndael inilah yang 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 :
- AES-128
- AES-192
- 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.
AES memiliki ukuran block yang tetap sepanjang 128 bit dan ukuran kunci
sepanjang 128, 192, atau 256 bit. Tidak seperti Rijndael yang block dan
kuncinya dapat berukuran kelipatan 32 bit dengan ukuran minimum 128 bit
dan maksimum 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 6.
Gambar 6. Diagram AES
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 7.
Gambar 7. Add Round Key
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.
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 8. Rijndael S-Box
Gambar 9. Ilustrasi Sub Bytes
Gambar 9 adalah contoh dari Rijndael S-Box, 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.
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. Ilustrasi dari Tahap ini
diperlihatkan oleh gambar di bawah ini.
Gambar 10. Ilustrasi dari Shift Row
Seperti yang terlihat pada Gambar 10, tahap shift row sama sekali
tidaklah rumit, karena ini adalah proses standar yang hanya berupa
pergeseran. Langkah terakhir adalah Mix Column.
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.
02 01 01 03
03 02 01 01
01 03 02 01
01 01 02 03
Gambar 11. Tabel untuk Mix Columns
Gambar 12. Ilustrasi Mix Columns
DIAGRAM ALIR AES
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. Lebih jelasnya bisa dilihat dengan Gambar 13 dan 14 yang akan
menerangkan mengenai kasus tersebut.
Gambar 13. Ilustrasi Ronde 2 hingga Ronde 6
Gambar 14. Ilustrasi Ronde 7 hingga Ronde 10
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.
Serta di sini tersedia Contoh Program Kriptografi Metode AES dan Source Code Program AES dengan VB.NET 2010
Aplikasi Kriptografi Metode AES
Source code Kriptografi Metode AES
Serta di sini tersedia Contoh Program Kriptografi Metode AES dan Source Code Program AES dengan VB.NET 2010
Aplikasi Kriptografi Metode AES
Source code Kriptografi Metode AES
Sign up here with your email
1 comments:
Write commentsPasswordnya apa yah
Reply