BlindRotaete((𝐚,b),𝐁𝐊,(𝐚[X],b[X]))
b̃= b >> (32-Nbit-1)) //ここはfloor
trlwe = X⁻ᵇ̃⋅(𝐚[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