BLOG

今話題のPQCって何?

Ishii Hiroyuki サムネール
Ishii Hiroyuki
Published December 09, 2024

はじめに

近年、量子コンピュータの進展により、処理能力が飛躍的に向上していることによって現在使用されている暗号技術(特に公開鍵暗号)が将来的に解読されるリスクが高まってきています。

 暗号技術と言うと、数千年前から主に軍事・政治などである特定の人にのみ情報を伝えるために開発・利用・応用されてきた技術ですが、近年はインターネット経由でのWebサイトへのアクセスを第三者に解読されないように安全に伝える技術としても普及しています。

  特に、金融分野は個人情報や資産を預かる重要インフラであり、このリスクに対する対策が必要と認識し、PQC(Post Quantum Cryptography)というキーワードについて世界中で議論が活発化してきています。

 

現在の公開鍵暗号について

現在の公開鍵暗号は、RSAや楕円暗号曲線暗号が主流ですが、アメリカの国立標準技術研究所(NIST: National Institute of Standards and Technology )は、この記事でそれらの使用について非推奨を2030年末、期限を2035年末に設定しています。

 つまり、今後公開鍵暗号を利用する通信があるシステムを導入する際にPQC対応についても検討することを視野に入れる必要があります。特に長期間利用を想定しているシステムや重要システムは必須と言っても過言ではないかもしれません。

 

世界の動向

・標準化の取り組み

 アメリカでは2024年8月にNISTがPQCに関する新たな暗号アルゴリズム4種類のうち3種類を「連邦情報処理標準(FIPS :Federal Information Processing Standards)」として公表しました。

  標準化の内容は以下の通りです。

 FIPS番号

内容

新名称(旧名称)

暗号方式

FIPS 203

鍵交換アルゴリズム

ML-KEM

(CRYSTALS-Kyber)

格子暗号

FIPS204

電子署名アルゴリズム

ML-DSA

(CRYSTALS-Dilithium)

格子暗号

FIPS 205

電子署名アルゴリズム

SLH-DSA

(SPHINCS+)

ハッシュ関数

FIPS 206

(roadmap)

電子署名アルゴリズム

FN-DSA

(FALCON)

格子暗号

図1: PQCに関するNISTが標準化した内容(※2024年12月現在)

 

これらの標準化された暗号アルゴリズムを活用し、2030年までに対応することが望ましいとされています。

 ・クライアント環境について

 暗号アルゴリズムを利用するには送信元、送信先どちらも利用したい暗号アルゴリズムに対応している必要があります。クライアントPCのブラウザからWebサイトへ通信する際、ブラウザ側でもPQCに対応している必要があります。

すでに2024年5月にPC版Google ChromeがML-KEMをデフォルトで有効化しています。

 

F5でお手伝いできること

・現環境の状況把握

 現在管理しているWebサイトの通信において、どのような暗号アルゴリズムが利用されているかを把握しておく必要があります。BIG-IPをリバースプロキシとして活用することで、現通信の使用状況を簡単に確認することができます。

BIG-IP TLS PROTOCOL
図2:BIG-IPでのTLSプロトコル、鍵交換使用状況例

 

・PQC対応のオフローディング

F5はPQCについてすでにBIG-IP NextやNGINX+で以下の対応を開始しています。今後、F5 Distributed Cloud Servicesでもサポートする予定です。

 2024年12月現在では以下の通りです。

 Big-IP Next : K000148294: Enabling Post-Quantum Cryptography in BIG-IP Next

BIG-IP Next
図3:BIG-IP Nextでの設定例
NGINX
図4:NGINX+での設定例

 

従来のRSA,楕円曲線暗号と同様、BIG-IPNGINX+をリバースプロキシとして活用し、暗号に関する処理もサーバからオフローディングすることによって、サーバは暗号処理負荷を気にせずに従来の処理に専念することが可能です。

 

まとめ

PQCの活動が少しずつ本格化してきている中で、弊社も順次サポートを開始してきています。今後もPQCに関する機能をリリースしていく予定ですので、ご興味を持っていただけましたら、ぜひ、当社までお問い合わせください。