MathLabs

算術と数論

平方剰余

与えられた整数を法として平方数になる数について、平方剰余の相互法則を通じて研究する。

直観直感:どの余りが平方数になるか?

奇素数 pp を固定し、剰余 0,1,…,p−10,1,\dots,p-1 を pp を法としてすべて平方する。x2≡(p−x)2(modp)x^2 \equiv (p-x)^2 \pmod p なので平方は対になって繰り返し現れ、実際に現れるのは非零剰余のおよそ半分だけである。gcd⁡(a,p)=1\gcd(a,p)=1 を満たす数 aa が、合同式 x2≡a(modp)x^2 \equiv a \pmod{p} に解を持つとき pp を法とする「平方剰余」と呼び、そうでなければ「平方非剰余」と呼ぶ。p=7p=7 の場合:1,2,3,4,5,61,2,3,4,5,6 を平方すると 1,4,2,2,4,11,4,2,2,4,1 となるので、77 を法とする平方剰余はちょうど {1,2,4}\{1,2,4\} であり、非剰余は {3,5,6}\{3,5,6\} である。

小さな素数を法とする平方写像の有向グラフ。平方剰余の頂点が強調されている。
法 m=11m = 11 の剰余弦:1010 個の非ゼロ剰余のうち、ちょうど半分(1,3,4,5,91, 3, 4, 5, 9)が平方剰余である。

大学定義とルジャンドル記号

定義: ルジャンドル記号

奇素数 pp と p∤ap \nmid a を満たす整数 aa に対し、ルジャンドル記号 (ap)\left(\dfrac{a}{p}\right) は、aa が pp を法とする平方剰余であれば +1+1、平方非剰余であれば −1-1 と定める。慣習として p∣ap \mid a のとき (ap)=0\left(\dfrac{a}{p}\right)=0 とする。ルジャンドル記号は分子について完全乗法的である:(abp)=(ap)(bp)\left(\frac{ab}{p}\right) = \left(\frac{a}{p}\right)\left(\frac{b}{p}\right)。

(ap)≡ap−12(modp)(Euler’s criterion)\left(\dfrac{a}{p}\right) \equiv a^{\frac{p-1}{2}} \pmod{p}\qquad\text{(Euler’s criterion)}

オイラーの規準を使えば、因数分解をせずに (ap)\left(\dfrac{a}{p}\right) を「計算」できる:aa を pp を法として p−12\frac{p-1}{2} 乗し、±1\pm 1 を読み取ればよい。これはただちに値 (−1p)=(−1)p−12\left(\dfrac{-1}{p}\right) = (-1)^{\frac{p-1}{2}} も与え、−1-1 が平方剰余となるのはちょうど p≡1(mod4)p \equiv 1 \pmod 4 のときであることが分かる。

(pq)(qp)=(−1)p−12⋅q−12(quadratic reciprocity)\left(\dfrac{p}{q}\right)\left(\dfrac{q}{p}\right) = (-1)^{\frac{p-1}{2}\cdot\frac{q-1}{2}}\qquad\text{(quadratic reciprocity)}
pp の剰余類による (−1p)\left(\frac{-1}{p}\right) と (2p)\left(\frac{2}{p}\right) の値
pp の類(−1p)\left(\frac{-1}{p}\right)(2p)\left(\frac{2}{p}\right)例
p≡1(mod4)p \equiv 1 \pmod 4+1+1p mod 8p \bmod 8 に依存p=13p=13
p≡3(mod4)p \equiv 3 \pmod 4−1-1p mod 8p \bmod 8 に依存p=7p=7
p≡1,7(mod8)p \equiv 1, 7 \pmod 8上の行を参照+1+1p=7p=7
p≡3,5(mod8)p \equiv 3, 5 \pmod 8上の行を参照−1-1p=13p=13

大学定理と証明

奇素数 pp と gcd⁡(a,p)=1\gcd(a,p)=1 に対し (ap)≡ap−12(modp)\left(\dfrac{a}{p}\right) \equiv a^{\frac{p-1}{2}} \pmod{p} が成り立つ。すなわち、aa が pp を法とする平方剰余であることと a(p−1)/2≡1(modp)a^{(p-1)/2} \equiv 1 \pmod p は同値である。

なぜ正しいのか?

「ある xx の平方が aa になるか」という存在問題を、単一のべき乗のmod計算に置き換える。これによりルジャンドル記号が計算可能かつ乗法的になる。

証明

(Z/pZ)∗(\mathbb{Z}/p\mathbb{Z})^{*} は位数 p−1p-1 の巡回群である(素数を法とする標準的な事実)ので、原始根 gg を一つ固定し a≡gk(modp)a \equiv g^k \pmod p(0≤k≤p−20 \le k \le p-2)と書く。pp を法とする平方剰余はちょうど gg の偶数乗である:a=g2ma=g^{2m} なら x=gmx=g^m が x2≡ax^2\equiv a を満たし、逆にすべての平方 x2=(gj)2=g2jx^2=(g^j)^2=g^{2j} は偶数乗である。したがって aa が平方剰余であることは kk が偶数であることと同値である。

