FiniteField

FiniteField[p,d]

個の元からなる有限体を与える.

FiniteField[p,f]

の既約多項式である有限体 を与える.

FiniteField[p,,rep]

"Polynomial"または"Exponential"の体の元表現 rep を使う.

詳細

  • 有限体はガロア(Galois)体としても知られている.
  • 有限体は,代数計算,暗号学,符号化理論,組合せ論,代数幾何学,整数論,有限幾何学にしばしば用いられる.
  • は,4つの算術演算+-*÷がすべてある代数系である.有限体は,素数 と正の整数 について 個の元を持つことができる.
  • 番目の元 はすべての について となる加法の単位元で,番目の元 はすべての について となる乗法の単位元を与える.
  • FiniteFieldElement[,k]または[k]を使って 番目の元 が入手できる.これはと表示される.
  • 同じ体にあるFiniteFieldElementオブジェクトは算術操作によって自動的に結合される.
  • 有限体からの係数を持つ多項式には,PolynomialGCDFactorExpandPolynomialQuotientRemainderResultantのような多項式操作を使うことができる.有限体からの係数を持つ有理関数には,TogetherおよびCancelを使うことができる.
  • DetInverseRowReduceNullSpaceMatrixRankLinearSolveのような線形代数操作は,有限体からの項を持つ行列に使うことができる.
  • SolveおよびReduceを使って方程式系を有限体上で解くことができる.
  • FiniteField"Polynomial""Exponential"の異なる2つの表現 rep をサポートする.
  • "Polynomial"表現は複素数 のデカルト表現に似た表現で,加算と減算は簡単だが乗算と除算は少々難しくなる.
  • 表現 次数 d の既約多項式 を使って商を持つ体を識別する:
  • の各元は多項式 として表される.基底がのベクトルと考えることもできる.
  • 列挙 元は辞書的順序の逆順に列挙される.
  • ,,,,,
  • 操作 かつ とすると以下になる.
  • かつ
  • (PolynomialRemainder) を法として簡約されて次数 になる.. )で乗法の逆元 は拡張多項式の最大公約数を使って計算される. は既約なので,.したがって,多項式 について拡張多項式の最大公約数から が得られる. を法として簡約すると になる.したがって である.
  • "Exponential"表現は複素数の極表現 に似た表現で,乗算と除算は簡単だが加算と減算は少々難しくなる.
  • 表現 "Polynomial"表現におけるように,この表現も次数 d の既約多項式 を使うが,は原始的でもなければならない.が原始的なので, のベキはの中の以外のすべての元を表す.
  • が乗法について巡回群なので,この表現は巡回群表現としても知られている.
  • 列挙 元は指数順に列挙される.
  • , , , , , ,
  • 操作 かつ とすると以下になる.
  • u *v=alpha^(TemplateBox[{{(, {i, +, j}, )}, {(, {q, -, 1}, )}}, Mod])かつ
  • 反転すると となる.加法と減法については には となるような簡単な規則はなく,体のサイズが で線形な参照テーブルに格納されている.これによってデータ格納という費用はかかるが操作が速くなる.これはまた"Exponential"表現は大き体には適していないことも意味している.
  • 表現間の現実的な違いは次の通りである.
  • "Polynomial"の作成には時間がかからず,余分なメモリも使わない.大きい体に使えるが操作は若干遅くなる.
  • "Exponential"の作成には若干時間がかかり,体の大きさに比例して余分なメモリも必要となる.小さい体に使えて操作は若干速い.
  • Information[FiniteField[], prop]は有限体の特性 prop を与える.次は指定可能な特性である.
  • "Characteristic"有限体の標数 p
    "ExtensionDegree"上の有限体の拡大次数 d
    "FieldSize"体の元の数 q=pd
    "FieldIrreducible"体の構築に使われた多項式関数 f
    "ElementRepresentation""Polynomial"または"Exponential"

例題

すべて開くすべて閉じる

  (2)

素体を表す:

演算を行う:

多項式代数を行う:

標数,拡大次数の有限体を表す:

多項式係数または指数を使って体の元を指定する:

算術計算を行う:

多項式代数を行う:

スコープ  (13)

表現と特性  (4)

標数,拡大次数の有限体を表す:

体の構築に使われた既約多項式を求める:

デフォルトで,体の元の多項式表現が使われる:

体のその他の特性を求める:

体の加法単位元と乗法単位元はの指数はである:

カスタムの既約多項式を使って有限体を構築する:

多項式が既約であることを確認する:

体を表す:

体の規約元は体の標数を法とする指定の多項式に等しい:

元の指数表現を使う有限体を構築する:

体の表現に使われた多項式は原始的である:

体の加法単位元と乗法単位元の指数はである:

体の非零の元はすべて,指数がの元のベキである:

素体を表す:

49個の元がある有限体を表す:

算術操作  (3)

有限体内で算術操作を行う:

有理ベキは指数分母 の場合にのみ使うことができる:

体の元によっては,平方根が存在しないものもある:

算術操作は整数を体の元として扱う:

有理数は体の標数を法として有効でなければならない:

Elementを使ってどの有理数が体の元と識別できるかを判定する:

有理数は比較のために体の元で識別される:

異なる有限体の元を結合することはできない:

同じ標数と規約体を持つ体だが,異なる元表現が許される:

自己同型と埋込み  (2)

有限体の元のすべての共役を計算する:

共役は a の最小多項式の根である:

フロベニウス(Frobenius)自己同型は に写像する:

ある有限体の別の有限体への埋込みを計算する:

埋込みを通して有限体の元を写像する:

埋込みは算術操作を保持する:

有限体上の多項式  (2)

有限体上で多項式を使って計算する:

積を展開する:

最大公約数を計算する:

分数を約分する:

