:: Blowfish ::
Torna alla pagina di Crittografia
Che cos'è
Blowfish è un cifrario a blocchi inventato nel 1993 e libero da brevetti, quindi utilizzabile da chiunque in qualunque luogo della terra. Non è conosciuta una crittanalisi degna per Blowfish.
Usa una rete di Feistel, anche se in una versione leggermente diversa rispetto a quella usata per il DES.
Caratteristiche
- Blocco = 64 bit
- Chiave = da 32 a 448 bit
- Sottochiavi = 18
- Fasi = 16
La cosa interessante è che le S-Box non sono predeterminate: esse vengono calcolate a partire dalla chiave. Infatti, per ogni chiave nuova, l'algoritmo Blowfish stesso viene eseguito 521 volte per riempire l'array delle sottochiavi e l'array delle S-Box. Per calcolare le sottochiavi e le S-Box, si inizializzano gli array con i numeri decimali di π.
Come funziona
Un semplice schema di Blowfish
Come vedete, il blocco LE0 viene XORato con la sottochiave, ed infilato nella funzione F. La funzione F fa uso delle S-Box, e il risultato della funzione F viene a sua volta XORato con il blocco RE0.
In questo modo, tutti e due i blocchi vengono modificati in ogni fase, mentre nella rete di Feistel normale un blocco finiva direttamente nella fase successiva.
Si può scrivere la crittografia di Blowfish in questo modo:
for (i = 1; i < 16: i++) {
REi = LEi-1 XOR Pi-1
LEi = REi-1 XOR REi
}
LE17 = RE16 XOR P18
RE17 = LE16 XOR P17
La decrittografia è identica, ma le chiavi sono schedulate in ordine inverso. In particolare, le chiavi vanno da 18 a 3, per ognuna delle 16 fasi "standard". Poi, il blocco di sinistra viene XORato con la chiave P1 e quello di destra con la chiave P2:
- crittografia: 1, 2, ...16, 18, 17
- decrittografia: 18, 17, ... 3, 1, 2
Così come per il DES, è possibile dimostrare che la decrittografia in effetti funziona per tornare ai blocchi originali a partire dai blocchi crittati con le chiavi schedulate nel giusto ordine. Un consiglio è quello di provare a farlo manualmente, visto che si tratta di un esercizio dei compiti:)
OCIO: l'immagine va sostituita perché poco felice, non si capisce bene!
Nota di colore
Nella serie televisiva 24, viene citato Blowfish, e immediatamente cercano di craccarlo, dicendo che loro hanno un algoritmo proprietario per romperlo: PROVARE TUTTE LE PASSWORD!:D
Torna alla pagina di Crittografia