MathLabs

算術と数論

フェルマーの小定理とオイラーの定理

素数や一般の整数を法とするべき乗の振る舞いを記述する古典的な定理。

直観素数の時間を持つ時計

1313時間の時計上で、ちょうど1212の位置ではない任意の時針の位置aaを選び(すなわちgcd⁡(a,13)=1\gcd(a,13)=1)、それ自身に繰り返し掛け続ける:a,a2,a3,…(mod13)a, a^2, a^3, \dots \pmod{13}。ちょうど1212回の乗算の後、驚くべきことが起きる——どの出発時刻を選んでも必ず11に戻るのである。これがフェルマーの小定理である:素数ppに対して、非零のすべての剰余をp−1p-1乗すると11に戻る。オイラーの定理はこれを素数の時計から任意の大きさnnの時計へと一般化し、p−1p-1をφ(n)\varphi(n)——nn以下でこれと共通の因数を持たない数の個数——に置き換える。この2つの定理は合わさって、RSA暗号や高速な素数判定法の内部にある数学的な原動力となっている。

素数を法とする繰り返し乗算によって形成されるサイクルを示すネットワーク図。
素数の法 m=pm = p と pp と互いに素な aa に対し、乗法写像 x↦ax mod px \mapsto ax \bmod p は非ゼロ剰余上の全単射となる——これが ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p の証明の核心である。

中高主張とオイラーのトーシェント関数

定義: オイラーのトーシェント関数φ(n)\varphi(n)

正の整数nnに対してφ(n)=#{ 1≤k≤n:gcd⁡(k,n)=1 }\varphi(n) = \#\{\,1\le k\le n : \gcd(k,n)=1\,\}と定義する:11からnnまでの整数のうちnnと互いに素なものの個数である。素数ppについては、1,…,p−11,\dots,p-1のすべてがppと互いに素なのでφ(p)=p−1\varphi(p)=p-1である。一般にφ\varphiはnnの素因数分解からφ(n)=n∏p∣n(1−1p)\varphi(n) = n\prod_{p\mid n}\left(1-\frac{1}{p}\right)によって計算できる。ここで積はnnを割り切る相異なる素数にわたる。

ap−1≡1(modp)(p prime, gcd⁡(a,p)=1)a^{p-1} \equiv 1 \pmod{p} \qquad (p \text{ prime},\ \gcd(a,p)=1)

これがフェルマーの小定理である。オイラーの定理は素数の法を任意の法nnに、p−1p-1をφ(n)\varphi(n)に置き換える:gcd⁡(a,n)=1\gcd(a,n)=1であるときはいつでも、aφ(n)≡1(modn)a^{\varphi(n)} \equiv 1 \pmod{n}が成り立つ。n=pn=pを素数に取ると、φ(p)=p−1\varphi(p)=p-1なのでフェルマーの主張がそのまま復元される。

aφ(n)≡1(modn)(gcd⁡(a,n)=1)a^{\varphi(n)} \equiv 1 \pmod{n} \qquad (\gcd(a,n)=1)
フェルマー対オイラー
法主張関連する群
素数ppap−1≡1(modp)a^{p-1}\equiv1\pmod p(Z/pZ)∗(\mathbb{Z}/p\mathbb{Z})^{*}, 位数p−1p-1
任意のnnaφ(n)≡1(modn)a^{\varphi(n)}\equiv1\pmod n(Z/nZ)∗(\mathbb{Z}/n\mathbb{Z})^{*}, 位数φ(n)\varphi(n)

大学定理

ppが素数でgcd⁡(a,p)=1\gcd(a,p)=1ならば、ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}である。同値に、任意の整数aaについてap≡a(modp)a^{p} \equiv a \pmod{p}である。

なぜ正しいのか?

素数ppを法とする非零の剰余は乗法の下で閉じた系をなす:固定したaaをそのすべてに掛けることは、それらを互いにシャッフルするだけである。このシャッフルをp−1p-1回繰り返すと、すべての要素が自身の位置に戻らなければならず、それがまさにap−1≡1(modp)a^{p-1}\equiv1\pmod pという主張である。

証明

法ppに関する非零の剰余の集合S={1,2,…,p−1}S=\{1,2,\dots,p-1\}と、SSの各元を剰余へ送る写像x↦ax mod px \mapsto ax \bmod pを考える。

この写像はSS上で単射である:x,y∈Sx,y\in Sについてax≡ay(modp)ax\equiv ay\pmod pならば、gcd⁡(a,p)=1\gcd(a,p)=1なので、簡約法則(前のトピックで証明済み)によりx≡y(modp)x\equiv y\pmod p、したがって両者とも{1,…,p−1}\{1,\dots,p-1\}に属するのでx=yx=yである。またx∈Sx\in Sに対してaxax が ≡0(modp)\equiv 0\pmod p となることもない。なぜならppは素数でありaaもxxも割り切らないからである。よってこの写像は実際にSSの中に収まる。

