Domanda

Hash di matassa proposto per SHA-3 vanta alcuni risultati di velocità impressionanti, che sospetto sarebbe applicabile per il codice a blocchi di Threefish nel suo cuore - ma, se Skein è approvato per SHA-3, ciò implicherebbe che anche Threefish è considerato sicuro? Cioè, qualsiasi vulnerabilità in Threefish implicherebbe una vulnerabilità in SHA-3? (e quindi, la mancanza di problemi noti e una fiducia generale in SHA-3 implicano lo stesso per Threefish)

È stato utile?

Soluzione

No. La sicurezza di Skein non implica la sicurezza di Threefish. Per dirla in modo positivo, se qualcuno trova un punto debole in Threefish, questo non implica che anche Skein sia insicuro.

La domanda, tuttavia, è piuttosto interessante e si applica anche ad altre funzioni di hash. Skein utilizza una costruzione Davis-Meyer con alcune modifiche. Anche MD5, SHA1 e molte altre funzioni hash utilizzano questa costruzione Davis-Meyer e quindi si basano in linea di principio su un codice a blocchi. Solo nel caso di MD5 o SHA1 quel blocco di codice non ha un nome e non sono a conoscenza di molte ricerche su quanto siano adatti questi costrutti.

I requisiti per una buona cifratura a blocchi e per una buona funzione hash sono diversi. Un po 'semplificato, se E è un codice a blocchi e non è possibile trovare due chiavi K, K' e due messaggi M, M 'tali che E K (M) xo M = E K ' (M') xo M 'quindi E è adatto per costruire una funzione hash usando Davis-Meyer. Ma per essere sicuro come un codice a blocchi E avrebbe bisogno di altre proprietà. E dovrebbe resistere agli attacchi con testo cifrato scelto, attacchi con testo in chiaro scelto ecc.

Inoltre, se E è un buon codice a blocchi, ciò non significa che dia una buona funzione hash. Microsoft ha dovuto imparare questo nel modo più duro con l'hash utilizzato nell'XBOX. Questo hash si basava sul codice a blocchi TEA che presentava una debolezza insignificante per un codice a blocchi, ma si è rivelato fatale se usato per una funzione hash.

Per essere onesti, ci sono alcune relazioni tra l'essere un buon codice a blocchi e l'essere adatto per una funzione hash. Ad esempio, in entrambi i casi è necessario evitare attacchi differenziali. Quindi alcuni metodi di progettazione usati per costruire buoni cifrari possono essere usati per costruire buone funzioni di hash.

Vorrei anche aggiungere che alcune delle proposte per SHA-3 sono basate su AES. Finora non ho visto molto supporto nel favorire le funzioni hash basate su AES, solo perché AES è già uno standard. Queste funzioni di hash vengono analizzate come qualsiasi altra proposta SHA-3.

Altri suggerimenti

Ignora la mia risposta precedente. Ho frainteso il rapporto tra Skein e Threefish. Continuo a non pensare che l'approvazione di Skein provi assolutamente che Threefish è generalmente sicuro (è possibile che Threefish sia sicuro solo se usato in un modo particolare), ma sarebbe un'indicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top