Почему в Kademlia рекомендуется иметь 160-битные идентификаторы узлов и ключи, а не 128-битные? - PullRequest
1 голос
/ 03 июня 2019

В документе Kademlia говорится, что узлам назначаются случайные 160-битные идентификаторы, а также ключи.Это строгое ограничение?Могу ли я продолжать использовать 128-битное пространство клавиш, если это достаточно хорошо для меня?

1 Ответ

2 голосов
/ 08 июня 2019

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

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

Но в дополнение к самому алгоритму маршрутизации могут иметь значение и криптографические проблемы. Сети, использующие шифрование, выигрывают от удвоения идентификаторов узлов в качестве открытого ключа узла, и для часто используемых алгоритмов ECC требуются открытые ключи длиной не менее 256 бит. Кроме того, устойчивость к (в настоящее время гипотетическим) квантовым атакам привела к тому, что рекомендуемые размеры хэш-функций значительно превысили 128 бит, поскольку они снизили бы сопротивление столкновений до N / 3 по сравнению с N / 2 для классических атак.

...