Quiz 12 Kriptografi dan Steganografi
Rijndael
• Seperti pada DES, Rijndael menggunakan substitusi dan permutasi, dan
sejumlah putaran (cipher berulang) – setiap
putaran mengunakan kunci internal yang berbeda (kunci setiap putaran
disebut round key). Tetapi tidak seperti DES
yang berorientasi bit, Rijndael beroperasi
dalam orientasi byte (untuk memangkuskan
implementasi algoritma ke dalam software dan hardware).
• Garis besar Algoritma Rijndael yang
beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai berikut (di
luar proses pembangkitan round key):
1. AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap
ini disebut juga
initial round.
2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap
putaran adalah:
a. SubBytes: substitusi byte dengan menggunakan tabel substitusi (S-box).
b. ShiftRows: pergeseran baris-baris array state secara
wrapping.
c. MixColumns: mengacak data di masing-masing kolom array state.
d. AddRoundKey: melakukan XOR antara state
sekarang round key.
3. Final round: proses untuk putaran terakhir
• Algoritma Rijndael mempunyai 3 parameter:
1. plaintext : array yang berukuran 16-byte, yang berisi data masukan.
2. ciphertext : array yang berukuran 16-byte, yang berisi hasil enkripsi.
3. key : array yang berukuran 16-byte, yang berisi kunci ciphering (disebut juga cipher key).
Transformasi SubBytes()
• Transformasi SubBytes() memetakan
setiap byte dari array state dengan
menggunakan tabel substiusi S-box. Tidak
seperti DES yang mempunyai S-box berbeda
pada setiap putaran, AES hanya
mempunyai satu buah S-box.
Tabel S-box yang
digunakan adalah:
• Cara pensubstitusian adalah sebagai berikut: untuk setiap byte pada array state, misalkan S[r, c] = xy, yang dalam hal ini 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.
Transformasi ShiftRows()
• Transformasi ShiftRows() melakukan pergeseran secara wrapping (siklik) pada 3 baris terakhir dari array state.
Transformasi MixColumns()
• Transformasi MixColumns() mengalikan
setiap kolom dari
array state dengan
polinom a(x) mod (x4 + 1). Setiap
kolom diperlakukan sebagai polinom 4-suku pada GF(28).
a(x)
yang ditetapkan adalah:
a(x) = {03}x3 + {01}x2 + {01}x + {02}
Transformasi AddRoundKey()
• Transformasi ini melakukan operasi XOR terhadap sebuah round key dengan array state, dan
hasilnya disimpan di array state.
Comments
Post a Comment