Цитата(denyslb @ Dec 4 2017, 02:33)

В обоих случаях оптимизации, если мы делаем просто несколько оборотов (как в PBKDF2) мы используем лишь 64*2 байта памяти, чего я стараюсь намеренно избежать.
Чем больше памяти использует KDF - тем хуже для запихивания ее перебора в FPGA/GPU и распараллеливания.
Я может скобки не так расставил. Что, и в этом случае тоже?
Идея в том, чтобы использовать часть текущего значения хэша для обращения к заранее вычисленному массиву.
На первом проходе массив заполняется хэшами последовательно.
intermediate[0] = SHA512(salt+password)
intermediate[n] = SHA512(intermediate[n-1])
На втором проходе младшие биты последнего хэша используются как адрес в ранее вычисленном массиве:
address0=intermediate[n]&ff.ff
hash0=SHA512(intermediate[address0])
address1=hash0&ff.ff
hash1=SHA512(intermediate[address1]) и т.д.
Примеры того, что вы хотите сделать, я привёл выше.