Twofish — definícia symetrickej blokovej šifry (128–256 bitov)

Twofish: bezpečná symetrická bloková šifra (128–256 bitov), finalistka AES, s kľúčovo závislými S-boxmi, zložitým kľúčovým plánom a otvorenou, nepatentovanou špecifikáciou.

Autor: Leandro Alegsa

V kryptografii je Twofish bloková šifra so symetrickým kľúčom, ktorá pracuje s veľkosťou bloku 128 bitov a podporuje dĺžky kľúča až do 256 bitov (bežne používané varianty: 128, 192 a 256 bitov).

V roku 1997 vyhlásil NIST súťaž na výber nástupcu DES pod názvom AES. Twofish bol jedným z piatich finalistov súťaže Advanced Encryption Standard, ale nakoniec nebol vybraný ako štandard (víťazom sa stal Rijndael, neskôr štandardizovaný ako AES).

Krátky prehľad návrhu

Twofish je príbuzný s predchádzajúcou blokovou šifrou Blowfish, ale obsahuje viacero moderných konštrukčných prvkov. Základné charakteristiky:

  • Architektúra: 16-kolová Feistelova štruktúra (podobne ako DES), s použitím key whitening (bielenia kľúčom) na vstupe a výstupe.
  • Kľúčovo závislé S-boxy: Twofish používa vopred vypočítané, ale od kľúča závislé S-boxy, čo sťažuje analýzu a útoky, ktoré predpokladajú pevné S-boxy.
  • Miešacie operácie: využíva pseudo-Hadamardovu transformáciu (PHT) a MDS (maximálne vzdialenostnú) matricu pre silné šírenie bitov medzi slovami.
  • Kľúčový plán: relatívne komplexný mechanizmus generovania podkľúčov a S-boxov z pôvodného kľúča, pričom jedna časť kľúča sa priamo používa na šifrovanie a druhá časť modifikuje vnútorné operácie (S-boxy a ďalšie konštanty).

Technické detaily (stručne)

Pri návrhu Twofish boli použité viaceré osvedčené prvky z iných šifier: PHT z rodiny SAFER, MDS matice a lineárne transformácie na dosiahnutie silnej difúzie, a kľúčovo závislé S-boxy, ktoré zvyšujú odolnosť proti klasickým analýzam. Podkľúče a S-boxy sa generujú z pôvodného kľúča pomocou viacnásobných operácií, pričom návrh obsahuje opatrenia umožňujúce efektívnu implementáciu (predpočítané tabuľky, paralelizovateľné operácie).

Bezpečnosť a kryptoanalýza

Twofish bol dôkladne analyzovaný počas súťaže AES a aj po nej. K dnešnému dňu neexistuje známy praktický útok, ktorý by prelomením celej 16-kolovej verzie Twofish bol rýchlejší než hrubou silou pri odporúčanej dĺžke kľúča (najmä pri 256-bitovom kľúči). Väčšina publikovaných útokov sa týka redukovaného počtu kôl alebo sú teoretické (napr. niektoré related-key útoky alebo útoky na znížený počet kôl).

Napísané analýzy ukázali, že Twofish má silné bezpečnostné vlastnosti, hoci v praxi sa ako štandard pre AES uprednostnil Rijndael (AES). Ako pri každej šifre, bezpečnosť v reálnych aplikáciách závisí aj od správnej implementácie a obrany proti bočným kanálovým útokom (napr. časovým útokom a útokom založeným na spotrebe energie).

Výkon a implementácie

Na väčšine softvérových platforiem je Twofish o niečo pomalší než Rijndael (zvolený algoritmus pre Advanced Encryption Standard) pri 128-bitových kľúčoch, avšak relatívne rýchlejší pri 256-bitových kľúčoch v niektorých implementáciách. Výkon závisí od schopnosti implementácie využiť predpočítané tabuľky a od architektúry CPU (napr. 32-bit vs 64-bit), resp. podpory špeciálnych inštrukcií.

Twofish bol implementovaný v mnohých jazykoch a knižniciach (C, asm, Java, atď.) a je dostupný v otvorených kryptografických knižniciach. Bol použitý ako možnosť v niektorých šifrovacích nástrojoch a diskoch (napr. v projektoch TrueCrypt / VeraCrypt ako jedna z podporovaných šifier).

