Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
liboqs — Bibliothèque C pour le prototypage et l'expérimentation de la cryptographie résistante aux ordinateurs quantiques. | Kitploit
Outils/GitHubGitHub/open-quantum-safe/liboqs
Outils de Chiffrement/DéchiffrementCryptographieUtilitaires et Frameworks
GitHubopen-quantum-safe/liboqs

liboqs

Bibliothèque C pour le prototypage et l'expérimentation de la cryptographie résistante aux ordinateurs quantiques.

Voir le dépôtSite web
3.0k76512il y a 3 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

liboqs

Main Branch Tests Weekly Tests Coverage Status

liboqs est une bibliothèque C open source pour les algorithmes cryptographiques résistants aux ordinateurs quantiques.

  • liboqs
    • Vue d'ensemble
    • Statut
      • Algorithmes pris en charge
        • Mécanismes d'encapsulation de clé
        • Schémas de signature
        • Schémas de signature avec état
      • Limitations et sécurité
        • Limitations de plateforme
        • Limitations de prise en charge
    • Démarrage rapide
      • Linux et Mac
      • Windows
      • Compilation croisée
    • Documentation
    • Contribution
    • Licence
    • Remerciements

Vue d'ensemble

liboqs fournit :

  • une collection d'implémentations open source de mécanismes d'encapsulation de clé (KEM) résistants aux ordinateurs quantiques et d'algorithmes de signature numérique ; la liste complète se trouve ci-dessous
  • une API commune pour ces algorithmes
  • un harnais de test et des routines d'analyse comparative

liboqs fait partie du projet Open Quantum Safe (OQS), qui vise à développer et à intégrer dans des applications la cryptographie résistante aux ordinateurs quantiques afin de faciliter le déploiement et les tests dans des contextes réels. En particulier, OQS fournit des intégrations prototypes de liboqs dans des protocoles comme TLS, X.509 et S/MIME, via notre OpenSSL 3 Provider, et nous fournissons une variété d'autres démos post-quantiques.

Le projet OQS est soutenu par la Post-Quantum Cryptography Alliance dans le cadre de la Linux Foundation. Plus d'informations sur le projet Open Quantum Safe sont disponibles sur openquantumsafe.org.

OQS mène une enquête pour mieux comprendre sa communauté. Nous souhaitons recueillir l'avis des organisations et des individus sur leur intérêt pour le projet Open Quantum Safe et son utilisation. Merci de prendre quelques minutes pour remplir l'enquête : https://linuxfoundation.surveymonkey.com/r/oqssurvey

Statut

Algorithmes pris en charge

Le tableau ci-dessous résume chaque famille d'algorithmes actuellement intégrée dans liboqs. Pour le détail par variante (y compris le niveau NIST, le statut à temps constant, la vérification formelle et les optimisations disponibles), voir ALGORITHMS.md ; pour les sources en amont et les avis, voir les pages par algorithme sous docs/algorithms.

Les noms des algorithmes normalisés par le NIST — ML-KEM, ML-DSA et SLH-DSA — sont stables ; si le NIST modifie les détails d'implémentation, liboqs s'adaptera afin que les utilisateurs soient protégés de ces changements. Tous les autres noms sont susceptibles de changer. Les algorithmes à compiler peuvent être contrôlés via OQS_ALGS_ENABLED ; par défaut, liboqs est compilé avec la prise en charge de tous les algorithmes du tableau, y compris les algorithmes expérimentaux.

Mécanismes d'encapsulation de clé

Schémas de signature

Schémas de signature avec état

Limitations et sécurité

Bien qu'au moment de la rédaction de ce document aucune vulnérabilité ne soit connue dans les algorithmes résistants aux ordinateurs quantiques utilisés dans cette bibliothèque, la prudence est recommandée lors du déploiement d'algorithmes résistants aux ordinateurs quantiques, car la plupart des algorithmes et des logiciels n'ont pas fait l'objet du même degré d'examen que les algorithmes actuellement déployés. Une attention particulière doit être portée aux recommandations fournies par la communauté de normalisation, en particulier celles du projet Post-Quantum Cryptography Standardization du NIST. À mesure que la recherche progresse, les algorithmes pris en charge peuvent connaître des changements rapides dans leur sécurité et peuvent même s'avérer non sécurisés face aux ordinateurs classiques et quantiques. De plus, notez que sntrup761 n'est inclus que pour les tests d'interopérabilité.

liboqs n'a pas pour intention de « désigner des gagnants » : la prise en charge des algorithmes est guidée par le projet de normalisation PQC du NIST. Nous recommandons fortement que les applications et les protocoles s'appuient sur les résultats de cet effort lors du déploiement de la cryptographie post-quantique.

