HC-256
L'HC-256 è un cifrario a flusso ad elevate prestazioni disegnato da Hongjun Wu nel 2004 e presentato come partecipante all'eSTREAM per il Profilo 1 (implementazione software). L'HC-256 opera con chiavi lunghe fino a 256 bit. Nel 2008 una sua versione denominata HC-128, operante con chiavi a 128 bit, è stata inserita nel portafoglio dell'eSTREAM.
HC-256 | |
---|---|
Generale | |
Progettisti | Hongjun Wu |
Prima pubblicazione | 2004 |
Dettagli | |
Dimensione chiave | da 128 a 256 bit, con passi di 32 bit |
Dim. vettore di inizializazione | da 64 a 256 bit, con passi di 64 bit |
Struttura | SHA-256 |
Numero di passaggi | numero di passaggi |
Migliore crittanalisi | |
Allo stato attuale non esistono crittanalisi dell'algoritmo | |
Funzionamento
modificaAnche se l'algoritmo può operare con diverse dimensioni della chiave (128-160-192-224-256 bit) e del vettore di inizializzazione IV (64-128-192-256 bit), l'HC-256 standard opera con chiavi e IV a 256 bit mentre l'HC-128 opera con chiavi ed IV a 128 bit.
Internamente consiste di 2 tabelle segrete denominate P e Q, ognuna contenente 1024 word a 32 bit. Per ogni aggiornamento dello stato interno, viene aggiornata una word a 32 bit di ogni tabella mediante una funzione di aggiornamento non lineare. Dopo 2048 passaggi tutti gli elementi delle due tabelle risultano aggiornati.
L'algoritmo genera una word a 32 bit per ogni passaggio di aggiornamento utilizzando una funzione di mappatura 32 bit a 32 bit simile alla funzione di output del Blowfish. Per generare la word finale dell'output viene applicata una funzione lineare di mascheramento dei bit. L'HC-256 utilizza internamente le due funzioni di schedulazione del messaggio della funzione di hash SHA-256 con le tabelle P e Q usate come S-box.
Prestazioni
modificaLe prestazioni dell'HC-256 sono stimate essere di circa 4 cicli per byte su un processore Pentium 4. L'HC-256 presenta però una fase di inizializzazione lunga e complessa che richiede circa 74.000 cicli, necessari all'espansione della chiave a 256 bit nelle due tabelle P e Q e nell'esecuzione di 4096 passaggi a vuoto, occorrenti ad aggiornare per 2 volte le tabelle stesse.
Le prestazioni dell'HC-128 risultano migliori: su un Pentium M l'inizializzazione dell'algoritmo richiede circa 27.300 cicli mentre la codifica/decodifica richiede circa 3 cicli per byte.
Sicurezza
modificaA tutt'oggi non esistono crittoanalisi né dell'HC-256 né dell'HC-128: si possono perciò considerare algoritmi molto sicuri.
Diritti d'autore
modificaSia l'HC-256 che l'HC-128 non sono coperti da brevetto e sono liberamente utilizzabili.
Bibliografia
modifica- Specifiche dell'HC-256 (PDF), su ecrypt.eu.org. URL consultato il 29 settembre 2008 (archiviato dall'url originale il 24 luglio 2008).
- Specifiche dell'HC-128 (PDF), su ecrypt.eu.org. URL consultato il 29 settembre 2008 (archiviato dall'url originale il 24 luglio 2008).
Collegamenti esterni
modifica- L'HC-256 all'eSTREAM, su ecrypt.eu.org. URL consultato il 29 settembre 2008 (archiviato dall'url originale il 23 giugno 2006).
- L'HC-128 all'eSTREAM, su ecrypt.eu.org. URL consultato il 29 settembre 2008 (archiviato dall'url originale il 1º luglio 2012).