In che modo SHA3 (Keccak e SHAKE) è paragonabile a SHA2? Dovrei usare i parametri non SHAKE?

16

Keccak è il vincitore della competizione SHA3. Dato che Keccak è altamente personalizzabile (presumibilmente per compromissioni di sicurezza / memoria / tempo / velocità) sembra che ci sia qualche polemica su come Keccak si confronta con SHA2. SHAKE sembra essere un insieme di parametri per ridurre l'attrito nella sostituzione drop-in di SHA2

In che modo Keccak / SHAKE è paragonabile a SHA2 in termini di:

  • bit di sicurezza
  • resistenza pre-immagine bit
  • seconda resistenza pre-immagine
  • l'affermazione "i livelli di sicurezza al di sopra dei 256 bit non hanno significato."
  • "SHA-3 è meno appropriato per l'uso come PRF per pbkdf2 rispetto a SHA-2"
  • Altri criteri degni di confronto

Dato che questo è un argomento molto complesso e Keccak ha molte permutazioni, penso che sia possibile che la semplificazione di SHAKE abbia potuto rimuovere flessibilità, sicurezza e prestazioni da determinati scenari ...

Detto questo, quali scenari valgono la differenza tra lo standard SHAKE e l'uso diretto di Keccak (per mancanza di una migliore analogia)?

    
posta random65537 18.04.2015 - 01:40
fonte

2 risposte

2

Il NIST ha un documento eccellente che spiega in dettaglio le ragioni del perché volevano creare SHA-3 e le carenze in SHA-2, che sembra rispondere a molte delle tue domande. In particolare, questo documento copre sia le sfide di progettazione che il modo in cui Keccak le affronta.

link

    
risposta data 31.03.2016 - 00:11
fonte
1

Penso che uno dei principali vantaggi dell'utilizzo di "sponge functions" sia il loro input continuo. Nelle funzioni di spugna, non si alimentano l'input come blocchi di bit, ma uno per uno. Questo rende SHA3 abbastanza diverso da SHA2 e rende il confronto abbastanza obsoleto.

Inoltre, dopo ogni bit, Keccak esegue una sorta di permutazione all'interno della funzione spugna. Tuttavia, deve eseguire così tante permutazioni di progettazione. Le funzioni di spugna devono immergere i bit uno alla volta, quindi, dopo un certo punto, emetterli uno per uno.

    
risposta data 31.03.2016 - 00:36
fonte

Leggi altre domande sui tag