Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
liboqs — Cライブラリ。量子耐性暗号のプロトタイピングと実験のためのもの。 | Kitploit
ツール/GitHubGitHub/open-quantum-safe/liboqs
暗号化/復号化ツール暗号化ユーティリティとフレームワーク
GitHubopen-quantum-safe/liboqs

liboqs

Cライブラリ。量子耐性暗号のプロトタイピングと実験のためのもの。

リポジトリを見るウェブサイト
3.0k765123日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

liboqs

Main Branch Tests Weekly Tests Coverage Status

liboqsは、量子安全な暗号アルゴリズムのためのオープンソースのCライブラリです。

  • liboqs
    • 概要
    • ステータス
      • 対応アルゴリズム
        • 鍵カプセル化メカニズム
        • 署名方式
        • ステートフル署名方式
      • 制限事項とセキュリティ
        • プラットフォームの制限
        • サポートの制限
    • クイックスタート
      • LinuxとMac
      • Windows
      • クロスコンパイル
    • ドキュメント
    • 貢献
    • ライセンス
    • 謝辞

概要

liboqsが提供するもの:

  • 量子安全な鍵カプセル化メカニズム(KEM)とデジタル署名アルゴリズムのオープンソース実装のコレクション。完全なリストは下記にあります。
  • これらのアルゴリズムのための共通API
  • テストハーネスとベンチマークルーチン

liboqsはOpen Quantum Safe (OQS) プロジェクトの一部であり、量子安全な暗号を開発し、アプリケーションに統合して、実世界のコンテキストでの展開とテストを容易にすることを目的としています。特に、OQSは、OpenSSL 3 Providerを通じて、TLS、X.509、S/MIMEなどのプロトコルへのliboqsのプロトタイプ統合を提供し、その他のさまざまなポスト量子対応デモも提供しています。

OQSプロジェクトは、Linux Foundationの一部としてPost-Quantum Cryptography Allianceによって支援されています。Open Quantum Safeプロジェクトの詳細については、openquantumsafe.orgをご覧ください。

OQSは、コミュニティをよりよく理解するために調査を実施しています。組織や個人の皆様から、Open Quantum Safeプロジェクトへの関心と利用状況についてお聞かせいただきたいと考えています。アンケートへの回答に数分お時間をいただけると幸いです: https://linuxfoundation.surveymonkey.com/r/oqssurvey

ステータス

対応アルゴリズム

以下の表は、現在liboqsに統合されているすべてのアルゴリズムファミリーをまとめたものです。バリアントごとの詳細(NISTレベル、定数時間ステータス、形式検証、利用可能な最適化を含む)については、ALGORITHMS.mdを参照してください。上流のソースと勧告については、docs/algorithmsの下のアルゴリズムごとのページを参照してください。

NISTによって標準化されたアルゴリズムの名前 — ML-KEM、ML-DSA、およびSLH-DSA — は安定しています。NISTが実装の詳細を変更した場合、liboqsはユーザーがそのような変更から保護されるように調整します。他のすべての名前は変更される可能性があります。どのアルゴリズムをビルドするかは、OQS_ALGS_ENABLEDを介して制御できます。デフォルトでは、liboqsは実験的なものを含む表内のすべてのアルゴリズムをサポートしてビルドされます。

鍵カプセル化メカニズム

署名方式

ステートフル署名方式

制限事項とセキュリティ

この文書の執筆時点では、このライブラリで使用されている量子安全アルゴリズムのいずれにも既知の脆弱性はありませんが、量子安全アルゴリズムのほとんどは、現在展開されているアルゴリズムと同じ程度の精査を受けていないため、展開する際には注意が必要です。特に、標準化コミュニティ、特にNISTのPost-Quantum Cryptography Standardizationプロジェクトが提供するガイダンスに注意を払う必要があります。研究が進むにつれて、サポートされているアルゴリズムのセキュリティは急速に変化する可能性があり、古典コンピュータと量子コンピュータの両方に対して安全でないことが判明する可能性もあります。さらに、sntrup761は相互運用性テストのためだけに含まれていることに注意してください。

liboqsは「勝者を選ぶ」ことを意図していません。アルゴリズムのサポートはNIST PQC標準化プロジェクトに基づいています。アプリケーションとプロトコルがポスト量子暗号を展開する際には、この取り組みの成果に依存することを強くお勧めします。

