求n阶循环群上平方根的方法

求n阶循环群上平方根的方法

前面讨论勒让德符号计算问题时,就说明了二次同余式是否有解的问题的重要性。今天来讨论,对于二次同余方程: x 2 ≡ a ( m o d p ) x^{2} \equiv a\pmod{p} x2a(modp)有解,即Legendre符号 ( a p ) = 1 (\frac{a}{p})=1 (pa)=1,那么如何求 x x x的值呢?这就是今天讨论的 n n n阶循环群的平方根求法(由于模p的乘法群的阶是 p − 1 p-1 p1,所以这里的 n n n就是 p − 1 p-1 p1)。

其实我本来也觉得这个证明过程和计算过程偏复杂,不想深入理解记住,但是闭卷考试要考,逼得我不得不掌握。

1、问题描述

如果方程
x 2 ≡ a ( m o d p ) x^{2}\equiv a\pmod{p} x2a(modp)
有根, p p p是奇素数,求 x x x

2、简单的分析

我们知道:

  1. 若存在奇数 q q q,满足 a q ≡ 1 ( m o d p ) a^{q}\equiv 1 \pmod{p} aq1(modp),那么必定有 ( ± a q + 1 2 ) 2 ≡ a q + 1 ≡ a ( m o d p ) (\pm a^{\frac{q+1}{2}})^{2}\equiv a^{q+1}\equiv a\pmod{p} (±a2q+1)2aq+1a(modp),所以有 x = ± a q + 1 2 x=\pm a^{\frac{q+1}{2}} x=±a2q+1。但是若满足这个式子的 q q q是偶数,则 q + 1 2 \frac{q+1}{2} 2q+1是小数,这式子就是不对的。那么这种情况就需要用第二条。
  2. 若存在 B ∈ Z p ∗ B\in \mathbb{Z}_{p}^{*} BZp,有 B 2 l a q ≡ 1 ( m o d p ) B^{2l}a^{q}\equiv 1\pmod{p} B2laq1(modp)成立(其中 l l l是大于等于0的任意某个整数, q q q是奇数),则必有 ( ± B l a q + 1 2 ) 2 ≡ a ( m o d p ) (\pm B^{l}a^{\frac{q+1}{2}})^{2} \equiv a \pmod{p} (±Bla2q+1)2a(modp)成立,那 x = ± B l a q + 1 2 x=\pm B^{l}a^{\frac{q+1}{2}} x=±Bla2q+1

现在的问题归结成:如何找满足2的这个 B , l , q B,l,q B,l,q

3、过程

p p p是奇素数,根据欧拉定理,有 a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv 1\pmod{p} ap11(modp),我们对 p − 1 p-1 p1做分解,企图构造出满足要求的 B , l , q B,l,q B,l,q

具体的,将 p − 1 p-1 p1分解成 p − 1 = 2 s t p-1=2^{s}t p1=2st,找这里最大的 s s s,使得 t t t为奇数。如 100 = 2 2 × 25 100=2^{2}\times 25 100=22×25。显然, s ≥ 1 s\geq 1 s1

​ 任取 b ∈ Z p ∗ b\in \mathbb{Z}_{p}^{*} bZp 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} b2p11(modp)。令 B ≡ b t ( m o d p ) B\equiv b^{t} \pmod{p} Bbt(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} B2s1b2s1t1(modp)。注意到 a a a是模p的二次剩余(因为题目说了方程有解),所以 a p − 1 2 ≡ 1 ( m o d p ) a^{\frac{p-1}{2}}\equiv 1\pmod{p} a2p11(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} A2s11(modp)

​ 若 s = 1 s=1 s=1,则已经有了 A ≡ a t ≡ 1 ( m o d p ) A\equiv a^{t} \equiv 1\pmod{p} Aat1(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} A2s1(A2s2)21(modp),则有 A 2 s − 2 ≡ ± 1 ( m o d p ) A^{2^{s-2}}\equiv \pm 1\pmod{p} A2s2±1(modp)。因为 B 2 s − 1 ≡ − 1 ( m o d p ) B^{2^{s-1}}\equiv -1\pmod{p} B2s11(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={ 01A2s21(modp)A2s21(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} (B2s1)l1A2s21(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} B2l1AB2l1at1(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} ((B2s2)l1A2s3)21(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} (B2s2)l1A2s3±1(modp)。继续利用 B 2 s − 1 ≡ − 1 ( m o d p ) B^{2^{s-1}}\equiv -1\pmod{p} B2s11(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(B2s2)l1A2s31(modp)(B2s2)l1A2s31(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} (B2s1)l2(B2s2)l1A2s31(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+2l1AB4l2+2l1at1(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} ((B2s2)l2(B2s3)l1A2s4)21(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} (B2s2)l2(B2s3)l1A2s4±1(modp)。继续利用 B 2 s − 1 ≡ − 1 ( m o d p ) B^{2^{s-1}}\equiv -1\pmod{p} B2s11(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(B2s2)l2(B2s3)l1A2s41(modp)(B2s2)l2(B2s3)l1A2s41(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} (B2s1)l3(B2s2)l2(B2s3)l1A2s41(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+2l1AB8l3+4l2+2l1at1(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} B2lat1(modp)(t为奇数)出现了。

4、例子

大家不妨找一个简单的例子试一下。如
x 2 ≡ 52 ( m o d 101 ) x^{2}\equiv 52\pmod{101} x252(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)213121011(13101)=(1310)=(135)(132)=(1)81321(1)2512131(513)=(1)(53)=(1)(32)=(1)(1)8321=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,p1=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)23121011(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} A2s2A1(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} A2s11(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)

你可能感兴趣的:(密码数学证明,密码学,密码学,抽象代数)