平方剰余

数論において、 を法として平方数と合同である整数 を、 を法とする平方剰余（へいほうじょうよ、）と呼ぶ。つまり、 が平方剰余であるとは、 に対し以下の条件を満たす整数 が存在することを意味する：
平方剰余でない数を平方非剰余（へいほうひじょうよ、）と呼ぶ。
元々、合同算術という数論の一分野からの抽象的な数学的概念であった平方剰余は、現在様々な分野で応用されており、その応用先は音響工学から暗号化、大きな数の素因数分解にまで至る。
歴史、規約、および基本的な事実.
フェルマー、オイラー、ラグランジュ、ルジャンドルをはじめとする17〜18世紀の数論者たちはそれぞれ平方剰余についての定理を確立し、予想を打ち立てたが、最初の体系的な扱いはガウスの"Disquisitiones Arithmeticae"のIV節 (1801) である。Article 95では、「平方剰余」と「平方非剰余」という用語を導入し、文脈から明らかであれば、形容詞「平方」を削除できると述べている。
与えられた に対して、 を法とする平方剰余のリストは単に を二乗するだけで得られる。 であるので、 を法とする平方数のリストは に対して対称であり、リストアップは まで続ければ十分である。これは下の表で確認できる。
つまり、 を法とする平方剰余の数は、（ が偶数）または （ が奇数）を超えることはない。
2つの剰余の積は常に剰余となる。
素数の法.
2 を法とすると、すべての整数が平方剰余となる。
オイラーの規準 (Euler's criterion) によると、奇素数 "p" を法とすると、 個の剰余（0を含む）と 個の非剰余が存在する。この場合、慣例として0を特殊なケースと見なし、体 Z/"p"Z の内に議論を限定する。（言い換えると、"p" を法とするゼロを除くすべての合同類は乗法逆元を持つ。これは合成数の法には当てはまらない。）
この規約に従うと、剰余の乗法逆元は剰余、非剰余の乗法逆元は非剰余であり、また、奇数の素数を法とすると剰余と非剰余が同数存在する。
素数を法とすると、2つの非剰余の積は剰余であり、非剰余と（非ゼロ）剰余の積は非剰余である。
平方剰余の相互法則への最初の補足は、"p" ≡ 1 (mod 4) ならば −1 は "p" を法とする平方剰余であり、"p" ≡ 3 (mod 4) ならば −1 は "p" を法とする非剰余である。これは以下のことを意味する。
"p" ≡ 1 (mod 4) ならば "p" を法とする負の剰余（絶対値が同じで符号を反転したもの）は剰余であり、負の非剰余は非剰余である。
"p" ≡ 3 (mod 4) ならば "p" を法とする負の剰余は非剰余であり、負の非剰余は剰余である。
素数のべき乗の法.
すべての奇数の平方数は ≡ 1 (mod 8) であり、それ故に ≡ 1 (mod 4) でもある。"a" が奇数で、"m" = 8, 16 またはそれよりも大きな 2 のべき乗の場合、"a" は "m" を法とする剰余であり、これは "a" ≡ 1 (mod 8) と同値である。
たとえば、mod 32 の奇数の平方数は
そして偶数のものは
したがって、0 以外の数が 8, 16, … を法として剰余となるのは、その数が 4(8"n" + 1) の形で表現できる場合でかつその場合に限る。
奇素数 "p" と互いに素な数 "a" が、"p" の任意のべき乗を法として剰余であるのは、"p" を法として剰余である場合でかつその場合に限る。
法が "p" の場合、
ただし、2のべき乗と奇素数のべき乗では、ルールが異なることに注意せよ。
奇素数のべき乗 "n" = "p" を法として、"p" と互いに素な剰余と非剰余の積は、"p" を法としたときと同じルールに従う。"p" は非剰余であり、一般に全ての剰余と非剰余に対して、その積の中の "p" のべき乗が "n" 以上ならば積がゼロとなることを除けば、同じルールに従う。
例えば 8 を法とすると、非剰余 3 と 5 の積は非剰余 7 であり、3, 5, 7 を互いに入れ替えた場合も同様である。実際、非剰余と1の乗法群はクラインの四元群を成す。
素数のべき乗以外の合成数の法.
この場合の基本的な事実は
合成数を法として、2つの剰余の積は剰余である。剰余と非剰余の積は、剰余、非剰余、またはゼロの場合がある。
たとえば、mod 6 の表から
剰余 3 と非剰余 5 の積は剰余 3 であるが、剰余 4と非剰余 2 の積は非剰余 2 である。
また、2つの非剰余の積は、剰余、非剰余、またはゼロのいずれかになる。
たとえば、mod 15 の表から
非剰余2と非剰余8の積は剰余1だが、非剰余2と非剰余7の積は非剰余14である。
この現象は、抽象代数の言葉でよく説明できる。法と互いに素な合同類は、環 Z/"n"Z の単元群と呼ばれる乗法に関する群であり、平方数はその部分群となる。異なる非剰余は異なる剰余類に属している可能性があり、それらの積がどの類に属するかを予測する単純なルールは存在しない。素数を法として、平方数の部分群と単一の剰余類が存在するのみである。
たとえば15を法とする非剰余3と5の積、または非剰余5と剰余9の積、または2つの剰余9と10の積がすべてゼロであるという事実は、完全な環 Z/"n"Z の中にあることから生じ、この環は合成数 "n" の 零因子を持つ。
このため、一部の著者は、平方剰余 "a" は平方数であるだけでなく、法 "n" と互いに素でなければならないという定義を追加している。（"a" が "n" と互いに素となるのは、"a" が "n" と互いに素である場合でかつその場合に限る。）
これで話は片付くが、本記事では剰余が法と互いに素であるという定義は用いない。
記法.
ガウスは、 と を使用して、それぞれ剰余性と非剰余性を表現した。
この表記はコンパクトで、いくつかの目的には便利であるが、より有用な表記は二次指標とも呼ばれるルジャンドル記号であり、すべての整数 "a" および正の奇素数 に対して次のように定義される。
数値 ≡ 0 (mod ) を特別に扱う理由は2つある。1つは、これまで見てきたように、多くの公式や定理を簡単に説明できるためである。もう1つは、二次指標が乗算の下で、から複素数への準同型であるためである。formula_3 とすると、その定義域をすべての整数の乗法半群に拡張することができる。
ガウスの表記法よりも優れている点の1つは、ルジャンドル記号が数式として使用できる関数であることである。また、、4次、および高次の剰余に簡単に一般化できる。
ルジャンドル記号を が合成数である場合に一般化したものとしてヤコビ記号があるが、その特性はそれほど単純ではない。 が合成数で、ヤコビ記号が formula_4 ならば であり、 ならば formula_5 である。しかし、formula_5 ならば、 と のいずれなのかは判断できない。例えば、formula_7 と formula_8 に対して、 と である。 が素数の場合、ヤコビ記号とルジャンドル記号は同一のものとなる。
平方剰余の分布.
平方剰余は "n" を法としてランダムなパターンが見られ、これは音響や暗号などの応用で利用されているが、一方でその分布は規則性も示す。
算術級数の素数に関するディリクレの定理、平方剰余の定理、および中国の剰余定理 (CRT) を使うと、任意の "M" > 0 に対して、1, 2, …, "M" が全て素数 "p" を法として剰余であることが簡単に分かる。
例えば、"p" ≡ 1 (mod 8), (mod 12), (mod 5), (mod 28) ならば、平方剰余の定理から 2, 3, 5, 7 は素数 "p" を法として剰余であり、故に1〜10のすべての数字が剰余になる。CRTはこれが "p" ≡1 (mod 840) の場合と同じであり、ディリクレの定理はこの形式の素数の無限に存在すると主張する。これを満たす素数 "p" は 2521 が最小であり、実際に 1 ≡ 1, 1046 ≡ 2, 123 ≡ 3, 2 ≡ 4, 643 ≡ 5, 87 ≡ 6, 668 ≡ 7, 429 ≡ 8, 3 ≡ 9, 529 ≡ 10 (mod 2521) となる。
ディリクレの公式.
こうした規則性の研究は、二進二次形式の類数の公式に関する（1830年代の）ディリクレの研究に由来する。"q" を素数、"s" を複素変数とし、ディリクレのL関数を次のように定義する。
ディリクレは、"q" ≡ 3 (mod 3) のとき、
となることを示した。したがってこの場合（素数 "q" ≡ 3 (mod 4)）、平方剰余の和から 1, 2, …, "q" − 1 の範囲における非剰余の和を引いたものは負の数になる。
たとえば、11を法とすると
実際、"q" > 3の場合、差は常に "q" の奇数倍になる。対照的に、平方剰余の和から 1, 2, …, "q" − 1 の範囲における非剰余の和を引いたものはゼロであり、両方の和が formula_11 と等しいことを意味する。
ディリクレは素数 "q" ≡ 3 (mod 4) の場合も証明した。
これは、1, 2, …, の範囲で、平方剰余が非剰余よりも多いことを意味する。
たとえば11を法とすると、6未満の剰余は4つ (1, 3, 4, 5) だが、非剰余は1つだけ (2) である。
これらの2つの定理に関する興味深い点は、これまでに知られているすべての証明が解析に基づくということである。どちらの定理についても、単純な証明あるいは直接の証明は発表されていない。
平方剰余の相互法則.
"p" と "q" が奇素数の場合、
つまり、
である。formula_14 はルジャンドル記号である。
したがって、"a" と "a" を割り切らない奇素数 "p" に対して、以下のようになる。
剰余と非剰余のペア.
素数 "p" を法として、 かつ 、または と 等となるペア の数はほぼ同じである。より正確には、"p" を奇素数として、"i", "j" = 0, 1 によって以下の集合を定義し
以下のように "α" を定義する。
つまり、以下のようになる。
すると、"p" ≡ 1 (mod4) の場合、
であり、"p" ≡ 3 (mod4) の場合、
である。
例：（太字は剰余）
mod 17
mod 19
ガウス (1828)は、"p" ≡ 1 (mod 4) ならば "x" ≡ 2 (mod "p") という命題が "p" = "a" + 64 "b" と同値であることを証明し、この種の数え上げを導入した。
ポリア＝ヴィノグラドフの不等式 (Pólya-;Vinogradov inequality).
連続値 "a" に対する formula_19 の値はコイントスのような確率変数で擬似的に表現できる。具体的には、ポリアと (Vinogradov)が、1918年に（独立して）"q" をとする非主(non-principal)ディリクレ指標 χ("n") と任意の整数 "M", "N" に対して、ランダウの記号を用いて以下のように表現できることを証明した。
ここで
とすると、長さ "N" の任意の区間における "q" を法とする平方剰余の数が以下のように表せる。
以下の式の証明は容易である。
実際、
となる。
(Montgomery)と(Vaughan)は1977年にこれを改良し、一般化されたリーマン予想が真である場合、以下の式が成り立つことを示した。
この結果から本質的に改良されたわけではないが、シューアは1918年に
を示し、(Paley)は1932年に
を満たす "d" > 0 が無限に存在することを示した。
最小二次非剰余.
"p" を法とする最小平方剰余は明らかに1である。最小二次非剰余の大きさ "n"("p") の問題は難しいが、常に素数である。上記ポリア＝ヴィノグラードフの不等式は formula_28 を与える。無条件での最良推定値は、任意の に対して "n"("p") ≪ "p" というものであり、 (character sum) に関するバージェス (Burgess) の推定から得られた。一般化されたリーマン予想の仮定下では、アンケニー (Ankeny) が "n"("p") ≪ (log "p") を得た。リニック (Linnik) は、"n"("p") > "X" となる "X" より小さい "p" の数は、ε に依存する定数によって制限されることを示した。
奇素数 "p" を法とする最小二次非剰余は次の通り。
二次超過.
"p" を奇素数とする。二次超過 (Quadratic excess) "E"("p") は、範囲 (0, ) の平方剰余の数から 範囲 (, "p") の平方剰余の数を引いたものである（）。"p" ≡ 1 mod 4 となる "p" では、−1 が平方剰余であり、剰余は に対して対称であるので過剰はゼロである。"p" ≡ 3 mod 4 となる "p" では、超過 "E" は常に正である。
平方根を見つけることの複雑さ.
つまり、数値 "a" と法 "n" が与えられたときに、以下のタスクがどれほど難しいか、ということである。
ここでは、法が素数と合成数の場合で重要な違いが明らかになる。素数 "p" を法として、平方剰余 "a" は 1 + ("a"|"p") 個の根を持つ（つまり、"a" N "p" の場合は根なし、"a" ≡ 0 (mod "p") の場合は1個、"a" R "p" で ("a", "p") = 1 の場合は2個。）
一般に、もし法が合成数 "n" であれば、"n" を異なる素数のべき乗の積として表現したときに、その最初のものを法として根の数が "n" 個、次のものを法として根の数が "n" 個…と続けていくと、"n" を法として "n""n"… 個の根が存在する。
素数のべき乗を法とする解を組み合わせて "n" を法とする解を作る理論的な方法は、中国の剰余定理と呼ばれ、効率的なアルゴリズムで実装できる。
例えば：
素数または素数べき乗の法.
まず、法 "n" が素数である場合、ルジャンドル記号 formula_29 はユークリッドの互除法のバリエーションまたはオイラーの規準を使用して、すばやく計算できる。-1の場合、解は存在しない。
次に formula_30 と仮定すると、"n" ≡ 3 (mod 4) の場合 ラグランジュは、解が以下の式によって与えられることを発見した。
そしてルジャンドルは、"n" ≡ 5 (mod 8) の場合の同様の解を発見した。
しかし、素数 "n" ≡ 1 (mod 8) に対しては、既知の公式が存在しない。（1891年）とは、それぞれすべての素数の法に使える効率的なアルゴリズムを発見した。どちらのアルゴリズムも "n" を法とする平方非剰余を見つける必要があり、そのための効率的な既知の決定論的アルゴリズムは存在しない。しかし、1 から "n" の間の数の半分は非剰余であるため、非剰余が見つかるまで、ランダムに数 "x" を選んでルジャンドル記号 formula_33 を計算すると、すぐに非剰余が求まる。このアルゴリズムをわずかに変形したものがである。
法 "n" が素数のべき乗 "n" = "p" である場合、解は "p" を法として見つかるので、ヘンゼルの補題またはガウスのアルゴリズムを使用して "n" を法とする解に「持ち上げて」得られる。
合成数の法.
法 "n" が素数のべき乗に素因数分解される場合、解は上記の通りである。
formula_34 で(Kronecker symbol)がformula_35 であれば、解は存在しない。"n" ≡ 2 (mod 4) で formula_36 である場合も、解は存在しない。「 formula_34 かつ formula_38」または「 "n" ≡ 2 (mod 4) かつ formula_39」 ならば、解が存在する場合としない場合がある。
"n" の完全な素因数分解が不明な場合、「formula_38 かつ formula_34」または「"n" ≡ 2 (mod 4) かつ formula_39」ならば、問題は "n" の素因数分解と等価であることが分かっている（つまり、どちらかの問題の効率的に解ければ、もう一方を効率的に解くことができる）。
上記の議論は、"n" の素因数を知ることでどのくらい根を効率的に見つけることができるかを示している。合成数を法とする平方根を見つけるための効率的なアルゴリズムがあったとしよう。 (congruence of squares) の記事では、 である二つの数 "x", "y" の求め方について説明しており、 であれば "n" は十分効率的に素因数分解される。ここで乱数を生成し、"n" を法として乱数を二乗し、効率的な平方根アルゴリズムで根を見つける。これを、最初に二乗した値（または "n" を法とする負の数）と等しくない数を返すまで繰り返した後に、平方合同で説明したアルゴリズムを用いる。素因数分解アルゴリズムの効率性は、この根探索器の特性そのものに依存するが（たとえば、すべての根を返すか？最小の根だけを返すか？ランダムな根を返すか？）、これは効率的である。
"n" を法として "a" が平方剰余であるか非剰余であるか（ または と表される）の判定は、ルジャンドル記号を計算することで、素数 "n" に対して効率的に行うことができる。ただし、"n" が合成数の場合は (quadratic residuosity problem) となり、これは素因数分解ほどかは分かっていないが、かなり難しいと考えられている。
一方、ある上限値 "c" より小さい "x" の解があるかどうかを判定する場合、この問題はNP完全である。ただし、これは "c" をパラメータとする問題である。
一般に、合成数 "n" を法として "a" が平方剰余であるかどうかを判定するには、次の定理を使用できる： 
とし、とする。 が解けることと以下の条件は同値である：
注：この定理を使うに当たって本質的には "n" の素因数分解が既知である必要がある。また、 の場合、合同関係は に還元することができるが、（"m" が平方数でない限り）これは平方剰余の問題の範疇を超える。
平方剰余の数.
"n" = 1, 2, 3, … に対する "n" を法とする平方剰余の数のリストは、以下の通りである。
"n" を法とする平方数の数を数える式は、スタングル (Stangl) によって与えられる。
平方剰余の応用.
音響.
サウンドディフューザーは、原始根や平方剰余などの数論的概念に基づいている。
グラフ理論.
 (Paley graph) は、各素数 "p" ≡ 1 (mod 4) が(conference graph)の無限族を形成する稠密な無向グラフであり、これによって対称 (conference matrix) の無限族が導かれる。
ペイリー双グラフ (Paley digraph) はペイリーグラフを有向グラフとしたもので、素数は "p" ≡ 3 (mod 4) を用い、反対称カンファレンス行列が導かれる。
これらのグラフの作成には、平方剰余が用いられる。
暗号.
大きな合成数 "n" を法とする数値の平方根を見つけることは、素因数分解（これはと広く信じられている）に相当するという事実は、Rabin暗号や紛失転送プロトコルなどの暗号化スキームの構築に使用されている。は、の基礎を成す。
離散対数も暗号化で用いられる同様の問題である。
素数判定.
オイラーの規準は、"p" が素数であるルジャンドル記号 ("a"|"p") の公式である。"p" が合成数の場合、公式は ("a"|"p") を正しく計算できる場合もできない場合もある。与えられた数 "n" が素数であるか合成数であるかについてのソロベイ-シュトラッセン素数判定法は、ランダムな "a" を選び、ユークリッドの互除法の修正とオイラーの基準を使用して ("a"|"n") を計算する。結果が一致しない場合、"n" は合成数である。一致する場合、"n" は合成数または素数である。合成数 "n" に対して、2, 3, …, "n" − 1 の範囲中、少なくとも半分の "a" では「"n" は合成数」と判定されるが、素数 "n" に対しては何も出力しない。多くの異なる "a" を試しても "n" が合成数と判定されなければ、"n" は確率的素数と呼ばれる。
ミラー–ラビン素数判定法も同じ原理に基づく。この判定法は決定論的なバージョンがあるが、これが正しく判定できるかの証明は一般化されたリーマン仮説 (GRH) 依存する。この判定法の出力は、「"n" は完全に合成数」または「"n" は素数かGRHは偽である」のいずれかである。合成数 "n" に対して出力が後者の場合、GRHは偽になり、数学の多くの分野に影響を及ぼす可能性がある。
素因数分解.
"Disquisitiones Arithmeticae""§VI"で、ガウスは平方剰余と平方剰余の相互法則を使用する2つの素因数分解アルゴリズムについて説明している。
最新の素因数分解アルゴリズムのいくつか（ (Dixon's algorithm)、 (continued fraction method)、 (quadratic sieve)、 (number field sieve) など）は、素因数分解につながるを探す中で、（素因数分解される数を法とする）小さい平方剰余を生成する。数体ふるいは、既知の最も高速な汎用素因数分解アルゴリズムである。
平方剰余の表.
次の表（）は、法 1から75までの平方剰余のリストである（は、"n" と互いに素ではないことを意味する）。（"n" と互いに素な平方剰余については を、非ゼロな平方剰余については を参照せよ。）
参考文献.
"Disquisitiones Arithmeticae"は、ガウスの古典ラテン語から英語とドイツ語に翻訳されている。ドイツ語版には、数論に関するガウスのすべての論文が含まれている（平方剰余のすべての証明、ガウス和の符号の決定、四次剰余の相互法則の研究、および未発表のノート）。