Appearance
本题考查同态加密的分析。
其中 pk 是 public_key 的值, ri 是一个随机数, si 是一个很小的数。
public_key
显然可以把 si 爆破然后求最大公约数。
这样会得到 p 的倍数,而先前给定了 p 是 128 位,除以几个小因子就可以得到 p 。
其中 bi 是每个比特, ni 是一个偶数小噪音, li 是 p 倍数的大噪音。我们刚刚求出了 p ,模 p 就可以把 li 去掉,再对 2 取模就可以去掉 ni 。剩下的就是 bi ,拼起来就是我们要求的 flag 了。