0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

「CKKS解説ブログ」を解説する 2/5

0
Last updated at Posted at 2023-03-17

この記事は 2023年四半期カレンダー(3月版) の6日目の記事です.

CKKSの第2回です.

何回目 内容
1 CKKSの一般論, 前提知識
2 vanila encoding, full encoding
3 encrypt, 暗号文の足し算・スカラー倍
4 暗号文の掛け算
5 Rescaling

今回は,encoding, decoding の話がメインで
・vanila encoding
・full encoding
の2つを解説していきます.

vanila encoding

本節は以下の内容に対応します:
https://blog.openmined.org/ckks-explained-part-1-simple-encoding-and-decoding/

イントロ

まず,CKKSは次の流れで encode, 暗号化が行われます

CKKS_view.png

つまり,$m \in \mathbb{C}^{N / 2}$ なるメッセージ(cleartext)を取って,それを $p(X) \in \mathbb{Z}[X] / (X^N + 1)$ なる平文にエンコードし,更に $c = (c_0(X), c_1(X)) \in (\mathbb{Z} / q \mathbb{Z})[X] / (X^N + 1)^2$ なる暗号文へ暗号化するわけです.

以下では,$N$ を2べきとして,$M = 2 N$ とします.このとき,命題0.15から $\Phi_M(X) = X^N + 1$ です.
1の $M$ 乗根を $\displaystyle \zeta_M = e^{\frac{2 \pi \sqrt{-1}}{M}}$ で表すことにします.

いきなり,encodeの方法を考えるのは難しいので,まずは,複素ベクトル $z \in \mathbb{C}^N$ を多項式 $\mathbb{Z}[X] / (X^N + 1)$ へと
エンコードする方法を考えていきます.

vanila encoding

CKKS_1_1.png

CKKS_1_2.png

CKKS_1_3.png

具体例

*コードはブログの方を参照してください,ここでは理論的に計算をします

CKKS_1_4_1.png

CKKS_1_4_2.png

CKKS_1_4_3.png

full encoding

本節は以下の内容に対応します:
https://blog.openmined.org/ckks-explained-part-2-ckks-encoding-and-decoding/

CKKS encoding

CKKS_2_2_1.png

CKKS_2_2_2.png

CKKS_2_2_3.png

CKKS_2_2_4.png

まとめとか感想とか

前置きが随分と長いなぁという印象ですが,次回から暗号化とか暗号文に対する演算の話になります
実は「イデアル格子暗号入門」の内容をご存知の方なら,そんなに苦労せずにこの後を読めるのかなと・・・


今回の内容はここまでです.ここまでご覧になってくださった方々ありがとうございます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?