Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
liboqs — C-Bibliothek für Prototyping und Experimentieren mit quantenresistenter Kryptografie | Kitploit
Tools/GitHubGitHub/open-quantum-safe/liboqs
Verschlüsselungs-/EntschlüsselungstoolsKryptographieDienstprogramme & Frameworks
GitHubopen-quantum-safe/liboqs

liboqs

C-Bibliothek für Prototyping und Experimentieren mit quantenresistenter Kryptografie

Repository anzeigenWebseite
3.0k76512vor 3 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

liboqs

Main Branch Tests Weekly Tests Coverage Status

liboqs ist eine Open-Source-C-Bibliothek für quantensichere kryptografische Algorithmen.

  • liboqs
    • Überblick
    • Status
      • Unterstützte Algorithmen
        • Schlüsselkapselungsmechanismen
        • Signaturverfahren
        • Zustandsbehaftete Signaturverfahren
      • Einschränkungen und Sicherheit
        • Plattform-Einschränkungen
        • Support-Einschränkungen
    • Schnellstart
      • Linux und Mac
      • Windows
      • Cross-Kompilierung
    • Dokumentation
    • Mitwirken
    • Lizenz
    • Danksagungen

Überblick

liboqs bietet:

  • eine Sammlung von Open-Source-Implementierungen quantensicherer Schlüsselkapselungsmechanismen (KEMs) und digitaler Signaturalgorithmen; die vollständige Liste finden Sie unten
  • eine gemeinsame API für diese Algorithmen
  • eine Testumgebung und Benchmarking-Routinen

liboqs ist Teil des Open Quantum Safe (OQS)-Projekts, das darauf abzielt, quantensichere Kryptografie zu entwickeln und in Anwendungen zu integrieren, um die Bereitstellung und Erprobung in realen Kontexten zu erleichtern. Insbesondere stellt OQS prototypische Integrationen von liboqs in Protokolle wie TLS, X.509 und S/MIME über unseren OpenSSL 3 Provider bereit, und wir bieten eine Vielzahl weiterer Post-Quantum-fähiger Demos an.

Das OQS-Projekt wird von der Post-Quantum Cryptography Alliance als Teil der Linux Foundation unterstützt. Weitere Informationen über das Open Quantum Safe-Projekt finden Sie unter openquantumsafe.org.

OQS führt eine Umfrage durch, um unsere Community besser zu verstehen. Wir möchten von Organisationen und Einzelpersonen erfahren, wie sie das Open Quantum Safe-Projekt nutzen und welches Interesse sie daran haben. Bitte nehmen Sie sich ein paar Minuten Zeit, um die Umfrage auszufüllen: https://linuxfoundation.surveymonkey.com/r/oqssurvey

Status

Unterstützte Algorithmen

Die folgende Tabelle fasst jede derzeit in liboqs integrierte Algorithmusfamilie zusammen. Details zu den einzelnen Varianten (einschließlich NIST-Stufe, Konstantzeit-Status, formaler Verifikation und verfügbaren Optimierungen) finden Sie in ALGORITHMS.md; für Upstream-Quellen und Empfehlungen siehe die algorithmusspezifischen Seiten unter docs/algorithms.

Die Namen der von NIST standardisierten Algorithmen — ML-KEM, ML-DSA und SLH-DSA — sind stabil; falls NIST die Implementierungsdetails ändert, wird liboqs entsprechend angepasst, sodass Benutzer vor solchen Änderungen geschützt sind. Alle anderen Namen können sich ändern. Welche Algorithmen gebaut werden, kann über OQS_ALGS_ENABLED gesteuert werden; standardmäßig wird liboqs mit Unterstützung für jeden Algorithmus in der Tabelle gebaut, einschließlich experimenteller.

Schlüsselkapselungsmechanismen

Signaturverfahren

Zustandsbehaftete Signaturverfahren

Einschränkungen und Sicherheit

