楕円曲線論はじめの一歩 (6)

今回のおはなし

みなさんこんにちは。

VIPPOOL でエンジニアをやっています、星月です。

前回は掛け算(割り算)を抽象化した概念、「体」について説明しました。
そして、「実数」は「体」の条件を満たしてることを確認しました。
今回は、他にどんなものが「体」と呼べるのか、みていこうと思います。

自然数は?

自然数とは、1 2 3 4... のことですね。流派によっては 0 も含みます。
自然数は足し算について、逆元(マイナス元)が存在しないので、
体の条件を満たしていません。

なら整数は?

それでは自然数にマイナスも含めた整数ではどうでしょう?

確かに、足し算は可換群となっています。
しかし、掛け算に対して、逆元が存在しないので、体の条件を満たしていません。

例えば、3 の掛け算に対する逆元は \frac{1}{3} で整数ではありません。

有限巡回群に掛け算を導入する

有限巡回群 \mathbb{Z}/7\mathbb{Z} の足し算はこう定義していました。

(x + y) \bmod 7

これと同じように掛け算も定義してみます。

(x \times y) \bmod 7

実はこうすると、体の条件を満たすようになります。

確認してみましょう。

まず、足し算が群であることは確認しました。

足し算は可換でしょうか?実は足し算を定義する式を見れば一目瞭然で、
(x + y) \bmod 7 = (y + x) \bmod 7
なので、左右を入れ替えても結果は同じことがわかります。
つまり、足し算に対しては可換群であります。

次に、掛け算について、0 以外が可換群であるか確認してみましょう。

掛け算の定義で mod 7 しているので、掛け算の結果は必ず 0 ~ 6 の間に含まれます。
つまり、掛け算に対して“閉じて”います。

結合法則を確認するのは少々手間なので細かいところは省きますが、ざっくりと、
(((x \times y) \bmod 7) \times z) \bmod 7 = (x \times ( (y \times z) \bmod 7)) \bmod 7
が成り立つので、結合法則は成り立つといえます。

掛け算に対する単位元は 1 ですね。

逆元ですが、以下のようになっています。

逆元 元×逆元 mod 7
1 1 1 1
2 4 8 1
3 5 15 1
4 2 8 1
5 3 15 1
6 6 36 1

全ての元に対して逆元が存在していますね。

掛け算に対して可換かどうか。
(x \times y) \bmod 7 = (y \times x) \bmod 7
左右を入れ替えても同じ結果になることがわかると思います。

0 の掛け算についても、結合法則を満たすし、可換なのは明白だと思います。

最後に分配法則。これも細かいとこをまで見るときりがないので、ざっくりと
(x \times ( (y + z) \bmod 7) = ( ( (x \times y) \bmod 7) + ( (x \times z) \bmod 7)) \bmod 7
が成り立つので、分配法則も成り立ちます。

以上より、\mathbb{Z}/7\mathbb{Z} は、掛け算を
(x \times y) \bmod 7
と定義することで、「体」と呼べることが確認できました。

実はこれは別の名前がついていまして、有限体、もしくはガロア体と呼ばれています。
\mathbb{F}_7 もしくは GF(7) と書いたりもします。

7 以外の数字でも有限体になるのでしょうか?

答えは No。例えば mod 12 の有限巡回群に同じ掛け算を定義しても、
元 6 に対する逆元は存在しないため、「体」の条件を満たしません。

実は、mod の後ろ側、7 にあたる部分が“素数”であれば「体」の条件を満たして「有限体」となる。
ということがわかっています。そのため、素数を使って作った有限体のことを
総称して、素数 prime の頭文字をとって \mathbb{F}_p とか GF(p) と書きます。

暗号の世界ではよく「素数」を使いますが、それは「有限体」を作るために必要なんです。

まとめ

今回は、体の条件を満たすものについて触れました。

メインディッシュの「有限体」は、暗号の世界では非常に重要な概念ですので、
よーく覚えておいてくださいね。

今回はここまで。
ご質問、ご意見等ありましたらお気軽にリプライください。