Вопрос

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

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

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

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

Это было полезно?

Решение

Простой ответ:нет.

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top