Слабая функция хеширования для запоминающихся адресов IPv6

10

Адреса IPv6 в форме 862A:7373:3386:BF1F:8D77:D3D2:220F:D7E0гораздо сложнее запомнить или даже расшифровать, чем 4 октета IPv4.

Там уже была попытка смягчить это, делая IPv6 - адрес как - то более запоминающимся.

Существует ли намеренно слабая хеш-функция, которую можно было бы обратить вспять, чтобы обнаружить, что фраза, скажем: «Это относительно мягко и легко определить, если фраза согнута так, чтобы не стоить платить» , хэширует целевой адрес IPv6? Хэш, конечно, будет иметь много входных данных для выбора, и потенциально более запоминающееся предложение, такое как пример фразы, может быть предложено автоматически.

Я предполагаю, что есть две части: во-первых, слабый хеш с хорошим распределением в обоих направлениях. Второй - это алгоритм выбора запоминающихся фраз из множества коллизий (короткие, состоящие из слов определенного языка, возможно, даже следуя упрощенной грамматике).

Хотя хеш-функция должна быть слабой, я не сомневаюсь, что усилия все еще значительны - однако, как только фраза известна, вычисление хеша по целевому адресу происходит очень быстро.

РЕДАКТИРОВАТЬ

Я нашел эту связанную идею, Piphilology , для запоминания некоторых цифр π:

Как же мне хочется выпить, конечно же, алкоголика после тяжелых лекций с участием квантовой механики!

Джейсон Клебан
источник
2
Должна ли функция быть определена во всем адресном пространстве, или часть адреса должна быть выбрана для запоминаемости? Должно ли преобразование быть осуществимым человеком на месте? Должна ли быть избыточность для обнаружения ошибок?
Жиль "ТАК - перестань быть злым"
Все адресное пространство является предпочтительным. Может потребоваться компьютер для вычисления хэша. Избыточность была бы аккуратной! (Но разве в человеческих словах уже нет достаточного количества избыточности?)
Джейсон Клебан,
1
Почему бы просто не использовать доменное имя? Во-первых, IP-адреса не предназначены для потребления человеком, и добавление некоторого помощника по памяти, требующего компьютера, не кажется таким уж горячим.
vonbrand
Потому что доменные имена требуют регистрации и поиска. Доменные имена в порядке, но мы все еще используем адреса IPv4 для некоторых вещей - почему до сих пор не используется то же самое, но для адресов IPv6?
Джейсон Клебан
Знаете ли вы о мнемонической мажорной системе ? Он отображает согласные на цифры и добавляет любые гласные для формирования слов. Хотя IPv6 будет переводиться примерно на 40 слов, и их трудно заставить рассказать историю ...
Karolis Juodelė

Ответы:

2

Возьмите IP-адрес и список слов. Затем включите IP-адрес в список слов из списка слов на основе цифр адреса, базы {длины списка слов}.

Так, например, используя список слов в режиме diceware и ваш пример, я получаю: 862A:7373:3386:BF1F:8D77:D3D2:220F:D7E0-> mew hades cup viii 72 grit photo pick raid dey(или, возможно, наоборот, и / или дополненный на другом конце).

Обратите внимание, это не с потерями. Хотя вы можете относительно легко применить любые методы с потерями для этого. Вы можете просто обрезать IP-адрес или выбирать только каждый второй бит или что-то еще, прежде чем запускать его через это сопоставление.

TLW
источник
1
Эй, это довольно аккуратно!
Джейсон Клебан
-1

Похоже, у вас есть два варианта использования:

  • Учитывая фразу, он будет хэшировать уникальный IPv6-адрес
  • При наличии IPv6-адреса к нему можно хэшировать несколько фраз (входящие коллизии). Следствие: учитывая IPv6-адрес, общее несколько запоминающихся фраз, которые пользователь может выбрать.

Я полагаю, что вам придется выкатить свое собственное решение здесь. Адреса IPv6 достаточно длинные, поэтому вам, вероятно, придется использовать такую ​​функцию, как SHA1, чтобы охватить адресное пространство.

Чтобы максимизировать количество встречающихся фраз, вы можете попробовать игнорировать гласные или сто самых распространенных слов.

трапеция
источник
1
SHA1 будет работать для первого варианта использования, но не для второго варианта использования (вы не можете инвертировать SHA1 в любое разумное время; учитывая 128-битное значение, вы не можете найти входные данные, которые хэшируют его в любом разумном количестве времени).
DW