Twofish | kryptografi
Inden for kryptografi er Twofish en symmetrisk nøgleblokchiffer med en blokstørrelse på 128 bit og en nøglelængde på op til 256 bit.
I 1997 annoncerede NIST en konkurrence om at vælge en efterfølger til DES, der skulle kaldes AES, og Twofish var en af de fem finalister i konkurrencen om Advanced Encryption Standard, men blev ikke valgt som standard.
Twofish er beslægtet med den tidligere blokchiffer Blowfish. Twofishs vigtigste kendetegn er brugen af forudberegnede nøgleafhængige S-bokse og en relativt kompleks nøgleplan. Den ene halvdel af en n-bits nøgle bruges som den egentlige krypteringsnøgle, og den anden halvdel af n-bits nøglen bruges til at ændre krypteringsalgoritmen (nøgleafhængige S-bokse). Twofish anvender nogle elementer fra andre konstruktioner, f.eks. pseudo-Hadamard-transformationen (PHT) fra SAFER-familien af krypteringssystemer. Twofish anvender den samme Feistel-struktur som DES.
På de fleste softwareplatforme er Twofish en smule langsommere end Rijndael (den valgte algoritme for Advanced Encryption Standard) for 128-bit nøgler, men noget hurtigere for 256-bit nøgler.
Skabere
Twofish blev designet af Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall og Niels Ferguson; det "udvidede Twofish-team", der mødtes for at foretage yderligere kryptoanalyse af Twofish og andre AES-konkurrenter, omfattede Stefan Lucks, Tadayoshi Kohno og Mike Stay.
Twofish-algoritmen er gratis for alle at bruge uden nogen som helst begrænsninger. Twofish-chifringen er ikke blevet patenteret, og softwareeksemplet på specifikationen er blevet lagt i det offentlige domæne. Twofish er dog ikke meget udbredt som Blowfish, der har været tilgængelig i længere tid.
Kryptoanalyse
I 2008 var den bedste offentliggjorte kryptoanalyse af Twofish-blokchifringen en afkortet differentialkryptoanalyse af den fulde 16-runde-version. I artiklen hævdes det, at sandsynligheden for angreb med afkortede differentialer er 2-57.3 pr. blok, og at det vil kræve ca. 251 udvalgte klartekster (32 PiB data) for at finde et godt par af afkortede differentialer.
Bruce Schneier svarer i et blogindlæg fra 2005, at dette papir ikke præsenterer et komplet kryptoanalytisk angreb, men kun nogle formodede differentielle egenskaber: "Men selv ud fra et teoretisk perspektiv er Twofish ikke engang i nærheden af at være brudt. Der er ikke sket nogen udvidelser af disse resultater, siden de blev offentliggjort" i 2000.
Yderligere læsning
- Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson (1998-06-15). "The Twofish Encryption Algorithm" (PDF/PostScript). Hentet 2007-03-04.
{{cite journal}}
: Cite journal requires|journal=
(help)CS1 maint: multiple names: authors list (link) - Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson (1999-03-22). Twofish-krypteringsalgoritmen: A 128-Bit Block Cipher: A 128-Bit Block Cipher. New York City: John Wiley & Sons. ISBN 0-471-35381-7.
{{cite book}}
: CS1 maint: flere navne: forfatterliste (link)
Spørgsmål og svar
Spørgsmål: Hvad er Twofish?
A: Twofish er en symmetrisk nøgleblokchiffer med en blokstørrelse på 128 bit og en nøglelængde på op til 256 bit.
Spørgsmål: Hvordan var Twofish beslægtet med den tidligere blokchiffer Blowfish?
Svar: Twofishs vigtigste kendetegn er brugen af forudberegnede nøgleafhængige S-bokse og en relativt kompleks nøgleplan. Den ene halvdel af en n-bits nøgle bruges som den egentlige krypteringsnøgle, og den anden halvdel af n-bits nøglen bruges til at ændre krypteringsalgoritmen (nøgleafhængige S-bokse).
Spørgsmål: Blev Twofish valgt som en avanceret krypteringsstandard?
Svar: Nej, i 1997 udskrev NIST en konkurrence om at vælge en efterfølger til DES, som skulle kaldes AES, men Twofish blev ikke valgt som standard.
Spørgsmål: Hvilke elementer bruger Twofish fra andre designs?
A: Twofish anvender nogle elementer fra andre konstruktioner, f.eks. pseudo-Hadamard-transformationen (PHT) fra SAFER-familien af krypteringssystemer.
Spørgsmål: Bruger den Feistel-struktur ligesom DES?
Svar: Ja, den anvender Feistel-struktur ligesom DES.
Spørgsmål: Er den hurtigere end Rijndael for 128 bit-nøgler?
Svar: På de fleste softwareplatforme er Twofish lidt langsommere end Rijndael for 128 bit-nøgler.
Spørgsmål: Er den hurtigere end Rijndael til 256 bit-nøgler?
Svar: Den er noget hurtigere end Rijndael for 256 bit-nøgler.