Pendahuluan ADVANCED ENCRYPTION STANDARD AES: RIJNDAEL

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