Рейтинг:1

Можно ли найти ключ AES по заданной части ключа, зашифрованному тексту, вектору инициализации и режиму шифрования?

флаг es

Даны следующие детали:

  • Частичный ключ: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011
  • Вектор инициализации: E898EF8E91F8C9B201E6E29DF87EE152
  • Блок зашифрованного текста 1: 14B8D1412766A8520BACE4598F8AFAEE
  • Блок зашифрованного текста 2: 7Э687А49015ФА6Ф1Б914635325А6361Б
  • Блок зашифрованного текста 3: 8AD191394EF79CEC4B5A256313632CD4
  • Блок зашифрованного текста 4: 8BB4D49F3FA7A917CDF02ECCAA8C4765
  • Режим CBC Без заполнения
  • Набор символов: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890â´â~@#$%^&*(){}[]+=-_<>,.?/!:\;â|"
  • Информация о наборе символов: диапазон [32 127], кодировка ASCII, каждый символ — 8 бит.

Я думаю, что каким-то образом вам нужно будет расшифровать каждый блок зашифрованного текста с каждым из известных 32 битов ключа и работать вниз. Проблема в том, что первый блок зашифрованного текста имеет непарный ключ (XXX...)
Так что в результате вы получите обычный текст из всех известных символов, кроме первых 32 бит.

kelalaka avatar
флаг in
@ mti2935 да, вопрос простой (я пропустил некоторые части): Подсказка: сгенерируйте ключи, расшифруйте и убедитесь, что открытый текст не содержит байтов, которых нет в наборах символов.
kelalaka avatar
флаг in
Нет, вы должны использовать режим CBC для расшифровки, и отсутствие заполнения означает, что открытый текст представляет собой полный размер блока. Расшифруйте все блоки и протестируйте их. Как вы думаете, почему этот 32-битный открытый текст? Расшифровка блока оставляет 128-битный результат. Знаете ли вы, как работает блочный шифр и что такое режим CBC?
kelalaka avatar
флаг in
1) Вы можете расшифровать только полный блок (128-битный для AES) 2) при поиске 2) ключ указан в битовой строке означает, что вам нужно найти недостающие биты одного 128-битного ключа. 3) Если вы хотите, вы можете расшифровать только первый блок зашифрованного текста и проверить, проходит ли тест, затем расшифровать все и снова проверить. Чем лучше сразу расшифровать весь шифротекст и проверить. Если вы знаете какой-то код, вы можете написать этот код за пару часов.
hft avatar
флаг ng
hft
@ user274857 это должно быть помечено как домашнее задание и упражнения, если это домашнее задание. Вы должны показать нам, что вы уже пробовали. Наконец, в будущем такие вопросы, возможно, лучше задавать на обмене стеками криптографии, а не на обмене стеками информационной безопасности.
Рейтинг:3
флаг in

Можно ли добиться поиска в 32-битном ключевом пространстве?

OpenSSL с AES-NI может выполнять 61510120 итераций для 64-байтовых блоков AES-128 в режиме CBC за 3 секунды на моей машине.

бег скорость openssl -evp AES128 увидеть в вашей машине.

Это делает $2^{26}$ keyspace в течение трех секунд. нужно $2^{6} =64*3$ секунд, чтобы найти ключевых кандидатов с хорошим кодированием.


Для вашего дела создайте 3 функции;

  • $P = \operatorname{AES-Dec-CBC}(k, IV, C)$ куда $С$ блоки зашифрованного текста и $P$ это расшифрованный открытый текст под текущим ключом $к$ из $С$.
  • $k =\operatorname{GetNextCandidateKey(current)}$ Этот простой увеличивает текущий и создает ключ $k = текущий\mathbin\|1100\cdots011$ в бинарной форме. Вам нужно преобразовать это в двоичный файл, чтобы он соответствовал стандартным библиотекам шифрования.
  • $b = \operatorname{CheckTheMessage}(P)$. Эта функция получает открытый текст и проверяет, находятся ли байты в диапазоне. Если не возвращается 0 иначе возвращается 1

Теперь с этими 3 функциями;


ток = -1

в то время как текущий < 2 ^ 32 сделать:
    k = GetNextCandidateKey (текущий)
    P = AES-Dec-CBC(k, IV, C)
    b = ПроверитьСообщение(P)

    если б == 1
        печать (текущая)
    текущий++
Рейтинг:1
флаг ng
hft

Можно ли найти ключ AES по заданной части ключа, зашифрованному тексту, вектору инициализации и режиму шифрования?

Иногда это возможно. Иногда это невозможно. Это зависит от того, какую часть ключа вы уже знаете.

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

hft avatar
флаг ng
hft
Посмотрите на результат расшифровки. Например, если какой-либо байт не находится в указанном вами (или вашим учителем) диапазоне [32,127), вы можете выбросить этот ключ и попробовать другой.\

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

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