模乘法逆元计算器
使用扩展欧几里得算法,求互质整数的模逆元。
模逆元计算器
输入整数和模数,求出最小非负逆元。
关于模乘法逆元计算器
模 m 的乘法逆元是指在模运算中能够抵消乘法的整数。对于整数 a,逆元 x 满足:a 乘以 x 后除以 m,余数为 1。通常写作 a 乘以 x 模 m 同余于 1。例如,3 乘以 4 等于 12,12 除以 11 余 1,因此 4 是 3 模 11 的乘法逆元。
并非每一对整数都存在逆元。逆元存在的充要条件是 a 与 m 互质,即最大公约数为 1。以 6 模 9 为例:6 的任何倍数都与 9 有公因数 3,因此不可能余 1。相比之下,7 与 26 的最大公约数为 1,而 7 模 26 的逆元是 15,因为 105 除以 26 余 1。计算器会先检查最大公约数,再给出结果。
扩展欧几里得算法能够高效求出逆元。普通欧几里得算法通过反复相除并取余来求最大公约数;扩展算法同时记录系数,将最大公约数表示为原始输入的整数线性组合。当最大公约数等于 1 时,a 的系数就是一个逆元。该系数可能为负数,因此计算器会将其对 m 取模,显示从零到 m 减一之间的最小非负代表元。
模逆元让同余系统中的除法成为可能。要解 a 乘以 x 模 m 同余于 b,只需在逆元存在时,将 b 乘以 a 的逆元。模逆元广泛用于线性同余方程、中国剩余定理、模分数、哈希、检错方法以及公钥密码学。例如,RSA 密钥生成包含求指数对某个欧拉函数值的模逆元。实际密码学实现应使用经过严格审计的任意精度库,而不是普通浏览器数值。
请仅输入整数,并使用大于 1 的模数。a 可以为负数,因为每个负整数都对应一个模 m 的最小非负剩余。计算器使用 JavaScript 安全整数,适用于课堂练习和中等规模的数论问题。结果包含最大公约数与直接乘法检验,便于确认逆元确实使余数为 1。对于密码学中的超大整数,请使用专为大整数和安全敏感计算设计的软件。
模逆元示例
每个结果都是使乘积余数为 1 的最小非负整数。
| 整数与模数 | 逆元 | 验证 |
|---|---|---|
| 3 模 11 | 4 | 三乘以 4 等于 12,12 mod 11 等于 1。 |
| 7 模 26 | 15 | 七乘以 15 等于 105,105 mod 26 等于 1。 |
| 17 模 3120 | 2753 | 十七乘以 2753,模 3120 的余数为 1。 |
| 10 模 17 | 12 | 十乘以 12 等于 120,120 mod 17 等于 1。 |
如何计算模逆元
- 输入需要求乘法逆元的整数。
- 输入大于 1 的整数作为模数。
- 选择“计算模逆元”,运行扩展欧几里得算法。
- 确认显示的乘积在该模数下余数为 1。
模乘法逆元常见问题
模乘法逆元何时存在?
当且仅当整数与模数互质时,逆元才存在。换言之,两者的最大公约数必须等于 1。
为什么逆元看起来有多个答案?
加上模数的任意整数倍,都会得到同余的代表元。计算器统一显示最小非负逆元。
扩展欧几里得算法如何求逆元?
它在计算最大公约数的同时,记录原始整数的系数。当最大公约数为 1 时,输入整数的系数就是一个模逆元。
可以计算负数的逆元吗?
可以。负整数可先化为模 m 下的等价剩余。计算器会自动完成转换,并返回最小非负逆元。
模逆元在密码学中有哪些用途?
它们用于在 RSA 和椭圆曲线系统等算法中逆向处理模乘法。安全应用需要大整数及常数时间实现,超出了本教学计算器的范围。