Lemma

第11章有限体

目安 10〜13 時間定理など 15演習 9 問
ここまでの道

この章の目標

  • F16\mathbb{F}_{16} などで具体的に計算でき、xqn−xx^{q^n} - x の既約分解から既約多項式・原始多項式の個数を求められる
  • トレースとノルムの全射性とヒルベルトの定理 90 を、有限体の場合に証明できる
  • 有限体上の多項式の因数分解アルゴリズム(無平方分解・次数別分解・カントール–ザッセンハウス法)の正しさを説明できる
  • シュヴァレー–ワーニングの定理を証明し、有限体上の二次曲線の点を数えられる
  • CRC・AES・リード–ソロモン符号で有限体がどう使われるかを説明できる

前提:第8章(有限体の基本定理)、第9章(有限体のガロア群)。11.9 節では第1章のルジャンドル記号を使う。

第8章で、有限体は元の個数 q=pnq = p^n で決まり、乗法群は巡回群であることを示した。第9章では、そのガロア群がフロベニウス写像で生成される巡回群であることを見た。本章ではこれらを道具として、有限体の上で具体的に計算する方法を整える。既約多項式はいくつあるか、多項式をどう因数分解するか、方程式の解はいくつあるか、といった問いに、有限体ではきれいな答えがある。

有限体は計算機の中で最もよく使われる体でもある。誤り検出の CRC、共通鍵暗号 AES、リード–ソロモン符号、楕円曲線暗号は、いずれも有限体の算術の上に作られている。最後の節でそれらへの橋渡しをする。

本章では pp は素数、qq は pp のべきとし、Fr⁡q(a)=aq\operatorname{Fr}_q(a) = a^q と書く。

11.1 有限体の復習と具体的な構成

第8章・第9章の結果をまとめておく。

  • 元の個数が qq の体 Fq\mathbb{F}_q は xq−xx^q - x の分解体として同型を除いて一意に存在し、Fpn\mathbb{F}_{p^n} が Fpm\mathbb{F}_{p^m} を含む   ⟺  \iff m∣nm \mid n(第8章 定理 8.41)。Fq×\mathbb{F}_q^\times は位数 q−1q - 1 の巡回群(第8章 定理 8.40)。
  • Fqn/Fq\mathbb{F}_{q^n}/\mathbb{F}_q はガロア拡大で、ガロア群は Fr⁡q\operatorname{Fr}_q で生成される位数 nn の巡回群(第9章 定理 9.14 とその後の注意)。Fq\mathbb{F}_q 上の既約多項式の根の 1 つを α\alpha とすると、根全体は α,αq,αq2,…\alpha, \alpha^q, \alpha^{q^2}, \dots である(第9章 例 9.15(2) と同様)。

Fqn\mathbb{F}_{q^n} を具体的に作るには、Fq\mathbb{F}_q 上の nn 次既約多項式 ff をとって Fq[x]/(f)\mathbb{F}_q[x]/(f) を考えればよい(第8章 定理 8.8)。元は n−1n - 1 次以下の多項式で表され、和は係数ごと、積は ff で割った余りである。

例 11.1

  1. F4=F2[x]/(x2+x+1)={0,1,ω,ω2=ω+1}\mathbb{F}_4 = \mathbb{F}_2[x]/(x^2 + x + 1) = \lbrace 0, 1, \omega, \omega^2 = \omega + 1 \rbrace(第8章 例 8.22)と F8=F2[x]/(x3+x+1)\mathbb{F}_8 = \mathbb{F}_2[x]/(x^3 + x + 1)(例 8.42(1))は第8章で見た。F9=F3[x]/(x2+1)=F3(i)\mathbb{F}_9 = \mathbb{F}_3[x]/(x^2 + 1) = \mathbb{F}_3(i) では、1+i1 + i のべきが 1,1+i,2i,1+2i,2,2+2i,i,2+i1, 1 + i, 2i, 1 + 2i, 2, 2 + 2i, i, 2 + i と F9×\mathbb{F}_9^\times を一巡する(例 8.42(2))。
  2. F16=F2[x]/(x4+x+1)\mathbb{F}_{16} = \mathbb{F}_2[x]/(x^4 + x + 1)(既約性は第6章 例 6.28(2))。α=x‾\alpha = \overline{x} とすると α4=α+1\alpha^4 = \alpha + 1。αk\alpha^k を α3,α2,α,1\alpha^3, \alpha^2, \alpha, 1 の係数を並べた 4 桁の 2 進数で表すと次のようになる。α3≠1\alpha^3 \neq 1, α5≠1\alpha^5 \neq 1 なので α\alpha の位数は 15 で、α\alpha は F16×\mathbb{F}_{16}^\times の生成元である。
kk 0 1 2 3 4 5 6 7
αk\alpha^k 0001 0010 0100 1000 0011 0110 1100 1011
kk 8 9 10 11 12 13 14
αk\alpha^k 0101 1010 0111 1110 1111 1101 1001

たとえば α3+α+1=α7\alpha^3 + \alpha + 1 = \alpha^7 なので (α3+α+1)−1=α8=α2+1(\alpha^3 + \alpha + 1)^{-1} = \alpha^8 = \alpha^2 + 1。部分体 F4\mathbb{F}_4 は a4=aa^4 = a をみたす元全体 {0,1,α5,α10}\lbrace 0, 1, \alpha^5, \alpha^{10} \rbrace で、ω=α5=α2+α\omega = \alpha^5 = \alpha^2 + \alpha は ω2+ω+1=0\omega^2 + \omega + 1 = 0 をみたす。

11.2 xqn−xx^{q^n} - x の分解と既約多項式の個数

定理 11.2 Fq[x]\mathbb{F}_q[x] において、xqn−xx^{q^n} - x は、次数が nn の約数であるモニックな既約多項式すべての(1 回ずつの)積である。

証明. (xqn−x)′=−1(x^{q^n} - x)' = -1 なので xqn−xx^{q^n} - x は重根をもたず(第8章 命題 8.36)、相異なるモニック既約多項式の積である。ff を dd 次のモニック既約多項式、E=Fq[x]/(f)=Fq(α)E = \mathbb{F}_q[x]/(f) = \mathbb{F}_q(\alpha)(α=x‾\alpha = \overline{x})とすると、ff は α\alpha の最小多項式なので、f∣xqn−xf \mid x^{q^n} - x   ⟺  \iff Fr⁡qn(α)=α\operatorname{Fr}_q^n(\alpha) = \alpha   ⟺  \iff Fr⁡qn=idE\operatorname{Fr}_q^n = \mathrm{id}_E(自己同型は α\alpha の像で決まる)  ⟺  \iff d∣nd \mid n(Gal⁡(E/Fq)\operatorname{Gal}(E/\mathbb{F}_q) は Fr⁡q\operatorname{Fr}_q で生成される位数 dd の巡回群)。□\square

dd 次のモニック既約多項式の個数を Nq(d)N_q(d) とし、次数を比べると

qn=∑d∣ndNq(d)(1)q^n = \sum_{d \mid n} dN_q(d) \tag{1}

これを Nq(n)N_q(n) について解く。メビウス関数 (Möbius function) μ\mu を、μ(1)=1\mu(1) = 1、nn が相異なる kk 個の素数の積なら μ(n)=(−1)k\mu(n) = (-1)^k、nn がある素数の平方で割り切れるなら μ(n)=0\mu(n) = 0 と定める。n>1n > 1 なら ∑d∣nμ(d)=0\sum_{d \mid n}\mu(d) = 0 である(nn の相異なる素因数を k≥1k \geq 1 個とすると、和は ∑j(kj)(−1)j=(1−1)k\sum_j \binom{k}{j}(-1)^j = (1 - 1)^k)。

