Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
liboqs — Librería en C para prototipado y experimentación con criptografía resistente a la computación cuántica. | Kitploit
Herramientas/GitHubGitHub/open-quantum-safe/liboqs
Herramientas de Cifrado/DescifradoCriptografíaUtilidades y Frameworks
GitHubopen-quantum-safe/liboqs

liboqs

Librería en C para prototipado y experimentación con criptografía resistente a la computación cuántica.

Ver RepositorioSitio web
3.0k76512hace 3 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

liboqs

Main Branch Tests Weekly Tests Coverage Status

liboqs es una biblioteca C de código abierto para algoritmos criptográficos resistentes a la computación cuántica.

  • liboqs
    • Descripción general
    • Estado
      • Algoritmos compatibles
        • Mecanismos de encapsulación de claves
        • Esquemas de firma
        • Esquemas de firma con estado
      • Limitaciones y seguridad
        • Limitaciones de plataforma
        • Limitaciones de soporte
    • Inicio rápido
      • Linux y Mac
      • Windows
      • Compilación cruzada
    • Documentación
    • Contribuciones
    • Licencia
    • Agradecimientos

Descripción general

liboqs proporciona:

  • una colección de implementaciones de código abierto de mecanismos de encapsulación de claves (KEM) resistentes a la computación cuántica y algoritmos de firma digital; la lista completa se puede encontrar a continuación
  • una API común para estos algoritmos
  • un banco de pruebas y rutinas de evaluación comparativa

liboqs es parte del proyecto Open Quantum Safe (OQS), cuyo objetivo es desarrollar e integrar en aplicaciones criptografía resistente a la computación cuántica para facilitar su despliegue y prueba en contextos del mundo real. En particular, OQS proporciona integraciones prototipo de liboqs en protocolos como TLS, X.509 y S/MIME, a través de nuestro Proveedor OpenSSL 3, y ofrecemos una variedad de otras demostraciones habilitadas para post-cuántica.

El proyecto OQS cuenta con el apoyo de la Post-Quantum Cryptography Alliance como parte de la Linux Foundation. Más información sobre el proyecto Open Quantum Safe se puede encontrar en openquantumsafe.org.

OQS está realizando una encuesta para comprender mejor a nuestra comunidad. Nos gustaría conocer el interés y el uso del proyecto Open Quantum Safe por parte de organizaciones e individuos. Por favor, tómese unos minutos para completar la encuesta: https://linuxfoundation.surveymonkey.com/r/oqssurvey

Estado

Algoritmos compatibles

La tabla siguiente resume cada familia de algoritmos actualmente integrada en liboqs. Para obtener detalles por variante (incluido el nivel NIST, el estado de tiempo constante, la verificación formal y las optimizaciones disponibles), consulte ALGORITHMS.md; para fuentes upstream y avisos, consulte las páginas por algoritmo en docs/algorithms.

Los nombres de los algoritmos estandarizados por NIST — ML-KEM, ML-DSA y SLH-DSA — son estables; si NIST cambia los detalles de implementación, liboqs se ajustará para que los usuarios estén protegidos frente a dichos cambios. Todos los demás nombres están sujetos a cambios. Qué algoritmos se compilan se puede controlar mediante OQS_ALGS_ENABLED; por defecto, liboqs se compila con soporte para todos los algoritmos de la tabla, incluidos los experimentales.

Mecanismos de encapsulación de claves

Esquemas de firma

Esquemas de firma con estado

Limitaciones y seguridad

Si bien al momento de redactar este documento no se conocen vulnerabilidades en ninguno de los algoritmos resistentes a la computación cuántica utilizados en esta biblioteca, se recomienda precaución al implementar algoritmos resistentes a la computación cuántica, ya que la mayoría de los algoritmos y software no han sido sometidos al mismo grado de escrutinio que los algoritmos actualmente desplegados. Se debe prestar especial atención a las directrices proporcionadas por la comunidad de estándares, especialmente al proyecto de Estandarización de Criptografía Post-Cuántica de NIST. A medida que avanza la investigación, los algoritmos compatibles pueden experimentar cambios rápidos en su seguridad e incluso podrían demostrar ser inseguros frente a computadoras tanto clásicas como cuánticas. Además, tenga en cuenta que sntrup761 solo se incluye para pruebas de interoperabilidad.

liboqs no pretende "elegir ganadores": el soporte de algoritmos se basa en el proyecto de estandarización PQC de NIST. Recomendamos encarecidamente que las aplicaciones y protocolos se basen en los resultados de este esfuerzo al implementar criptografía post-cuántica.

