
Криптологически зачарованный секрет Шамира.

Криптограф или серьёзный разработчик, изучающий CESS, обычно сначала откроет vectors/ и testdata/ перед чтением текста. Тестовый набор — это подтверждение работы: он кодирует предметные знания, которые нельзя заменить одним повествованием.
Это не повод скрывать суть от всех остальных. Люди, оценивающие проект для закупки, решающие, стоит ли вносить вклад, пишущие политику или выпускающие код без глубокой подготовки в методологии криптографического тестирования, всё равно заслуживают указания на конкретные доказательства. Репозиторий уже содержит правила аудита и исключения алгоритмов; связывание этой истории с опубликованными тестовыми векторами устраняет разрыв между «утверждениями на странице» и «артефактами, которые можно запустить».
На что смотреть: Материалы для проверки соответствия включают RFC 8439 – рабочие примеры для ChaCha20-Poly1305 (IETF AEAD, на который нормативно ссылается этот проект) и включённый Wycheproof JSON для граничных случаев ChaCha20-Poly1305 из testdata/wycheproof/. Вместе с собственными TOML-векторами проекта в vectors/ они являются истиной, которую может проверить раннер и рецензенты.
RFC 8439 опубликован Инженерным советом Интернета (IETF) — организацией, которая стандартизирует большую часть того, как работает Интернет. RFC (Request for Comments) — обычная форма для протоколов и многих криптографических спецификаций. RFC 8439 определяет аутентифицированное шифрование ChaCha20-Poly1305 (основанное на разработках Дэниела Бернстайна) и содержит конкретные рабочие примеры с определёнными входными данными и ожидаемыми результатами, чтобы независимые реализации могли проверить, что они соответствуют стандарту побайтно. Широко воспроизводимый открытый текст, начинающийся с Ladies and Gentlemen of the class of '99: wear sunscreen, присутствует в примерах приложения RFC: если ваш код воспроизводит выходные данные AEAD точно, это сильная проверка того, что вы правильно реализовали конструкцию. Это криптографический аналог официального ключа ответов. (Более ранний RFC 7539 документировал ChaCha20 и Poly1305 для других контекстов IETF; RFC 8439 является обычным справочником для этого AEAD, используемого здесь и в spec/CESS-v0.2.md.)
Wycheproof — это тестовый корпус, выпущенный командой безопасности Google (2017). Название отсылает к горе Уайчепруф в Австралии — часто упоминаемой как самая маленькая гора в мире, — потому что проект сосредоточен на устранении маленьких, но фатальных препятствий: целочисленные переполнения, граничные случаи, некорректные входные данные и подделанные аутентификационные теги; ошибки, которые повторяются в реальных криптографических развертываниях. Он дополняет векторы в стиле RFC: примеры в стиле RFC 8439 демонстрируют корректность по отношению к опубликованному AEAD; Wycheproof проверяет надёжность там, где реализации исторически ломались.
Что это говорит о данном стандарте — решать хорошо информированному читателю.
Также можно проверить целостность крейтов с помощью этого, когда PR будет закрыт: https://github.com/rust-lang/cargo/issues/16850
Версия: 0.2
Статус: Только спецификация (нормативный текст и тестовые векторы)
Этот проект зарегистрирован в Open Invention Network (OIN) — оборонительном патентном пуле, защищающем Linux-ориентированное открытое программное обеспечение. Сочетание открытой предварительной публикации (установление предшествующего уровня техники), членства в OIN и лицензирования GPL-3.0 направлено на то, чтобы эта технология оставалась свободно доступной и не могла быть присвоена или ограничена каким-либо государственным или коммерческим субъектом.
CESS — это открытый криптографический стандарт для порогового разделения секрета в сочетании с агностическим по отношению к шифру аутентифицированным шифрованием, шифрованием долей на основе пароля и опциональным постквантовым гибридным обменом ключами. Он предназначен для развёртываний, требующих долговременной конфиденциальности, автономного включения, привязки к аппаратным токенам и путей закупок, независимых от NSA/NIST-базовых алгоритмов.
Неспециалисты могут начать с глоссария (термины от А до Я на простом языке).
Существующие экосистемы решают часть этой проблемы, но оставляют пробелы:
CESS определяет стандарт; SplitDisk (и аналогичные продукты) — это справочные сценарии и примеры развёртывания, а не сам стандарт.
CESS фиксирует схему разделения секрета Шамира над GF(2^8) и несколько проверенных обязательных примитивов целостности и паролей. Все массовое шифрование, KEM, KDF и MAC слои являются выбираемыми из проверенного реестра, с учётом правила двух независимых аудиторов и жёсткого списка исключений (см. spec/CESS-v0.2.md и ALGORITHM-REGISTRY.md).
Простые кривые NIST, широко используемые в правительстве США и промышленности (P-256, P-384, P-521), были выбраны в процессе, в котором NSA играло документированную роль. CESS не основывается на единственном математическом доказательстве слабости этих кривых; он применяет политическое исключение, чтобы стандарт мог обслуживать закупочные, связные и инженерные пути, требующие криптографии, обоснованной вне NSA/NIST-базиса, и отдающие предпочтение независимо проверенным примитивам (см. spec/CESS-v0.2.md, раздел 3 и ALGORITHM-REGISTRY.md).
Классический ECDH в CESS использует кривые Brainpool (RFC 5639). Их параметры получены по опубликованным правилам генерации, и они естественно вписываются в BSI-ориентированные и европейские дискуссии, покрывая сравнимые целевые уровни стойкости (например, BrainpoolP384r1 против стойкости уровня P-384) без принятия исключённого семейства кривых NIST.
Подробности: spec/CESS-v0.2.md раздел 3, spec/CRYPTO.md и ALGORITHM-REGISTRY.md.
Участники соглашаются с соглашением о неисключении патентов в PATENTS.md. Проект зарегистрирован в Open Invention Network (OIN) — оборонительном патентном пуле для Linux-ориентированного открытого ПО. Перекрёстное лицензирование через OIN само по себе не покрывает стороны вне этой экосистемы; соглашение предназначено для устранения этого пробела для соответствующих реализаций.
См. CONTRIBUTING.md. Pull requests рассматриваются как согласие с PATENTS.md. Изменения спецификации требуют двух рецензентов из разных стран. Новые алгоритмы добавляются через ALGORITHM-REGISTRY.md (откройте PR в реестр, затем, если необходимо, в spec/CESS-v0.2.md перекрёстные ссылки).
ALGORITHM-REGISTRY.md (таблица доказательств, присвоение идентификатора).vectors/, покрывающие новый набор.CONTRIBUTING.md.CESS — это стандарт. SplitDisk — это пример сценария реализации (например, шифрование диска плюс распределение долей); спецификация инструмента находится в том репозитории. Продукты могут заявлять о соответствии CESS-CORE, CESS-FULL или CESS-PQ в соответствии с CONFORMANCE.md без использования имени SplitDisk.
| Путь | Роль |
|---|
spec/CESS-v0.2.md | Основной нормативный стандарт (ключевые слова RFC 2119) |
spec/CRYPTO.md | Криптографическое обоснование и наброски доказательств |
spec/GOVERNMENT.md | Заметки для правительственных и высокозащищённых развёртываний |
ALGORITHM-REGISTRY.md | Живой реестр одобренных и исключённых алгоритмов |
GLOSSARY.md | Глоссарий криптографических и CESS-терминов на простом языке (А–Я) |
vectors/ | Машиночитаемые тестовые векторы (TOML: ChaCha/Serpent/Twofish bulk, интеграционные и т.д.); CC0 |
testdata/wycheproof/ | Включённый Wycheproof ChaCha20-Poly1305 JSON (исходный Apache-2.0); см. testdata/wycheproof/README.md |
scripts/ | Вспомогательные скрипты генерации векторов (GPL-3.0 для кода) |
runner/ | Раннер проверки соответствия (Rust, GPL-3.0) |
LICENSE-SPEC | CC0 1.0 — спецификация и векторы |
LICENSE-CODE | GPL-3.0 — код |
PATENTS.md | Контекст OIN и соглашение о неисключении патентов для участников |
CONTRIBUTING.md | Правила внесения вклада и политика рецензирования |
CONFORMANCE.md | Как заявлять и документировать соответствие |
IMPLEMENTATIONS.md | Опциональный список соответствующих продуктов |
| Содержимое | Лицензия |
|---|
Текст спецификации (spec/*.md), README.md, ALGORITHM-REGISTRY.md, GLOSSARY.md, vectors/*.toml | CC0 1.0 Universal (общественное достояние) — см. LICENSE-SPEC |
Rust раннер, эталонные реализации, scripts/serpent_helper/ | GNU GPL v3.0 — см. LICENSE-CODE |