離散対数の計算ツール

1行に g,h,p を1組、カンマか空白区切りで入力。例: 5,8,23 は 5^x ≡ 8 (mod 23) を解く
計算方法:   解の形式:   計算過程:
g の位数:   最大出力数:   m の最大桁数:   区切り文字:
番号 入力(g,h,p) 方法 解 x 検証 ステップ数 説明

ツールの紹介と使い方

オンライン離散対数ソルバー。g^x ≡ h (mod p) の指数 x を求めます。1 行に g,h,p の組を 1 つ入力すればバッチ求解できます。

入力形式:1 行に「g,h,p」を 1 組、カンマまたはスペース区切り。例:5,8,23 は 5^x ≡ 8 (mod 23) を求めることを意味します。

3 つのアルゴリズム:BSGS(ベイビーステップ・ジャイアントステップ、デフォルト。m = ⌈√n⌉ でベビー表を作りジャイアントステップごとに衝突判定)、ブルートフォース(小さい p 向け。反復上限あり)、Pohlig–Hellman(p-1 が滑らかな場合。n を素数冪に分解し CRT で合成)。「全て比較」を選ぶと 3 手法のステップ数の違いを一度に確認できます。

自動判定:g の位数を未記入なら自動探測します。g と p が互いに素か、p が素数かをチェックし、h^n ≡ 1 で h が g の生成する部分群に含まれるか判定。含まれない場合は「指定範囲に解なし」と明確に通知します。

結果検証:求めた x はすべて g^x mod p = h で再計算し、検証列に合否を表示。すべての解 x + k·n を出力することも選択可。大数計算はすべて BigInt を使い、終始高速累乗を使用。p は最大 120 桁です。

操作手順

  1. 1 行に 1 つ、g,h,p の形式で求解式を貼り付けます。
  2. 求解手法、解の形式、その他のパラメータを選びます。
  3. 実行ボタンをクリックします。
  4. 解 x と検証結果をコピーまたはエクスポートします。
0/200

  • まだ誰も書いていません。最初の一人になりませんか?