Perché SHA-224 e SHA-256 utilizzano valori iniziali diversi?


9

Wikipedia - dice SHA-2

SHA-224 è identico a SHA-256, tranne che:

  • i valori della variabile iniziale da h0 a h7 sono diversi e
  • l'output è costruito omettendo h7.

RFC3874 - Una funzione hash unidirezionale a 224 bit: dice SHA-224

L'uso di un diverso valore iniziale garantisce che un valore di digest del messaggio SHA-256 troncato non possa essere confuso con un valore di digest del messaggio SHA-224 calcolato sugli stessi dati.

Le mie domande:

  1. Il motivo sopra citato è l'unico motivo per cui SHA-224 e SHA-256 usano valori iniziali diversi?

  2. Perché è importante assicurarsi che un valore digest del messaggio SHA-256 non possa essere confuso con un valore digest del messaggio SHA-224?

  3. Se utilizziamo gli stessi valori iniziali per entrambe le funzioni hash, la sicurezza di entrambe le funzioni hash peggiorerà? Se si, come?


7
Questo è quasi sicuramente un adattamento migliore su crypto.SE .
Peter Taylor,

1
Almeno la domanda 2 sembra fuori tema qui. Dopotutto, è legato al modo in cui le persone usano i computer e a ciò che è conveniente per loro; non proprio una domanda TCS.
Jukka Suomela,

Domanda correlata su Crypto.SE: crypto.stackexchange.com/questions/3946/…
mikeazo

Risposte:


4
  1. Questo abbiamo chiamato Domain Separation, quando utilizziamo lo stesso algoritmo per dimensioni di output diverse.
  2. La separazione è necessaria perché se ho trovato due messaggi con valore hash (SH256), differisce solo nell'ultimo ottetto e quindi posso pubblicare il valore hash come primo 7 ottetto che mostra che ho usato SHA224. poiché ho già due messaggi in collisione su SHA224 che posso usare in seguito per un attacco di contraffazione. Usando la separazione dei domini possiamo evitare tale situazione
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.