ポスト量子暗号:CRYSTALS-KyberとDilithium
NISTが選定したポスト量子アルゴリズムを概観し、それらが依存する格子問題を理解するとともに、既存のPKI基盤の移行課題を評価します。
「ポスト量子暗号:CRYSTALS-KyberとDilithium」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
量子コンピューティングの脅威
現在の公開鍵暗号であるRSA、ECC、Diffie-Hellmanは、従来のコンピューターでは計算量の面で解くことが困難な数学的問題に依存しています。RSAの安全性は大きな整数の素因数分解の困難さに基づき、ECCの安全性は楕円曲線離散対数問題の困難さに基づいています。十分な性能を持つ量子コンピューターでShorのアルゴリズムを実行すると、これらの問題を多項式時間で解くことができ、広く利用されている公開鍵暗号を事実上すべて破る可能性があります。そのような量子コンピューターは現在まだ存在しませんが、NISTは脅威を深刻に受け止め、2016年に耐量子計算機暗号の標準化を開始しました。
Harvest Now, Decrypt Later攻撃
国家レベルの攻撃者は、量子コンピューターが利用可能になった時点で復号することを目的として、現在の暗号化されたインターネット通信を収集している可能性があります。この戦略は「harvest now, decrypt later」、またはSNDL(Store Now, Decrypt Later)と呼ばれます。長期にわたって機密性が求められるデータ(政府の機密情報、金融記録、医療データなど)は、量子コンピューターが登場した後も機密性が必要な可能性があるため、特にリスクが高くなります。そのため組織には、量子コンピューターが登場してからではなく、登場する前にポスト量子暗号(PQC)へ移行することが推奨されています。移行には複雑で時間がかかるためです。
Groverのアルゴリズムと対称鍵暗号
アルゴリズムの種類によって量子コンピューターから受ける脅威が異なることを理解することが重要です。Shorのアルゴリズムは、RSAやECCなどの非対称暗号を破ります。Groverのアルゴリズムは探索を二次的に高速化するため、対称鍵暗号とハッシュ関数の実効鍵長を半分にします。つまり、AES-128は量子攻撃者に対して64ビット相当の安全性しか提供せず、不十分です。一方、AES-256はポスト量子環境でも128ビットの安全性を維持するため、許容できます。SHA-256も安全性が半減しますが、それでもSHA-256は十分です。より長期的な安全性のためには、SHA-384とSHA-512が推奨されます。
NISTのPQC標準化プロセス
2016年、NISTはポスト量子暗号アルゴリズムを選定するための公募を開始し、82件の提案を受け付けました。複数回の評価を経て、NISTは2024年に最初のPQC標準群を確定しました。鍵カプセル化にはFIPS 203(CRYSTALS-Kyberに由来するML-KEM)、デジタル署名にはFIPS 204(CRYSTALS-Dilithiumに由来するML-DSA)、ハッシュベース署名の代替にはFIPS 205(SPHINCS+に由来するSLH-DSA)が定められています。これらのアルゴリズムは、従来のコンピューターと量子コンピューターの両方からの攻撃に耐えるものであり、PKIシステムでRSAとECDSAに置き換わることが想定されています。
格子ベース暗号の基礎
CRYSTALS-KyberとCRYSTALS-Dilithiumはいずれも格子ベースの暗号方式です。格子とは、高次元空間に規則的に並んだ点の集合です。両方のアルゴリズムの基盤となる困難な問題は、Learning With Errors(LWE)問題です。これは、小さなランダム誤差を加えた一連の線形方程式から、元の秘密を求める問題です。LWEを効率的に解けることが知られている量子アルゴリズムはありません。CRYSTALSで使用されるModule-LWE(MLWE)は、安全性のレベルと鍵および暗号文のサイズのバランスに優れています。
CRYSTALS-Kyber:鍵カプセル化
CRYSTALS-Kyber(現在のML-KEM)は鍵カプセル化メカニズム(KEM)です。安全でない通信経路上で2者が共有秘密を確立でき、Diffie-HellmanやRSAによる鍵交換に置き換わります。Kyberは公開鍵と秘密鍵のペアを生成し、送信者は受信者の公開鍵を使ってランダムなセッション鍵をカプセル化します。受信者は自分の秘密鍵を使ってそれをデカプセル化します。Kyber-768(NISTセキュリティレベル3、概ねAES-192相当)の公開鍵は約1,184バイト、暗号文は約1,088バイトで、256バイトのRSA-2048鍵よりも大幅に大きくなります。
CRYSTALS-Dilithium:デジタル署名
CRYSTALS-Dilithium(現在のML-DSA)は、ECDSAやRSAの署名に置き換わるデジタル署名アルゴリズムです。格子数学を使って署名を生成し、検証も効率的に行えます。Dilithium3(セキュリティレベル3)の署名サイズは約3,293バイトで、64バイトのECDSA署名より大幅に大きくなります。このサイズの増加が、証明書を多用するPKIシステムにおける主な移行課題です。サイズは大きいものの、Dilithiumは標準的なハードウェア上で高速に署名と検証を行え、既知の量子攻撃すべてに耐性があります。
SPHINCS+:ハッシュベース署名
SPHINCS+(現在のSLH-DSA)は、Dilithiumの代替としてNISTが選定したステートレスなハッシュベース署名方式です。その安全性は基盤となるハッシュ関数(SHA-256またはSHAKE)の安全性だけに依存するため、非常に保守的な方式です。仮に格子数学が何らかの方法で破られても、SPHINCS+は安全性を維持できます。その代わり、署名サイズにはトレードオフがあります。SPHINCS+の署名はパラメーターセットに応じて8KBから50KBに及ぶため、TLS証明書には適していませんが、署名サイズがそれほど重要ではないコード署名には非常に適しています。
ハイブリッド暗号:移行戦略
推奨される移行戦略はハイブリッド暗号です。従来のアルゴリズムとポスト量子アルゴリズムを組み合わせ、どちらか一方のアルゴリズムが破られない限り通信の安全性を保ちます。たとえば、鍵交換にX25519 + Kyber-768を使用すると、攻撃者は通信を復号するためにECDHとKyberの両方を破る必要があります。この方式はすでに導入されています。GoogleのChromeブラウザは2023年にTLS 1.3用のX25519Kyber768ハイブリッド鍵交換のサポートを追加し、AppleもiMessageに追加しました。ハイブリッド方式を採用すると、ある日一斉に切り替えるのではなく、円滑に移行できます。
PKI移行の課題
PKIをポスト量子アルゴリズムへ移行するには、非常に大きな複雑さが伴います。証明書のサイズが大幅に増加し、TLSハンドシェイクのサイズと性能に影響します。ハードウェアセキュリティモジュール(HSM)は、新しいアルゴリズムをサポートするために更新または交換が必要です。コード署名基盤と認証局も更新する必要があります。また、メモリに制約のあるIoTデバイスは、より大きなポスト量子鍵をサポートできない可能性があります。組織はPQC移行計画の第一歩として、RSAとECCが使用されているすべての場所を一覧化する暗号資産の棚卸しを開始する必要があります。
Crypto Agility:システムの将来性を高める
Crypto agilityとは、システム全体を再設計しなくても暗号アルゴリズムを交換できるようにシステムを設計することです。Crypto agilityを備えたシステムでは、鍵や暗号文とともにアルゴリズム識別子を保存するため、設定パラメーターを変更するだけで将来のアップグレードが可能です。TLS、SSH、最新の証明書標準には、すでにCrypto agilityの考え方が取り入れられています。組織は、独自のプロトコルやアプリケーションにハードコードされたアルゴリズムの選択がないか監査する必要があります。これらは移行コストが最も高くなるシステムです。今のうちに暗号ライブラリの抽象化レイヤーを導入しておくと、PQCへの移行が桁違いに容易になります。
理解度チェック
このレッスンで学んだCompTIA Security+(SY0-701)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、ShorのアルゴリズムがRSAとECCを脅かす一方で、Groverのアルゴリズムが対称鍵の安全性を半分にするだけであるため、AES-256とSHA-384はポスト量子環境でも引き続き利用可能であること、CRYSTALS-Kyber(ML-KEM)が鍵交換に取って代わり、CRYSTALS-Dilithium(ML-DSA)がNISTの選定したポスト量子標準としてデジタル署名に取って代わること、そして従来のアルゴリズムとPQCアルゴリズムを組み合わせたハイブリッド暗号が移行期間中に推奨される戦略であることを学びました。次は、クラウドネイティブ環境におけるコンテナセキュリティについて学びます。
よくある質問
「ポスト量子暗号:CRYSTALS-KyberとDilithium」レッスンは無料ですか?
はい。「ポスト量子暗号:CRYSTALS-KyberとDilithium」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「ポスト量子暗号:CRYSTALS-KyberとDilithium」で何を学びますか?
NISTが選定したポスト量子アルゴリズムを概観し、それらが依存する格子問題を理解するとともに、既存のPKI基盤の移行課題を評価します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「ポスト量子暗号:CRYSTALS-KyberとDilithium」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- TLS 1.3ハンドシェイクと0-RTT再開
- 認証付き暗号:AES-GCMとChaCha20-Poly1305
- 鍵導出関数:PBKDF2、bcrypt、Argon2
- ポスト量子暗号:CRYSTALS-KyberとDilithium