Quiz 12 Kriptografi dan Steganografi

Rijndael

• Seperti pada DESRijndael 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[rc] = xy, yang dalam hal ini xy adalah digit heksadesimal dari nilai S[rc], maka nilai substitusinya, dinyatakan dengan S’[rc], 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