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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/open-quantum-safe/liboqs
Инструменты шифрования/дешифрованияКриптографияУтилиты и фреймворки
GitHubopen-quantum-safe/liboqs

liboqs

C-библиотека для прототипирования и экспериментов с квантово-устойчивой криптографией

РепозиторийСайт
3.0k765123 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

liboqs

Main Branch Tests Weekly Tests Coverage Status

liboqs — это библиотека на языке C с открытым исходным кодом для квантово-устойчивых криптографических алгоритмов.

  • liboqs
    • Обзор
    • Статус
      • Поддерживаемые алгоритмы
        • Механизмы инкапсуляции ключей
        • Схемы подписи
        • Схемы подписи с сохранением состояния
      • Ограничения и безопасность
        • Ограничения платформ
        • Ограничения поддержки
    • Быстрый старт
      • Linux и Mac
      • Windows
      • Кросс-компиляция
    • Документация
    • Участие в разработке
    • Лицензия
    • Благодарности

Обзор

liboqs предоставляет:

  • набор реализаций с открытым исходным кодом квантово-устойчивых механизмов инкапсуляции ключей (KEM) и алгоритмов цифровой подписи; полный список можно найти ниже
  • общий API для этих алгоритмов
  • тестовый стенд и процедуры бенчмаркинга

liboqs является частью проекта Open Quantum Safe (OQS), целью которого является разработка и интеграция квантово-устойчивой криптографии в приложения для упрощения развертывания и тестирования в реальных условиях. В частности, OQS предоставляет прототипные интеграции liboqs в такие протоколы, как TLS, X.509 и S/MIME, через наш OpenSSL 3 Provider, а также множество других демонстраций с поддержкой постквантовой криптографии.

Проект OQS поддерживается Альянсом постквантовой криптографии в рамках Linux Foundation. Дополнительная информация о проекте Open Quantum Safe доступна на openquantumsafe.org.

OQS проводит опрос, чтобы лучше понять наше сообщество. Мы хотели бы услышать от организаций и частных лиц об их интересе к проекту Open Quantum Safe и его использовании. Пожалуйста, уделите несколько минут, чтобы заполнить опрос: https://linuxfoundation.surveymonkey.com/r/oqssurvey

Статус

Поддерживаемые алгоритмы

В таблице ниже приведены все семейства алгоритмов, интегрированные в liboqs на данный момент. Подробную информацию по каждому варианту (включая уровень NIST, статус постоянного времени, формальную верификацию и доступные оптимизации) см. в ALGORITHMS.md; исходные источники и рекомендации см. на страницах отдельных алгоритмов в docs/algorithms.

Названия алгоритмов, стандартизированных NIST — ML-KEM, ML-DSA и SLH-DSA — стабильны; если NIST изменит детали реализации, liboqs будет адаптирован, чтобы пользователи были защищены от таких изменений. Все остальные названия могут быть изменены. Какие алгоритмы будут собраны, можно контролировать через OQS_ALGS_ENABLED; по умолчанию liboqs собирается с поддержкой всех алгоритмов из таблицы, включая экспериментальные.

Механизмы инкапсуляции ключей

Схемы подписи

Схемы подписи с сохранением состояния

Ограничения и безопасность

Хотя на момент написания этого документа неизвестно об уязвимостях ни в одном из квантово-устойчивых алгоритмов, используемых в этой библиотеке, при развертывании квантово-устойчивых алгоритмов следует проявлять осторожность, поскольку большинство алгоритмов и программного обеспечения не подвергались такой же степени проверки, как используемые в настоящее время алгоритмы. Особое внимание следует уделять рекомендациям сообщества стандартизации, особенно проекту Постквантовой стандартизации криптографии NIST. По мере развития исследований поддерживаемые алгоритмы могут быстро меняться в отношении их безопасности и даже могут оказаться небезопасными как для классических, так и для квантовых компьютеров. Кроме того, обратите внимание, что sntrup761 включен только для тестирования совместимости.

liboqs не намерен «выбирать победителей»: поддержка алгоритмов определяется проектом стандартизации постквантовой криптографии NIST. Мы настоятельно рекомендуем приложениям и протоколам полагаться на результаты этой работы при развертывании постквантовой криптографии.

Мы понимаем, что некоторые стороны могут захотеть развернуть квантово-устойчивую криптографию до завершения проекта стандартизации постквантовой криптографии NIST. Мы настоятельно рекомендуем таким попыткам использовать так называемую гибридную криптографию, в которой квантово-устойчивые алгоритмы с открытым ключом используются наряду с традиционными алгоритмами с открытым ключом (такими как RSA или эллиптические кривые), чтобы решение было по крайней мере не менее безопасным, чем существующая традиционная криптография.

