高速フーリエ変換 (FFT) と多項式乗算
2 つの多項式 の積 は係数の 畳み込み (convolution) であり、素朴計算は 。FFT を使うと に落とせる。本ヴォルトでは TFHE の実装解析が動機。
鍵となるアイデア
- 係数表現 ⇔ 点値表現 (point-value): 次多項式は 個の相異なる点で一意に決まる。点値表現では積が点ごとの乗算 となり 。
- 畳み込み定理: フーリエ変換 の下で畳み込みは要素積になる — 。
- 1 の冪根 (roots of unity) を評価点に「賢く」選ぶ。, などの対称性を利用。
クーリー–テューキー型 FFT
多項式を偶数次・奇数次に分割し
と再帰的に分割統治することで を達成する。逆変換(点集合 → 係数)は 補間 (interpolation)。
整数や有限体上では誤差のない 数論変換 (NTT) が用いられる。バタフライ演算で高速化できる変換は他にも多数。
関連: number-theoretic-transform / integer-factorization / _moc-algorithm