Perché ' t SHA256 può essere decrittografato? [chiuso]

Chiuso . Questa domanda deve essere più mirata . Attualmente non accetta risposte.

Commenti

Risposta

Innanzitutto, cè una differenza tra hashing e crittografia . SHA256 è una funzione di hashing, non di crittografia.

In secondo luogo, poiché SHA256 non è una funzione di crittografia, non può essere decrittografata. Quello che vuoi dire probabilmente lo sta invertendo. In tal caso, SHA256 non può essere annullato perché “sa funzione unidirezionale . Linversione provocherebbe una preimage attack , che vanifica il suo obiettivo di progettazione.

In terzo luogo, la verifica SHA256 funziona calcolandola di nuovo e confrontando il risultato con il risultato a portata di mano. Se entrambi i risultati corrispondono, la verifica ha esito positivo. Il background teorico è che è difficile trovare un altro input che dia lo stesso risultato hash. La violazione di questo crea un secondo attacco prima dellimmagine , che vanifica il suo obiettivo di progettazione.

Infine, firme digitali non sono semplicemente combinazioni di hash e chiave . Ma una funzione hash può migliorare la sua sicurezza.

Risposta

SHA256 non è una funzione di crittografia ma un funzione hash . La differenza fondamentale è che mentre la crittografia è una funzione bidirezionale (data la chiave) lhash è solo una funzione unidirezionale: dati alcuni dati puoi calcolare lhash, dato lhash è difficile (e matematicamente impossibile) riavere i dati .

Ho detto che è matematicamente impossibile trovare i dati dallhash perché in genere una funzione hash ha un piccolo codominio (ad esempio 256 bit per SHA256) ma un grande dominio (puoi hash qualsiasi stringa), quindi ci saranno collisioni: stringhe diverse con lo stesso hash.

Per questo motivo se la tua password viene salvata in forma hash allora esistono infinite password (ma possono essere molto lunghe) che sbloccano il tuo account.

La buona notizia è che le collisioni sono rare quando utilizzi le funzioni hash crittografiche , quindi il tuo account è ancora al sicuro.

Rispondendo alla prima parte della tua domanda, la verifica dei dati è facile: se Alice invia a Bob un file con hash checksum Bob può facilmente calcolare lhash di t Il file che ha ricevuto e confrontalo con lhash ricevuto da Alice. Questo di solito è sufficiente per scoprire se si è verificato un errore durante la trasmissione (quindi il file è danneggiato), ma non è sufficiente se la trasmissione è stata alterata da qualche attaccante che ha anche alterato lhash. Quindi Alice e Bob hanno bisogno di un canale sicuro per trasmettere lhash (ad esempio una pagina https con un certificato valido) o hanno bisogno di firmare lhash in qualche modo.

Quindi passiamo alla risposta alla tua seconda domanda: Alice può firmare il hash utilizzando la sua chiave privata prima di inviarla a Bob, in questo modo un utente malintenzionato può “manometterla senza invalidare la firma.

Ora potresti chiedere perché Alice firma solo con la sua chiave RSA (o simile) lhash e non tutto il messaggio, questo perché il calcolo di RSA è più lento del calcolo di un hash (quindi deve fare la cosa lenta solo su una piccola stringa: lhash). Questo era vero soprattutto quando è stato creato PGP e i computer erano più lenti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *