Serpent (šifra)

Schéma algoritmu šifry Serpent

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.

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

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

Média použitá na této stránce

Serpent-linearfunction.png
Autor: Dake, Licence: CC BY-SA 3.0
Serpent cipher — schema of the linear function designed to provide a faster avalanche effect.