Somos conscientes de que algunas partes pueden querer implementar criptografía resistente a la computación cuántica antes de la conclusión del proyecto de estandarización PQC de NIST. Recomendamos encarecidamente que dichos intentos hagan uso de la denominada criptografía híbrida, en la que los algoritmos de clave pública resistentes a la computación cuántica se utilizan junto con algoritmos de clave pública tradicionales (como RSA o curvas elípticas), de modo que la solución sea al menos tan segura como la criptografía tradicional existente.

NO RECOMENDAMOS ACTUALMENTE DEPENDER DE ESTA BIBLIOTECA EN UN ENTORNO DE PRODUCCIÓN NI PARA PROTEGER DATOS SENSIBLES. Esta biblioteca está pensada para ayudar en la investigación y la creación de prototipos. Si bien hacemos un esfuerzo de buena fe para evitar errores de seguridad, esta biblioteca no ha recibido el nivel de auditoría y análisis que sería necesario para confiar en ella en usos de alta seguridad.

Consulte SECURITY.md para obtener detalles sobre cómo informar una vulnerabilidad y el proceso de respuesta a vulnerabilidades de OQS.

Limitaciones de plataforma

Para optimizar el esfuerzo de soporte,

  • no todos los algoritmos están igualmente bien soportados en todas las plataformas. En caso de dudas, se recomienda primero revisar los archivos de documentación de cada algoritmo.
  • no todos los compiladores están igualmente bien soportados. Por ejemplo, se requiere al menos la versión v7.1.0 del compilador GNU.

Limitaciones de soporteEste proyecto no cuenta con soporte comercial. Todas las pautas y objetivos de liboqs son reflejo de las prácticas actuales, ejecutadas por una comunidad de colaboradores académicos, a tiempo parcial y/o voluntarios de buena fe y pueden cambiar en cualquier momento. Cualquier entidad que busque compromisos más fiables está fuertemente animada a unirse a la comunidad OQS y así mejorar el código y el soporte que la comunidad puede ofrecer.

Inicio rápido

