MODULE m6 · 8.0 HOURS
パフォーマンス評価およびベンチマーク
0% 完了
LEARNING OBJECTIVES
このモジュールの目標
- 耐量子暗号アルゴリズム(ML-KEM)のパフォーマンス評価指標(時間、メモリ、処理能力)を理解する。
- TLS 1.3 ハンドシェイク過程においてKEM演算がパフォーマンスに与える影響を分析する。
- Liboqsおよびoqs-providerフレームワークを活用してハイブリッド暗号モードのパフォーマンスをベンチマークする。
パフォーマンス評価およびベンチマーク
耐量子暗号(PQC)への移行は、単にアルゴリズムを交換するだけでなく、既存のネットワークプロトコル(例: TLS 1.3)のパフォーマンスに直結する問題である。特にKEM(Key Encapsulation Mechanism)演算は、ハンドシェイクの遅延時間(latency)とサーバーの秒間接続処理数(handshakes per second)に直接的な影響を与える [S2]。
パフォーマンス指標
- 演算時間(Computation Time): 鍵生成(KeyGen)、カプセル化(Encaps)、逆カプセル化(Decaps)のそれぞれに要するCPUサイクルまたは時間(ms)。
- データサイズ: 公開鍵およびカプセル化されたテキスト(ciphertext)のサイズ。これはネットワーク帯域幅消費と断片化発生の可能性を決定する。
- スループット(Throughput): 秒間処理可能なハンドシェイク数。最適化された実装(例: AVX-512 活用)はポリノミアル乗算およびモジュラ演算速度を高め、処理能力を大幅に改善できる [S2]。
ハイブリッドモード
移行期には従来のアルゴリズム(ECDH)とPQC(ML-KEM)を併用するハイブリッドアプローチが推奨される。これはPQCの潜在的な脆弱性に備えつつ、PQCのセキュリティ利点を確保するためである。ハイブリッドモードは演算複雑度が増加するため、パフォーマンス低下を綿密に評価しなければならない [S2]。
WORKED EXAMPLES
解説例
- 例 1: Liboqsを使用した単一KEM演算ベンチマーク Pythonスクリプトを通じて `ML-KEM-768` の `keypair`, `encaps`, `decaps` 動作時間を `timeit` モジュールで測定し、結果をCSVとして保存する方法である。
- 例 2: ハイブリッドTLS 1.3 ハンドシェイク処理能力測定 oqs-providerが適用されたローカルサーバー/クライアント環境にて `s_client` と `s_server` を使用し、100回接続時に要する合計時間を測定して秒間ハンドシェイク数(TPS)を算出する分析手順である。
LAB PROTOCOL
PQCパフォーマンスベンチマーク実習
- 1
隔離された開発環境にてliboqsおよびoqs-providerをインストールし、環境設定を確認する。
- 2
ベンチマーク用Pythonスクリプトを作成し、ML-KEMアルゴリズムの演算時間を測定する。
- 3
Wiresharkを実行してTLSハンドシェイクパケットをキャプチャし、ハイブリッドモード時のデータサイズ変化を分析する。
- 4
測定されたデータに基づき、演算時間および処理能力指標をグラフ化する。
安全確認
- 実験はローカル隔離環境内でのみ実行し、実際の運用環境の証明書や鍵を絶対に使用しないこと。
- ベンチマーク過程で高いCPU負荷が発生する可能性があるため、システムリソースをモニタリングすること。
- 実際の秘密値や鍵データをキャプチャファイルに含めないよう注意すること。
実習提出物
- 演算パフォーマンス測定スクリプト(.py)
- 測定結果CSVデータ
- アルゴリズム別パフォーマンス比較分析レポート(.mdまたは.ipynb)
ASSIGNMENT
暗号アジリティベースのパフォーマンス評価レポート
提出物
評価基準
- ベンチマークデータが再現可能であり、独立した環境で測定されているか?
- パフォーマンス低下の技術的原因(鍵サイズ、演算複雑度)を正確に分析しているか?
- ハイブリッドモードの利点とコストをバランスよく議論しているか?
KNOWLEDGE CHECK
理解度チェック
FIELD CHECK
完了基準
- ベンチマークスクリプトの実行および結果データ確保完了
- パフォーマンス評価レポート提出および通過
- TLSハイブリッドモードパフォーマンス分析完了
MODULE SOURCES
このモジュールの根拠
- Faster Post-Quantum TLS 1.3 Based on ML-KEM: Implementation ...arxiv.org · paper