Аннотация

В этом аудите точная рабочая инстанциация Poseidon2b сопоставляется с опубликованными семьями алгебраических атак. Feed-forward модель из ePrint 2026/306 применяется с проекцией около 2^409.8738 операций. Конструкция нелинейных подпространств из ePrint 2026/1792 тоже переносится после точной проверки ранга в GF(2^128), но её минимальная проекция составляет около 2^1022.8301. Атаки с адаптивным выбором матрицы и новый S-box-skipping результат к зафиксированной компрессии ширины четыре не переносятся. Эти числа описывают модели атак, а не уровень безопасности.

В криптографии слово «безопасен» всегда требует продолжения.

Безопасен где? В каком поле? С какой шириной состояния, матрицами, числом раундов и режимом применения? От какой атаки? Название семейства хеш-функций не отвечает ни на один из этих вопросов.

Поэтому заголовок «Poseidon2b безопасен» я свожу к утверждению, которое можно проверить:

Опубликованные на сегодня алгебраические атаки не ломают точную инстанциацию Poseidon2b, работающую в Parano1d.

Это не обещание вечной безопасности и не попытка объявить число раундов священным. Это проверка конкретной рабочей конструкции по конкретной опубликованной работе.

Что именно мы анализируем

В протоколе используется Poseidon2b ширины четыре над бинарным полем расширения. Полная параметризация выглядит так:

ПараметрРабочее значение
ПолеGF(2^128)
Ширина состоянияt=4t=4
Rater=2r=2
Capacityc=2c=2
Дайджест2 элемента поля, 256 бит
S-boxx7x^7
Полные раундыRF=8R_F=8
Частичные раундыRP=58R_P=58

Одной таблицы недостаточно. Внешний линейный слой использует бинарную MDS-матрицу M4. При t=4t=4 это вся матрица слоя, а не повторяющийся блок более широкой конструкции. Внутренняя матрица также зафиксирована исходным кодом.

Для Merkle-дерева применяется не абстрактный sponge, а двухвходовая feed-forward compression. Два 256-битных дочерних значения входят в одно состояние:

x=(a0,a1,b0+IV0,b1+IV1),x=(a_0,a_1,b_0+\mathsf{IV}_0,b_1+\mathsf{IV}_1),

после чего узел возвращает первые две координаты суммы входа и результата перестановки:

Tr2(P(x)+x).\operatorname{Tr}_2(P(x)+x).

Именно этот объект надо сопоставлять с криптоанализом. Число из таблицы для другого tt, другого capacity или другого режима сюда переносить нельзя.

Что показала работа Skipping Class

Мерц и Родригес Гарсия опубликовали в ePrint 2026/306 улучшенные алгебраические атаки на Poseidon2 и Poseidon2b. Результат серьёзный, но его часто пересказывают одним числом без условий.

Основная техника пропуска раундов использует тензорную структуру широких внешних матриц, не являющихся MDS целиком. В работе она применяется при

t{12,16,20,24}.t\in\{12,16,20,24\}.

Ширины четыре в этом списке нет. Наша M4 сама является полным внешним MDS-слоем, поэтому широкий round-skipping к ней не сводится.

То же относится к популярному улучшению на 21062^{106}. Оно получено для бинарного sponge с параметрами

(n,t,c,d)=(32,24,8,8),RP=15.(n,t,c,d)=(32,24,8,8),\qquad R_P=15.

Указать рядом слово Poseidon2b недостаточно, чтобы это стало атакой на GF(2^128), t=4t=4, c=2c=2 и 58 частичных раундов.

Но применимую часть пропускать нельзя

В приложении A авторы отдельно разбирают двухвходовую MDS feed-forward compression. Это уже наш режим, поэтому именно эту часть я специализировал для рабочей конфигурации.

При t=4t=4 и степени S-box α=7\alpha=7 допустимый шаблон пропуска имеет вид

(1,[1]+[7]t/21)=(1,[1,7]).(1,[1]+[7]^{t/2-1})=(1,[1,7]).

Подстановка в теорему 5.1 при d=2d=2, одном пропущенном полном раунде и нуле пропущенных частичных даёт:

