Кратко
- RFC 9861 определяет четыре XOF, но конкретный результат также зависит от точных входных байтов, доменного байта или строки настройки и запрошенной длины.
- KT128 и KT256 переходят к дереву, когда закодированный вход превышает 8192 байта; параллельный и последовательный пути обязаны завершиться одинаковыми байтами.
- Informational RFC потока IRTF и реестры IANA координируют значения имён, но не сертифицируют библиотеку и не разрешают внедрение.
Через несколько лет команда нашла сохранённый идентификатор и запись KT128. Исходный объект тоже сохранился. Повторить значение не удалось: исчезли строка настройки, длина вывода и правило сериализации. Совпадало название примитива, но не было данных о том, какой именно вызов выполнялся.
RFC 9861 задаёт TurboSHAKE128, TurboSHAKE256, KT128 и KT256 как стабильную ссылку для реализации. Документ опубликован в октябре 2025 года; его карточка RFC Editor указывает статус Informational и поток IRTF. Это консенсус CFRG, а не Internet Standard IETF. Общая формула и локальное право принять её в производстве — разные решения.
Длина — параметр вычисления
TurboSHAKE принимает сообщение M, байт разделения домена D и положительную длину L. Допустимы D от 01 до 7F, значение по умолчанию — 1F. При одинаковых M и D короткий вывод является префиксом длинного.
Префиксное свойство не делает длины взаимозаменяемыми. Идентификаторы по 32 и 64 байта требуют собственных правил хранения и сравнения. Обрезка столбцом базы не становится протокольным профилем. В квитанции должны находиться вариант функции, D, L, сериализация и разрешённое правило усечения.
Потоковый интерфейс не отменяет порядок. Части входа должны дать тот же результат, что их точная конкатенация в порядке подачи. Части вывода после соединения должны совпасть с одним запросом на суммарную длину. Границы буфера локальны, последовательность байтов — нет.
Настройка находится внутри криптографического факта
KT128 и KT256 принимают необязательную строку C и строят S = M || C || length_encode(|C|). Имя протокола, URI или идентификатор арендатора внутри C участвует в вычислении, а не комментирует его.
Поэтому реальную власть над результатом может иметь сериализатор. Нормализация URI, иная кодировка символов или удаление «метаданных» меняют вывод при прежнем названии функции. Инвентаризация, показывающая только KT256, скрывает этот контур управления.
Пустая строка тоже требует происхождения: явный выбор, обязательный default интерфейса без параметра или потерянное значение. Сегодня байты совпадают; завтра эти состояния дают разную способность к миграции.
Порог дерева относится к S
KangarooTwelve делит S на фрагменты по 8192 байта. При длине не больше порога используется один узел. Выше порога последующие фрагменты создают chaining values, которые соединяются с первым фрагментом и кодировкой дерева в финальном узле. Для KT128 промежуточные значения имеют 32 байта, для KT256 — 64.
Так как в S уже входят C и кодировка её длины, одна смена настройки может перевести неизменное бизнес-сообщение в другой внутренний режим. Проверки должны охватывать точку перед порогом, сам порог и точку после него, с пустой и непустой C.
Ветви можно считать параллельно, но итог не может различаться. SIMD, процессор или аппаратный backend влияют на скорость, а не на допустимый результат. В этом материале не измерялись производительность и свойства продуктов.
Фиксированное имя закрывает лишь известную часть договора
В реестре IANA Named Information k12-256 означает KT128 с пустой C и выводом 32 байта, а k12-512 — KT256 с пустой C и выводом 64 байта. Это фиксированные профили, а не обозначение любого результата соответствующей семьи.
Реестр COSE Algorithms присваивает значения всем четырём функциям. Код позволяет двум системам сослаться на одну спецификацию. Он не подтверждает входные байты, параметры окружающего протокола, build библиотеки, результаты тестов и защиту ключа.
RFC заявляет стойкость 128 или 256 бит в зависимости от варианта и опирается на анализ двенадцати раундов Keccak и кодирование Sakura. NIST FIPS 202 описывает основу Keccak/SHA-3, а SP 800-185 — соседние производные функции. Эта линия происхождения не сертифицирует локальный бинарный файл или защиту от побочных каналов.
Статус erratum нельзя сглаживать
RFC публикует векторы для разных функций, длин, сообщений, настроек и границ дерева. На странице errata технический пункт 8997 пока имеет статус Reported. Он отмечает, что в нескольких вызовах KT перед первым позиционным аргументом пропущена метка M=. Предложение унифицирует обозначения и не заменяет указанные выходные байты.
Reported не равен Verified. Протокол испытания должен хранить статус, идентификатор вектора, все аргументы, ожидаемый и фактический результат, build, аппаратный путь и время. Общая отметка «passed» ничего не воспроизводит.
Равенство байтов не выдаёт полномочий
RFC определяет HopMAC и допускает другие обратимые способы расположения ключа. Поэтому запись «KT128 MAC» не фиксирует конструкцию, ключ, границу хранения, настройку и длину тега. Даже точное совпадение доказывает только вычисление по объявленному контракту, но не автора, свежесть, разрешение или последующее действие.
Спецификация, профиль, сериализация, исполнение, сравнение, принятие протоколом и реальный эффект должны оставаться отдельными записями. Их можно связать. Нельзя позволять раннему имени поглотить полномочия всех последующих слоёв.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
