前面讨论勒让德符号计算问题时,就说明了二次同余式是否有解的问题的重要性。今天来讨论,对于二次同余方程: x 2 ≡ a ( m o d p ) x^{2} \equiv a\pmod{p} x2≡a(modp)有解,即Legendre符号 ( a p ) = 1 (\frac{a}{p})=1 (pa)=1,那么如何求 x x x的值呢?这就是今天讨论的 n n n阶循环群的平方根求法(由于模p的乘法群的阶是 p − 1 p-1 p−1,所以这里的 n n n就是 p − 1 p-1 p−1)。
其实我本来也觉得这个证明过程和计算过程偏复杂,不想深入理解记住,但是闭卷考试要考,逼得我不得不掌握。
如果方程
x 2 ≡ a ( m o d p ) x^{2}\equiv a\pmod{p} x2≡a(modp)
有根, p p p是奇素数,求 x x x。
我们知道:
现在的问题归结成:如何找满足2的这个 B , l , q B,l,q B,l,q。
p p p是奇素数,根据欧拉定理,有 a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv 1\pmod{p} ap−1≡1(modp),我们对 p − 1 p-1 p−1做分解,企图构造出满足要求的 B , l , q B,l,q B,l,q。
具体的,将 p − 1 p-1 p−1分解成 p − 1 = 2 s t p-1=2^{s}t p−1=2st,找这里最大的 s s s,使得 t t t为奇数。如 100 = 2 2 × 25 100=2^{2}\times 25 100=22×25。显然, s ≥ 1 s\geq 1 s≥1。
任取 b ∈ Z p ∗ b\in \mathbb{Z}_{p}^{*} b∈Zp∗, s . t . s.t. s.t. b b b是模p的一个二次非剩余,那么自然有 b p − 1 2 ≡ − 1 ( m o d p ) b^{\frac{p-1}{2}}\equiv -1\pmod{p} b2p−1≡−1(modp)。令 B ≡ b t ( m o d p ) B\equiv b^{t} \pmod{p} B≡bt(modp),则有 B 2 s − 1 ≡ b 2 s − 1 t ≡ − 1 ( m o d p ) B^{2^{s-1}}\equiv b^{2^{s-1}t}\equiv -1\pmod{p} B2s−1≡b2s−1t≡−1(modp)。注意到 a a a是模p的二次剩余(因为题目说了方程有解),所以 a p − 1 2 ≡ 1 ( m o d p ) a^{\frac{p-1}{2}}\equiv 1\pmod{p} a2p−1≡1(modp),所以令 A = a t A=a^{t} A=at,则 A 2 s − 1 ≡ 1 ( m o d p ) A^{2^{s-1}}\equiv 1 \pmod{p} A2s−1≡1(modp)。
若 s = 1 s=1 s=1,则已经有了 A ≡ a t ≡ 1 ( m o d p ) A\equiv a^{t} \equiv 1\pmod{p} A≡at≡1(modp)成立,且 t t t是奇数,利用第1 条可以得出根。
若 s > 1 s>1 s>1,那么 A 2 s − 1 ≡ ( A 2 s − 2 ) 2 ≡ 1 ( m o d p ) A^{2^{s-1}}\equiv (A^{2^{s-2}})^{2}\equiv 1\pmod{p} A2s−1≡(A2s−2)2≡1(modp),则有 A 2 s − 2 ≡ ± 1 ( m o d p ) A^{2^{s-2}}\equiv \pm 1\pmod{p} A2s−2≡±1(modp)。因为 B 2 s − 1 ≡ − 1 ( m o d p ) B^{2^{s-1}}\equiv -1\pmod{p} B2s−1≡−1(modp),所以,如果令
l 1 = { 0 若 A 2 s − 2 ≡ 1 ( m o d p ) 1 若 A 2 s − 2 ≡ − 1 ( m o d p ) l_{1}=\begin{cases} 0 & 若A^{2^{s-2}}\equiv 1 \pmod{p} \\ 1 & 若A^{2^{s-2}}\equiv -1 \pmod{p} \end{cases} l1={ 01若A2s−2≡1(modp)若A2s−2≡−1(modp)
这样必有 ( B 2 s − 1 ) l 1 A 2 s − 2 ≡ 1 ( m o d p ) (B^{2^{s-1}})^{l_{1}}A^{2^{s-2}}\equiv 1\pmod{p} (B2s−1)l1A2s−2≡1(modp)。
若此时 s = 2 s=2 s=2,则上式变成 B 2 l 1 A ≡ B 2 l 1 a t ≡ 1 ( m o d p ) B^{2l_{1}}A\equiv B^{2l_{1}}a^{t}\equiv 1\pmod{p} B2l1A≡B2l1at≡1(modp)成立,利用第2 条可以得出根。
若此时 s > 2 s>2 s>2,那么 ( ( B 2 s − 2 ) l 1 A 2 s − 3 ) 2 ≡ 1 ( m o d p ) ((B^{2^{s-2}})^{l_{1}}A^{2^{s-3}})^{2}\equiv 1\pmod{p} ((B2s−2)l1A2s−3)2≡1(modp),则有 ( B 2 s − 2 ) l 1 A 2 s − 3 ≡ ± 1 ( m o d p ) (B^{2^{s-2}})^{l_{1}}A^{2^{s-3}}\equiv \pm 1\pmod{p} (B2s−2)l1A2s−3≡±1(modp)。继续利用 B 2 s − 1 ≡ − 1 ( m o d p ) B^{2^{s-1}}\equiv -1\pmod{p} B2s−1≡−1(modp),所以,如果令
l 2 = { 0 若 ( B 2 s − 2 ) l 1 A 2 s − 3 ≡ 1 ( m o d p ) 1 若 ( B 2 s − 2 ) l 1 A 2 s − 3 ≡ − 1 ( m o d p ) l_{2}=\begin{cases} 0 & 若(B^{2^{s-2}})^{l_{1}}A^{2^{s-3}}\equiv 1 \pmod{p} \\ 1 & 若(B^{2^{s-2}})^{l_{1}}A^{2^{s-3}}\equiv -1 \pmod{p} \end{cases} l2={ 01若(B2s−2)l1A2s−3≡1(modp)若(B2s−2)l1A2s−3≡−1(modp)
这样必有 ( B 2 s − 1 ) l 2 ( B 2 s − 2 ) l 1 A 2 s − 3 ≡ 1 ( m o d p ) (B^{2^{s-1}})^{l_{2}}(B^{2^{s-2}})^{l_{1}}A^{2^{s-3}}\equiv 1\pmod{p} (B2s−1)l2(B2s−2)l1A2s−3≡1(modp)。
若此时 s = 3 s=3 s=3,则上式变成 B 4 l 2 + 2 l 1 A ≡ B 4 l 2 + 2 l 1 a t ≡ 1 ( m o d p ) B^{4l_{2}+2l_{1}}A\equiv B^{4l_{2}+2l_{1}}a^{t}\equiv 1\pmod{p} B4l2+2l1A≡B4l2+2l1at≡1(modp)成立,利用第2 条可以得出根。
若此时 s > 3 s>3 s>3,那么 ( ( B 2 s − 2 ) l 2 ( B 2 s − 3 ) l 1 A 2 s − 4 ) 2 ≡ 1 ( m o d p ) ((B^{2^{s-2}})^{l_{2}}(B^{2^{s-3}})^{l_{1}}A^{2^{s-4}})^{2}\equiv 1\pmod{p} ((B2s−2)l2(B2s−3)l1A2s−4)2≡1(modp),则有 ( B 2 s − 2 ) l 2 ( B 2 s − 3 ) l 1 A 2 s − 4 ≡ ± 1 ( m o d p ) (B^{2^{s-2}})^{l_{2}}(B^{2^{s-3}})^{l_{1}}A^{2^{s-4}}\equiv \pm 1\pmod{p} (B2s−2)l2(B2s−3)l1A2s−4≡±1(modp)。继续利用 B 2 s − 1 ≡ − 1 ( m o d p ) B^{2^{s-1}}\equiv -1\pmod{p} B2s−1≡−1(modp),所以,如果令
l 3 = { 0 若 ( B 2 s − 2 ) l 2 ( B 2 s − 3 ) l 1 A 2 s − 4 ≡ 1 ( m o d p ) 1 若 ( B 2 s − 2 ) l 2 ( B 2 s − 3 ) l 1 A 2 s − 4 ≡ − 1 ( m o d p ) l_{3}=\begin{cases} 0 & 若(B^{2^{s-2}})^{l_{2}}(B^{2^{s-3}})^{l_{1}}A^{2^{s-4}}\equiv 1 \pmod{p} \\ 1 & 若(B^{2^{s-2}})^{l_{2}}(B^{2^{s-3}})^{l_{1}}A^{2^{s-4}}\equiv -1 \pmod{p} \end{cases} l3={ 01若(B2s−2)l2(B2s−3)l1A2s−4≡1(modp)若(B2s−2)l2(B2s−3)l1A2s−4≡−1(modp)
这样必有 ( B 2 s − 1 ) l 3 ( B 2 s − 2 ) l 2 ( B 2 s − 3 ) l 1 A 2 s − 4 ≡ 1 ( m o d p ) (B^{2^{s-1}})^{l_{3}}(B^{2^{s-2}})^{l_{2}}(B^{2^{s-3}})^{l_{1}}A^{2^{s-4}}\equiv 1\pmod{p} (B2s−1)l3(B2s−2)l2(B2s−3)l1A2s−4≡1(modp)。
若此时 s = 4 s=4 s=4,则上式变成 B 8 l 3 + 4 l 2 + 2 l 1 A ≡ B 8 l 3 + 4 l 2 + 2 l 1 a t ≡ 1 ( m o d p ) B^{8l_{3}+4l_{2}+2l_{1}}A\equiv B^{8l_{3}+4l_{2}+2l_{1}}a^{t}\equiv 1\pmod{p} B8l3+4l2+2l1A≡B8l3+4l2+2l1at≡1(modp)成立,利用第2 条可以得出根。
若 s > 4 s>4 s>4,那么继续利用上述算法一直计算下去 ⋯ \cdots ⋯
这样就可以求得二次同余式的根。
总结来说就是一直看 s s s的取值,最终使得 A A A的指数变成1,这样就有了 B 2 l a t ≡ 1 ( m o d p ) B^{2l}a^{t}\equiv 1 \pmod{p} B2lat≡1(modp)(t为奇数)出现了。
大家不妨找一个简单的例子试一下。如
x 2 ≡ 52 ( m o d 101 ) x^{2}\equiv 52\pmod{101} x2≡52(mod101)
解:(1)先判断这个方程是不是有解,即求Legendre符号 ( 25 101 ) (\frac{25}{101}) (10125).
( 52 101 ) = ( 4 101 ) ( 13 101 ) = ( − 1 ) 13 − 1 2 101 − 1 2 ( 101 13 ) = ( 10 13 ) = ( 5 13 ) ( 2 13 ) = ( − 1 ) 1 3 2 − 1 8 ( − 1 ) 5 − 1 2 13 − 1 2 ( 13 5 ) = ( − 1 ) ( 3 5 ) = ( − 1 ) ( 2 3 ) = ( − 1 ) ( − 1 ) 3 2 − 1 8 = 1 (\frac{52}{101}) =(\frac{4}{101})(\frac{13}{101})=(-1)^{\frac{13-1}{2} \frac{101-1}{2}}(\frac{101}{13})=(\frac{10}{13})=(\frac{5}{13})(\frac{2}{13})\\=(-1)^{\frac{13^{2}-1}{8}}(-1)^{\frac{5-1}{2} \frac{13-1}{2}}(\frac{13}{5})=(-1)(\frac{3}{5})=(-1)(\frac{2}{3})=(-1)(-1)^{\frac{3^{2}-1}{8}}=1 (10152)=(1014)(10113)=(−1)213−12101−1(13101)=(1310)=(135)(132)=(−1)8132−1(−1)25−1213−1(513)=(−1)(53)=(−1)(32)=(−1)(−1)832−1=1
所以方程有解。
(2)根据题目, a = 52 , p = 101 , p − 1 = 100 = 2 2 × 25 a=52,p=101,p-1=100=2^{2}\times 25 a=52,p=101,p−1=100=22×25,所以, s = 2 , t = 25 s=2,t=25 s=2,t=25。
找一个模101的非二次剩余:(一般看看 ( 2 p ) (\frac{2}{p}) (p2)或者 ( 3 p ) (\frac{3}{p}) (p3)等等)
( 3 101 ) = ( − 1 ) 3 − 1 2 101 − 1 2 ( 101 3 ) = ( 2 3 ) = − 1 (\frac{3}{101})=(-1)^{\frac{3-1}{2} \frac{101-1}{2}}(\frac{101}{3})=(\frac{2}{3})=-1 (1013)=(−1)23−12101−1(3101)=(32)=−1
所以, b = 3 , B = b t = 3 25 ( m o d 101 ) , A = a t = 5 2 25 ( m o d 101 ) b=3,B=b^{t}=3^{25}\pmod{101},A=a^{t}=52^{25}\pmod{101} b=3,B=bt=325(mod101),A=at=5225(mod101)。(注意这里会出现大数的模幂运算,如非必要可以不计算,等后面需要计算时利用重复平方-乘方法进行计算,有时为了验证推导是不是正确也可以计算结果加以验证)
因为 s = 2 s=2 s=2,所以需要计算 l 1 l_{1} l1,由于 A 2 s − 2 ≡ A ≡ 1 ( m o d p ) A^{2^{s-2}}\equiv A\equiv 1\pmod{p} A2s−2≡A≡1(modp),所以 l 1 = 0 l_{1}=0 l1=0。
如此就找到了 A 2 s − 1 ≡ 1 ( m o d p ) A^{2^{s-1}}\equiv 1\pmod{p} A2s−1≡1(modp),根据条件2,即 x ≡ ( ± 5 2 25 + 1 2 ) ≡ ± 31 ( m o d 101 ) x\equiv (\pm 52^{\frac{25+1}{2}})\equiv \pm 31 \pmod{101} x≡(±52225+1)≡±31(mod101)。