Linux y Mac

  1. Instale las dependencias:

    En 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
    

    En macOS, usando un gestor de paquetes de su elección (hemos elegido 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
    

    Usando Nix:

    root@kitploit:~
     nix develop
    

    Tenga en cuenta que, si desea que liboqs use OpenSSL para varios algoritmos criptográficos simétricos (AES, SHA-2, etc.), debe tener OpenSSL instalado (se recomienda la versión 3.x; la versión EOL 1.1.1 también sigue siendo posible).

  2. Obtenga el código fuente:

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

    y compile:

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

Hay varias opciones de compilación cmake disponibles para personalizar los artefactos resultantes y están documentadas en CONFIGURE.md. Todas las opciones compatibles también se enumeran en el archivo .CMake/alg-support.cmake y se pueden ver ejecutando cmake -LAH -N .. en el directorio build.

Las siguientes instrucciones asumen que estamos en build.

  1. De forma predeterminada, el resultado principal de la compilación es lib/liboqs.a, una biblioteca estática. Si desea compilar una biblioteca compartida/dinámica, agregue -DBUILD_SHARED_LIBS=ON al comando cmake -GNinja .. anterior y el resultado será lib/liboqs.so|dylib|dll. Los encabezados públicos se encuentran en el directorio include. También hay una variedad de programas compilados en el directorio tests:

    • test_kem: Marco de pruebas simple para mecanismos de encapsulación de claves
    • test_sig: Marco de pruebas simple para esquemas de firma
    • test_sig_stfl: Marco de pruebas simple para esquemas de firma con estado
    • test_kem_mem: Marco de pruebas simple para verificar el consumo de memoria de los mecanismos de encapsulación de claves
    • test_sig_mem: Marco de pruebas simple para verificar el consumo de memoria de los esquemas de firma

Windows

Se pueden generar binarios usando Visual Studio 2019 con la extensión CMake Tools instalada. Se pueden usar las mismas opciones explicadas anteriormente para Linux/macOS y los artefactos de compilación se generan en las carpetas build especificadas.

Si desea crear archivos de compilación de Visual Studio, por ejemplo, si no usa ninja, asegúrese de no pasar el parámetro -GNinja al comando cmake como se ejemplificó anteriormente. Luego puede compilar todos los componentes usando msbuild, por ejemplo, de la siguiente manera: msbuild ALL_BUILD.vcxproj e instalar todos los artefactos usando, por ejemplo, este comando: msbuild INSTALL.vcxproj.

Compilación cruzada

Puede compilar liboqs de forma cruzada para varias plataformas. Hay información detallada disponible en la Wiki.

Documentación

Puede encontrar información más detallada sobre la compilación, los parámetros de compilación opcionales, las aplicaciones de ejemplo, las convenciones de codificación y más en la wiki.

Contribuciones

Las contribuciones que cumplan con los criterios de aceptación son bienvenidas con gratitud. Consulte nuestra Guía de contribuciones para más detalles.

Licencia

liboqs está licenciado bajo la Licencia MIT; consulte LICENSE.txt para más detalles.

liboqs incluye algunas bibliotecas o módulos de terceros que están licenciados de manera diferente; la subcarpeta correspondiente contiene la licencia que se aplica en ese caso. En particular:

  • .CMake/CMakeDependentOption.cmake: Licencia BSD de 3 cláusulas
  • src/common/common.c: incluye partes que son Licencia Apache v2.0
  • src/common/crypto/aes/aes_c.c: dominio público o cualquier licencia aprobada por OSI
  • src/common/crypto/aes/aes*_ni.c: dominio público
  • src/common/crypto/sha2/sha2_c.c: dominio público
  • src/common/crypto/sha3/xkcp_low : CC0 (dominio público), excepto brg_endian.h y KeccakP-1600-AVX2.s
  • src/common/crypto/sha3/xkcp_low/.../brg_endian.h : Licencia BSD de 3 cláusulas
  • src/common/crypto/sha3/xkcp_low/.../KeccakP-1600-AVX2.s : Licencia CRYPTOGAMS similar a BSD
  • src/common/rand/rand_nist.c: Consulte el archivo

Agradecimientos

El proyecto OQS cuenta con el apoyo de la Post-Quantum Cryptography Alliance como parte de la Linux Foundation.

El proyecto OQS fue fundado por Douglas Stebila y Michele Mosca en la Universidad de Waterloo. Los contribuyentes a liboqs incluyen contribuyentes individuales, académicos e investigadores, y varias empresas, incluidas Amazon Web Services, Cisco Systems, evolutionQ, IBM Research, Microsoft Research, SandboxAQ y softwareQ.

El apoyo financiero para el desarrollo de Open Quantum Safe ha sido proporcionado por Amazon Web Services, el Centro Canadiense de Ciberseguridad, Cisco, el Unitary Fund, el NGI Assure Fund y VeriSign Inc.

Los proyectos de investigación que desarrollaron componentes específicos de OQS han sido apoyados por varias subvenciones de investigación, incluida la financiación del Consejo de Investigación en Ciencias Naturales e Ingeniería de Canadá (NSERC); consulte los artículos fuente para los agradecimientos de financiación.

Descargar herramienta
Familia de algoritmosEstado de estandarizaciónImplementación principalMantenimiento upstreamNivel OQS
BIKENo seleccionado por NISTawslabs/bike-kemPor determinarNivel 3 (Comunidad)
Classic McElieceEn consideración por ISOPQClean/PQClean@1eacfdaSin mantenimiento activoNivel 3 (Comunidad)
FrodoKEMEn consideración por ISOmicrosoft/PQCrypto-LWEKE@a2f9decMejor esfuerzoNivel 2 (Compatible)
HQCSeleccionado por NIST para próxima estandarizaciónpqc-hqc/hqc@161cd4fPor determinarNivel 2 (Compatible)
KyberSeleccionado por NIST como base para ML-KEM (FIPS 203)pq-crystals/kyber@441c051Mantenimiento activoNivel 3 (Comunidad)
ML-KEMEstandarizado por NISTpq-code-package/mlkem-native@0ba906cMantenimiento activoNivel 1 (Núcleo)
NTRUNo seleccionado por NIST, en consideración de estandarización por NTTPQClean/PQClean@4c9e5a3Mantenimiento activoNivel 3 (Comunidad)
NTRU-PrimeNo seleccionado por NISTopenssh/openssh-portableMantenimiento activoNivel 3 (Comunidad)
Familia de algoritmosEstado de estandarizaciónImplementación principalMantenimiento upstreamNivel OQS
CROSSEn consideración por NISTCROSS-signature/CROSS-lib-oqs@179d61bMantenimiento activoNivel 3 (Comunidad)
FalconSeleccionado por NIST para próxima estandarizaciónPQClean/PQClean@1eacfdaPor determinarNivel 3 (Comunidad)
MAYOEn consideración por NISTPQCMayo/MAYO-C@64e15c6Mantenimiento activoNivel 3 (Comunidad)
ML-DSAEstandarizado por NISTpq-code-package/mldsa-native@9b0ee84Mantenimiento activoNivel 2 (Compatible)
MQOMEn consideración por NISTmqom/mqom-v2@ec6b7faMantenimiento activoNivel 3 (Comunidad)
SLH-DSAEstandarizado por NISTpq-code-package/slhdsa-c@a0fc1ffMejor esfuerzoNivel 3 (Comunidad)
SNOVAEn consideración por NISTvacuas/SNOVA@1c3ca6fMejor esfuerzoNivel 3 (Comunidad)
UOVEn consideración por NISTpqov/pqov@33fa527Mejor esfuerzoNivel 3 (Comunidad)
Familia de algoritmosEstado de estandarizaciónImplementación principalMantenimiento upstreamNivel OQS
LMSEstandarizado por IRTF, aprobado por NISTcisco/hash-sigsMejor esfuerzoNivel 2 (Compatible)
XMSSEstandarizado por IRTF, aprobado por NISTXMSS/xmss-referenceMantenimiento activoNivel 2 (Compatible)
  • kat_kem: Programa que genera valores de prueba de respuesta conocida (KAT) para mecanismos de encapsulación de claves utilizando el mismo procedimiento que los requisitos de presentación del NIST, para verificar contra los valores KAT presentados usando tests/test_kat.py
  • kat_sig: Programa que genera valores de prueba de respuesta conocida (KAT) para esquemas de firma utilizando el mismo procedimiento que los requisitos de presentación del NIST, para verificar contra los valores KAT presentados usando tests/test_kat.py
  • kat_sig_stfl: Programa para verificar resultados contra los valores KAT presentados usando tests/test_kat.py
  • speed_kem: Programa de evaluación comparativa para mecanismos de encapsulación de claves; consulte ./speed_kem --help para instrucciones de uso
  • speed_sig: Programa de evaluación comparativa para mecanismos de firma; consulte ./speed_sig --help para instrucciones de uso
  • speed_sig_stfl: Programa de evaluación comparativa para mecanismos de firma con estado; consulte ./speed_sig_stfl --help para instrucciones de uso
  • example_kem: Ejemplo mínimo ejecutable que muestra el uso de la API KEM
  • example_sig: Ejemplo mínimo ejecutable que muestra el uso de la API de firma
  • example_sig_stfl: Ejemplo mínimo ejecutable que muestra el uso de la API de firma con estado
  • test_aes, test_sha3: Marcos de prueba simples para subcomponentes criptográficos
  • test_portability: Marcos de prueba simples para verificar la portabilidad del código entre CPUs; requiere la presencia de qemu; el funcionamiento correcto solo está validado en Ubuntu
  • La suite de pruebas completa se puede ejecutar usando

    root@kitploit:~
     ninja run_tests
    
  • Para generar documentación HTML de la API, ejecute:

    root@kitploit:~
     ninja gen_docs
    

    Luego abra docs/html/index.html en su navegador web.

  • Se puede ejecutar ninja install para instalar la biblioteca compilada y los archivos include en una ubicación de su elección, que se puede especificar pasando la opción -DCMAKE_INSTALL_PREFIX=<dir> a cmake en el momento de la configuración. Alternativamente, se puede ejecutar ninja package para crear un paquete de instalación.

  • Se puede ejecutar ninja uninstall para eliminar todos los archivos de instalación.

  • src/kem/bike/additional: Licencia Apache v2.0
  • src/kem/classic_mceliece/pqclean_*: dominio público
  • src/kem/kyber/pqcrystals-*: dominio público (CC0) o Licencia Apache v2.0
  • src/kem/kyber/pqclean_*: dominio público (CC0), y dominio público (CC0) o Licencia Apache v2.0, y dominio público (CC0) o MIT, y MIT
  • src/kem/kyber/libjade_* dominio público (CC0) o Licencia Apache v2.
  • src/kem/ml_kem/mlkem-native_*: MIT o Licencia Apache v2.0 o Licencia ISC
  • src/kem/ntru/pqclean_*: dominio público (CC0)
  • src/kem/ntruprime/sntrup761_openssh: dominio público
  • src/sig/falcon/pqclean_*_aarch64 : Licencia Apache v2.0
  • src/sig/mayo/*: Licencia Apache v2.0
  • src/sig/ml_dsa/pqcrystals-*: dominio público (CC0) o Licencia Apache v2.0