try ai
科普
编辑
分享
反馈
  • 雅可比符号

雅可比符号

SciencePedia玻尔百科
核心要点
  • 雅可比符号将勒让德符号推广至合数,但其值为 1 并不保证一个数是二次剩余。
  • 雅可比符号值为 -1 则为该数是二次非剩余提供了确定性证明。
  • 使用二次互反律可以高效地计算雅可比符号的值,而无需分解分母。
  • 这种高效性使雅可比符号成为 Solovay-Strassen 算法等素性检验中的关键组成部分,这对密码学至关重要。

引言

在数论领域,勒让德符号为判断一个数是否是模一个奇素数的完全平方数提供了一个完整而优雅的解决方案。然而,这个工具的能力仅限于素数模,这在我们分析合数的二次剩余时留下了巨大的空白。在一个数字不总是素数的世界里,我们如何检验“平方性”?这个问题为引入雅可比符号——一个自然而微妙的推广——奠定了基础。

本文描绘了从雅可比符号的基础理论到其强大应用的路线。我们将看到一个源于抽象好奇心的概念如何成为现代计算中不可或缺的工具。这段旅程将揭示,该符号最令人困惑的特性,实际上是其效用之所在。

在第一章“原理与机制”中,我们将正式把雅可比符号定义为勒让德符号的乘积,并立即面对其巨大的欺骗性:即使一个数不是二次剩余,它如何能返回值为 1。我们将通过中国剩余定理的视角分析此行为,并揭示该符号作为计算捷径的救赎。在随后的“应用与跨学科联系”一章中,我们将探讨这一理论构造如何成为 Solovay-Strassen 素性检验背后的引擎,该检验是密码学的基石,也是连接纯粹数学和理论计算机科学的桥梁。

原理与机制

在初步了解二次剩余问题后,您可能会同时感到满足和好奇。勒让德符号 (ap)\left(\frac{a}{p}\right)(pa​) 是一个非常完备的工具。对于任何奇素数 ppp,它对“在模 ppp 算术世界中,数 aaa 是一个完全平方数吗?”这个问题给出了明确的答案。这个理论简洁、清晰且强大。

但世界并非仅由素数构成。像 151515、212121 或 777777 这样的合数无处不在。我们能对它们说些什么?如果有人问 x2≡2(mod33)x^2 \equiv 2 \pmod{33}x2≡2(mod33) 是否有解,我们该如何回答?我们优雅的勒让德符号仅对素数模有定义。这正是我们发现之旅真正开始的地方。

一个带有转折的自然推广

在数论中,当面对一个合数时,一个历史悠久的策略是将其分解为其素数成分。这就像通过观察原子来理解分子一样。如果我们有一个奇合数 nnn,其素因子分解为 n=p1α1p2α2⋯pkαkn = p_1^{\alpha_1} p_2^{\alpha_2} \cdots p_k^{\alpha_k}n=p1α1​​p2α2​​⋯pkαk​​,那么通过组合每个素数因子的勒让德符号来构建一个新符号似乎是很自然的事情。

这引导我们得出一个定义。我们称之为​​雅可比符号​​,对于一个奇正整数 nnn 和任意整数 aaa,我们定义如下:

(an)=(ap1)α1(ap2)α2⋯(apk)αk\left(\frac{a}{n}\right) = \left(\frac{a}{p_1}\right)^{\alpha_1} \left(\frac{a}{p_2}\right)^{\alpha_2} \cdots \left(\frac{a}{p_k}\right)^{\alpha_k}(na​)=(p1​a​)α1​(p2​a​)α2​⋯(pk​a​)αk​

这是一个纯粹的形式化定义——我们做出的一个选择。我们实质上是在说:“让我们通过将从每个素数构建块的勒让德符号得到的答案相乘来创建一个新符号。” 一个好定义的第一个检验是它是否是一个真正的推广。如果我们取 nnn 为一个素数 ppp,它的分解就是 p1p^1p1。我们的定义给出 (ap)=(ap)1\left(\frac{a}{p}\right) = \left(\frac{a}{p}\right)^1(pa​)=(pa​)1,这正是勒让德符号。它通过了第一个检验:在其定义域重叠的地方,它与旧符号一致。

