cerca
Blowfish
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Return to Blowfish  (Edit)

Uni.Blowfish History

Hide minor edits - Show changes to output

July 08, 2009, at 12:19 AM by studente - Schema modificato
Changed line 19 from:
%lframe%Attach:schemablowfish.png|'''Immagine presa da wikipedia...'''
to:
%lframe%Attach:Blowfish.png|'''Un semplice schema di Blowfish'''
Added lines 37-38:
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:)
Added lines 40-42:

!!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
Added lines 32-37:

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 P'_1_' e quello di destra con la chiave P'_2_':
* crittografia: 1, 2, ...16, 18, 17
* decrittografia: 18, 17, ... 3, 1, 2

'''OCIO''': l'immagine '''va sostituita''' perché poco felice, non si capisce bene!
Changed line 19 from:
%lframe%attach:schemablowfish.png|'''Immagine presa da wikipedia...'''
to:
%lframe%Attach:schemablowfish.png|'''Immagine presa da wikipedia...'''
Added lines 1-33:
(:title Blowfish:)
%titolo%''':: Blowfish ::'''

[[Torna alla pagina di Crittografia -> 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 -> DES]], 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
%lframe%attach:schemablowfish.png|'''Immagine presa da wikipedia...'''

Come vedete, il blocco LE'_0_' 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 RE'_0_'.\\
In questo modo, tutti e due i blocchi vengono modificati in ogni fase, mentre nella [[rete di Feistel normale -> DES]] un blocco finiva direttamente nella fase successiva.

Si può scrivere la '''crittografia''' di Blowfish in questo modo:

for (i = 1; i < 16: i++) {
RE'_i_' = LE'_i-1_' XOR P'_i-1_'
LE'_i_' = RE'_i-1_' XOR RE'_i_'
}
LE'_17_' = RE'_16_' XOR P'_18_'
RE'_17_' = LE'_16_' XOR P'_17_'

[[Torna alla pagina di Crittografia -> Crittografia]]