素数 について、 は法 の原始根である( の法 での位数は )。ポーリッヒ・ヘルマン法を用いて、
を満たす整数 を求めよ。
ポーリッヒ・ヘルマン法による離散対数
と分解し、各 について から を求め、中国剰余定理でまとめて のような離散対数 を求められる
前提
- 繰り返し二乗法によるべき剰余 (大学数学 暗号理論)
- 剰余類環の単元群とオイラー関数 (大学数学 代数学)
この技能までの道筋(25 技能)
読み込み中…
右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 分数のたし算・ひき算 (算数 計算と数のきまり)
- 小数の四則計算 (算数 計算と数のきまり)
- 正負の数の加法・減法 (中学数学 数と式)
- 分数のかけ算・わり算 (算数 計算と数のきまり)
- 四則の混じった計算の順序 (算数 計算と数のきまり)
- 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
- 分配法則を使った計算のくふう (算数 計算と数のきまり)
- 文字式の計算(同類項・分配法則) (中学数学 数と式)
- 乗法公式による展開 (中学数学 数と式)
- 因数分解 (中学数学 数と式)
- 約数の見つけ方 (算数 整数の性質)
- 文字式で表した整数の性質 (中学数学 数と式)
- 余りによる整数の分類 (数学A 整数の性質)
- 樹形図で数え上げる (算数 場合の数)
- 積の法則と和の法則 (算数 場合の数)
- 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
- 合同式 (数学A 整数の性質)
- n 進法 (数学A 整数の性質)
- 繰り返し二乗法によるべき剰余 (大学数学 暗号理論)
- 最大公約数と最小公倍数 (算数 整数の性質)
- 素因数分解と約数の個数 (算数 整数の性質)
- 最大公約数と最小公倍数 (数学A 整数の性質)
- 群の位数と元の位数 (大学数学 代数学)
- 有限アーベル群の構造と部分群の個数 (大学数学 代数学)
- 剰余類環の単元群とオイラー関数 (大学数学 代数学)
説明
素数 と の原始根 、および で割り切れない整数 が与えられたとき、 を満たす指数 (離散対数)を求める方法です。 が小さな素因数だけに分解できる場合、 を から順に全部試さなくても、 を「小さな法での余り」に分けて求め、最後に中国剰余定理で組み立てられます。暗号の安全性を考えるときにも、「 が小さな素因数ばかりだと離散対数が簡単に解けてしまう」ことを示す基本的な手法として使われます。
なぜそうしてよいのか
が原始根であるとは、 の での位数が であることです。このとき は から までの剰余類をちょうど 1 回ずつとります。したがって の解 は で一つに決まり、 が成り立ちます。
と素因数分解し、 とおきます。元の位数の性質から、 の位数は です。 の両辺を 乗すると (ただし )が得られます。 の位数は なので、 を満たす はちょうど となる です。つまり位数 の小さな群で離散対数を解けば、 がわかります。調べる候補は 個ではなく 個で済みます。
はどの 2 つも互いに素です。そのため、すべての について がわかれば、中国剰余定理によって がただ一つに決まります。なお が大きいときは、 を 進法の各桁に分けて 1 桁ずつ求めると、各桁は位数 の群での離散対数になり、さらに計算が軽くなります。
手順
と素因数分解し、 の位数が (原始根)であることを確かめる。
各 について とし、繰り返し二乗法で 、 を計算する。
を満たす を の中から探す。 のべきを順に並べて と比べればよい。 が大きいときは として と書く。 とおき、 の順に から各桁 を決める。
中国剰余定理で、連立合同式 を解き、 の を求める。
繰り返し二乗法で となることを確かめる。
例題
は の原始根である。 を満たす整数 で となるものを求めよ。
例題の解答
【手順 1】 です。原始根であることも確かめておきます。、 です。36 の約数のうち 36 以外の最大のものは 12 と 18 で、36 未満のどの約数もこのどちらかを割ります。、 なので、2 の位数は 36 です。
【手順 2・3(法 )】 です。 となります。 は 、、 から と求まります。 のべきを並べると、、、、 です。よって です。
【手順 2・3(法 )】 です。、 となります。 のべきを並べると、、、、、 です。よって です。
【手順 4】 を満たす の候補は です。このうち で割って余り になるのは だけなので、 です。
【手順 5】 となり、正しいことが確かめられます。
答え:
よくある誤り
素数のべき ではなく素数 で割った指数 を使ってしまう誤り。例題で 乗すると、わかるのは だけです。正しくは 乗して を求めます(または 3 進法の桁を 2 つとも求めます)。
答えを で考えてしまう誤り。指数は ではなく ( の位数)で決まります。例題でも が成り立ちます。答えは と考え、 の範囲で答えます。
片方の辺だけをべき乗してしまう誤り。たとえば を作ったのに のまま を解いてしまう場合です。正しくは両辺を同じ 乗して を解きます。
が原始根かどうか確かめずに使ってしまう誤り。 の位数 が より小さいと、解がない場合や で一つに決まらない場合があります。 では かつ であることを確かめてから使います。位数が の を使うときは、 の代わりに を素因数分解します。
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。
入口の問題
素数 について、 は法 の原始根である( の法 での位数は )。
を満たす整数 を、 を利用するポーリッヒ・ヘルマン法で求めよ。素数 について、 は法 の原始根です( の法 での位数は )。ポーリッヒ・ヘルマン法を用いて、 を満たす整数 を求めよ。