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]: Небольшое примечание: поскольку мы работаем в конечном поле характеристики два, операции $+$ и $-$ на самом деле одинаковы, и традиционно всегда пишут как $+$. Я написал это как $-$ чтобы было более очевидно, что мы делаем.