Можно ли перепроектировать AES256? - PullRequest
13 голосов
/ 01 мая 2009

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

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

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

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

Ответы [ 9 ]

15 голосов
/ 01 мая 2009

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

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

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

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

13 голосов
/ 01 мая 2009

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

4 голосов
/ 01 мая 2009

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

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

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

2 голосов
/ 01 мая 2009

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

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

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

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

2 голосов
/ 01 мая 2009

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

1 голос
/ 01 мая 2009

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

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

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

0 голосов
/ 20 июня 2011

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

0 голосов
/ 17 ноября 2010

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

0 голосов
/ 01 мая 2009

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

...