Obwohl zum Zeitpunkt der Erstellung dieses Dokuments keine Schwachstellen in den in dieser Bibliothek verwendeten quantensicheren Algorithmen bekannt sind, ist bei der Bereitstellung quantensicherer Algorithmen Vorsicht geboten, da die meisten Algorithmen und die Software nicht demselben Maß an Prüfung unterzogen wurden wie derzeit eingesetzte Algorithmen. Besondere Aufmerksamkeit sollte den Empfehlungen der Standardisierungsgemeinschaft gelten, insbesondere dem Post-Quantum Cryptography Standardization-Projekt von NIST. Mit fortschreitender Forschung können sich die unterstützten Algorithmen in ihrer Sicherheit schnell ändern und sich sogar als unsicher gegenüber klassischen und Quantencomputern erweisen. Beachten Sie außerdem, dass sntrup761 nur für Interop-Tests enthalten ist.

liboqs beabsichtigt nicht, "Gewinner zu küren": Die Algorithmusunterstützung orientiert sich am NIST-PQC-Standardisierungsprojekt. Wir empfehlen nachdrücklich, dass Anwendungen und Protokolle bei der Bereitstellung von Post-Quantum-Kryptografie auf die Ergebnisse dieser Bemühungen vertrauen.

Wir sind uns bewusst, dass einige Parteien quantensichere Kryptografie vor dem Abschluss des NIST-PQC-Standardisierungsprojekts bereitstellen möchten. Wir empfehlen solchen Versuchen nachdrücklich, die sogenannte Hybrid-Kryptografie zu verwenden, bei der quantensichere Public-Key-Algorithmen zusammen mit traditionellen Public-Key-Algorithmen (wie RSA oder elliptischen Kurven) eingesetzt werden, sodass die Lösung mindestens so sicher ist wie die bestehende traditionelle Kryptografie.

WIR EMPFEHLEN DERZEIT NICHT, SICH IN EINER PRODUKTIONSUMGEBUNG AUF DIESE BIBLIOTHEK ZU VERLASSEN ODER DAMIT SENSIBLE DATEN ZU SCHÜTZEN. Diese Bibliothek dient der Forschung und Prototypenerstellung. Obwohl wir uns nach besten Kräften bemühen, Sicherheitsfehler zu vermeiden, wurde diese Bibliothek nicht dem Maß an Prüfung und Analyse unterzogen, das für den Einsatz in Hochsicherheitsumgebungen erforderlich wäre.

Weitere Informationen zur Meldung von Schwachstellen und zum OQS-Schwachstellenreaktionsprozess finden Sie in SECURITY.md.

Plattform-Einschränkungen

Um den Support-Aufwand zu optimieren,

  • sind nicht alle Algorithmen auf allen Plattformen gleichermaßen gut unterstützt. Bei Fragen wird zunächst empfohlen, die Dokumentationsdateien für jeden Algorithmus zu prüfen.
  • werden nicht alle Compiler gleichermaßen gut unterstützt. Beispielsweise ist mindestens v7.1.0 des GNU-Compilers erforderlich.

Support-EinschränkungenDieses Projekt wird nicht kommerziell unterstützt. Alle Richtlinien und Ziele für liboqs spiegeln die aktuellen Praktiken wider, die von einer Gemeinschaft aus akademischen, Teilzeit- und/oder freiwilligen Mitwirkenden nach bestem Wissen und Gewissen umgesetzt werden, und können sich jederzeit ändern. Jede Einrichtung, die zuverlässigere Zusagen sucht, wird nachdrücklich ermutigt, der OQS-Gemeinschaft beizutreten und so den Code und die Unterstützung zu verbessern, die die Gemeinschaft bieten kann.

Schnellstart

Linux und Mac

  1. Abhängigkeiten installieren:

    Auf 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
    

    Auf macOS, mit einem Paketmanager Ihrer Wahl (wir haben Homebrew gewählt):

    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
    

    Mit Nix:

    root@kitploit:~
     nix develop
    

    Beachten Sie, dass Sie OpenSSL installiert haben müssen (Version 3.x empfohlen; die EOL-Version 1.1.1 ist ebenfalls noch möglich), wenn liboqs OpenSSL für verschiedene symmetrische Krypto-Algorithmen (AES, SHA-2 usw.) verwenden soll.

  2. Den Quellcode holen:

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

    und bauen:

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

