Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
liboqs — Biblioteca em C para prototipagem e experimentação com criptografia resistente a computação quântica | Kitploit
Ferramentas/GitHubGitHub/open-quantum-safe/liboqs
Ferramentas de Criptografia/DescriptografiaCriptografiaUtilitários e Frameworks
GitHubopen-quantum-safe/liboqs

liboqs

Biblioteca em C para prototipagem e experimentação com criptografia resistente a computação quântica

Ver RepositórioSite
3.0k76512há 3 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

liboqs

Main Branch Tests Weekly Tests Coverage Status

liboqs é uma biblioteca C de código aberto para algoritmos criptográficos resistentes a computação quântica.

  • liboqs
    • Visão geral
    • Status
      • Algoritmos suportados
        • Mecanismos de encapsulamento de chave
        • Esquemas de assinatura
        • Esquemas de assinatura com estado
      • Limitações e segurança
        • Limitações de plataforma
        • Limitações de suporte
    • Início rápido
      • Linux e Mac
      • Windows
      • Compilação cruzada
    • Documentação
    • Contribuição
    • Licença
    • Agradecimentos

Visão geral

liboqs fornece:

  • uma coleção de implementações de código aberto de mecanismos de encapsulamento de chave (KEMs) resistentes a computação quântica e algoritmos de assinatura digital; a lista completa pode ser encontrada abaixo
  • uma API comum para esses algoritmos
  • um harness de testes e rotinas de benchmarking

liboqs faz parte do projeto Open Quantum Safe (OQS), que visa desenvolver e integrar em aplicações criptografia resistente a computação quântica para facilitar a implantação e os testes em contextos do mundo real. Em particular, o OQS fornece integrações protótipo do liboqs em protocolos como TLS, X.509 e S/MIME, por meio do nosso OpenSSL 3 Provider, e fornecemos uma variedade de outras demos habilitadas para pós-quântica.

O projeto OQS é apoiado pela Post-Quantum Cryptography Alliance como parte da Linux Foundation. Mais informações sobre o projeto Open Quantum Safe podem ser encontradas em openquantumsafe.org.

O OQS está realizando uma pesquisa para entender melhor nossa comunidade. Gostaríamos de ouvir organizações e indivíduos sobre seu interesse e uso do projeto Open Quantum Safe. Por favor, reserve alguns minutos para preencher a pesquisa: https://linuxfoundation.surveymonkey.com/r/oqssurvey

Status

Algoritmos suportados

A tabela abaixo resume cada família de algoritmos atualmente integrada ao liboqs. Para detalhes por variante (incluindo nível NIST, status de tempo constante, verificação formal e otimizações disponíveis), consulte ALGORITHMS.md; para fontes upstream e avisos, consulte as páginas por algoritmo em docs/algorithms.

Os nomes dos algoritmos padronizados pelo NIST — ML-KEM, ML-DSA e SLH-DSA — são estáveis; se o NIST alterar os detalhes de implementação, o liboqs se ajustará para que os usuários fiquem protegidos contra tais mudanças. Todos os outros nomes estão sujeitos a alterações. Quais algoritmos são compilados pode ser controlado via OQS_ALGS_ENABLED; por padrão, o liboqs é compilado com suporte a todos os algoritmos da tabela, incluindo os experimentais.

Mecanismos de encapsulamento de chave

Esquemas de assinatura

Esquemas de assinatura com estado

Limitações e segurança

Embora no momento em que este texto foi escrito não haja vulnerabilidades conhecidas em nenhum dos algoritmos resistentes a computação quântica usados nesta biblioteca, recomenda-se cautela ao implantar algoritmos resistentes a computação quântica, pois a maioria dos algoritmos e softwares não foi submetida ao mesmo grau de escrutínio que os algoritmos atualmente implantados. Atenção especial deve ser dada às orientações fornecidas pela comunidade de padronização, especialmente pelo projeto Post-Quantum Cryptography Standardization do NIST. À medida que a pesquisa avança, os algoritmos suportados podem sofrer mudanças rápidas em sua segurança e podem até se mostrar inseguros contra computadores clássicos e quânticos. Além disso, observe que o sntrup761 está incluído apenas para testes de interoperabilidade.

O liboqs não pretende "escolher vencedores": o suporte a algoritmos é informado pelo projeto de padronização PQC do NIST. Recomendamos fortemente que aplicações e protocolos dependam dos resultados desse esforço ao implantar criptografia pós-quântica.