В НАСТОЯЩЕЕ ВРЕМЯ МЫ НЕ РЕКОМЕНДУЕМ ПОЛАГАТЬСЯ НА ЭТУ БИБЛИОТЕКУ В ПРОИЗВОДСТВЕННОЙ СРЕДЕ ИЛИ ДЛЯ ЗАЩИТЫ ЛЮБЫХ КОНФИДЕНЦИАЛЬНЫХ ДАННЫХ. Эта библиотека предназначена для помощи в исследованиях и прототипировании. Хотя мы прилагаем все усилия, чтобы избежать ошибок безопасности, эта библиотека не прошла тот уровень аудита и анализа, который необходим для того, чтобы полагаться на нее в сценариях с высокими требованиями к безопасности.

Пожалуйста, обратитесь к SECURITY.md за подробностями о том, как сообщить об уязвимости, и о процессе реагирования на уязвимости OQS.

Ограничения платформ

Чтобы оптимизировать усилия по поддержке,

  • не все алгоритмы одинаково хорошо поддерживаются на всех платформах. В случае вопросов сначала рекомендуется ознакомиться с документацией по каждому алгоритму.
  • не все компиляторы одинаково хорошо поддерживаются. Например, требуется как минимум версия 7.1.0 компилятора GNU.

Ограничения поддержкиЭтот проект не поддерживается на коммерческой основе. Все руководства и цели liboqs отражают текущую практику, реализуемую сообществом академических, частично занятых и/или добровольных участников на основе принципа «наилучших усилий», и могут меняться в любое время. Любой организации, которой требуются более надёжные обязательства, настоятельно рекомендуется присоединиться к сообществу OQS и тем самым улучшить код и поддержку, которые сообщество может предоставить.

Быстрый старт

Linux и Mac

  1. Установите зависимости:

    На Ubuntu:

    root@kitploit:~
     sudo apt install astyle cmake gcc ninja-build libssl-dev unzip xsltproc doxygen graphviz valgrind
     python3 -m venv .venv
     source .venv/bin/activate
     pip install --require-hashes -r requirements.txt
    

    На macOS, используя менеджер пакетов на ваш выбор (мы выбрали Homebrew):

    root@kitploit:~
     brew install cmake ninja openssl@3 wget doxygen graphviz astyle valgrind
     python3 -m venv .venv
     source .venv/bin/activate
     pip install --require-hashes -r requirements.txt
    

    При использовании Nix:

    root@kitploit:~
     nix develop
    

    Обратите внимание: если вы хотите, чтобы liboqs использовал OpenSSL для различных симметричных криптографических алгоритмов (AES, SHA-2 и т. д.), у вас должен быть установлен OpenSSL (рекомендуется версия 3.x; устаревшая версия 1.1.1 также всё ещё возможна).

  2. Получите исходный код:

    root@kitploit:~
     git clone -b main https://github.com/open-quantum-safe/liboqs.git
     cd liboqs
    

    и соберите:

    root@kitploit:~
     mkdir build && cd build
     cmake -GNinja ..
     ninja
    

Доступны различные параметры сборки cmake для настройки результирующих артефактов; они задокументированы в CONFIGURE.md. Все поддерживаемые параметры также перечислены в файле .CMake/alg-support.cmake, и их можно просмотреть, выполнив cmake -LAH -N .. в каталоге build.

Следующие инструкции предполагают, что мы находимся в build.

  1. По умолчанию основным результатом сборки является lib/liboqs.a — статическая библиотека. Если вы хотите собрать разделяемую/динамическую библиотеку, добавьте -DBUILD_SHARED_LIBS=ON к команде cmake -GNinja .. выше, и результатом будет lib/liboqs.so|dylib|dll. Публичные заголовочные файлы находятся в каталоге include. Также в каталоге tests собирается множество программ:

    • test_kem: Простой тестовый стенд для механизмов инкапсуляции ключей
    • test_sig: Простой тестовый стенд для схем подписи
    • test_sig_stfl: Простой тестовый стенд для схем подписи с состоянием
    • test_kem_mem: Простой тестовый стенд для проверки потребления памяти механизмами инкапсуляции ключей
    • test_sig_mem: Простой тестовый стенд для проверки потребления памяти схемами подписи

Windows

Бинарные файлы можно создать с помощью Visual Studio 2019 с установленным расширением CMake Tools. Можно использовать те же параметры, что описаны выше для Linux/macOS, а артефакты сборки создаются в указанных папках build.

