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