Twofish: simetrična 128-bitna blokovna šifra in AES finalist

Twofish — nepatentirana 128-bitna simetrična blokovna šifra, AES finalist. Zanesljiva alternativa Blowfishu z naprednimi ključnimi polji, Feistelovo strukturo in varnostjo.

Avtor: Leandro Alegsa

V kriptografiji je Twofish blokovna šifra s simetričnim ključem z velikostjo bloka 128 bitov in dolžino ključa do 256 bitov. Podpira običajne dolžine ključev 128, 192 in 256 bitov.

Zgodovina in kontekst

Leta 1997 je NIST razpisal natečaj za izbiro naslednika DES-a, imenovanega AES. Twofish je bil med petimi finalisti natečaja Advanced Encryption Standard, vendar ni bil izbran za standard. Čeprav ni postal AES, je Twofish ostal pomemben primer sodobne simetrične kriptografije in je bil podroben predmet javne kriptoanalize.

Zasnova in glavne značilnosti

Twofish je povezan s prejšnjo blokovno šifro Blowfish, vendar prinaša številne novosti in spremembe. Glavne zasnovne značilnosti so:

  • Feistelova struktura: Twofish uporablja 16 rund Feistelovega tipa, podobno kot DES, vendar z drugačno notranjo funkcijo in ključnim razporedom.
  • Ključem odvisne S-polja: uporablja vnaprej izračunana polj S, ki so odvisna od ključa, kar pomeni, da se S-polja izračunajo na podlagi glavnega ključa in nato uporabijo pri šifriranju.
  • Kompleksen razpored ključev: Twofish ima razmeroma zapleten razpored ključev, vključno s tako imenovanimi "whitening" ključi (XOR pred in po rundah) in številnimi podključi za posamezne runde.
  • Transformacije in algebraični gradniki: Twofish uporablja psevdo-Hadamardovo transformacijo (PHT) iz družine šifer SAFER in matriko MDS (Maximum Distance Separable), ki zagotavlja dobro difuzijo. Del funkcije h() vključuje Q-permutacije in MDS, da doseže kombinacijo substitucije in difuzije.
  • Praktična delitev ključa: polovica n-bitnega ključa se uporablja kot dejanski šifrirni ključ, druga polovica pa se uporablja za spreminjanje šifrirnega algoritma (ustvarjanje od ključa odvisnih polj S in podključev).

Algoritmični detajli (na kratko)

Osrednja notranja funkcija (imenovana g ali h, odvisno od predstavitve) vključuje kombinacijo ključem odvisnih S-polj, fikcionalnih Q-permutacij, MDS-matrike in PHT. Podatkovni blok se pred in po rundah "belih" (whitened) z delom izpeljanih ključev, kar poveča odpornost proti nekaterim kriptoanalitičnim tehnikam. Ključna operacija je zasnovana tako, da olajša implementacijo v strojni in programski opremi ter zagotavlja uravnoteženo kombinacijo varnosti in hitrosti.

Varnost in kriptoanaliza

Twofish je bil predmet obsežne javne kriptoanalize tako med samim natečajem AES kot po njem. Do danes za polno 16-rundno različico Twofisha ni znanih praktičnih prelomov, ki bi ogrozili varnost pri pravilni uporabi z močnim ključem. Obstajajo teoretični in izboljšani napadi na zmanjšane različice šifre ali v modelih z relativnimi ključi (related-key attacks), a ti napadi običajno ne vplivajo na pravilno implementirano, polno različico z neodvisnimi ključi.

V praksi velja, da Twofish nudi visoko stopnjo varnosti, primerljivo z ostalimi sodobnimi simetričnimi šiframi, če se uporabljajo ustrezne dolžine ključev in varne metode upravljanja ključev.

Zmogljivost in implementacije

Na večini programskih platform je Twofish pri 128-bitnih ključih nekoliko počasnejši od algoritma Rijndael (izbrani algoritem za Advanced Encryption Standard), pri 256-bitnih ključih pa je v nekaterih implementacijah lahko nekoliko hitrejši, predvsem zaradi razporeditve dela pri izračunu podključev in S-polj. Twofish je primeren tako za programske kot strojne implementacije; nekatere knjižnice in orodja ga podpirajo kot dodatno možnost šifriranja.

