Потерял ноутбук с шифрованием LUKS в конце 2019 года и теперь пытается выяснить шансы очень изощренного злоумышленника, который сможет взломать его.
Контейнер LUKS был создан в середине 2017 года с настройками по умолчанию LUKS1.
ЦП, который я использовал тогда, был Intel Core i7-6700K который у меня еще есть.
Я провел несколько тестов с бенчмарк cryptsetup
который дал следующее значение для PBKDF2-sha1.
PBKDF2-sha1 1659139 итераций в секунду для 256-битного ключа
Я не могу вспомнить точный пароль, который я использовал (у меня их слишком много), за исключением того факта, что он состоит как минимум из 14 символов и содержит [a-z0-9] и его нет ни в одном словаре (проверил rockyou2021.txt).
Я нашел тестовую таблицу на GitHub, используя Nvidia GeForce RTX 3090.
Хэш-режим: 12000 — PBKDF2-HMAC-SHA1 (Итерации: 999)
Скорость.#1.........: 9240,9 кГц/с (47,48 мс) @ Ускорение: 16 Циклов: 499 Thr: 1024 Vec: 1
Хэш-режим: 12001 — Atlassian (PBKDF2-HMAC-SHA1) (Итерации: 9999)
Скорость.#1.........: 923,3 кГц/с (72,49 мс) при ускорении: 8 циклов: 1024 Thr: 1024 Vec: 1
Hashmode: 22600 — пароль для настольного приложения Telegram (PBKDF2-HMAC-SHA1) (итерации: 3999)
Скорость.#1.........: 328,7 кГц/с (63,58 мс) при ускорении: 8 циклов: 128 Thr: 1024 Vec: 1
Основываясь на этих цифрах, я сделал вывод, что GPU может вычислить 9249 кГц/с за 1000 итераций.
Если количество итераций увеличить в 1659 раз до 1659139, это будет означать, что скорость графического процессора упадет до: $\frac{9249 кГн/с}{1659}$ = 5575 Гн/с. Это означает, что злоумышленник может эффективно проверять только 5575 паролей в секунду с помощью одного графического процессора.
Возможные пароли на основе набора символов ([a-z0-9], длина=14): $36^{14}$.
Для простоты давайте сократим это пополам, что оставит нам средний случай: $\frac{36^{14}}{2}=3*10^{21}$.
Это означает, что злоумышленнику потребуется в среднем $\frac{3*10^{21}}{5575}=5*10^{17}$ секунд, чтобы подобрать правильный пароль, равный $3*10^{9}$ годы. Это означает, что даже если бы у злоумышленника был 1 миллион таких графических процессоров, для взлома пароля все равно потребовалось бы 300 лет.
Мои вопросы:
- В какой степени относительно большое количество итераций компенсирует относительно слабую энтропию моего пароля с учетом перебора или атаки по словарю на современном графическом процессоре?
- Я упустил какую-то важную деталь в своем анализе?