Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
liboqs — Libreria C per prototipare e sperimentare con la crittografia resistente ai computer quantistici | Kitploit
Strumenti/GitHubGitHub/open-quantum-safe/liboqs
Strumenti di Crittografia/DecrittografiaCrittografiaUtilità e Framework
GitHubopen-quantum-safe/liboqs

liboqs

Libreria C per prototipare e sperimentare con la crittografia resistente ai computer quantistici

Vedi RepositorySito web
3.0k765123 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

liboqs

Main Branch Tests Weekly Tests Coverage Status

liboqs è una libreria C open source per algoritmi crittografici quantum-safe.

  • liboqs
    • Panoramica
    • Stato
      • Algoritmi supportati
        • Meccanismi di incapsulamento delle chiavi
        • Schemi di firma
        • Schemi di firma con stato
      • Limitazioni e sicurezza
        • Limitazioni di piattaforma
        • Limitazioni di supporto
    • Avvio rapido
      • Linux e Mac
      • Windows
      • Compilazione incrociata
    • Documentazione
    • Contribuire
    • Licenza
    • Riconoscimenti

Panoramica

liboqs fornisce:

  • una raccolta di implementazioni open source di meccanismi di incapsulamento delle chiavi (KEM) quantum-safe e algoritmi di firma digitale; l'elenco completo è disponibile qui sotto
  • un'API comune per questi algoritmi
  • un banco di prova e routine di benchmarking

liboqs fa parte del progetto Open Quantum Safe (OQS), che mira a sviluppare e integrare nelle applicazioni la crittografia quantum-safe per facilitare la distribuzione e i test in contesti reali. In particolare, OQS fornisce integrazioni prototipo di liboqs in protocolli come TLS, X.509 e S/MIME, tramite il nostro OpenSSL 3 Provider, e offriamo una varietà di altre demo abilitate al post-quantum.

Il progetto OQS è supportato dalla Post-Quantum Cryptography Alliance come parte della Linux Foundation. Ulteriori informazioni sul progetto Open Quantum Safe sono disponibili su openquantumsafe.org.

OQS sta conducendo un sondaggio per comprendere meglio la nostra comunità. Vorremmo sentire organizzazioni e individui riguardo al loro interesse e utilizzo del progetto Open Quantum Safe. Si prega di dedicare qualche minuto per compilare il sondaggio: https://linuxfoundation.surveymonkey.com/r/oqssurvey

Stato

Algoritmi supportati

La tabella seguente riassume ogni famiglia di algoritmi attualmente integrata in liboqs. Per i dettagli per variante (inclusi livello NIST, stato di tempo costante, verifica formale e ottimizzazioni disponibili), vedere ALGORITHMS.md; per fonti upstream e avvisi, vedere le pagine per singolo algoritmo in docs/algorithms.

I nomi degli algoritmi standardizzati da NIST — ML-KEM, ML-DSA e SLH-DSA — sono stabili; se NIST modifica i dettagli implementativi, liboqs si adeguerà affinché gli utenti siano protetti da tali modifiche. Tutti gli altri nomi sono soggetti a modifiche. Quali algoritmi vengono compilati può essere controllato tramite OQS_ALGS_ENABLED; per impostazione predefinita, liboqs viene compilato supportando ogni algoritmo nella tabella, inclusi quelli sperimentali.

Meccanismi di incapsulamento delle chiavi

Schemi di firma

Schemi di firma con stato

Limitazioni e sicurezza

Sebbene al momento della stesura di questo documento non siano note vulnerabilità in nessuno degli algoritmi quantum-safe utilizzati in questa libreria, si consiglia cautela nella distribuzione di algoritmi quantum-safe, poiché la maggior parte degli algoritmi e dei software non è stata sottoposta allo stesso grado di scrutinio degli algoritmi attualmente distribuiti. Particolare attenzione dovrebbe essere prestata alle indicazioni fornite dalla comunità degli standard, in particolare dal progetto NIST Post-Quantum Cryptography Standardization. Con l'avanzare della ricerca, gli algoritmi supportati possono subire rapidi cambiamenti nella loro sicurezza e potrebbero persino rivelarsi insicuri sia contro computer classici che quantistici. Inoltre, si noti che sntrup761 è incluso solo per test di interoperabilità.