NIST PQC標準化プロジェクトの完了前に量子安全暗号を展開したいと考える関係者もいることを認識しています。そのような試みには、量子安全公開鍵アルゴリズムを従来の公開鍵アルゴリズム(RSAや楕円曲線など)と併用する、いわゆるハイブリッド暗号の使用を強くお勧めします。これにより、ソリューションは少なくとも既存の従来暗号と同等以上の安全性を確保できます。

現在、本ライブラリを本番環境で使用したり、機密データを保護するために依存することを推奨しません。 このライブラリは研究とプロトタイピングを支援することを目的としています。セキュリティバグを回避するためにベストエフォートのアプローチを取っていますが、このライブラリは高いセキュリティ用途で依存するために必要なレベルの監査と分析を受けていません。

脆弱性の報告方法とOQSの脆弱性対応プロセスについては、SECURITY.mdを参照してください。

プラットフォームの制限

サポート作業を最適化するために、

  • すべてのアルゴリズムがすべてのプラットフォームで同等にサポートされているわけではありません。質問がある場合は、まず各アルゴリズムのドキュメントファイルを確認することをお勧めします。
  • すべてのコンパイラが同等にサポートされているわけではありません。たとえば、GNUコンパイラの少なくともv7.1.0が必要です。

サポートの制限このプロジェクトは商用サポートの対象外です。liboqsのすべてのガイドラインと目標は、現在の慣行を反映したものであり、学術関係者、非常勤、および/またはボランティアの貢献者からなるコミュニティによってベストエフォートで実行され、いつでも変更される可能性があります。より確実なコミットメントを求める組織は、OQSコミュニティに参加し、コミュニティが提供できるコードとサポートを強化することを強く推奨します。

クイックスタート

