0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

量子コンピュータ時代に備える暗号スキャナーを作ってみた

0
Last updated at Posted at 2026-03-04

はじめに

量子コンピュータの進歩により、現在広く使われている暗号アルゴリズム(RSA・ECCなど)は将来的に破られる可能性が指摘されています。

この問題は Post-Quantum Cryptography(PQC:耐量子暗号)
と呼ばれる新しい暗号方式への移行を促しています。

しかし現実のシステムでは次のような問題があります。

  • どこで暗号が使われているのか
  • RSAやECDSAがどこに存在するのか
  • PQC移行対象がどれだけあるのか

大規模なコードベースでは、これを把握するだけでもかなり大変です。

そこで今回、ソースコードやミドルウェアの設定ファイルなどを解析してPQC移行対象となる暗号利用箇所を検出するツール pqc-scan をOSSとして公開しました。

GitHubリポジトリ
https://github.com/wakaken/pqc-scan


PQC移行の背景

量子コンピュータが実用化すると、現在の公開鍵暗号の多くはショアのアルゴリズムにより理論上破られると言われています。
特に次のアルゴリズムは量子耐性がありません。

  • RSA
  • ECDSA
  • ECDH
  • Diffie-Hellman

そのため現在、世界中で Post-Quantum Cryptography (PQC) への移行が始まっています。

例えばNISTは次のPQCアルゴリズムを標準化しています。

  • ML-KEM(旧Kyber)
  • ML-DSA(旧Dilithium)
  • SLH-DSA

しかし既存システムでは依然として

  • RSA証明書
  • JWT署名
  • SSH鍵
  • TLS設定

など、量子耐性のない暗号が大量に残っています。
そのため 最初のステップは暗号の棚卸し(Crypto Inventory) になります。


pqc-scanとは

pqc-scan は ソースコードをスキャンして量子耐性のない暗号を検出するツール です。
Rustで実装されたCLIツールとして提供されています。


主な特徴

1. ソースコードから暗号利用箇所を検出

例えば以下のような暗号利用を検出できます。

RS256
RSA
ECDSA

対象例

  • JWT署名
  • TLS設定
  • SSH鍵
  • crypto API

2. 多言語コードをスキャン

pqc-scan は以下の言語を対象に設計されています。

  • Java
  • Python
  • Go
  • JavaScript / TypeScript
  • Ruby
  • Rust

OSSプロジェクトの暗号利用状況を簡単に確認できます。


3. PQC移行リスクの可視化

検出結果は

  • quantum-vulnerable
  • quantum-uncertain
  • quantum-safe

といった形で分類されます。


4. レポート生成

pqc-scan は以下の形式で結果を出力できます。

  • HTML
  • JSON
  • Markdown
  • SARIF

SARIF形式を使うことで GitHub Code Scanningと統合することも可能です。


インストール

Rust環境があれば簡単にビルドできます。

git clone https://github.com/wakaken/pqc-scan
cd pqc-scan
cargo install --path crates/pqc_scan_cli

使い方

基本的な使い方はシンプルです。

pqc-scan scan ./target-project --format all --out-dir ./pqc-report --rules-dir /path/to/pqc-scan/rules

出力形式を指定することもできます。例えば、--formatにhtmlを指定するとhtml形式のレポートのみが出力されます。

pqc-scan scan ./project \
  --format html \
  --out-dir ./pqc-report

OSSをスキャンしてみる

例えば Keycloak のソースコードをスキャンする場合は次のようになります。

git clone https://github.com/keycloak/keycloak

pqc-scan scan ./keycloak \
  --format all \
  --out-dir ./pqc-report-keycloak

これにより

  • RSA使用箇所
  • JWT署名
  • TLS関連設定

などが検出されます。


PQC移行の第一歩は「暗号の棚卸し」

PQC移行の議論ではよく「ML-KEMを導入するべきか」のような話になります。
しかし実際の移行プロセスは

  1. Crypto Inventory
  2. PQC Migration Plan
  3. Hybrid Cryptography
  4. PQC Only

という段階を踏みます。
pqc-scanはその 最初のステップである暗号の棚卸しを支援するツール です。


まとめ

pqc-scan は

  • ソースコードや設定ファイルから暗号利用箇所を検出
  • PQC移行対象を可視化
  • OSSプロジェクトの暗号利用状況を分析

するためのツールです。

量子時代に向けたセキュリティ対策として 「まず暗号の棚卸しを行う」 という観点で活用できます。


GitHub

ぜひ試してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?