BAB III ADVANCED ENCRYPTION STANDARD AES: RIJNDAEL
3.1. Pendahuluan
Algoritma AES:Rijndael yang disosialisasikan oleh National Institute of Standards and Technology
NIST pada November 2001 lahir sebagai standar baru enkripsi yang dikembangkan dari algoritma DES Data Encryption
Standard melalui seleksi yang ketat dengan algoritma yang lainnya. AES
yang di cetuskan oleh Dr. Vincent Rijmen dan Dr. Joan Daemen menjadi
pemenang pada saat seleksi algoritma baru untuk menggantikan DES. Alasan utama terpilihnya AES:Rijndael ini bukan karena algoritmanya yang paling
aman dari MARS, RC6, Serpent,Twofish, dan yang lainnya, tetapi AES:Rijndael memiliki keseimbangan antara keamanan serta fleksibelitas
dalam berbagai platform software dan hardware [1] . Evaluasi terhadap
AES:Rijndael dijelaskan sebagai berikut :
1. Belum ada jenis serangan yang telah diketahui dapat memecahkan
Algoritma Rijndael. 2.
Algoritma ini memakai S-Box nonlinier.
3. Rijndael mempunyai suatu security margin yang cukup, tetapi kritik
yang datang pada Rijndael cukup banyak, karena struktur matematikanya yang sederhana bisa memberikan peluang suatu saat
untuk diserang. Dengan kata lain, struktur yang sederhana memberikan Rijndael untuk dikembangkan dalam waktu dekat.
4. Rijndael tidak memakan banyak sumber daya komputasi. Kecepatan
antara dekripsi lebih lama dibandingkan dengan enkripsinya. 5.
AES:Rijndael mendukung perhitungan sub kunci untuk enkripsi. 6.
AES:Rijndael memerlukan satu waktu dalam eksekusi untuk key schedule
dari semua sub kunci dekripsi dengan menggunakan kunci khusus.
Algoritma AES:Rijndael menyandikan data dalam empat langkah dasar
yaitu, langkah SubBytes , langkah ShiftRows, langkah MixColumns, dan AddRoundKey
. Langkah-langkah tersebut dapat dideskripsikan lebih mudah dengan memvisualisasikan data yang akan dikonversi dalam array byte segi
empat. SubBytes diperoleh dengan memakai atau mensubtitusikan ke dalam tabel nonlinear yang dikenal dengan tabel S-Box. ShiftRows dilakukan
melalui permutasi byte-byte data dari kolom array yang berbeda. Langkah MixColumns
menyandikan data menjadi kombinasi linear dari byte-byte data dalam satu kolom array tersebut. AddRoundKey dilakukan dengan operasi
XOR antara data dengan kunci. Keempat langkah tersebut akan memiliki nama khusus dalam algoritma yang diterangkan AES Gambar 3.1.
Plaintext =
MajuTrusKriptoKu
Kunci = ♣♠ ○ ♂♀ ♫
State tranformasi sementara =
ٱŽWg
a
ö§ μڤxΫjỒ’ir
Heksadesimal :
Plaintext = M T K t
π │
Æ
4D616A75547275734B726970746F4B75
a r r o
∩ ?
? ¿
Kunci = j u i K
¥ ·
│
000102030405060708090A0B0C0D0E0F
u s p u
¥ Å
Q
n
plaintext Setelah SubBytes
π │
Æ «
‼ ┘
ٱ
a
ڤ Ồ
? ?
¿ ∩
Å ≤
q
Ž ö x ’
· │
¥ U
í ò
»
W § Ϋ i
n
¥ Å
Q d
a }
g μ j r
Setelah ShiftRows Setelah
MixColumns Setelah AddRoundKey
Gambar3.1. SubBytes , ShiftRows, MixColumns, dan AddRoundKey pada karakter
Algoritma AES adalah cipher block simetrik, kunci rahasia yang sama
digunakan untuk menyandikan data maupun untuk memperoleh kembali data
tersebut dari data tersandinya. Istilah “AES-128” merujuk pada algoritma Rijndael dengan panjang blok block data dan panjang kunci 128 bit. AES
sendiri menggunakan panjang block data 128 bit, tetapi panjang kunci bisa berbeda-beda AES-128, AES-192, dan AES-256. AES-128 melakukan 10
round dengan 9 round utama ditambah sekali final round, berikut Gambar 3.2.
sebagai ilustrasi diagram alir dari algoritma AES-128.
start Round Å 0
AddRoundKey
Round Å Round +1
SubBytes SiftRows
MixColoumns
AddRoundKey
Round = 9
SubBytes SiftRows
AddRoundKey
End start
Round Å 0
AddRoundKey
Round Å Round +1
InvSubBytes InvSiftRows
InvMixColoumns
AddRoundKey
Round = 9
InvSubBytes InvSiftRows
AddRoundKey
End
a b
Gambar3.2. Algoritma a Cipher, dan b Invers Cipher pada AES-128
3.2. Representasi Data AES merepresentasikan data dengan cara urutan byte dan bit 0 atau 1