Blowfish

Inden for kryptografi er Blowfish en symmetrisk blokchiffer med nøgle, der blev udviklet i 1993 af Bruce Schneier og siden 1993 er blevet inkluderet i et stort antal krypteringsprodukter. Blowfish har en god krypteringshastighed i software, og indtil 2008 er der ikke fundet nogen kryptoanalytisk angrebsmodel af den. AES-blokchifferalgoritmen har dog nu fået mere opmærksomhed.

Schneier lavede Blowfish som en algoritme til generelle formål, der skulle bruges som erstatning for den gamle DES-algoritme og fjerne problemerne og vanskelighederne ved andre krypteringsalgoritmer. På det tidspunkt, hvor Blowfish blev udgivet, var mange andre algoritmer proprietære eller hemmelige. Schneier har sagt, at "Blowfish er ikke patenteret og vil forblive det i alle lande. Algoritmen er hermed placeret i det offentlige domæne og kan frit anvendes af alle."

De vigtigste træk ved designet er nøgleafhængige S-bokse og en meget kompleks nøgleplan. Blowfish er en af de hurtigste blokchifre, der anvendes af mange mennesker, undtagen når der skiftes nøgle. Hver ny nøgle skal forbehandles, hvilket tager samme tid som at kryptere ca. 4 kilobyte tekst, hvilket er meget langsomt sammenlignet med andre blokchiphers. Dette forhindrer dens anvendelse i visse anvendelser (f.eks. i de mindste indlejrede systemer som de tidlige smartcards), men det er ikke et problem i andre anvendelser. I en af anvendelserne er det faktisk godt: den password-hashing-metode, der anvendes i OpenBSD, bruger en algoritme, der stammer fra Blowfish, som udnytter den langsomme nøgleplan; ideen er, at den ekstra beregningsindsats, der kræves, giver beskyttelse mod ordbogsangreb. Se nøgleforstærkning.

Blowfish har en blokstørrelse på 64 bit og en variabel nøglelængde fra 0 op til 448 bit Det er en 16-rund Feistel-cipher og bruger store nøgleafhængige S-boxes. Den er opbygget på samme måde som CAST-128, der anvender faste S-boxes.

I 1996 fandt Serge Vaudenay et angreb med kendt klartekst, som kræver 28r + 1 kendte klartekster for at blive brudt, hvor r er antallet af runder. Desuden fandt han også en klasse af svage nøgler, som kan opdages og brydes ved samme angreb med kun 24r + 1 kendte klartekster. Dette angreb kan ikke anvendes mod den almindelige Blowfish; det forudsætter kendskab til de nøgleafhængige S-bokse. Vincent Rijmen introducerede i sin ph.d.-afhandling et differentielt angreb af anden orden, som kan bryde fire runder, men ikke mere. Der er stadig ingen kendt måde at bryde alle 16 runder på, bortset fra en brute-force-søgning. I 1996 blev der fundet en fejl i en af de offentliggjorte C-koder, der er blevet udvidet med et tegn.

Der er ingen god kryptoanalyse af den fuldrunde version af Blowfish, der er offentligt kendt indtil 2008. I 2007 bemærkede Bruce Schneier imidlertid, at selv om Blowfish stadig er i brug, anbefalede han, at man i stedet bruger den nye Twofish-algoritme

Relaterede sider

Spørgsmål og svar

Q: Hvad er Blowfish?


A: Blowfish er en symmetrisk blokchiffer med nøgle, der blev skabt i 1993 af Bruce Schneier. Det er siden da blevet inkluderet i mange krypteringsprodukter.

Q: Hvad blev Blowfish lavet til?


Svar: Blowfish blev udviklet som en algoritme til generelle formål for at erstatte den gamle DES-algoritme og for at fjerne problemerne og vanskelighederne ved andre krypteringsalgoritmer.

Spørgsmål: Hvor lang kan nøglelængden være for Blowfish?


A: Nøglelængden for Blowfish kan variere fra 0 op til 448 bit.

Spørgsmål: Hvad er nogle af de særlige kendetegn ved udformningen af Blowfish?


Svar: Nogle af designets kendetegn er nøgleafhængige S-bokse og en meget kompleks nøgleplan.

Spørgsmål: Er der nogen kendt kryptoanalyse af Blowfish i den fuldrunde version af Blowfish?


Svar: I 2008 er der ingen kendte metoder til at bryde de 16 runder ud over en brute-force-søgning.

Spørgsmål: Hvilken type angreb fandt Serge Vaudenay mod Blowfish?


Svar: Serge Vaudenay fandt et angreb med kendt klartekst, som kræver 28r + 1 kendt klartekst for at blive brudt, hvor r er antallet af runder. Han fandt også en klasse af svage nøgler, som kunne opdages og brydes ved samme angreb med kun 24r + 1 kendte klartekster.

Spørgsmål: Anbefaler Bruce Schneier, at man nu bruger Twofish i stedet for Blowfish?


Svar: Ja, Bruce Schneier anbefaler at bruge Twofish i stedet for Blowfish nu på grund af de forbedrede sikkerhedsforanstaltninger i forhold til ældre algoritmer som DES eller endda nyere algoritmer som AES.

AlegsaOnline.com - 2020 / 2023 - License CC3