Blowfish

Nella crittografia, Blowfish è un cifrario a blocchi simmetrico a chiave, realizzato nel 1993 da Bruce Schneier e dal 1993 è stato incluso (messo insieme) in un gran numero di prodotti di crittografia. Blowfish ha un buon tasso di crittografia nel software e fino al 2008 non è stato trovato alcun modello di attacco criptanalitico di esso. Tuttavia, l'algoritmo di cifratura a blocchi AES ha ora una maggiore attenzione.

Schneier ha realizzato Blowfish come algoritmo generico, da utilizzare in sostituzione del vecchio algoritmo DES e per eliminare i problemi e le difficoltà di altri algoritmi di cifratura. Al momento del rilascio di Blowfish, molti altri algoritmi erano proprietari o segreti. Schneier ha detto che "Blowfish non è brevettato, e lo rimarrà in tutti i paesi. L'algoritmo è reso di pubblico dominio e può essere liberamente utilizzato da chiunque".

Le caratteristiche principali del design includono le S-box dipendenti dalla chiave e un programma di chiavi molto complesso. Blowfish è uno dei cifrari a blocco più veloci utilizzati da molte persone, tranne quando si cambia chiave. Ogni nuova chiave deve essere pre-processata, il che richiede lo stesso tempo della cifratura di circa 4 kilobyte di testo, che è molto lenta rispetto agli altri cifrari a blocchi. Questo ne blocca l'uso in alcune applicazioni (come nei più piccoli sistemi embedded come le prime smartcard), ma non è un problema in altre applicazioni. In una delle applicazioni, in realtà, è buona: il metodo di password-hashing utilizzato in OpenBSD utilizza un algoritmo che deriva da Blowfish che fa uso del programma a chiave lenta; l'idea è che lo sforzo computazionale extra richiesto fornisce protezione contro gli attacchi dei dizionari. Vedere il rafforzamento delle chiavi.

Blowfish ha una dimensione di blocco di 64 bit e una lunghezza variabile della chiave da 0 a 448 bit È un cifrario Feistel a 16 giri e utilizza grandi S-box dipendenti dalla chiave. La sua struttura è simile a quella di CAST-128, che utilizza S-box fisse.

Nel 1996, Serge Vaudenay ha trovato un attacco di plaintext noto che ha bisogno di 28r + 1 plaintexts noto per rompere, dove r è il numero di colpi. Inoltre, ha anche trovato una classe di chiavi deboli che possono essere rilevate e rotte dallo stesso attacco con solo 24r + 1 plaintexts conosciuto. Questo attacco non può essere usato contro i normali Blowfish; presuppone la conoscenza delle S-box dipendenti dalla chiave. Vincent Rijmen, nei suoi documenti di dottorato, ha introdotto un attacco differenziale di secondo ordine che può rompere quattro colpi e non di più. Ancora non c'è un modo conosciuto per rompere tutti i 16 colpi, a parte una ricerca di forza bruta. Un bug di estensione del segno in uno dei codici C pubblicati è stato trovato nel 1996.

Non esiste una buona crittoanalisi sulla versione completa del Blowfish conosciuta pubblicamente fino al 2008. Tuttavia, nel 2007, Bruce Schneier ha notato che, mentre il Blowfish è ancora in uso, ha raccomandato di utilizzare il nuovo algoritmo Twofish

Pagine correlate

Domande e risposte

D: Che cos'è Blowfish?


R: Blowfish è un cifrario a blocchi simmetrico con chiave, creato nel 1993 da Bruce Schneier. Da allora è stato incluso in molti prodotti di crittografia.

D: Per cosa è stato creato Blowfish?


R: Blowfish è stato creato come algoritmo di uso generale per sostituire il vecchio algoritmo DES e per eliminare i problemi e le difficoltà di altri algoritmi di crittografia.

D: Quanto può essere lunga la chiave di Blowfish?


R: La lunghezza della chiave per Blowfish può variare da 0 a 448 bit.

D: Quali sono alcune caratteristiche del design di Blowfish?


R: Alcune caratteristiche del design includono le S-box dipendenti dalla chiave e un programma di chiavi molto complesso.

D: Esiste una crittoanalisi nota sulla versione full-round di Blowfish?


R: A partire dal 2008, non esiste un modo noto per rompere i 16 round completi, a parte una ricerca di forza bruta.

D: Che tipo di attacco ha trovato Serge Vaudenay contro Blowfish?


R: Serge Vaudenay ha trovato un attacco di tipo known-plaintext, che richiede 28r + 1 plaintext noti per essere violato, dove r è il numero di round. Ha anche trovato una classe di chiavi deboli che potevano essere rilevate e spezzate da questo stesso attacco con solo 24r + 1 testi in chiaro noti.

D: Bruce Schneier raccomanda di usare Twofish invece di Blowfish ora?


R: Sì, Bruce Schneier raccomanda di utilizzare ora Twofish invece di Blowfish, grazie alle sue misure di sicurezza migliorate rispetto ai vecchi algoritmi come DES o anche a quelli più recenti come AES.

AlegsaOnline.com - 2020 / 2023 - License CC3