Dovremmo usare SHA3? (2017)

11

Questa domanda è duplicata , tuttavia ritengo che sia necessario data la domanda. L'originale è stato pubblicato nel 2012: circa 5 anni fa, prima che il NIST pubblicasse anche le specifiche finali.

La domanda è più o meno la stessa dell'originale. SHA3 è stato studiato abbastanza per essere considerato sicuro per situazioni di alto valore, ed è un vantaggio usarlo rispetto al suo predecessore, SHA2. Fondamentalmente, dovremmo usarlo?

    
posta Awn 25.02.2017 - 20:02
fonte

3 risposte

6

Non sono convinto che dovremmo . SHA-3 ha alcune belle caratteristiche di sicuro, ma per i motivi che elenco qui sotto, probabilmente suggerirei di usare SHA-2 o BLAKE2 per il momento. Anche NIST stessi dicono:

Currently there is no need to transition applications from SHA-2 to SHA-3.

Detto questo, potresti ancora pensare "perché no" ?

  1. SHA-3 non è ancora compatibile con FIPS-140 . Senza FIPS 140-3 , è fuori dalla portata di agenzie governative non militari e appaltatori governativi. Se sei preoccupato per la conformità FIPS, per ora sei bloccato con la suite SHA-2. SHA-3 era incluso in FIPS 140-2 Annex A , anche se questo documento dice ancora" Bozza "nella pagina di copertina sembra essere stato finalizzato tramite questi two pagine.
  2. Prestazioni . SHA-3 è incredibilmente veloce nelle implementazioni hardware (ASIC) . Tuttavia, è molto più lento nel software in esecuzione su CPU con registri limitati, il che significa che è generalmente meno utile *. Il suo principale concorrente (almeno, all'indomani della competizione) è BLAKE2, che si è dimostrato molto più veloce su CPU generiche ed è talvolta preferito su Keccak / SHA-3 per altri motivi . Sebbene ritenga che il NIST abbia sottovalutato le differenze di rendimento nel software tra i finalisti, i loro commenti sul rendimento nell'ultimo ciclo decisionale potrebbero essere utili per fornire un contesto. Da NISTIR 7896 , sezione 3.2:

    a. All five finalists perform well enough to be usable in most applications.
    b. None of the five finalists is the best for every application, and none offers really compelling improvements over the SHA-2 algorithms.
    c. The ARX-based algorithms, BLAKE and Skein, perform extremely well in software.
    d. Keccak has a clear advantage in throughput/area performance in hardware implementations.
    e. Grøstl and JH are considerably slower than the other three algorithms in most software implementations.

  3. prudenza potenzialmente inutile . Vale anche la pena notare che BLAKE ha ricevuto commenti negativi a causa di in che modo era simile a SHA-2. Per prudenza, questo ha aiutato Keccak / SHA-3 a vincere la competizione. Da NISTIR 7896 , sezione 3.4:

    b. Because SHA-2 is an ARX-based design with a key schedule, it has some important design elements in common with BLAKE and Skein, although neither is closely related to SHA-2. However, cryptanalytic tools that apply to SHA-2 in the future seem more likely to apply to BLAKE or Skein than to the other three finalists.

* Ricorda che qui stiamo discutendo delle funzioni di hash crittografiche, non necessariamente funzioni di hashing della password o KDF.

Altre letture che potrebbero valerne la pena:

  1. NIST potrebbe non averti in mente , di Adam Langley
  2. La famiglia di spugne Keccak
  3. NISTIR 7896
  4. BLAKE2: "Più duro, migliore, più veloce, più strong" di MD5
  5. Perché sostituire SHA-1 con BLAKE2?
  6. Forse salta SHA-3
risposta data 06.03.2017 - 03:49
fonte
-2

Dovresti usare la cifratura più potente che puoi e SHA3 sembra essere adatto. Inoltre, sei più avanti della tua età, dal momento che quasi nessuno lo usa. Neanche OpenSSL supporta SHA3. Il fatto è che SHA2 è ancora generalmente considerato sicuro, e per un sistema complesso, sarebbe meglio scegliere SHA2 su SHA3 per evitare problemi di incompatibilità.

    
risposta data 25.02.2017 - 23:17
fonte
-5

Guarda questo grafico: link

Che cosa pensi che dovresti usare?

Come regola generale, dovresti utilizzare il metodo di hashing più strong disponibile al momento (in questo caso SHA-3), a meno che tu non abbia un valido motivo per non farlo, ad esempio:

  • Compatibilità

  • Performance

  • Requisiti normativi (ad esempio, deve utilizzare l'implementazione crittografica convalidata da FIPS)

Quindi, se non puoi usare SHA-3, il migliore sarà SHA-2.

    
risposta data 25.02.2017 - 23:09
fonte

Leggi altre domande sui tag