dI7d(RFrF)+(RPrP)iδi=72(81)+587=773.\begin{aligned} d_I &\le 7^{d(R_F-r_F)+(R_P-r_P)}\prod_i\delta_i\\ &=7^{2(8-1)+58}\cdot7\\ &=7^{73}. \end{aligned}

При используемой авторами квадратичной модели работы базиса Грёбнера, ω=2\omega=2, получается:

log2(dI2)=409.873818620410\log_2(d_I^2)=409.873818620410\ldots
Это не 409 бит безопасности

Число описывает оценку трудоёмкости одной конкретной классической алгебраической атаки, полученную через верхнюю границу ideal degree. Оно не доказывает отсутствие других атак и не заменяет отдельное допущение о фиксированном Poseidon2b в QROM-анализе. Вывод скромнее: эта техника не даёт атаки ниже целевого уровня 128 бит для зафиксированной инстанциации.

Адаптивно выбранная матрица означает другую инстанциацию

Slipway и Midpoint Reset строят ослабленные наборы параметров, выбирая MDS-матрицу после того, как стали известны раундовые константы. Slipway проводит ограниченное семейство входов через начальные полные раунды в конечный subspace trail. Midpoint Reset использует ту же свободу для построения коллизии, проходящей все раунды.

Это важное предупреждение для генераторов собственных параметров. Одной проверки MDS-свойства недостаточно, если матрица могла быть подобрана в зависимости от констант.

Но к зафиксированной рабочей инстанциации эти атаки не относятся. Обе матрицы и полное расписание констант уже входят в закреплённую перестановку, и атакующий не может их заменить. Кроме того, Midpoint Reset работает над простым полем нечётной характеристики, тогда как рабочая конфигурация использует GF(2^128). Ни одна из двух работ не даёт коллизии, свидетеля или оценки атаки для матриц, используемых Parano1d.

При ширине четыре S-box skipping не даёт нового выигрыша

From Round Skipping to S-Box Skipping вводит generalized subspace restriction для обычной модели Poseidon CICO-kk. Новый выигрыш в частичном слое равен t2kt-2k пропущенным S-box.

Ближайшая, хотя и не тождественная, геометрия для двух зафиксированных выходных полос рабочей компрессии соответствует CICO-2. При ширине четыре:

t2k=422=0.t-2k=4-2\cdot2=0.

Кроме того, статья ограничивает обычные выходы CICO, а не уравнения с feed-forward левого входа. Поэтому она не добавляет ни одного пропущенного частичного раунда и не даёт более дешёвой проекции для этой компрессии. Применимой round-skipping оценкой остаётся результат из приложения A, рассчитанный выше.

Нелинейные подпространства применимы к фиксированной матрице

Beyond Linear Subspace Trails уже нельзя исключить ссылкой на другую ширину или адаптивный выбор матрицы. Конструкцию для режима компрессии можно специализировать к точной рабочей геометрии.

Для дайджеста из двух элементов поля доступный бюджет ограничений равен:

Ec=td=42=2.E_c=t-d=4-2=2.

В каждом частичном раунде активен один S-box. Линейное подпространство поэтому покрывает два частичных раунда, а новая нелинейная конструкция покрывает четыре. Прежде чем использовать более длинный trail, статья требует проверить ранг конкретной внутренней матрицы. Разбиение рабочей матрицы на блоки A,B,C,DA,B,C,D даёт:

Ne=BSCA11,S=DCA1B.N_e=BSC A^{-1}-1,\qquad S=D-CA^{-1}B.

В настоящем рабочем поле одномерное ядро принимает значение:

Ne=0xbe320.N_e=\mathtt{0xbe32}\neq 0.

Условие на ранг выполнено. Четырёхраундовый нелинейный trail существует для этой точной внутренней матрицы, но покрывает только четыре из 58 частичных раундов.

Затем я вычислил все четыре применимые модели Macaulay с рабочим расписанием раундов и проекцией ω=2\omega=2 из статьи:

