Twofish: bloková symetrická šifra 128–256 bitů, finalista AES

Twofish – rychlá a otevřená bloková šifra 128–256 bitů, finalista AES. Silné S‑boxy závislé na klíči, bez patentu, spolehlivé řešení pro bezpečné šifrování dat.

Autor: Leandro Alegsa

V kryptografii je Twofish bloková šifra se symetrickým klíčem o velikosti bloku 128 bitů a délce klíče až 256 bitů. Twofish podporuje konkrétně klíče o délce 128, 192 a 256 bitů a používá 16 kol šifrování.

Historie a soutěž AES

V roce 1997 vyhlásil NIST soutěž o nástupce DES pod názvem AES. Twofish byl jedním z pěti finalistů soutěže Advanced Encryption Standard, ale nebyl vybrán jako standard. Během soutěže a po ní prošel Twofish rozsáhlou veřejnou kryptoanalýzou.

Návrh a hlavní vlastnosti

Twofish je příbuzný starší blokové šifře Blowfish, ale obsahuje řadu nových konstrukčních prvků navržených pro vyšší odolnost a efektivitu. Mezi hlavní konstrukční body patří:

  • Feistelova struktura: Twofish používá částečně Feistelovu strukturu podobnou té z DES, zpracovává 128bitový blok přes 16 kol.
  • S-boxy závislé na klíči: S-boxy nejsou pevné, ale jsou předem vypočtené z klíče, takže se chování šifry mění s každým klíčem.
  • Whitening: Před a po kolech se provádí XOR s podklíči (tzv. input/output whitening), což zvyšuje odolnost proti některým typům útoků.
  • Pseudo-Hadamardova transformace (PHT): používá se v kombinaci se subfunkcemi pro šíření bitů (diffusion), prvek převzatý z rodiny šifer SAFER.
  • Matice MDS a Reed–Solomon kód: při konstrukci S-boxů a při klíčovém plánu se využívá MDS matice a technik podobných Reed–Solomonovým kódům pro zajištění silné difúze mezi bajty.

Klíčový plán je poměrně složitý: klíč se rozdělí na části, z nichž některé slouží k přípravě S-boxů a jiné k samotnému šifrování (subklíče a whitening). Celkem se zpravidla vygeneruje 40 32bitových podklíčů (včetně whitening klíčů a dvojic podklíčů pro každé kolo).

Bezpečnost a analýza

Twofish byl během AES soutěže a i po ní důkladně analyzován akademickou komunitou. Základní body bezpečnostního hodnocení:

  • Na plnou 16kolovou verzi Twofishu nejsou známy prakticky využitelné útoky, které by byly efektivnější než hrubá síla (brute force) pro doporučené délky klíčů (zejména 128/192/256 bitů).
  • Existují teoretické útoky a analýzy, které útočí na zredukovaný počet kol nebo používají speciální modely (např. diferenciální a lineární analýzy, některé sofistikované strukturované útoky), ale tyto útoky neohrožují plnou verzi v praxi.
  • Díky klíčově závislým S-boxům a dalším konstrukčním prvkům je Twofish odolný proti širokému spektru známých tříd útoků, avšak jako u každé kryptografické konstrukce zůstává důležitá další veřejná analýza a revize.

Výkon a implementace

Na většině softwarových platforem je Twofish o něco pomalejší než Rijndael (zvolený algoritmus pro Advanced Encryption Standard) pro 128bitové klíče, ale o něco rychlejší pro 256bitové klíče v některých implementacích. Výkon závisí na implementaci (tabulkové lookupy vs. bitově orientované operace), na procesorové architektuře a na tom, zda jsou využity optimalizace pro konkrétní platformu.

Twofish je efektivní v softwaru díky možnosti použít předpočítané tabulky S-boxů, což zrychluje šifrovací a dešifrovací operace, ale na moderních procesorech s hardwarovou akcelerací AES může být Rijndael/AES výrazně rychlejší.

Implementace v praxi a dostupnost

Algoritmus Twofish může používat kdokoli bez jakýchkoli omezení. Šifra Twofish nebyla patentována a softwarový příklad její specifikace byl zveřejněn. Díky tomu existují otevřené implementace v různých programových knihovnách a projektech. Twofish se objevil v některých aplikacích pro šifrování disku a souborů (např. mezi softwary pro šifrování disků byl historicky podporován v projektech jako TrueCrypt/VeraCrypt) a je součástí řady kryptografických knihoven a studijních implementací.

Závěr

Twofish je silná a flexibilní symetrická bloková šifra navržená s důrazem na bezpečnost a univerzálnost. Ačkoli nebyla vybrána jako AES, zůstává významným návrhem s otevřenou specifikací, bez patentových omezení a s široce dostupnými implementacemi a analýzami. Pro většinu moderních aplikací je dnes AES častější volbou z důvodu hardwarové podpory a konzistence standardů, ale Twofish může být vhodnou alternativou tam, kde je žádoucí jeho specifické vlastnosti či nezávislost na AES.

Kryptoanalýza

Od roku 2008 je nejlepší publikovanou kryptoanalýzou blokové šifry Twofish zkrácená diferenciální kryptoanalýza plné 16kolové verze. Článek tvrdí, že pravděpodobnost útoků zkrácenými diferencemi je 2-57,3 na blok a že k nalezení dobré dvojice zkrácených diferencí je třeba přibližně 251 vybraných otevřených textů (32 PiB dat).

Bruce Schneier ve svém blogu z roku 2005 odpovídá, že tento článek nepředstavuje úplný kryptoanalytický útok, ale pouze některé předpokládané rozdílové charakteristiky: "Ale ani z teoretického hlediska není Twofish ani zdaleka prolomen. Od roku 2000, kdy byly tyto výsledky publikovány, nedošlo k žádnému rozšíření".

Související stránky

Otázky a odpovědi

Otázka: Co je to Twofish?


Odpověď: Twofish je bloková šifra se symetrickým klíčem o velikosti bloku 128 bitů a délce klíče až 256 bitů.

Otázka: Jak Twofish souvisí s dřívější blokovou šifrou Blowfish?


Odpověď: Hlavními rysy šifry Twofish je použití předem vypočtených S-boxů závislých na klíči a poměrně složitý klíčový plán. Jedna polovina n-bitového klíče se používá jako vlastní šifrovací klíč a druhá polovina n-bitového klíče se používá k modifikaci šifrovacího algoritmu (S-boxy závislé na klíči).

Otázka: Byl Twofish vybrán jako pokročilý šifrovací standard?


Odpověď: Ne, v roce 1997 vyhlásil NIST soutěž na výběr nástupce DES, který by byl znám jako AES, avšak Twofish nebyl jako standard vybrán.

Otázka: Jaké prvky používá Twofish z jiných návrhů?


Odpověď: Twofish využívá některé prvky z jiných návrhů, například pseudo-Hadamardovu transformaci (PHT) z rodiny šifer SAFER.

Otázka: Používá Feistelovu strukturu jako DES?


Odpověď: Ano, používá Feistelovu strukturu jako DES.

Otázka: Je rychlejší než Rijndael pro 128bitové klíče?


Odpověď: Na většině softwarových platforem je Twofish pro 128bitové klíče o něco pomalejší než Rijndael.

Otázka: Je rychlejší než Rijndael pro 256bitové klíče?


Odpověď: Pro 256bitové klíče je o něco rychlejší než Rijndael.


Vyhledávání
AlegsaOnline.com - 2020 / 2025 - License CC3