Blowfish algoritmo di crittografia simmetrica

February 25

Blowfish è un algoritmo simmetrico crittografia o, in altre parole, una formula matematica che utilizza la stessa chiave segreta sia per cifrare e decifrare i messaggi. Blowfish è stato progettato da uno dei più importanti crittografi del mondo, Bruce Schneier, nel 1993 come alternativa al già esistente, ma meno sicuro, algoritmi come Data Encryption Standard (DES).

Storia

Bruce Schneier specificamente progettato l'algoritmo Blowfish come un senza licenza, senza copyright alternativa al DES e il primo ha presentato al Cambridge Algoritmi workshop nel 1994. Da quel momento, Blowfish è stato ampiamente testato da parte della comunità crittografica ed è risultato essere ragionevolmente sicuro.

cifrario a blocchi

Blowfish è ciò che è noto come un codice a blocchi a 64 bit, il che significa che l'algoritmo e chiave di crittografia sono applicati a un blocco di dati di 64 bit o 8 byte, lungo, piuttosto che singoli bit. Ogni blocco di lunghezza fissa dei dati crittografati, noti in testo, si trasforma in un blocco di dati cifrati, o testo cifrato, della stessa lunghezza. La dimensione del blocco 64 bit è breve per gli standard moderni e, mentre l'algoritmo Blowfish è perfettamente adeguato per applicazioni consumer standard, come la posta elettronica, è meno adatto per crittografare grandi quantità di dati, come quelli incontrati in archivio dati.

chiave di crittografia

L'algoritmo di crittografia simmetrica Blowfish utilizza una chiave di crittografia di lunghezza variabile, che può variare in lunghezza per 32 bit a 448 bit e il valore predefinito di 128 bit. Più lunga è la chiave di crittografia, maggiore è il numero di combinazioni possibili e più forte è la crittografia. L'algoritmo Blowfish realtà consiste di due parti: una parte di espansione chiave, in cui la chiave di cifratura viene convertito in un array di sottochiavi, e una parte crittografia dei dati. Al contrario, DES utilizza una chiave a 64 bit, e solo 56 bit sono effettivamente generato in modo casuale e usate da l'algoritmo di crittografia; i restanti 8 bit sono utilizzati per la correzione degli errori.

operazione

L'algoritmo Blowfish esegue 16 iterazioni o tondi, ciascuno dei quali è costituito da una permutazione dipendente dalla chiave di crittografia e una sostituzione dipende dalla chiave di crittografia e dati. Ogni operazione è una logica OR ESCLUSIVO (XOR) - aggiunta e di parole a 32 bit - che restituisce true se uno, ma non entrambe, le sue operandi sono veri. Una tipica implementazione dell'algoritmo Blowfish può cifrare o decifrare un blocco di 64 bit di dati in circa 12 cicli di clock, mentre un messaggio a 128 bit richiede 24 cicli di clock e così via in modo lineare.