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.

BassOmatic
Generale
ProgettistiPhil Zimmermann
Prima pubblicazione1991
Dettagli
Dimensione chiaveda 8 a 2048 bit
Dimensione blocco2048 bit
Numero di passaggi1–8

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'IDEA[1].

La scelta del nome BassOmatic viene spiegata in questo commento all'interno del codice sorgente:

(EN)

«BassOmatic gets its name from an old Dan Aykroyd Saturday Night Live skit involving a blender and a whole fish. The BassOmatic algorithm does to data what the original BassOmatic did to the fish.»

(IT)

«Il BassOmatic deve il suo nome ad un vecchio sketch di Dan Aykroyd al Saturday Night Live in cui l'attore utilizzava un frullatore ed un pesce intero. L'algoritmo BassOmatic fa ai dati ciò che il BassOmatic originale faceva al pesce.»

Struttura

modifica

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.

  1. ^ Simson Garfinkel: PGP: Pretty Good Privacy - O'Reilly Media - 1994 - pagg. 101–102 - ISBN 978-1565920989

Voci correlate

modifica

Collegamenti esterni

modifica
  • PGPkeys.org - download del vecchio PGP, incluso il sorgente della 1.0