liboqs non intende "scegliere i vincitori": il supporto degli algoritmi è informato dal progetto di standardizzazione NIST PQC. Raccomandiamo vivamente che applicazioni e protocolli si affidino ai risultati di questo sforzo quando distribuiscono crittografia post-quantum.

Siamo consapevoli che alcune parti potrebbero voler distribuire crittografia quantum-safe prima della conclusione del progetto di standardizzazione NIST PQC. Raccomandiamo vivamente che tali tentativi facciano uso della cosiddetta crittografia ibrida, in cui gli algoritmi a chiave pubblica quantum-safe vengono utilizzati insieme agli algoritmi a chiave pubblica tradizionali (come RSA o curve ellittiche), così che la soluzione sia almeno non meno sicura della crittografia tradizionale esistente.

NON RACCOMANDIAMO ATTUALMENTE DI AFFIDARSI A QUESTA LIBRERIA IN UN AMBIENTE DI PRODUZIONE O PER PROTEGGERE QUALSIASI DATO SENSIBILE. Questa libreria è pensata per aiutare nella ricerca e nella prototipazione. Sebbene facciamo uno sforzo per evitare bug di sicurezza, questa libreria non ha ricevuto il livello di audit e analisi necessario per potersi affidare ad essa per usi ad alta sicurezza.

Si prega di consultare SECURITY.md per i dettagli su come segnalare una vulnerabilità e sul processo di risposta alle vulnerabilità di OQS.

Limitazioni di piattaforma

Per ottimizzare lo sforzo di supporto,

  • non tutti gli algoritmi sono ugualmente ben supportati su tutte le piattaforme. In caso di domande, si consiglia innanzitutto di rivedere i file di documentazione per ciascun algoritmo.
  • non tutti i compilatori sono ugualmente ben supportati. Ad esempio, è richiesta almeno la versione v7.1.0 del compilatore GNU.

Limitazioni di supportoQuesto progetto non è supportato commercialmente. Tutte le linee guida e gli obiettivi per liboqs riflettono le pratiche attuali, eseguite da una comunità di contributori accademici, part-time e/o volontari su base di massimo impegno e possono cambiare in qualsiasi momento. Qualsiasi entità che cerchi impegni più affidabili è fortemente incoraggiata a unirsi alla comunità OQS e quindi a migliorare il codice e il supporto che la comunità può fornire.

Avvio rapido