定理 11.3(メビウスの反転公式, Möbius inversion formula)F,G ⁣:N→ZF, G\colon \mathbb{N} \to \mathbb{Z} がすべての nn で F(n)=∑d∣nG(d)F(n) = \sum_{d \mid n} G(d) をみたせば、G(n)=∑d∣nμ(d)F(n/d)G(n) = \sum_{d \mid n}\mu(d)F(n/d)。

証明. de∣nde \mid n となる組 (d,e)(d, e) についての和の順序を入れかえると ∑d∣nμ(d)∑e∣n/dG(e)=∑e∣nG(e)∑d∣n/eμ(d)\sum_{d \mid n}\mu(d)\sum_{e \mid n/d}G(e) = \sum_{e \mid n}G(e)\sum_{d \mid n/e}\mu(d) で、内側の和は e=ne = n のとき 11、それ以外は 00。□\square

系 11.4(ガウスの公式)Nq(n)=1n∑d∣nμ(d)qn/dN_q(n) = \dfrac{1}{n}\sum_{d \mid n}\mu(d)q^{n/d}。また 1≤Nq(n)≤qn/n1 \leq N_q(n) \leq q^n/n。

証明. (1) に定理 11.3 を F(n)=qnF(n) = q^n, G(d)=dNq(d)G(d) = dN_q(d) として使う。上からの評価は (1) から、Nq(n)≥1N_q(n) \geq 1 は Fqn×\mathbb{F}_{q^n}^\times の生成元の最小多項式が nn 次であることからわかる。□\square

q=2q = 2 では次のようになる(n≤8n \leq 8 のすべての多項式を調べ尽くす計算でも確かめた。3 行目は定理 11.6)。

nn 1 2 3 4 5 6 7 8
N2(n)N_2(n) 2 1 2 3 6 9 18 30
原始多項式の個数 1 1 2 2 6 6 18 16

たとえば N2(8)=(28−24)/8=30N_2(8) = (2^8 - 2^4)/8 = 30, N2(6)=(26−23−22+2)/6=9N_2(6) = (2^6 - 2^3 - 2^2 + 2)/6 = 9。Nq(n)≈qn/nN_q(n) \approx q^n/n(問題 11.5)なので、nn 次のモニック多項式をランダムに選ぶとおよそ 1/n1/n の確率で既約である。既約多項式を探すアルゴリズムはこれに基づく。

11.3 原始元と原始多項式

定義 11.5(原始元・原始多項式)Fqn×\mathbb{F}_{q^n}^\times の生成元を Fqn\mathbb{F}_{q^n} の原始元 (primitive element) といい、その Fq\mathbb{F}_q 上の最小多項式を原始多項式 (primitive polynomial) という。

注意

同じ名前で別の概念を指すので注意する。第8章 定理 8.43 の「原始元」は L=K(γ)L = K(\gamma) となる γ\gamma のことで、上の意味の原始元はそれより強い条件である(例 11.8 の x4+x3+x2+x+1x^4 + x^3 + x^2 + x + 1 の根は、前者の意味では F16/F2\mathbb{F}_{16}/\mathbb{F}_2 の原始元だが、後者の意味では原始元でない)。第6章 定義 6.17 の「原始多項式」は係数の最大公約数(内容)が単元である多項式のことで、体上の 00 でない多項式はすべてこの意味で原始的なので、本章では定義 11.5 の意味でだけ使う。なお Fp\mathbb{F}_p の原始元とは、法 pp の原始根(第1章 定義 1.41)のことである。

定理 11.6 Fqn\mathbb{F}_{q^n} の原始元はちょうど φ(qn−1)\varphi(q^n - 1) 個あり、Fq\mathbb{F}_q 上の nn 次の原始多項式はちょうど φ(qn−1)/n\varphi(q^n - 1)/n 個ある。

証明. 前半は位数 qn−1q^n - 1 の巡回群の生成元の個数である(第2章 系 2.25)。原始元 γ\gamma のべきは Fqn×\mathbb{F}_{q^n}^\times を尽くすので Fq(γ)=Fqn\mathbb{F}_q(\gamma) = \mathbb{F}_{q^n} で、最小多項式は nn 次、その根は相異なる nn 個の γqi\gamma^{q^i}(0≤i<n0 \leq i < n)である(第9章 例 9.15(2) と同様)。これらは自己同型 Fr⁡qi\operatorname{Fr}_q^i による像なので位数は γ\gamma と等しく、すべて原始元である。よって原始元全体は各原始多項式の根 nn 個ずつに分かれる。□\square

命題 11.7 f∈Fq[x]f \in \mathbb{F}_q[x] を nn 次のモニック既約多項式(f≠xf \neq x)とする。ff が原始多項式   ⟺  \iff qn−1q^n - 1 の各素因数 ℓ\ell について x(qn−1)/ℓ≢1(modf)x^{(q^n-1)/\ell} \not\equiv 1 \pmod f。

証明. ff の根はすべて同じ位数をもつので、ff が原始的   ⟺  \iff x‾∈(Fq[x]/(f))×≅Fqn×\overline{x} \in (\mathbb{F}_q[x]/(f))^\times \cong \mathbb{F}_{q^n}^\times の位数が qn−1q^n - 1。その位数は qn−1q^n - 1 を割り、qn−1q^n - 1 でなければある (qn−1)/ℓ(q^n - 1)/\ell を割る。□\square

例 11.8 q=2q = 2, n=4n = 4 の原始多項式は φ(15)/4=2\varphi(15)/4 = 2 個で、x4+x+1x^4 + x + 1 と x4+x3+1x^4 + x^3 + 1。x4+x3+x2+x+1x^4 + x^3 + x^2 + x + 1 も既約だが、(x−1)(x4+x3+x2+x+1)=x5−1(x - 1)(x^4 + x^3 + x^2 + x + 1) = x^5 - 1 よりその根の位数は 5 で、原始的でない。n=8n = 8 では既約多項式 30 個のうち φ(255)/8=16\varphi(255)/8 = 16 個が原始的である。2n−12^n - 1 が素数(n=2,3,5,7n = 2, 3, 5, 7 など)なら、F2\mathbb{F}_2 に属さない元の位数はすべて 2n−12^n - 1 なので、nn 次既約多項式はすべて原始的である。

11.4 代数閉包 F‾p\overline{\mathbb{F}}_p

F‾p\overline{\mathbb{F}}_p を Fp\mathbb{F}_p の代数閉包とする(第8章 定理 8.31)。各 nn について Fpn:={a∈F‾p∣apn=a}\mathbb{F}_{p^n} := \lbrace a \in \overline{\mathbb{F}}_p \mid a^{p^n} = a \rbrace は pnp^n 個の元からなる部分体で、pnp^n 元の部分体はこれに限る(第8章 定理 8.41 の証明)。a∈F‾pa \in \overline{\mathbb{F}}_p は Fp\mathbb{F}_p 上代数的なので Fp(a)\mathbb{F}_p(a) は有限体で、ある Fpn\mathbb{F}_{p^n} に含まれる。よって

F‾p=⋃n≥1Fpn,Fpm⊂Fpn  ⟺  m∣n\overline{\mathbb{F}}_p = \bigcup_{n \geq 1}\mathbb{F}_{p^n}, \qquad \mathbb{F}_{p^m} \subset \mathbb{F}_{p^n} \iff m \mid n

であり、標数 pp の有限体はすべてこの 1 つの体の中で考えられる。F‾p/Fp\overline{\mathbb{F}}_p/\mathbb{F}_p は無限次ガロア拡大で、そのガロア群は射有限群 Z^\widehat{\mathbb{Z}} と同型になる(第13章 定理 13.17)。

11.5 トレースとノルム

以下 K=FqK = \mathbb{F}_q, L=FqnL = \mathbb{F}_{q^n}, σ=Fr⁡q\sigma = \operatorname{Fr}_q とする。