雅可比符号的巨大欺骗性

在这里我们必须非常、非常小心。勒让德符号 (ap)=1\left(\frac{a}{p}\right)=1(pa​)=1 有一个明确的含义:aaa 是模 ppp 的二次剩余。一个新手可能会轻率地得出结论:如果我们的新雅可比符号 (an)=1\left(\frac{a}{n}\right)=1(na​)=1,那么 aaa 必定是模 nnn 的二次剩余。这看起来完全合理。但这是完全、大错特错的。

这或许是关于雅可比符号最关键——也最微妙——的一点。让我们通过一个简单的例子来看看这种欺骗性是如何运作的。考虑合数 n=21n=21n=21,我们来检验 a=5a=5a=5。

212121 的素因子分解是 3×73 \times 73×7。因此,我们计算:

(521)=(53)(57)\left(\frac{5}{21}\right) = \left(\frac{5}{3}\right)\left(\frac{5}{7}\right)(215​)=(35​)(75​)

首先是 (53)\left(\frac{5}{3}\right)(35​)。由于 5≡2(mod3)5 \equiv 2 \pmod{3}5≡2(mod3),这与 (23)\left(\frac{2}{3}\right)(32​) 相同。模 333 的平方数是 12≡11^2 \equiv 112≡1 和 22≡4≡12^2 \equiv 4 \equiv 122≡4≡1。数字 222 不是平方数,所以 (23)=−1\left(\frac{2}{3}\right) = -1(32​)=−1。 接下来是 (57)\left(\frac{5}{7}\right)(75​)。模 777 的平方数是 12≡11^2 \equiv 112≡1、22≡42^2 \equiv 422≡4 和 32≡9≡23^2 \equiv 9 \equiv 232≡9≡2。数字 555 不在此列表中,所以 (57)=−1\left(\frac{5}{7}\right) = -1(75​)=−1。

现在,我们来计算雅可比符号:

(521)=(−1)×(−1)=1\left(\frac{5}{21}\right) = (-1) \times (-1) = 1(215​)=(−1)×(−1)=1

雅可比符号是 111!那么,555 是模 212121 的二次剩余吗?要使 x2≡5(mod21)x^2 \equiv 5 \pmod{21}x2≡5(mod21) 有解,根据​​中国剩余定理​​,我们需要 x2≡5(mod3)x^2 \equiv 5 \pmod{3}x2≡5(mod3) 和 x2≡5(mod7)x^2 \equiv 5 \pmod{7}x2≡5(mod7) 同时有解。但我们刚刚确定,这两个方程都没有解!因此,555 绝对不是模 212121 的二次剩余。

雅可比符号会“说谎”。两个“否”的答案(两个 −1-1−1)的乘积变成了一个“是”的答案(最终的 +1+1+1)。这是一个至关重要的教训。雅可比符号与二次剩余性之间的关系是单向的:

  • 如果 aaa ​​是​​模 nnn 的二次剩余,那么它必须是模 nnn 的每个素数因子的二次剩余。这意味着所有构成的勒让德符号都为 111,因此雅可比符号 (an)\left(\frac{a}{n}\right)(na​) ​​必须​​是 111。
  • 然而,如果 (an)=1\left(\frac{a}{n}\right)=1(na​)=1,我们不能断定 aaa 是二次剩余。它可能是,也可能是一个像我们朋友 555 模 212121 那样的“伪平方”。

但并非全无希望!如果雅可比符号给我们 −1-1−1 呢?要使乘积 ∏(api)αi\prod \left(\frac{a}{p_i}\right)^{\alpha_i}∏(pi​a​)αi​ 为 −1-1−1,至少有一个勒让德符号 (api)\left(\frac{a}{p_i}\right)(pi​a​)(其指数 αi\alpha_iαi​ 为奇数)必须为 −1-1−1。如果 aaa 哪怕不是模其一个素数因子的平方数,它也不可能是模 nnn 的平方数。因此,如果 (an)=−1\left(\frac{a}{n}\right)=-1(na​)=−1,我们就有一个明确、确凿的保证:aaa ​​不是​​模 nnn 的二次剩余。