МодельЛучшая позицияПеременныеlog2(C2)\log_2(C^2)
Forward, substitution, линейнаяτ=28\tau=2861090.060133886114
Forward, substitution, нелинейнаяτ=27\tau=2781403.209025315336
Forward, без substitution, линейнаяПрямой расчёт41022.830074998558
Forward, без substitution, нелинейнаяПрямой расчёт41022.830074998558

При ширине четыре дополнительные переменные, вводимые substitution, обходятся дороже, чем выигрыш от более длинного нелинейного trail. Минимальную проекцию в этой семье даёт линейная модель без substitution. Она всё равно значительно выше feed-forward проекции 409.873818620410409.873818620410 из ePrint 2026/306. Значит, более сильной применимой моделью атаки остаётся предыдущий результат.

Это перенос модели атаки, а не коллизия

Авторы формулируют конструкцию над FpF_p и проверяют semi-regularity на инстанциациях над простыми полями. Я перенёс только алгебраическую конструкцию, выполнил операции с матрицей и проверку ранга непосредственно в рабочем GF(2^128), затем заново вычислил четыре выражения сложности. Результат является проекцией работы preimage-модели для примитива компрессии. Это не 1022 бита безопасности, не рабочая коллизия и не свидетель достижимости через корректное дерево.

Почему вообще не Keccak или SHA-256

Parano1d оптимизирует не отдельный запуск prover. Майнер один раз строит рекурсивный HistoryStep, после чего его проверяет каждый узел. Та же проверка участвует в синхронизации. Стоимость verifier непосредственно влияет на требования к сети.

Референсный benchmark в Binius хорошо показывает обмен. На AMD Ryzen 9 7900X приведённая реализация Keccak-f быстрее строит доказательство в многопоточном режиме и даёт меньший proof, но заметно проигрывает при проверке:

Схема в benchmarkРазмер proofProver, много потоковVerifier, много потоков
Keccak-f438 KiB0,425 с46,59 мс
Poseidon2b, n=128, t=4507 KiB0,564 с6,52 мс

Это benchmark двух реализаций в одном стеке, а не математическая теорема о превосходстве над любой возможной схемой Keccak. Качество circuit и способ арифметизации здесь входят в результат. Именно поэтому такой benchmark полезен для инженерного выбора и бесполезен как универсальный рейтинг хеш-функций.

Нагрузка Parano1d тоже не произвольна. Состояние ширины четыре принимает два 256-битных Merkle-узла и за одну перестановку возвращает 256-битный результат. Значения PCS и вызовы Фиата-Шамира уже представлены 128-битными полосами бинарного поля. Рекурсивная проверка остаётся в той же арифметике.

Keccak остаётся реальной альтернативой. BLAKE2 менее удобен из-за ARX-сложений, которые требуют доказательства переносов. Poseidon2b выбран не по названию, а потому, что точная рабочая операция естественно ложится в точную рабочую арифметизацию.

Проверка должна ломаться вместе с параметрами

Текстовый отчёт легко устаревает. Поэтому исполняемая проверка криптоанализа сначала читает закреплённую рабочую конфигурацию и только потом вычисляет обе применимые семьи моделей.

Она фиксирует поле, ширину, rate, размер дайджеста, S-box, расписание раундов, обе линейные матрицы и режим Merkle compression. Также зафиксированы версии всех проверенных статей и SHA-256 их PDF. Любое изменение этих входов отклоняет старый вывод.

Выкладка опубликована в документе Category 1, рядом с полным разбором каждой статьи. Соответствующая рабочая реализация закреплена той же ревизией исходного кода.

Что именно я утверждаю

Я не утверждаю, что Poseidon2b безопасен при любых параметрах. Не выдаю 2409.872^{409.87} за уровень безопасности. Не обещаю, что завтра никто не опубликует лучшую атаку.

Утверждение одно:

Опубликованные на сегодня алгебраические атаки не ломают точную инстанциацию Poseidon2b.

Параметры, матрицы, режим, расчёт и код открыты. Для контрпримера есть задача с привязкой к исходной ревизии. Подойдёт более дешёвая атака, достижимая в рабочем режиме коллизия или прообраз, либо ошибка в соответствии между статьёй и реализацией.

Не надо атаковать слово Poseidon.

Атакуйте точную инстанциацию.