離散対数の計算ツール
1行に g,h,p を1組、カンマか空白区切りで入力。例: 5,8,23 は 5^x ≡ 8 (mod 23) を解く
計算方法:
解の形式:
計算過程:
g の位数:
最大出力数:
m の最大桁数:
区切り文字:
計算結果
CSVをダウンロード
| 番号 | 入力(g,h,p) | 方法 | 解 x | 検証 | ステップ数 | 説明 |
|---|
ツールの紹介と使い方
オンライン離散対数ソルバー。g^x ≡ h (mod p) の指数 x を求めます。1 行に g,h,p の組を 1 つ入力すればバッチ求解できます。
入力形式:1 行に「g,h,p」を 1 組、カンマまたはスペース区切り。例:
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 行に「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 つ、g,h,p の形式で求解式を貼り付けます。
- 求解手法、解の形式、その他のパラメータを選びます。
- 実行ボタンをクリックします。
- 解 x と検証結果をコピーまたはエクスポートします。
掲示板
すべての投稿 →-
まだ誰も書いていません。最初の一人になりませんか?