LinuxおよびMac

  1. 依存関係をインストールします:

    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
    

    macOSの場合、お好みのパッケージマネージャーを使用します(ここでは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
    

    Nixを使用する場合:

    root@kitploit:~
     nix develop
    

    liboqsがさまざまな対称暗号アルゴリズム(AES、SHA-2など)にOpenSSLを使用する場合は、OpenSSLがインストールされている必要があることに注意してください(バージョン3.x推奨、サポート終了のバージョン1.1.1も引き続き使用可能です)。

  2. ソースを取得します:

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

    そしてビルドします:

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

生成される成果物をカスタマイズするためのさまざまなcmakeビルドオプションが利用可能であり、CONFIGURE.mdに文書化されています。サポートされているすべてのオプションは.CMake/alg-support.cmakeファイルにも一覧表示されており、buildディレクトリでcmake -LAH -N ..を実行して表示できます。

以下の手順では、buildディレクトリにいることを前提としています。

  1. デフォルトでは、メインのビルド結果は静的ライブラリであるlib/liboqs.aです。共有/動的ライブラリをビルドする場合は、上記のcmake -GNinja ..コマンドに-DBUILD_SHARED_LIBS=ONを追加すると、結果はlib/liboqs.so|dylib|dllになります。公開ヘッダーはincludeディレクトリにあります。また、testsディレクトリの下にはさまざまなプログラムがビルドされます:

    • test_kem: 鍵カプセル化メカニズム用のシンプルなテストハーネス
    • test_sig: 署名スキーム用のシンプルなテストハーネス
    • test_sig_stfl: ステートフル署名スキーム用のシンプルなテストハーネス
    • test_kem_mem: 鍵カプセル化メカニズムのメモリ消費量をチェックするためのシンプルなテストハーネス
    • test_sig_mem: 署名スキームのメモリ消費量をチェックするためのシンプルなテストハーネス
    • kat_kem: NIST提出要件と同じ手順を使用して鍵カプセル化メカニズムの既知回答テスト(KAT)値を生成し、を使用して提出されたKAT値と照合するプログラム

Windows

バイナリは、CMake Tools拡張機能がインストールされたVisual Studio 2019を使用して生成できます。上記のLinux/macOSで説明したものと同じオプションを使用でき、ビルド成果物は指定されたbuildフォルダーに生成されます。

Visual Studioビルドファイルを作成する場合(たとえば、ninjaを使用しない場合)、上記の例のようにcmakeコマンドにパラメータ-GNinjaを渡さ_ない_ようにしてください。その後、msbuildを使用してすべてのコンポーネントをビルドできます。例: msbuild ALL_BUILD.vcxproj。また、すべての成果物をインストールするには、たとえば次のコマンドを使用します: msbuild INSTALL.vcxproj。

クロスコンパイル

さまざまなプラットフォーム向けにliboqsをクロスコンパイルできます。詳細情報はWikiにあります。

ドキュメント

ビルド、オプションのビルドパラメータ、サンプルアプリケーション、コーディング規約などに関するより詳細な情報は、wikiにあります。

貢献

受け入れ基準を満たす貢献は歓迎します。詳細については、Contributing Guideを参照してください。

ライセンス

liboqsはMITライセンスの下でライセンスされています。詳細についてはLICENSE.txtを参照してください。

liboqsには、異なるライセンスで提供されるサードパーティのライブラリまたはモジュールがいくつか含まれています。対応するサブフォルダーには、その場合に適用されるライセンスが含まれています。特に:

  • .CMake/CMakeDependentOption.cmake: BSD 3-Clause License
  • src/common/common.c: Apache License v2.0の部分を含む
  • src/common/crypto/aes/aes_c.c: パブリックドメインまたはOSI承認済みライセンス
  • src/common/crypto/aes/aes*_ni.c: パブリックドメイン
  • src/common/crypto/sha2/sha2_c.c: パブリックドメイン
  • src/common/crypto/sha3/xkcp_low : CC0(パブリックドメイン)、ただしbrg_endian.hと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 : BSD類似のCRYPTOGAMSライセンス
  • src/common/rand/rand_nist.c: ファイルを参照

謝辞

OQSプロジェクトは、Linux Foundationの一部としてPost-Quantum Cryptography Allianceによって支援されています。

OQSプロジェクトは、ウォータールー大学のDouglas StebilaとMichele Moscaによって設立されました。liboqsへの貢献者には、個人の貢献者、学者、研究者、およびAmazon Web Services、Cisco Systems、evolutionQ、IBM Research、Microsoft Research、SandboxAQ、softwareQなどのさまざまな企業が含まれます。

Open Quantum Safeの開発に対する資金援助は、Amazon Web Services、カナダサイバーセキュリティセンター、Cisco、Unitary Fund、NGI Assure Fund、およびVeriSign Inc.から提供されています。

OQSの特定のコンポーネントを開発した研究プロジェクトは、カナダ自然科学・工学研究評議会(NSERC)からの資金を含む、さまざまな研究助成金によって支援されています。資金提供の謝辞についてはソース論文を参照してください。

ツールをダウンロード
アルゴリズムファミリー標準化ステータス主要実装上流メンテナンスOQSティア
BIKENISTによって未選定awslabs/bike-kemTBDティア3(コミュニティ)
Classic McElieceISOで検討中PQClean/PQClean@1eacfdaアクティブなメンテナンスなしティア3(コミュニティ)
FrodoKEMISOで検討中microsoft/PQCrypto-LWEKE@a2f9decベストエフォートティア2(サポート対象)
HQC今後の標準化に向けてNISTによって選定pqc-hqc/hqc@161cd4fTBDティア2(サポート対象)
KyberML-KEM(FIPS 203)の基礎としてNISTによって選定pq-crystals/kyber@441c051アクティブにメンテナンス中ティア3(コミュニティ)
ML-KEMNISTによって標準化pq-code-package/mlkem-native@0ba906cアクティブにメンテナンス中ティア1(コア)
NTRUNISTによって未選定、NTTによる標準化検討中PQClean/PQClean@4c9e5a3アクティブにメンテナンス中ティア3(コミュニティ)
NTRU-PrimeNISTによって未選定openssh/openssh-portableアクティブにメンテナンス中ティア3(コミュニティ)
アルゴリズムファミリー標準化ステータス主要実装上流メンテナンスOQSティア
CROSSNISTで検討中CROSS-signature/CROSS-lib-oqs@179d61bアクティブにメンテナンス中ティア3(コミュニティ)
Falcon今後の標準化に向けてNISTによって選定PQClean/PQClean@1eacfdaTBDティア3(コミュニティ)
MAYONISTで検討中PQCMayo/MAYO-C@64e15c6アクティブにメンテナンス中ティア3(コミュニティ)
ML-DSANISTによって標準化pq-code-package/mldsa-native@9b0ee84アクティブにメンテナンス中ティア2(サポート対象)
MQOMNISTで検討中mqom/mqom-v2@ec6b7faアクティブにメンテナンス中ティア3(コミュニティ)
SLH-DSANISTによって標準化pq-code-package/slhdsa-c@a0fc1ffベストエフォートティア3(コミュニティ)
SNOVANISTで検討中vacuas/SNOVA@1c3ca6fベストエフォートティア3(コミュニティ)
UOVNISTで検討中pqov/pqov@33fa527ベストエフォートティア3(コミュニティ)
アルゴリズムファミリー標準化ステータス主要実装上流メンテナンスOQSティア
LMSIRTFによって標準化、NISTによって承認cisco/hash-sigsベストエフォートティア2(サポート対象)
XMSSIRTFによって標準化、NISTによって承認XMSS/xmss-referenceアクティブにメンテナンス中ティア2(サポート対象)
tests/test_kat.py
  • kat_sig: NIST提出要件と同じ手順を使用して署名スキームの既知回答テスト(KAT)値を生成し、tests/test_kat.pyを使用して提出されたKAT値と照合するプログラム
  • kat_sig_stfl: tests/test_kat.pyを使用して提出されたKAT値と結果を照合するプログラム
  • speed_kem: 鍵カプセル化メカニズム用のベンチマークプログラム。使用手順は./speed_kem --helpを参照
  • speed_sig: 署名メカニズム用のベンチマークプログラム。使用手順は./speed_sig --helpを参照
  • speed_sig_stfl: ステートフル署名メカニズム用のベンチマークプログラム。使用手順は./speed_sig_stfl --helpを参照
  • example_kem: KEM APIの使用方法を示す最小限の実行可能な例
  • example_sig: 署名APIの使用方法を示す最小限の実行可能な例
  • example_sig_stfl: ステートフル署名APIの使用方法を示す最小限の実行可能な例
  • test_aes、test_sha3: 暗号サブコンポーネント用のシンプルなテストハーネス
  • test_portability: クロスCPUコードの移植性をチェックするためのシンプルなテストハーネス。qemuの存在が必要。正しい動作はUbuntuでのみ検証されています
  • 完全なテストスイートは以下で実行できます:

    root@kitploit:~
     ninja run_tests
    
  • APIのHTMLドキュメントを生成するには、以下を実行します:

    root@kitploit:~
     ninja gen_docs
    

    次に、Webブラウザでdocs/html/index.htmlを開きます。

  • ninja installを実行すると、ビルドされたライブラリとincludeファイルを任意の場所にインストールできます。場所は、構成時にcmakeに-DCMAKE_INSTALL_PREFIX=<dir>オプションを渡すことで指定できます。あるいは、ninja packageを実行してインストールパッケージを作成することもできます。

  • ninja uninstallを実行すると、すべてのインストールファイルを削除できます。

  • src/kem/bike/additional: Apache License v2.0
  • src/kem/classic_mceliece/pqclean_*: パブリックドメイン
  • src/kem/kyber/pqcrystals-*: パブリックドメイン(CC0)またはApache License v2.0
  • src/kem/kyber/pqclean_*: パブリックドメイン(CC0)、およびパブリックドメイン(CC0)またはApache License v2.0、およびパブリックドメイン(CC0)またはMIT、およびMIT
  • src/kem/kyber/libjade_* パブリックドメイン(CC0)またはApache License v2.0
  • src/kem/ml_kem/mlkem-native_*: MITまたはApache License v2.0またはISC License
  • src/kem/ntru/pqclean_*: パブリックドメイン(CC0)
  • src/kem/ntruprime/sntrup761_openssh: パブリックドメイン
  • src/sig/falcon/pqclean_*_aarch64 : Apache License v2.0
  • src/sig/mayo/*: Apache License v2.0
  • src/sig/ml_dsa/pqcrystals-*: パブリックドメイン(CC0)またはApache License v2.0