Reconhecemos que algumas partes podem querer implantar criptografia resistente a computação quântica antes da conclusão do projeto de padronização PQC do NIST. Recomendamos fortemente que tais tentativas façam uso da chamada criptografia híbrida, na qual algoritmos de chave pública resistentes a computação quântica são usados juntamente com algoritmos tradicionais de chave pública (como RSA ou curvas elípticas), de modo que a solução seja pelo menos tão segura quanto a criptografia tradicional existente.

NÃO RECOMENDAMOS ATUALMENTE CONFIAR NESTA BIBLIOTECA EM UM AMBIENTE DE PRODUÇÃO OU PARA PROTEGER QUAISQUER DADOS SENSÍVEIS. Esta biblioteca destina-se a auxiliar em pesquisa e prototipagem. Embora façamos um esforço de melhor esforço para evitar bugs de segurança, esta biblioteca não recebeu o nível de auditoria e análise necessário para se confiar nela em usos de alta segurança.

Consulte SECURITY.md para detalhes sobre como relatar uma vulnerabilidade e o processo de resposta a vulnerabilidades do OQS.

Limitações de plataforma

Para otimizar o esforço de suporte,

  • nem todos os algoritmos são igualmente bem suportados em todas as plataformas. Em caso de dúvidas, recomenda-se primeiro revisar os arquivos de documentação de cada algoritmo.
  • nem todos os compiladores são igualmente bem suportados. Por exemplo, é necessária pelo menos a versão v7.1.0 do compilador GNU.

Limitações de suporteEste projeto não é comercialmente suportado. Todas as diretrizes e metas para o liboqs são reflexos das práticas atuais, executadas por uma comunidade de contribuidores acadêmicos, de tempo parcial e/ou voluntários numa base de melhor esforço e podem mudar a qualquer momento. Qualquer entidade que procure compromissos mais fiáveis é fortemente encorajada a juntar-se à comunidade OQS e, assim, melhorar o código e o suporte que a comunidade pode fornecer.

Início rápido