揭示谎言:一个结构化的视角

要真正理解雅可比符号为何如此行事,我们需要审视其底层结构。让我们考虑与 n=pqn=pqn=pq 互素的数构成的群,记为 (Z/nZ)×(\mathbb{Z}/n\mathbb{Z})^\times(Z/nZ)×。中国剩余定理告诉我们,这个群在结构上与两个较小群 (Z/pZ)×(\mathbb{Z}/p\mathbb{Z})^\times(Z/pZ)× 和 (Z/qZ)×(\mathbb{Z}/q\mathbb{Z})^\times(Z/qZ)× 的组合是相同的。每个模 nnn 的数 aaa 实际上有两种“个性”:它模 ppp 的特性和模 qqq 的特性。

我们可以根据这些数在每种“个性”中的“平方性”,将所有与 nnn 互素的数分为四个不同的类别:

  1. ​​(QR, QR)​​: 是模 ppp 的二次剩余 (QR) 且是模 qqq 的二次剩余的数。

    • 对于这些数,(ap)=1\left(\frac{a}{p}\right)=1(pa​)=1 且 (aq)=1\left(\frac{a}{q}\right)=1(qa​)=1。
    • 这些是模 nnn 的​​真正二次剩余​​。
    • 它们的雅可比符号是 (an)=(1)(1)=1\left(\frac{a}{n}\right) = (1)(1)=1(na​)=(1)(1)=1。
  2. ​​(QR, QN)​​: 是模 ppp 的 QR 但模 qqq 的二次非剩余 (QN) 的数。

    • 对于这些数,(ap)=1\left(\frac{a}{p}\right)=1(pa​)=1 且 (aq)=−1\left(\frac{a}{q}\right)=-1(qa​)=−1。
    • 这些是模 nnn 的非剩余。
    • 它们的雅可比符号是 (an)=(1)(−1)=−1\left(\frac{a}{n}\right) = (1)(-1)=-1(na​)=(1)(−1)=−1。
  3. ​​(QN, QR)​​: 是模 ppp 的 QN 但模 qqq 的 QR 的数。

    • 对于这些数,(ap)=−1\left(\frac{a}{p}\right)=-1(pa​)=−1 且 (aq)=1\left(\frac{a}{q}\right)=1(qa​)=1。
    • 这些是模 nnn 的非剩余。
    • 它们的雅可比符号是 (an)=(−1)(1)=−1\left(\frac{a}{n}\right) = (-1)(1)=-1(na​)=(−1)(1)=−1。
  4. ​​(QN, QN)​​: 是模 ppp 的 QN 且是模 qqq 的 QN 的数。

    • 对于这些数,(ap)=−1\left(\frac{a}{p}\right)=-1(pa​)=−1 且 (aq)=−1\left(\frac{a}{q}\right)=-1(qa​)=−1。
    • 这些也是模 nnn 的非剩余。
    • 它们的雅可比符号是 (an)=(−1)(−1)=1\left(\frac{a}{n}\right) = (-1)(-1)=1(na​)=(−1)(−1)=1。

这个表格揭示了一切!雅可比符号为 111 的数来自两个阵营:真正的平方数(类型1)和伪装者(类型4),后者通常被称为​​欧拉伪平方​​或​​欧拉骗子数​​。一个显著的事实是,这四个类别的大小完全相同!每个类别都恰好包含四分之一的元素。这意味着,如果你随机选择一个数 aaa 并发现 (an)=1\left(\frac{a}{n}\right)=1(na​)=1,那么它有 50% 的概率是真正的平方数,50% 的概率是伪平方。

符号的救赎:一个处理未知数的工具

至此,您可能会想,雅可比符号是否只是一个数学上的奇观,一个有缺陷的工具。但它最大的感知弱点,实际上是它最大的优点。雅可比符号的真正力量在于​​我们可以在不分解分母 nnn 的情况下计算其值​​。

分解大数是计算中最困难的问题之一。但雅可比符号的性质使我们能够绕过这项艰巨的任务。它遵循一个优美的​​二次互反律​​,就像勒让德符号一样:对于互素的奇正整数 mmm 和 nnn,