有限集合SSからそれ自身への単射写像は自動的に全単射である。したがって{a⋅1,a⋅2,…,a⋅(p−1)}(modp)\{a\cdot1,a\cdot2,\dots,a\cdot(p-1)\} \pmod pは、単に{1,2,…,p−1}\{1,2,\dots,p-1\}を別の順序で並べたものにすぎない。

両方の集合のp−1p-1個すべての元を掛け合わせる。一方では(a⋅1)(a⋅2)⋯(a⋅(p−1))=ap−1 (p−1)!(a\cdot1)(a\cdot2)\cdots(a\cdot(p-1)) = a^{p-1}\,(p-1)!が得られ、もう一方では同じ数を並び替えただけなのでちょうど(p−1)!(p-1)!が得られる。よってap−1(p−1)!≡(p−1)!(modp)a^{p-1}(p-1)! \equiv (p-1)! \pmod p。

ppは素数なので、1,2,…,p−11,2,\dots,p-1のどれもppで割り切れず、gcd⁡((p−1)!,p)=1\gcd((p-1)!,p)=1である。両辺から共通因子(p−1)!(p-1)!を取り除くためにもう一度簡約法則を適用するとap−1≡1(modp)a^{p-1}\equiv1\pmod pが得られる。■\blacksquare

(群論的な言い換え:ppが素数なので非零の剰余は乗法の下で位数p−1p-1の群をなし、ラグランジュの定理により任意の元の位数——ここではak≡1a^k\equiv1となる最小のkk——は群の位数p−1p-1を割り切らなければならない;したがってap−1≡1(modp)a^{p-1}\equiv1\pmod pが自動的に成り立つ。)

gcd⁡(a,n)=1\gcd(a,n)=1ならばaφ(n)≡1(modn)a^{\varphi(n)} \equiv 1 \pmod{n}である。ここでφ\varphiはオイラーのトーシェント関数である。

なぜ正しいのか?

これはまさにフェルマーの議論を一般の法nnに適用したものである:(nnが素数のときのみ乗法的に閉じた系をなす)すべての非零剰余の代わりに、実際にnnと互いに素な剰余——逆元を持つもの——に限定し、同じシャッフルの議論をサイズφ(n)\varphi(n)のこのより小さな閉じた集合に適用する。

証明

法nnに関する被約剰余系R={r1,…,rφ(n)}R=\{r_1,\dots,r_{\varphi(n)}\}を取る:nnと互いに素なすべての剰余類の代表元である。

aaによる乗法はRRを置換する:各rir_iについて、gcd⁡(a,n)=1\gcd(a,n)=1かつgcd⁡(ri,n)=1\gcd(r_i,n)=1なのでgcd⁡(ari,n)=1\gcd(ar_i,n)=1である(積がnnと互いに素であるのは両方の因数がそうであるとき、かつそのときに限る)。したがってari mod nar_i \bmod nも互いに素な剰余類の一員である。また写像ri↦ari mod nr_i\mapsto ar_i \bmod nは、gcd⁡(a,n)=1\gcd(a,n)=1なので簡約法則により単射である。

有限集合RRからそれ自身への(剰余の意味での)単射写像は全単射であるから、{ar1,…,arφ(n)}(modn)\{ar_1,\dots,ar_{\varphi(n)}\} \pmod nは単に{r1,…,rφ(n)}\{r_1,\dots,r_{\varphi(n)}\}を並べ替えたものである。

各集合のφ(n)\varphi(n)個すべての元を掛け合わせると:aφ(n) (r1r2⋯rφ(n))≡r1r2⋯rφ(n)(modn)a^{\varphi(n)}\, (r_1 r_2\cdots r_{\varphi(n)}) \equiv r_1 r_2 \cdots r_{\varphi(n)} \pmod n。各rir_iはnnと互いに素なので、その積R=∏riR=\prod r_iも互いに素、すなわちgcd⁡(R,n)=1\gcd(R,n)=1である。

両辺からRRを約分すると(gcd⁡(R,n)=1\gcd(R,n)=1なので有効)aφ(n)≡1(modn)a^{\varphi(n)}\equiv1\pmod nが得られる。■\blacksquare

これも姿を変えたラグランジュの定理である:nnと互いに素な剰余は乗法の下で位数φ(n)\varphi(n)の群(単数群(Z/nZ)∗(\mathbb{Z}/n\mathbb{Z})^{*})をなし、任意の元の位数はφ(n)\varphi(n)を割り切る。

発展実世界での応用と具体例

オイラーの定理はRSA公開鍵暗号の数学的な核心である——復号の正しさはφ(n)\varphi(n)乗して11に戻ることに依存している。フェルマーの小定理は高速な確率的素数判定法を与え(底aaを試してap−1≡1a^{p-1}\equiv1を確認する)、拡張ユークリッドの互除法を使わずにap−2 mod pa^{p-2}\bmod pとして法での逆元を計算できるようにする。両定理はまた、符号理論や擬似乱数生成全般で用いられる高速な法での指数計算の基盤でもある。

例: なぜRSAの復号は機能するのか

