Enkripsi Proses Enkripsi dan Dekripsi

c. Proses Enkripsi dan Dekripsi

1. Enkripsi

Proses enkripsi pada algoritma AES terdiri dari 4 jenis transformasi bytes, yaitu SubBytes, ShiftRows, Mixcolumns, dan AddRoundKey. Pada awal proses enkripsi, input yang telah dikopikan ke dalam state mengalami transformasi byte AddRoundKey. Setelah itu, state mengalami transformasi SubBytes, ShiftRows, MixColumns, dan AddRoundKey secara berulang-ulang sebanyak Nr. Proses ini dalam algoritma AES disebut sebagai round function. Round yang terakhir agak berbeda dengan round-round sebelumnya dimana pada round terakhir, state tidak mengalami transformasi MixColumns. Proses enkripsi dapat dilihat pada Gambar 2.2 berikut : Gambar 2.2 Proses Enkripsi Garis besar proses enkripsi yang terdapat pada algoritma Rijndael adalah sebagai berikut : a. SubByte SubBytes merupakan transformasi byte yang setiap elemen pada state akan dipetakan dengan menggunakan sebuah tabel substitusi S-Box. Cara pensubstitusian adalah sebagai berikut : jika setiap byte pada array state S[r,c]=xy, xy adalah digit heksadesimal dari nilai S[r,c], maka nilai subtitusinya dinyatakan dengan S’[r,c], adalah elemen di dalam S-Box yang merupakan baris x dengan kolom y, yang dapat dilihat pada Gambar 2.3 berikut. Gambar 2.3 Transformasi SubByte dengan S-Box Gambar 2.4 berikut menunjukkan contoh dari proses subbyte dengan s-box. Gambar 2.4 Proses SubByte b. ShiftRows Transformasi ShiftRows melakukan pergeseran secara wrapping pada 3 tiga baris terakhir dari array state. Jumlah pergesaran bergantung pada nilai baris r, baris r = 1 digeser sejauh 1 byte, baris r = 2 digeser sejauh 2 byte, dan baris r = 3 digeser sejauh 3 byte. Baris r = 0 tidak digeser, yang ditunjukkan pada Gambar 2.5 berikut ini. Gambar 2.5 Transformasi Shiftrows Berikut ini merupakan contoh dari proses transformasi shiftrows pada array state, seperti pada Gambar 2.6. Gambar 2.6 Proses Transformasi Shiftrows c. MixColums Transformasi MixColums mengalikan setiap kolom dari array state dengan polinom axmodx 4 +1. Setiap kolom diperlakukan sebagai polinom 4 suku GF 2 8 . Polinom ax yang ditetapkan adalah : ax = {03}x 3 + {01}x 2 + {01}x + {02}. Transformasi ini dinyatakan sebagai perkalian matrik : S’x = ax . sx } 02 { } 03 { } 03 { } 02 { } 03 { } 02 { } 03 { } 02 { , 3 , 2 , 1 , , 3 , 3 , 2 , 1 , , 2 , 3 , 2 , 1 , , 1 , 3 , 2 , 1 , , c c c c c c c c c c c c c c c c c c c o c s s s s s s s s s s s s s s s s s s s s • ⊕ ⊕ ⊕ • = • ⊕ • ⊕ ⊕ = ⊕ • ⊕ • ⊕ = ⊕ ⊕ • ⊕ • = Gambar 2.7 Berikut ini menunjukkan proses dari operasi mixcolums. Gambar 2.7 Proses Operasi MixColums d. AddRoundKey Proses AddRoundKey ini melakukan operasi XOR terhadap sebuah Round Key dengan array state, dan hasilnya disimpan di array state, seperti terlihat pada Gambar 2.8 berikut Gambar 2.8 Proses AddRoundKey Berikut ini merupakan proses enkripsi secara lengkap dari round ke-1 sampai dengan round ke-10 untuk 1 buah matriks State, teks berita 128 bit, seperti pada Gambar 2.9 berikut. Gambar 2.9 Proses enkripsi algoritma Rijndael

2. Dekripsi