Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ushitora-anqou/aqtfhe3
@nindanaotoによる TFHEの解説に基づいたC++20によるTFHEライブラリ
https://github.com/ushitora-anqou/aqtfhe3
Last synced: about 1 month ago
JSON representation
@nindanaotoによる TFHEの解説に基づいたC++20によるTFHEライブラリ
- Host: GitHub
- URL: https://github.com/ushitora-anqou/aqtfhe3
- Owner: ushitora-anqou
- License: other
- Created: 2020-10-18T04:11:55.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-08-17T10:13:53.000Z (over 2 years ago)
- Last Synced: 2024-05-01T16:53:42.527Z (9 months ago)
- Language: C++
- Homepage:
- Size: 189 KB
- Stars: 7
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# aqTFHE3
[@nindanaoto](https://github.com/nindanaoto)による
[TFHEの解説](https://nindanaoto.github.io/)に基づいたC++20によるTFHEライブラリ。## 章立てに対応するコミット
- [0.Introduction](https://github.com/ushitora-anqou/aqtfhe3/commit/37c416431c277d83341bc00a6ef8c62a588c76b2)
- [1.TLWE](https://github.com/ushitora-anqou/aqtfhe3/commit/41b6267cf46b9b616cc2bd718cddf96c7e5fe705)
- [2.TRLWE and Sample ExtractIndex](https://github.com/ushitora-anqou/aqtfhe3/commit/26684dbd50594370a257f192965b3111d9c9eb4c)
- [3.TRGSW and CMUX](https://github.com/ushitora-anqou/aqtfhe3/commit/36797f4744b168cf1a0ab09962d2b5151a49d169)
- [4.Blind Rotate](https://github.com/ushitora-anqou/aqtfhe3/commit/f3015dd673aee47bcefaa0b9ce2b8fb5a8385e9e)
- [5.Identity Key Switch](https://github.com/ushitora-anqou/aqtfhe3/commit/952c2c507a6f786493b6140786504ad6f93c1b84)
- [6.HomNAND](https://github.com/ushitora-anqou/aqtfhe3/commit/cde50713a72ffaf4d6b6797137915407ae007175)
- [7.Polynomial Multiplication By FFT](https://github.com/ushitora-anqou/aqtfhe3/commit/5a454eda735cc9e678e53f1be6ad6efdb5f48382)
- FFTには[GamaらのTFHEライブラリ](https://tfhe.github.io/tfhe/)に付属するspqliosを[Xbyak](https://github.com/herumi/xbyak)を用いてC++上に移植したものを使用しています。JITであることを活かした最適化は[今後の課題](https://github.com/ushitora-anqou/aqtfhe3/pull/1)です。これらのコミットは、開発を終えた後に新しくgit treeを作成し整理したものです。
関係のないコード片が混ざっているコミットがあった場合は、
IssueやPull Requestなどでお知らせください。## ビルド
```sh
$ make # ビルド
```Ubuntu 20.04 LTSにおいて動作確認しています。
C++20に対応したコンパイラ(GCC 10やClang 10など)が必要です。
必要に応じて`Makefile`内で起動されるC++コンパイラを変更してください。## 実行
```sh
$ make test # テスト及びベンチマーク
```デフォルトでは[128-bit securityのパラメタ[CGGI19]](https://tfhe.github.io/tfhe/security_and_params.html)を使用します。
Intel i7-8700(最大周波数4.6GHz)で実行すると、例えば次のように出力されます。```
Generating secret key (0) (SEED: 659303009)
==============================
0 (SEED: 1507937980)
test_tlwe:
986510248 == 986510248
0 == 0
test_trlwe:
[0] 0 == 0
[0] 0 == 0
test_cmux:
[0] 0 ? 0 : 1 == 1
test_blind_rotate:
0 == 0
test_identity_key_switch:
1 == 1
test_hom_nand:
nand(1, 0) = 1
==============================Test passed. (1464 ms)
Benchmark started...
done.
Benchmark result: 12.642 ms/gate
```## 書いた人
[Ushitora Anqou](https://anqou.net/)
## ライセンス
LICENSEファイルを参照してください。