Twofish

V kryptografii je Twofish šifrovacím algoritmem navrženým Brucem Schneirem. Jedná se o symetrickou blokovou šifru klíče, což znamená, že pro šifrování i dešifrování se používá jediný klíč. Twofish má velikost bloku 128 bitů a velikost klíče až 256 bitů.

Twofish souvisí s dřívější blokovou šifrou Blowfish, což je 64bitová hodinová šifra, která používá délku klíče pohybující se mezi 32 a 448 bity vyvinutou také Brucem Schneirem. Twofish také souvisí s Advanced Encryption Standard (AES), 128bitovou blokovou šifrou, kterou vláda Spojených států přijala jako specifikaci pro šifrování elektronických dat americkým Národním institutem pro standardy a technologie v roce 2001. Zatímco Twofish byl finalistou aby se stal průmyslovým standardem pro šifrování, byl porazen AES kvůli pomalejší rychlosti Twofish.


Funkce Twofish

Twofish má charakteristické rysy, které ho odlišují od ostatních kryptografických protokolů, včetně použití předem vypočítaného, ​​na klíči závislého S-boxu (substituční box), který je základní součástí jakéhokoli algoritmu symetrického klíče, který provádí substituci. S-box slouží k maskování vztahu mezi klíčem a šifrovacím textem. Kvůli předpočtu je Twofish zranitelný vůči útokům postranního kanálu.

Šifrovací algoritmus používá matici oddělitelnou od maximální vzdálenosti nebo matici, která představuje funkci s určitými vlastnostmi difúze, které mají užitečné aplikace v kryptografii. Twofish má strukturu Fiestel, což je symetrická struktura používaná při konstrukci blokových šifer. Stejná struktura se používá také v Data Encryption Standard (DES), vlivném standardu šifrování, který byl populární v 1970. letech.

Twofish nebyl patentován a referenční implementace byla umístěna do veřejné sféry, což znamená, že algoritmus je k dispozici komukoli bez omezení. Twofish má méně rozšířené použití než Blowfish.