Il BassOmatic era un cifrario a blocchi di tipo simmetrico sviluppato da Phil Zimmermann come componente della versione 1.0 del suo software di cifratura delle e-mail Pretty Good Privacy (PGP). I commenti inseriti nel codice sorgente indicato che Zimmermann aveva iniziato a lavorare a questo algoritmo fin dal 1988 ma non lo aveva reso pubblico fino al 1991.
Dopo che Eli Biham gli indicò alcune gravi debolezze nel suo algoritmo durante un incontro alla conferenza CRYPTO del 1991, Zimmermann lo rimpiazzò, nelle successive versioni di PGP, con l'IDEASimson Garfinkel: PGP: Pretty Good Privacy - O'Reilly Media - 1994 - pagg. 101–102 - ISBN 978-1565920989.
La scelta del nome BassOmatic viene spiegata in questo commento all'interno del codice sorgente:
Struttura L'algoritmo opera su blocchi di 256 byte (2048 bit) con chiavi che possono avere qualunque dimensione scelta nell'intervallo 8-2048 bit.
I 6 bit meno significativi della chiave sono i bit di controllo, usati per scegliere tra diverse possibili varianti dell'algoritmo. Il numero di passaggi varia da 1 ad 8, dipendenti dai 3 bit meno significativi dei bit di controllo. Il bit 4 imposta il gestore della chiave fra 2 alternative: uno utilizza la chiave come seme per inizializzare un generatore di numeri pseudo-casuali, mentre l'altro utilizza lo stesso BassOmatic. A causa di queste varianti dipendenti dalla chiave, è certo che alcune siano chiavi più deboli di altre: lo spazio delle chiavi (l'intervallo di combinazioni) non è pertanto completo. Il gestore selezionato produce un totale di 8 tabelle di permutazione, o P-table, ognuna delle quali è la permutazione dei numeri da 0 a 255.
Ogni passaggio consiste di 4 operazioni: viene effettuato lo XOR fra un blocco ed una P-table; vengono sbrandellati (ricordando il frullatore dello sketch), o permutati, i singoli bit dell'intero blocco; viene eseguita una funzione chiamata ranking che genere diffusione dei bit senza utilizzare la chiave; viene eseguito un ciclo di sostituzione utilizzando le tabelle di permutazione come S-box. Lo sbrandellamento può permutare gli 8 bit tutti in maniera indipendente oppure in gruppi di 4, a seconda del bit di controllo 3. Le tabelle di permutazione non variano durante tutti i passaggi della cifratura, a meno che il bit di controllo 5 non sia impostato ad "1", nel qual caso le tabelle sono rigenerate dopo ogni blocco.
Note
Voci correlate Pretty Good Privacy GnuPG
Collegamenti esterni PGPkeys.org - download del vecchio PGP, incluso il sorgente della 1.0
Categoria:Cifrari a blocchi