Spazio Sponsor

Hash

Definizione

Il 1.2.2007 ho rinviato alla voce puntatore per spiegare cosa è un hash.

Oggi 29.12.2021, la funzione di hash è diffusa e usate in contesti importanti. Vale la pena spendere qualche parola aggiuntiva.

La funzione di hash e' un calcolo che converte una serie di byte in una impronta univoca.

L'impronta univoca è una sequenza di determinati caratteri che, per motivi statistici, possono essere ragionevolmente considerati l'unico risultato che viene creato leggendo i caratteri in input.

Esempio

E' piu' semplice fare che spiegare. Create un file pippo.txt e scrivete "ciao mondo". Salvate il file e applicare una funzione di hash (tra le varie esistenti) che genera una impronta. Ci sono programmi gratuiti e servizi online, divertitevi. Microsoft ne regala uno. con queste regole ( MD5, SHA-1, SHA-256, SHA-384, SHA-512 and CRC32 ).

Segnatevi il codice che viene generato fornendo il file pippo.txt al software.

Cambiate il nome del file, ripetete l'operazione: il codice e' uguale. La funzione di hash non cambia perche' agisce  sui contenuti.

Cambiate il contenuto del file, anche poco, e ricalcolate l'hash: sara' diverso.

Abbiamo cosi' sperimentato che dando un file ad una funzione di hash viene generato un codice univoco (spesso usato come puntatore per ritrovare il contenuto completo) che lo puo' identificare.

Nelle PEC

Un uso intelligente delle funzioni di hash e' l'inserimento dell'hash di un file che alleghiamo ad una pec. L'allegato potrebbe essere disconosciuto perche' per motivi legali ma non tecnici alcuni giudici hanno che l'allegato potrebbe non valere, come se non fosse allegato. In realtà inserendo l'hash del file nella pec voi state certificando in modo inequivocabile che avete mandato un allegato e proprio quello. Infatti cambiando una virgola, l'hash non sarebbe uguale.

Funzione vs algoritmo

Ora qui e' importante dire che una funzione e' una insieme di calcoli.

Un algoritmo e' un insieme di scelte, non solo meri calcoli.

L'algoritmo di hashing e' un termine che si usa per indicare le operazioni di calcolo ben complesse, tanto complesse da potersi definire un algoritmo. Scelte regolate da standard matematici, ma scelte.

Non esiste l'algoritmo hash. Esiste la funzione di hash.

Blockchain ed NFT

Dove troviamo oggi gli algoritmi di hashing ? Nelle blockchain, negli NFT, nelle funzioni crittografiche, nel controllo dei files scaricati da internet, nell'identificare  un oggetto o un soggetto all'interno di una raccolta di dati.

Non e' in grado di anonimizzare perche' effettuando l'operazione inversa non ottengo nulla ma, potendo ripetere l'operazioni, posso trovare l'hash.

Per esempio la mia email avrà sempre lo stesso hash. Se applico la funzione di hash alla mia email, mi basta l'email per trovare l'hash e usarlo la' dove viene nascosto. Nascondere troppo i dati all'interno di un database di solito e' una operazione a basso senso, in quanto il database raccoglie dati, ma soprattutto per ritrovarli ed elaborarli. Se non li puo' elaborare, non serve a nulla.

Password

Cosi' le password. Posso memorizzarle in md5, ma le posso ritrovare

Funzioni come bcrypt invece dipendono da altri elementi e sono pensate per rallentare l'operazione di scoprire quale dato rappresentano.

Si parla di rappresentazione quando si dice che una impronta e' univoca quindi l'impront rappresenta univocamente un qualcosa.

L'operazione inversa

I tempi computazionali, per effettuare l'operazione inversa, sono alti, ma i computer quantici potrebbero far saltare tutta la sicurezza del web (creando ladri, furti d'identità, documenti falsi, transazioni certificate) in modo inspiegabile.

Quando si parla di algoritmo di hash si usa una terminologia tipica di chi ha tradotto malamente dall'inglese quello che viene univocamente chiamato hashing algorithm, non hash algorithm.

Il problema dell'incapacità degli operatori di diritto di conoscere la tecnologia come un fatto da guardare, volendola invece stravolgere nel senso che le si vuole dare, porta a far parlare di hashing quando si presentano gli algoritmi.

Gli algoritmi sono qualcosa di piu' complesso di una semplice funzione.

