Рейтинг:1

Почему использование одного и того же одноразового номера (IV) дважды аннулирует конфиденциальность открытого текста или даже ключа?

флаг in

Я примерно понимаю (без подробностей алгебры GF) схему GCS/GMAC:

введите описание изображения здесь

IV должен быть помещен в Counter-0, поэтому инициализируются счетчики.

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

Я не понимаю ни первого, ни второго:

Q1: Почему конфиденциальность сообщений теряется при двойном использовании одного и того же IV? Означает ли это, что открытый текст может быть выведен? Или только его часть? Я не могу представить, как это могло быть... какую часть информации можно вывести из открытых текстов и как/почему это работает? Из принципа я мог только видеть, что результат XOR (p1, p2) может быть выведен, потому что верхняя строка данных такая же, но не сама p1, p2.

Q2: Как/почему сам AES-ключ может быть раскрыт с помощью одного и того же IV пару раз?

Обратите внимание, что я хочу понять, почему и как можно провести такую ​​атаку; Я верю, что это возможно.

флаг et
Отвечает ли это на ваш вопрос? [Насколько плохо использование одного и того же IV дважды с AES/GCM?] (https://crypto.stackexchange.com/questions/26790/how-bad-it-is-using-the-same-iv-twice-with -aes-gcm)
Рейтинг:3
флаг my

Q1: Почему конфиденциальность сообщений теряется при двойном использовании одного и того же IV? Из принципа я мог только видеть, что результат XOR (p1, p2) может быть выведен, потому что верхняя строка данных такая же, но не сама p1, p2.

На самом деле, во многих случаях знание $p_1 \oplus p_2$ можно использовать для восстановления хорошего предположения о $p_1, p_2$. Это зависит от дистрибутива $p_1, p_2$ были взяты из - если есть случайные битовые строки, которые, очевидно, нельзя использовать для восстановления $p_1, p_2$ - с другой стороны, если бы это были английские строки ASCII, то это было бы на удивление легко (за исключением того, что вы не будете знать, какая из них $p_1$ и что такое $p_2$)

Q2: Как/почему сам AES-ключ может быть раскрыт с помощью одного и того же IV пару раз?

Собственно, сам AES-ключ вы не восстановите; вы можете восстановить внутреннее значение $Ч$.

Аутентификация GCM работает следующим образом; тег вычисляется путем расширения AAD и зашифрованного текста в серию 128-битных значений. $x_n, x_{n-1}, ..., x_1$ и вычисления:

$$tag = x_n H^n + x_{n-1}H^{n-1} + ... + x_1H^1 + E_k(одноразовый номер)$$

Если мы получим два разных сообщения, зашифрованных одним и тем же одноразовым номером, мы можем вычесть два уравнения, что приведет к [1]:

$$tag - tag' = (x_n - x'_n) H^n + (x_{n-1} - x'_{n-1} ) H^{n-1} + ... + (x_1 - х'_1)Н^1$$

Поскольку зашифрованные тексты (или AAD) были другими, в этих уравнениях будут некоторые ненулевые коэффициенты.

И мы знаем все коэффициенты (в отличие от случая с одним GCM, где мы не знали значение $E_k(один раз)$); это известный полином неизвестного $Ч$ степени $n$; оказывается, что в конечных полях это практично решить.

Теперь, знание $Ч$ не позволяет нам читать любые зашифрованные тексты; что это позволило бы нам сделать, так это изменить зашифрованные тексты таким образом, чтобы тег оставался действительным, тем самым аннулируя гарантию целостности GCM.


[1]: Небольшое примечание: поскольку мы работаем в конечном поле характеристики два, операции $+$ и $-$ на самом деле одинаковы, и традиционно всегда пишут как $+$. Я написал это как $-$ чтобы было более очевидно, что мы делаем.

MichaelW avatar
флаг in
Это многое объясняет! Теперь я понимаю так: злоумышленник может узнать некоторые детали открытого текста с помощью XOR. Более того, что может быть еще интереснее, он довольно легко может узнать H. таким образом, он может изменить часть шифра таким образом, чтобы Т оставался в силе. Это можно сделать эффективно. Однако не могли бы вы подтвердить, что злоумышленник не может узнать сам AES-ключ, верно? Таким образом, злоумышленник в середине может генерировать блоки мусорного шифра с правильной подписью. Это достаточно плохо, но из-за отсутствия ключа невозможно сгенерировать шифр с заданным содержимым открытого текста, верно?
poncho avatar
флаг my
@MichaelW: нет, он не может узнать ключ AES (если только он не сможет сломать сам AES); однако, если он угадывает содержимое определенного открытого текста (скажем, с помощью XOR двух зашифрованных текстов), то он может поменять местами произвольные биты в этом открытом тексте (и вычислить измененное значение тега, используя значение H, которое он узнал); это означает, что он может сгенерировать зашифрованный текст для любого открытого текста, который не длиннее оригинала.
MichaelW avatar
флаг in
хм. Сначала я должен «переварить» это... возможно, скоро появится еще один вопрос. Но на данный момент я перегружен ;-)
MichaelW avatar
флаг in
Правильно ли я понимаю: для простоты я ссылаюсь на свое изображение алгоритма GCM: допустим, злоумышленнику каким-то образом удалось узнать открытый текст-1 и открытый текст-2. Поскольку он также знает шифротекст-1 и шифротекст-2, он может легко вычислить обратно значения E_K (счетчик-1) и E_K (счетчик-2). Зная это, он теперь может вводить новые значения для открытого текста-1 и открытого текста-2 и вычислять новые значения для зашифрованного текста-1 и зашифрованного текста-2, а также действительный тег. Правильно ли я понял? Мне это кажется вполне логичным, но я не уверен... во всяком случае: мне кажется, что GCM/GMAC по своей сути немного опасен...
poncho avatar
флаг my
@MichaelW: да, это один из способов выразить это. На самом деле, я бы выразил это в терминах перестановки битов (чтобы перевернуть этот бит в открытом тексте, мы бы перевернули этот бит зашифрованного текста и, таким образом, выполнили операцию xor в этом шаблоне в теге, чтобы он все еще проверялся); однако то, что у вас есть, выглядит правильным подходом.

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

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