Phelix

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Phelix
Un singolo passaggio del cifrario Phelix
Generale
ProgettistiDoug Whiting, Bruce Schneier, Stefan Lucks, Frédéric Muller
Prima pubblicazione2004
Derivato daHelix
Dettagli
Dimensione chiave256 bit
Dim. vettore di inizializazione128 bit
StrutturaKeystream
Numero di passaggi20
Migliore crittanalisi
Hongjun Wu e Bart Preneel hanno dimostrato che è possibile recuperare la chiave segreta nel caso in cui lo stesso nonce sia utilizzato più di una volta

Phelix è un cifrario a flusso presentato nel 2004 per l'eSTREAM da Doug Whiting, Bruce Schneier, Stefan Lucks e Frédéric Muller, caratterizzato da un'alta velocità di cifratura e da una funzione integrata di MAC (Message Authentication Code, Codice di autenticazione del messaggio) a singolo passaggio.

Il cifrario utilizza solo operazioni di addizione modulo 232, OR esclusivo (XOR) e rotazione di un numero fisso di bit. Phelix usa una chiave da 256 bit ed un nonce di 128 bit, ed offre una robustezza crittografica di 128 bit.

Il nome Phelix è una contrazione di penta-helix, a ricordare che il diagramma a blocchi dell'algoritmo raffigura una doppia elica intrecciata che disegna 5 singoli nastri.

Struttura[modifica | modifica wikitesto]

La filosofia di Phelix è molti piccoli passaggi: le semplici operazioni che esegue sono ripetute su 9 blocchi di 32 bit di dati ciascuno, che costituiscono uno stato del cifrario. Lo stato è diviso in 2 gruppi: 5 stati attivi, che partecipano alla funzione di aggiornamento dei blocchi, e 4 stati vecchi che sono usati solo nella funzione di output dell'algoritmo.

Un singolo passaggio di Phelix è composto semplicemente da due operazioni: prima viene eseguito lo XOR fra un blocco attivo ed il seguente e dopo viene ruotato il primo blocco. Un singolo blocco di dati viene sottoposto a 20 passaggi. Durante questi passaggi vengono eseguite anche altre operazioni accessorie: vengono generati 32 bit di keystream, vengono aggiunti 2 blocchi da 32 bit di dati, viene inserito un blocco da 32 bit del testo in chiaro come input del successivo blocco di passaggi. Il testo cifrato, come in tutti i cifrari a flusso, viene generato eseguendo un'operazione di XOR fra il testo in chiaro ed il keystream.

Lo stato iniziale del cifrario viene impostato dalla chiave e dal nonce mentre alla fine del testo in chiaro viene calcolato il MAC per l'autenticazione del messaggio.

Prestazioni[modifica | modifica wikitesto]

Phelix è ottimizzato per piattaforme a 32 bit. Gli autori dichiarano che è possibile ottenere una velocità di circa 8 cicli/byte sui moderni processori x86, circa il doppio di quelle ottenute dall'AES.

Sicurezza[modifica | modifica wikitesto]

Nonostante l'algoritmo sia stato studiato principalmente per resistere agli attacchi di crittoanalisi differenziale, un tipo di attacco a cui l'Helix (il cifrario da cui deriva il Phelix) era vulnerabile, Phelix soffre dello stesso tipo di vulnerabilità, ed anche a livelli maggiori. Hongjun Wu e Bart Preneel hanno dimostrato che, sfruttando gli stessi principi dell'attacco all'Helix, se viene utilizzato lo stesso nonce per cifrare più messaggi si può risalire alla chiave segreta con circa 237 operazioni, 234 nonce selezionati e 238,2 parole di testo in chiaro (la complessità computazione dell'attacco è molto inferiore a quella dell'attacco all'Helix).

Il Phelix è stato archiviato alla fine della Fase 2 dell'eSTREAM.

Bibliografia[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]