Blowfish symmetrisk krypteringsalgoritme

Puffer er en symmetrisk krypteringsalgoritme, eller med andre ord, en matematisk formel som bruker den samme hemmelige nøkkel både for å kryptere og dekryptere meldinger. Blowfish er designet av en av verdens ledende kryptografer, Bruce Schneier, i 1993 som et alternativ til eksisterende, men mindre sikker, algoritmer som Data Encryption Standard (DES).

Historie

Bruce Schneier spesielt utviklet Blowfish algoritmen som en ulisensiert, uncopyrighted alternativ til DES og først presenterte det på Cambridge Algoritmer Workshop i 1994. Siden den gang, Blowfish har blitt grundig testet av kryptografisk samfunnet og funnet å være rimelig sikker.

Block Cipher

Puffer er det som er kjent som en 64-bits blokk-kodenøkkel, noe som betyr at algoritmen og krypteringsnøkkelen blir tilført en datablokk 64 bits, eller 8 bytes, lang, snarere enn enkeltbiter. Hver fast lengde blokk av ukrypterte data, kjent som klartekst, transformeres inn i en blokk av krypterte data, eller krypterte teksten, med samme lengde. Den blokkstørrelse 64-bit er kort av moderne standarder, og mens Blowfish algoritmen er helt tilstrekkelig for vanlige forbrukerprogrammer, for eksempel e-post, det er mindre egnet for kryptering av store datamengder, slik som de møtte i data arkivering.

krypteringsnøkkel

The Blowfish symmetrisk krypteringsalgoritme bruker en variabel lengde krypteringsnøkkel, som kan variere i lengde for 32 biter til 448 biter, med en standard på 128 bit. Jo lengre krypteringsnøkkelen, jo høyere antall mulige kombinasjoner, og jo sterkere kryptering. The Blowfish algoritmen faktisk består av to deler: en viktig utvidelse del, der krypteringsnøkkelen blir konvertert til en rekke undernøkler og datakryptering del. I motsetning til dette, benytter DES en 64-bits nøkkel, og bare 56 biter blir faktisk tilfeldig generert og anvendt av krypteringsalgoritmen; de resterende 8 bits benyttes for feilretting.

Operasjon

Blåsefisken algoritmen utfører 16 iterasjoner, eller runder, som hver består av en permutasjon avhengig av krypteringsnøkkelen, og en substitusjons avhengig av krypteringsnøkkelen og dataene. Hver operasjon er en logisk EXCLUSIVE OR (XOR) - som returnerer true hvis heller, men ikke begge, av sine operander er sant - og tillegg på 32-bits ord. En typisk gjennomføring av Blowfish algoritmen kan kryptere eller dekryptere en 64-bits datablokk på ca. 12 klokkesykluser, mens en 128-bit melding krever 24 klokke sykluser og så videre i lineær måte.