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

Криптограф или серьёзный разработчик, изучающий 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.