Funzione di hashing debole per indirizzi IPv6 memorizzabili


10

Gli indirizzi IPv6 sotto forma di 862A:7373:3386:BF1F:8D77:D3D2:220F:D7E0sono molto più difficili da memorizzare o addirittura trascrivere rispetto ai 4 ottetti di IPv4.

Ci sono stati tentativi di mitigarlo, rendendo gli indirizzi IPv6 in qualche modo più memorabili.

Esiste una funzione di hashing intenzionalmente debole che potrebbe essere invertita per scoprire che la frase, ad esempio, "È relativamente benigna e facile da individuare se la frase è piegata in modo da non valere la pena pagare" verrebbe indirizzata a un indirizzo IPv6 di destinazione? L'hash avrebbe, ovviamente, molti input in collisione tra cui scegliere, e una frase potenzialmente più memorabile, come questa frase di esempio, potrebbe essere offerta automaticamente.

Immagino che ci siano due parti: prima un hash debole con una buona distribuzione in entrambe le direzioni. Il secondo è un algoritmo per selezionare frasi memorabili tra le molte collisioni (brevi, costituite da parole di una lingua specifica, forse anche seguendo una grammatica semplificata).

Sebbene la funzione hash debba essere debole, non dubito che lo sforzo sia ancora significativo - tuttavia, una volta che la frase è nota, il calcolo dell'hash all'indirizzo di destinazione è molto rapido.

MODIFICARE

Ho trovato questa idea correlata, Piphilology , per memorizzare alcune cifre di π:

Come desidero un drink, ovviamente alcolizzato, dopo le pesanti lezioni che coinvolgono la meccanica quantistica!


2
La funzione deve essere definita sull'intero spazio degli indirizzi oppure è possibile selezionare una parte dell'indirizzo per memorizzarlo? La trasformazione deve essere fattibile da un essere umano sul posto? La ridondanza deve essere inserita per rilevare errori?
Gilles 'SO- smetti di essere malvagio' il

È preferito l'intero spazio degli indirizzi. Può richiedere un computer per calcolare l'hash. La ridondanza sarebbe pulita! (Ma le parole in linguaggio umano non hanno già una buona dose di ridondanza?)
Jason Kleban

1
Perché non usare semplicemente il nome di dominio? Gli indirizzi IP non sono per il consumo umano in primo luogo e l'aggiunta di un aiutante di memoria che richiede computer non sembra così caldo.
vonbrand,

Perché i nomi di dominio richiedono la registrazione e una ricerca. I nomi di dominio vanno bene, ma utilizziamo ancora gli indirizzi IPv4 per certe cose - perché non c'è ancora lo stesso uso ma per gli indirizzi IPv6?
Jason Kleban,

Sei a conoscenza del sistema principale mnemonico ? Mappa le consonanti in cifre e aggiunge le vocali per formare le parole. Sebbene IPv6 si traduca in circa 40 parole ed è difficile farle raccontare una storia ...
Karolis Juodelė,

Risposte:


2

Prendi l'indirizzo IP e un elenco di parole. Quindi trasforma l'indirizzo IP in un elenco di parole dall'elenco di parole in base alle cifre dell'indirizzo, base {lunghezza dell'elenco di parole}.

Quindi, ad esempio, prendendo l'elenco di parole del dado e il tuo esempio, ottengo: 862A:7373:3386:BF1F:8D77:D3D2:220F:D7E0-> mew hades cup viii 72 grit photo pick raid dey(o potenzialmente il contrario, e / o imbottito dall'altra parte).

Nota che questo non è lossy. Sebbene sia possibile applicare relativamente facilmente qualsiasi tecnica con perdita a questo. Potresti semplicemente troncare l'indirizzo IP o selezionare solo ogni secondo bit o qualcosa prima di eseguirlo attraverso questa mappatura.


1
Ehi, è abbastanza carino!
Jason Kleban,

-1

Sembra che tu abbia due casi d'uso:

  • Data una frase, passerà a un indirizzo IPv6 univoco
  • Dato un indirizzo IPv6, più frasi possono hash (input di collisione). Corollario: dato un indirizzo IPv6, più frasi memorabili generali, che l'utente può scegliere.

Credo che dovresti creare la tua soluzione qui. Gli indirizzi IPv6 sono abbastanza lunghi che probabilmente devi usare una funzione come SHA1 per essere in grado di coprire lo spazio degli indirizzi.

Per massimizzare il numero di frasi in collisione, potresti provare a ignorare le vocali o le cento parole più comuni.


1
SHA1 funzionerebbe per il primo caso d'uso ma non per il secondo caso d'uso (non è possibile invertire SHA1 in un ragionevole lasso di tempo; dato un valore di 128 bit, non è possibile trovare un input con hash in un intervallo ragionevole di tempo).
DW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.