(mn)(nm)=(−1)m−12n−12\left(\frac{m}{n}\right)\left(\frac{n}{m}\right) = (-1)^{\frac{m-1}{2}\frac{n-1}{2}}(nm​)(mn​)=(−1)2m−1​2n−1​

这条定律,连同其他简单的规则,使我们能够在一个类似于著名的欧几里得算法求最大公约数 的过程中“翻转和化简”符号。我们可以在几个快捷的步骤内计算出像 (187365)\left(\frac{187}{365}\right)(365187​) 这样的值,而完全不需要知道 187=11×17187 = 11 \times 17187=11×17 或 365=5×73365 = 5 \times 73365=5×73。这简直是计算魔法!

这种能力使雅可比符号成为现代​​素性检验​​的基石。对于一个素数 ppp,欧拉准则指出 a(p−1)/2≡(ap)(modp)a^{(p-1)/2} \equiv \left(\frac{a}{p}\right) \pmod pa(p−1)/2≡(pa​)(modp)。​​Solovay-Strassen 素性检验​​则反其道而行之。要检验一个大的奇数 nnn 是否为素数,我们随机选择一个数 aaa,并检查同余式 a(n−1)/2≡(an)(modn)a^{(n-1)/2} \equiv \left(\frac{a}{n}\right) \pmod na(n−1)/2≡(na​)(modn) 是否成立。我们可以在不分解 nnn 的情况下高效地计算右边。如果同余式不成立,我们就得到了一个不可否认的证据:nnn 必定是合数。如果它成立,nnn 可能是素数,也可能是对于这个 aaa 的选择而言的合数“骗子”。但令人惊奇的事实是,对于任何合数 nnn,至少有一半的可能 aaa 值会成为揭露其合数性质的见证。通过尝试几个随机的 aaa 值,我们就可以对 nnn 是素数还是合数获得极大的信心,而无需执行分解它的不可能任务。

惊人的统一:作为洗牌的数

故事并未就此结束。正如在物理学和数学中经常出现的情况一样,一个领域的概念会以完全出乎意料的方式出现在另一个领域。雅可比符号,诞生于关于平方数的问题,在置换和抽象代数的世界中还有一个秘密身份。

想象一下集合 {0,1,2,…,n−1}\{0, 1, 2, \dots, n-1\}{0,1,2,…,n−1}。现在选择一个与 nnn 互素的整数 aaa,用它来洗牌这个集合,即把每个元素都乘以 aaa(模 nnn)。映射 x↦ax(modn)x \mapsto ax \pmod nx↦ax(modn) 重新排列了我们的数集。每个这样的洗牌,或称置换,都有一个“奇偶性”——它要么是“偶”置换(符号 +1+1+1),要么是“奇”置换(符号 −1-1−1),这取决于其底层结构。

这个惊人的发现,被称为 ​​Frobenius-Zolotarev 定理​​,即该置换的符号恰好等于雅可比符号 (an)\left(\frac{a}{n}\right)(na​)。这意味着我们关于平方数的数论符号可以被几何地理解为乘法洗牌动作的内在奇偶性。这是整数算术与有限集对称性之间深刻的联系。正是在这些惊人统一的时刻,当不同的思想被揭示为同一枚硬币的两面时,我们得以一窥数学景观固有的美丽与互联性。

应用与跨学科联系

现在我们已经熟悉了雅可比符号的复杂机制,我们可能会忍不住问:“这一切到底是为了什么?”它仅仅是一件美丽的数论艺术品,一个供数学家消遣的奇物吗?你会很高兴地发现,答案是响亮的“不”。雅可比符号不是博物馆的展品;它是一个得力工具。它是一个光辉的例子,展示了数的最抽象、看似“无用”的性质如何能成为塑造我们现代世界的技术基石。它的主要舞台是素性检验这个宏大剧场,一个具有巨大实际重要性的问题。

伟大的素数搜寻

想象一下,你的任务是构建一个安全的通信系统,类似于保护我们网上银行和数字秘密的 RSA 加密。这个系统的基础需要两个巨大的素数,每个都有数百位长。你如何找到它们?你不能只是在书里查;素数有无穷多个,而且你需要的必须是独特和保密的。

