In che modo l'algoritmo di Luhn si riferisce alle funzioni hash crittografiche?

0

Ciò che mi interessa sono le somiglianze e le differenze tra i due. Mi sembra di capire che l'algoritmo di Luhn è un tipo di funzione di checksum uguale a qualche funzione di hash crittografica.

Da quello che ho letto, le funzioni di hash non possono essere invertite in quanto è una funzione "a senso unico", matematicamente parlando, dove sembra che lo stesso non si applichi all'algoritmo di Luhn.

Gradirei qualsiasi input su questo particolare argomento. La tua intuizione è molto apprezzata.

    
posta e.doroskevic 16.08.2015 - 18:32
fonte

1 risposta

2

La differenza è nell'uso e nelle proprietà necessarie per gli usi.

I checksum fondamentalmente rilevano (e talvolta correggono) piccole quantità di corruzione dei dati non intenzionale e non intenzionale:

In tutti gli usi, un checksum e dati sono combinati in modo che i dati originali possano essere recuperati. Nella maggior parte delle codifiche, il checksum viene aggiunto all'originale, ma è possibile avere una funzione di checksum più simile a un hash, in cui i dati originali non appaiono direttamente nell'output. La codifica Base-64, pur non essendo un checksum o un hash, è un esempio di codifica che non include l'input non modificato nel suo output.

I dati numerici possono essere visualizzati come un punto in uno spazio (a volte chiamato "spazio codice"), con ogni cifra una coordinata. I checksum funzionano generalmente distribuendo dati validi (in termini più formali, massimizza la distanza di Hamming tra stringhe) nello spazio. Attorno a ogni datapoint valido c'è una sfera di punti non validi più vicini ad essa. La creazione di un codice può anche essere vista come la ricerca di un imballaggio della sfera efficiente.

Se i dati ricevuti non sono un datapoint valido, indica un errore; si suppone che il datapoint più vicino sia il valore trasmesso (se c'è un più vicino, a volte i dati ricevuti possono essere equidistanti a due o più, nel qual caso l'errore non può essere corretto). In particolare, la quantità di errore deve essere ≤ 1/2 della distanza minima tra i punti di dati.

Come gli hash, i checksum non hanno inversioni in termini di cifre di controllo generate. Questo di solito non importa, dato che i dati originali vengono trasmessi insieme alle cifre di controllo e l'intero punto di un checksum è trovare l'inverso della rappresentazione codificata.

La funzione hash utilizza:

  • dati dell'indice per archiviazione e amp; recupero (tabelle hash, cache) -
    • se dati simili hanno hash simili, la funzione di hash può essere utilizzata negli algoritmi per trovare dati corrispondenti o simili
    • ID file in reti P2P e repository (documento o codice)
  • integrità dei dati: rilevamento di dati non validi; rilevare (ma non correggere) se i dati sono stati modificati / corrotti. Consente una quantità di corruzione molto superiore rispetto ai checksum e può essere utilizzato per rilevare manomissioni (modifiche intenzionali) -
    • abbreviare firme digitali . La firma è il meccanismo di rilevamento effettivo, ma il digest (sc. L'hash di un documento o messaggio) può essere crittografato al posto del documento per ridurre le dimensioni della firma
  • verification-
    • password
  • proof-of-work: alcuni problemi relativi agli hash (ad esempio la ricerca di pre-immagini o collisioni) hanno costi di risorse elevati (ad es. tempo di processore), quindi trovare una risposta può indicare che il sistema ha speso risorse per fare il lavoro-
    • cripto-valuta
    • Misure di difesa P2P
  • derivazione della chiave (ad esempio in WPA / WPA2 )

A seconda dell'utilizzo, l'hash e i dati originali possono essere tenuti separati, a differenza dei checksum. Ogni utilizzo di hash implica anche un numero di proprietà (ad esempio resistenze pre-immagine) che non hanno importanza con i checksum.

La disciplina che combina tutto questo e molto altro è teoria dei codici .

    
risposta data 17.08.2015 - 00:36
fonte

Leggi altre domande sui tag