松岡 航太郎
BlindRotaete((𝐚,b),𝐁𝐊,(a[X],b[X])) b̃=((b + (1<<(31-Nbit-1)) ) >> (32-Nbit-1))//足し算は四捨五入をするため trlwe = X⁻ᵇ̃⋅(a[X],b[X]) //ここで指数が正であることを仮定すると下のループと同じ関数が使えるので上で引き算をしている for i from 0 to n-1 ã=(aᵢ + (1<<(31-Nbit-1)) ) >> (32-Nbit-1) trlwe = CMUX(𝐁𝐊ᵢ,Xᵃ̃⋅trlwe,trlwe)//Dec(𝐁𝐊ᵢ)?Xᵃ̃⋅trlwe:trlwe return trlwe
GateBootstrappingTLWEtoTLWE((𝐚,b),𝐁𝐊) testvec = (0,0) for i from 0 to N-1 testvec += (0,μXⁱ) trlwe = BlindRotate((𝐚,b),𝐁𝐊,testvec) return SampleExtractIndex(trlwe,0)
page_number: true