Algoritmo di crittografia Twofish
Come tutti gli altri candidati AES, l’obiettivo dell’algoritmo di crittografia Twofish è arrivare a definire un block cipher con chiave comune di lunghezza variabile in grado di processare input di 128 bit (DES e gli altri algoritmi block cipher già esaminati, prevedono un input di soli 64 bit).
Formalmente l’algoritmo Twofish è il successore dell’algoritmo Blowfish. Entrambi condividono lo stesso ideatore e per certi aspetti una comune filosofia di progettazione.
Twofish può essere utilizzato con chiavi da 128, 192 o 256 bit.
La complessità computazionale è variabile a seconda della lunghezza delle chiavi.
Indipendentemente dalla lunghezza della chiave comune, Kc viene utilizzata per produrre le 40 diverse sottochiavi da 32 bit impiegate nei diversi round.
Le prime quattro vengono utilizzate in un round iniziale per una operazione di XOR con l’ingresso, le ultime quattro per ripetere la stessa operazione come ultimo round prima dell’uscita.
L’algoritmo in ogni round utilizza operazioni elementari quali shift circolare, e XOR,