Newsgroup: it.comp.sicurezza.crittografia
Titolo: Phelix

Ho scoperto l'algoritmo Phelix, un candidato al programma Ecryt per la
definizione di uno standard europeo da contrapporre all'americano AES e
basato su algoritmo di cifratura di tipo stream.
Chiedo a voi, esperti più di me del campo crittofrafico, come giudicate
questo algoritmo: leggendo la documentazione degli autori, tra cui
figura anche Schneider (un nome una garanzia), mi sembra veramente
ottimo: alta velocità, sicurezza, MAC integrato... un sacco di cose
interessanti, non trovate?
Esiste qualche implementazione in un linguaggio un po' più
capibile/portabile del C?
-- 
Ciao.
Leo.
WEB: 
www.leonardomiliani.com
 
E-mail: 
leon...@leonardomiliani.com

 di cose interessanti, non trovate?
Sì, può darsi. Probabilmente, però, avrai notato che il MAC lavora in 
maniera un po' subdola, nel senso che è comunque da prevedere, in fase di 
inizializzazione (prima di iniziare a cifrare/decifrare), un MAC lungo 
almeno 96 bit (se ben ricordo) anche se non intendi utilizzarlo.
Per quanto riguarda la sicurezza, forse è meglio Salsa20 (di DJB); finora è 
stato possibile attacare solo la versione ridotta a 5 rotazioni, prima di 
arrivare a craccare l'algoritmo con tutte le rotazioni previste... :-) 
Inoltre, il codice sorgente di Salsa20 è presentato in maniera perfettamente 
conforme ai requisiti di eCrypt, mentre Phelix non sembra proprio conforme 
(anche questo ha la sua importanza per chi deve implementarlo).
Infine, dalle prove fatte pochi mesi fa, ricordo che Phelix aveva un 
comportamento da approfondire quando utilizzato come PRNG (alcune sequenze 
da 128 Mbit davano risultati parzialmente negativi), mentre Salsa20 ha 
sempre generato sequenze indistinguibili da sequenze casuali.
Preciso che io non sono un esperto di crittografia e che questi sono solo 
commenti o semplici constatazioni che non hanno alcun peso; il giudizio vero 
e proprio verrà dato dai veri esperti di eCrypt dopo attente analisi.
Cristiano 

Cristiano ha scritto:

Mi ero concentrato sul Phelix primo per il MAC (interessante l'idea di
avere contemporaneamente un programma di cifratura e di segnatura) e poi
perché era tra quelli selezionati per la fase 2 e su cui si richiedeva
maggior attenzione ("focus"). Non ho preso in considerazione il Salsa,
magari il Dragon. Studierò un pò il codice.


 avere contemporaneamente un programma di cifratura e di segnatura)
Puoi ottenere l'autenticazione insieme alla cifratura anche con schemi
già ben consolidati.
Classicamente si tratta della composizione di una cifratura forte, in
genere AES usato in CTR mode (così da non necessitare padding, in
pratica lo si trasforma in uno stream cypher), con un hash
crittograficamente sicuro (ad esempio è ancora molto usato lo SHA1, ma
anche RIPEMD-160 o gli SHA2* sono buone scelte).
Puoi usare anche metodi più eleganti, che non necessitino di una
diversa funzione primitiva per l'autenticazione ***, ad es EAX, che usa
la primitiva crittografica (in genere AES128) in CTR e OMAC mode;
oppure OCB, uno schema che permette di ottenere l'Authenticated
Encryption in un unico passaggio. Ce ne sono comunque diversi altri con
una solida dimostrazione di sicurezza (sempre se la primitiva
crittografica scelta è sicura) con diversi pro e contro prestazionali.
Phelix è sicuramente un design molto brillante ed interessante, che
mira a produrre dalla base una entità in grado di dare cifratura ed
autenticazione, comunque a livello "funzionale" esistono già delle
valide strade, più approfonditamente testate e capite, per otterenre
ciò.
*** infatti perchè il sistema sia sicuro occorre dimostrare che sia
l'hash che la funzione crittografica siano sicuri (se uno solo dei due
lo è gli assunti su cui si basa la dimostrazione di sicurezza della
composizione non sono più validi), quindi meglio ridurre i requisiti
di sicurezza ad uno solo usando una unica funzione