次に a(p−1)/2≡gk(p−1)/2(modp)a^{(p-1)/2} \equiv g^{k(p-1)/2} \pmod p を計算する。kk が偶数のとき k=2mk=2m と書けば、フェルマーの小定理より gk(p−1)/2=gm(p−1)=(gp−1)m≡1m=1(modp)g^{k(p-1)/2}=g^{m(p-1)}=(g^{p-1})^m\equiv 1^m=1\pmod p となり、剰余の場合と一致する。

kk が奇数のとき、gk(p−1)/2g^{k(p-1)/2} は gk(p−1)=(gp−1)k≡1(modp)g^{k(p-1)}=(g^{p-1})^k\equiv 1\pmod p の平方根なので a(p−1)/2≡±1a^{(p-1)/2}\equiv \pm 1 である。これが 11 になることはない:もしそうなら gg の位数が k(p−1)/2k(p-1)/2 を割り切る必要があるが、ord⁡(g)=p−1\operatorname{ord}(g)=p-1 であり kk が奇数だと (p−1)/2(p-1)/2 自体が倍数でない限り k(p−1)/2k(p-1)/2 は p−1p-1 の倍数にならず、gg が正確に位数 p−1p-1 の原始根であることに矛盾する。よって kk が奇数のときちょうど a(p−1)/2≡−1(modp)a^{(p-1)/2}\equiv -1\pmod p、すなわち aa が非剰余のときちょうどこれが成り立つ。

両方の場合をまとめると:a(p−1)/2≡1(modp)a^{(p-1)/2}\equiv 1\pmod p であることは aa が平方剰余であることと同値であり、そうでなければ ≡−1\equiv -1 となる。これはまさに (ap)≡ap−12(modp)\left(\dfrac{a}{p}\right) \equiv a^{\frac{p-1}{2}} \pmod{p} の主張である。

相異なる奇素数 pp と qq に対し (pq)(qp)=(−1)p−12⋅q−12\left(\dfrac{p}{q}\right)\left(\dfrac{q}{p}\right) = (-1)^{\frac{p-1}{2}\cdot\frac{q-1}{2}} が成り立つ。

なぜ正しいのか?

pp が qq を法として平方数かどうかと、qq が pp を法として平方数かどうかは、p,qp,q を 44 で割った余りだけに依存する符号を除いて「同じ」問いであることを述べている——難しく見える二変数の問題を一行の規則に変える。

証明

踏み台としてガウスの補題を用いる:奇素数 pp と gcd⁡(a,p)=1\gcd(a,p)=1 に対し、a,2a,…,p−12aa, 2a, \dots, \frac{p-1}{2}a の pp を法とする最小正剰余を見て、そのうち p/2p/2 を超えるものの個数を μ\mu とする。ガウスの補題は (ap)=(−1)μ\left(\dfrac{a}{p}\right)=(-1)^{\mu} を主張する。これは「大きい」剰余 rr を p−r≤p/2p-r\le p/2 と対にし、p−12\frac{p-1}{2} 個の数を二通りの方法で掛け合わせたときの符号を追うことで従う。

アイゼンシュタインの精密化は μ\mu を格子点の個数として表す:a=qa=q が奇数のとき、⌊kq/p⌋\lfloor kq/p\rfloor(kqkq 未満の pp の倍数の個数)と kq mod pkq \bmod p が p/2p/2 からどれだけ離れているかを比較することで μ≡∑k=1(p−1)/2⌊kqp⌋(mod2)\mu \equiv \sum_{k=1}^{(p-1)/2} \left\lfloor \frac{kq}{p} \right\rfloor \pmod 2 が示される。同じ計数論法を対称的に適用すると (qp)=(−1)S(q,p)\left(\frac{q}{p}\right)=(-1)^{S(q,p)} と (pq)=(−1)S(p,q)\left(\frac{p}{q}\right)=(-1)^{S(p,q)} が得られる。ここで S(q,p)=∑k=1(p−1)/2⌊kqp⌋S(q,p)=\sum_{k=1}^{(p-1)/2}\left\lfloor \frac{kq}{p}\right\rfloor、S(p,q)=∑k=1(q−1)/2⌊kpq⌋S(p,q)=\sum_{k=1}^{(q-1)/2}\left\lfloor \frac{kp}{q}\right\rfloor である。

幾何学的には、S(q,p)+S(p,q)S(q,p)+S(p,q) は 1≤x≤p−121\le x\le \frac{p-1}{2}、1≤y≤q−121\le y\le \frac{q-1}{2} を満たす格子点 (x,y)(x,y) のうち、直線 qx=pyqx=py の厳密に下側にあるもの(S(q,p)S(q,p) 個)と厳密に上側にあるもの(p,qp,q の対称的な役割により S(p,q)S(p,q) 個)の合計を数える。gcd⁡(p,q)=1\gcd(p,q)=1 かつ x<px<p より直線上に格子点はちょうど存在しないため、この二つの個数を合わせると p−12⋅q−12\frac{p-1}{2}\cdot\frac{q-1}{2} 個の格子点をすべて尽くす。

