Blowfish | |
---|---|
La funzione F del Blowfish | |
Generale | |
Progettisti | Bruce Schneier |
Prima pubblicazione | 1993 |
Successori | Twofish |
Dettagli | |
Dimensione chiave | da 32 a 448 bit (a passi di 8 bit); default: 128 bit |
Dim. vettore di inizializazione | 64 bit |
Dimensione blocco | 64 bit |
Struttura | Rete di Feistel |
Numero di passaggi | 16 |
Migliore crittanalisi | |
Quattro passaggi del Blowfish sono sensibili ad un attacco differenziale di secondo ordine (Rijmen, 1997); per una classe di chiavi deboli, 14 passaggi del Blowfish possono essere distinti da una permutazione pseudo-casuale (Vaudenay, 1996) | |
In crittologia, blowfish è un algoritmo a chiave simmetrica a blocchi, ideato nel 1993 da Bruce Schneier e implementato in molti software di crittografia. Sebbene non sia reperibile una crittanalisi di Blowfish, questo algoritmo sta suscitando nuovamente interesse se implementato con una maggior dimensione dei blocchi, come nel caso di AES o Twofish.
Schneier progettò blowfish per essere un algoritmo di utilizzo generale, utile a rimpiazzare l'allora decadente Data Encryption Standard (DES) e libero da problemi caratteristici di altri algoritmi. All'epoca molti altri sistemi di cifratura erano proprietari, coperti da brevetto o da segreti governativi. Schneier dichiarò: «Blowfish è libero da brevetti, e rimarrà tale in tutte le nazioni. L'algoritmo è di pubblico dominio, e può essere usato liberamente da chiunque».
Due delle caratteristiche di rilievo di blowfish sono S-Box dipendenti dalla chiave, e una lista di chiavi estremamente complessa.