Функция вывода ключа с жесткой памятью
Хэширование Balloon — это ключевая функция вывода, представляющая проверенное хэширование паролей, требующее большой памяти, и современный дизайн. Она была создана Дэном Бонехом , Генри Корриганом-Гиббсом (оба из Стэнфордского университета ) и Стюартом Шехтером ( Microsoft Research ) в 2016 году. [1] [2] Это рекомендуемая функция в рекомендациях по паролям NIST . [3]
Авторы утверждают, что Balloon:
- имеет доказанные свойства памяти ,
- построен из стандартных примитивов: он может использовать любую стандартную не-жесткую криптографическую хеш-функцию в качестве подалгоритма (например, SHA-3 , SHA-512 ),
- устойчив к атакам по сторонним каналам : схема доступа к памяти не зависит от данных, которые необходимо хэшировать,
- прост в реализации и соответствует производительности аналогичных алгоритмов.
Авторы сравнивают Balloon с Argon2 , алгоритмом с аналогичной производительностью. [1]
Алгоритм
Алгоритм состоит из трех шагов: [1]
- Расширение, при котором начальный буфер заполняется псевдослучайной последовательностью байтов, полученной из пароля и соли, многократно хэшированных.
- Перемешивание, при котором байты в буфере перемешиваются time_cost количество раз.
- Вывод, где часть буфера берется как результат хеширования.
Ссылки
- ^ abc Boneh, Dan; Corrigan-Gibbs, Henry; Schechter, Stuart (2016-01-11). "Balloon Hashing: A Memory-Hard Function Provided Provible Protection Against Sequential Attacks" (Хеширование шаров: функция, требующая большой памяти, обеспечивающая доказуемую защиту от последовательных атак). ePrint . 2016 (27) . Получено 2019-09-03 .
- ^ "Balloon Hashing". Stanford Applied Crypto Group . Stanford University . Получено 2019-09-03 .
- ^ NIST SP800-63B Раздел 5.1.1.2
Внешние ссылки
- Исследуйте код прототипа на Github
- Реализация на Python
- Реализация Rust
- Alwen; Blocki (2016). «Эффективное вычисление независимых от данных функций, требующих большой памяти». ePrint . 2016 (115).
- Alwen; Blocki (2016). «К практическим атакам на Argon2i и хеширование с помощью баллонов». ePrint . 2016 (759).