显而易见的策略是随机挑选一个大的奇数,然后检查它是否是素数。但你如何检查?最直接的方法是试除法——用小于等于其平方根的所有素数去除它。对于一个比如有 512 位(约 155 个十进制数字)的数,它的平方根是一个 77 位的数。你需要检查的素数数量是天文数字。即使使用可以想象到的最快的计算机,这项任务所需的时间也比宇宙的年龄还要长。分解本质上是困难的,而讽刺的是,正是这种困难性使得像 RSA 这样的加密技术安全。但这也意味着我们不能用分解来寻找我们的素数。我们需要一个技巧。我们需要一种新的思维方式。

基于直觉的检验

这是一个绝妙的想法。我们从欧拉准则知道,如果一个数 ppp 是素数,那么对于任何不能被 ppp 整除的整数 aaa,一个特殊的关系成立:

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

所以,我们不通过分解这个不可能的任务来证明一个数 nnn 是素数,而是换一种方式。我们把 nnn 送上审判席。我们暂时假设它是素数,看看它的行为是否像一个素数。我们随机选择一个数 aaa(我们的“见证”),并检查它是否满足用雅可比符号推广的欧拉同余式:

a(n−1)/2≡(an)(modn)a^{(n-1)/2} \equiv \left(\frac{a}{n}\right) \pmod na(n−1)/2≡(na​)(modn)

这就是 ​​Solovay-Strassen 素性检验​​的核心。

如果数 nnn 未通过此检验——即同余式两边不相等——那么我们就抓住了它的谎言。它未能遵守每个素数都必须具备的性质。因此,我们可以绝对肯定地知道 nnn 是合数。我们使用的数 aaa 被称为 nnn 的合数性的​​Solovay-Strassen 见证​​。例如,对于合数 n=91n=91n=91,整数 a=3a=3a=3 是一个见证,因为 3(91−1)/2≡345≡27(mod91)3^{(91-1)/2} \equiv 3^{45} \equiv 27 \pmod{91}3(91−1)/2≡345≡27(mod91),但雅可比符号 (391)=−1(\frac{3}{91}) = -1(913​)=−1。由于 27≢−1(mod91)27 \not\equiv -1 \pmod{91}27≡−1(mod91),我们得到了证明:919191 是合数。

如果 nnn 通过了检验呢?这是否意味着它是素数?不一定。一些合数是聪明的骗子;它们对于某些基数 aaa 能通过检验。这些数被称为​​欧拉-雅可比伪素数​​。然而,可以证明,对于任何合数 nnn,最多只有一半的可能基数 aaa 会是“骗子”。所以,如果我们用一个随机基数检验 nnn 并通过了,我们可以说 nnn “很可能是素数”,置信度至少为 50%。如果我们用 10 个不同的随机基数检验它并且每次都通过,它为合数的概率小于 (12)10(\frac{1}{2})^{10}(21​)10,大约是千分之一。经过 100 次检验,出错的概率比宇宙射线翻转计算机内存中的一个比特导致错误的概率还要小。对于所有实际应用,尤其是在密码学中,这几乎等同于确定。

效率的引擎

这种概率性检验只有在每次检查都极快的情况下才有用。我们必须能够瞬间计算出同余式两边,a(n−1)/2(modn)a^{(n-1)/2} \pmod{n}a(n−1)/2(modn) 和 (an)(\frac{a}{n})(na​)。

左边是一个模幂运算,可以使用一种称为平方求幂法的方法快速完成。但右边的雅可比符号呢?它的定义,(an)=∏(api)ki(\frac{a}{n}) = \prod (\frac{a}{p_i})^{k_i}(na​)=∏(pi​a​)ki​,似乎要求我们分解 nnn——这正是我们试图避免的!

这正是雅可比符号真正天才之处。我们研究过的性质集合——二次互反律及其补充定律——提供了一种计算 (an)(\frac{a}{n})(na​) 的方法,该方法速度惊人,并且完全绕过了分解的需要。这个过程涉及使用互反律反复翻转符号并提出 2 的幂次,其结构与用于求最大公约数的欧几里得算法相同。两者都快如闪电。

