CPC 算法笔记——二次剩余

3 min981 words
Legacy
Contents

定义

一个整数 xx 对另一个整数 pp 的二次剩余,指 x2x^2 模 pp 的余数。

我们称整数 dd 为模 pp 的二次剩余当且仅当 ∃x∈Z s.t. x2≡d(modp)\exists x \in \mathbb{Z} \text{ s.t. } x^2 \equiv d \pmod p;反之,称 dd 为模 pp 的非二次剩余。

上下文无歧义的情况下可以简称为剩余和非剩余。

素数的二次剩余

p=2p=2 时,显然每个整数都是 pp 的二次剩余。下面仅讨论奇素数的情形:

首先观察到一个显然的结论:

x2≡(p−x)2(modp)x^2 \equiv (p-x)^2 \pmod p

因此,在 Z/pZ\mathbb{Z}/p\mathbb{Z} 中,模 pp 的二次剩余一共有 p+12\frac{p+1}{2} 个,分别是 02,12,…,(p−12)20^2, 1^2, \dots, (\frac{p-1}{2})^2。忽略 00 的情形,则模 pp 的二次剩余和二次非剩余各有 p−12\frac{p-1}{2} 个。

Euler 准则 / Euler 判别法

Euler 准则应用于判断整数 aa 是否是素数 pp 的二次剩余。

为方便叙述,先引入 Legendre 符号:

