Transformasi SubBytes Transformasi ShiftRows Tranformasi MixColumns

AddRoundKey SubBytes ShiftRows MixColumns AddRoundKey SubBytes ShiftRows AddRoundKey Cipher Text Plain Text AddRoundKey InvShiftRows InvSubBytes AddRoundKey InvMixColumns InvShiftRows InvSubBytes AddRoundKey Plain Text Cipher Text Garis besar algoritma Rijndael diperlihatkan pada gambar diagram di bawah ini. Gambar 2.6 Diagram proses enkripsi dan proses dekripsi

1. Transformasi SubBytes

Transformasi SubBytes memetakan setiap byte dari array state dengan menggunakan tabel substitusi S-Box. Tidak seperti DES yang mempunyai S-Box berbeda pada setiap putaran, Rijndael hanya mempunyai satu buah. Tabel yang digunakan adalah: Tabel 2.4 S-Box Rijndael Eko Satria : Studi Algoritma RIJNDAEL Dalam Sistem Keamanan Data, 2009. USU Repository © 2009 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 substitusinya, dinyatakan dengan S’[r,c], adalah elemen di dalam S-Box yang merupakan perpotongan baris x dengan kolom y. Gambar 2.7 Transformasi SubByte dengan S-Box Gambar 2.8 Proses SubBytes Gambar 2.9 Hasil SubBytes Eko Satria : Studi Algoritma RIJNDAEL Dalam Sistem Keamanan Data, 2009. USU Repository © 2009

2. Transformasi ShiftRows

Transformasi ShiftRows melakukan pergeseran secara wrapping pada 3 tiga baris terakhir dari array state. Jumlah pergeseran 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. Gambar 2.10 Transformasi Shiftrows Geser baris ke-1: Hasil pergeseran baris ke-1 dan geser baris ke-2: Hasil pergeseran baris ke-2 dan geser baris ke-3: Eko Satria : Studi Algoritma RIJNDAEL Dalam Sistem Keamanan Data, 2009. USU Repository © 2009 Hasil pergeseran baris ke-2 dan geser baris ke-3: Gambar 2.11 Proses transformasi Shiftrows

3. Tranformasi MixColumns

Transformasi MixColumns mengalikan setiap kolom dari array state dengan polinom axmodx 4 +1. Setiap kolom diperlakukan sebagai polinom 4-suku pada GF2 8 . Polinom ax yang ditetapkan adalah: ax={03}x 3 +{01}x 2 +{01}x+{02} 2.6 Transformasi ini dinyatakan sebagai perkalian matrik: s’x=ax 伊⊗sx 2.7                           =               c c c c c c c c s s s s s s s s , 3 , 2 , 1 , , 3 , 2 , 1 , 02 01 01 03 03 02 01 01 01 03 02 01 01 01 03 02 2.8 } 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 • ⊕ ⊕ ⊕ • = • ⊕ • ⊕ ⊕ = ⊕ • ⊕ • ⊕ = ⊕ ⊕ • ⊕ • = 2.9 Eko Satria : Studi Algoritma RIJNDAEL Dalam Sistem Keamanan Data, 2009. USU Repository © 2009 Gambar 2.12 Hasil dari ShiftRows Gambar 2.13 Operasi MixColumns Gambar 2.14 Hasil keseluruhan MixColumns

4. Transformasi AddRoundKey