p=5,q=11p=5,q=11とすると、n=pq=55n=pq=55、φ(n)=(p−1)(q−1)=40\varphi(n)=(p-1)(q-1)=40である。公開指数e=3e=3を選び(gcd⁡(3,40)=1\gcd(3,40)=1なので)、秘密指数d=27d=27を選ぶ(3×27=81=2×40+13\times27=81=2\times40+1なのでed≡1(mod40)ed\equiv1\pmod{40})。m=2m=2をc=me mod nc=m^e\bmod nとして暗号化し、ccを復号してm=2m=2が復元されることを確認せよ。

解答

暗号化:c=23 mod 55=8c = 2^3 \bmod 55 = 8。

復号は暗号文を秘密指数で累乗する:m′=cd mod n=827 mod 55m' = c^d \bmod n = 8^{27}\bmod 55。ある整数kkについてed=1+kφ(n)ed = 1+k\varphi(n)なので(ここでは81=1+2×4081=1+2\times40)、m′≡med=m1+kφ(n)=m⋅(mφ(n))k(modn)m' \equiv m^{ed} = m^{1+k\varphi(n)} = m\cdot(m^{\varphi(n)})^k \pmod nである。

gcd⁡(m,n)=gcd⁡(2,55)=1\gcd(m,n)=\gcd(2,55)=1なので、オイラーの定理によりmφ(n)≡1(modn)m^{\varphi(n)}\equiv1\pmod n、したがって(mφ(n))k≡1k=1(modn)(m^{\varphi(n)})^k\equiv1^k=1\pmod nとなり、m′≡m⋅1=m(modn)m'\equiv m\cdot1 = m \pmod nである。

数値的には:827 mod 558^{27}\bmod55は繰り返し二乗法で計算できる(82=64≡98^2=64\equiv9、84≡81≡268^4\equiv81\equiv26、88≡262=676≡676−660=168^8\equiv26^2=676\equiv676-660=16、816≡162=256≡256−220=368^{16}\equiv16^2=256\equiv256-220=36;そして827=816⋅88⋅82⋅81≡36×16×9×88^{27}=8^{16}\cdot8^8\cdot8^2\cdot8^1\equiv36\times16\times9\times8)。段階ごとに法5555で簡約するとちょうど22になり、復号が元のメッセージm=2m=2を正しく復元することが確認できる——これはこの例に限らず、オイラーの定理が任意のメッセージと任意の2つの素数p,qp,qについて保証する通りである。

例: フェルマー擬素数:検定が偽りを述べるとき

341=11×31341=11\times31(合成数である)が2340≡1(mod341)2^{340}\equiv1\pmod{341}を満たすことを示せ——これは341341が素数であったならフェルマーの小定理が予測するのとちょうど同じ結論である。

解答

各素因数ごとに法を取って考える。法1111では:1111は素数でgcd⁡(2,11)=1\gcd(2,11)=1なので、フェルマーにより210≡1(mod11)2^{10}\equiv1\pmod{11};340=10×34340=10\times34なので2340=(210)34≡134=1(mod11)2^{340}=(2^{10})^{34}\equiv1^{34}=1\pmod{11}を得る。

法3131では:ここで25=32≡1(mod31)2^5=32\equiv1\pmod{31}なので、22は法3131で位数55を持つ(φ(31)=30\varphi(31)=30の約数であり、フェルマー/オイラーと整合する)。340=5×68340=5\times68は55の倍数なので、2340=(25)68≡168=1(mod31)2^{340}=(2^5)^{68}\equiv1^{68}=1\pmod{31}である。

よって2340≡12^{340}\equiv1は法1111でも法3131でも成り立つ。中国剰余定理(次のトピック)により、互いに素な1111と3131の両方を法として≡1\equiv1であることは、341341が素数でなくても2340≡1(mod341)2^{340}\equiv1\pmod{341}を強制する。

ある底aa(それと互いに素)についてan−1≡1(modn)a^{n-1}\equiv1\pmod nを満たす合成数nnは**底aaのフェルマー擬素数**と呼ばれる;341341は底22に対する最小の擬素数である。これこそフェルマーの検定が素数性の証明ではなく単なる確率的なヒューリスティックにすぎない理由であり、以下でさらに探る落とし穴である。

研究フェルマーとオイラー、研究の最前線にて:素数性・擬素数・ポスト量子暗号

フェルマーの小定理により、p=13p=13かつgcd⁡(a,13)=1\gcd(a,13)=1のとき、a12(mod13)a^{12}\pmod{13}はいくつか?

φ(20)\varphi(20)を計算せよ。

n=55n=55、φ(n)=40\varphi(n)=40、公開指数e=3e=3のRSAにおいて、秘密指数ddが満たすべき条件は:

341=11×31341=11\times31は合成数であるにもかかわらず2340≡1(mod341)2^{340}\equiv1\pmod{341}を満たす。この現象は何と呼ばれるか?

参考文献

  1. Ronald L. Rivest, Adi Shamir, Leonard M. Adleman (1978). A Method for Obtaining Digital Signatures and Public-Key Cryptosystems · DOI:10.1145/359340.359342
  2. W. R. Alford, Andrew Granville, Carl Pomerance (1994). There are Infinitely Many Carmichael Numbers · DOI:10.2307/2118576