# 研究ノート: 阪口裕飛 ## 2023/07/14 - 和賀: そろそろ実験の設計をする時期だと思います。 - やりかた: 1. RQを立てる 2. それに答えるのに必要な実験設定などを考える 3. 実験を回す 4. 評価 (RQに答える) - RQ 1: 実用上問題ない速度で動くか - 実用的なサンプリングレートとかを考えて比較? - RQ 2: reverseとblockのどちらが良いか - 多分「状況による」なので、「状況」を事前に見つもれるかが大事そう - RQ 3: HomFA(CAV'22)とどちらが良いか - 普通に比較? - ... - 論文の形でまとめ始める? - 今回やったことをまとめる ## 4/21 - ベンチマークのテスト - bootstrapping keyを作るのに時間がかかる - 例: bkeyの生成時間: 16614723[μs] - 例: skey, bkeyの生成時間を除いた時間: 55982[μs] => skey, bkeyの生成時間(各エンコーディングで共通)は除く - 直列, 並列でdecryptは共通(1, 2μsなので影響はない) ### やったこと - 10回回して平均を取る - "p & F(\!p & Fp)"に対する結果(offline), input size:81 - トーラス分割(20回): 55442[μs] - 2値の直列(20回): 67254[μs] - 2値の並列(20回): 59938[μs] ## 4/14 - ベンチマークテストの実装 - secret keyを作るのにかかる時間 - bootstrapping keyを作るのにかかる時間 - runnerを構築(オートマトンのstateをTRLWEに変換)するのにかかる時間 - inputのencrypt - オートマトンを1つ進める(戻す)のにかかる時間 - inputによる結果をdecryptするのにかかる時間 ## 4/7 - 2値オートマトン×2を出力できるようにPythonプログラムを変更した - Anacondaが使えなくなって入れ直したりした。ベストプラクティスがまだよくわからない。 ## Encoding 一覧 - 1. 1 TRLWE に n bit 詰める - Pros: TRLWE の本数が減るので、CMux の数が減る - Cons: Bootstrapping において(TRLWE をそのまま bootstrapping することはできないので)packing(TLWE -> TRLWE)が必要 - TRLWE --SampleExtract[i]--> TLWE * i --Bootstrapping--> TLWE * i --Packing--> TRLWE - 2. 1 TRLWE の定数項だけに $2^n$ 値詰める(トーラスを分割) - Pros: CMux と Bootstrapping の個数が 2 値の場合と変わらない - Cons: n に対する scalability が無い - TFHE のパラメタを変えるとパフォーマンスが劣化する - (n に対してノイズ耐性が指数的に悪化する) - 暗号学的に n に上限がある - → 3値だとConsは無視できる - 3. n TRLWE の、各々の定数項に 1 bit ずつ詰める - n bit 出力を 1 bit ごとに別々の DFA に分けて、各々を並列に動かすことと等価 - Pros: CAV'22 とほぼ同じコードベースで実現可能 - Cons: - CMux, Bootstrapping の数は増える - 新規性? - 性能評価をするのであれば、これをベースラインにしたい - 4. 1 TRLWE に ManyLUT を使って n bit 詰める - ManyLUT: https://nindanaoto.github.io/seccamp/html/2022/8.MultiValueAndPBSmayLUT.html#6 - https://eprint.iacr.org/2022/515.pdf ? - Pros: Bootstrapping n 回で packing ができる - Cons: ノイズ的に n <= 4 が必要 - Bootstrapping は BlindRotate + SampleExtract - TRLWE --SampleExtract[i]--> TLWE * i --BlindRotateとか--> TRLWE * i --そのまま多項式を足す--> TRLWE 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up