crypto数论篇(二次剩余)

1. 引入概念

设有数 \(a\),\(n\) 且 \(\gcd(a,n)=1\),即有形如

\[x^2 \equiv a \pmod n \]

的式子,我们称 \(a\) 为模 \(n\) 的二次剩余,\(x\) 为 \(a\) 模 \(n\) 的平方根。
并称

\[(\mathbb{Z}_n^*)^2 = \{ x^2 \mid x \in \mathbb{Z}_n^* \} \]

为模 \(n\) 的二次剩余集合。


2. 二次剩余的性质

  1. 模 \(p\) 素数下的集合中二次剩余和非二次剩余各占一半(即 \(\frac{p-1}{2}\) 个)

  2. 模 \(p\) 的二次剩余有两个构成模 \(p\) 相反数的平方根(\(-x, x\))也可理解为 \((p-x, x)\)

  3. 在模 \(n\)(假设可以分解为 \(pq\) 两个素数的情况下)有 \(a\) 是二次剩余,此时 \(a\) 有四个平方根,即由 \((\pm r_p \bmod p, \pm r_q \bmod q)\) 通过中国剩余定理组合得到,此时就构成了 Rabin 密码的情况。


3. 如何判断

引入欧拉准则 \(a^{\frac{p-1}{2}}\),当结果为 \(1\) 时,表示 \(a\) 为模 \(p\) 下的二次剩余,如果为 \(-1\) 则为模 \(p\) 下的二次非剩余,如果结果为 \(0\),则表示 \(a\) 和 \(p\) 不互素。

勒让德符号 \(\left(\frac{a}{p}\right)\),此时有 \(\left(\frac{a}{p}\right) = a^{\frac{p-1}{2}}\),判断二次剩余的方法同欧拉准则。

二次互反定律:当 \(p,q\) 为不同奇素数时有 \(\left(\frac{p}{q}\right)\left(\frac{q}{p}\right) = (-1)^{\frac{p-1}{2} \cdot \frac{q-1}{2}}\),即当 \(a\),\(p\) 不相等且同为奇素数时,如果有 \(a \equiv 1 \pmod 4\) 或 \(p \equiv 1 \pmod 4\) 则 \(\left(\frac{a}{p}\right) = \left(\frac{p}{a}\right)\),反之则有 \(\left(\frac{a}{p}\right) = -\left(\frac{p}{a}\right)\)。

勒让德符号有以下几个性质:

  • \(\left(\frac{2}{p}\right) = (-1)^{\frac{p^2-1}{8}}\)
  • \(a \equiv b \pmod p \Longrightarrow \left(\frac{a}{p}\right) = \left(\frac{b}{p}\right)\)
  • \(\left(\frac{a}{p}\right)\left(\frac{b}{p}\right) = \left(\frac{ab}{p}\right)\)

雅可比符号 \(\left(\frac{a}{n}\right)\)

判断二次剩余的方式有所变化:如果结果为 \(-1\) 或 \(0\) 则为二次非剩余,如果为 \(1\) 则不能确定为二次剩余。

性质:

  • \(\left(\frac{ab}{n}\right) = \left(\frac{a}{n}\right)\left(\frac{b}{n}\right)\)
  • \(\left(\frac{a}{mn}\right) = \left(\frac{a}{m}\right)\left(\frac{a}{n}\right)\)
  • \(a \equiv b \pmod n \Longrightarrow \left(\frac{a}{n}\right) = \left(\frac{b}{n}\right)\)
  • \(\left(\frac{1}{n}\right) = 1\)
  • \(\left(\frac{-1}{n}\right) = (-1)^{\frac{n-1}{2}}\)
  • \(\left(\frac{2}{n}\right) = (-1)^{\frac{n^2-1}{8}}\)

同时也可以对雅可比符号应用二次互反律。
二次互反可以用于简化雅可比或者勒让德符号的计算。

  1. 当有奇素数 \(q\) 与 \(a\) 互素时,有欧拉准则来判断 \(a\) 是模 \(p\) 的二次剩余。如果是判断 \(-1\) 时,则可以简化为判断 \(p \equiv 1 \pmod 4 \Longrightarrow -1\) 为模 \(p\) 的二次剩余。

  2. 并且有结论当模数为 \(p^k\) 时,如果 \(a\) 为模 \(p\) 下的二次剩余,也有 \(a\) 是模 \(p^k\) 的二次剩余。

  3. 如果模数 \(n\) 为奇合数有两种情况:

    • \(n\) 的因数过大无法分解,此时就无法通过确定算法来判断 \(a\) 是否为模 \(n\) 的二次剩余。
    • 如果 \(n\) 的因数可以分解,则可以通过中国剩余映射来判断 \(a\) 是否为 \(n\) 的二次剩余。即将 \(a\) 分解成模 \(n\) 的因子的多个同余方程下,此时再通过方式一或二来判断在模单个因子下是否为二次剩余,如果有 \(a\) 在模 \(n\) 所有的因子的同余式下是二次剩余,则 \(a\) 也是模 \(n\) 的一个二次剩余。