为了理解这一点,请考虑替代方案。一个“朴素”的计算 (an)(\frac{a}{n})(na​) 的算法首先需要分解 nnn。对于一个 512 位的数,这是一个指数时间的任务,记为 O(2k/2)O(2^{k/2})O(2k/2),其中 k=512k=512k=512。然而,基于互反律的算法以多项式时间运行,大约为 O(k2)O(k^2)O(k2)。这个差异不仅仅是巨大;它是“不可能”与“瞬间完成”之间的区别。我们一个练习中的假设计算表明,使用朴素方法可能比高效方法慢 2.1×10702.1 \times 10^{70}2.1×1070 倍。一个是理论上的奇观;另一个是实用的工具。

更强的测谎仪

Solovay-Strassen 检验相比其前身——费马素性检验(检验 an−1≡1(modn)a^{n-1} \equiv 1 \pmod nan−1≡1(modn) 是否成立)——是一个巨大的改进。任何通过 Solovay-Strassen 检验的数都会自动通过费马检验,但反之则不然。Solovay-Strassen 条件是严格更强的。

一个经典的例子是数 n=341=11×31n=341 = 11 \times 31n=341=11×31。对于基数 a=2a=2a=2,我们发现 2340≡1(mod341)2^{340} \equiv 1 \pmod{341}2340≡1(mod341),因此 341 是一个相对于基数 2 的“费马伪素数”;它成功地欺骗了费马检验。然而,当我们应用更严格的 Solovay-Strassen 检验时,我们发现 2(341−1)/2≡2170≡1(mod341)2^{(341-1)/2} \equiv 2^{170} \equiv 1 \pmod{341}2(341−1)/2≡2170≡1(mod341),但雅可比符号 (2341)=−1(\frac{2}{341}) = -1(3412​)=−1。由于 1≢−1(mod341)1 \not\equiv -1 \pmod{341}1≡−1(mod341),谎言被揭穿,341 被正确识别为合数。

通往计算机科学的桥梁

这一影响超出了寻找素数的范畴。它在数论和理论计算机科学之间建立了深刻的联系。考虑所有合数的集合,我们可以称之为 COMPOSITES 语言。在计算复杂性理论中,如果一个“是”的答案(即“是,这个数在该集合中”)可以在给定一个简短证明或“证书”的情况下快速验证,那么该语言就属于 ​​NP​​ 类。

一个简短、可验证的证明一个数是合数的是什么?一个因子,当然。但 Solovay-Strassen 检验给了我们另一种。一个见证 aaa 就是合数性的一个证书!如果有人声称 n=91n=91n=91 是合数,他们不必给你它的因子(7 和 13)。他们可以简单地递给你数字 a=3a=3a=3 然后说,“检查这个。” 然后你可以执行两个快速计算——模幂运算和雅可比符号——然后看到它们不匹配。这证明了 nnn 是合数,而且验证只花了多项式时间。这表明 COMPOSITES 属于 ​​NP​​ 类。

不断演进的图景

科学的故事是不断进步的。虽然 Solovay-Strassen 检验是雅可比符号的一个优美应用,也是一个重要的历史步骤,但它在现代密码学库中已在很大程度上被 ​​Miller-Rabin 检验​​所取代。Miller-Rabin 检验基于素数的另一个不同性质(不存在 1 的非平凡平方根),并提供更好的概率保证:对于任何合数 nnn,可以证明最多只有 14\frac{1}{4}41​ 的基数是骗子,而 Solovay-Strassen 的比例是 12\frac{1}{2}21​。

尽管如此,Solovay-Strassen 检验仍然是一个深刻的教学工具。它可以说是二次互反律——经典数论的一颗明珠——最优雅和最直接的应用。它以无与伦比的清晰度说明了抽象的数学结构如何被用来解决关键的、现实世界的计算问题。从欧拉对二次剩余的思考到我们电脑屏幕上的安全交易,这是一条漫长而曲折的道路,而在这段旅程的关键部分,雅可比符号是我们不可或缺的向导。