cerca
Blowfish
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Blowfish

 :: 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