Struttura e funzionamento dell’algoritmo CAST
L’algoritmo CAST è il risultato del lavoro Carlisle Adams e Stafford Tavares, dalle cui iniziali dei nomi deriva proprio il nome dell’algoritmo.
La versione dell’algoritmo denominata CAST-128 (che prevede l’utilizzo di una chiave di lunghezza variabile compresa tra i 40 e i 128 bit) è descritta dalla RFC2144 emessa nel 1997.
L’algoritmo è un block cipher in grado di processare blocchi di input di 64 bit.
Nel processo di codifica, sono previsti 16 round, ognuno basato su una rete di Feistel.
In ogni round si utilizza una coppia di sottochiavi (ottenute a partire da Kc).
Le sottochiavi Km, ciascuna di 32bit, sono utilizzate per ottenere Confusion, mentre le sottochiavi Kr, ciascuna di 5 bit, vengono utilizzate per stabilire di quanti bit (o posizioni) occorre eseguire lo shift circolare a sinistra, previsto per ciascun round.
Come in altri algoritmi l’ingresso viene preliminarmente scomposto in due parti di pari lunghezza, denominate rispettivamente Li e Ri.
La componente Ri diviene la nuova Li+1 mentre la nuova componente Ri+1 è ottenuta a partire da Li tramite la funzione F.
La funzione F utilizzata non è sempre la stessa per ogni round.
Esistono 3 diversi tipi di funzioni da utilizare nei diversi round. Indipendentemente dal tipo, ogni funzione F prevede 4 S-box {S1, S2, S3, S4}, che effettuano operazioni di sostituzione, ciascuna in grado di processare un ingresso di 8 bit.
Una versione dell’algoritmo in grado di processare blocchi di dati a 128 bit (e di estendere la lunghezza della chiave a 256 bit) è stato candidato a nuovo standard AES (Advanced Encryption Standard) nella gara proposta dal NIST (National Institute of Standards and Technology). Pur arrivando tra i finalisti, l’algoritmo non è risultato vincente.
Ciò nonostante, l’algoritmo CAST è oggi ritenuto crittograficamente robusto ed è adottato in numerose componenti software disponibili per i sistemi operativi più comuni (Windows, UNIX).
In queste implementazioni commerciali non sono al momento noti i dettagli riguardo ai principi utilizzati per “riempire” le tabelle di sostituzione delle S-box.