Verschiedene cmake-Buildoptionen zur Anpassung der resultierenden Artefakte sind verfügbar und werden in CONFIGURE.md dokumentiert. Alle unterstützten Optionen sind auch in der Datei .CMake/alg-support.cmake aufgelistet und können durch Ausführen von cmake -LAH -N .. im Verzeichnis build angezeigt werden.

Die folgenden Anweisungen gehen davon aus, dass wir uns in build befinden.

  1. Standardmäßig ist das Haupt-Build-Ergebnis lib/liboqs.a, eine statische Bibliothek. Wenn Sie eine gemeinsame/dynamische Bibliothek bauen möchten, fügen Sie -DBUILD_SHARED_LIBS=ON zum obigen Befehl cmake -GNinja .. hinzu, und das Ergebnis wird lib/liboqs.so|dylib|dll sein. Die öffentlichen Header befinden sich im Verzeichnis include. Es gibt auch eine Vielzahl von Programmen, die im Verzeichnis tests gebaut werden:

    • test_kem: Einfaches Test-Framework für Schlüsselkapselungsmechanismen
    • test_sig: Einfaches Test-Framework für Signaturschemata
    • test_sig_stfl: Einfaches Test-Framework für zustandsbehaftete Signaturschemata
    • test_kem_mem: Einfaches Test-Framework zur Überprüfung des Speicherverbrauchs von Schlüsselkapselungsmechanismen
    • test_sig_mem: Einfaches Test-Framework zur Überprüfung des Speicherverbrauchs von Signaturschemata

Windows

Binärdateien können mit Visual Studio 2019 mit der installierten Erweiterung CMake Tools erzeugt werden. Dieselben Optionen wie oben für Linux/macOS erläutert, können verwendet werden, und Build-Artefakte werden in den angegebenen build-Ordnern erzeugt.

Wenn Sie Visual-Studio-Builddateien erstellen möchten, z. B. wenn Sie ninja nicht verwenden, achten Sie darauf, den Parameter -GNinja nicht an den cmake-Befehl zu übergeben, wie oben beispielhaft gezeigt. Sie können dann alle Komponenten mit msbuild bauen, z. B. wie folgt: msbuild ALL_BUILD.vcxproj und alle Artefakte installieren, z. B. mit diesem Befehl: msbuild INSTALL.vcxproj.

Kreuzkompilierung

Sie können liboqs für verschiedene Plattformen kreuzkompilieren. Detaillierte Informationen finden Sie im Wiki.

Dokumentation

Detailliertere Informationen zum Bauen, zu optionalen Build-Parametern, Beispielanwendungen, Codierungskonventionen und mehr finden Sie im Wiki.

Mitwirken

Beiträge, die die Akzeptanzkriterien erfüllen, werden dankbar angenommen. Weitere Einzelheiten finden Sie in unserem Leitfaden für Mitwirkende.

Lizenz

liboqs ist unter der MIT-Lizenz lizenziert; siehe LICENSE.txt für Details.

liboqs enthält einige Drittanbieter-Bibliotheken oder -Module, die anders lizenziert sind; der entsprechende Unterordner enthält die Lizenz, die in diesem Fall gilt. Insbesondere:

  • .CMake/CMakeDependentOption.cmake: BSD-3-Clause-Lizenz
  • src/common/common.c: enthält Teile, die unter der Apache-Lizenz v2.0 stehen
  • src/common/crypto/aes/aes_c.c: Public Domain oder eine beliebige OSI-zugelassene Lizenz
  • src/common/crypto/aes/aes*_ni.c: Public Domain
  • src/common/crypto/sha2/sha2_c.c: Public Domain
  • src/common/crypto/sha3/xkcp_low : CC0 (Public Domain), außer brg_endian.h und KeccakP-1600-AVX2.s
  • src/common/crypto/sha3/xkcp_low/.../brg_endian.h : BSD-3-Clause-Lizenz
  • src/common/crypto/sha3/xkcp_low/.../KeccakP-1600-AVX2.s : BSD-ähnliche CRYPTOGAMS-Lizenz
  • src/common/rand/rand_nist.c: Siehe Datei

