Dato Hash digest, calcolo di qualsiasi input casuale

2

Capisco che per una funzione hash ci sia una quantità infinita di possibili input che potrebbero produrre un output specifico. Quindi, se stai cercando di trovare un input specifico che ha creato un output che sarebbe stato irrealizzabile.

Tuttavia prendi SHA256, se ti viene dato un output (digest), è abbastanza facile calcolare uno qualsiasi degli input possibili se non ti interessa quale?

    
posta Luke 11.02.2015 - 18:49
fonte

1 risposta

6

No. Dato un po 'di output x , qualsiasi input m tale che h ( m ) = x è chiamato preimage . Sebbene ci sia un sacco di preimage possibile, trovare qualsiasi di essi è irrealizzabile - cioè, se la funzione di hash è effettivamente crittograficamente strong.

Le tre proprietà classiche delle funzioni di hash crittografiche sono:

  • Resistenza alle preimmagini: dato x , non è possibile trovare alcun valore m tale che h ( m ) = x .
  • Resistenza alle seconde preimmagini: dato m , non è possibile trovare alcun valore m ' tale che m m ' e h ( m' ) = h ( m ).
  • Resistenza alle collisioni: non è possibile trovare m e m tale che m m e h ( m ') = h ( m ).

In altre parole:

  • Se ti fornisco un output hash, non puoi trovare un input corrispondente, non solo quello che ho usato in primo luogo, ma non ne trovi altri.
  • Se ti fornisco un output hash e un input corrispondente, non puoi trovare un altro input distinto che produca lo stesso risultato.
  • Anche se ti permetto di scegliere i messaggi come desideri, senza alcun vincolo, non puoi trovare due input distinti che producono lo stesso risultato.

Naturalmente tutte queste resistenze hanno uno sforzo computazionale (molto alto). Ad esempio, la ricerca di una preimage può essere eseguita con un metodo chiamato "fortuna", cioè cercando input casuali fino a quando non viene trovata una corrispondenza. Se la funzione hash offre un output a 256-bit, allora la fortuna troverà un input corrispondente in una media di 2 256 tentativi, che è totalmente fuori dalla portata della tecnologia esistente e futura (da molto molto margine lungo). Si dice che una funzione è "crittograficamente strong" se la dimensione dell'output della funzione hash è tale che la fortuna non è affatto vicina alla pratica, e non esiste un metodo migliore noto.

    
risposta data 11.02.2015 - 18:58
fonte

Leggi altre domande sui tag