定义11.6 对于整数a和正整数n,当gcd(a,n)=1时存在整数c,使得
ac≡1(mod n)称c为a关于模n的乘法逆元,记为a-1。
根据互素的性质4),存在整数s和t,使得as+nt=1,而nt≡0(mod n),所以只需取c=s即可。同样地,如果a也是正整数,则t是n关于模a的乘法逆元。
乘法逆元并不唯一,如只要ac≡1(mod n)成立,则对任意的整数h,也有a(c+nh)≡1(mod n),即c+nh也是a的模n乘法逆元。但是在模n意义下,是唯一的。
定理11.9 如果gcd(a,n)=1,n为正整数,则a的所有模n乘法逆元都是模n同余的。
设c1和c2都是a的模n乘法逆元,即ac1≡1(mod n),ac2≡1(mod n),从而a(c1-c2)≡0(mod n),因为gcd(a,n)=1,所以n|(c1-c2),c1和c2关于模n同余。
根据前面的分析知,对于互素的两个数a和n,要求a关于模n的乘法逆元,只需要求出表达式as+nt=1的一组解(s,t)即可。
根据欧几里得算法可得
最后得到rn关于a和b的线性组合表达式,如果rn=1,a和b都为正整数,则组合表达式中a和b的系数对应各自关于对方的乘法逆元;如果rn≠1,rn+1=0,则rn为a和b的最大公因子。
扩展的欧几里得算法为此方法的实现,其确定两个正整数的最大公约数或者互素的两个正整数的各自的乘法逆元。其算法描述如下:
Extended EUCLID(a,b且a>0,b>0)
1)(X1,X2,X3)←(1,0,b);(Y1,Y2,Y3)←(0,1,a)(www.xing528.com)
2)如果Y3=0返回X3=gcd(a,b);无逆元
3)如果Y3=1返回Y3=gcd(a,b);Y2=a-1(mod b)
4)q=X3/Y3」
5)
6)(X1,X2,X3)←(Y1,Y2,Y3)
7)(Y1,Y2,Y3)←(T1,T2,T3)
8)回到2)
其中的X3/Y3」表示不大于X3/Y3的最大正整数。
【例11-17】 用扩展的欧几里得算法求550-1mod 1769。
【解析】 求550-1mod 1769的算法过程如表11-1所示,其中t为算法循环次数。当t=7时,Y3=1,此时,Y2=550,即550-1(mod 1769)≡550。
表11-1 求550-1mod 1769的算法过程
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。