Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
nindanaoto committed Jul 3, 2024
1 parent eb3edad commit dd14cd8
Show file tree
Hide file tree
Showing 10 changed files with 2,177 additions and 5 deletions.
2 changes: 1 addition & 1 deletion seccamp/html/2024/4.BlindRotate.html
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ <h2 id="gatebootstrapping-tlwe-to-tlwe%E6%A6%82%E7%95%A5">GateBootstrapping TLWE
<ul>
<li>∵TLWElvl1のノイズは<mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="1.357ex" height="1.025ex" role="img" focusable="false" viewBox="0 -442 600 453"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D45B" d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container>回のCMUXによるノイズのみで固定(Bootstrapping)</li>
<li>あとはTLWElvl1からTLWElvl0に変換しないといけないが、その方法は次回<br />
<img src="../../image/BlindRotate.png" alt="" /> <img src="../../image/TLWE2TLWEHomNANDdiagram.png" alt="" style="width:700px;" /></li>
<img src="../../image/BlindRotate.png" alt="" /> <img src="../../image/TLWE2TLWEHomNANDdiagramreversed.png" alt="" style="width:700px;" /></li>
</ul>
</li>
</ul>
Expand Down
509 changes: 509 additions & 0 deletions seccamp/html/2024/5.IdentityKeySwitching.html

Large diffs are not rendered by default.

352 changes: 352 additions & 0 deletions seccamp/html/2024/6.HomNAND.html

Large diffs are not rendered by default.

1,305 changes: 1,305 additions & 0 deletions seccamp/html/2024/7.PolynomialMultiplicationByFFT.html

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion seccamp/markdown/2024/4.BlindRotate.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ BlindRotaete((𝐚,b),𝐁𝐊,(𝐚[X],b[X]))
- 出力となるTLWElvl1のノイズはTLWElvl0のノイズにかかわらず一定になる
- ∵TLWElvl1のノイズは$n$回のCMUXによるノイズのみで固定(Bootstrapping)
- あとはTLWElvl1からTLWElvl0に変換しないといけないが、その方法は次回
![](../../image/BlindRotate.png) ![w:700px](../../image/TLWE2TLWEHomNANDdiagram.png)
![](../../image/BlindRotate.png) ![w:700px](../../image/TLWE2TLWEHomNANDdiagramreversed.png)
---

## 自明な暗号文
Expand Down
2 changes: 1 addition & 1 deletion seccamp/markdown/2024/5.IdentityKeySwitching.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ style: |

## 説明内容のHomNANDでの位置づけ

![](../../image/IdentityKeySwitchHomNANDdiagram.png)
![](../../image/IdentityKeySwitchHomNANDdiagramreversed.png)

---

Expand Down
2 changes: 1 addition & 1 deletion seccamp/markdown/2024/6.HomNAND.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ style: |
- 復号をせずにNANDを演算することができる
- 今まで作ってきたものを組み合わせれば作ることができる

![width:1200px](../../image/HomNANDdiagram.png)
![width:1200px](../../image/HomNANDdiagramreversed.png)

---

Expand Down
8 changes: 7 additions & 1 deletion seccamp/markdown/2024/7.PolynomialMultiplicationByFFT.md
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,8 @@ Radix4FFT(𝐚,start,end)
- とはいえ基底を大きくするほど並列性が下がる面もあるのでレジスタの本数やメモリアクセス量との兼ね合いが必要
- 64点以下のFFTは8基底ベースのSplitRadixする最適化とかは存在する
- 64基底ではない
- [OTFFT](https://github.com/DEWETRON/otfft)だと16も扱っているので意味があるが場合もある?
- 少なくとも最後16点になったときに2段に分けるより効率よいのはそう

---

Expand All @@ -355,6 +357,8 @@ Radix4FFT(𝐚,start,end)
- 256bit、倍精度4つ分を1サイクルで計算することができる
- コンパイラに任せるとうまく使ってくれないことがあるので、FFTのように並列計算をゴリゴリやる場合にはアセンブラを書いたほうが速いことがある
- 配列の加算程度ならコンパイラに-march=nativeを渡せば勝手に使ってくれる
- 最近のRyzenやサーバ向けCPUならAVX-512という512bit扱うものもある
- Apple Siliconには128bitのNEONしかない

---

Expand Down Expand Up @@ -384,8 +388,10 @@ Radix4FFT(𝐚,start,end)
- GPUでFFTをするcuFFTもあるがGPUならcuFHEのようにNTTを実装したほうが速い
- SVE2やHIPでの実装はあり?
- AVX512に関しては[MOSFHET](https://github.com/antoniocgj/MOSFHET)で実装された
- NTTに関しては[Intel HEXL](https://github.com/intel/hexl/)[cuFHE]()がある
- NTTに関しては[Intel HEXL](https://github.com/intel/hexl/)[cuFHE](https://github.com/virtualsecureplatform/cuFHE)がある
- TFHEかつCPU向けに最適化する余地はあるが
- 現状最高速は[concrete-fft](https://github.com/zama-ai/concrete-fft)?
- OTFFTベースらしい

---

Expand Down

0 comments on commit dd14cd8

Please sign in to comment.