Questo sito contribuisce alla audience di

L'algoritmo Blowfish

Questo algoritmo ideato da Bruce Scheiner nel 1993 è veloce, compatto, sicuro tanto da essere la base per uno dei candidati al nuovo standard di cifratura a blocco a chiave simmetrica. Ecco come funziona. L'articolo è tratto dalla tesi di laurea in "Applicazione delle tecniche di crittografia nella trasmissione ed elaborazione dati" redatta dall'ingegnere Federico Gennari nell'anno accademico 2000/2001

Blowfish
Questo algoritmo ideato da Bruce Scheiner nel 1993 è veloce, compatto, sicuro tanto da essere la base per uno dei candidati al nuovo standard di cifratura a blocco a chiave simmetrica. , quindi vale la pena vedere molto succintamente come funziona:

i) Espansione della chiave converte la chiave (di lunghezza variabile, fino a 448 byte) in vari vettori di sottochiavi da 32 bit: il vettore di permutazione Pi con (i=1,…18) e il vettore stringa Si,j con (i=1,…4) e (j=0,…255). Si inizializzano P’1,… P’18 e poi S’1,0,… S’4,255 nell’ordine, usando l’espansione decimale di π. Si ottiene il vettore segreto di permutazione P1,… P18 ponendo Pi = P’i ^ Ki (ovvero lo XOR tra i due operandi)

ii) Cifratura dati: comincia dividendo il testo in chiaro in blocchi da 64bit e ogni blocco in due metà (L0, R0) da 32bit.

iii) Per si ripete:

- Li = Li-1^Pi

- Ri = F(Li)^Pi (F è la funzione di Feistel)

- Permutazione Li, Ri => Ri, Li

iv) Permutazione finale L16, R16 => R16, L16 (disfa l’ultima delle permutazioni cicliche).

v) Rfinale = R16^P17; Lfinale = L16^P18; il blocco finale è (Lfinal, Rfinal).