Рейтинг:2

Poly1305 повторное использование r

флаг ru

Poly1305 использует $ г, г ^ 2, г ^ 3 $ и $ г ^ 4 $. Я понимаю это, если $г$ является генератором конечного поля. Но с тех пор $г$ может быть любым случайным ненулевым числом, не будут ли его показатели распределены неравномерно? То есть, даже если $г$ выбирается равномерным случайным образом по полю, $ г ^ 4 $ неравномерно по полю. Почему это не слабость?

Обратите внимание, что в работах Бернштейна* используются аналогичные схемы для Любые конечное поле, используя до $ г ^ 8 $, подразумевая, что они приемлемы для любое конечное поле.

* Раздел 4.2 https://cr.yp.to/antiforgery/pema-20071022.pdf использует $г$ 8 раз, каждый с более высоким показателем.

Fractalice avatar
флаг in
Что вы подразумеваете под «до r ^ 8»?
флаг ru
@Fractalice Отредактировано с ответом
Fractalice avatar
флаг in
Спасибо, я вижу 8 раз, но я все еще не вижу там «каждый с более высоким показателем».
Рейтинг:4
флаг in

Действительно, по простому модулю уже $ г ^ 2 $ неравномерны - возможна только половина значений. Хотя вычисленные полиномы действительно не следуют равномерному распределению, неравномерность ограничена: каждое выходное значение полинома может иметь не более $L$ прообразы (корни), где $L$ - его степень, равная количеству блоков. Это означает, что вероятность может увеличиться с $1/р$ к $L/R$, куда $R$ это количество всех возможных $г$ (который $2^{106}$ в Поли1305). Чтобы получить незначительную вероятность успеха, нужно попытаться произвести подделку с огромным количеством блоков.

Обратите внимание, что вывод маскируется добавлением AES (один раз). Это делает слепое предсказание MAC бесполезным. Самая мощная атака здесь — попытка дифференцированной подделки: (сообщение, одноразовый номер, тег) тройной, сгенерировать еще один тройной (сообщение, одноразовый номер, тег). Тот же одноразовый номер удаляет AES (один раз) из рассмотрения в разнице $(тег' - тег)$. Мы «только» должны предсказать поли(сообщение') - поли(сообщение) для любой сообщение и сообщение' по нашему выбору. Что сложно, так как разность неравных полиномов по-прежнему является ненулевым полиномом той же или меньшей степени, и вероятность угадать правильный результат мала.

Это рассуждение работает для любого конечного поля.

редактировать: спасибо @poncho за то, что заметил опасное смешение xor и сложения с GF(p)

редактировать: в https://cr.yp.to/antiforgery/pema-20071022.pdf , Бернштейн впервые вводит MAC на основе скалярного произведения, т.е. $MAC(m) = m_1r_1 + m_2 r_2 + ... + s$. $n=8$ шары выбраны только для иллюстрации, так как это позволяет подписывать только сообщения из 8 блоков. Опять же, это делается только в воспитательных целях и для показа «чистых» исторических построений. Позже в статье он заменяет $r_i$ с $ г ^ я $: это позволяет избежать полноценной псевдослучайной генерации и хранения множества $г$с. Аналогично, полностью случайно $s$ можно заменить, например, AES (одноразовый).

флаг cn
Возможно, вы захотите немного больше углубиться в часть вопроса «любое конечное поле».
флаг ru
Спасибо. Не могли бы вы немного пояснить математику? Насколько я понимаю, вы хотите сказать: если бы мы использовали 8 отдельных значений $r$ (как показано в другой статье Бернштейна), у вас была бы вероятность $1/R$ угадать $a$. Поскольку мы используем только один $r$ и используем его в степени $L = 8$ способов, у вас есть вероятность $L/R$. Почему $L$ является показателем _max_? Я ожидаю, что это будет _сумма_ всех_ показателей (т.е. если max равно $r^8$, $L = 15$).
флаг ru
"Действительно, по простому модулю уже $r^2$ неравномерны - возможна только половина значений" Это кажется правдоподобным, но я не могу этого доказать. Можете ли вы показать, как вы его получили?
poncho avatar
флаг my
@SRobertJames: ну, половина ненулевых значений являются квадратичными невычетами по модулю $p = 2^{130}-5$; это (по определению) значения, которые не могут быть представлены в виде $r^2 \bmod p$. То есть не существует возможных значений $r$, для которых $r^2$ являются этими значениями, и, следовательно, вероятность их появления равна 0.
poncho avatar
флаг my
"Обратите внимание, что вывод маскируется (xored) с помощью AES(nonce)."; на самом деле он добавлен. Одна вещь, которую я заметил некоторое время назад, заключается в том, что если вы замените это дополнение на xor (как вы написали), вполне возможны подделки с высокой вероятностью...
Fractalice avatar
флаг in
@poncho ты прав, хороший улов! Доказательство охватывает только разницу GF(p), в то время как с xor AES(nonce) мы должны рассмотреть распределение разницы xor. Но есть ли у вас в виду конкретная атака с высокой вероятностью для этого случая?
Fractalice avatar
флаг in
@SRobertJames вычисленный полином примерно равен $m_1 r^1 + m_2r^2 + ... + m_8 r^8$ ($m_i$ - это $i$-й блок сообщения). Независимо от того, сколько членов, он имеет степень 8, поэтому L = 8.
poncho avatar
флаг my
@Fractalice: да, я нашел дифференциал (как для сообщения, так и для тега), который был успешным с вероятностью 0,25 или 0,5. Прошло некоторое время - я посмотрю, смогу ли я его выкопать ...
Fractalice avatar
флаг in
@poncho Я вижу, умножение на -1 по модулю $2^{130}-5$ очень близко к xoring со всей одной битовой строкой. Таким образом, мы могли бы использовать максимальное кодируемое значение $c_1=2^{129}$ и его отрицательное значение $c_1'=2^{129}-5$. XOR кажется равным модулю $2^{130}-5$ с высокой вероятностью.
Fractalice avatar
флаг in
Был бы показатель степени 131, это не сработает!

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

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