História a autori

Twofish navrhli Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall a Niels Ferguson. "Rozšírený tím Twofish", ktorý sa zišiel na ďalšiu kryptoanalýzu Twofish a ďalších konkurentov AES, zahŕňal aj Stefana Lucksa, Tadayoshiho Kohna a Mikea Staya.

Licencia a dostupnosť

Algoritmus Twofish je voľne použiteľný bez poplatkov; šifra nebola patentovaná a podrobná špecifikácia i implementačné príklady boli zverejnené. To umožnilo jeho široké nasadenie v otvorenom softvéri a štúdiách. Napriek tomu Twofish nie je tak široko rozšírený ako napríklad Blowfish alebo AES (Rijndael), ktoré majú širšiu priemyselnú adopciu.

Zhrnutie

Twofish je robustná, dobre preskúmaná symetrická bloková šifra s 128-bitovým blokom a kľúčmi až do 256 bitov. Vyznačuje sa kľúčovo závislými S-boxami, PHT a MDS maticami, zložitejším kľúčovým plánom a 16-kolovou Feistelovou štruktúrou. Hoci nebol vybraný ako AES, zostáva hodnotnou voľbou pre aplikácie požadujúce alternatívu k štandardným šifrám, najmä tam, kde sú dôležité otvorené licencie a dôkladná kryptografická analýza.

Kryptoanalýza

Od roku 2008 je najlepšou publikovanou kryptoanalýzou blokovej šifry Twofish skrátená diferenciálna kryptoanalýza jej úplnej 16-kolovej verzie. V článku sa tvrdí, že pravdepodobnosť útokov skrátenými diferenciami je 2 - 57,3 na blok a že na nájdenie dobrej dvojice skrátených diferencií bude potrebných približne 251 vybraných otvorených textov (32 PiB údajov).

Bruce Schneier vo svojom blogu z roku 2005 odpovedá, že tento článok nepredstavuje úplný kryptoanalytický útok, ale len niektoré predpokladané diferenčné charakteristiky: "Ale ani z teoretického hľadiska nie je Twofish ani zďaleka prelomený. Od uverejnenia týchto výsledkov v roku 2000 nedošlo k žiadnemu rozšíreniu".

Súvisiace stránky

Otázky a odpovede

Otázka: Čo je to Twofish?


Odpoveď: Twofish je bloková šifra so symetrickým kľúčom s veľkosťou bloku 128 bitov a dĺžkou kľúča až 256 bitov.

Otázka: Ako súvisí Twofish so staršou blokovou šifrou Blowfish?


Odpoveď: Hlavnými vlastnosťami šifry Twofish je použitie vopred vypočítaných S-boxov závislých od kľúča a pomerne zložitý plán kľúčov. Jedna polovica n-bitového kľúča sa používa ako vlastný šifrovací kľúč a druhá polovica n-bitového kľúča sa používa na modifikáciu šifrovacieho algoritmu (S-boxy závislé od kľúča).

Otázka: Bol Twofish vybraný ako pokročilý šifrovací štandard?


Odpoveď: Nie, v roku 1997 NIST vyhlásil súťaž na výber nástupcu DES, ktorý by bol známy ako AES, avšak Twofish nebol vybraný ako štandard.

Otázka: Aké prvky používa Twofish z iných návrhov?


Odpoveď: Twofish používa niektoré prvky z iných návrhov, napríklad pseudo-Hadamardovu transformáciu (PHT) z rodiny šifier SAFER.

Otázka: Používa Feistelovu štruktúru ako DES?


Odpoveď: Áno, používa Feistelovu štruktúru ako DES.

Otázka: Je rýchlejší ako Rijndael pre 128-bitové kľúče?


Odpoveď: Na väčšine softvérových platforiem je Twofish pre 128-bitové kľúče o niečo pomalší ako Rijndael.

Otázka: Je rýchlejší ako Rijndael pre 256-bitové kľúče?


Odpoveď: Pre 256-bitové kľúče je o niečo rýchlejší ako Rijndael.


Prehľadať
AlegsaOnline.com - 2020 / 2025 - License CC3