ETFFIN Finance >> Finanza personale corso >  >> Cryptocurrency >> Blockchain

Funzioni hash crittografiche

Cosa sono le funzioni hash crittografiche?

Una funzione hash crittografica è una funzione matematica utilizzata nella crittografia. Le tipiche funzioni hash accettano input di lunghezza variabile per restituire output di lunghezza fissa.

Una funzione hash crittografica combina le capacità di passaggio dei messaggi delle funzioni hash con le proprietà di sicurezza.

Punti chiave

  • Le funzioni hash sono funzioni matematiche che trasformano o "mappano" un dato insieme di dati in una stringa di bit di dimensione fissa, noto anche come "valore hash".
  • Le funzioni hash sono utilizzate nella crittografia e hanno livelli variabili di complessità e difficoltà.
  • Le funzioni hash sono utilizzate per la criptovaluta, sicurezza delle password, e sicurezza dei messaggi.

Come funzionano le funzioni di hash crittografico

Le funzioni hash sono strutture dati comunemente usate nei sistemi informatici per compiti, come il controllo dell'integrità dei messaggi e l'autenticazione delle informazioni. Sebbene siano considerati crittograficamente "deboli" perché possono essere risolti in tempo polinomiale, non sono facilmente decifrabili.

Le funzioni hash crittografiche aggiungono funzionalità di sicurezza alle funzioni hash tipiche, rendendo più difficile rilevare il contenuto di un messaggio o informazioni su destinatari e mittenti.

In particolare, le funzioni hash crittografiche presentano queste tre proprietà:

  • Sono "senza collisioni". Ciò significa che non devono essere mappati due hash di input allo stesso hash di output.
  • Possono essere nascosti. Dovrebbe essere difficile indovinare il valore di input per una funzione hash dal suo output.
  • Dovrebbero essere compatibili con i puzzle. Dovrebbe essere difficile selezionare un input che fornisca un output predefinito. Così, l'input dovrebbe essere selezionato da una distribuzione il più ampia possibile.

Le tre proprietà sopra descritte sono desiderabili, ma non sempre possono essere implementate nella pratica. Per esempio, la disparità negli spazi campione per gli hash di input e gli output assicura che le collisioni siano possibili. Per esempio, nel 2017, la MIT Digital Currency Initiative ha riscontrato una vulnerabilità alla collisione in IOTA.

Esempi di funzioni hash crittografiche

Le funzioni di hash crittografico sono ampiamente utilizzate nelle criptovalute per trasmettere informazioni sulle transazioni in modo anonimo. Per esempio, Bitcoin, la criptovaluta originale e più grande, utilizza la funzione hash crittografica SHA-256 nel suo algoritmo. Allo stesso modo, IOTA, una piattaforma per l'Internet delle cose, ha una propria funzione di hash crittografico, chiamato Riccio.

Però, gli hash hanno altre applicazioni nel mondo reale. Queste sono alcune delle applicazioni crittografiche più comuni:

Verifica della password

La memorizzazione delle password in un normale file di testo è pericolosa, quindi quasi tutti i siti memorizzano le password come hash. Quando un utente inserisce la propria password, viene sottoposto a hash e il risultato viene confrontato con l'elenco dei valori con hash archiviati sui server dell'azienda. Questa non è una pratica infallibile, però, come la raccolta n. 1 di 21 milioni di password rubate, scoperto nel 2019, dimostra.

Generazione e verifica della firma

La verifica delle firme è un processo matematico utilizzato per verificare l'autenticità di documenti o messaggi digitali. Una firma digitale valida, dove sono soddisfatti i presupposti, fornisce al destinatario una prova convincente che il messaggio è stato creato da un mittente noto e che il messaggio non è stato alterato durante il transito. Uno schema di firma digitale consiste tipicamente di tre algoritmi:un algoritmo di generazione di chiavi; un algoritmo di firma che, dato un messaggio e una chiave privata, produce una firma; e un algoritmo di verifica della firma. alberi di Merkle, una tecnologia utilizzata nelle criptovalute, è una sorta di firma digitale.

Verifica dell'integrità di file e messaggi

Gli hash possono essere utilizzati per assicurarsi che i messaggi e i file trasmessi dal mittente al destinatario non vengano manomessi durante il transito. La pratica costruisce una "catena di fiducia". Per esempio, un utente potrebbe pubblicare una versione hash dei propri dati e della chiave in modo che i destinatari possano confrontare il valore hash che calcolano con il valore pubblicato per assicurarsi che siano allineati.