Можно ли перепроектировать AES256?

Представь, у меня есть это:

$cdata = AES_256($data, $pass);

AES_256 реализует алгоритм AES.

Если я знаю содержание $cdata и содержание $data а также иметь AES_256() код, могу ли я перепроектировать и найти $pass?

9 ответов

Решение

Простой ответ: НЕТ.

Это было проверено и упомянуто в вики-ссылке.

Атака по связанному ключу может прервать до 9 раундов 256-битного AES. Атака с использованием открытого текста может разбить 8 раундов 192- и 256-битного AES и 7 раундов 128-битного AES, хотя рабочая нагрузка нецелесообразна при 2128 - 2119.

Или, другими словами, у вас больше шансов получить удар от освещения... в тот же день, когда вы выиграли в лотерею, чем разбили ее!

Это называется атака по известному тексту. Как объяснили другие, хороший шифр, такой как AES, должен быть защищен от него.

Если $pass на самом деле это пароль, а не 256-битный ключ, вам может повезти.

Хотя это далеко не тривиально, атака методом "грубой силы" по обычному паролю намного быстрее, чем перебор 256-битного ключа.

Поэтому измените один из многих инструментов для подбора паролей, и вы получите атаку, которая (в зависимости от надежности пароля) может занять от нескольких недель до нескольких лет - но это быстро по сравнению с 3х10^51 годами...

Еще одна цитата из Википедии:

AES разрешает использование 256-битных ключей. Для взлома симметричного 256-битного ключа грубой силой требуется в 2^128 раз больше вычислительной мощности, чем для 128-битного ключа. Устройство, которое могло бы проверять миллиард миллиардов (10^18) ключей AES в секунду, потребовало бы около 3 x 10^51 года, чтобы исчерпать 256-битное пространство ключей.

Грубое принуждение, когда вы знаете, что оригинальный текст может быть быстрее, но все же, 3 х 10 ^ 51 лет - это много. Кроме того, существует проблема, возможно, отсутствия устройства, которое может проверять миллиард миллиардов (10^18) ключей в секунду.

Короче говоря, все возможно, но это невозможно в мире, в котором мы сейчас живем.

Вы можете грубо заставить его, но это займет много времени. Как в десятилетия или даже дольше. В этом суть алгоритмов шифрования, таких как AES.

AES, как и все хорошие криптоалгоритмы, не полагается на безопасность через неизвестность.

Другими словами, в коде нет "секретов", поэтому наличие кода не поможет вам особенно.

Известный открытый текст - это отдельная проблема, о которой я мало что знаю, поэтому я оставлю это другим ответчикам.

Конечно нет - единственный подход - грубая сила. Вы действительно думаете, что NIST настолько глуп, что выбирает шифр, который так легко взломать для нового стандарта?

С мощью суперкомпьютеров время для крушения шифрования AES резко сокращается.... Я слышал...

2x2^256 возможных комбинаций - это очень много. Но брутфорс - единственный путь. На самом деле это займет около 3 десятилетий. AES - лучшее шифрование, какое только возможно, я бы сказал. Но это займет столько времени при использовании процессора. Поскольку графические процессоры (GPU) основаны исключительно на математике, люди создают программы, использующие только графический процессор для взлома математических алгоритмов гораздо быстрее, чем процессор. Другими словами, AES не может длиться 3 десятилетия. Если бы только вечные коды были возможны. Похоже, что динамическое шифрование может быть единственным способом, которым люди могут действительно скрыть свою информацию в ближайшем будущем.

Другие вопросы по тегам