Nous sommes conscients que certaines parties peuvent souhaiter déployer la cryptographie résistante aux ordinateurs quantiques avant la conclusion du projet de normalisation PQC du NIST. Nous recommandons fortement que de telles tentatives utilisent ce que l'on appelle la cryptographie hybride, dans laquelle les algorithmes à clé publique résistants aux ordinateurs quantiques sont utilisés en parallèle des algorithmes à clé publique traditionnels (comme RSA ou les courbes elliptiques), afin que la solution soit au moins aussi sécurisée que la cryptographie traditionnelle existante.

NOUS NE RECOMMANDONS PAS ACTUELLEMENT DE S'APPUYER SUR CETTE BIBLIOTHÈQUE DANS UN ENVIRONNEMENT DE PRODUCTION NI DE L'UTILISER POUR PROTÉGER DES DONNÉES SENSIBLES. Cette bibliothèque est destinée à faciliter la recherche et le prototypage. Bien que nous fassions de notre mieux pour éviter les failles de sécurité, cette bibliothèque n'a pas reçu le niveau d'audit et d'analyse nécessaire pour pouvoir s'y fier dans des contextes de haute sécurité.

Veuillez consulter SECURITY.md pour plus de détails sur la manière de signaler une vulnérabilité et sur le processus de réponse aux vulnérabilités d'OQS.

Limitations de plateforme

Afin d'optimiser l'effort de prise en charge,

  • tous les algorithmes ne sont pas également bien pris en charge sur toutes les plateformes. En cas de questions, il est d'abord conseillé de consulter les fichiers de documentation pour chaque algorithme.
  • tous les compilateurs ne sont pas également bien pris en charge. Par exemple, au moins la version v7.1.0 du compilateur GNU est requise.

Limitations de prise en chargeCe projet n'est pas commercialement supporté. Toutes les directives et les objectifs de liboqs reflètent les pratiques actuelles, mises en œuvre par une communauté de contributeurs académiques, à temps partiel et/ou bénévoles sur une base de meilleur effort et peuvent changer à tout moment. Toute entité recherchant des engagements plus fiables est fortement encouragée à rejoindre la communauté OQS et ainsi à améliorer le code et le support que la communauté peut fournir.

Démarrage rapide