Licenca, razpoložljivost in uporaba

Algoritem Twofish lahko uporablja vsakdo brez kakršnih koli omejitev. Šifra Twofish ni bila patentirana, primer programske opreme z njeno specifikacijo pa je bil objavljen v javni domeni. Zaradi tega je primerna za uporabo v odprtokodnih projektih in komercialnih izdelkih brez licenčnin omejitev.

Kljub temu se Twofish ne uporablja tako pogosto kot nekatere druge šifre (na primer Blowfish ali AES), saj je AES postal široko sprejet standard. Vendar Twofish ostaja privlačna izbira tam, kjer želijo razvijalci alternative AES ali dodatno diverzifikacijo šifrirnih algoritmov.

Avtorji in dodatna analiza

Twofish so zasnovali Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall in Niels Ferguson; v "razširjeni ekipi Twofish", ki se je sestala, da bi opravila nadaljnjo kriptoanalizo Twofisha in drugih konkurentov AES, so bili Stefan Lucks, Tadayoshi Kohno in Mike Stay. Po objavi so številni raziskovalci neodvisno preverjali varnost in zmogljivost šifre.

Za odločitev o uporabi Twofisha v konkretni aplikaciji upoštevajte zahteve glede združljivosti, razpoložljivosti implementacij, strojne podpore in politike organizacije glede standardov (npr. prednost uporabi AES tam, kjer je zahtevana skladnost s standardi).

Kriptoanaliza

Od leta 2008 je najboljša objavljena kriptoanaliza blokovne šifre Twofish skrajšana diferencialna kriptoanaliza polne različice s 16 krogi. V članku je navedeno, da je verjetnost napadov s skrajšanimi diferencami 2-57,3 na blok in da je za iskanje dobrega para skrajšanih diferenc potrebnih približno 251 izbranih odprtih besedil (32 PiB podatkov).

Bruce Schneier v zapisu na blogu iz leta 2005 odgovarja, da ta članek ne predstavlja popolnega kriptoanalitičnega napada, temveč le nekaj domnevnih diferencialnih značilnosti: "Toda tudi s teoretičnega vidika Twofish ni niti približno zlomljen. Od objave teh rezultatov leta 2000 ni bilo nobenih razširitev".

Sorodne strani

Vprašanja in odgovori

V: Kaj je Twofish?


O: Twofish je blokovna šifra s simetričnim ključem z velikostjo bloka 128 bitov in dolžino ključa do 256 bitov.

V: Kako je bil Twofish povezan s prejšnjo blokovno šifro Blowfish?


O: Glavni značilnosti šifre Twofish sta uporaba vnaprej izračunanih polj S, odvisnih od ključa, in razmeroma zapleten razpored ključev. Ena polovica n-bitnega ključa se uporablja kot dejanski šifrirni ključ, druga polovica n-bitnega ključa pa se uporablja za spreminjanje šifrirnega algoritma (od ključa odvisna polja S).

V: Ali je bil Twofish izbran kot napredni šifrirni standard?


O: Ne, leta 1997 je NIST razpisal natečaj za izbiro naslednika DES-a, ki bi se imenoval AES, vendar Twofish ni bil izbran za standard.

V: Katere elemente uporablja Twofish iz drugih modelov?


O: Twofish uporablja nekatere elemente iz drugih modelov; na primer psevdo-Hadamardovo transformacijo (PHT) iz družine šifer SAFER.

V: Ali uporablja Feistelovo strukturo kot DES?


O: Da, uporablja Feistelovo strukturo kot DES.

V: Ali je hitrejši od Rijndaela za 128-bitne ključe?


O: Na večini programskih platform je Twofish za 128-bitne ključe nekoliko počasnejši od Rijndaela.

V: Ali je hitrejši od Rijndaela za 256-bitne ključe?


O: Za 256-bitne ključe je nekoliko hitrejši od Rijndaela.


Iskati
AlegsaOnline.com - 2020 / 2025 - License CC3