Рейтинг:1

Можете ли вы расшифровать AES вручную, если у вас есть ключ?

флаг us

Я сделал программу шифрования javascript aes, и у меня есть ключ к тому, что я зашифровал. Есть ли способ использовать этот ключ и выяснить, что было зашифровано без помощи программы? Я зашифровал "Hello" ключом 2892 и получил EQ/9Yt/IvIAmtF0wKYbb3+XYUOKuKlxJ. Есть ли способ применить ключ к символам и полностью расшифровать то, что он говорит, не создавая программу, которая сделает это за меня? Это просто для того, чтобы я мог попрактиковаться, и да, я знаю, что у меня уже есть текст.

SAI Peregrinus avatar
флаг si
«Привет» не 128 бит. 2892 не 128, 192 или 256 бит. AES определен только для блоков размером 128 бит и для ключей размером 128, 192 или 256 бит. Что бы вы ни использовали, это был не (просто) AES. Возможно, это был режим работы с использованием AES, но это определенно не был чистый AES. Не то чтобы кто-то шифровал что-либо без режима работы, это было бы глупо, но вы должны знать, какой режим использовался для расшифровки.
Рейтинг:5
флаг in

Это займет у вас некоторое время, но да. Вам придется распечатать несколько таблиц, которые рассчитывают вещи для вас, как $GF(256)$ умножение поля и инверсия, но вы могли бы это сделать. Конечно, это будет медленно и утомительно, но выполнимо.

флаг us
Ну, вы не *должны* распечатать их...
Fractalice avatar
флаг in
Вместо инверсии вы просто напечатаете S-box. Также, наверное, даже склеено с умножениями на 1, 2, 3. Остальное - правильно расставить вещи и xoring (с подключами тоже). Может помочь запись в шестнадцатеричном формате, так что xoring — это только таблица 16x16 (которую можно легко выучить).
Рейтинг:2
флаг ca

Самый простой способ заглянуть «под капот» AES — это, вероятно, одна из многих электронных таблиц AES в Excel, которые плавают вокруг: https://www.nayuki.io/page/aes-cipher-internals-in-excel

Вам также нужно будет разобраться, как было дополнено исходное сообщение, потому что размер блока AES составляет 128 бит, а «Hello» не 128 бит. Есть смысл пройтись по математике s-блока и потоку, но я бы не советовал никому делать шифр полностью вручную.

kelalaka avatar
флаг in
К вашему сведению, базовая статья идет задолго до этого http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.107.5405 Для загрузки сайта может потребоваться WebArchive.
b degnan avatar
флаг ca
@kelalaka ох, хорошая ссылка
kelalaka avatar
флаг in
Вы можете написать лучший ответ с этим; Первая образовательная попытка ..... Ручные расчеты подвержены ошибкам... Использование Excel поможет вам следить за расчетами... И неплохая выдержка из реферата (если целью было понимание и т. д.). . ).
b degnan avatar
флаг ca
@kelalaka Я сделаю это, если у меня будет несколько свободных минут. Слишком много внешнего давления в последнее время.
Рейтинг:0
флаг us

Это было бы очень долго (если это вообще осуществимо), учитывая, что оно продолжается не менее десяти раундов.

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

Если вы хотите декодировать настоящий AES, мой совет — попробовать сделать один раунд и посмотреть, можно ли с ним справиться с его реальными параметрами.

Chrᴉz remembers Monica avatar
флаг us
Пожалуйста, добавьте некоторый контент, чтобы ответить на актуальный вопрос: можно ли расшифровать aes вручную? В противном случае это должен быть комментарий, а не ответ
Рейтинг:0
флаг in

Как говорили другие, да, вы можете сделать это вручную. Я не знаю ни одной задачи, которую может выполнить обычный (т.е. не квантовый) компьютер, а вы не можете. Однако может случиться так, что некоторые задачи, которые они могут выполнить за одну секунду, займут у человека всю жизнь.

Кроме того, как указано в одном комментарии, то, что у вас здесь, не является «чистым» AES. AES принимает 128-битные блоки и ключи разного размера (64, 128, 256). Ваш ввод, предполагающий кодировку UTF-8, будет иметь длину 32 бита (и обычно будет дополнен), ваш ключ, предполагающий, что UTF-8 также имеет длину 32 бита (также мог бы использоваться как 16-битное целое число). И ваш вывод составляет 32 «символа», что предполагает, что UTF-8 составляет 256 бит. Ваш вывод, что очень удивительно, также полностью состоит из «печатных символов» (букв, символов и цифр). Очень маловероятно, что AES будет иметь такой выход (за исключением, может быть, некоторых плохих режимов, которых следует избегать). Таким образом, я очень подозреваю, что ваш вывод закодирован с использованием... чего-то... Он "похож на" Base64 (он совместим с кодировкой по умолчанию), за исключением того, что он слишком длинный для кодирования 128 бит.

Вывод: да, это можно сделать, но не пытайтесь сравнивать то, что вы сделали бы вручную, с тем, что у вас есть. Здесь была произведена дополнительная обработка.

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

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