4. 求 \(a\) 模 \(p\) 的平方根

给定奇素数 \(p\) 和二次剩余 \(a\)(即 \(\left(\frac{a}{p}\right)=1\)),求 \(x\) 使得 \(x^2 \equiv a \pmod p\)。

4.1 特殊情形

情形一:\(p \equiv 3 \pmod 4\)

\[x \equiv \pm a^{\frac{p+1}{4}} \pmod p \]

情形二:\(p \equiv 5 \pmod 8\)

令 \(u \equiv a^{\frac{p+3}{8}} \pmod p\)
若 \(u^2 \equiv a \pmod p\),则 \(x \equiv \pm u\)
否则 \(x \equiv \pm u \cdot 2^{\frac{p-1}{4}} \pmod p\)

4.2 通用算法:Tonelli-Shanks

适用于任意奇素数 \(p\)。

步骤:

  1. 将 \(p-1\) 写成 \(p-1 = Q \cdot 2^S\),其中 \(Q\) 为奇数,\(S \ge 1\)。
  2. 找一个模 \(p\) 的二次非剩余 \(z\)(随机选取并检查欧拉准则)。
  3. 初始化:

    \[M = S,\quad c \equiv z^Q \pmod p,\quad t \equiv a^Q \pmod p,\quad R \equiv a^{\frac{Q+1}{2}} \pmod p \]

  4. 循环:当 \(t \not\equiv 1 \pmod p\) 时执行:
    • 找到最小的 \(i\)(\(1 \le i < M\))使得 \(t^{2^i} \equiv 1 \pmod p\)。
    • 令 \(b \equiv c^{2^{M-i-1}} \pmod p\)。
    • 更新:

      \[M \gets i,\quad c \gets b^2 \pmod p,\quad t \gets t \cdot b^2 \pmod p,\quad R \gets R \cdot b \pmod p \]

  5. 返回 \(R\) 和 \(p - R\)。

示例:求 \(x^2 \equiv 5 \pmod{41}\)

  • \(41-1 = 40 = 5 \times 2^3\),故 \(Q=5,\ S=3\)。
  • 取二次非剩余 \(z=11\)(验证 \(11^{20} \equiv -1 \pmod{41}\))。
  • 计算:

    \[c \equiv 11^5 \equiv 3,\quad t \equiv 5^5 \equiv 9,\quad R \equiv 5^{\frac{5+1}{2}} = 5^3 \equiv 2 \pmod{41} \]

  • 迭代过程:
    • \(t=9 \not\equiv 1\),找到 \(i=2\),\(b \equiv 3^{2^{3-2-1}} = 3^1 = 3\),更新得 \(M=2,\ c=9,\ t=81\equiv -1,\ R=6\)。
    • \(t=-1 \not\equiv 1\),找到 \(i=1\),\(b \equiv 9^{2^{2-1-1}} = 9^1 = 9\),更新得 \(M=1,\ c=81\equiv -1,\ t=1,\ R=54\equiv 13\)。
  • 结果:\(x \equiv \pm 13 \pmod{41}\)(验证 \(13^2 = 169 \equiv 5\))。

4.3 扩展到模 \(n = pq\)(Rabin 解密)

若要求 \(x^2 \equiv a \pmod n\),其中 \(n = p \cdot q\),\(p,q\) 为奇素数:

  1. 分别求模 \(p\) 的平方根 \(r_p\) 和模 \(q\) 的平方根 \(r_q\)。
  2. 用中国剩余定理组合得到四个解:

    \[\begin{cases} x \equiv \pm r_p \pmod p \\ x \equiv \pm r_q \pmod q \end{cases} \]

    即 \(x \equiv (r_p, r_q),\ (r_p, -r_q),\ (-r_p, r_q),\ (-r_p, -r_q)\) 对应的模 \(n\) 值。
posted @ 2026-06-03 00:20  灵溪泛舟  阅读(76)  评论(0)    收藏  举报