(ap)={0,a≡0(modp)1,a≢0(modp), ∃x s.t. x2≡a(modp)−1,∄x s.t. x2≡a(modp)\left( \frac{a}{p} \right) = \begin{cases} 0 ,& a \equiv 0 \pmod p\\ 1 ,& a \not \equiv 0 \pmod p,\ \exists x \text{ s.t. } x^2 \equiv a \pmod p\\ -1 ,& \nexists x \text{ s.t. } x^2 \equiv a \pmod p \end{cases}

Euler 准则的内容是:对 ∀a∈Z,p∤a\forall a \in \mathbb{Z}, p \nmid a:

(ap)≡ap−12(modp)\left( \frac{a}{p} \right) \equiv a^{\frac{p-1}{2}} \pmod p

证明待补充

由 Euler 准则可得到以下 Legendre 符号的性质:

  • (⋅p)\left(\frac{\cdot}{p}\right) 是完全积性函数,即 ∀a,b∈Z, (abp)=(ap)(bp)\forall a, b \in \mathbb{Z},\ \left(\frac{ab}{p}\right) = \left(\frac{a}{p}\right)\left(\frac{b}{p}\right)
  • 若 a≡b(modp)a \equiv b \pmod p,则 (ap)=(bp)\left(\frac{a}{p}\right) = \left(\frac{b}{p}\right)
  • (a2p)=1\left(\frac{a^2}{p}\right) = 1

由此知:

  • 二次剩余的乘法逆元依然是二次剩余,非二次剩余的乘法逆元依然是非二次剩余;
  • 两个二次剩余或者非二次剩余的乘积是二次剩余;
  • 二次剩余和非二次剩余的乘积是非二次剩余。

二次互反律

对于两个奇素数 pp 和 qq:

(pq)⋅(qp)=(−1)(p−1)(q−1)4\left({\frac{p}{q}}\right)\cdot \left({\frac{q}{p}}\right)=(-1)^{\frac{(p-1)(q-1)}{4}}

该定律可以将模数较大的二次剩余判别问题转移成模数较小的情形。

下面两个性质称为二次互反律的第一补充和第二补充:

(−1p)=(−1)p−12≡{1,p≡1(mod4)−1,p≡3(mod4)(2p)=(−1)p2−18≡{1,p≡1 or 7(mod8)−1,p≡3 or 5(mod8)\left(\frac{-1}{p}\right) = (-1)^{\frac{p-1}{2}} \equiv \begin{cases} 1,& p \equiv 1 \pmod 4\\ -1,& p \equiv 3 \pmod 4 \end{cases}\\ \left(\frac{2}{p}\right) = (-1)^{\frac{p^2-1}{8}} \equiv \begin{cases} 1,& p \equiv 1 \text{ or } 7 \pmod 8\\ -1,& p \equiv 3 \text{ or } 5 \pmod 8 \end{cases}

对奇素数 pp,还有以下结论:

(3p)=(−1)⌈p+16⌉={1,p≡1 or 11(mod12)−1,p≡5 or 7(mod12)(5p)=(−1)⌊p−25⌋={1,p≡1 or 4(mod5)−1,p≡2 or 3(mod5)(7p)={1,p≡1,3,9,19,25,or 27(mod28)−1,p≡5,11,13,15,17,or 23(mod28)\left({\frac{3}{p}}\right)=(-1)^{\left\lceil {\frac{p+1}{6}}\right\rceil }= {\begin{cases} 1,& p\equiv 1{\text{ or }}11{\pmod{12}}\\ -1,& p\equiv 5{\text{ or }}7{\pmod{12}} \end{cases}}\\ \left({\frac{5}{p}}\right)=(-1)^{\left\lfloor {\frac{p-2}{5}}\right\rfloor }= {\begin{cases} 1,& p\equiv 1{\text{ or }}4{\pmod 5}\\ -1,& p\equiv 2{\text{ or }}3{\pmod 5} \end{cases}}\\ \left({\frac {7}{p}}\right)= \begin{cases} 1,& p\equiv 1,3,9,19,25,{\text{or }}27{\pmod {28}}\\ -1,& p\equiv 5,11,13,15,17,{\text{or }}23{\pmod {28}} \end{cases}

求解方程:Cipolla 算法

下面来解方程 x2≡d(modp)x^2 \equiv d \pmod p:

定理 设 aa 满足 ω=a2−d\omega = a^2 - d 不是模 pp 的二次剩余,那么 x≡(a+ω)p+12(modp)x \equiv (a+\sqrt{\omega})^{\frac{p+1}{2}} \pmod p 满足 x2≡d(modp)x^2 \equiv d \pmod p。

证明

首先观察到以下结论:

(pi)≡0(modp), i=1,2,…,p−1ap−1≡1(modp)ωp−12=(ωp)≡−1(modp)\binom{p}{i} \equiv 0 \pmod p,\ i = 1, 2, \dots, p-1\\ a^{p-1} \equiv 1 \pmod p\\ \omega^\frac{p-1}{2} = \left({\frac{\omega}{p}}\right) \equiv -1 \pmod p

因此有:

(a+ω)p=ap+∑i−1p−1(pi)ai(ω)p−i+>ωp−12ω≡ap+ωp−12ω(modp)≡a−ω(modp)\begin{align*} (a+\sqrt{\omega})^p &= a^p + \sum_{i-1}^{p-1} \binom{p}{i}a^i(\sqrt{\omega})^{p-i} + > \omega^{\frac{p-1}{2}}\sqrt{\omega}\\ &\equiv a^p + \omega^\frac{p-1}{2} \sqrt{\omega} \pmod p \\ &\equiv a - \sqrt{\omega} \pmod p \end{align*}

所以

x2=(a+ω)p+1=(a+ω)p(a+ω)≡(a−ω)(a+ω)(modp)≡a2−(a2−d)(modp)≡d(modp)\begin{align*} x^2 &= (a+\sqrt{\omega})^{p+1}\\ &= (a+\sqrt{\omega})^p(a+\sqrt{\omega})\\ &\equiv (a-\sqrt{\omega})(a+\sqrt{\omega}) \pmod p\\ &\equiv a^2 - (a^2-d) \pmod p\\ &\equiv d \pmod p \end{align*}

由上述定理,只需在 Z/pZ\mathbb{Z}/p\mathbb{Z} 中找到符合条件的 aa,即可求解方程 x2≡d(modp)x^2 \equiv d \pmod p。使用随机数找 aa 的次数期望为 22,计算 (a+ω)p+12mod  p(a+\sqrt{\omega})^{\frac{p+1}{2}} \mod p 需要在二次域 Q(ω)\mathbb{Q}(\sqrt{\omega}) 上进行,算法复杂度为 O(log⁡p)\mathrm{O}(\log p)。

素数乘方的二次剩余

先讨论 p=2p=2 的情形:

引理 1 奇数 aa 是 2k2^k 的二次剩余当且仅当 a≡1(mod8)a \equiv 1 \pmod 8。

证明

设 x=2m+1x = 2m + 1,则 x2=4m2+4m+1=4m(m+1)+1x^2 = 4m^2 + 4m + 1 = 4m(m+1) + 1,故 x2≡1(mod8)x^2 \equiv 1 \pmod 8,反正显然。

由引理 1 可推得,关于 22,23,24,…2^2, 2^3, 2^4, \dots 的二次剩余是具有 4k(8m+1)4^k(8m+1) 形式的所有数;特殊地,44 的二次剩余是 0,10, 1。


下面讨论 pp 为奇素数的情形:

引理 2 若整数 aa 和 pp 互质,aa 是 pp 的若干次方的二次剩余当且仅当 aa 是 pp 的二次剩余。

证明略

若模数为 pnp^n,那么 pkap^ka:

  • 在 k≥nk \geq n 时是二次剩余(取模后为 00);
  • 在 k<nk < n 时:
    • kk 为奇数时不是二次剩余;
    • kk 为偶数时是二次剩余当且仅当 aa 是二次剩余。

模 pkp^k 意义下的二次剩余和非二次剩余的行为遵循和模 pp 意义下相同的规则(见 Euler 准则部分),而 pp 不是 p2k+1p^{2k+1} 的二次剩余,上述结论显然易得。

合数的二次剩余

对合数 m=∑i=1αpieim = \sum\limits_{i=1}^\alpha p_i^{e_i},其中 pip_i 为质数,且 ∀i≠j,pi≠pj\forall i \neq j, p_i \neq p_j:

若 aa 是 mm 的二次剩余,则 aa 是任意 pikp_i^k 的二次剩余,其中 1≤i≤α,k≤ei1 \leq i \leq \alpha, k \leq e_i;

若 aa 不是 mm 的二次剩余,则存在 pikp_i^k 使得 aa 不是 pikp_i^k 的二次剩余,其中 1≤i≤α,k≤ei1 \leq i \leq \alpha, k \leq e_i。

在模合数意义下,两个二次剩余的积依然是二次剩余;而两个非剩余、剩余和非剩余的积可能是 00、剩余或非剩余。

例 1(剩余和非剩余的积) 66 的二次剩余为 1,3,41, 3, 4:

  • 3×5≡3(mod6)3 \times 5 \equiv 3 \pmod 6,结果为二次剩余;
  • 4×2≡2(mod6)4 \times 2 \equiv 2 \pmod 6,结果为非二次剩余。

例 2(两个非剩余的积) 1515 的二次剩余为 1,4,6,9,101, 4, 6, 9, 10:

  • 2×8≡1(mod15)2 \times 8 \equiv 1 \pmod {15},结果为二次剩余;
  • 2×7≡14(mod15)2 \times 7 \equiv 14 \pmod {15},结果为非二次剩余。

这个现象可以从抽象代数的角度解释:Z/mZ\mathbb{Z}/m\mathbb{Z} 中所有和模 mm 互质的同余类构成一个乘法群,称作 Z/mZ\mathbb{Z}/m\mathbb{Z} 上的可逆元群 (Z/mZ)∗(\mathbb{Z}/m\mathbb{Z})^*;这些同余类的平方可构成可逆元群的子群 HH。不同的非剩余可能属于不同的陪集,也不存在一个简单的法则来判断其属于哪一个陪集。特殊地,mm 为质数时,(Z/mZ)∗(\mathbb{Z}/m\mathbb{Z})^* 除去子群 HH 后只剩下一个陪集,故有特殊结论成立。

Contents