格子暗号(Lattice-based Cryptography)は、ポスト量子暗号の中で最も有望とされる暗号技術ファミリーです。NISTが標準化したCRYSTALS-KyberとCRYSTALS-Dilithiumの両方が格子暗号に基づいており、BMICはこの技術を全面的に採用しています。
格子暗号の数学的基盤
格子暗号の安全性は、主に以下の2つの数学的問題の計算困難性に基づいています:
- LWE問題(Learning With Errors):ノイズの入った線形方程式から秘密を復元する問題。CRYSTALS-KyberとDilithiumが使用。
- SVP問題(Shortest Vector Problem):格子上の最短ベクトルを見つける問題。
これらの問題は、古典コンピュータでも量子コンピュータでも効率的に解けないと広く信じられています。ショアのアルゴリズムは素因数分解と離散対数に特化しており、格子問題には適用できません。
なぜ格子暗号が選ばれたのか
NISTが82のアルゴリズム候補から最終的にKyberとDilithiumを選んだ理由は以下の通りです:
- 安全性に対する20年以上の理論的研究の蓄積
- コンパクトな鍵サイズ(RSAと比較して実用的)
- 高速な暗号化・復号化処理
- 多様なプラットフォーム(PC、スマホ、IoT)での効率的な実装
日本の格子暗号研究
日本では東京大学、筑波大学、NICTなどで格子暗号の理論研究が活発に行われています。特に、格子問題の計算困難性の解析と、組み込みシステム向けの効率的な実装技術に関する研究が世界的に評価されています。
BMICの格子暗号実装
BMICはCRYSTALS-Kyber-1024(NIST Security Level 5)を採用し、最高レベルの格子暗号セキュリティを提供しています。鍵交換からトランザクション署名まで、すべてが格子暗号で保護されています。