Если вы хотите создать файлы сборки Visual Studio, например, если вы не используете ninja, обязательно не передавайте параметр -GNinja команде cmake, как показано в примере выше. Затем вы можете собрать все компоненты с помощью msbuild, например, так: msbuild ALL_BUILD.vcxproj, и установить все артефакты, например, с помощью этой команды: msbuild INSTALL.vcxproj.

Кросс-компиляция

Вы можете кросс-компилировать liboqs для различных платформ. Подробная информация доступна в Wiki.

Документация

Более подробную информацию о сборке, необязательных параметрах сборки, примерах приложений, соглашениях о кодировании и многом другом можно найти в вики.

Участие

Приветствуются вклады, соответствующие критериям приемлемости. Подробнее см. в нашем Руководстве по участию.

Лицензия

liboqs распространяется под лицензией MIT; подробности см. в LICENSE.txt.

liboqs включает некоторые сторонние библиотеки или модули, которые распространяются под другими лицензиями; соответствующая подпапка содержит лицензию, применимую в этом случае. В частности:

  • .CMake/CMakeDependentOption.cmake: лицензия BSD 3-Clause
  • src/common/common.c: включает части под лицензией Apache License v2.0
  • src/common/crypto/aes/aes_c.c: общественное достояние или любая лицензия, одобренная OSI
  • src/common/crypto/aes/aes*_ni.c: общественное достояние
  • src/common/crypto/sha2/sha2_c.c: общественное достояние
  • src/common/crypto/sha3/xkcp_low : CC0 (общественное достояние), кроме brg_endian.h и KeccakP-1600-AVX2.s
  • src/common/crypto/sha3/xkcp_low/.../brg_endian.h : лицензия BSD 3-Clause
  • src/common/crypto/sha3/xkcp_low/.../KeccakP-1600-AVX2.s : лицензия CRYPTOGAMS в стиле BSD
  • src/common/rand/rand_nist.c: см. файл

Благодарности

Проект OQS поддерживается Альянсом постквантовой криптографии в рамках Linux Foundation.

Проект OQS был основан Дугласом Стебилой и Микеле Моской в Университете Ватерлоо. Участники liboqs включают отдельных участников, академиков и исследователей, а также различные компании, включая Amazon Web Services, Cisco Systems, evolutionQ, IBM Research, Microsoft Research, SandboxAQ и softwareQ.

Финансовая поддержка разработки Open Quantum Safe была предоставлена Amazon Web Services, Канадским центром кибербезопасности, Cisco, Unitary Fund, фондом NGI Assure и VeriSign Inc.

Исследовательские проекты, разработавшие отдельные компоненты OQS, поддерживались различными исследовательскими грантами, включая финансирование от Канадского совета по естественным наукам и инженерным исследованиям (NSERC); см. исходные статьи для подтверждения финансирования.

