Bootstrapping for Approximate Homomorphic Encryption
https://eprint.iacr.org/2018/153.pdf
Abstract
- LHEである CKKS scheme にbootstrapを実装してFHE化
- bootstrap: 26 slots で 139s
Out Contribution
- 復号をHomEvalする
- Taylor展開は高次の多項式評価をする必要があるので, O(Kq) 深さが必要で厳しい
4.1 Packing Method
-
2べき M>4, N=M/2
-
5は mod M で N/2 の位数 を持ち -1 で spans ZM∗ ??
- ので, {ζj,ζjˉ:0≤j<N/2} は原始 M 乗根になる ζj:=ζ5j
-
τ:R[X]/(XN+1)∋m(X)↦z∈CN/2 , zj=m(ζj)
-
(encode) (N/2)×N vandermonde行列で表せる

-
逆変換(decode)は m=N1(UˉT⋅z+UT⋅zˉ)
4.2 Rotation and Conjunction
- KeySwitchingの目的: s′ で暗号化された暗号文を別の秘密鍵 sk=(1,s) で同じ平分に復号されるような暗号文に変換すること
- 切り替え鍵 swk=KSGensk(s′) で作れる
KSswk(ct)=(c0,0)+⌊P−1⋅c1⋅swk⌉
Rotation
-
ct=Enc(m(X))=Enc(Ecd(z)) (z=(zj)0≤j<N/2∈CN/2)
-
slot i から j に送る写像 κk:m(X)↦m(Xk)(modΦM(X))
- k:=5i−j(modM) M⊥k
- m~=κk(m) は z~=(zk)∀j
- zj~=m~(ζj)=m(ζj5i−j)=m(ζi)=zi
- κ5r(ct)=Enc(ρ(z,r))
-
よって Rot(ct,r)=KSrkr(κ5r(ct))
5. Bootstrapping for HEAAN
5.1 Overview of the Recryption Procedure
MODRAISE -> COEFFTOSLOT -> EVALEXP -> IMGEXT -> SLOTTOCOEFF

Modulus raising
- ct=Enc(m(X))(modq)
- t(X)=Enc(t(X))(modQ0)
- m(X)=[⟨ct,sk⟩]q
CoeffToSlot
- 同型評価するために t の係数表現 (t0,⋯tN−1) を
slot に写したい → τ が使える
- z′=τ(t)∈CN/2 は ct に対応する平文だけどslot数が足りないので2つの暗号文にしまう
- z0′=(t0,⋯,tN/2−1),z1′=(tN/2,⋯,tN−1)
- zk′=N1(UkˉT⋅z′+UkT⋅z′ˉ)(k=0,1)
- これは線形変換を使って計算できる
HomEval
|F(t)-S(t)| = \frac{q}{2\pi}\left|\frac{2\pi m}{q} - \sin(\frac{2\pi m}{q})\right| \leq \frac{q}{2\pi} \cdot \frac{1}
{3!} (\frac{2\pi |m|}{q})^{3} = \mathcal{O}(q \cdot \frac{|m|^3}{q^3})$$
- マクローリン展開で, $x - \frac{x^{3}}{3!} < \sin(x) < x$ より, $x - \sin(x) < \frac{x^3}{3!}$
- $E(t_{j})= E(qI_{j} + m_{j}) = \frac{q}{2\pi} \exp(\frac{2\pi im_{j}}{q})$
- $\pmod{q}$ だから?