Serpent - operacja bitslice w S-Box

0

Czy dobrze zrozumiałem operację na S-Box w Serpent? Poniżej opis jak to rozumiem:
Weźmy za przykład S0. Tablica dla S0 to [3, 8, 15, 1, 10, 6, 5, 11, 14, 13, 4, 2, 7, 0 , 9, 12]. Na wejściu podajemy cztery słowa 32 bitowe. I teraz mamy 32 rundy. W pierwszej rundzie bierzemy bit 0 słowa 0, bit 1 słowa 1, bit 2 słowa 2 i bit 3 słowa 3. Te cztery bity dają wartość powiedzmy, że 10. Podstawiamy to do tablicy pod indeks i mamy 4. W miejsca tych bitów podstawiamy 0 dla słowa 0, 1 dla słowa 1, 0 dla słów 2 i 3. Przechodzimy do następnej rundy, znów podstawiamy bity według wzoru bit(i) dla słowa 0, bit(i + 1) dla 1, bit(i + 2) dla 2 oraz bit(i + 3). Oprócz tego dla i + x wykonujemy mod 32.

Czy może inaczej to jest? W zerowej rundzie bierzemy zerowe bity poszczególnych słów i przepuszczamy przez S-Box, w pierwszej, pierwsze bity itd.

user image

0

Tu masz ładnie opisane: http://www.cl.cam.ac.uk/~rja14/Papers/serpent.pdf

Czyli S-boxem zastępujesz wszystkie słowa, a następnie przechodzisz do następnej rundy (wyjątkiem jest ostatnia).

1 użytkowników online, w tym zalogowanych: 0, gości: 1