Скачать инструмент
Семейство алгоритмовСтатус стандартизацииОсновная реализацияПоддержка вышестоящего проектаУровень OQS
BIKEНе выбран NISTawslabs/bike-kemTBDУровень 3 (Сообщество)
Classic McElieceНа рассмотрении ISOPQClean/PQClean@1eacfdaНет активной поддержкиУровень 3 (Сообщество)
FrodoKEMНа рассмотрении ISOmicrosoft/PQCrypto-LWEKE@a2f9decПо мере возможностейУровень 2 (Поддерживаемый)
HQCВыбран NIST для предстоящей стандартизацииpqc-hqc/hqc@161cd4fTBDУровень 2 (Поддерживаемый)
KyberВыбран NIST как основа для ML-KEM (FIPS 203)pq-crystals/kyber@441c051Активно поддерживаетсяУровень 3 (Сообщество)
ML-KEMСтандартизирован NISTpq-code-package/mlkem-native@0ba906cАктивно поддерживаетсяУровень 1 (Ядро)
NTRUНе выбран NIST, на рассмотрении для стандартизации NTTPQClean/PQClean@4c9e5a3Активно поддерживаетсяУровень 3 (Сообщество)
NTRU-PrimeНе выбран NISTopenssh/openssh-portableАктивно поддерживаетсяУровень 3 (Сообщество)
Семейство алгоритмовСтатус стандартизацииОсновная реализацияПоддержка вышестоящего проектаУровень OQS
CROSSНа рассмотрении NISTCROSS-signature/CROSS-lib-oqs@179d61bАктивно поддерживаетсяУровень 3 (Сообщество)
FalconВыбран NIST для предстоящей стандартизацииPQClean/PQClean@1eacfdaTBDУровень 3 (Сообщество)
MAYOНа рассмотрении NISTPQCMayo/MAYO-C@64e15c6Активно поддерживаетсяУровень 3 (Сообщество)
ML-DSAСтандартизирован NISTpq-code-package/mldsa-native@9b0ee84Активно поддерживаетсяУровень 2 (Поддерживаемый)
MQOMНа рассмотрении NISTmqom/mqom-v2@ec6b7faАктивно поддерживаетсяУровень 3 (Сообщество)
SLH-DSAСтандартизирован NISTpq-code-package/slhdsa-c@a0fc1ffПо мере возможностейУровень 3 (Сообщество)
SNOVAНа рассмотрении NISTvacuas/SNOVA@1c3ca6fПо мере возможностейУровень 3 (Сообщество)
UOVНа рассмотрении NISTpqov/pqov@33fa527По мере возможностейУровень 3 (Сообщество)
Семейство алгоритмовСтатус стандартизацииОсновная реализацияПоддержка вышестоящего проектаУровень OQS
LMSСтандартизирован IRTF, одобрен NISTcisco/hash-sigsПо мере возможностейУровень 2 (Поддерживаемый)
XMSSСтандартизирован IRTF, одобрен NISTXMSS/xmss-referenceАктивно поддерживаетсяУровень 2 (Поддерживаемый)
  • kat_kem: Программа, генерирующая значения тестов известных ответов (KAT) для механизмов инкапсуляции ключей с использованием той же процедуры, что и требования NIST к представлению, для проверки представленных значений KAT с помощью tests/test_kat.py
  • kat_sig: Программа, генерирующая значения тестов известных ответов (KAT) для схем подписи с использованием той же процедуры, что и требования NIST к представлению, для проверки представленных значений KAT с помощью tests/test_kat.py
  • kat_sig_stfl: Программа для проверки результатов на соответствие представленным значениям KAT с помощью tests/test_kat.py
  • speed_kem: Программа бенчмаркинга для механизмов инкапсуляции ключей; см. ./speed_kem --help для инструкций по использованию
  • speed_sig: Программа бенчмаркинга для механизмов подписи; см. ./speed_sig --help для инструкций по использованию
  • speed_sig_stfl: Программа бенчмаркинга для механизмов подписи с состоянием; см. ./speed_sig_stfl --help для инструкций по использованию
  • example_kem: Минимальный запускаемый пример, демонстрирующий использование API KEM
  • example_sig: Минимальный запускаемый пример, демонстрирующий использование API подписи
  • example_sig_stfl: Минимальный запускаемый пример, демонстрирующий использование API подписи с состоянием
  • test_aes, test_sha3: Простые тестовые стенды для криптографических подкомпонентов
  • test_portability: Простые тестовые стенды для проверки переносимости кода между процессорами; требует наличия qemu; корректная работа проверена только на Ubuntu
  • Полный набор тестов можно запустить с помощью

    root@kitploit:~
     ninja run_tests
    
  • Чтобы сгенерировать HTML-документацию по API, выполните:

    root@kitploit:~
     ninja gen_docs
    

    Затем откройте docs/html/index.html в вашем веб-браузере.

  • ninja install можно выполнить для установки собранной библиотеки и файлов include в выбранное место, которое можно указать, передав параметр -DCMAKE_INSTALL_PREFIX=<dir> команде cmake на этапе настройки. Кроме того, ninja package можно выполнить для создания установочного пакета.

  • ninja uninstall можно выполнить для удаления всех установочных файлов.

  • src/kem/bike/additional: Apache License v2.0
  • src/kem/classic_mceliece/pqclean_*: общественное достояние
  • src/kem/kyber/pqcrystals-*: общественное достояние (CC0) или Apache License v2.0
  • src/kem/kyber/pqclean_*: общественное достояние (CC0), общественное достояние (CC0) или Apache License v2.0, общественное достояние (CC0) или MIT, и MIT
  • src/kem/kyber/libjade_* общественное достояние (CC0) или Apache License v2.
  • src/kem/ml_kem/mlkem-native_*: MIT, Apache License v2.0 или ISC License
  • src/kem/ntru/pqclean_*: общественное достояние (CC0)
  • src/kem/ntruprime/sntrup761_openssh: общественное достояние
  • src/sig/falcon/pqclean_*_aarch64 : Apache License v2.0
  • src/sig/mayo/*: Apache License v2.0
  • src/sig/ml_dsa/pqcrystals-*: общественное достояние (CC0) или Apache License v2.0