Linux e Mac

  1. Instale as dependências:

    No 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
    

    No macOS, usando um gestor de pacotes à sua escolha (escolhemos o 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
    

    Note que, se quiser que o liboqs use OpenSSL para vários algoritmos criptográficos simétricos (AES, SHA-2, etc.), então deve ter o OpenSSL instalado (versão 3.x recomendada; a versão EOL 1.1.1 ainda é possível).

  2. Obtenha o código-fonte:

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

    e compile:

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

Várias opções de compilação cmake para personalizar os artefactos resultantes estão disponíveis e são documentadas em CONFIGURE.md. Todas as opções suportadas também estão listadas no ficheiro .CMake/alg-support.cmake e podem ser visualizadas executando cmake -LAH -N .. no diretório build.

As seguintes instruções assumem que estamos em build.

  1. Por predefinição, o principal resultado da compilação é lib/liboqs.a, uma biblioteca estática. Se quiser compilar uma biblioteca partilhada/dinâmica, acrescente -DBUILD_SHARED_LIBS=ON ao comando cmake -GNinja .. acima e o resultado será lib/liboqs.so|dylib|dll. Os cabeçalhos públicos estão localizados no diretório include. Existem também vários programas compilados no diretório tests:

    • test_kem: Teste simples para mecanismos de encapsulamento de chaves
    • test_sig: Teste simples para esquemas de assinatura
    • test_sig_stfl: Teste simples para esquemas de assinatura com estado
    • test_kem_mem: Teste simples para verificar o consumo de memória de mecanismos de encapsulamento de chaves
    • test_sig_mem: Teste simples para verificar o consumo de memória de esquemas de assinatura

Windows

Os binários podem ser gerados usando o Visual Studio 2019 com a extensão CMake Tools instalada. As mesmas opções explicadas acima para Linux/macOS podem ser usadas e os artefactos de compilação são gerados nas pastas build especificadas.

Se quiser criar ficheiros de compilação do Visual Studio, por exemplo, se não estiver a usar ninja, certifique-se de não passar o parâmetro -GNinja ao comando cmake como exemplificado acima. Pode então compilar todos os componentes usando msbuild, por exemplo, da seguinte forma: msbuild ALL_BUILD.vcxproj e instalar todos os artefactos, por exemplo, usando este comando msbuild INSTALL.vcxproj.

Compilação cruzada

Pode compilar cruzadamente o liboqs para várias plataformas. Informações detalhadas estão disponíveis no Wiki.

Documentação

Informações mais detalhadas sobre compilação, parâmetros de compilação opcionais, aplicações de exemplo, convenções de codificação e mais podem ser encontradas no wiki.

Contribuir

Contribuições que cumpram os critérios de aceitação são bem-vindas. Veja o nosso Guia de Contribuição para mais detalhes.

Licença

O liboqs está licenciado sob a Licença MIT; veja LICENSE.txt para detalhes.

O liboqs inclui algumas bibliotecas ou módulos de terceiros que são licenciados de forma diferente; a subpasta correspondente contém a licença que se aplica nesse caso. Em particular:

  • .CMake/CMakeDependentOption.cmake: Licença BSD 3-Clause
  • src/common/common.c: inclui partes que são Apache License v2.0
  • src/common/crypto/aes/aes_c.c: domínio público ou qualquer licença aprovada pela OSI
  • src/common/crypto/aes/aes*_ni.c: domínio público
  • src/common/crypto/sha2/sha2_c.c: domínio público
  • src/common/crypto/sha3/xkcp_low : CC0 (domínio público), exceto brg_endian.h e KeccakP-1600-AVX2.s
  • src/common/crypto/sha3/xkcp_low/.../brg_endian.h : Licença BSD 3-Clause
  • src/common/crypto/sha3/xkcp_low/.../KeccakP-1600-AVX2.s : Licença CRYPTOGAMS semelhante à BSD
  • src/common/rand/rand_nist.c: Veja o ficheiro

Agradecimentos

O projeto OQS é apoiado pela Post-Quantum Cryptography Alliance como parte da Linux Foundation.

O projeto OQS foi fundado por Douglas Stebila e Michele Mosca na Universidade de Waterloo. Contribuidores do liboqs incluem contribuidores individuais, académicos e investigadores, e várias empresas, incluindo Amazon Web Services, Cisco Systems, evolutionQ, IBM Research, Microsoft Research, SandboxAQ e softwareQ.

O apoio financeiro para o desenvolvimento do Open Quantum Safe foi fornecido pela Amazon Web Services, o Canadian Centre for Cyber Security, a Cisco, o Unitary Fund, o NGI Assure Fund e a VeriSign Inc.

Os projetos de investigação que desenvolveram componentes específicos do OQS foram apoiados por várias bolsas de investigação, incluindo financiamento do Natural Sciences and Engineering Research Council of Canada (NSERC); veja os artigos de origem para os agradecimentos de financiamento.

Baixar ferramenta
Família de algoritmosStatus de padronizaçãoImplementação principalManutenção upstreamNível OQS
BIKENão selecionado pelo NISTawslabs/bike-kemA definirNível 3 (Comunidade)
Classic McElieceSob consideração da ISOPQClean/PQClean@1eacfdaSem manutenção ativaNível 3 (Comunidade)
FrodoKEMSob consideração da ISOmicrosoft/PQCrypto-LWEKE@a2f9decMelhor esforçoNível 2 (Suportado)
HQCSelecionado pelo NIST para padronização futurapqc-hqc/hqc@161cd4fA definirNível 2 (Suportado)
KyberSelecionado pelo NIST como base para o ML-KEM (FIPS 203)pq-crystals/kyber@441c051Mantido ativamenteNível 3 (Comunidade)
ML-KEMPadronizado pelo NISTpq-code-package/mlkem-native@0ba906cMantido ativamenteNível 1 (Núcleo)
NTRUNão selecionado pelo NIST, sob consideração de padronização pela NTTPQClean/PQClean@4c9e5a3Mantido ativamenteNível 3 (Comunidade)
NTRU-PrimeNão selecionado pelo NISTopenssh/openssh-portableMantido ativamenteNível 3 (Comunidade)
Família de algoritmosStatus de padronizaçãoImplementação principalManutenção upstreamNível OQS
CROSSSob consideração do NISTCROSS-signature/CROSS-lib-oqs@179d61bMantido ativamenteNível 3 (Comunidade)
FalconSelecionado pelo NIST para padronização futuraPQClean/PQClean@1eacfdaA definirNível 3 (Comunidade)
MAYOSob consideração do NISTPQCMayo/MAYO-C@64e15c6Mantido ativamenteNível 3 (Comunidade)
ML-DSAPadronizado pelo NISTpq-code-package/mldsa-native@9b0ee84Mantido ativamenteNível 2 (Suportado)
MQOMSob consideração do NISTmqom/mqom-v2@ec6b7faMantido ativamenteNível 3 (Comunidade)
SLH-DSAPadronizado pelo NISTpq-code-package/slhdsa-c@a0fc1ffMelhor esforçoNível 3 (Comunidade)
SNOVASob consideração do NISTvacuas/SNOVA@1c3ca6fMelhor esforçoNível 3 (Comunidade)
UOVSob consideração do NISTpqov/pqov@33fa527Melhor esforçoNível 3 (Comunidade)
Família de algoritmosStatus de padronizaçãoImplementação principalManutenção upstreamNível OQS
LMSPadronizado pela IRTF, aprovado pelo NISTcisco/hash-sigsMelhor esforçoNível 2 (Suportado)
XMSSPadronizado pela IRTF, aprovado pelo NISTXMSS/xmss-referenceMantido ativamenteNível 2 (Suportado)
  • kat_kem: Programa que gera valores de teste de resposta conhecida (KAT) para mecanismos de encapsulamento de chaves usando o mesmo procedimento dos requisitos de submissão do NIST, para verificação contra valores KAT submetidos usando tests/test_kat.py
  • kat_sig: Programa que gera valores de teste de resposta conhecida (KAT) para esquemas de assinatura usando o mesmo procedimento dos requisitos de submissão do NIST, para verificação contra valores KAT submetidos usando tests/test_kat.py
  • kat_sig_stfl: Programa para verificar resultados contra valores KAT submetidos usando tests/test_kat.py
  • speed_kem: Programa de benchmarking para mecanismos de encapsulamento de chaves; veja ./speed_kem --help para instruções de utilização
  • speed_sig: Programa de benchmarking para mecanismos de assinatura; veja ./speed_sig --help para instruções de utilização
  • speed_sig_stfl: Programa de benchmarking para mecanismos de assinatura com estado; veja ./speed_sig_stfl --help para instruções de utilização
  • example_kem: Exemplo mínimo executável que mostra a utilização da API KEM
  • example_sig: Exemplo mínimo executável que mostra a utilização da API de assinatura
  • example_sig_stfl: Exemplo mínimo executável que mostra a utilização da API de assinatura com estado
  • test_aes, test_sha3: Testes simples para subcomponentes criptográficos
  • test_portability: Testes simples para verificar a portabilidade de código entre CPUs; requer a presença de qemu; operação correta validada apenas no Ubuntu
  • A suíte de testes completa pode ser executada usando

    root@kitploit:~
     ninja run_tests
    
  • Para gerar documentação HTML da API, execute:

    root@kitploit:~
     ninja gen_docs
    

    Depois abra docs/html/index.html no seu navegador web.

  • ninja install pode ser executado para instalar a biblioteca compilada e os ficheiros include num local à escolha, que pode ser especificado passando a opção -DCMAKE_INSTALL_PREFIX=<dir> ao cmake no momento da configuração. Alternativamente, ninja package pode ser executado para criar um pacote de instalação.

  • ninja uninstall pode ser executado para remover todos os ficheiros de instalação.

  • src/kem/bike/additional: Apache License v2.0
  • src/kem/classic_mceliece/pqclean_*: domínio público
  • src/kem/kyber/pqcrystals-*: domínio público (CC0) ou Apache License v2.0
  • src/kem/kyber/pqclean_*: domínio público (CC0), e domínio público (CC0) ou Apache License v2.0, e domínio público (CC0) ou MIT, e MIT
  • src/kem/kyber/libjade_* domínio público (CC0) ou Apache License v2.
  • src/kem/ml_kem/mlkem-native_*: MIT ou Apache License v2.0 ou Licença ISC
  • src/kem/ntru/pqclean_*: domínio público (CC0)
  • src/kem/ntruprime/sntrup761_openssh: domínio público
  • src/sig/falcon/pqclean_*_aarch64 : Apache License v2.0
  • src/sig/mayo/*: Apache License v2.0
  • src/sig/ml_dsa/pqcrystals-*: domínio público (CC0) ou Apache License v2.0