定義 11.9(トレース・ノルム)a∈La \in L に対し、Tr⁡L/K(a)=∑i=0n−1aqi\operatorname{Tr}_{L/K}(a) = \sum_{i=0}^{n-1} a^{q^i} をトレース (trace)、NL/K(a)=∏i=0n−1aqi=a(qn−1)/(q−1)N_{L/K}(a) = \prod_{i=0}^{n-1} a^{q^i} = a^{(q^n-1)/(q-1)} をノルム (norm) という。

σ\sigma はこれらを保つので値は L⟨σ⟩=KL^{\langle\sigma\rangle} = K に属し、Tr⁡\operatorname{Tr} は KK 線形写像(c∈Kc \in K は cq=cc^q = c)、NN は乗法的である。aa が LL を生成し、最小多項式が xn+cn−1xn−1+⋯+c0x^n + c_{n-1}x^{n-1} + \cdots + c_0 なら、根は aqia^{q^i} なので Tr⁡(a)=−cn−1\operatorname{Tr}(a) = -c_{n-1}, N(a)=(−1)nc0N(a) = (-1)^nc_0。

定理 11.10

  1. Tr⁡L/K ⁣:L→K\operatorname{Tr}_{L/K}\colon L \to K は全射で、その核の元の個数は qn−1q^{n-1}。
  2. NL/K ⁣:L×→K×N_{L/K}\colon L^\times \to K^\times は全射準同型で、その核の元の個数は (qn−1)/(q−1)(q^n - 1)/(q - 1)。
  3. (推移律)K⊂M⊂LK \subset M \subset L について Tr⁡L/K=Tr⁡M/K∘Tr⁡L/M\operatorname{Tr}_{L/K} = \operatorname{Tr}_{M/K} \circ \operatorname{Tr}_{L/M}, NL/K=NM/K∘NL/MN_{L/K} = N_{M/K} \circ N_{L/M}。

証明. (1) Tr⁡(a)\operatorname{Tr}(a) は aa の qn−1q^{n-1} 次の多項式なので、Tr⁡(a)=0\operatorname{Tr}(a) = 0 となる aa は高々 qn−1<qnq^{n-1} < q^n 個で(第5章 系 5.30)、Tr⁡≠0\operatorname{Tr} \neq 0。11 次元の KK への 00 でない KK 線形写像なので全射で、核は n−1n - 1 次元。(2) L×L^\times の生成元 γ\gamma について N(γ)=γ(qn−1)/(q−1)N(\gamma) = \gamma^{(q^n-1)/(q-1)} の位数は q−1q - 1 なので、像は K×K^\times 全体。(3) M=FqmM = \mathbb{F}_{q^m}, n=mkn = mk とすると、Fr⁡q\operatorname{Fr}_q は加法を保つので

Tr⁡M/K(Tr⁡L/M(a))=∑i=0m−1(∑j=0k−1aqmj)qi=∑i=0m−1∑j=0k−1aqmj+i\operatorname{Tr}_{M/K}(\operatorname{Tr}_{L/M}(a)) = \sum_{i=0}^{m-1}\Bigl(\sum_{j=0}^{k-1} a^{q^{mj}}\Bigr)^{q^i} = \sum_{i=0}^{m-1}\sum_{j=0}^{k-1} a^{q^{mj+i}}

で、mj+imj + i は 0,…,n−10, \dots, n - 1 をちょうど 1 回ずつ動く。ノルムも同様。□\square

例 11.11 例 11.1(2) の F16/F2\mathbb{F}_{16}/\mathbb{F}_2 では、最小多項式 x4+x+1x^4 + x + 1 より Tr⁡(α)=0\operatorname{Tr}(\alpha) = 0, N(α)=1N(\alpha) = 1。表から計算すると、トレースが 00 の元は 0,1,α,α2,α4,α5,α8,α100, 1, \alpha, \alpha^2, \alpha^4, \alpha^5, \alpha^8, \alpha^{10} の 8=238 = 2^3 個である。F9/F3\mathbb{F}_9/\mathbb{F}_3 では (a+bi)3=a−bi(a + bi)^3 = a - bi なので N(a+bi)=a2+b2N(a + bi) = a^2 + b^2, Tr⁡(a+bi)=2a\operatorname{Tr}(a + bi) = 2a で、N(1)=1N(1) = 1, N(1+i)=2N(1 + i) = 2 からノルムの全射性がわかる。

11.6 ヒルベルトの定理 90

