Рейтинг:1

Взломать шифрование AES с помощью атаки по словарю паролей?

флаг fr

Насколько легко было бы взломать зашифрованный файл AES-256, защищенный кодовой фразой?

Я понимаю, что попытка перебора ключа шифрования AES-256 была бы неосуществимой, даже с квантовыми вычислениями. Но что, если этот ключ шифрования был сгенерирован из парольной фразы? Насколько легко было бы тогда взломать шифрование?

Я совсем не разбираюсь в криптографии, но попытался сделать несколько простых оценок: Согласно Оксфордскому словарю, в английском языке используется около 170 тысяч слов. Конечно, только часть из них является часто используемыми паролями, но давайте воспользуемся этим числом.

Если бы мы попытались взломать парольную фразу, я полагаю, мы бы начали с парольной фразы длиной в 1 слово, за которой следовали бы длинные фразы из 2 слов и так далее. Если предположить, что слова не повторяются, это даст общее количество возможностей:

$N(L) = \sum_{i=1}^L \frac{170000!}{i!}$

Где L — максимальная длина парольной фразы (количество слов), которую мы хотим попытаться взломать.

Чтобы получить ряд перестановок вокруг $2^{256}$, то нам потребуется парольная фраза не менее 18 слов, учитывая, что $N(15) = 2,85\times10^{78} = 2^{260}$.

Тогда правильно ли предположить, что если атакуемый знает, что «пароль» действительно является кодовой фразой, состоящей из английских ключей, то парольная фраза должна состоять не менее чем из 15 слов, чтобы она не была более слабым звеном в системе? Схема шифрования AES?

kelalaka avatar
флаг in
Зачем нужен такой расчет? Почему бы вам не использовать Dicewire или Bip39 для защиты вашего ключа с помощью хорошего алгоритма получения ключа, такого как Argon2 или Scrypt?
Рейтинг:2
флаг cn

Если предположить, что слова не повторяются, это даст общее количество возможностей:
$N(L) = \sum_{i=1}^L {170000 \выбрать i}$

Нет: это общее количество наборы из $L$ слова, но слова должны быть в порядке, так что значение на самом деле $N(L) = \sum_{i=1}^L \frac{170000!}{i!}$.

Кроме того, нет причин не повторять слова: это просто немного облегчает угадывание парольной фразы. Таким образом, количество $L$-словные парольные фразы на самом деле $170000^{L}$. Количество паролей $1$ к $L$ слова $$N(L) = \sum_{i=1}^L 170000^i$$

На самом деле злоумышленник, скорее всего, знает количество слов в парольной фразе, но это не сильно меняет число.

Выполняя расчет, $N(14) < 2^{256} <N(15)$.

Правильно ли тогда предположить, что, если атакуемый знает, что «пароль» действительно является кодовой фразой, состоящей из английских ключей, то парольная фраза должна быть по крайней мере 18 15-word long, чтобы он не был слабым звеном в схеме шифрования AES?

Тем не менее нет, потому что стоимость проверки парольной фразы выше, чем стоимость проверки ключа. Чтобы проверить кодовую фразу, злоумышленник должен сначала получить ключ из парольной фразы, а затем проверить ключ. Получение ключа из фразы-пароля намеренно идет медленно: растяжка ключей функция.

Насколько медленнее растяжение ключа по сравнению с вычислением хэша, зависит от выбора алгоритма растяжения ключа, от того, как он параметризован, и от того, какое оборудование есть у злоумышленника. Для грубой силы такого масштаба стоимость аппаратного проектирования незначительна, и в ней преобладает энергопотребление. Для устаревшей функции растяжения ключа с итеративной операцией, такой как PBKDF2, количество кремния для питания растяжения ключа ненамного выше, чем для AES. Обычно коэффициент медленности выбирают таким образом, что один запуск стоит несколько десятых секунды по сравнению с несколькими миллиардными долями секунды для части AES, что означает соотношение примерно $2^{26}$. С современной функцией растяжения клавиш, которая также требовательна к памяти, соотношение выше, поскольку вам также необходимо использовать оперативную память. я собираюсь использовать $2^{30}$ как соотношение.

Это означает, что для того, чтобы AES был слабее против перебора, чем парольная фраза, нам нужно $N(L) \ge 2^{256}/2^{30} = 2^{226}$, что достигается за $L\ge 13$.


Но… это число не имеет смысла! Нет абсолютно никакой необходимости в том, чтобы взлом парольной фразы был медленнее, чем взлом AES, потому что взлом AES уже практически невозможен. Если взлом парольной фразы невозможен, но «менее невозможен», чем AES, он все равно невозможен.

