В этом аудите точная рабочая инстанциация 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) |
| Ширина состояния | |
| Rate | |
| Capacity | |
| Дайджест | 2 элемента поля, 256 бит |
| S-box | |
| Полные раунды | |
| Частичные раунды |
Одной таблицы недостаточно. Внешний линейный слой использует бинарную MDS-матрицу M4. При это вся матрица слоя, а не повторяющийся блок более широкой конструкции. Внутренняя матрица также зафиксирована исходным кодом.
Для Merkle-дерева применяется не абстрактный sponge, а двухвходовая feed-forward compression. Два 256-битных дочерних значения входят в одно состояние:
после чего узел возвращает первые две координаты суммы входа и результата перестановки:
Именно этот объект надо сопоставлять с криптоанализом. Число из таблицы для другого , другого capacity или другого режима сюда переносить нельзя.
Что показала работа Skipping Class
Мерц и Родригес Гарсия опубликовали в ePrint 2026/306 улучшенные алгебраические атаки на Poseidon2 и Poseidon2b. Результат серьёзный, но его часто пересказывают одним числом без условий.
Основная техника пропуска раундов использует тензорную структуру широких внешних матриц, не являющихся MDS целиком. В работе она применяется при
Ширины четыре в этом списке нет. Наша M4 сама является полным внешним MDS-слоем, поэтому широкий round-skipping к ней не сводится.
То же относится к популярному улучшению на . Оно получено для бинарного sponge с параметрами
Указать рядом слово Poseidon2b недостаточно, чтобы это стало атакой на GF(2^128), , и 58 частичных раундов.
Но применимую часть пропускать нельзя
В приложении A авторы отдельно разбирают двухвходовую MDS feed-forward compression. Это уже наш режим, поэтому именно эту часть я специализировал для рабочей конфигурации.
При и степени S-box допустимый шаблон пропуска имеет вид
Подстановка в теорему 5.1 при , одном пропущенном полном раунде и нуле пропущенных частичных даёт:
При используемой авторами квадратичной модели работы базиса Грёбнера, , получается:
Число описывает оценку трудоёмкости одной конкретной классической алгебраической атаки, полученную через верхнюю границу 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-. Новый выигрыш в частичном слое равен пропущенным S-box.
Ближайшая, хотя и не тождественная, геометрия для двух зафиксированных выходных полос рабочей компрессии соответствует CICO-2. При ширине четыре:
Кроме того, статья ограничивает обычные выходы CICO, а не уравнения с feed-forward левого входа. Поэтому она не добавляет ни одного пропущенного частичного раунда и не даёт более дешёвой проекции для этой компрессии. Применимой round-skipping оценкой остаётся результат из приложения A, рассчитанный выше.
Нелинейные подпространства применимы к фиксированной матрице
Beyond Linear Subspace Trails уже нельзя исключить ссылкой на другую ширину или адаптивный выбор матрицы. Конструкцию для режима компрессии можно специализировать к точной рабочей геометрии.
Для дайджеста из двух элементов поля доступный бюджет ограничений равен:
В каждом частичном раунде активен один S-box. Линейное подпространство поэтому покрывает два частичных раунда, а новая нелинейная конструкция покрывает четыре. Прежде чем использовать более длинный trail, статья требует проверить ранг конкретной внутренней матрицы. Разбиение рабочей матрицы на блоки даёт:
В настоящем рабочем поле одномерное ядро принимает значение:
Условие на ранг выполнено. Четырёхраундовый нелинейный trail существует для этой точной внутренней матрицы, но покрывает только четыре из 58 частичных раундов.
Затем я вычислил все четыре применимые модели Macaulay с рабочим расписанием раундов и проекцией из статьи:
| Модель | Лучшая позиция | Переменные | |
|---|---|---|---|
| Forward, substitution, линейная | 6 | 1090.060133886114 | |
| Forward, substitution, нелинейная | 8 | 1403.209025315336 | |
| Forward, без substitution, линейная | Прямой расчёт | 4 | 1022.830074998558 |
| Forward, без substitution, нелинейная | Прямой расчёт | 4 | 1022.830074998558 |
При ширине четыре дополнительные переменные, вводимые substitution, обходятся дороже, чем выигрыш от более длинного нелинейного trail. Минимальную проекцию в этой семье даёт линейная модель без substitution. Она всё равно значительно выше feed-forward проекции из ePrint 2026/306. Значит, более сильной применимой моделью атаки остаётся предыдущий результат.
Авторы формулируют конструкцию над и проверяют semi-regularity на инстанциациях над простыми полями. Я перенёс только алгебраическую конструкцию, выполнил операции с матрицей и проверку ранга непосредственно в рабочем GF(2^128), затем заново вычислил четыре выражения сложности. Результат является проекцией работы preimage-модели для примитива компрессии. Это не 1022 бита безопасности, не рабочая коллизия и не свидетель достижимости через корректное дерево.
Почему вообще не Keccak или SHA-256
Parano1d оптимизирует не отдельный запуск prover. Майнер один раз строит рекурсивный HistoryStep, после чего его проверяет каждый узел. Та же проверка участвует в синхронизации. Стоимость verifier непосредственно влияет на требования к сети.
Референсный benchmark в Binius хорошо показывает обмен. На AMD Ryzen 9 7900X приведённая реализация Keccak-f быстрее строит доказательство в многопоточном режиме и даёт меньший proof, но заметно проигрывает при проверке:
| Схема в benchmark | Размер proof | Prover, много потоков | Verifier, много потоков |
|---|---|---|---|
| Keccak-f | 438 KiB | 0,425 с | 46,59 мс |
Poseidon2b, n=128, t=4 | 507 KiB | 0,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 безопасен при любых параметрах. Не выдаю за уровень безопасности. Не обещаю, что завтра никто не опубликует лучшую атаку.
Утверждение одно:
Опубликованные на сегодня алгебраические атаки не ломают точную инстанциацию Poseidon2b.
Параметры, матрицы, режим, расчёт и код открыты. Для контрпримера есть задача с привязкой к исходной ревизии. Подойдёт более дешёвая атака, достижимая в рабочем режиме коллизия или прообраз, либо ошибка в соответствии между статьёй и реализацией.
Не надо атаковать слово Poseidon.
Атакуйте точную инстанциацию.