商と剰余を計算する:

多項式を因数分解する:

終結式を計算する:

多変量の多項式で計算する:

有限体の拡大上で多項式を因数分解する:

多項式 上で既約である:

をより大きい体 に埋め込んだ後で を因数分解する:

有限体上の線形代数  (1)

有限体上で行列の計算を行う:

行列の乗算:

行列の累乗を計算する:

行列式を計算する:

逆行列を計算する:

線形方程式を解く:

行列の階数と零空間を計算する:

行列のLU分解を計算する:

行列の行削減:

行列の固有多項式を求める:

有限体上の方程式  (1)

有限体上で方程式を解く:

位置変数の方程式:

線形方程式系:

多項式系:

解の例を求める:

限定子を除去する:

アプリケーション  (8)

エラー訂正コードを実装する.ハミングコードは ビットのメッセージを ビットシーケンスで符号化し,エラーを1つ修正することができる:

指数の元表現を使って を元の数がの有限体とし, を構築するための既約多項式, の生成元とする:

符号化されたメッセージは の係数リストである.ただし,の係数リストはもとのメッセージである:

を係数リストが受信したメッセージである多項式とする:

受信したメッセージにエラーがなければ であり,したがって である:

受信したメッセージの位置 にエラーが1つ含まれていれば であり,したがって である:

受信したメッセージをチェックして修正する:

メッセージの復号化には の係数リストを計算する:

受信したメッセージのエラーが1つ以下の場合,復号化されたメッセージは正しい:

任意の素数ベキ について,次数 直交ラテン方陣を構築する.次数 のラテン方陣は,各行各列が 要素中の各1要素を厳密に1回含む 配列である.2つの配列を並置して構成された ペアがすべて異なる場合,そのラテン方陣のペアは直交すると言われる:

すべての配列がラテン方陣であることを確認する:

配列の全ペアが直交であることを確認する:

のときの総和 がすべてことなっているなら,整数の有限集合はSidon集合である. 個の整数のSidon集合を素数ベキ について構築する:

が長さ のSidon集合であることを確認する:

アルファベットの 文字からなる 次のde Bruijn列は, 文字の各の列が の循環列に厳密に1回現れるようなアルファベットの 文字の循環列 である. 文字のアルファベットの 次de Bruijn列を,素数ベキ について構築する:

文字のアルファベットについての次数 のde Bruijn列であることを確認する:

行列 のすべての成分がH.TemplateBox[{H}, Transpose]=n I_nなら, はアダマール(Hadamard)行列である.任意の素数ベキ (TemplateBox[{{q, =, 3}, 4}, Mod])について次数 のアダマール行列を構築する:

高度暗号化標準(AES)アルゴリズムで使われている「Rijndael S-Box Step」を実装する.「Nyberg S-Box」と呼ばれる最初の部分はにおける乗法の逆元を使用する:

2番目の部分には上のアフィン変換が含まれる:

Forward S-Boxは2つの部分からなる:

Forward S-Boxの表を16進法で計算する:

逆S-Box変換を定義する:

逆S-Box表を16進法で計算する:

逆S-BoxがForward S-Boxの逆であることを確認する:

DiffieHellman公開鍵の暗号システムを2049ビットの素数で実装する:

の原始元を求める:

最初のユーザが秘密鍵を選ぶ:

公開鍵は,からなる:

2番目のユーザはを選ぶ:

2048ビットのメッセージ を送るために,2番目のユーザは を送る:

最初のユーザは を計算して が復元できる:

デジタル署名スキームを実装する.素数 を固定しての原始元 を求める:

の秘密の整数を選んで を公開する:

メッセージ のための署名は,となるような より小さい正の整数のペアである.署名の計算には秘密の整数 の知識が必要である:

署名は公に知られている情報を使って確認することができる:

ランダムに生成されたメッセージのための署名を計算する:

署名を確認する:

特性と関係  (7)

標数 ,拡大次数 の有限体は 個の元を持つ:

標数 の有限体の元はを満足する:

したがって,写像 FrobeniusAutomorphismとして知られる体の自己同型である:

体の生成元 は既約である体の根である:

FrobeniusAutomorphismを使って の残りの根を求める:

個の元を持つ有限体のすべての元は の根である:

事実,

上の次数 の任意の既約多項式は,個の元がある体で 個の根を持つ:

IrreduciblePolynomialQModulusp を使って上における既約性を確かめる:

FactorExtension を使って f 上における線形係数の積であることを確かめる:

FiniteField[p,1]を使って素体上で計算する:

Modの結果と比較する:

上の多項式計算:

Modulusオプションで得られた結果と比較する:

ToFiniteFieldを使って整数係数を有限体の素部分体の元に変換する:

FromFiniteFieldは係数を整数に変換し直す:

係数を有限体の元に変換する.t は体の生成元を表す:

有限体の係数を t の多項式に変換する.ただし,t は体の生成元を表す:

Wolfram Research (2023), FiniteField, Wolfram言語関数, https://reference.wolfram.com/language/ref/FiniteField.html (2024年に更新).

テキスト

Wolfram Research (2023), FiniteField, Wolfram言語関数, https://reference.wolfram.com/language/ref/FiniteField.html (2024年に更新).

CMS

Wolfram Language. 2023. "FiniteField." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/FiniteField.html.

APA

Wolfram Language. (2023). FiniteField. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FiniteField.html

BibTeX

@misc{reference.wolfram_2024_finitefield, author="Wolfram Research", title="{FiniteField}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/FiniteField.html}", note=[Accessed: 05-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_finitefield, organization={Wolfram Research}, title={FiniteField}, year={2024}, url={https://reference.wolfram.com/language/ref/FiniteField.html}, note=[Accessed: 05-November-2024 ]}