#1.
X
2
≡
a
(
m
o
d
p
)
的求解
X^2\equiv a(mod\;p)的求解
X2≡a(modp)的求解
step1:如果
p
∣
a
p|a
p∣a,则解为
x
≡
0
(
m
o
d
p
)
x\equiv0(mod\;p)
x≡0(modp);否则计算勒让德符号
(
a
p
)
(\frac{a}{p})
(pa)。如果
(
a
p
)
=
−
1
(\frac{a}{p})=-1
(pa)=−1,则说明无解;如果
(
a
p
)
=
1
(\frac{a}{p})=1
(pa)=1,则说明有解,执行step2。
引理1.1:如果
x
2
≡
1
(
m
o
d
p
)
x^2\equiv 1(mod\;p)
x2≡1(modp),则
x
≡
±
1
(
m
o
d
p
)
x\equiv \pm 1(mod\;p)
x≡±1(modp)。
推论1.1:如果
x
(
2
n
)
≡
1
(
m
o
d
p
)
x^{(2^n)}\equiv 1(mod\;p)
x(2n)≡1(modp),其中
n
≥
2
,
n \geq 2,
n≥2,则
x
≡
±
1
(
m
o
d
p
)
x\equiv \pm 1(mod\;p)
x≡±1(modp)或
∃
m
∈
{
1
,
.
.
.
,
n
−
1
}
\exist m\in \{1,...,n-1\}
∃m∈{1,...,n−1},使得
x
(
2
m
)
≡
−
1
(
m
o
d
p
)
x^{(2^m)}\equiv -1(mod\;p)
x(2m)≡−1(modp)
Euler定理:
(
a
p
)
≡
a
p
−
1
2
(
m
o
d
p
)
(\frac{a}{p})\equiv a^\frac{p-1}{2}(mod\;p)
(pa)≡a2p−1(modp)
step2:令
p
−
1
=
2
s
t
,
t
p-1=2^st,t
p−1=2st,t是奇数。因为
p
p
p是奇素数,则
s
≥
1
s\geq 1
s≥1。令
A
=
a
t
(
m
o
d
p
)
A=a^t(mod\;p)
A=at(modp)。
(1)如果
A
≡
±
1
(
m
o
d
p
)
A\equiv \pm1(mod\;p)
A≡±1(modp),解
x
≡
±
a
t
+
1
2
(
m
o
d
p
)
x\equiv \pm a^{\frac{t+1}{2}}(mod\;p)
x≡±a2t+1(modp);否则执行(2)。
【思路】下面的思路是找到一个模p的二次非剩余b,令
B
=
b
t
(
m
o
d
p
)
B=b^t(mod\;p)
B=bt(modp),由Euler定理可知
B
(
2
s
−
1
)
≡
−
1
(
m
o
d
p
)
B^{(2^{s-1})}\equiv -1(mod\;p)
B(2s−1)≡−1(modp)。找到一个偶数L,使得
A
B
L
≡
1
(
m
o
d
p
)
AB^L\equiv 1(mod\;p)
ABL≡1(modp),则
a
t
+
1
B
L
≡
a
(
m
o
d
p
)
a^{t+1}B^L\equiv a(mod\;p)
at+1BL≡a(modp),解
x
≡
±
a
t
+
1
2
B
L
2
(
m
o
d
p
)
x\equiv \pm a^{\frac{t+1}{2}}B^{\frac{L}{2}}(mod\;p)
x≡±a2t+1B2L(modp)。这只需要找到
L
′
L'
L′,使得
(
A
B
L
′
)
2
=
1
(AB^{L'})^2=1
(ABL′)2=1,然后根据引理1.1可知,
A
B
L
′
≡
1
(
m
o
d
p
)
AB^{L'}\equiv 1(mod\;p)
ABL′≡1(modp)或
A
B
L
′
≡
−
1
(
m
o
d
p
)
AB^{L'}\equiv -1(mod\;p)
ABL′≡−1(modp),前者令
L
=
L
′
L=L'
L=L′,后者令
L
=
2
s
−
1
+
L
′
L=2^{s-1}+L'
L=2s−1+L′;
(2)由Euler定理可知
A
(
2
s
−
1
)
≡
1
(
m
o
d
p
)
A^{(2^{s-1})}\equiv 1(mod\;p)
A(2s−1)≡1(modp)。由引理1.1和推论1.1可知,
∃
m
1
∈
{
1
,
.
.
.
,
s
−
2
}
\exist m_1\in \{1,...,s-2\}
∃m1∈{1,...,s−2},使得
A
(
2
m
1
)
≡
−
1
(
m
o
d
p
)
A^{(2^{m_1})}\equiv -1(mod\;p)
A(2m1)≡−1(modp)。有
A
(
2
m
1
)
B
(
2
s
−
1
)
≡
1
(
m
o
d
p
)
A^{(2^{m_1})}B^{(2^{s-1})}\equiv1(mod\;p)
A(2m1)B(2s−1)≡1(modp)即
(
A
B
(
2
s
−
1
−
m
1
)
)
2
m
1
≡
1
(
m
o
d
p
)
(AB^{(2^{s-1-m_1})})^{2^{m_1}}\equiv1(mod\;p)
(AB(2s−1−m1))2m1≡1(modp)。计算
A
B
(
2
s
−
1
−
m
1
)
(
m
o
d
p
)
AB^{(2^{s-1-{m_1}})}(mod\;p)
AB(2s−1−m1)(modp),如果等于
±
1
\pm1
±1,则符合要求。否则一定
∃
m
2
∈
{
1
,
.
.
.
,
m
1
−
1
}
\exist m_2\in \{1,...,m_1-1\}
∃m2∈{1,...,m1−1},使得
(
A
B
(
2
s
−
1
−
m
1
)
)
2
m
2
≡
−
1
(
m
o
d
p
)
(AB^{(2^{s-1-m_1})})^{2^{m_2}}\equiv-1(mod\;p)
(AB(2s−1−m1))2m2≡−1(modp),则
(
A
B
(
2
s
−
1
−
m
1
)
)
2
m
2
B
(
2
s
−
1
)
≡
1
(
m
o
d
p
)
(AB^{(2^{s-1-m_1})})^{2^{m_2}}B^{(2^{s-1})}\equiv1(mod\;p)
(AB(2s−1−m1))2m2B(2s−1)≡1(modp),即
(
A
B
(
2
s
−
1
−
m
1
+
2
s
−
1
−
m
2
)
)
2
m
2
≡
1
(
m
o
d
p
)
(AB^{(2^{s-1-m_1}+2^{s-1-{m_2}})})^{2^{m_2}}\equiv1(mod\;p)
(AB(2s−1−m1+2s−1−m2))2m2≡1(modp),计算
A
B
(
2
s
−
1
−
m
1
+
2
s
−
1
−
m
2
)
(
m
o
d
p
)
AB^{(2^{s-1-m_1}+2^{s-1-{m_2}})}(mod\;p)
AB(2s−1−m1+2s−1−m2)(modp),重复
A
B
(
2
s
−
1
−
m
1
)
(
m
o
d
p
)
AB^{(2^{s-1-{m_1}})}(mod\;p)
AB(2s−1−m1)(modp)的讨论方式。以此类推,
s
−
1
>
m
1
>
m
2
>
.
.
.
≥
1
s-1>m_1>m_2>...\geq 1
s−1>m1>m2>...≥1,因此一定存在
m
i
=
1
m_i=1
mi=1,此时
(
A
B
(
2
s
−
1
−
m
1
+
2
s
−
1
−
m
2
+
.
.
.
+
2
s
−
1
−
m
i
−
1
+
2
s
−
2
)
)
2
≡
1
(
m
o
d
p
)
(AB^{(2^{s-1-m_1}+2^{s-1-{m_2}}+...+2^{s-1-{m_{i-1}}}+2^{s-2})})^{2}\equiv1(mod\;p)
(AB(2s−1−m1+2s−1−m2+...+2s−1−mi−1+2s−2))2≡1(modp),符合条件,即
L
′
=
2
s
−
1
−
m
1
+
2
s
−
1
−
m
2
+
.
.
.
+
2
s
−
1
−
m
i
−
1
+
2
s
−
2
L'=2^{s-1-m_1}+2^{s-1-{m_2}}+...+2^{s-1-{m_{i-1}}}+2^{s-2}
L′=2s−1−m1+2s−1−m2+...+2s−1−mi−1+2s−2。
【复杂度分析】在二次非剩余b已知的情况下,上述算法复杂度显然是确定多项式时间。然而"找到一个奇素数的二次非剩余"这个问题目前没有确定性多项式时间算法。
二次同余方程求解
最新推荐文章于 2024-07-04 16:59:35 发布