Serpent je symetrická bloková šifra navržená Rossem J. Andersonem, Elim Bihamem a Larsem Knudsenem. Skončila na druhém místě v soutěži o standard AES.

Schéma algoritmu šifry Serpent

Stejně jako ostatní kandidáti o AES má Serpent velikost bloku 128 bitů a podporuje velikost klíče 128, 192 nebo 256 bitů. Design je substitučně-permutační síť (anglicky substitution–permutation network; SPN) s 32 rundami, které působí na blok o čtyřech 32bitových počítačových slovech. Každá runda použije jeden z osmi 4bitových S-boxů 32krát paralelně. Algoritmus byl navržen tak, aby všechny operace mohly být provedeny paralelně pomocí 32 1bitových úseků, tím se maximalizuje paralelismus.

Serpent má více konzervativní přístup k bezpečnosti než ostatní finalisti AES, kteří se rozhodli pro větší bezpečnostní rozpětí. Designéři považují 16 rund za dostatečných před známými typy útoků, ale je uvedeno 32 rund jako pojištění proti budoucím objevům v kryptoanalýze.

Šifra nebyla patentována a licenčně je volným dílem. Každý má tedy možnost začlenit Serpent do svého softwaru (nebo hardwarových implementací) bez placení licenčních poplatků.

Reference

editovat

V tomto článku byl použit překlad textu z článku Serpent (cipher) na anglické Wikipedii.