格子暗号
概要
格子暗号 (lattice-based cryptography) は多次元の格子構造を用いた公開鍵暗号スキーム。証明可能な強力なセキュリティの保証や量子計算耐性、完全準同型暗号へ応用可能といった特性を持っている。
Table of Contents
格子問題
格子暗号は格子問題が困難であるという仮定の下に成り立っている。
最短ベクトル問題
最短ベクトル問題 (SVP; short vector problem) はある格子
Fig 1 の例では (図中
最近接ベクトル問題
最近接ベクトル問題 (CVP; closest vector problem) は格子の基底と対象のベクトルが与えられたときに、対象に最も近い格子点を求める問題。
Fig 2 の例では、あるベクトル
LWE 問題
LWE 問題 (learning with error problem) は誤差 (ノイズ) を付与した多元連立一次方程式を解く問題。最近接ベクトル問題における基底ベクトルの整数係数一次結合の概念を行列式に拡張したものとも言える。式 (
NTRU 暗号
NTRU 暗号は 2005 年に Oded Regev によって定義された格子暗号。格子の基底ベクトルの一次線形結合から最も近い格子点を見つけ出す最近接ベクトル問題の困難性を前提としている。ここでは単純化して 2 次元空間での NTRU 暗号の構造を説明する。
設定
2 次元空間上の直行しない 2 つのベクトル
ここで
暗号化
まず暗号者は平文を小さなベクトル
ここで、ノイズ (誤差)
NTRU 暗号では
復号化
復号者は基底
以上より、この例でのセキュリティは以下の仮定に基づいていることがわかる。
- 格子の基底
を知っている者は に最も近い格子点を容易に計算することができる。 - 基底
を知らない者が , を用いて基底 を効率的に算出する方法が分かっていない (公開鍵から秘密鍵を推測できない)。これは最短ベクトル問題が困難であるという仮定である。 - 基底
を知らない者が , を用いて との距離が最も小さくなるような格子点 を算出する の組合せを効率的に計算・推定する方法は今のところ分かっていない (つまり公開鍵と暗号文から平文を推測できない)。
この概念はより一般的な
参考文献
- Oded Regev, On Lattices, Learning with Errors, Random Linear Codes, and Cryptography, Journal of ACM, 56(6), 2009, pp.1-40.




