Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
fips203 — Чистая реализация на Rust (черновика) стандарта FIPS 203 Module-Lattice-based Key-Encapsulation Mechanism для серверных, настольных, браузерных и встраиваемых приложений. | Kitploit
Инструменты/GitHubGitHub/nccgroup/fips203
Безопасность встроенных системИнструменты шифрования/дешифрованияКриптография
GitHubnccgroup/fips203

fips203

Чистая реализация на Rust (черновика) стандарта FIPS 203 Module-Lattice-based Key-Encapsulation Mechanism для серверных, настольных, браузерных и встраиваемых приложений.

Репозиторий
1912 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

NCC Group: FIPS 203 — Стандарт механизма инкапсуляции ключей на основе модульных решёток

crate Docs Build Status Apache2/MIT licensed Rust Version

Стандарт FIPS 203 (первый публичный проект) механизма инкапсуляции ключей на основе модульных решёток, написанный на чистом Rust для серверных, настольных, браузерных и встраиваемых приложений. Репозиторий исходного кода включает примеры, демонстрирующие бенчмаркинг, встраиваемую цель, статистические измерения константного времени, фаззинг, выполнение WASM, C FFI и привязки Python.

Этот крейт реализует проект стандарта FIPS 203 на чистом Rust с минимальными и распространёнными зависимостями и без какого-либо небезопасного кода. Все три набора параметров безопасности полностью поддерживаются и протестированы. Реализация работает в константном времени (за исключением rho, которая является частью ключа инкапсуляции, передаваемого через границу доверия в открытом виде), не требует стандартной библиотеки, например #[no_std], не выполняет выделений в куче, например не нуждается в alloc, и опционально предоставляет доступ к RNG, поэтому она подходит для полного спектра приложений вплоть до bare-metal. API стабилизирован, и код в значительной степени ориентирован на безопасность и корректность; дальнейшие оптимизации производительности будут реализованы по мере развития стандарта. Этот крейт будет быстро адаптироваться к любым изменениям FIPS 203 по мере их появления.

См. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.ipd.pdf для полного описания целевой функциональности.

Функциональность чрезвычайно проста в использовании, как показано в следующем примере.

root@kitploit:~
// Use the desired target parameter set.
use fips203::ml_kem_512; // Could also be ml_kem_768 or ml_kem_1024. 
use fips203::traits::{Decaps, Encaps, KeyGen, SerDes};

// Alice runs `try_keygen()` and then serializes the encaps key `ek` for Bob (to bytes).
let (alice_ek, alice_dk) = ml_kem_512::KG::try_keygen().unwrap();
let alice_ek_bytes = alice_ek.into_bytes();

// Alice sends the encaps key `ek_bytes` to Bob.
let bob_ek_bytes = alice_ek_bytes;

// Bob deserializes the encaps `ek_bytes` and then runs `encaps() to get the shared 
// secret `ssk` and ciphertext `ct`. He serializes the ciphertext `ct` for Alice (to bytes).
let bob_ek = ml_kem_512::EncapsKey::try_from_bytes(bob_ek_bytes).unwrap();
let (bob_ssk_bytes, bob_ct) = bob_ek.try_encaps().unwrap();
let bob_ct_bytes = bob_ct.into_bytes();

// Bob sends the ciphertext `ct_bytes` to Alice
let alice_ct_bytes = bob_ct_bytes;

// Alice deserializes the ciphertext `ct` and runs `decaps()` with her decaps key
let alice_ct = ml_kem_512::CipherText::try_from_bytes(alice_ct_bytes).unwrap();
let alice_ssk_bytes = alice_dk.try_decaps(&alice_ct).unwrap();

// Alice and Bob will now have the same secret key
assert_eq!(bob_ssk_bytes, alice_ssk_bytes);

Документация по Rust Documentation находится в каждом модуле, соответствующем требуемому параметру безопасности ниже.

Примечания

  • Этот крейт полностью функционален и соответствует первому публичному проекту FIPS 203.
  • Режим константного времени обеспечивается на уровне исходного кода только на MSRV, с подтверждением посредством ручной проверки/инспекции, встраиваемой цели и динамических тестов dudect.
  • Обратите внимание, что FIPS 203 предъявляет особые требования к случайности в разделе 3.3, отсюда и открытый RNG.
  • Требуется Rust 1.70 или выше. Минимальная поддерживаемая версия Rust (MSRV) может быть изменена в будущем, но это будет сделано с увеличением минорной версии (когда мажорная версия больше 0).
  • Все включённые по умолчанию функции этой библиотеки покрываются SemVer.
  • Проект стандарта FIPS 203 и данное программное обеспечение являются экспериментальными — ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!

Лицензия

Содержимое лицензировано на условиях либо Apache License Version 2.0, либо лицензии MIT на ваше усмотрение.

Вклад

Если вы явно не укажете иное, любой вклад, преднамеренно предоставленный вами для включения в работу, как определено в лицензии Apache-2.0, будет лицензирован на условиях двойной лицензии, как указано выше, без каких-либо дополнительных условий.

Скачать инструмент