![]() 29
Misalkan, serpent[.]
adalah array yang mengandung 4 bit
terakhir pada
masing-
masing
karakter
dari
16
karakter
ASCII sebagai
berikut
sboxesforserpent.
Kemudian
sbox[.][.]
merupaka
array
dengan
ukuran
32x16,
mengandung
32
baris
dari
8
S-Box
DES, dimana
sbox[r][.]
melambangkan baris ke-r.
fungsi swapentries(., .)
berguna
untuk
menukar kedua
nilai
yang dikirimkannya. Maka algoritma
untuk
mendapatkan
S-
Box pada Serpent dapat dijelaskan dengan pseudocode sebagai berikut:
Modul S-BoxGenerator
Index = 0
ULANG
Current_SBox = Index modulo 32
MULAI i BERNILAI 0 HINGGA 15 LAKUKAN
j = SBox[(Current_Sbox + 1) modulo 32][i]
Tukar
SBox[Current_SBox][i]
Dengan
SBox[Current_SBox][j]
AKHIR MULAI
JIKA SBox[Current_SBox][.](Memenuhi Syarat) MAKA
Simpan Sbox[Current_SBox][.]
AKHIR JIKA
Index = Index + 1
HINGGA 8 S-Box Selesai dibuat
AKHIR MODUL S-BoxGenerator
Sumber: A Proposal for the AES (2007, Anderson-Biham-Knudsen)
Algoritma kriptografi Serpent AES
memiliki 32 tahap yang disebut Substitution-
Permutation Network. Plaintext akan
menjadi data awal
B
0
,
dari data-data
B
0
hingga
B
32
yang
akan
digunakan
untuk
32
tahap,
dimana
masing-masing tahap
terdapat
operasi-
operasi sebagai berikut:
Key Mixing
:
Pada
masing-masing
tahap,
sebuah
subkey
berukuran 128 bit K
i
di XOR dengan data B
i
.
S-Box
:
mengkombinasikan 128 bit
input dengan key, yang
terdiri dari 4 buah
variabel
yang masing-masing 32
bit. S-Box tersebut diimplementasikan sebagai
|