Рейтинг:2

Естественная устойчивость к атакам по сторонним каналам XMSS/LMS/SPHINCS+

флаг cn

Авторы утверждают, что все эти схемы постквантовой подписи естественным образом устойчивы к атакам по сторонним каналам. Мой вопрос, почему или как?

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

Авторы утверждают, что все эти схемы постквантовой подписи естественным образом устойчивы к атакам по сторонним каналам. Мой вопрос, почему или как?

Что ж, давайте разберем это:

  • С точки зрения времени и побочных каналов на основе кеша очевидная реализация довольно хороша (исключение: наборы параметров на основе хараки Sphincs+).

И вот почему: естественная реализация функций SHA-256 и SHAKE опирается на инструкции, которые на современных процессорах выполняются постоянно (логические операции, модульное сложение, сдвиги/повороты на постоянные величины) и не делают доступ к памяти или данным зависимым от данных. -зависимые ветки (за исключением тех, которые основаны на длине сообщения - единственное задействованное сообщение переменной длины - это хеш исходного сообщения, и мы не считаем подписываемое сообщение секретным). Кроме того, естественная реализация инфраструктуры HBS (например,цепочка Винтерница или вычисления дерева Меркла) также не имеет секретного доступа к памяти или ветвей (она включает условные ветвления, однако эти условия всегда являются функциями либо сообщения, либо значений, которые мы помещаем в подпись; то есть значения чтобы противник все равно знал).

Следовательно, тайминг и побочные каналы на основе кеша не дают никакой ценности, о которой злоумышленник еще не знал (при условии, конечно, что реализация не пытается преднамеренно осуществить утечку).

  • С точки зрения мощности или атак по сторонним каналам в стиле EMF, история не так ясна.

Большинство внутренних значений (например, внутренние узлы дерева Меркла) на самом деле не являются секретными. Кроме того, атака power/EMF (при условии, что сигнатура не настолько надежна, чтобы было достаточно одной трассировки — с симметричными операциями, о которых мы говорим, они, как правило, не таковы) требует использования одного и того же секретного значения в ряде различных контексты; следовательно, предыдущие значения в цепочке Винтерница также трудно атаковать (поскольку эти значения используются только один раз).

Что может быть атаковано, так это функция, используемая для генерации начальных значений для цепей Винтерница (и для Sphincs+ листья FORS). Что обычно делается во всех трех случаях (и формально предписано Sphincs+), так это использование одного и того же статического начального числа (с разными дополнительными параметрами) для непосредственной генерации этих значений — это именно то, что потребуется для атаки DPA (и, конечно же, как только злоумышленник восстанавливает это, что ж, игра окончена). Документ Sphincs+ раунда 3 предполагает, что в этом случае вы можете использовать реализацию хеш-функции, устойчивую к DPA.

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

флаг cn
поэтому обычно хэш-функция должна давать результаты с постоянной мощностью. как насчет атаки CPA или внедрения ошибок, которые могут манипулировать индексом подписи (заставить его подписывать одним и тем же ключом дважды)?
poncho avatar
флаг my
@hooujki: Нет, хеш-функции обычно не дают результатов с постоянной мощностью - фактический перевод записанной потребляемой мощности в секреты обычно требует нескольких трассировок в разных контекстах. Что касается CPA («Атаки с выбранным открытым текстом»), там нет ничего полезного (однако они обычно не считаются атаками по сторонним каналам).
poncho avatar
флаг my
@hooujki: Что касается атак сбоев, для LMS и XMSS они зависят от логики обхода дерева Меркла (не так уж сложно, но не тривиально, а также не указано в документации); со Sphincs + атаки сбоя довольно сильны, и единственная известная мне контрмера — «вычислить дважды, надеюсь, злоумышленник не сможет дважды ввести один и тот же сбой.
флаг cn
под CPA я имею в виду «Анализ мощности корреляции». Инжекция одной и той же ошибки (изменения в MSB/LSB) может оказаться не такой уж сложной задачей. Под логикой обхода вы имеете в виду алгоритмы оптимизации, используемые для генерации корневого значения в качестве подписавшего?
poncho avatar
флаг my
@hooujki: будут ли «Анализ мощности корреляции» иметь те же ограничения (необходимо запускать несколько раз для связанных неидентичных операций), что и DPA? Если да, то ответ тот же. Что касается «логики ходьбы», то на самом деле полный ответ занял бы больше места, чем разрешено в комментарии — краткий ответ заключается в том, что вы можете выполнить одностороннюю функцию для создания листьев Винтерница (поэтому, как только вы подпишитесь, вы можете больше не переподписывать этим листом - вы забыли, как это сделать), и вы также (в иерархической модели) кэшируете промежуточные подписи. Опять же нетривиально, но выполнимо.
флаг cn
но как создать одностороннюю функцию для этих листьев, если их нужно воссоздавать дважды? Вы можете создать начальные значения с помощью PRNG, как в классическом предположении Винтерница, но вы не можете этого сделать, поскольку после того, как открытый ключ сгенерирован в первый раз, подписывающая сторона должна использовать те же значения (PRNG не может дать то же значение) для воссоздания открытый ключ соответствующей схемы при подписании
poncho avatar
флаг my
@hooujki: да, подписывающей стороне необходимо выполнить несколько проходов по дереву Меркла (если только он не кэширует все значения Winternitz, чего никто не делает). Для начальных проходов мы бы сохранили начальное состояние PRNG. Нас интересует только последний проход (тот, который подписывает сообщение); как только мы подпишем сообщение, мы сможем обновить состояние PRNG *и забыть предыдущее состояние*. Тогда нас нельзя обманом заставить снова подписать с помощью этого OTS (потому что мы забыли необходимое состояние). Ошибки в предыдущих проходах приведут к недействительным подписям, но не приведут к утечке. Выполнимо, неочевидно

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

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