CAST-128
# CAST-128

In crittografia il CAST-128 (noto anche come CAST5) è un cifrario a blocchi utilizzato in svariati prodotti, noto soprattutto per essere il cifrario di serie di alcune versioni dei programmi GPG e PGP. È stato anche approvato come standard dal Centro per la Sicurezza delle Telecomunicazioni del governo canadese. L'algoritmo è stato creato nel 1996 da Carlisle Adams e Stafford Tavares utilizzando la struttura progettuale CAST; un altro membro della famiglia di cifrari CASE è il CAST-256, che è stato candidato per il processo di standardizzazione dell'Advanced Encryption Standard e che deriva direttamente dal CAST-128.

Il nome CAST sarebbe un acronimo formato dalle iniziali degli autori, anche se Bruce Schneier afferma che gli autori hanno scelto questo nome perché "dovrebbe evocare immagini di casualità".

## Struttura

Il CAST-128 è una rete di Feistel con un numero di passaggi variabile di 12 o 16; la dimensione del blocco è di 64 bit mentre la lunghezza della chiave può variare da 40 a 128 bit con incrementi di 8 bit (in realtà l'algoritmo esegue il riempimento della chiave se questa è più corta di 128 bit perché lavora internamente sempre con tale dimensione). I 16 passaggi sono attuati solo quando la chiave è più lunga di 80 bit: sotto tale soglia, sono effettuati solo 12 passaggi.

Il CAST-128 utilizza, come il cifrario Blowfish, delle S-box di grandi dimensioni (8×32 bit), rotazioni dipendenti dalla chiave, addizioni e sottrazioni modulari, operazioni di XOR. I passaggi sono costituiti da 3 gruppi di operazioni: la differenza fra di essi è minima e consiste in un'unica operazione (addizione, sottrazione o XOR), come si può verificare dal diagramma a blocchi a destra.

## Licenza

Anche se la Entrust detiene un brevetto sulla struttura della famiglia di cifrari CAST, il CAST-128 è utilizzabile liberamente sia per usi commerciali che non.