Linux e Mac

  1. Installare le dipendenze:

    Su 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
    

    Su macOS, utilizzando un gestore di pacchetti a scelta (abbiamo scelto 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
    

    Nota che, se vuoi che liboqs usi OpenSSL per vari algoritmi crittografici simmetrici (AES, SHA-2, ecc.), devi avere OpenSSL installato (consigliata la versione 3.x; anche la versione EOL 1.1.1 è ancora possibile).

  2. Ottieni il codice sorgente:

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

    e compila:

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

Sono disponibili varie opzioni di build cmake per personalizzare gli artefatti risultanti e sono documentate in CONFIGURE.md. Tutte le opzioni supportate sono anche elencate nel file .CMake/alg-support.cmake e possono essere visualizzate eseguendo cmake -LAH -N .. nella directory build.

Le seguenti istruzioni presuppongono che ci troviamo in build.

  1. Per impostazione predefinita, il risultato principale della build è lib/liboqs.a, una libreria statica. Se vuoi compilare una libreria condivisa/dinamica, aggiungi -DBUILD_SHARED_LIBS=ON al comando cmake -GNinja .. sopra e il risultato sarà lib/liboqs.so|dylib|dll. Gli header pubblici si trovano nella directory include. Ci sono anche vari programmi compilati nella directory tests:

    • test_kem: semplice harness di test per i meccanismi di incapsulamento delle chiavi
    • test_sig: semplice harness di test per gli schemi di firma
    • test_sig_stfl: semplice harness di test per gli schemi di firma con stato
    • test_kem_mem: semplice harness di test per verificare il consumo di memoria dei meccanismi di incapsulamento delle chiavi
    • test_sig_mem: semplice harness di test per verificare il consumo di memoria degli schemi di firma

Windows

I binari possono essere generati usando Visual Studio 2019 con l'estensione CMake Tools installata. Le stesse opzioni spiegate sopra per Linux/macOS possono essere utilizzate e gli artefatti di build vengono generati nelle cartelle build specificate.

Se vuoi creare file di build di Visual Studio, ad esempio se non usi ninja, assicurati di non passare il parametro -GNinja al comando cmake come esemplificato sopra. Puoi quindi compilare tutti i componenti usando msbuild, ad esempio come segue: msbuild ALL_BUILD.vcxproj e installare tutti gli artefatti usando ad esempio questo comando msbuild INSTALL.vcxproj.

Compilazione incrociata

Puoi compilare in modo incrociato liboqs per varie piattaforme. Informazioni dettagliate sono disponibili nel Wiki.

Documentazione

Informazioni più dettagliate sulla compilazione, sui parametri di build opzionali, sulle applicazioni di esempio, sulle convenzioni di codifica e altro si trovano nel wiki.

Contribuire

I contributi che soddisfano i criteri di accettazione sono accolti con gratitudine. Vedi la nostra Guida ai contributi per maggiori dettagli.

Licenza

liboqs è concesso in licenza sotto la MIT License; vedi LICENSE.txt per i dettagli.

liboqs include alcune librerie o moduli di terze parti concessi in licenza in modo diverso; la sottocartella corrispondente contiene la licenza che si applica in quel caso. In particolare:

  • .CMake/CMakeDependentOption.cmake: BSD 3-Clause License
  • src/common/common.c: include porzioni sotto Apache License v2.0
  • src/common/crypto/aes/aes_c.c: pubblico dominio o qualsiasi licenza approvata OSI
  • src/common/crypto/aes/aes*_ni.c: pubblico dominio
  • src/common/crypto/sha2/sha2_c.c: pubblico dominio
  • src/common/crypto/sha3/xkcp_low : CC0 (pubblico dominio), eccetto brg_endian.h e KeccakP-1600-AVX2.s
  • src/common/crypto/sha3/xkcp_low/.../brg_endian.h : BSD 3-Clause License
  • src/common/crypto/sha3/xkcp_low/.../KeccakP-1600-AVX2.s : licenza simile a BSD CRYPTOGAMS license
  • src/common/rand/rand_nist.c: vedi file

Ringraziamenti

Il progetto OQS è supportato dalla Post-Quantum Cryptography Alliance come parte della Linux Foundation.

Il progetto OQS è stato fondato da Douglas Stebila e Michele Mosca all'Università di Waterloo. I contributori di liboqs includono singoli contributori, accademici e ricercatori, e varie aziende, tra cui Amazon Web Services, Cisco Systems, evolutionQ, IBM Research, Microsoft Research, SandboxAQ e softwareQ.

Il supporto finanziario per lo sviluppo di Open Quantum Safe è stato fornito da Amazon Web Services, il Canadian Centre for Cyber Security, Cisco, il Unitary Fund, il NGI Assure Fund e VeriSign Inc.

I progetti di ricerca che hanno sviluppato componenti specifici di OQS sono stati supportati da varie sovvenzioni di ricerca, inclusi finanziamenti dal Natural Sciences and Engineering Research Council of Canada (NSERC); vedi i documenti di origine per i riconoscimenti di finanziamento.

Scarica lo strumento
Famiglia di algoritmiStato di standardizzazioneImplementazione principaleManutenzione upstreamLivello OQS
BIKENon selezionato da NISTawslabs/bike-kemDa definireLivello 3 (Community)
Classic McElieceIn considerazione ISOPQClean/PQClean@1eacfdaNessuna manutenzione attivaLivello 3 (Community)
FrodoKEMIn considerazione ISOmicrosoft/PQCrypto-LWEKE@a2f9decMiglior sforzoLivello 2 (Supportato)
HQCSelezionato da NIST per la prossima standardizzazionepqc-hqc/hqc@161cd4fDa definireLivello 2 (Supportato)
KyberSelezionato da NIST come base per ML-KEM (FIPS 203)pq-crystals/kyber@441c051Attivamente mantenutoLivello 3 (Community)
ML-KEMStandardizzato da NISTpq-code-package/mlkem-native@0ba906cAttivamente mantenutoLivello 1 (Core)
NTRUNon selezionato da NIST, in considerazione di standardizzazione da NTTPQClean/PQClean@4c9e5a3Attivamente mantenutoLivello 3 (Community)
NTRU-PrimeNon selezionato da NISTopenssh/openssh-portableAttivamente mantenutoLivello 3 (Community)
Famiglia di algoritmiStato di standardizzazioneImplementazione principaleManutenzione upstreamLivello OQS
CROSSIn considerazione NISTCROSS-signature/CROSS-lib-oqs@179d61bAttivamente mantenutoLivello 3 (Community)
FalconSelezionato da NIST per la prossima standardizzazionePQClean/PQClean@1eacfdaDa definireLivello 3 (Community)
MAYOIn considerazione NISTPQCMayo/MAYO-C@64e15c6Attivamente mantenutoLivello 3 (Community)
ML-DSAStandardizzato da NISTpq-code-package/mldsa-native@9b0ee84Attivamente mantenutoLivello 2 (Supportato)
MQOMIn considerazione NISTmqom/mqom-v2@ec6b7faAttivamente mantenutoLivello 3 (Community)
SLH-DSAStandardizzato da NISTpq-code-package/slhdsa-c@a0fc1ffMiglior sforzoLivello 3 (Community)
SNOVAIn considerazione NISTvacuas/SNOVA@1c3ca6fMiglior sforzoLivello 3 (Community)
UOVIn considerazione NISTpqov/pqov@33fa527Miglior sforzoLivello 3 (Community)
Famiglia di algoritmiStato di standardizzazioneImplementazione principaleManutenzione upstreamLivello OQS
LMSStandardizzato da IRTF, approvato da NISTcisco/hash-sigsMiglior sforzoLivello 2 (Supportato)
XMSSStandardizzato da IRTF, approvato da NISTXMSS/xmss-referenceAttivamente mantenutoLivello 2 (Supportato)
  • kat_kem: programma che genera valori di test a risposta nota (KAT) per i meccanismi di incapsulamento delle chiavi utilizzando la stessa procedura dei requisiti di invio NIST, per il confronto con i valori KAT inviati usando tests/test_kat.py
  • kat_sig: programma che genera valori di test a risposta nota (KAT) per gli schemi di firma utilizzando la stessa procedura dei requisiti di invio NIST, per il confronto con i valori KAT inviati usando tests/test_kat.py
  • kat_sig_stfl: programma per verificare i risultati rispetto ai valori KAT inviati usando tests/test_kat.py
  • speed_kem: programma di benchmarking per i meccanismi di incapsulamento delle chiavi; vedi ./speed_kem --help per le istruzioni d'uso
  • speed_sig: programma di benchmarking per i meccanismi di firma; vedi ./speed_sig --help per le istruzioni d'uso
  • speed_sig_stfl: programma di benchmarking per i meccanismi di firma con stato; vedi ./speed_sig_stfl --help per le istruzioni d'uso
  • example_kem: esempio minimo eseguibile che mostra l'uso dell'API KEM
  • example_sig: esempio minimo eseguibile che mostra l'uso dell'API di firma
  • example_sig_stfl: esempio minimo eseguibile che mostra l'uso dell'API di firma con stato
  • test_aes, test_sha3: semplici harness di test per i sotto-componenti crittografici
  • test_portability: semplici harness di test per verificare la portabilità del codice tra CPU; richiede la presenza di qemu; il corretto funzionamento è validato solo su Ubuntu
  • La suite di test completa può essere eseguita con

    root@kitploit:~
     ninja run_tests
    
  • Per generare la documentazione HTML dell'API, esegui:

    root@kitploit:~
     ninja gen_docs
    

    Poi apri docs/html/index.html nel tuo browser web.

  • ninja install può essere eseguito per installare la libreria compilata e i file include in una posizione a scelta, che può essere specificata passando l'opzione -DCMAKE_INSTALL_PREFIX=<dir> a cmake in fase di configurazione. In alternativa, ninja package può essere eseguito per creare un pacchetto di installazione.

  • ninja uninstall può essere eseguito per rimuovere tutti i file di installazione.

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