定理 11.12(ヒルベルトの定理 90, Hilbert's Theorem 90。有限体の場合)

  1. (乗法版)a∈L×a \in L^\times について、NL/K(a)=1N_{L/K}(a) = 1   ⟺  \iff a=b/σ(b)=b1−qa = b/\sigma(b) = b^{1-q} となる b∈L×b \in L^\times がある。
  2. (加法版)a∈La \in L について、Tr⁡L/K(a)=0\operatorname{Tr}_{L/K}(a) = 0   ⟺  \iff a=b−σ(b)=b−bqa = b - \sigma(b) = b - b^q となる b∈Lb \in L がある。

証明. (1) N∘σ=NN \circ \sigma = N より N(b/σ(b))=1N(b/\sigma(b)) = 1。逆に、準同型 b↦b1−qb \mapsto b^{1-q} の核は bq−1=1b^{q-1} = 1 となる元全体 K×K^\times なので、像は (qn−1)/(q−1)(q^n - 1)/(q - 1) 個の元からなる。像は Ker⁡N\operatorname{Ker} N に含まれ、定理 11.10(2) より元の個数が等しいので一致する。(2) 同様に、KK 線形写像 b↦b−bqb \mapsto b - b^q の核は KK なので像は qn−1q^{n-1} 個の元からなり、Tr⁡∘σ=Tr⁡\operatorname{Tr} \circ \sigma = \operatorname{Tr} より Ker⁡Tr⁡\operatorname{Ker}\operatorname{Tr} に含まれ、定理 11.10(1) より一致する。□\square

一般の巡回拡大でも同じ主張が成り立つ(第9章 補題 9.20 のデデキントの補題を使う。証明は省略する)。加法版は標数 2 の 2 次方程式に応用できる。標数 2 では解の公式が使えないので、これは実用上も重要である。

系 11.13 L=F2nL = \mathbb{F}_{2^n}, a∈La \in L とする。x2+x+a=0x^2 + x + a = 0 が LL に根をもつ   ⟺  \iff Tr⁡L/F2(a)=0\operatorname{Tr}_{L/\mathbb{F}_2}(a) = 0。

証明. 標数 2 では b2+b=b−Fr⁡2(b)b^2 + b = b - \operatorname{Fr}_2(b) なので、定理 11.12(2)(K=F2K = \mathbb{F}_2)による。□\square

11.7 有限体上の多項式の因数分解

f∈Fq[x]f \in \mathbb{F}_q[x] の因数分解は、(i) 重複する因子を分ける無平方分解 (squarefree factorization)、(ii) 既約因子を次数ごとにまとめる次数別分解、(iii) 同じ次数の因子を分ける等次数分解 (equal-degree factorization) の順に行うのが標準的である。

命題 11.14 モニックな f∈Fq[x]f \in \mathbb{F}_q[x] を f=∏iπieif = \prod_i \pi_i^{e_i}(πi\pi_i は相異なるモニック既約多項式)と分解する。

  1. gcd⁡(f,f′)=∏p∤eiπiei−1∏p∣eiπiei\gcd(f, f') = \prod_{p \nmid e_i}\pi_i^{e_i - 1}\prod_{p \mid e_i}\pi_i^{e_i}。特に f/gcd⁡(f,f′)=∏p∤eiπif/\gcd(f, f') = \prod_{p \nmid e_i}\pi_i は無平方(重複する既約因子をもたない)である。
  2. f′=0f' = 0   ⟺  \iff すべての eie_i が pp の倍数   ⟺  \iff f=gpf = g^p となる g∈Fq[x]g \in \mathbb{F}_q[x] がある。

証明. (1) f′=∑ieiπi′πiei−1∏j≠iπjejf' = \sum_i e_i\pi_i'\pi_i^{e_i - 1}\prod_{j \neq i}\pi_j^{e_j}。Fq\mathbb{F}_q は完全体なので πi\pi_i は分離的で(第8章 定理 8.39)、πi∤πi′\pi_i \nmid \pi_i'。よって πiei−1\pi_i^{e_i - 1} は f′f' を割り、πiei\pi_i^{e_i} が f′f' を割るのは第 ii 項が 00、すなわち p∣eip \mid e_i のときに限る。(2) 前半は (1) から(f′=0f' = 0   ⟺  \iff gcd⁡(f,f′)=f\gcd(f, f') = f)。f=∑jcjxpjf = \sum_j c_jx^{pj} なら(第8章 命題 8.36(3))、Fq\mathbb{F}_q でフロベニウスは全単射なので cj=djpc_j = d_j^p と書け、f=(∑jdjxj)pf = (\sum_j d_jx^j)^p。逆は (gp)′=pgp−1g′=0(g^p)' = pg^{p-1}g' = 0。□\square

命題 11.14 により、因数分解は無平方な多項式の場合に帰着する。gk=∏ei=kπig_k = \prod_{e_i = k}\pi_i(該当する ii がなければ 11)とおくと、gkg_k は無平方で互いに素で、f=∏k≥1gkkf = \prod_{k \geq 1}g_k^k となる。これを ff の無平方分解といい、各 gkg_k を分解すれば ff が分解できる。ff が 1 次以上のとき、次の手順で求めた gkg_k は ff の無平方分解を与える。

  1. c=gcd⁡(f,f′)c = \gcd(f, f'), w=f/cw = f/c, j=1j = 1 とし、すべての gkg_k を 11 としておく(f′=0f' = 0 なら c=fc = f, w=1w = 1)。
  2. w≠1w \neq 1 である間、y=gcd⁡(w,c)y = \gcd(w, c), gj=w/yg_j = w/y とし、w,c,jw, c, j をそれぞれ y,c/y,j+1y, c/y, j + 1 に置き換える。
  3. 手順 2 が終わったとき c≠1c \neq 1 なら、c=hpc = h^p となる hh を係数の pp 乗根から求め(命題 11.14(2) の証明)、hh の無平方分解 h=∏khkkh = \prod_k h_k^k をこの手順で求めて、gpk=hkg_{pk} = h_k とする。

証明. 手順 2 の jj 回目の初めに

w=∏p∤ei, ei≥jπi,c=∏p∤ei, ei≥jπiei−j∏p∣eiπieiw = \prod_{p \nmid e_i,\ e_i \geq j}\pi_i, \qquad c = \prod_{p \nmid e_i,\ e_i \geq j}\pi_i^{e_i - j}\prod_{p \mid e_i}\pi_i^{e_i}

であることを jj についての帰納法で示す。j=1j = 1 では命題 11.14(1) である。ww の既約因子のうち cc を割るのは ei>je_i > j のものだけなので、y=∏p∤ei, ei>jπiy = \prod_{p \nmid e_i,\ e_i > j}\pi_i, gj=w/y=∏p∤ei, ei=jπig_j = w/y = \prod_{p \nmid e_i,\ e_i = j}\pi_i で(p∣jp \mid j なら 11)、置き換えた後の w,cw, c は j+1j + 1 についての上の式になる。j>max⁡ieij > \max_i e_i なら w=1w = 1 なので手順 2 は有限回で終わり、c=∏p∣eiπieic = \prod_{p \mid e_i}\pi_i^{e_i} が残る。Fq[x]\mathbb{F}_q[x] は整域なので環準同型 u↦upu \mapsto u^p(第5章 命題 5.36)は単射であり、h=∏p∣eiπiei/ph = \prod_{p \mid e_i}\pi_i^{e_i/p} である。deg⁡h≤deg⁡f/p<deg⁡f\deg h \leq \deg f/p < \deg f なので、deg⁡f\deg f についての帰納法により手順 3 で hk=∏ei=pkπi=gpkh_k = \prod_{e_i = pk}\pi_i = g_{pk} が求まる。□\square

このように、p∣eip \mid e_i となる πi\pi_i は f/gcd⁡(f,f′)f/\gcd(f, f') に現れず、πiei\pi_i^{e_i} がそのまま gcd⁡(f,f′)\gcd(f, f') に残って手順 3 で扱われる。たとえば F3\mathbb{F}_3 上の f=x3(x+1)2(x+2)=x6+x5+2x4+2x3f = x^3(x + 1)^2(x + 2) = x^6 + x^5 + 2x^4 + 2x^3 では、f′=2x4+2x3f' = 2x^4 + 2x^3 より c=x3(x+1)c = x^3(x + 1), w=(x+1)(x+2)w = (x + 1)(x + 2) である。手順 2 で g1=x+2g_1 = x + 2, g2=x+1g_2 = x + 1 が求まって c=x3c = x^3 が残り、手順 3 で h=xh = x から g3=xg_3 = x を得る。以下 ff は無平方とする。

定理 11.15(次数別分解, distinct-degree factorization)f∈Fq[x]f \in \mathbb{F}_q[x] をモニックで無平方とし、その dd 次の既約因子すべての積を fdf_d とする。g0=fg_0 = f とし、d=1,2,…d = 1, 2, \dots について順に hd=gcd⁡(gd−1,xqd−x)h_d = \gcd(g_{d-1}, x^{q^d} - x), gd=gd−1/hdg_d = g_{d-1}/h_d とおくと、hd=fdh_d = f_d である。

証明. dd についての帰納法で gd−1=∏e≥dfeg_{d-1} = \prod_{e \geq d} f_e としてよい。定理 11.2 より xqd−xx^{q^d} - x は次数が dd の約数である既約多項式の積なので、ff が無平方であることから、hdh_d は gd−1g_{d-1} の既約因子のうち次数が dd の約数のもの、すなわち次数 dd のものの積 fdf_d である。□\square

実際には xqd mod gd−1x^{q^d} \bmod g_{d-1} を前の段の値の qq 乗として反復 2 乗法で計算し、deg⁡gd<2(d+1)\deg g_d < 2(d + 1) となれば残りの gdg_d は既約(または 11)として止める。

定理 11.16(カントール–ザッセンハウスの等次数分解, Cantor–Zassenhaus)qq を奇数、f∈Fq[x]f \in \mathbb{F}_q[x] をモニックで無平方、既約因子はすべて dd 次で r≥2r \geq 2 個とし、e=(qd−1)/2e = (q^d - 1)/2 とする。deg⁡a<rd\deg a < rd の a∈Fq[x]a \in \mathbb{F}_q[x](qrdq^{rd} 個)を一様にランダムに選ぶと、gcd⁡(a,f)\gcd(a, f) または gcd⁡(ae−1,f)\gcd(a^e - 1, f) が ff の自明でない因子(11 でも ff でもない)になる確率は 1/21/2 以上である。

証明. f=π1⋯πrf = \pi_1 \cdots \pi_r とすると、中国剰余定理(第5章 定理 5.23)より Fq[x]/(f)≅∏i=1rFq[x]/(πi)\mathbb{F}_q[x]/(f) \cong \prod_{i=1}^r \mathbb{F}_q[x]/(\pi_i) で、各成分は qdq^d 元体である。deg⁡a<rd\deg a < rd の aa は Fq[x]/(f)\mathbb{F}_q[x]/(f) の元と 1 対 1 に対応するので、aa の成分 (a1,…,ar)(a_1, \dots, a_r) は一様に分布する。gcd⁡(a,f)=∏ai=0πi\gcd(a, f) = \prod_{a_i = 0}\pi_i なので、00 の成分と 00 でない成分がともにあれば成功する。すべて ai≠0a_i \neq 0 のとき、(aie)2=1(a_i^e)^2 = 1 より aie=±1a_i^e = \pm 1 で、巡回群 Fqd×\mathbb{F}_{q^d}^\times(位数 2e2e)では aie=1a_i^e = 1 となる元(平方元)と −1-1 となる元がちょうど ee 個ずつある。gcd⁡(ae−1,f)=∏aie=1πi\gcd(a^e - 1, f) = \prod_{a_i^e = 1}\pi_i なので、失敗するのは a=0a = 0 のときと、すべての aiea_i^e が 11 またはすべて −1-1 のときで、その確率は Q=qd≥3Q = q^d \geq 3 として

1+2erQr=1+21−r(Q−1)rQr≤1+(Q−1)r/2Qr≤12\frac{1 + 2e^r}{Q^r} = \frac{1 + 2^{1-r}(Q - 1)^r}{Q^r} \leq \frac{1 + (Q - 1)^r/2}{Q^r} \leq \frac{1}{2}

である(最後は Qr−(Q−1)r=∑k=0r−1Qk(Q−1)r−1−k≥r≥2Q^r - (Q - 1)^r = \sum_{k=0}^{r-1}Q^k(Q - 1)^{r-1-k} \geq r \geq 2 による)。□\square

1 回の成功確率は 1/21/2 以上なので、成功までの試行回数の期待値は 2 以下である。得られた因子に再帰的に適用すれば ff は既約因子に分かれる。qq が偶数のときは ae−1a^e - 1 の代わりに a+a2+a4+⋯+a2kd−1a + a^2 + a^4 + \cdots + a^{2^{kd-1}}(q=2kq = 2^k)を使う(主張のみ)。

例 11.17 f=x4+1∈F3[x]f = x^4 + 1 \in \mathbb{F}_3[x] は f′=x3f' = x^3 と互いに素なので無平方。x4=−1x^4 = -1 の解は位数 8 で F3×\mathbb{F}_3^\times に属さないので h1=1h_1 = 1。x9=x(x4)2≡x(modf)x^9 = x(x^4)^2 \equiv x \pmod f より h2=gcd⁡(f,x9−x)=fh_2 = \gcd(f, x^9 - x) = f で、既約因子は 2 次式 2 個である。等次数分解(d=2d = 2, e=4e = 4)では、a=xa = x なら a4≡−1a^4 \equiv -1 で失敗する(xx はどちらの成分でも平方でない)。a=x+1a = x + 1 なら (x+1)4≡x4+x3+x+1≡x3+x(x + 1)^4 \equiv x^4 + x^3 + x + 1 \equiv x^3 + x で、互除法により gcd⁡(f,x3+x−1)=x2+2x+2\gcd(f, x^3 + x - 1) = x^2 + 2x + 2。よって x4+1=(x2+2x+2)(x2+x+2)x^4 + 1 = (x^2 + 2x + 2)(x^2 + x + 2)。

ベルレカンプ法 (Berlekamp's algorithm。紹介):無平方な ff について B={a mod f∣aq≡a(modf)}B = \lbrace a \bmod f \mid a^q \equiv a \pmod f \rbrace は Fq[x]/(f)\mathbb{F}_q[x]/(f) の部分空間で、中国剰余定理の成分で見ると「全成分が Fq\mathbb{F}_q に属する元」全体なので、dim⁡B\dim B は既約因子の個数に等しい。BB は a↦aq−aa \mapsto a^q - a を表す行列の核として計算でき、a∈B∖Fqa \in B \setminus \mathbb{F}_q をとると aq−a=∏c∈Fq(a−c)a^q - a = \prod_{c \in \mathbb{F}_q}(a - c) より f=∏c∈Fqgcd⁡(f,a−c)f = \prod_{c \in \mathbb{F}_q}\gcd(f, a - c) が自明でない分解を与える。qq が小さいときに有効な決定的アルゴリズムである。

11.8 シュヴァレー–ワーニングの定理

補題 11.18 整数 k≥0k \geq 0 について(00=10^0 = 1 とする)、∑a∈Fqak\sum_{a \in \mathbb{F}_q} a^k は k≥1k \geq 1 かつ (q−1)∣k(q - 1) \mid k なら −1-1、それ以外なら 00 である。

証明. k=0k = 0 なら和は q=0q = 0。k≥1k \geq 1 なら S=∑a≠0akS = \sum_{a \neq 0}a^k を考える。(q−1)∣k(q - 1) \mid k なら各項は 11 で S=q−1=−1S = q - 1 = -1。そうでなければ Fq×\mathbb{F}_q^\times の生成元 gg について gk≠1g^k \neq 1 で、a↦gaa \mapsto ga は Fq×\mathbb{F}_q^\times の全単射なので S=gkSS = g^kS、よって S=0S = 0。□\square

定理 11.19(シュヴァレー–ワーニングの定理, Chevalley–Warning theorem)f1,…,fr∈Fq[x1,…,xn]f_1, \dots, f_r \in \mathbb{F}_q[x_1, \dots, x_n] が ∑ideg⁡fi<n\sum_i \deg f_i < n をみたせば、共通零点の集合 V⊂FqnV \subset \mathbb{F}_q^n の元の個数は pp で割り切れる。特に fif_i の定数項がすべて 00 なら、VV は 00 以外の点を含む(シュヴァレーの定理)。

証明. P=∏i=1r(1−fiq−1)P = \prod_{i=1}^r(1 - f_i^{q-1}) とおくと、c≠0c \neq 0 なら cq−1=1c^{q-1} = 1 なので、P(x)P(x) は x∈Vx \in V なら 11、そうでなければ 00。よって Fq\mathbb{F}_q において ∣V∣⋅1=∑x∈FqnP(x)\lvert V \rvert \cdot 1 = \sum_{x \in \mathbb{F}_q^n}P(x)。deg⁡P<(q−1)n\deg P < (q - 1)n なので PP の各単項式 x1k1⋯xnknx_1^{k_1} \cdots x_n^{k_n} はある kj<q−1k_j < q - 1 をもち、補題 11.18 より

∑x∈Fqnx1k1⋯xnkn=∏j=1n∑xj∈Fqxjkj=0\sum_{x \in \mathbb{F}_q^n} x_1^{k_1} \cdots x_n^{k_n} = \prod_{j=1}^{n}\sum_{x_j \in \mathbb{F}_q} x_j^{k_j} = 0

よって ∣V∣≡0(modp)\lvert V \rvert \equiv 0 \pmod p。後半は 0∈V0 \in V より ∣V∣≥p≥2\lvert V \rvert \geq p \geq 2 から従う。□\square

たとえば、Fq\mathbb{F}_q 上の 3 変数以上の 2 次形式は自明でない零点をもつ。x2+y2−z2=0x^2 + y^2 - z^2 = 0 の Fp3\mathbb{F}_p^3 における解は p2p^2 個で(問題 11.8)、確かに pp で割り切れる。

11.9 有限体上の二次曲線の点の個数

qq を奇数とし、平方指標 (quadratic character) η ⁣:Fq→{0,±1}\eta\colon \mathbb{F}_q \to \lbrace 0, \pm 1 \rbrace を η(0)=0\eta(0) = 0、aa が Fq×\mathbb{F}_q^\times の元の平方なら η(a)=1\eta(a) = 1、そうでなければ −1-1 と定める(q=pq = p ならルジャンドル記号 (ap)\left(\frac{a}{p}\right)。第1章 定義 1.46)。Fq×\mathbb{F}_q^\times は偶数位数の巡回群なので、平方元は指数 2 の部分群をなし、η\eta は乗法的で ∑a∈Fqη(a)=0\sum_{a \in \mathbb{F}_q}\eta(a) = 0、x2=ax^2 = a の解の個数は 1+η(a)1 + \eta(a) である。

定理 11.20 qq を奇数、a,b,c∈Fq×a, b, c \in \mathbb{F}_q^\times とすると、ax2+by2=cax^2 + by^2 = c の解 (x,y)∈Fq2(x, y) \in \mathbb{F}_q^2 の個数は q−η(−ab)q - \eta(-ab) である。特に奇素数 pp について、x2+y2=1x^2 + y^2 = 1 の Fp\mathbb{F}_p における解の個数は p−(−1p)p - \left(\frac{-1}{p}\right)、すなわち p≡1(mod4)p \equiv 1 \pmod 4 なら p−1p - 1、p≡3(mod4)p \equiv 3 \pmod 4 なら p+1p + 1 である。

証明. ax2=uax^2 = u をみたす xx は 1+η(u/a)=1+η(au)1 + \eta(u/a) = 1 + \eta(au) 個なので、解の個数は

N=∑u+v=c(1+η(au))(1+η(bv))=q+∑uη(au)+∑vη(bv)+η(ab)∑u∈Fqη(u(c−u))N = \sum_{u + v = c}\bigl(1 + \eta(au)\bigr)\bigl(1 + \eta(bv)\bigr) = q + \sum_u \eta(au) + \sum_v \eta(bv) + \eta(ab)\sum_{u \in \mathbb{F}_q}\eta\bigl(u(c - u)\bigr)

で、第 2・3 項は 00。u≠0u \neq 0 なら η(u(c−u))=η(u2(c/u−1))=η(c/u−1)\eta(u(c - u)) = \eta(u^2(c/u - 1)) = \eta(c/u - 1) で、uu が Fq×\mathbb{F}_q^\times を動くと w=c/u−1w = c/u - 1 は Fq∖{−1}\mathbb{F}_q \setminus \lbrace -1 \rbrace を動く。よって最後の和は ∑w≠−1η(w)=−η(−1)\sum_{w \neq -1}\eta(w) = -\eta(-1) で、N=q−η(−ab)N = q - \eta(-ab)。後半は第1章 系 1.50(2) による。□\square

例 11.21 p=7p = 7 では x2+y2=1x^2 + y^2 = 1 の解は 88 個:(0,±1)(0, \pm 1), (±1,0)(\pm 1, 0), (±2,±2)(\pm 2, \pm 2)(4+4=8≡14 + 4 = 8 \equiv 1)。射影平面の曲線 x2+y2=z2x^2 + y^2 = z^2 で考えると、無限遠点(z=0z = 0)を合わせて点の個数はつねに p+1p + 1 になる(問題 11.8)。

楕円曲線 y2=f(x)y^2 = f(x) の(無限遠点以外の)点も同じように ∑x(1+(f(x)p))\sum_x\bigl(1 + \left(\frac{f(x)}{p}\right)\bigr) 個と数えられるが、この和は簡単には求まらず、ハッセの定理による評価が要になる(21-elliptic-curves 第4章)。

11.10 応用:CRC・AES・リード–ソロモン符号

CRC. ビット列 bm−1⋯b1b0b_{m-1} \cdots b_1b_0 を多項式 ∑bixi∈F2[x]\sum b_ix^i \in \mathbb{F}_2[x] と同一視する。rr 次の生成多項式 (generator polynomial) GG を決めておき、送信者はメッセージ MM について R=xrM mod GR = x^rM \bmod G を計算し、T=xrM+RT = x^rM + R(MM の後ろに RR の rr ビットを付けたもの)を送る。G∣TG \mid T なので、受信者は受け取った列が GG で割り切れるかを調べる。誤りのパターンを EE(反転したビットの位置の多項式)とすると、誤りを見逃すのは G∣EG \mid E のときに限る。これが CRC(巡回冗長検査, cyclic redundancy check)である。

命題 11.22 GG を G(0)=1G(0) = 1 の rr 次式(r≥1r \geq 1)とする。

  1. 長さ rr 以下のバースト誤り E=xiBE = x^iB(B(0)=1B(0) = 1, deg⁡B<r\deg B < r。1 ビットの誤りは B=1B = 1)は検出される。
  2. (x+1)∣G(x + 1) \mid G なら、奇数個のビットの誤りは検出される。
  3. x‾\overline{x} の (F2[x]/(G))×(\mathbb{F}_2[x]/(G))^\times における位数を ee とすると、0<j−i<e0 < j - i < e の 2 ビットの誤り xi+xjx^i + x^j は検出される。GG が原始多項式なら e=2r−1e = 2^r - 1。

証明. (1) gcd⁡(G,x)=1\gcd(G, x) = 1 なので、G∣xiBG \mid x^iB なら G∣BG \mid B となり、B≠0B \neq 0, deg⁡B<r\deg B < r に反する。(2) E(1)E(1) は反転したビット数の偶奇を表すので奇数個なら E(1)=1E(1) = 1 だが、G∣EG \mid E なら (x+1)∣E(x + 1) \mid E で E(1)=0E(1) = 0。(3) G∣xi(1+xj−i)G \mid x^i(1 + x^{j-i}) なら G∣xj−i−1G \mid x^{j-i} - 1 で、e∣j−ie \mid j - i。□\square

例 11.23 G=x4+x+1G = x^4 + x + 1(原始多項式、e=15e = 15)、M=1101011011M = 1101011011 とすると、x4Mx^4M を GG で割った余りは R=1110R = 1110 で、送信列は 1101011011111011010110111110。この GG は長さ 4 以下のバースト誤りと、間隔が 15 未満の 2 ビットの誤りを検出する。イーサネット(IEEE 802.3)などで使われる CRC-32 の 32 次の生成多項式も F2\mathbb{F}_2 上の原始多項式である(計算機で確かめられる)。

AES. 共通鍵暗号 AES(NIST の規格 FIPS 197。規格は改訂されうる)では、バイト b7⋯b0b_7 \cdots b_0 を F28=F2[x]/(m)\mathbb{F}_{2^8} = \mathbb{F}_2[x]/(m), m=x8+x4+x3+x+1m = x^8 + x^4 + x^3 + x + 1 の元 ∑bixi\sum b_ix^i とみて、16 進 2 桁で {57}\lbrace 57 \rbrace のように書く。mm は既約だが原始的ではなく、{02}=x\lbrace 02 \rbrace = x の位数は 51、{03}=x+1\lbrace 03 \rbrace = x + 1 が原始元である(計算で確かめた)。和はビットごとの排他的論理和、xx 倍は 1 ビットの左シフトで、あふれたら x8≡x4+x3+x+1x^8 \equiv x^4 + x^3 + x + 1({1b}\lbrace 1b \rbrace)を加える。積はこれを繰り返して計算し、逆元は a−1=a254a^{-1} = a^{254}(a255=1a^{255} = 1)で求まる。

def xtime(a):              # x を掛ける
    a <<= 1
    return a ^ 0x11B if a & 0x100 else a

def gf_mul(a, b):          # F_{2^8} での積
    r = 0
    while b:
        if b & 1:
            r ^= a
        a, b = xtime(a), b >> 1
    return r

def gf_inv(a):             # a^254 = a^(-1)(a != 0)
    r, e = 1, 254
    while e:
        if e & 1:
            r = gf_mul(r, a)
        a, e = gf_mul(a, a), e >> 1
    return r

print(hex(gf_mul(0x57, 0x83)), hex(gf_mul(0x57, 0x13)), hex(gf_inv(0x53)))
# 0xc1 0xfe 0xca

結果は FIPS 197 の例 {57}∙{83}={c1}\lbrace 57 \rbrace \bullet \lbrace 83 \rbrace = \lbrace c1 \rbrace, {57}∙{13}={fe}\lbrace 57 \rbrace \bullet \lbrace 13 \rbrace = \lbrace fe \rbrace と一致する。後者は手でも計算でき、{57}\lbrace 57 \rbrace に xx を順に掛けると {ae},{47},{8e},{07}\lbrace ae \rbrace, \lbrace 47 \rbrace, \lbrace 8e \rbrace, \lbrace 07 \rbrace となるので、{13}=x4+x+1\lbrace 13 \rbrace = x^4 + x + 1 より {57}⊕{ae}⊕{07}={fe}\lbrace 57 \rbrace \oplus \lbrace ae \rbrace \oplus \lbrace 07 \rbrace = \lbrace fe \rbrace。AES の S ボックスは a↦a−1a \mapsto a^{-1}(0↦00 \mapsto 0)に F2\mathbb{F}_2 上のアフィン変換を合成したもので、{53}−1={ca}\lbrace 53 \rbrace^{-1} = \lbrace ca \rbrace から FIPS 197 の例 S({53})={ed}S(\lbrace 53 \rbrace) = \lbrace ed \rbrace が得られる(アフィン変換の式は省略する)。

リード–ソロモン符号. 相異なる α1,…,αn∈Fq\alpha_1, \dots, \alpha_n \in \mathbb{F}_q をとり、k−1k - 1 次以下の多項式 mm(係数 kk 個がメッセージ)を (m(α1),…,m(αn))(m(\alpha_1), \dots, m(\alpha_n)) に符号化する。相異なる符号語の差は 00 でない k−1k - 1 次以下の多項式の値なので、00 になる成分は k−1k - 1 個以下(第5章 系 5.30)で、符号語どうしは n−k+1n - k + 1 箇所以上で異なる。したがって ⌊(n−k)/2⌋\lfloor (n - k)/2 \rfloor 個までの誤りを訂正できる。QR コードや CD で使われている。

この先. リード–ソロモン符号・BCH 符号と CRC の巡回符号としての扱いは25-cryptography-coding 第6章、有限体上の楕円曲線の点の個数とハッセの定理は21-elliptic-curves 第4章、Gal⁡(F‾p/Fp)≅Z^\operatorname{Gal}(\overline{\mathbb{F}}_p/\mathbb{F}_p) \cong \widehat{\mathbb{Z}} は第13章(定理 13.17)で扱う。

まとめ

  • xqn−xx^{q^n} - x は次数が nn の約数のモニック既約多項式すべての積で、メビウスの反転公式から Nq(n)=1n∑d∣nμ(d)qn/dN_q(n) = \frac{1}{n}\sum_{d \mid n}\mu(d)q^{n/d}(F2\mathbb{F}_2 上 n=1,…,8n = 1, \dots, 8 で 2,1,2,3,6,9,18,302, 1, 2, 3, 6, 9, 18, 30)。
  • 原始元は φ(qn−1)\varphi(q^n - 1) 個、nn 次の原始多項式は φ(qn−1)/n\varphi(q^n - 1)/n 個。F‾p=⋃nFpn\overline{\mathbb{F}}_p = \bigcup_n \mathbb{F}_{p^n}。
  • トレースとノルムは全射で推移律をみたす。ヒルベルトの定理 90:N(a)=1  ⟺  a=b1−qN(a) = 1 \iff a = b^{1-q}、Tr⁡(a)=0  ⟺  a=b−bq\operatorname{Tr}(a) = 0 \iff a = b - b^q。
  • 因数分解は無平方分解(gcd⁡(f,f′)\gcd(f, f') との gcd⁡\gcd をくり返し、重複度が pp の倍数の因子は pp 乗根をとって扱う)・次数別分解(gcd⁡(f,xqd−x)\gcd(f, x^{q^d} - x))・等次数分解(カントール–ザッセンハウス法。qq が奇数なら 1 回の成功確率は 1/21/2 以上)の順に行う。
  • シュヴァレー–ワーニング:次数の和が変数の個数より小さければ、共通零点の個数は pp の倍数。
  • ax2+by2=cax^2 + by^2 = c の解は q−η(−ab)q - \eta(-ab) 個。x2+y2=1x^2 + y^2 = 1 の Fp\mathbb{F}_p 上の解は p−(−1p)p - \left(\frac{-1}{p}\right) 個。
  • CRC・AES・リード–ソロモン符号は F2[x]\mathbb{F}_2[x] や F28\mathbb{F}_{2^8} の算術の上に作られている。

演習問題

問題 11.1 ★ 例 11.1(2) の F16\mathbb{F}_{16} で、(α3+α2)(α2+1)(\alpha^3 + \alpha^2)(\alpha^2 + 1) と (α2+α+1)−1(\alpha^2 + \alpha + 1)^{-1} を求めよ。また x2+x+1x^2 + x + 1 の F16\mathbb{F}_{16} における根を求めよ。

解答

表より α3+α2=α6\alpha^3 + \alpha^2 = \alpha^6, α2+1=α8\alpha^2 + 1 = \alpha^8 なので積は α14=α3+1\alpha^{14} = \alpha^3 + 1。α2+α+1=α10\alpha^2 + \alpha + 1 = \alpha^{10} なので逆元は α5=α2+α\alpha^5 = \alpha^2 + \alpha。x2+x+1x^2 + x + 1 の根は位数 3 の元 α5=α2+α\alpha^5 = \alpha^2 + \alpha と α10=α2+α+1\alpha^{10} = \alpha^2 + \alpha + 1 である。

問題 11.2 ★ F3\mathbb{F}_3 上の 2 次のモニック既約多項式をすべて求め、系 11.4 と照合せよ。また N3(3)N_3(3), N3(4)N_3(4) を求めよ。

解答

2 次式は F3\mathbb{F}_3 に根をもたなければ既約で、x2+1x^2 + 1, x2+x+2x^2 + x + 2, x2+2x+2x^2 + 2x + 2 の 3 個(0,1,20, 1, 2 を代入して確かめる)。系 11.4 より N3(2)=(9−3)/2=3N_3(2) = (9 - 3)/2 = 3 で一致する。N3(3)=(27−3)/3=8N_3(3) = (27 - 3)/3 = 8, N3(4)=(81−9)/4=18N_3(4) = (81 - 9)/4 = 18。

問題 11.3 ★★ F2\mathbb{F}_2 上の 6 次既約多項式 9 個のうち原始的なものは何個か。原始的でないものについて根の位数を求め、個数が合うことを確かめよ。

解答

定理 11.6 より φ(63)/6=36/6=6\varphi(63)/6 = 36/6 = 6 個。6 次既約多項式の根は F64\mathbb{F}_{64} の元で、F8\mathbb{F}_8(a7=1a^7 = 1)にも F4\mathbb{F}_4(a3=1a^3 = 1)にも属さない。よって位数は 6363 の約数のうち 77 も 33 も割らない 9,21,639, 21, 63 のどれかで、逆にこれらの位数の元は 6 次である。位数 99 の元は φ(9)=6\varphi(9) = 6 個で 1 個の多項式(x9−1=(x3−1)(x6+x3+1)x^9 - 1 = (x^3 - 1)(x^6 + x^3 + 1) より x6+x3+1x^6 + x^3 + 1)、位数 2121 の元は φ(21)=12\varphi(21) = 12 個で 2 個の多項式、位数 6363 は原始多項式 6 個で、計 1+2+6=9=N2(6)1 + 2 + 6 = 9 = N_2(6)。

問題 11.4 ★★ 系 11.13 を使って、例 11.1(2) の F16\mathbb{F}_{16} で x2+x+α=0x^2 + x + \alpha = 0 は解をもち、x2+x+α3=0x^2 + x + \alpha^3 = 0 は解をもたないことを示し、前者の解を求めよ。

解答

Tr⁡(α)=0\operatorname{Tr}(\alpha) = 0(例 11.11)。Tr⁡(α3)=α3+α6+α12+α24\operatorname{Tr}(\alpha^3) = \alpha^3 + \alpha^6 + \alpha^{12} + \alpha^{24} で、α24=α9\alpha^{24} = \alpha^9 なので、表より 1000+1100+1111+1010=00011000 + 1100 + 1111 + 1010 = 0001、すなわち Tr⁡(α3)=1\operatorname{Tr}(\alpha^3) = 1。よって前者だけが解をもつ。b=α9=α3+αb = \alpha^9 = \alpha^3 + \alpha とすると b2+b=α18+α9=α3+α3+α=αb^2 + b = \alpha^{18} + \alpha^9 = \alpha^3 + \alpha^3 + \alpha = \alpha で、解は α3+α\alpha^3 + \alpha と α3+α+1\alpha^3 + \alpha + 1。

問題 11.5 ★★ n≥2n \geq 2 について (qn−2qn/2)/n<Nq(n)≤qn/n(q^n - 2q^{n/2})/n < N_q(n) \leq q^n/n を示せ。

解答

上の不等式は (1) から。(1) より各 dd で dNq(d)≤qddN_q(d) \leq q^d なので、m=⌊n/2⌋m = \lfloor n/2 \rfloor とすると

nNq(n)=qn−∑d∣n, d<ndNq(d)≥qn−∑d=1mqd=qn−qm+1−qq−1>qn−qq−1qm≥qn−2qn/2nN_q(n) = q^n - \sum_{d \mid n,\ d < n} dN_q(d) \geq q^n - \sum_{d=1}^{m} q^d = q^n - \frac{q^{m+1} - q}{q - 1} > q^n - \frac{q}{q - 1}q^m \geq q^n - 2q^{n/2}

(nn の真の約数は n/2n/2 以下で、q/(q−1)≤2q/(q - 1) \leq 2)。

問題 11.6 ★★ 次数別分解で x5+x4+1∈F2[x]x^5 + x^4 + 1 \in \mathbb{F}_2[x] を因数分解せよ。

解答

f′=5x4+4x3=x4f' = 5x^4 + 4x^3 = x^4 で f(0)=1f(0) = 1 より gcd⁡(f,f′)=1\gcd(f, f') = 1、ff は無平方。f(0)=f(1)=1f(0) = f(1) = 1 より h1=gcd⁡(f,x2+x)=1h_1 = \gcd(f, x^2 + x) = 1。x4+x=x(x+1)(x2+x+1)x^4 + x = x(x + 1)(x^2 + x + 1) で、x3≡1(modx2+x+1)x^3 \equiv 1 \pmod{x^2 + x + 1} より f≡x2+x+1≡0f \equiv x^2 + x + 1 \equiv 0 なので、h2=gcd⁡(f,x4+x)=x2+x+1h_2 = \gcd(f, x^4 + x) = x^2 + x + 1。g2=f/h2=x3+x+1g_2 = f/h_2 = x^3 + x + 1 は deg⁡g2=3<6\deg g_2 = 3 < 6 なので既約。よって x5+x4+1=(x2+x+1)(x3+x+1)x^5 + x^4 + 1 = (x^2 + x + 1)(x^3 + x + 1)。

問題 11.7 ★★★ pp を素数とする。任意の 2p−12p - 1 個の整数 a1,…,a2p−1a_1, \dots, a_{2p-1} の中から、和が pp で割り切れる pp 個を選べることを示せ(エルデシュ–ギンツブルク–ジフの定理の素数の場合。ヒント:定理 11.19 を 2 つの多項式 ∑iaixip−1\sum_i a_ix_i^{p-1}, ∑ixip−1\sum_i x_i^{p-1} に使う)。

解答

Fp\mathbb{F}_p 上の 2p−12p - 1 変数の多項式 f1=∑iaixip−1f_1 = \sum_i a_ix_i^{p-1}, f2=∑ixip−1f_2 = \sum_i x_i^{p-1} は次数の和 2p−2<2p−12p - 2 < 2p - 1 で、定数項は 00。定理 11.19 より 00 でない共通零点 xx がある。S={i∣xi≠0}S = \lbrace i \mid x_i \neq 0 \rbrace とおくと、i∈Si \in S なら xip−1=1x_i^{p-1} = 1 なので、f2(x)=0f_2(x) = 0 より ∣S∣≡0(modp)\lvert S \rvert \equiv 0 \pmod p。1≤∣S∣≤2p−11 \leq \lvert S \rvert \leq 2p - 1 より ∣S∣=p\lvert S \rvert = p で、f1(x)=0f_1(x) = 0 より ∑i∈Sai≡0(modp)\sum_{i \in S}a_i \equiv 0 \pmod p。

問題 11.8 ★★ pp を奇素数とする。(1) 射影平面の曲線 x2+y2=z2x^2 + y^2 = z^2 の Fp\mathbb{F}_p 有理点(P2(Fp)\mathbb{P}^2(\mathbb{F}_p) の点)は p+1p + 1 個であることを示せ。(2) x2+y2−z2=0x^2 + y^2 - z^2 = 0 の Fp3\mathbb{F}_p^3 における解は p2p^2 個であることを示せ。

解答

(1) z≠0z \neq 0 の点は z=1z = 1 と正規化でき、定理 11.20 より p−(−1p)p - \left(\frac{-1}{p}\right) 個。z=0z = 0 の点は x2+y2=0x^2 + y^2 = 0, (x,y)≠(0,0)(x, y) \neq (0, 0) で、y=0y = 0 なら x=0x = 0 となるので y=1y = 1 と正規化でき、x2=−1x^2 = -1 の解 1+(−1p)1 + \left(\frac{-1}{p}\right) 個。合計 p+1p + 1。(2) 00 以外の解は射影平面の点 1 つにつき p−1p - 1 個(Fp×\mathbb{F}_p^\times 倍)あるので、(p+1)(p−1)+1=p2(p + 1)(p - 1) + 1 = p^2 個(+1+1 は 00)。

問題 11.9 ★★ p≡3(mod4)p \equiv 3 \pmod 4 を素数とする。(1) Fp2=Fp(i)\mathbb{F}_{p^2} = \mathbb{F}_p(i)(i2=−1i^2 = -1)と書けることを示せ。(2) NFp2/Fp(x+yi)=x2+y2N_{\mathbb{F}_{p^2}/\mathbb{F}_p}(x + yi) = x^2 + y^2 を示し、定理 11.10(2) を使って x2+y2=1x^2 + y^2 = 1 の Fp\mathbb{F}_p における解が p+1p + 1 個であることを示せ(定理 11.20 の別証明)。(3) p=3p = 3 のとき、ノルムが 11 の元をヒルベルトの定理 90 の形 b1−3b^{1-3} で書け。

解答

(1) 第1章 系 1.50(2) より −1-1 は法 pp の平方非剰余なので、x2+1x^2 + 1 は Fp\mathbb{F}_p 上既約で、Fp[x]/(x2+1)=Fp(i)\mathbb{F}_p[x]/(x^2 + 1) = \mathbb{F}_p(i) は p2p^2 元体である。(2) p−3p - 3 は 4 の倍数なので ip=(i4)(p−3)/4i3=−ii^p = (i^4)^{(p-3)/4}i^3 = -i、よって (x+yi)p=x−yi(x + yi)^p = x - yi で、N(x+yi)=(x+yi)(x−yi)=x2+y2N(x + yi) = (x + yi)(x - yi) = x^2 + y^2。定理 11.10(2) より N(z)=1N(z) = 1 となる zz は (p2−1)/(p−1)=p+1(p^2 - 1)/(p - 1) = p + 1 個で、これは x2+y2=1x^2 + y^2 = 1 の解 (x,y)(x, y) と 1 対 1 に対応する。(3) ノルム 11 の元は 1,2,i,2i1, 2, i, 2i の 4 個。g=1+ig = 1 + i のべき(例 11.1(1))を使うと b1−3=b−2b^{1-3} = b^{-2} は b=1,g,g2,g3b = 1, g, g^2, g^3 に対し 1,g6=i,g4=2,g2=2i1, g^6 = i, g^4 = 2, g^2 = 2i となる。

この章を読み終えたら

「読了」にすると、学習記録と地図に反映されます。

この章の誤りを報告GitHub で見る