economia news e media viaggi informatica internet salute e benessere int rattenimento e spettacolo sport tempo libero istruzio ne e formazione arte cultura scienza

Crittografia

L'algoritmo Blowfish

A cura di Antonio Parziale

Pubblicato il 11/06/2005

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).

Vuoi essere aggiornato sulle novità della guida?

Feed RSS XML vostro feed RSS