реклама на сайте
подробности

 
 
> Крипто, кастомная функция получения ключа
denyslb
сообщение Nov 27 2017, 19:47
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 111
Регистрация: 5-05-10
Из: Lebanon, Beirut
Пользователь №: 57 093



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

Задача - сделать алгоритм формирования ключа из passphrase, чтобы он не перебирался слишком просто на ASIC/GPU/FPGA (как например PBKDF2).

Функция такова:
Есть фиксированный salt[X]
Есть password
первый оборот -
intermediate[0] = SHA512(salt+password)
intermediate[n] = SHA512(intermediate[0] + ... + intermediate[n-1]) (т.е. хешируем все бОльший и больший блок)
Т.е. упор на то, что в последующих оборотах используется материал всех предыдущих(чтобы не параллелили), и к концу обьем используемой памяти растет(чтобы не засунули в ASIC/FPGA с быстрой памятью перебирающий в несколько потоков)
Конечное вычисление = последний оборот.

Имеет ли право на жизнь такое?


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jojo
сообщение Nov 30 2017, 22:05
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Первый проход
intermediate[0] = SHA512(salt+password)
intermediate[n] = SHA512(intermediate[n-1])
Второй проход

= SHA512(intermediate[SHA512(intermediate[0]&ff.ff])&ff.ff]) n раз

Примеры scrypt, cryptonight и, конечно, Ethereum.
Go to the top of the page
 
+Quote Post
denyslb
сообщение Dec 3 2017, 23:33
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 111
Регистрация: 5-05-10
Из: Lebanon, Beirut
Пользователь №: 57 093



Цитата(jojo @ Dec 1 2017, 01:05) *
Первый проход
intermediate[0] = SHA512(salt+password)
intermediate[n] = SHA512(intermediate[n-1])
Второй проход

= SHA512(intermediate[SHA512(intermediate[0]&ff.ff])&ff.ff]) n раз

Примеры scrypt, cryptonight и, конечно, Ethereum.

В обоих случаях оптимизации, если мы делаем просто несколько оборотов (как в PBKDF2) мы используем лишь 64*2 байта памяти, чего я стараюсь намеренно избежать.
Чем больше памяти использует KDF - тем хуже для запихивания ее перебора в FPGA/GPU и распараллеливания.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 00:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016