ModularInverse

ModularInverse[k,n]

n を法とする k のモジュラ逆数を与える.

詳細

  • ModularInverseはモジュラ乗法逆数としても知られている.
  • 記号操作・数値操作の両方に適した数学的整数関数である.
  • モジュラ演算と暗号学でよく使われる.
  • ModularInverse[k,n]は,r kn で割った余りが1になるような数 r を与える.
  • kn が互いに素でなければモジュラ逆数は存在せず,ModularInverse[k,n]は未評価のままになる.

例題

すべて開くすべて閉じる

  (2)

5を法とした3の逆数を計算し,結果をチェックする:

法を固定して数列をプロットする:

スコープ  (2)

数値評価  (2)

整数を使って計算する:

ガウス整数:

大きい整数を使って計算する:

アプリケーション  (4)

基本的なアプリケーション  (2)

2つの数の積が1のとき,その2つの数互いに互いのモジュラ逆数である:

逆行列のモジュラ計算:

まず,随伴行列を計算する:

次の行列のモジュラ逆数を計算する:

逆数が正しい結果を与えることを確かめる:

整数論  (2)

RSAのような暗号スキームを構築する.まず法から始める:

n を法とした乗積群の普遍指数を求める:

秘密鍵:

公開鍵:

メッセージを暗号化する:

それを解読する:

現行時刻をシードとして使う乱数生成器を作成する:

法のパラメータを選ぶ:

0から1までの20個の乱数を計算する:

特性と関係  (6)

ModularInverseは周期関数である:

ExtendedGCDはモジュラ逆数を返す:

PowerModを使って計算する:

結果は法と同じ符号を持つ:

が互いに素なら を法としたモジュラ逆数である:

ModularInverseを2回計算するともとの引数が返される:

考えられる問題  (1)

非零の整数 kn について kn が互いに素のときかつそのときに限りModularInverse[k,n]は存在する:

しかし,10と22は互いに素ではない:

インタラクティブな例題  (1)

さまざまな素数についてモジュラ逆数を可視化する:

おもしろい例題  (2)

ある数が12を法として可逆なときにこれを可視化する:

2つの平方数の和のモジュラ逆数:

Wolfram Research (2017), ModularInverse, Wolfram言語関数, https://reference.wolfram.com/language/ref/ModularInverse.html.

テキスト

Wolfram Research (2017), ModularInverse, Wolfram言語関数, https://reference.wolfram.com/language/ref/ModularInverse.html.

CMS

Wolfram Language. 2017. "ModularInverse." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ModularInverse.html.

APA

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

BibTeX

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

BibLaTeX

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