Danksagungen

Das OQS-Projekt wird von der Post-Quantum Cryptography Alliance als Teil der Linux Foundation unterstützt.

Das OQS-Projekt wurde von Douglas Stebila und Michele Mosca an der University of Waterloo gegründet. Mitwirkende an liboqs umfassen einzelne Mitwirkende, Akademiker und Forscher sowie verschiedene Unternehmen, darunter Amazon Web Services, Cisco Systems, evolutionQ, IBM Research, Microsoft Research, SandboxAQ und softwareQ.

Finanzielle Unterstützung für die Entwicklung von Open Quantum Safe wurde von Amazon Web Services, dem Canadian Centre for Cyber Security, Cisco, dem Unitary Fund, dem NGI Assure Fund und VeriSign Inc. bereitgestellt.

Forschungsprojekte, die spezifische Komponenten von OQS entwickelt haben, wurden durch verschiedene Forschungszuschüsse unterstützt, einschließlich der Finanzierung durch den Natural Sciences and Engineering Research Council of Canada (NSERC); siehe die Quellpapiere für Finanzierungsdanksagungen.

Tool herunterladen
AlgorithmusfamilieStandardisierungsstatusPrimäre ImplementierungUpstream-WartungOQS-Stufe
BIKENicht von NIST ausgewähltawslabs/bike-kemTBDStufe 3 (Community)
Classic McElieceUnter ISO-PrüfungPQClean/PQClean@1eacfdaKeine aktive WartungStufe 3 (Community)
FrodoKEMUnter ISO-Prüfungmicrosoft/PQCrypto-LWEKE@a2f9decBest effortStufe 2 (Unterstützt)
HQCVon NIST für die bevorstehende Standardisierung ausgewähltpqc-hqc/hqc@161cd4fTBDStufe 2 (Unterstützt)
KyberVon NIST als Grundlage für ML-KEM (FIPS 203) ausgewähltpq-crystals/kyber@441c051Aktiv gewartetStufe 3 (Community)
ML-KEMVon NIST standardisiertpq-code-package/mlkem-native@0ba906cAktiv gewartetStufe 1 (Kern)
NTRUNicht von NIST ausgewählt, unter Standardisierungsprüfung durch NTTPQClean/PQClean@4c9e5a3Aktiv gewartetStufe 3 (Community)
NTRU-PrimeNicht von NIST ausgewähltopenssh/openssh-portableAktiv gewartetStufe 3 (Community)
AlgorithmusfamilieStandardisierungsstatusPrimäre ImplementierungUpstream-WartungOQS-Stufe
CROSSUnter NIST-PrüfungCROSS-signature/CROSS-lib-oqs@179d61bAktiv gewartetStufe 3 (Community)
FalconVon NIST für die bevorstehende Standardisierung ausgewähltPQClean/PQClean@1eacfdaTBDStufe 3 (Community)
MAYOUnter NIST-PrüfungPQCMayo/MAYO-C@64e15c6Aktiv gewartetStufe 3 (Community)
ML-DSAVon NIST standardisiertpq-code-package/mldsa-native@9b0ee84Aktiv gewartetStufe 2 (Unterstützt)
MQOMUnter NIST-Prüfungmqom/mqom-v2@ec6b7faAktiv gewartetStufe 3 (Community)
SLH-DSAVon NIST standardisiertpq-code-package/slhdsa-c@a0fc1ffBest effortStufe 3 (Community)
SNOVAUnter NIST-Prüfungvacuas/SNOVA@1c3ca6fBest effortStufe 3 (Community)
UOVUnter NIST-Prüfungpqov/pqov@33fa527Best effortStufe 3 (Community)
AlgorithmusfamilieStandardisierungsstatusPrimäre ImplementierungUpstream-WartungOQS-Stufe
LMSVon IRTF standardisiert, von NIST genehmigtcisco/hash-sigsBest effortStufe 2 (Unterstützt)
XMSSVon IRTF standardisiert, von NIST genehmigtXMSS/xmss-referenceAktiv gewartetStufe 2 (Unterstützt)
  • kat_kem: Programm, das Known-Answer-Test (KAT)-Werte für Schlüsselkapselungsmechanismen mit demselben Verfahren wie die NIST-Einreichungsanforderungen generiert, zur Überprüfung gegen eingereichte KAT-Werte mit tests/test_kat.py
  • kat_sig: Programm, das Known-Answer-Test (KAT)-Werte für Signaturschemata mit demselben Verfahren wie die NIST-Einreichungsanforderungen generiert, zur Überprüfung gegen eingereichte KAT-Werte mit tests/test_kat.py
  • kat_sig_stfl: Programm zur Überprüfung der Ergebnisse gegen eingereichte KAT-Werte mit tests/test_kat.py
  • speed_kem: Benchmark-Programm für Schlüsselkapselungsmechanismen; siehe ./speed_kem --help für Verwendungshinweise
  • speed_sig: Benchmark-Programm für Signaturmechanismen; siehe ./speed_sig --help für Verwendungshinweise
  • speed_sig_stfl: Benchmark-Programm für zustandsbehaftete Signaturmechanismen; siehe ./speed_sig_stfl --help für Verwendungshinweise
  • example_kem: Minimales ausführbares Beispiel, das die Verwendung der KEM-API zeigt
  • example_sig: Minimales ausführbares Beispiel, das die Verwendung der Signatur-API zeigt
  • example_sig_stfl: Minimales ausführbares Beispiel, das die Verwendung der zustandsbehafteten Signatur-API zeigt
  • test_aes, test_sha3: Einfache Test-Frameworks für Krypto-Unterkomponenten
  • test_portability: Einfache Test-Frameworks zur Überprüfung der Code-Portabilität über CPUs hinweg; erfordert das Vorhandensein von qemu; der ordnungsgemäße Betrieb wurde nur unter Ubuntu validiert
  • Die vollständige Testsuite kann mit folgendem Befehl ausgeführt werden:

    root@kitploit:~
     ninja run_tests
    
  • Um HTML-Dokumentation der API zu generieren, führen Sie Folgendes aus:

    root@kitploit:~
     ninja gen_docs
    

    Öffnen Sie dann docs/html/index.html in Ihrem Webbrowser.

  • ninja install kann ausgeführt werden, um die gebaute Bibliothek und die include-Dateien an einem Ort Ihrer Wahl zu installieren, der durch Übergabe der Option -DCMAKE_INSTALL_PREFIX=<dir> an cmake zur Konfigurationszeit angegeben werden kann. Alternativ kann ninja package ausgeführt werden, um ein Installationspaket zu erstellen.

  • ninja uninstall kann ausgeführt werden, um alle Installationsdateien zu entfernen.

  • src/kem/bike/additional: Apache-Lizenz v2.0
  • src/kem/classic_mceliece/pqclean_*: Public Domain
  • src/kem/kyber/pqcrystals-*: Public Domain (CC0) oder Apache-Lizenz v2.0
  • src/kem/kyber/pqclean_*: Public Domain (CC0), und Public Domain (CC0) oder Apache-Lizenz v2.0, und Public Domain (CC0) oder MIT, und MIT
  • src/kem/kyber/libjade_* Public Domain (CC0) oder Apache-Lizenz v2.
  • src/kem/ml_kem/mlkem-native_*: MIT oder Apache-Lizenz v2.0 oder ISC-Lizenz
  • src/kem/ntru/pqclean_*: Public Domain (CC0)
  • src/kem/ntruprime/sntrup761_openssh: Public Domain
  • src/sig/falcon/pqclean_*_aarch64 : Apache-Lizenz v2.0
  • src/sig/mayo/*: Apache-Lizenz v2.0
  • src/sig/ml_dsa/pqcrystals-*: Public Domain (CC0) oder Apache-Lizenz v2.0