Сеть Биткойн использует около 0,4% от общего объема производства электроэнергии в мире (источник: ≈ 100 ТВтч/год снаружи чуть более 25000 ТВтч/год) и вычисляет â $2^{93}$ хэшей/год. Предполагая, что вы получите такое же количество элементарных операций на Втч для взлома парольной фразы, с разницей в стоимостном коэффициенте $2^{30}$ Я оценил выше, это означает, что верхняя граница для взлома парольной фразы составляет $2^{63}$ в год.

Поэтому, если вы хотите, чтобы ваш ключ был защищен от злоумышленников уровня АНБ для тысяча лет, тебе нужно $N(L) \ge 1000 \cdot 2^{63} \приблизительно 2^{73}$, что достигается за $L\ge 5$.

На этом уровне силы против грубой силы грубая сила просто не вызывает беспокойства. Или, скорее, «грубая сила», как в суперкомпьютерах, не вызывает беспокойства. Грубая сила, вызывающая озабоченность, применяется тупым инструментом.

Воображение криптоботаника:
[Кьюболл держит ноутбук, и его друг изучает его.]
Биток: Его ноутбук зашифрован. Давайте построим кластер на миллион долларов, чтобы взломать его.
Друг: Не годится! Это 4096-битный RSA!
Биток: Взрыв! Наш зловещий план сорван!
Что будет на самом деле:
[Биток держит лист бумаги и дает своему другу гаечный ключ.]
Биток: Его ноутбук зашифрован. Накачивайте его и бейте этим ключом за 5 долларов, пока он не скажет нам пароль.
Друг: Понял.

Реальная реальная реальность: действительно мотивированный злоумышленник найдет парольную фразу с помощью фишинга или, для В самом деле осторожные пользователи и мощные злоумышленники, установив камеру или установив вредоносное ПО. (Или же их комбинация.)

флаг fr
Спасибо, исправил расчет. Я понимаю, что сейчас на практике не нужно переходить на все 256-битное шифрование или 2^256 перестановок. Это было то, к чему я стремился, однако, поскольку с квантовыми вычислениями в недалеком будущем, наихудший случай грубой силы занял бы ок. $O(\sqrt{N}) шагов с использованием поиска Гровера. Я полагаю, что для того, чтобы сделать его квантово-устойчивым против не обязательно уровня АНБ, но все же мотивированного противника (в зависимости от того, сколько квантовые компьютеры будут стоить через облако), нам потребуется около 12 слов, чтобы соответствовать уровню безопасности, о котором вы упомянули?
Рейтинг:1
флаг in

Как отмечает Жиль, если у вас есть словарь из 170 000 слов (что довольно много), количество кодовых фраз с $L$ слова это: $170000^L$

При преобразовании фразы-пароля в ключ мы используем функцию деривации ключа, разработанную так, чтобы она была преднамеренно медленной, чтобы предотвратить атаки грубой силы, насколько медленнее, зависит от деталей, вокруг существует множество алгоритмов, и все современные из них настроены так, чтобы быть настраиваемо медленными.

Но если немного подсчитать, предположим, что при использовании графического процессора вы, вероятно, сможете выполнять до 1000 проверок в секунду с облачными ресурсами стоимостью 1 доллар в час. Это означает, что вы проверяете 3,6 млн парольных фраз на доллар США (это при использовании слегка устаревших, но распространенных производных паролей, например, PBKDF2 с умеренным количеством итераций, и злоумышленник использует лучшие доступные облачные ресурсы).

Теперь, чтобы понять безопасность, вы можете преобразовать длину парольной фразы в стоимость.

L=1, 170 000 возможных фраз, стоимость менее 1$

L=2, 29B возможных фраз, стоимость ~8000$

L=3, стоимость становится $1,3 млрд, что уже невозможно при использовании общедоступного облака и, вероятно, невозможно даже для государства с дополнительным выделенным оборудованием.

флаг fr
Спасибо, также очень приятно видеть примерную стоимость, чтобы помочь в перспективе! Мне просто интересно, сколько это будет с квантовыми вычислениями в недалеком будущем, и к тому же легко доступными через облако.
Meir Maor avatar
флаг in
В обозримом будущем нет соответствующих квантовых вычислений. Мы в нескольких прорывах.
eckes avatar
флаг us
Однако следует отметить, что списки паролей из топ-100 миллионов все еще находятся в диапазоне менее 1000 долларов, и они охватывают множество слабых паролей. Таким образом, если ваше программное обеспечение не использует надежную генерацию ключей (высокую итерацию), оно подвергает обычных пользователей опасности для легких атак в автономном режиме. Если используется только простой хеш, это еще хуже. Вы можете легко брутфорить до 8 символов на локальной машине.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.