したがって S(q,p)+S(p,q)=p−12⋅q−12S(q,p)+S(p,q) = \frac{p-1}{2}\cdot\frac{q-1}{2} であり、二つのルジャンドル記号の式を掛け合わせると (pq)(qp)=(−1)S(p,q)+S(q,p)=(−1)p−12⋅q−12\left(\frac{p}{q}\right)\left(\frac{q}{p}\right)=(-1)^{S(p,q)+S(q,p)}=(-1)^{\frac{p-1}{2}\cdot\frac{q-1}{2}} となり、これはまさに (pq)(qp)=(−1)p−12⋅q−12\left(\dfrac{p}{q}\right)\left(\dfrac{q}{p}\right) = (-1)^{\frac{p-1}{2}\cdot\frac{q-1}{2}} である。

大学実世界での応用と具体例

平方剰余は単なる数論上の興味深い話題にとどまらない。公開鍵暗号方式(Goldwasser–Micali)、広く使われる疑似乱数ビット生成器(Blum–Blum–Shub)、そして自己相関のピークが鋭いスペクトラム拡散レーダーやGPSに似た測距符号を設計するためのルジャンドル数列の基礎になっている。

例: 相互法則で平方剰余を判定する

1010 は 1313 を法とする平方剰余か?

解答

10=2⋅510=2\cdot 5 と書けるので、乗法性より (1013)=(213)(513)\left(\frac{10}{13}\right)=\left(\frac{2}{13}\right)\left(\frac{5}{13}\right) である。

(213)\left(\frac{2}{13}\right) について:13≡5(mod8)13 \equiv 5 \pmod 8 なので、22 に関する補充公式より (213)=−1\left(\frac{2}{13}\right)=-1 である。

(513)\left(\frac{5}{13}\right) について:5≡1(mod4)5\equiv 1\pmod 4 なので、相互法則より (513)(135)=+1\left(\frac{5}{13}\right)\left(\frac{13}{5}\right)=+1、よって (513)=(135)=(35)\left(\frac{5}{13}\right)=\left(\frac{13}{5}\right)=\left(\frac{3}{5}\right)(13≡3(mod5)13\equiv 3\pmod 5 より)。55 を法とする平方は 1,41,4 であり、33 はその中にないので (35)=−1\left(\frac{3}{5}\right)=-1、したがって (513)=−1\left(\frac{5}{13}\right)=-1 である。

掛け合わせると (1013)=(−1)(−1)=+1\left(\frac{10}{13}\right)=(-1)(-1)=+1 となり、1010 は 1313 を法とする平方剰余である——実際 62=36≡10(mod13)6^2=36\equiv 10\pmod{13} である。

例: 測距用スペクトラム拡散符号のためのルジャンドル数列

GPSのような測距システムには、シフトゼロで鋭い自己相関ピークを持ち、それ以外ではほぼゼロになる二値符号が必要である。素数 1111 を法とするルジャンドル記号から長さ 1111 のルジャンドル数列を作り、その自己相関を定性的に検討せよ。

解答

1111 を法とする平方剰余は {1,3,4,5,9}\{1,3,4,5,9\}(1,…,51,\dots,5 の平方)なので、ii が剰余なら si=+1s_i=+1、ii が非剰余 {2,6,7,8,10}\{2,6,7,8,10\} なら si=−1s_i=-1、慣習で s0=−1s_0=-1 と定めると、i=0,…,10i=0,\dots,10 に対する ±1\pm 1 数列 s=(−1,+1,−1,+1,+1,+1,−1,−1,−1,+1,−1)s=(-1,+1,-1,+1,+1,+1,-1,-1,-1,+1,-1) が得られる。

重要な構造的事実は、シフト k≢0k\not\equiv 0 に対し、相関 ∑isisi+k\sum_i s_i s_{i+k} がルジャンドル記号の乗法性により ∑x(x(x+k)11)\sum_x \left(\frac{x(x+k)}{11}\right) に密接に関連する和に帰着し、古典的な指標和評価により、奇素数を法とするすべての非零シフト kk でこの和が −1-1 になることが分かる——これは k=0k=0 でのピーク値 1010 よりはるかに小さい。

この二値自己相関(すべての非零シフトで一定のオフピーク値を取る)こそが、ルジャンドル数列を受信機の同期に適したものにしている性質である:受信信号を既知数列のあらゆる巡回シフトと相関させると、真の位置合わせのときだけ明確に大きなスパイクが生じる。これがGPS受信機が衛星符号のタイミングにロックする仕組みである。

x2≡a(modp)x^2\equiv a\pmod p が解を持たないとき (ap)\left(\frac{a}{p}\right) を何と呼ぶか?

オイラーの規準によれば (ap)\left(\frac{a}{p}\right) は pp を法として aa の何乗と合同か?

奇素数 pp を 44 で割った余りがどのクラスのとき −1-1 は平方剰余になるか?

合成数を法とする二次剰余性の判定困難性に直接基づく暗号の構成要素はどれか?

参考文献

  1. Wikipedia contributors (2024). Quadratic reciprocity
  2. Kenneth Ireland, Michael Rosen (1990). A Classical Introduction to Modern Number Theory