crypto数论篇(二次剩余)
1. 引入概念
设有数 \(a\),\(n\) 且 \(\gcd(a,n)=1\),即有形如
的式子,我们称 \(a\) 为模 \(n\) 的二次剩余,\(x\) 为 \(a\) 模 \(n\) 的平方根。
并称
为模 \(n\) 的二次剩余集合。
2. 二次剩余的性质
-
模 \(p\) 素数下的集合中二次剩余和非二次剩余各占一半(即 \(\frac{p-1}{2}\) 个)
-
模 \(p\) 的二次剩余有两个构成模 \(p\) 相反数的平方根(\(-x, x\))也可理解为 \((p-x, x)\)
-
在模 \(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}}\)
同时也可以对雅可比符号应用二次互反律。
二次互反可以用于简化雅可比或者勒让德符号的计算。
-
当有奇素数 \(q\) 与 \(a\) 互素时,有欧拉准则来判断 \(a\) 是模 \(p\) 的二次剩余。如果是判断 \(-1\) 时,则可以简化为判断 \(p \equiv 1 \pmod 4 \Longrightarrow -1\) 为模 \(p\) 的二次剩余。
-
并且有结论当模数为 \(p^k\) 时,如果 \(a\) 为模 \(p\) 下的二次剩余,也有 \(a\) 是模 \(p^k\) 的二次剩余。
-
如果模数 \(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\)
情形二:\(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\)。
步骤:
- 将 \(p-1\) 写成 \(p-1 = Q \cdot 2^S\),其中 \(Q\) 为奇数,\(S \ge 1\)。
- 找一个模 \(p\) 的二次非剩余 \(z\)(随机选取并检查欧拉准则)。
- 初始化:\[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 \]
- 循环:当 \(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 \]
- 返回 \(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\) 为奇素数:
- 分别求模 \(p\) 的平方根 \(r_p\) 和模 \(q\) 的平方根 \(r_q\)。
- 用中国剩余定理组合得到四个解:\[\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\) 值。

浙公网安备 33010602011771号