Linux et Mac

  1. Installer les dépendances :

    Sur 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
    

    Sur macOS, en utilisant un gestionnaire de paquets de votre choix (nous avons choisi 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
    

    En utilisant Nix :

    root@kitploit:~
     nix develop
    

    Notez que, si vous souhaitez que liboqs utilise OpenSSL pour divers algorithmes cryptographiques symétriques (AES, SHA-2, etc.), vous devez avoir OpenSSL installé (version 3.x recommandée ; la version EOL 1.1.1 reste également possible).

  2. Obtenir le code source :

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

    et compiler :

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

Diverses options de compilation cmake pour personnaliser les artefacts résultants sont disponibles et sont documentées dans CONFIGURE.md. Toutes les options prises en charge sont également listées dans le fichier .CMake/alg-support.cmake, et peuvent être consultées en exécutant cmake -LAH -N .. dans le répertoire build.

Les instructions suivantes supposent que nous sommes dans build.

  1. Par défaut, le principal résultat de compilation est lib/liboqs.a, une bibliothèque statique. Si vous souhaitez compiler une bibliothèque partagée/dynamique, ajoutez -DBUILD_SHARED_LIBS=ON à la commande cmake -GNinja .. ci-dessus et le résultat sera lib/liboqs.so|dylib|dll. Les en-têtes publics se trouvent dans le répertoire include. Il existe également une variété de programmes compilés dans le répertoire tests :

    • test_kem : Harness de test simple pour les mécanismes d'encapsulation de clés
    • test_sig : Harness de test simple pour les schémas de signature
    • test_sig_stfl : Harness de test simple pour les schémas de signature avec état
    • test_kem_mem : Harness de test simple pour vérifier la consommation mémoire des mécanismes d'encapsulation de clés
    • test_sig_mem : Harness de test simple pour vérifier la consommation mémoire des schémas de signature

Windows

Des binaires peuvent être générés en utilisant Visual Studio 2019 avec l'extension CMake Tools installée. Les mêmes options que celles expliquées ci-dessus pour Linux/macOS peuvent être utilisées et les artefacts de compilation sont générés dans les dossiers build spécifiés.

Si vous souhaitez créer des fichiers de compilation Visual Studio, par exemple si vous n'utilisez pas ninja, assurez-vous de ne pas passer le paramètre -GNinja à la commande cmake comme illustré ci-dessus. Vous pouvez ensuite compiler tous les composants en utilisant msbuild, par exemple comme suit : msbuild ALL_BUILD.vcxproj et installer tous les artefacts, par exemple en utilisant cette commande : msbuild INSTALL.vcxproj.

Compilation croisée

Vous pouvez compiler liboqs en croisé pour diverses plateformes. Des informations détaillées sont disponibles dans le Wiki.

Documentation

Des informations plus détaillées sur la compilation, les paramètres de compilation optionnels, les exemples d'applications, les conventions de codage et plus encore peuvent être trouvées dans le wiki.

Contribution

Les contributions qui répondent aux critères d'acceptation sont les bienvenues. Voir notre Guide de contribution pour plus de détails.

Licence

liboqs est sous licence MIT ; voir LICENSE.txt pour plus de détails.

liboqs inclut certaines bibliothèques ou modules tiers qui sont sous des licences différentes ; le sous-dossier correspondant contient la licence qui s'applique dans ce cas. En particulier :

  • .CMake/CMakeDependentOption.cmake : Licence BSD 3-Clause
  • src/common/common.c : inclut des portions sous licence Apache License v2.0
  • src/common/crypto/aes/aes_c.c : domaine public ou toute licence approuvée OSI
  • src/common/crypto/aes/aes*_ni.c : domaine public
  • src/common/crypto/sha2/sha2_c.c : domaine public
  • src/common/crypto/sha3/xkcp_low : CC0 (domaine public), sauf brg_endian.h et KeccakP-1600-AVX2.s
  • src/common/crypto/sha3/xkcp_low/.../brg_endian.h : Licence BSD 3-Clause
  • src/common/crypto/sha3/xkcp_low/.../KeccakP-1600-AVX2.s : licence de type BSD CRYPTOGAMS
  • src/common/rand/rand_nist.c : Voir le fichier

Remerciements

Le projet OQS est soutenu par la Post-Quantum Cryptography Alliance dans le cadre de la Linux Foundation.

Le projet OQS a été fondé par Douglas Stebila et Michele Mosca à l'Université de Waterloo. Les contributeurs à liboqs incluent des contributeurs individuels, des universitaires et chercheurs, et diverses entreprises, notamment Amazon Web Services, Cisco Systems, evolutionQ, IBM Research, Microsoft Research, SandboxAQ et softwareQ.

Le soutien financier pour le développement d'Open Quantum Safe a été fourni par Amazon Web Services, le Centre canadien pour la cybersécurité, Cisco, l'Unitary Fund, le NGI Assure Fund et VeriSign Inc.

Les projets de recherche qui ont développé des composants spécifiques d'OQS ont été soutenus par diverses subventions de recherche, y compris un financement du Conseil de recherches en sciences naturelles et en génie du Canada (CRSNG) ; voir les articles sources pour les remerciements de financement.

Télécharger l’outil
Famille d'algorithmesStatut de normalisationImplémentation principaleMaintenance en amontNiveau OQS
BIKENon sélectionné par le NISTawslabs/bike-kemÀ déterminerNiveau 3 (Communauté)
Classic McElieceÀ l'étude par l'ISOPQClean/PQClean@1eacfdaAucune maintenance activeNiveau 3 (Communauté)
FrodoKEMÀ l'étude par l'ISOmicrosoft/PQCrypto-LWEKE@a2f9decAu mieuxNiveau 2 (Pris en charge)
HQCSélectionné par le NIST pour une normalisation à venirpqc-hqc/hqc@161cd4fÀ déterminerNiveau 2 (Pris en charge)
KyberSélectionné par le NIST comme base pour ML-KEM (FIPS 203)pq-crystals/kyber@441c051Maintenu activementNiveau 3 (Communauté)
ML-KEMNormalisé par le NISTpq-code-package/mlkem-native@0ba906cMaintenu activementNiveau 1 (Cœur)
NTRUNon sélectionné par le NIST, à l'étude de normalisation par NTTPQClean/PQClean@4c9e5a3Maintenu activementNiveau 3 (Communauté)
NTRU-PrimeNon sélectionné par le NISTopenssh/openssh-portableMaintenu activementNiveau 3 (Communauté)
Famille d'algorithmesStatut de normalisationImplémentation principaleMaintenance en amontNiveau OQS
CROSSÀ l'étude par le NISTCROSS-signature/CROSS-lib-oqs@179d61bMaintenu activementNiveau 3 (Communauté)
FalconSélectionné par le NIST pour une normalisation à venirPQClean/PQClean@1eacfdaÀ déterminerNiveau 3 (Communauté)
MAYOÀ l'étude par le NISTPQCMayo/MAYO-C@64e15c6Maintenu activementNiveau 3 (Communauté)
ML-DSANormalisé par le NISTpq-code-package/mldsa-native@9b0ee84Maintenu activementNiveau 2 (Pris en charge)
MQOMÀ l'étude par le NISTmqom/mqom-v2@ec6b7faMaintenu activementNiveau 3 (Communauté)
SLH-DSANormalisé par le NISTpq-code-package/slhdsa-c@a0fc1ffAu mieuxNiveau 3 (Communauté)
SNOVAÀ l'étude par le NISTvacuas/SNOVA@1c3ca6fAu mieuxNiveau 3 (Communauté)
UOVÀ l'étude par le NISTpqov/pqov@33fa527Au mieuxNiveau 3 (Communauté)
Famille d'algorithmesStatut de normalisationImplémentation principaleMaintenance en amontNiveau OQS
LMSNormalisé par l'IRTF, approuvé par le NISTcisco/hash-sigsAu mieuxNiveau 2 (Pris en charge)
XMSSNormalisé par l'IRTF, approuvé par le NISTXMSS/xmss-referenceMaintenu activementNiveau 2 (Pris en charge)
  • kat_kem : Programme qui génère des valeurs de test à réponse connue (KAT) pour les mécanismes d'encapsulation de clés en utilisant la même procédure que les exigences de soumission NIST, pour vérification par rapport aux valeurs KAT soumises à l'aide de tests/test_kat.py
  • kat_sig : Programme qui génère des valeurs de test à réponse connue (KAT) pour les schémas de signature en utilisant la même procédure que les exigences de soumission NIST, pour vérification par rapport aux valeurs KAT soumises à l'aide de tests/test_kat.py
  • kat_sig_stfl : Programme pour vérifier les résultats par rapport aux valeurs KAT soumises à l'aide de tests/test_kat.py
  • speed_kem : Programme de benchmarking pour les mécanismes d'encapsulation de clés ; voir ./speed_kem --help pour les instructions d'utilisation
  • speed_sig : Programme de benchmarking pour les mécanismes de signature ; voir ./speed_sig --help pour les instructions d'utilisation
  • speed_sig_stfl : Programme de benchmarking pour les mécanismes de signature avec état ; voir ./speed_sig_stfl --help pour les instructions d'utilisation
  • example_kem : Exemple minimal exécutable montrant l'utilisation de l'API KEM
  • example_sig : Exemple minimal exécutable montrant l'utilisation de l'API de signature
  • example_sig_stfl : Exemple minimal exécutable montrant l'utilisation de l'API de signature avec état
  • test_aes, test_sha3 : Harnesses de test simples pour les sous-composants cryptographiques
  • test_portability : Harnesses de test simples pour vérifier la portabilité du code entre processeurs ; nécessite la présence de qemu ; un fonctionnement correct n'est validé que sur Ubuntu
  • La suite de tests complète peut être exécutée en utilisant

    root@kitploit:~
     ninja run_tests
    
  • Pour générer la documentation HTML de l'API, exécutez :

    root@kitploit:~
     ninja gen_docs
    

    Puis ouvrez docs/html/index.html dans votre navigateur web.

  • ninja install peut être exécuté pour installer la bibliothèque compilée et les fichiers include à un emplacement de votre choix, qui peut être spécifié en passant l'option -DCMAKE_INSTALL_PREFIX=<dir> à cmake au moment de la configuration. Alternativement, ninja package peut être exécuté pour créer un paquet d'installation.

  • ninja uninstall peut être exécuté pour supprimer tous les fichiers d'installation.

  • src/kem/bike/additional : Apache License v2.0
  • src/kem/classic_mceliece/pqclean_* : domaine public
  • src/kem/kyber/pqcrystals-* : domaine public (CC0) ou Apache License v2.0
  • src/kem/kyber/pqclean_* : domaine public (CC0), et domaine public (CC0) ou Apache License v2.0, et domaine public (CC0) ou MIT, et MIT
  • src/kem/kyber/libjade_* : domaine public (CC0) ou Apache License v2.
  • src/kem/ml_kem/mlkem-native_* : MIT ou Apache License v2.0 ou licence ISC
  • src/kem/ntru/pqclean_* : domaine public (CC0)
  • src/kem/ntruprime/sntrup761_openssh : domaine public
  • src/sig/falcon/pqclean_\*\_aarch64 : Apache License v2.0
  • src/sig/mayo/* : Apache License v2.0
  • src/sig/ml_dsa/pqcrystals-* : domaine public (CC0) ou Apache License v2.0