数学的対象
離散数学において、 理想格子は 格子 の特殊なクラスであり、 巡回格子 の一般化である 。 [1]理想格子は 数論 の多くの部分で自然に現れるが 、他の分野にも存在する。特に、 暗号学 において重要な位置を占めている。ミシアンチョは巡回格子の一般化を理想格子と定義した。暗号システムにおいて理想格子を使用すると、格子を記述するために必要なパラメータの数を平方根だけ減らすことができ、効率が向上する。理想格子は新しい概念だが、同様の格子クラスは古くから使用されている。例えば、理想格子の特殊なケースである巡回格子は、 NTRUEncrypt や NTRUSign で使用されている。
理想格子は、リング学習とエラーに基づく量子コンピュータ攻撃耐性暗号の基礎にもなります。 [2]これらの暗号システムは 、最短ベクトル問題 (SVP)がこれらの理想格子では困難である
という仮定の下で、安全であることが証明されています。
導入
一般的に、イデアル格子は、 次数 の 何らかの 既約多項式 に対する の 形の 環 の イデアル に対応する格子である。 [1]これまでの研究における イデアル格子 の定義はすべて、 次の一般的な概念の例である。を 加法群 が に 同型で ある 環 (すなわち、 階数 の 自由 - 加法群 )とし 、 を - 次元実 ベクトル空間 内の 何らかの格子 (例えば)に 写像する 加法 同型 とする。埋め込みによる 環の イデアル格子 の族は 、 すべての格子 の集合であり、 は [3] の イデアル である。
ず
[
x
]
/
⟨
ふ
⟩
{\displaystyle \mathbb {Z} [x]/\langle f\rangle }
ふ
{\displaystyle f}
ん
{\displaystyle n}
R
{\displaystyle R}
ず
ん
{\displaystyle \mathbb {Z} ^{n}}
ず
{\displaystyle \mathbb {Z} }
ん
{\displaystyle n}
σ
{\displaystyle \sigma}
R
{\displaystyle R}
σ
(
R
)
{\displaystyle \sigma (R)}
ん
{\displaystyle n}
R
ん
{\displaystyle \mathbb {R} ^{n}}
R
{\displaystyle R}
σ
{\displaystyle \sigma}
σ
(
私
)
{\displaystyle \sigma (I)}
私
{\displaystyle I}
R
。
{\displaystyle R.}
意味
表記
を次数の 単項多項式 とし 、 商環 を考え ます 。
ふ
∈
ず
[
x
]
{\displaystyle f\in \mathbb {Z} [x]}
ん
{\displaystyle n}
ず
[
x
]
/
⟨
ふ
⟩
{\displaystyle \mathbb {Z} [x]/\langle f\rangle }
標準的な代表集合 と多項式とベクトルの同一視を使用すると、 商環 は 整数格子と 同型 ( 加法群 として)となり 、 任意の イデアルは 対応する整数部分格子 を定義します 。
{
(
グ
モッド
ふ
)
:
グ
∈
ず
[
x
]
}
{\displaystyle \lbrace (g{\bmod {f}}):g\in \mathbb {Z} [x]\rbrace }
ず
[
x
]
/
⟨
ふ
⟩
{\displaystyle \mathbb {Z} [x]/\langle f\rangle }
ず
ん
{\displaystyle \mathbb {Z} ^{n}}
私
⊆
ず
[
x
]
/
⟨
ふ
⟩
{\displaystyle I\subseteq \mathbb {Z} [x]/\langle f\rangle }
ら
(
私
)
⊆
ず
ん
{\displaystyle {\mathcal {L}}(I)\subseteq \mathbb {Z} ^{n}}
理想格子は、 次数 の単項多項式 と理想 に対して と なる 整数 格子 です 。
ら
(
B
)
⊆
ず
ん
{\displaystyle {\mathcal {L}}(B)\subseteq \mathbb {Z} ^{n}}
B
=
{
g
mod
f
:
g
∈
I
}
{\displaystyle B=\lbrace g{\bmod {f}}:g\in I\rbrace }
f
{\displaystyle f}
n
{\displaystyle n}
I
⊆
Z
[
x
]
/
⟨
f
⟩
{\displaystyle I\subseteq \mathbb {Z} [x]/\langle f\rangle }
結果として得られる関数が衝突耐性を持つための
関連する特性は次のようになります。
f
{\displaystyle f}
f
{\displaystyle f}
は、 還元不可能 で なければなりません 。
量的な意味では、 環ノルムは任意の 多項式 と比べて それほど大きくありません。
‖
g
‖
f
{\displaystyle \lVert g\rVert _{f}}
‖
g
‖
∞
{\displaystyle \lVert g\rVert _{\infty }}
g
{\displaystyle g}
最初の性質は、 環 のあらゆるイデアルがのフルランク格子を定義し 、証明において基本的な役割を果たすことを意味します。
Z
[
x
]
/
⟨
f
⟩
{\displaystyle \mathbb {Z} [x]/\langle f\rangle }
Z
n
{\displaystyle \mathbb {Z} ^{n}}
補題: が次数 の単項既約整数多項式であるとき のの 任意 の イデアル は 、 内のフルランク格子に同型である 。
I
{\displaystyle I}
Z
[
x
]
/
⟨
f
⟩
{\displaystyle \mathbb {Z} [x]/\langle f\rangle }
f
{\displaystyle f}
n
{\displaystyle n}
Z
n
{\displaystyle \mathbb {Z} ^{n}}
DingとLindner [4]は、 理想格子 と一般格子の区別が多項式時間で実行できるという 証拠を示し、実際にはランダムに選択された格子が理想的になることは決してないことを示した。彼らは、格子がフルランクを持つ場合、つまり基底が 線形独立ベクトル で構成される場合のみを考慮した。これは基本的な制限ではない。なぜなら、LyubashevskyとMicciancioは、格子が既約単項多項式に関して理想的である場合、上記の補題で与えられているように、それはフルランクを持つことを示したからである。
n
{\displaystyle n}
アルゴリズム: フルランク基底を持つ理想格子の識別
データ: フルランク基底 結果: が に関して理想格子を張る 場合は true 、 、 それ以外の場合は false 。
B
∈
Z
(
n
,
n
)
{\displaystyle B\in \mathbb {Z} ^{(n,n)}}
q
{\displaystyle {\textbf {q}}}
B
{\displaystyle B}
q
{\displaystyle {\textbf {q}}}
HNF に 変身
B
{\displaystyle B}
、、 およびを 計算します。
A
=
a
d
j
(
B
)
{\displaystyle A={\rm {adj}}(B)}
d
=
det
(
B
)
{\displaystyle d=\det(B)}
z
=
B
(
n
,
n
)
{\displaystyle z=B_{(n,n)}}
積を計算する
P
=
A
M
B
mod
d
{\displaystyle P=AMB{\bmod {d}}}
Pの最後の 列のみがゼロでない 場合
この列と同じになるように 設定
c
=
P
(
⋅
,
n
)
{\displaystyle c=P_{(\centerdot ,n)}}
それ以外の場合はfalseを返す
もしも
z
∣
c
i
{\displaystyle z\mid c_{i}}
i
=
1
,
…
,
n
{\displaystyle i=1,\ldots ,n}
CRTを 使用して 検索し 、
q
∗
≡
(
c
/
z
)
mod
(
d
/
z
)
{\displaystyle q^{\ast }\equiv (c/z){\bmod {(}}d/z)}
q
∗
≡
0
mod
z
{\displaystyle q^{\ast }\equiv 0{\bmod {\ }}z}
それ以外の場合はfalseを返す
もし そうなら
B
q
∗
≡
0
mod
(
d
/
z
)
{\displaystyle Bq^{\ast }\equiv 0{\bmod {(}}d/z)}
true を返す 、
q
=
B
q
∗
/
d
{\displaystyle q=Bq^{\ast }/d}
それ以外の場合はfalseを返す
ここで行列Mは
M
=
(
0
⋅
⋅
⋅
0
⋅
⋅
I
n
−
1
⋅
0
)
{\displaystyle M={\begin{pmatrix}0&\cdot &\cdot &\cdot &0\\&&&&\cdot \\&&&&\cdot \\I_{n-1}&&&&\cdot \\&&&&0\end{pmatrix}}}
このアルゴリズムを使用すると、多くの格子が理想格子 ではないことがわかります 。たとえば、とする と 、
n
=
2
{\displaystyle n=2}
k
∈
Z
∖
{
0
,
±
1
}
{\displaystyle k\in \mathbb {Z} \smallsetminus \lbrace 0,\pm 1\rbrace }
B
1
=
(
k
0
0
1
)
{\displaystyle B_{1}={\begin{pmatrix}k&0\\0&1\end{pmatrix}}}
理想的ですが
B
2
=
(
1
0
0
k
)
{\displaystyle B_{2}={\begin{pmatrix}1&0\\0&k\end{pmatrix}}}
そうではありません。 これは リュバシェフスキーとミチアンチョが示した例です。 [5]
B
2
{\displaystyle B_{2}}
k
=
2
{\displaystyle k=2}
これにアルゴリズムを実行し、基底をBとすると、行列Bはすでに エルミート標準形 になっているので、最初のステップは不要です。行列式は 、 随伴行列です。
d
=
2
{\displaystyle d=2}
A
=
(
2
0
0
1
)
,
{\displaystyle A={\begin{pmatrix}2&0\\0&1\end{pmatrix}},}
M
=
(
0
0
1
0
)
{\displaystyle M={\begin{pmatrix}0&0\\1&0\end{pmatrix}}}
そして最後に、製品 は
P
=
A
M
B
mod
d
{\displaystyle P=AMB{\bmod {d}}}
P
=
(
0
0
1
0
)
.
{\displaystyle P={\begin{pmatrix}0&0\\1&0\end{pmatrix}}.}
この時点でアルゴリズムは停止します。これは、 が 理想格子 にまたがる 場合、 の最後の列を除くすべての列がゼロになる必要があるためです 。
P
{\displaystyle P}
B
{\displaystyle B}
暗号化での使用
Micciancio [6] は、 多項式環 のイデアルに対応する構造化巡回格子のクラスを導入し、巡回格子への Poly( n )-SVPの制限の 最悪ケース 困難性 に基づいて、証明可能に安全な最初の一方向関数を提示しました。(問題 γ -SVP は、与えられた格子の非ゼロベクトルを計算することであり、そのノルムは最短の非ゼロ格子ベクトルのノルムの γ 倍以下です。) 同時に、その代数構造のおかげで、この一方向関数は、 NTRU 方式の 評価時間とストレージコストに匹敵する高い効率を享受しています。その後、Lyubashevsky と Micciancio [5] および Peikert と Rosen [7]はそれぞれ独立して、Micciancio の関数を修正して、効率的で証明可能に安全な 衝突耐性 ハッシュ関数 を構築する方法を示しました 。このため、彼らはより一般的な 理想格子 のクラスを導入しました。これは 多項式環 の イデアル に対応します。 衝突耐性は、 Poly(n)-SVP の 理想格子 への制限の困難さに依存しています (Poly( n )-Ideal-SVP と呼ばれます)。平均ケースの衝突検出問題は Ideal-SIS と呼ばれる自然な計算問題であり、Ideal-SVP の最悪のケースと同じくらい困難であることが示されている。 理想格子 からの証明可能で安全な効率的な署名方式も提案されていますが、 [1] [8] 、 理想格子 から効率的で証明可能で安全な 公開鍵暗号化 を構築することは 興味深い 未解決の問題 でした。
Z
[
x
]
/
(
x
n
−
1
)
{\displaystyle \mathbb {Z} [x]/(x^{n}-1)}
O
~
(
n
)
{\displaystyle {\tilde {O}}(n)}
Z
[
x
]
/
f
(
x
)
{\displaystyle \mathbb {Z} [x]/f(x)}
LWE と Ring LWE を鍵交換に使用する基本的なアイデアは、2011 年に Jintai Ding によってシンシナティ大学で提案され、 Ring LWE を使用した 量子耐性鍵交換 の最先端の説明を提供しました。論文 [9] は、 2012 年に仮特許出願が提出された後、2012 年に発表されました。2014 年に、Peikert [10] は Ding と同じ基本的なアイデアに従った鍵転送スキームを発表しました。このスキームでは、Ding の構築で丸めのために追加の信号を送信するという新しいアイデアも利用されています。同じ概念を使用したデジタル署名は、数年前に Vadim Lyubashevsky によって「Lattice Signatures Without Trapdoors」で行われました。 [11] Peikert と Lyubashevsky の研究を合わせると、同じセキュリティ削減を備えた
Ring-LWE ベースの量子攻撃耐性アルゴリズム のスイートが提供されます。
効率的な衝突耐性ハッシュ関数
暗号 における 理想格子 の主な有用性は、 そのような格子内で近似的な 最短ベクトルを見つけることの難しさに基づいて、非常に効率的で実用的な 衝突耐性 ハッシュ 関数を 構築できる という事実に由来しています。 [1] PeikertとRosen、 [7]、 およびLyubashevskyとMicciancioによって
独立して構築された衝突耐性 ハッシュ関数は、 理想格子 (巡回格子の一般化)に基づいており、高速で実用的な実装を提供しました。 [3] これらの結果は、識別スキームや署名を含む他の効率的な暗号構築への道を開いた。
Lyubashevsky と Micciancio [5]は、 理想格子 の 最短ベクトル問題 の最悪困難性に基づいて、安全であることが証明できる効率的な 衝突耐性 ハッシュ関数 の構築法を示した 。彼らは ハッシュ関数 族を次のように定義した。 環 ( は 次 数の単項式で 、 は およそ の位数の整数) が 与えられた場合、 ランダムな要素 ( は 定数)を生成する。 順序付けられた -組によってハッシュ関数が決定される。 これは 、 ( は の 戦略的に選択されたサブセット ) 内の要素を にマッピングする 。 要素 の場合 、ハッシュは である。ここで、キー( ハッシュ関数 ) のサイズはであり 、 多項式 を適切に選択するために、この操作は 高速フーリエ変換(FFT) [ 引用が必要 ] を使用して 100 分以内に実行できる。 は定数である ため、ハッシュには の時間が必要である 。彼らは、 ハッシュ関数 族が 衝突耐性が あることを証明するために、ランダムに選ばれた ハッシュ関数 に対して、次のような問題を
無視できない確率で見つけることに成功する 多項式時間アルゴリズム が存在する場合、「 最短ベクトル問題 」 と呼ばれる特定の問題が、 環 のすべての イデアル に対して 多項式時間 で解けることを示しました。
R
=
Z
p
[
x
]
/
⟨
f
⟩
{\displaystyle R=\mathbb {Z} _{p}[x]/\langle f\rangle }
f
∈
Z
p
[
x
]
{\displaystyle f\in \mathbb {Z} _{p}[x]}
n
{\displaystyle n}
p
{\displaystyle p}
n
2
{\displaystyle n^{2}}
m
{\displaystyle m}
a
1
,
…
,
a
m
∈
R
{\displaystyle a_{1},\dots ,a_{m}\in R}
m
{\displaystyle m}
m
{\displaystyle m}
h
=
(
a
1
,
…
,
a
m
)
∈
R
m
{\displaystyle h=(a_{1},\ldots ,a_{m})\in R^{m}}
D
m
{\displaystyle D^{m}}
D
{\displaystyle D}
R
{\displaystyle R}
R
{\displaystyle R}
b
=
(
b
1
,
…
,
b
m
)
∈
D
m
{\displaystyle b=(b_{1},\ldots ,b_{m})\in D^{m}}
h
(
b
)
=
∑
i
=
1
m
α
i
⋅
b
i
{\displaystyle h(b)=\sum _{i=1}^{m}\alpha _{i}\centerdot b_{i}}
O
(
m
n
log
p
)
=
O
(
n
log
n
)
{\displaystyle O(mn\log p)=O(n\log n)}
α
i
⋅
b
i
{\displaystyle \alpha _{i}\centerdot b_{i}}
O
(
n
log
n
log
log
n
)
{\displaystyle O(n\log n\log \log n)}
f
{\displaystyle f}
m
{\displaystyle m}
O
(
n
log
n
log
log
n
)
{\displaystyle O(n\log n\log \log n)}
b
≠
b
′
∈
D
m
{\displaystyle b\neq b'\in D^{m}}
h
(
b
)
=
h
(
b
′
)
{\displaystyle h(b)=h(b')}
h
∈
R
m
{\displaystyle h\in R^{m}}
Z
[
x
]
/
⟨
f
⟩
{\displaystyle \mathbb {Z} [x]/\langle f\rangle }
2006年のLyubashevskyとMicciancioの研究に基づいて、MicciancioとRegev [12]は 理想格子 に基づく ハッシュ関数 の次のアルゴリズムを定義しました 。
パラメータ: 、およびベクトル f を持つ 整数 。
q
,
n
,
m
,
d
{\displaystyle q,n,m,d}
n
∣
m
{\displaystyle n\mid m}
∈
Z
n
{\displaystyle \in \mathbb {Z} ^{n}}
キー: 内で独立かつ一様にランダムに選択された ベクトル 。
m
/
n
{\displaystyle m/n}
a
1
,
…
,
a
m
/
n
{\displaystyle a_{1},\ldots ,a_{m/n}}
Z
q
n
{\displaystyle \mathbb {Z} _{q}^{n}}
ハッシュ関数: によって与えられます 。
f
A
:
{
0
,
…
,
d
−
1
}
m
⟶
Z
q
n
{\displaystyle f_{A}:\lbrace 0,\ldots ,d-1\rbrace ^{m}\longrightarrow \mathbb {Z} _{q}^{n}}
f
A
(
y
)
=
[
F
∗
a
1
|
…
|
F
∗
a
m
/
n
]
y
mod
q
{\displaystyle f_{A}(y)=[F\ast a_{1}|\ldots |F\ast a_{m/n}]y{\bmod {\ }}q}
ここで パラメータは、 f は のベクトルであり 、は 構造化ブロックを持つブロック行列です 。
n
,
m
,
q
,
d
{\displaystyle n,m,q,d}
Z
n
{\displaystyle \mathbb {Z} ^{n}}
A
{\displaystyle A}
A
(
i
)
=
F
∗
a
(
i
)
{\displaystyle A^{(i)}=F\ast a^{(i)}}
平均して(逆多項式確率のみを使用しても) 内の短いベクトルを見つけること は、ベクトル f が 次の 2 つの特性を満たす
場合 、最悪の場合、 理想的な格子上でさまざまな格子問題(近似 SVPや SIVP など)を解くのと同じくらい困難です。
Λ
q
⊥
(
[
F
∗
a
1
|
…
|
F
∗
a
m
/
n
]
)
{\displaystyle \Lambda _{q}^{\perp }([F\ast a_{1}|\ldots |F\ast a_{m/n}])}
任意の 2 つの単位ベクトル u 、 v に対して、ベクトル [F∗u]v は 小さな(つまり、 の多項式 、通常は ノルム)を持ちます。
n
{\displaystyle n}
O
(
n
)
)
{\displaystyle O({\sqrt {n}}))}
この多項式は整数に対して 既約で あり 、つまり、より小さい次数の整数多項式の積には含まれません。
f
(
x
)
=
x
n
+
f
n
x
n
−
1
+
⋯
+
f
1
∈
Z
[
x
]
{\displaystyle f(x)=x^{n}+f_{n}x^{n-1}+\cdots +f_{1}\in \mathbb {Z} [x]}
最初の特性は巡回行列 に対応する ベクトルによって満たされます 。なぜなら、 [F∗u]v のすべての座標は1 で制限されるため となるからです。しかし、 に対応する 多項式は に因数分解されるため 既約で はなく 、これが衝突が効率的に検出される理由です。したがって、 は 衝突耐性 ハッシュ関数 を 得るための良い選択ではありませんが 、他の多くの選択が可能です。たとえば、 両方の特性が満たされる (したがって、 最悪のセキュリティ保証を備えた
衝突耐性 ハッシュ関数になる) fのいくつかの選択は次のとおりです。
F
=
(
−
1
,
0
,
…
,
0
)
{\displaystyle \mathbf {F} =(-1,0,\ldots ,0)}
‖
[
F
∗
u
]
v
‖
≤
n
{\displaystyle \lVert [{\textbf {F}}\ast {\textbf {u}}]{\textbf {v}}\rVert \leq {\sqrt {n}}}
x
n
−
1
{\displaystyle x^{n}-1}
f
=
(
−
1
,
0
,
…
,
0
)
{\displaystyle \mathbf {f} =(-1,0,\ldots ,0)}
(
x
−
1
)
(
x
n
−
1
+
x
n
−
2
+
⋯
+
x
+
1
)
{\displaystyle (x-1)(x^{n-1}+x^{n-2}+\cdots +x+1)}
f
=
(
−
1
,
0
,
…
,
0
)
{\displaystyle \mathbf {f} =(-1,0,\ldots ,0)}
f
=
(
1
,
…
,
1
)
∈
Z
n
{\displaystyle \mathbf {f} =(1,\ldots ,1)\in \mathbb {Z} ^{n}}
ここで は 素数であり、
n
+
1
{\displaystyle n+1}
f
=
(
1
,
0
,
…
,
0
)
∈
Z
n
{\displaystyle \mathbf {f} =(1,0,\ldots ,0)\in \mathbb {Z} ^{n}}
2の累乗に等しい 。
n
{\displaystyle n}
デジタル署名
デジタル署名 方式は、最も重要な暗号プリミティブの 1 つです。これらは、格子問題の最悪ケースの 困難性に基づく一方向関数を使用して取得できます。ただし、実用的ではありません。 エラー学習問題が 暗号コンテキストに適用されて以来、エラー学習、エラーリング学習、トラップドア格子に基づく新しいデジタル署名方式が数多く開発されてきました 。
理想的な(例えば巡回的な)格子における最短ベクトルの近似の複雑さに基づいた デジタル署名 の直接的な構築。 [8] LyubashevskyとMicciancioの方式 [8] は、理想的な格子に基づく最悪のケースのセキュリティ保証を備えており、現在までに知られている中で最も漸近的に効率的な構成であり、ほぼ 線形時間 で実行される署名生成および検証アルゴリズムを生み出します。 [12]
彼らの研究によって提起された主要な未解決問題の一つは、同様の効率を持ちながら、より弱い 困難性仮定に基づいたワンタイム署名を構築することである。例えば、 最短ベクトル問題(SVP) ( 理想的な格子 内 )を の係数以内に 近似することの 困難性 に基づいたセキュリティを備えたワンタイム署名を提供できれば素晴らしいだろう 。 [8]
O
~
(
n
)
{\displaystyle {\tilde {O}}(n)}
これらの構築は、ワンタイム署名(つまり、単一のメッセージに安全に署名できる署名)から一般的な署名スキームへの標準的な変換と、最終的には、任意の既約多項式 の環内のイデアル に 対応 する すべて の 格子内の 最短ベクトルを 近似することの最悪のケースの 困難さ に基づくセキュリティを持つ格子ベースのワンタイム署名の新しい構築に基づいています。
Z
[
x
]
/
⟨
f
⟩
{\displaystyle \mathbb {Z} [x]/\langle f\rangle }
f
{\displaystyle f}
鍵生成アルゴリズム:
入力 : 、 次数 の 既約多項式 。
1
n
{\displaystyle 1^{n}}
f
∈
Z
{\displaystyle f\in \mathbb {Z} }
n
{\displaystyle n}
セット 、 、
p
⟵
(
φ
n
)
3
{\displaystyle p\longleftarrow (\varphi n)^{3}}
m
⟵
⌈
log
n
⌉
{\displaystyle m\longleftarrow \lceil \log n\rceil }
R
⟵
Z
p
[
x
]
/
⟨
f
⟩
{\displaystyle R\longleftarrow \mathbb {Z} _{p}[x]/\langle f\rangle }
すべての正の に対して 、集合 とを 次のように定義します。
i
{\displaystyle i}
D
K
i
{\displaystyle DK_{i}}
D
L
i
{\displaystyle DL_{i}}
D
K
i
=
{
y
^
∈
R
m
{\displaystyle DK_{i}=\lbrace {\hat {y}}\in R^{m}}
そのような
‖
y
^
‖
∞
≤
5
i
p
1
/
m
}
{\displaystyle \lVert {\hat {y}}\rVert _{\infty }\leq 5ip^{1/m}\rbrace }
D
L
i
=
{
y
^
∈
R
m
{\displaystyle DL_{i}=\lbrace {\hat {y}}\in R^{m}}
そのような
‖
y
^
‖
∞
≤
5
i
n
φ
p
1
/
m
}
{\displaystyle \lVert {\hat {y}}\rVert _{\infty }\leq 5in\varphi p^{1/m}\rbrace }
一様ランダムに選択
h
∈
H
R
,
m
{\displaystyle h\in {\mathcal {H}}_{R,m}}
一様にランダムな文字列を選択する
r
∈
{
0
,
1
}
⌊
log
2
n
⌋
{\displaystyle r\in \lbrace 0,1\rbrace ^{\lfloor \log ^{2}n\rfloor }}
もし そうなら
r
=
0
⌊
log
2
n
⌋
{\displaystyle r=0^{\lfloor \log ^{2}n\rfloor }}
セット
j
=
⌊
log
2
n
⌋
{\displaystyle j=\lfloor \log ^{2}n\rfloor }
それ以外
文字列の最初の1の位置に 設定する
j
{\displaystyle j}
r
{\displaystyle r}
終了の場合
それぞれ から独立かつ均一にランダム に 選ぶ
k
^
,
l
^
{\displaystyle {\hat {k}},{\hat {l}}}
D
K
j
{\displaystyle DK_{j}}
D
L
j
{\displaystyle DL_{j}}
署名キー: 検証キー:
(
k
^
,
l
^
)
{\displaystyle ({\hat {k}},{\hat {l}})}
(
h
,
h
(
k
^
)
,
h
(
l
^
)
)
{\displaystyle (h,h({\hat {k}}),h({\hat {l}}))}
署名アルゴリズム:
入力: 署名キーを 含む メッセージ
z
∈
R
{\displaystyle z\in R}
‖
z
‖
∞
≤
1
{\displaystyle \lVert z\rVert _{\infty }\leq 1}
(
k
^
,
l
^
)
{\displaystyle ({\hat {k}},{\hat {l}})}
出力:
s
^
⟵
k
^
z
+
l
^
{\displaystyle {\hat {s}}\longleftarrow {\hat {k}}z+{\hat {l}}}
検証アルゴリズム:
入力: メッセージ ; 署名 ; 検証キー
z
{\displaystyle z}
s
^
{\displaystyle {\hat {s}}}
(
h
,
h
(
k
^
)
,
h
(
l
^
)
)
{\displaystyle (h,h({\hat {k}}),h({\hat {l}}))}
出力: 「ACCEPT」、if および
‖
s
^
‖
∞
≤
10
φ
p
1
/
m
n
log
2
n
{\displaystyle \lVert {\hat {s}}\rVert _{\infty }\leq 10\varphi p^{1/m}n\log ^{2}n}
s
^
=
k
^
z
+
l
^
{\displaystyle {\hat {s}}={\hat {k}}z+{\hat {l}}}
それ以外の場合は「拒否」。
SWIFFTハッシュ関数
ハッシュ 関数は 非常に効率的で、 複素数 に対して 高速フーリエ変換 (FFT) を 使用して、時間とともに漸近的に計算できます 。ただし、実際には、これにはかなりのオーバーヘッドが伴います。 Micciancio と Regev [12]によって定義された ハッシュ関数 の SWIFFT ファミリは、本質的には、 の (FFT) を 使用して上記の ハッシュ関数 を高度に最適化された変形です。ベクトル f は2 の累乗に等しい場合 に設定されるため、対応する多項式 は 既 約 です 。 を で 割り切れる 素数 とし 、 を後で選択される 上の 可逆行列 とします。 SWIFFT ハッシュ関数は 、から一様選択されたベクトル で構成される キー と入力をにマッピングします。 ここで、 は 前 と同じで、 です 。 可逆行列 による乗算により、一様選択された が一様選択された にマッピングされます。 さらに 、 の場合に限ります 。これら 2 つの事実を合わせると、 SWIFFTで衝突を見つけることは、基礎となる 理想格子 関数 で 衝突を 見つけることと同等であり 、 SWIFFT の 衝突耐性特性は、 理想格子 上の最悪ケースの 格子問題 との関連によってサポートされていることがわかります 。
O
~
(
m
)
{\displaystyle {\tilde {O}}(m)}
Z
q
{\displaystyle \mathbb {Z} _{q}}
(
1
,
0
,
…
,
0
)
∈
Z
n
{\displaystyle (1,0,\dots ,0)\in \mathbb {Z} ^{n}}
n
{\displaystyle n}
x
n
+
1
{\displaystyle x^{n}+1}
q
{\displaystyle q}
2
n
{\displaystyle 2n}
q
−
1
{\displaystyle q-1}
W
∈
Z
q
n
×
n
{\displaystyle {\textbf {W}}\in \mathbb {Z} _{q}^{n\times n}}
Z
q
{\displaystyle \mathbb {Z} _{q}}
a
~
(
1
)
,
…
,
a
~
(
m
/
n
)
{\displaystyle {\tilde {a}}^{(1)},\ldots ,{\tilde {a}}^{(m/n)}}
m
/
n
{\displaystyle m/n}
Z
q
n
{\displaystyle \mathbb {Z} _{q}^{n}}
y
∈
{
0
,
…
,
d
−
1
}
m
{\displaystyle y\in \lbrace 0,\ldots ,d-1\rbrace ^{m}}
W
⋅
f
A
(
y
)
mod
q
{\displaystyle {\textbf {W}}^{\centerdot }f_{A}(y){\bmod {\ }}q}
A
=
[
F
∗
α
(
1
)
,
…
,
F
∗
α
(
m
/
n
)
]
{\displaystyle {\textbf {A}}=[{\textbf {F}}\ast \alpha ^{(1)},\ldots ,{\textbf {F}}\ast \alpha ^{(m/n)}]}
α
(
i
)
=
W
−
1
a
~
(
i
)
mod
q
{\displaystyle \alpha ^{(i)}={\textbf {W}}^{-1}{\tilde {a}}^{(i)}{\bmod {q}}}
W
−
1
{\displaystyle {\textbf {W}}^{-1}}
a
~
∈
Z
q
n
{\displaystyle {\tilde {a}}\in \mathbb {Z} _{q}^{n}}
α
∈
Z
q
n
{\displaystyle \alpha \in \mathbb {Z} _{q}^{n}}
W
⋅
f
A
(
y
)
=
W
⋅
f
A
(
y
′
)
(
mod
q
)
{\displaystyle {\textbf {W}}^{\centerdot }f_{A}(y)={\textbf {W}}^{\centerdot }f_{A}(y'){\pmod {q}}}
f
A
(
y
)
=
f
A
(
y
′
)
(
mod
q
)
{\displaystyle f_{A}(y)=f_{A}(y'){\pmod {q}}}
f
A
{\displaystyle f_{A}}
SWIFFT ハッシュ関数のアルゴリズムは次のとおりです。
パラメータ: が 2 の累乗、 が素数、 と なるような 整数 。
n
,
m
,
q
,
d
{\displaystyle n,m,q,d}
n
{\displaystyle n}
q
{\displaystyle q}
2
n
∣
(
q
−
1
)
{\displaystyle 2n\mid (q-1)}
n
∣
m
{\displaystyle n\mid m}
キー: 内で独立かつ一様にランダムに選択された ベクトル 。
m
/
n
{\displaystyle m/n}
a
~
1
,
…
,
a
~
m
/
n
{\displaystyle {\tilde {a}}_{1},\ldots ,{\tilde {a}}_{m/n}}
Z
q
n
{\displaystyle \mathbb {Z} _{q}^{n}}
入力: ベクトル 。
m
/
n
{\displaystyle m/n}
y
(
1
)
,
…
,
y
(
m
/
n
)
∈
{
0
,
…
,
d
−
1
}
n
{\displaystyle y^{(1)},\dots ,y^{(m/n)}\in \lbrace 0,\dots ,d-1\rbrace ^{n}}
出力: ベクトル 。ここで、 は 要素ごとのベクトル積です。
∑
i
=
1
m
/
n
a
~
(
i
)
⊙
(
W
y
(
i
)
)
∈
Z
q
n
{\displaystyle \sum _{i=1}^{m/n}{\tilde {a}}^{(i)}\odot ({\textbf {W}}y^{(i)})\in \mathbb {Z} _{q}^{n}}
⊙
{\displaystyle \odot }
エラーからの学習 (LWE)
エラー付き学習 (LWE) 問題は、最悪のケースの格子問題と同じくらい難しいことが示されており、多くの暗号化アプリケーションの基礎となっています。しかし、これらのアプリケーションは、 LWE の使用に伴う固有の二次オーバーヘッドのために非効率的です。本当に効率的な LWE アプリケーションを実現するために、Lyubashevsky、Peikert、Regev [3] は、幅広いクラスのリングで LWE 問題の適切なバージョンを定義し 、これらのリング内の理想的な格子上の最悪のケースの仮定の下でその困難性を証明しました。彼らは、この LWE バージョンをリング LWE と呼びました。
とします 。ここで、セキュリティパラメータは 2 の累乗であり、 有理数上で既約となります。(この特定の値は 、この研究で特別な役割を果たす
円分多項式 の族から来ています)。
f
(
x
)
=
x
n
+
1
∈
Z
[
x
]
{\displaystyle f(x)=x^{n}+1\in \mathbb {Z} [x]}
n
{\displaystyle n}
f
(
x
)
{\displaystyle f(x)}
f
(
x
)
{\displaystyle f(x)}
を法とする整数多項式の環とします 。 の元 (すなわち、 を法とする剰余 )は、通常、 未満の次数の整数多項式で表されます 。 を( の多項式で制限される)十分に大きい公開素数を法として 、 を と の 両方を法とする整数多項式の環とします 。 の元は、 からの係数である - 未満の次数の多項式で表すことができます 。
R
=
Z
[
x
]
/
⟨
f
(
x
)
⟩
{\displaystyle R=\mathbb {Z} [x]/\langle f(x)\rangle }
f
(
x
)
{\displaystyle f(x)}
R
{\displaystyle R}
f
(
x
)
{\displaystyle f(x)}
n
{\displaystyle n}
q
≡
1
mod
2
n
{\displaystyle q\equiv 1{\bmod {2}}n}
n
{\displaystyle n}
R
q
=
R
/
⟨
q
⟩
=
Z
q
[
x
]
/
⟨
f
(
x
)
⟩
{\displaystyle R_{q}=R/\langle q\rangle =\mathbb {Z} _{q}[x]/\langle f(x)\rangle }
f
(
x
)
{\displaystyle f(x)}
q
{\displaystyle q}
R
q
{\displaystyle R_{q}}
n
{\displaystyle n}
{
0
,
…
,
q
−
1
}
{\displaystyle \lbrace 0,\dots ,q-1\rbrace }
上述の環では、R-LWE 問題は次のように記述できます。 を秘密にされている一様ランダムな環要素とします。標準 LWE と同様に、攻撃者の目的は、任意の数の (独立した)「ランダム ノイズ 環方程式」を真に一様のものから区別することです。より具体的には、ノイズ方程式は の形式であり 、ここで a は一様ランダムであり、積は 上の特定の分布から選択された「小さな」ランダム誤差項によって摂動されます 。
s
=
s
(
x
)
∈
R
q
{\displaystyle s=s(x)\in R_{q}}
(
a
,
b
≈
a
⋅
s
)
∈
R
q
×
R
q
{\displaystyle (a,b\approx a\centerdot s)\in R_{q}\times R_{q}}
a
⋅
s
{\displaystyle a\centerdot s}
R
{\displaystyle R}
彼らは、理想格子上の近似SVP (最悪の場合)から リング LWE の探索バージョンへの 量子還元を与えました。ここでの目標は、 任意の数のノイズの多い積から秘密を (任意の に対して高い確率で) 復元することです。この結果は、一般格子に対する Regev の反復量子還元の一般的な概要に従っていますが、 [13] 理想格子は、還元の「代数的」要素と「幾何学的」要素の両方でいくつかの新しい技術的な障害をもたらします。彼ら [3] は 、代数的数論、特に数体の標準埋め込みと 中国剰余定理を 使用してこれらの障害を克服しました。彼らは次の定理を得ました。
R
{\displaystyle R}
s
∈
R
q
{\displaystyle s\in R_{q}}
s
{\displaystyle s}
定理 を 次数の任意の数体とします 。 を 任意とし、(有理)整数係数が となるものとします。 -から - へ の確率的多項式時間量子還元が存在します。 ここで です 。
K
{\displaystyle K}
n
{\displaystyle n}
α
=
α
(
n
)
∈
(
0
,
1
)
{\displaystyle \alpha =\alpha (n)\in (0,1)}
q
=
q
(
n
)
≥
2
{\displaystyle q=q(n)\geq 2}
α
⋅
q
≥
ω
(
log
n
)
{\displaystyle \alpha \centerdot q\geq \omega ({\sqrt {\log n}})}
K
{\displaystyle K}
D
G
S
γ
{\displaystyle DGS_{\gamma }}
O
K
{\displaystyle {\mathcal {O}}_{K}}
L
W
E
q
,
Ψ
≤
α
{\displaystyle LWE_{q,\Psi \leq \alpha }}
γ
=
η
ϵ
(
I
)
⋅
ω
(
log
n
)
/
α
{\displaystyle \gamma =\eta _{\epsilon }(I)\centerdot \omega ({\sqrt {\log n}})/\alpha }
2013年、Guneysu、Lyubashevsky、およびPopplemanは、リング学習エラー問題に基づくデジタル署名方式を提案しました。 [14] 2014年、Peikertは論文「インターネットのための格子暗号」でリング学習エラー鍵交換(RLWE-KEX)を発表しました。 [10] これはSinghの研究によってさらに発展しました。 [15]
理想-LWE
Stehle、Steinfeld、Tanaka、Xagawa [16]は、 LWE問題の構造化バリアント(Ideal-LWE)を定義し、理想格子における近似 SVP の最悪ケースの困難性に基づく効率的な公開鍵暗号化方式を記述した。これは、-Ideal-SVPの最悪ケースのインスタンスの サブ指数量子攻撃に対する困難性にセキュリティが依存する、最初のCPAセキュア公開鍵暗号化方式である。これは漸近的に最適な効率を達成し、公開鍵/秘密鍵の長さは ビットであり、償却暗号化/復号化コストは メッセージビットあたりのビット操作である(コスト をかけて一度にビットを暗号化する )。ここでのセキュリティ仮定は、-Ideal-SVPはいかなるサブ指数時間量子アルゴリズムでも解くことができないというものである。これは、標準的な 公開鍵暗号の セキュリティ仮定よりも強力であることは注目に値する 。一方、ほとんどの 公開鍵暗号 とは対照的に、 格子ベースの暗号は サブ指数量子攻撃に対するセキュリティを可能にする。
O
~
(
n
2
)
{\displaystyle {\tilde {O}}(n^{2})}
O
~
(
n
)
{\displaystyle {\tilde {O}}(n)}
O
~
(
1
)
{\displaystyle {\tilde {O}}(1)}
Ω
~
(
n
)
{\displaystyle {\tilde {\Omega }}(n)}
O
~
(
n
)
{\displaystyle {\tilde {O}}(n)}
O
~
(
n
2
)
{\displaystyle {\tilde {O}}(n^{2})}
一般格子に基づく暗号システムのほとんどは、エラー付き学習 (LWE) の平均ケースの困難性に依存しています 。彼らの方式は、彼らが Ideal-LWE と呼ぶ LWE の構造化された変形に基づいています。彼らは、理想格子への制限から生じる 2 つの主な困難を回避するために、いくつかの手法を導入する必要がありました。第 1 に、非構造化格子に基づくこれまでの暗号システムはすべて、限界距離復号問題 (BDD) から LWEへの Regev の最悪ケースから平均ケースへの古典的な還元を利用しています (これは、 SVPから LWE への 量子還元における古典的なステップです )。この還元は、考慮されている格子の非構造化を利用しており、Ideal-LWE に含まれる構造化格子には引き継がれないようです。特に、LWE 行列の行の確率的独立性により、単一の行を考慮できます。第二に、以前の暗号システムで使用されていた他の要素、つまり、 LWEの計算型から決定型への Regev の縮約も Ideal-LWE では機能しないようです。これは、 LWE 行列の列の確率的独立性に依存しているからです 。
これらの困難を克服するために、彼らは古典的な還元ステップを避けました。代わりに、量子ステップを使用して、 SIS (平均ケース衝突検出問題) から LWE への新しい量子平均ケース還元を構築しました。これは、Ideal-SIS から Ideal-LWE にも機能します。最悪ケースの Ideal-SVP から平均ケースの Ideal-SIS への還元と組み合わせて、Ideal-SVP から Ideal-LWE への量子還元を取得しました。これは、Ideal-LWE の計算バリアントの困難さを示しています。決定バリアントの困難さを取得できなかったため、汎用のハードコア関数を使用して暗号化用の疑似ランダムビットを導出しました。これが、 SVP の指数的困難性を想定する必要があった理由です。
完全準同型暗号化
完全準 同型暗号化 (FHE)方式は、暗号化されたデータを復号化することなく計算できる方式です。完全 準同型暗号化方式を構築する問題は、Rivest、Adleman、Shamirによる RSA の発明直後の1978年に、 Rivest、Adleman、Dertouzos [17] によって初めて提唱されました 。 [18]
暗号化方式 が回路 の準同型で ある場合、任意の回路 に対して 、
ε
=
(
K
e
y
G
e
n
,
E
n
c
r
y
p
t
,
D
e
c
r
y
p
t
,
E
v
a
l
)
{\displaystyle \varepsilon =({\mathsf {KeyGen}},{\mathsf {Encrypt}},{\mathsf {Decrypt}},{\mathsf {Eval}})}
C
{\displaystyle {\mathcal {C}}}
C
∈
C
{\displaystyle C\in {\mathcal {C}}}
、、 および 、
が与えられた場合、
P
K
,
S
K
←
K
e
y
G
e
n
(
1
λ
)
{\displaystyle PK,SK\leftarrow {\mathsf {KeyGen}}(1^{\lambda })}
y
=
E
n
c
r
y
p
t
(
P
K
,
x
)
{\displaystyle y={\mathsf {Encrypt}}(PK,x)}
y
′
=
E
v
a
l
(
P
K
,
C
,
y
)
{\displaystyle y'={\mathsf {Eval}}(PK,C,y)}
それはそうである 。
D
e
c
r
y
p
t
(
S
K
,
y
′
)
=
C
(
x
)
{\displaystyle {\mathsf {Decrypt}}(SK,y')=C(x)}
ε
{\displaystyle \varepsilon }
は、スキームのセキュリティパラメータで
ある サイズのすべての回路に対して準同型である場合、完全に準同型です。
poly
(
λ
)
{\displaystyle \operatorname {poly} (\lambda )}
λ
{\displaystyle \lambda }
2009年に、ジェントリー [19]は、完全 準同型暗号化 方式を構築する問題に対する最初の解決策を提案しました 。彼の方式は理想格子に基づいていました。
参照
参考文献
^ abcd Lyubashevsky, Vadim (2008). 「アクティブ攻撃に対して安全な格子ベースの識別方式」 (PDF) . 公開鍵暗号 - PKC 2008 . コンピュータサイエンスの講義ノート。第 4939 巻。pp. 162–179。doi : 10.1007/ 978-3-540-78440-1_10。ISBN 978-3-540-78439-5 。
^ Lyubashevsky, Vadim; Peikert, Chris; Regev, Oded (2010). 「理想格子とリング上のエラーによる学習について」。Gilbert, Henri (編)。暗号学 の 進歩 - EUROCRYPT 2010。 コンピュータ サイエンスの講義ノート。第 6110 巻。pp . 1–23。CiteSeerX 10.1.1.297.6108。doi : 10.1007 /978-3-642-13190-5_1。ISBN 978-3-642-13189-9 。
^ abcd Lyubashevsky, Vadim; Peikert, Chris; Regev, Oded (2010). 「理想格子とリング上のエラーによる学習について」。 暗号学の進歩 - EUROCRYPT 2010 。 コンピュータサイエンスの講義ノート。 Vol. 6110。 pp. 1–23。 doi :10.1007/978-3-642-13190-5_1。 ISBN 978-3-642-13189-9 。
^ Jintai Ding と Richard Lindner。理想格子の識別。Cryptology ePrint Archive、レポート 2007/322、2007 年。
^ abc Lyubashevsky, Vadim; Micciancio, Daniele (2006). 「一般化されたコンパクトなナップサックは衝突耐性がある」 (PDF) . オートマトン、言語、プログラミング . コンピュータサイエンスの講義ノート。第 4052 巻。pp. 144–155。doi : 10.1007/ 11787006_13。ISBN 978-3-540-35907-4 。
^ Micciancio, Daniele (2007). 「一般化されたコンパクトナップサック、巡回格子、効率的な一方向関数」. 計算複雑性 . 16 (4): 365–411. doi : 10.1007/s00037-007-0234-9 .
^ ab Peikert, Chris; Rosen, Alon (2006). 「巡回格子上の最悪ケース仮定からの効率的な衝突耐性ハッシュ」 (PDF) . 暗号理論 . コンピュータサイエンスの講義ノート。第 3876 巻。pp. 145–166。doi : 10.1007/ 11681878_8。ISBN 978-3-540-32731-8 2012年10月16日時点の オリジナル (PDF)よりアーカイブ。
^ abcd Lyubashevsky, Vadim; Micciancio, Daniele (2008). 「漸近的に効率的な格子ベースのデジタル署名」 (PDF) . 暗号理論 . コンピュータサイエンスの講義ノート。第 4948 巻。pp. 37–54。doi : 10.1007/ 978-3-540-78524-8_3。ISBN 978-3-540-78523-1 。
^ Ding, Jintai; Xie, Xiang; Lin, Xiaodong (2012). エラーを伴わない学習問題に基づく、シンプルで証明可能な安全な鍵交換方式 (PDF) 。
^ ab Peikert, Chris (2014-10-01). 「インターネット向け格子暗号」。Mosca, Michele (編)。 ポスト 量子 暗号 。コンピュータサイエンスの講義ノート。第8772巻。Springer International Publishing。pp. 197–219。CiteSeerX 10.1.1.800.4743。doi : 10.1007 / 978-3-319-11659-4_12。ISBN 978-3-319-11658-7 . S2CID 8123895。
^ Lyubashevsky, Vadim (2012)。「トラップドアのない格子署名」 ( PDF) 。 暗号学の進歩 - EUROCRYPT 2012。 コンピュータサイエンスの講義ノート。第 7237 巻。pp. 738–755。doi : 10.1007/978-3-642-29011-4_43。ISBN 978-3-642-29010-7 。
^ abc Micciancio, Daniele; Regev, Oded (2009). 「格子ベースの暗号化」 (PDF) . ポスト量子暗号 . pp. 147–191. doi :10.1007/978-3-540-88702-7_5. ISBN 978-3-540-88701-0 2011年7月23日時点の オリジナル (PDF)よりアーカイブ。
^ Regev, Oded (2009). 「格子、エラー学習、ランダム線形コード、および暗号化について」 (PDF) . Journal of the ACM . 56 (6): 1–40. arXiv : 2401.03703 . doi :10.1145/1568318.1568324. 2010-12-06 に オリジナル (PDF)からアーカイブ。
^ Güneysu, Tim; Lyubashevsky, Vadim; Pöppelmann, Thomas (2012). 「実用的な格子ベース暗号化: 組み込みシステム向け署名方式」 (PDF) . 暗号化ハードウェアと組み込みシステム – CHES 2012 . コンピュータサイエンスの講義 ノート 。第 7428 巻。pp. 530–547。doi : 10.1007/978-3-642-33027-8_31。ISBN 978-3-642-33026-1 2014年5月18日時点の オリジナル (PDF)よりアーカイブ。
^ Singh, Vikram (2015). 「格子暗号を用いたインターネット向け実用的な鍵交換」 Cryptology ePrint Archive 。
^ Stehlé, Damien; Steinfeld, Ron; Tanaka, Keisuke; Xagawa, Keita (2009). 「理想格子に基づく効率的な公開鍵暗号化: (拡張概要)」 (PDF) 。 暗号学の進歩 - ASIACRYPT 2009 。 コンピュータサイエンスの講義ノート。 Vol. 5912。 pp. 617–635。 doi :10.1007/978-3-642-10366-7_36。 ISBN 978-3-642-10365-0 。
^ Rivest, R.; Adleman, L.; Dertouzos, M. (1978). 「データバンクとプライバシー準同型性について」 (PDF) . Foundations of Secure Computation . Academic Press. pp. 169–180.
^ Rivest, RL; Shamir, A.; Adleman, L. (1978). 「デジタル署名と公開鍵暗号システムを取得する方法」 Communications of the ACM . 21 (2): 120–126. doi :10.1145/359340.359342. hdl : 1721.1/148910 .
^ Gentry, Craig (2009)。「理想格子を用いた完全準同型暗号化」。 第 41回ACMコンピューティング理論シンポジウム議事録 。pp . 169–178。doi :10.1145/1536414.1536440。ISBN 978-1-60558-506-2 。