离散对数计算器
每行一组 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」,用逗号或空格分隔,例如 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 位。

留言板

全部留言 →
0/200

  • 还没人说话,来占个沙发?