Gli algoritmi sono regole applicate a dati. Regole deterministiche o statistiche (come nel caso dell'intelligenza artificiale) che operano sulla base di dati certi, variabili, casuali, interni o esterni.

In poche parole gli algoritmi valutano situazioni anche molto complesse (molti dati) secondo anche molti criteri (molte regole) a volte gia' codificate, a volte autocodificate.

Insomma: e' un errore sviante parlare di "if  then that" (non if this than that che e' un servizio online) per definire un algoritmo.

Un algoritmo puo' anche mancare di "if", in quanto la struttura, la sequenzialità dei comandi, è essa stessa un modo per raggiungere o non raggiungere il risultato desiderato.

Altro errore tipico dei giuristi e' concentrarsi sui criteri dell'algoritmo, come se i dati fossero un passo successivo. Non solo i dati sono un fatto preesistente ai criteri, ma ne determinano l'applicazione.

Nella finanza e' noto che si possono dare dati falsi per ingannare il sistema e produrre effetti sulle quotazioni: i software sono certificati ma solo il programmatore che ha provato / progettato tutte le ipotesi ne puo' conoscere il punto debole. Il programmatore o i sofisticati tool di intelligenza artificiale applicati a github per monitorare il codice e ripararlo.

In poche parole "criteri (intesi come comandi e condizioni) e dati" vanno visti come un sistema che insieme produce un risultato.

L'algoritmo e' l'insieme di istruzioni che presuppongono un tipo di dati. Se il presupposto cade, l'algoritmo dara' risultati strani, ma corretti. E' stato sbagliato usarlo fuori dal contesto (ipotesi di partenza), all'interno del quale era stato concepito.

Per favore. Non usate il termine hash per spiegare cosa sono gli algoritmi. E' terribile. Come dire che un trasportato in un sinistro e' un soggetto giuridico come un erede.

Spataro

28.12.2021 https://



Partecipa anche tu:
  • Cosa pensi della voce ?
  • Commenta o chiedi:
tutti i dati sono facoltativi e informatici e li usiamo solo per rispondervi. No newsletter. Si applica la privacy policy di IusOnDemand srl.


