Concetto dietro il checksum SHA-1

5

Quali sono le basi dietro SHA-1 o SHA-2 o altri algoritmi di checksum? Ho letto a questo proposito qui link

Ma mi sto ancora chiedendo una risposta nella lingua di un laico.

Posso comprenderlo come un codice molto, molto compresso che può essere tradotto in dati originali?

Diciamo che ho una lettera scritta nel blocco note. Quindi l'intero mio formato di pagina A4 può essere convertito in qualcosa di simile a questo "9b90417b6a186b6f314f0b679f439c89a3b0cdf5". Quindi, ogni volta che voglio recuperare i miei dati originali, posso riconvertirli in dati originali?

Sono molto sicuro di essermi sbagliato qui, perché è strano come i dati che contengono combinazioni di lettere e numeri possano essere rappresentati da una serie più piccola di lettere e numeri. Illogico!

Allora, qual è la base?

    
posta Vishwas G 17.12.2012 - 07:36
fonte

4 risposte

7

Un hash è una funzione unidirezionale per digerire una quantità arbitraria di dati in un risultato. La funzione deve avere la proprietà che per un particolare input, genera lo stesso output.

Potresti considerare l'aggiunta o la moltiplicazione una funzione di hashing molto orribile. Dato una somma o un prodotto, non puoi determinare in modo univoco i numeri che sono stati aggiunti o moltiplicati per produrre quel risultato, ma puoi sempre dare una serie di numeri per aggiungerli o ricrolli per verificare che il tuo set sia probabilmente giusto o decisamente sbagliato .

Una buona funzione di hash rimescola la struttura dei dati di origine in modo tale che l'hash risultante abbia ben poca somiglianza con i dati originali e ha proprietà che piccole modifiche nell'input causano grandi cambiamenti nel risultato.

    
risposta data 17.12.2012 - 08:00
fonte
5

Hai familiarità con il concetto di un normale checksum? per esempio. sommando i valori ascii di tutte le lettere in una stringa?

Prendi il tuo nome:

V    I    S    H    W    A    S

86 + 73 + 83 + 72 + 87 + 65 + 83  =  549

Il problema con l'utilizzo di qualcosa di così semplice da verificare la correttezza di una trasmissione è che molti errori semplicemente lasceranno il checksum invariato.

es. se vengono scambiate due lettere, così VISHWAS diventa VIHSWAS, il checksum sarà lo stesso.

O se una lettera è sbagliata e un'altra è sbagliata nella direzione opposta: VISGWBS

Con una buona funzione di hashing come SHA-1, un piccolo errore nella trasmissione si tradurrà in un hash completamente diverso. Ed è incredibilmente improbabile che due errori si combinino per dare lo stesso risultato di hash.

    
risposta data 17.12.2012 - 10:49
fonte
1

SHA1 / 2 e molti altri sono Funzioni hash o Crashographic Hash . Il punto chiave delle funzioni di hash è che calcolano "impronte digitali" da big data arbitrarie e non dovrebbe essere possibile:

  • Trova un dato, con hash specifico
  • Trova 2 dati diversi, che ha lo stesso hash
  • Modifica i dati, in modo che abbia lo stesso hash

Gli hash sono comunemente usati per i controlli di integrità dei dati, ad es. il mittente invia i dati e il suo hash, il ricevitore riceve i dati, calcola l'hash da essi. Se gli hash sono uguali, i dati sono stati ricevuti correttamente. Gli hash vengono anche usati per Firme digitali , dove ci permettono di usare una crittografia asimmetrica terribilmente lenta per creare "impronte digitali" non falsificabili di dati.

    
risposta data 17.12.2012 - 07:44
fonte
0

Questo è quello che direi a qualcuno senza un computer o uno sfondo di programmazione.

Un hash è come la firma scritta a mano di una persona. Ma le firme sono illeggibili. Così illeggibile che non puoi dire il nome della persona semplicemente guardando la firma. Ma puoi ancora confrontare due firme e decidere se la stessa persona ha firmato due documenti diversi.

In questa analogia i dati sono la persona, l'hash calcolato è la firma e calcolare l'hash è come chiedere alla persona di firmare qualcosa. Se hai calcolato l'hash, puoi confrontarlo con un altro hash. Ma non hai modo di conoscere i dati (da cui è stato calcolato l'hash) solo osservando l'hash.

    
risposta data 17.12.2012 - 09:08
fonte

Leggi altre domande sui tag