数学に詳しくないエンジニアの体入門

数学に詳しくないエンジニアの体入門

サイオステクノロジーの菊地啓哉です。数学の概念の1つである体について書こうと思います。たぶん、数学に慣れている人は記号を駆使して書く方が明確で理解しやすいかとは思いますが、私が慣れていないので、記号での表現はしておりません。

ゼロ知識証明(zk-STARK)や電子署名(ECDSA)などを調べていると、有限体の話とかがしれっと出てきます。それでちょっと気になって中身を勉強しようとしても、本質じゃないところでちょっと躓きそうになったりするので、ふんわりとではありますが有限体の前提となる、体の理解を整理したいと思います。今回は一部の例などを除いて高校生くらいでも理解できるような内容にしているつもりでいます。たぶん。

群論もちゃんと理解していないエンジニアがふんわりと書いているので、ところどころ厳密性に欠ける点があることはご了承ください。

体の話に入る前に、前提となる、群(ぐん、Group)について触れておきます。

群はある要素の集まり(集合;ここでは G と表します)と二項演算(ここでは ○ と表します)が定義されていて、以下の性質を持ちます。

また、特に可換性 a ○ b = b ○ a を持つ場合は、可換群 と呼びます。 群をざっくり理解するなら、逆元を引き算と考えて、加算減算(足し算引き算)ができる集合です。

群の例

  • 整数の足し算(逆元は (-1)倍した数)
  • 0以外の有理数の掛け算(逆元は逆数)
  • 行列式が0でない2次正方行列の掛け算(逆元は逆行列)
  • n をある自然数として、mod n(nで割ったあまり)の中で足し算(aが0以外の時、aの逆元は (n-a)。位数がnの巡回群と呼ぶ。)
  • xy平面で、{何もしない、x軸反転、y軸反転、原点対称移動}の4つの操作、二項演算は2つの操作を続けて実行することを意味する

群とならない例

  • 整数の掛け算(±1以外の元に逆元が存在しない)
  • 有理数の掛け算(0に逆元が無い)
  • 2次正方行列の掛け算(行列式が0の行列には逆元が無い)
  • n をある自然数として、mod n(nで割ったあまり)の中で掛け算(0に逆元が無い)
  • 3次元ベクトルの内積(演算結果が3次元ベクトルでない)
  • 3次元ベクトルの外積(単位元が無い、結合法則も成り立たない)

本題の体(たい、Field)の話に入ります。まず、体の定義としては、集合 K と2つの二項演算(ここでは 加法 + と 乗法 * で表します。また、ここではそれぞれ足し算、掛け算と表現することもあります。)が以下の性質を持ちます。(一般に、体というと可換体を指すようなので、可換体の定義となっています)

体の定義

体をざっくり理解するなら、加減乗除の四則演算ができる集合です。

零元

ここで、体における個人的最重要ポイントの零元に関して説明いたします。零元は加法 + の単位元です(定義)。単位元は e ○ a = a ○ e = a を満たす e のことなので、加法 + で考えると、 e + a = a + e = a となる e のこととなります。 K の任意の元 a, b の乗法 * でこの零元の定義と分配法則を考えると

a * b = (a + e) * b = a * b + e * b

となるので、e * b = e となることがわかります。(左辺と右辺で比較すると、 e * b は加法で値を変化させないことがわかる。これは加法の単位元、つまり零元であるということ。)まとめると、零元 e はその名の通り、普通の数の 0 のように以下の2つの性質を持ちます。

ここまで、乗法 * の単位元を e としてきましたが、単位元は加法 +、乗法 * それぞれに対して存在すること、それぞれが普通の数の 0 と 1 と同じような性質であることから、ここからは特に断りなく加法 + の単位元(零元)を 0、乗法 * の単位元を 1 と表現します。

乗法の逆元

体の定義にある、「K の零元(加法 + の単位元)を除いた全ての元に対して乗法 * に関して逆元を持つ」ですが、これは個人的に体で2番目に重要なポイントです。

K の2つの元 a, b があって、 a * b = 0 となっている時、 a ≠ 0 かつ b ≠ 0 とすると、両辺に左から a の逆元と b の逆元をかけると左辺は、 b-1 * a-1 * a * b = b-1 * b = 1 となり乗法単位元になり、右辺は零元になにをかけても零元のままなので零元となり、等式が成り立ちません。よって、 a, b の少なくともどちらかが零元ということになります。(片方でも零元なら等式が成り立つのは明らかなのでスキップします。本当に等式が成り立っていないのか、つまり零元と乗法単位元は本当に異なる元なのかは考えても良いのですが、それが成り立つのは、元が1つしかない体しかありません。)

このことが何を意味するかと言えば、代数方程式を解くということが、因数分解することと同義になります。次の式で最高次の係数は0ではないとします。また、累乗は普通の数の累乗と同様、指数の数だけ底の元を掛け算した値を意味します。

という代数方程式をxについて解きたい時に、次のように因数分解できれば、解がわかります。

つまり、二次方程式などでやってきたことと同じ常識が通じるようになります。興奮しますね。

逆に、逆元が存在しないようなものを考えてみると、例えば2次正方行列は足し算と掛け算について体ではありません。これは上に書いたように、行列式が0の場合には零行列でなくとも逆行列が存在しないためですが、2つの零行列ではない行列の掛け算が零行列になることがあります。このような場合には方程式を解くのが厄介になりそうですが、体であれば厄介なことを考えずに済みます。

おわりに

全く技術的なことには触れずに数学の体について書きました。普通の数みたいなものだなとか、何の役に立つのかわからん、といった感じかもしれないですが、言葉に慣れればそんなに難しくない内容だったのではないかなと思います。続きが書けたら有限体について書きたいと思います。

ということで、今回はここで終わりとなります。

またかきます

またね

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です