离散对数计算器
每行一组 g,h,p,用逗号或空格分隔,如 5,8,23 表示求 5^x ≡ 8 (mod 23)
求解方法:
解的形式:
计算过程:
g 的阶:
最多输出:
m 上限位数:
分隔符:
计算结果
下载 CSV
| 序号 | 输入(g,h,p) | 方法 | 解 x | 验证 | 步数 | 说明 |
|---|
工具介绍及使用方法
在线离散对数求解器,解 g^x ≡ h (mod p) 中的指数 x,每行输入一组 g,h,p 即可批量求解。
输入格式:每行一组「g,h,p」,用逗号或空格分隔,例如
三种算法:BSGS(Baby-step Giant-step,默认,m = ⌈√n⌉ 建 baby 表再逐 giant 步碰撞)、暴力枚举(适用于小 p,有迭代上限)、Pohlig–Hellman(适用于 p-1 光滑,n 分解为素数幂再 CRT 合成);选「全部对比」可一次看到三种方法的步数差异。
自动判定:不填 g 的阶时会自动探测;会检查 g 是否与 p 互素、p 是否为素数,并用 h^n ≡ 1 判断 h 是否在 g 生成的子群里,不在时明确提示「在给定范围内无解」。
结果验证:算出的 x 都会用 g^x mod p = h 复核,验证列给出通过与否;可选输出所有解 x + k·n。所有大数运算用 BigInt,全程快速幂,p 最多 120 位。
输入格式:每行一组「g,h,p」,用逗号或空格分隔,例如
5,8,23 表示求 5^x ≡ 8 (mod 23)。三种算法:BSGS(Baby-step Giant-step,默认,m = ⌈√n⌉ 建 baby 表再逐 giant 步碰撞)、暴力枚举(适用于小 p,有迭代上限)、Pohlig–Hellman(适用于 p-1 光滑,n 分解为素数幂再 CRT 合成);选「全部对比」可一次看到三种方法的步数差异。
自动判定:不填 g 的阶时会自动探测;会检查 g 是否与 p 互素、p 是否为素数,并用 h^n ≡ 1 判断 h 是否在 g 生成的子群里,不在时明确提示「在给定范围内无解」。
结果验证:算出的 x 都会用 g^x mod p = h 复核,验证列给出通过与否;可选输出所有解 x + k·n。所有大数运算用 BigInt,全程快速幂,p 最多 120 位。
留言板
全部留言 →-
还没人说话,来占个沙发?