欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

乘法逆元计算

程序员文章站 2022-06-17 08:58:56
逆元计算...

乘法逆元计算

乘法逆元(模运算和环的概念不在此介绍):

乘法中存在中性元素1,即对每个 a ∈ Z(m),都有 a * 1 ≡ a mod m。
不是所有元素都存在乘法逆元。假设 a ∈ Z,乘法逆元 a^(-1) 可以定义为:
a * a^(-1) ≡ 1 mod m
如果元素 a 的乘法逆元存在,则可以除以这个元素,因为 b / a ≡ b * a(-1) mod m。
当且仅当 gcd(a, m)= 1,一个元素的 a ∈ Z 存在乘法逆元 a^(-1)。其中 gcd 表示最大公约数;如果 gcd(a, m)= 1,那么 a 和 m 就互质或互素。

乘法逆元的一大应用是模意义下的除法,除法在模意义下并不是封闭的,但我们可以根据上述公式,将其转化为乘法。
乘法逆元计算

常见的乘法逆元计算方法:

1.费马小定理
2.扩展欧几里得
3.递推法

实现乘法逆元的计算,大多需要借助计算机程序;
在此只介绍数比较小时的笔算方法。

思路就是:

a 模 b 的乘法逆元 推导为 1 = ax - by 或者 1 = by - ax
a的乘法逆元a(-1) = x 或 a(-1) = b - x

11模26的乘法逆元:
26 = 11 * 2 + 4;11 = 4 * 2 + 3;4 = 3 + 1
1 = 4 - 3
1 = (26 - 11*2) - (11 - 4*2)
1 = (26 - 11*2) - (11 - (26 - 11*2)*2)
1 = 26*3 - 11*7
所以11模26的乘法逆元为26 - 7 = 19 。

21模26的乘法逆元:
26 = 21 + 5;21 = 5 * 4 + 1
1 = 21 - 5*4
1 = 21 - (26 - 21)*4
1 = 21*5 - 26*4
所以21模26的乘法逆元为 5 。

本文地址:https://blog.csdn.net/m0_37146044/article/details/107828855

相关标签: 密码学