模逆计算器

使用拓展欧几里得算法计算模逆元

输入两个整数,计算模逆元。仅当gcd(a, m) = 1时,a模m的逆元才存在。

请输入正整数

请输入大于1的正整数

示例计算

通过预设示例探索不同场景

基础逆元计算

基础逆元计算

求3模11的逆元

数字 (a): 3

模数 (m): 11

算法: 拓展欧几里得算法

密码学应用

密码学应用

RSA加密中的逆元计算(小例子)

数字 (a): 7

模数 (m): 40

算法: 拓展欧几里得算法

大数逆元计算

大数逆元计算

较大数值的逆元计算

数字 (a): 123

模数 (m): 457

算法: 拓展欧几里得算法

无逆元情况

无逆元情况

不存在逆元的示例

数字 (a): 6

模数 (m): 9

算法: 拓展欧几里得算法

其他标题
理解模逆元:全面指南
掌握模运算、拓展欧几里得算法及其在密码学和数论中的应用

什么是模逆元?

  • 定义与基本概念
  • 数学基础
  • 存在条件
整数a模m的模逆元是一个整数x,使得(a × x) ≡ 1 (mod m)。也就是说,a与x相乘后除以m余1。
数学定义
给定整数a和m,若存在x使a × x ≡ 1 (mod m),则x为a模m的逆元。即a × x = 1 + k × m(k为整数)。
存在条件
仅当gcd(a, m) = 1时,a模m的逆元才存在。即a和m互质时逆元存在,且在模m意义下唯一。
实际应用
模逆元在密码学(如RSA加密、数字签名等)和线性同余方程求解中非常重要。

基础示例

  • 3⁻¹ ≡ 4 (mod 11),因为3 × 4 ≡ 1 (mod 11)
  • 7⁻¹ ≡ 23 (mod 40),因为7 × 23 ≡ 1 (mod 40)

拓展欧几里得算法

  • 算法概述
  • 分步过程
  • 实现细节
拓展欧几里得算法是计算模逆元最有效的方法。它在求gcd(a, m)的同时,找到整数x和y使ax + my = gcd(a, m)。
算法过程
该算法通过维护商、余数和系数表,从gcd(a, m) = ax + my出发,逆向推导x和y。
时间复杂度
拓展欧几里得算法的时间复杂度为O(log min(a, m)),即使对大数也很高效,适合密码学应用。
优于其他方法
与穷举法相比,拓展欧几里得算法速度快且有系统,适合有效求解。

算法步骤

  • 求3⁻¹ mod 11: 11 = 3×3 + 2, 3 = 2×1 + 1, 2 = 1×2 + 0
  • 逆推:1 = 3 - 2×1 = 3 - (11 - 3×3)×1 = 4×3 - 1×11

分步计算指南

  • 手动计算方法
  • 验证过程
  • 常见陷阱
理解手动计算模逆元有助于算法直观理解,也便于结果验证。
步骤1:判断逆元是否存在
首先用欧几里得算法计算gcd(a, m)。若gcd(a, m) ≠ 1,则不存在模逆元。
步骤2:应用拓展欧几里得算法
建立商(q)、余数(r)、系数(s, t)表,初始r₀ = a, r₁ = m, s₀ = 1, s₁ = 0, t₀ = 0, t₁ = 1,直到余数为0。
步骤3:提取逆元
当余数为1时,s即为模逆元。若为负数,加m变为正。结果唯一且在[1, m-1]范围内。
步骤4:验证
通过(a × 逆元) mod m验证,结果应为1。此步骤确保计算正确。

计算示例

  • 求7⁻¹ mod 15: gcd(7,15) = 1,逆元存在
  • 拓展算法得7 × 13 ≡ 91 ≡ 1 (mod 15)

实际应用与场景

  • 密码学应用
  • 数学问题求解
  • 计算机科学应用
模逆元在数学、计算机科学和密码学中有广泛应用,是现代技术的重要工具。
RSA密码学
在RSA加密中,模逆元用于根据公钥计算私钥。RSA安全性依赖于大数模逆难以计算。
数字签名
DSA、ECDSA等数字签名算法在签名生成和验证中用到模逆元。逆元运算保证签名高效可靠。
线性同余方程求解
ax ≡ b (mod m)型线性同余方程可用模逆元求解,gcd(a, m) = 1时,x ≡ a⁻¹b (mod m)。
纠错码
在编码理论中,模逆元用于Reed-Solomon码等纠错方案,保障数据传输和存储可靠。

应用示例

  • RSA密钥生成p=7, q=11, e=3时需求3⁻¹ mod 60
  • 解5x ≡ 3 (mod 7): x ≡ 5⁻¹ × 3 ≡ 3 × 3 ≡ 2 (mod 7)

进阶性质与数学理论

  • 群论联系
  • 计算复杂度
  • 相关算法
模逆元的数学理论涉及抽象代数、群论和计算数论,揭示了深刻的数学结构。
群论基础
与m互质的整数在模m乘法下构成乘法群(ℤ/mℤ)*,模逆元即为该群的逆元。
欧拉定理应用
m为素数时,可用费马小定理:a⁻¹ ≡ a^(m-2) (mod m)。m为合数时,用欧拉定理:a⁻¹ ≡ a^(φ(m)-1) (mod m),φ为欧拉函数。
计算考量
单个逆元用拓展欧几里得算法最优,多个逆元可用Montgomery技巧批量求逆。
与其他算法关系
模逆计算与连分数、中国剩余定理、多项式有限域运算等密切相关。

进阶示例

  • 素数p=17时:3⁻¹ ≡ 3^15 ≡ 6 (mod 17)(费马小定理)
  • 群(ℤ/15ℤ)* = {1,2,4,7,8,11,13,14},模15乘法群