Phelix
Phelix | |
---|---|
Un singolo passaggio del cifrario Phelix | |
Generale | |
Progettisti | Doug Whiting, Bruce Schneier, Stefan Lucks, Frédéric Muller |
Prima pubblicazione | 2004 |
Derivato da | Helix |
Dettagli | |
Dimensione chiave | 256 bit |
Dim. vettore di inizializazione | 128 bit |
Struttura | Keystream |
Numero di passaggi | 20 |
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]- Documento originale di presentazione dell'algoritmo (con codice sorgente)
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- Phelix all'eSTREAM, su ecrypt.eu.org. URL consultato il 21 settembre 2008 (archiviato dall'url originale il 30 settembre 2008).
- L'attacco di crittoanalisi differenziale al Phelix di Wu e Preneel (PDF), su ecrypt.eu.org. URL consultato il 21 settembre 2008 (archiviato dall'url originale il 20 agosto 2008).