二次剩余

来源:互联网 发布:中国网络好声音苏棱然 编辑:程序博客网 时间:2024/03/29 09:13

给定两个数n,P,P为一个质数,且n<P,求一个x,使得x2n(mod P)

下面所有的运算都在mod P意义下进行。

首先我们要判断是否有解。

根据勒让德记号,我们有nP12=±1 ,并且上述问题有解当且仅当nP12=1

a,满足w=a2nw对于P不是二次剩余。这个a直接随机就好了。

那么最终我们有x=(a+w)P+12

问题是w不存在,我们将w如同虚数i一样设定,那么由于最终x是一个实数,所以直接当虚数来做快速幂最终取实根即可。

证明:
x=(a+w)P+12
x2=(a+w)P+1=(a+w)P(a+w)

由二项式定理得:
(a+w)P=Pk=0CkPak(w)Pk

又由于当0<k<P时,CkP mod P=0,所以

(a+w)P=aP+(w)P

又由费马小定理aP1=1,wP12=wP1=1

所以

(a+w)P=aw

所以x2=(aw)(a+w)=a2w=n

得证

1 0
原创粉丝点击