Ti possono interessare anche:
  • 44315
  • 2021-12-28
  • Hash
  • Definizione

  • Il 1.2.2007 ho rinviato alla voce Puntatore per spiegare cosa è un hash.

    Oggi 29.12.2021, la funzione di hash è diffusa e usate in contesti importanti. Vale la pena spendere qualche parola aggiuntiva.

    La funzione di hash e' un calcolo che converte una serie di byte in una impronta univoca.

    L'impronta univoca è una sequenza di determinati caratteri che, per motivi statistici, possono essere ragionevolmente considerati l'unico risultato che viene creato leggendo i caratteri in input.

    Esempio

    E' piu' semplice fare che spiegare. Create un file pippo.txt e scrivete "ciao mondo". Salvate il file e applicare una funzione di hash (tra le varie esistenti) che genera una impronta. Ci sono programmi gratuiti e servizi online, divertitevi. Microsoft ne regala uno. con queste regole ( MD5, SHA-1, SHA-256, SHA-384, SHA-512 and CRC32 ).

    Segnatevi il codice che viene generato fornendo il file pippo.txt al software.

    Cambiate il nome del file, ripetete l'operazione: il codice e' uguale. La funzione di hash non cambia perche' agisce  sui contenuti.

    Cambiate il contenuto del file, anche poco, e ricalcolate l'hash: sara' diverso.

    Abbiamo cosi' sperimentato che dando un file ad una funzione di hash viene generato un codice univoco (spesso usato come puntatore per ritrovare il contenuto completo) che lo puo' identificare.

    Nelle PEC

    Un uso intelligente delle funzioni di hash e' l'inserimento dell'hash di un file che alleghiamo ad una pec. L'allegato potrebbe essere disconosciuto perche' per motivi legali ma non tecnici alcuni giudici hanno che l'allegato potrebbe non valere, come se non fosse allegato. In realtà inserendo l'hash del file nella pec voi state certificando in modo inequivocabile che avete mandato un allegato e proprio quello. Infatti cambiando una virgola, l'hash non sarebbe uguale.

    Funzione vs algoritmo

    Ora qui e' importante dire che una funzione e' una insieme di calcoli.

    Un algoritmo e' un insieme di scelte, non solo meri calcoli.

    L'algoritmo di hashing e' un termine che si usa per indicare le operazioni di calcolo ben complesse, tanto complesse da potersi definire un algoritmo. Scelte regolate da standard matematici, ma scelte.

    Non esiste l'algoritmo hash. Esiste la funzione di hash.

    Blockchain ed NFT

    Dove troviamo oggi gli algoritmi di hashing ? Nelle blockchain, negli NFT, nelle funzioni crittografiche, nel controllo dei files scaricati da internet, nell'identificare  un oggetto o un soggetto all'interno di una raccolta di dati.

    Non e' in grado di anonimizzare perche' effettuando l'operazione inversa non ottengo nulla ma, potendo ripetere l'operazioni, posso trovare l'hash.

    Per esempio la mia email avrà sempre lo stesso hash. Se applico la funzione di hash alla mia email, mi basta l'email per trovare l'hash e usarlo la' dove viene nascosto. Nascondere troppo i dati all'interno di un database di solito e' una operazione a basso senso, in quanto il database raccoglie dati, ma soprattutto per ritrovarli ed elaborarli. Se non li puo' elaborare, non serve a nulla.

    Password

    Cosi' le password. Posso memorizzarle in md5, ma le posso ritrovare

    Funzioni come bcrypt invece dipendono da altri elementi e sono pensate per rallentare l'operazione di scoprire quale dato rappresentano.

    Si parla di rappresentazione quando si dice che una impronta e' univoca quindi l'impront rappresenta univocamente un qualcosa.

    L'operazione inversa

    I tempi computazionali, per effettuare l'operazione inversa, sono alti, ma i computer quantici potrebbero far saltare tutta la sicurezza del web (creando ladri, furti d'identità, documenti falsi, transazioni certificate) in modo inspiegabile.

    Quando si parla di algoritmo di hash si usa una terminologia tipica di chi ha tradotto malamente dall'inglese quello che viene univocamente chiamato hashing algorithm, non hash algorithm.

    Il problema dell'incapacità degli operatori di diritto di conoscere la tecnologia come un fatto da guardare, volendola invece stravolgere nel senso che le si vuole dare, porta a far parlare di hashing quando si presentano gli algoritmi.

    Gli algoritmi sono qualcosa di piu' complesso di una semplice funzione.

    Gli algoritmi sono regole applicate a dati. Regole deterministiche o statistiche (come nel caso dell'intelligenza artificiale) che operano sulla base di dati certi, variabili, casuali, interni o esterni.

    In poche parole gli algoritmi valutano situazioni anche molto complesse (molti dati) secondo anche molti criteri (molte regole) a volte gia' codificate, a volte autocodificate.

    Insomma: e' un errore sviante parlare di "if  then that" (non if this than that che e' un servizio online) per definire un algoritmo.

    Un algoritmo puo' anche mancare di "if", in quanto la struttura, la sequenzialità dei comandi, è essa stessa un modo per raggiungere o non raggiungere il risultato desiderato.

    Altro errore tipico dei giuristi e' concentrarsi sui criteri dell'algoritmo, come se i dati fossero un passo successivo. Non solo i dati sono un fatto preesistente ai criteri, ma ne determinano l'applicazione.

    Nella finanza e' noto che si possono dare dati falsi per ingannare il sistema e produrre effetti sulle quotazioni: i software sono certificati ma solo il programmatore che ha provato / progettato tutte le ipotesi ne puo' conoscere il punto debole. Il programmatore o i sofisticati tool di intelligenza artificiale applicati a github per monitorare il codice e ripararlo.

    In poche parole "criteri (intesi come comandi e condizioni) e dati" vanno visti come un sistema che insieme produce un risultato.

    L'algoritmo e' l'insieme di istruzioni che presuppongono un tipo di dati. Se il presupposto cade, l'algoritmo dara' risultati strani, ma corretti. E' stato sbagliato usarlo fuori dal contesto (ipotesi di partenza), all'interno del quale era stato concepito.

    Per favore. Non usate il termine hash per spiegare cosa sono gli algoritmi. E' terribile. Come dire che un trasportato in un sinistro e' un soggetto giuridico come un erede.

  • https://
  • spataro
  • spataro
  • Dizionario,Software, Puntatore,algoritmi,intelligenza artificiale
  • s
  • -
  • -
  • 0
  • Dizionario
  • 2
  • 0
  • -
  • -
  • 3005
  • -
  • 0
  • -
  • -
  • -
  • -