Как хеши Blake2b генерируются в ховратовичской реализации Equiha sh? - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь понять реализацию Ховратовича Equiha sh ( здесь ссылка ), потому что я хочу написать простой майнер Zca sh (пока я не заинтересован в оптимизации аспекты).

Анализируя реализацию, я вижу, что при использовании метода FillMemory() на каждой итерации хэшируются вместе следующие элементы (с использованием функции Blake2b ha sh):

  • Seed
  • Nonce
  • index

Полученный ha sh затем сохраняется в массиве 32-битных элементов длины 8, называемых buff[] ( получая так 256-битный буфер). То, что я не могу понять, это причина, по которой рассматриваемые кортежи являются массивами, полученными при копировании содержимого массива buff[], но с учетом только младшего значащего бита n / (k + 1) каждой ячейки массива buff[] (соответствует выполнить операцию сдвига вправо из 32- (n / k + 1) бит).

Алгоритм, после которого выполняется итерация и проверка коллизий для первых n / (k + 1) бит, для второго n / ( k + 1) битов и т. д. каждого кортежа.

В реализации Zi sh для equiha sh выполняется ли операция сдвигового регистра? Как получаются кортежи?

...