Рейтинг:0

Алгоритм Гровера для AES в режиме CBC

флаг in

Привет,
Мне было интересно, теоретически возможно ли использовать алгоритм Гровера для взлома AES в режиме CBC. Предположим, что у меня есть ~ 1000 пар открытого текста/зашифрованного текста, а длина ключа составляет 128 бит. Я думал об этом так:

  1. Для каждой пары открытого текста и зашифрованного текста используйте только первые 16 байт открытого текста и первые 16 байт зашифрованного текста. (Они будут помечены как Pн, Сн где n — n-я пара)
  2. Запишите систему уравнений с одной неизвестной переменной - ключевой. (Ключ помечен как K)
    АЭС-128г1, К) АЭС-128г2, К) = P1 ⊂ P2
    АЭС-128г3, К) АЭС-128г4, К) = P3 ⊂ P4
    АЭС-128г5, К) АЭС-128г6, К) = P5 ⊂ P6
    ...
    АЭС-128г это функция расшифровки AES-128
    является исключающим ИЛИ
  3. Используйте алгоритм Гровера, чтобы найти K из приведенных выше уравнений. Если ключ найден, определить IV легко, используя это уравнение:
    АЭС-128г1, К) = P1 IV

Можно ли использовать алгоритм Гровера для инвертирования набора уравнений из шага 2? Сколько пар открытого текста/зашифрованного текста мне потребуется для однозначного определения ключа и вектора инициализации для ключей длиной 128, 192 и 256 бит?

Рейтинг:0
флаг my

$\text{AES-128}_d(C_1, K) \oplus \text{AES-128}_d(C_2, K) = P_1 \oplus P_2$

Разве это не предполагает, что два зашифрованных текста имеют один и тот же IV? Как правило, нет.

В любом случае, даже если вы не знаете ни одного из IV, более простым методом будет, если у вас есть известное двухблочное сообщение с открытым текстом. $(P_a, P_b)$ и соответствующий зашифрованный текст $(С_а, С_б)$, тогда

$$\text{AES-128}_e(P_b \oplus C_a, K) = C_b$$

Это справедливо независимо от того, какой IV был использован.

Можно ли использовать алгоритм Гровера для инвертирования набора уравнений из шага 2?

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

pajacol avatar
флаг in
Я должен уточнить, что я имел в виду, что IV действительно одинаковы, и я знаю только первые 16 байтов каждого открытого текста.
Рейтинг:0
флаг us

Алгоритм Гровера будет работать против CBC. Вы имеете в виду, что у вас есть несколько тысяч сообщений с открытым текстом/зашифрованным текстом, каждое со своим IV?

Я не уверен, что вы делаете на шаге 2. Я думаю, что обычно IV считается частью зашифрованного текста, поэтому, если у вас есть зашифрованный текст, у вас есть IV, а затем вы получаете такие уравнения, как:

АЭС-128$_d$$_1$, К) = IV $\оплюс$ п$_1$

АЭС-128$_d$$_2$, К) = С$_1 \оплюс$ п$_2$

и т.д.

Для алгоритма Гровера, поскольку вы знаете правую часть и знаете входные данные для расшифровки AES, вы можете искать в пространстве K и, для оракула, использовать схему для выполнения расшифровки AES C$_1$, С$_2$и т. д. и сравните со значением в правой части.

Для почти полной уверенности в том, что возвращаемое значение K верное, вам потребуется всего 2 блоки для AES-128 (т.е. просто C$_1$ и С$_2$ одного сообщения), 2 блока для AES-192 и 3 блока для AES-256. Как правило, если вы используете $г$ блоки, каждый с $n$ биты и с ключом $к$ бит, вероятность того, что поиск Гровера найдет правильный ключ, составляет около $е^{-2^{к-рн}}$. Так что если $k<rn$, вам практически гарантирован правильный результат (см. раздел «Фальшивые ключи» на стр. 4 Эта бумага для вывода).

pajacol avatar
флаг in
Я имел в виду, что IV одинаковы, и я знаю только первые 16 байтов каждого открытого текста, но количество этих 16-байтовых пар составляет около 1000.
Sam Jaques avatar
флаг us
А, значит, вы сможете проверять только AES-128$_d$(C$_1$, K)=IV$\oplus$ P$_1$ для каждого сообщения. Я думаю, что мой ответ будет таким же, но вы должны использовать C$_1$/P$_1$ из 2 или 3 из 16-байтовых пар.

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

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