IdentityKeSwitch((𝐚,b),𝐊𝐒)
b̃=b
for i from 0 to n-1
ãᵢ = 0
prec_offset = 1 << (32 - (1 + basebit * t)) //四捨五入のため
for i from 0 to N-1
āᵢ = aᵢ+prec_offset //ここでTorusから整数に変わっていると考えていい
for j from 0 to t-1
k = (āᵢ >> (32 - (j+1)⋅basebit))&(2ᵇᵃˢᵉᵇⁱᵗ - 1) //unicodeだとâᵢⱼを下付きにできないので
if k != 0
(𝐚̃,b̃) -= KSᵢⱼₖ
return (𝐚̃,b̃)