信息安全技术作业-扩展欧几里得算法编写求解乘法逆元
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
给出乘法逆元的基本概念;利用扩展欧几里得算法编写求解乘法逆元的程序,其中输入:整数e及模n,满足e和n互素,输出:e模n的乘法n逆元d.
1)乘法逆元的基本概念
如果(e×d)≡1 mod n,则e、d互为乘法逆元
如6×20≡1 mod 119
如果一个整数e与n互素,那么它在Z n中乘法逆元,例如:Z8中:1,3,5,7有乘法逆元,2,4,6没有
2)求解乘法逆元的程序
#include
#include
int x,d,q;
void ex_Eulid(int e,int n){
if(n==0)
{
x=1;
d=0;
q=e;
}
else
{
ex_Eulid(n,e%n);
double temp=x;
x=d;
d=temp-e/n*d;
}
}
int main(){
int e,n,temp;
scanf("%d %d",&e,&n);
if(e { temp = e; e = n; n = temp; } ex_Eulid(e,n); printf("%d\n",d); return 0; } 3)程序运行结果 例1 6×20≡1 mod 119 图1 6关于模119的乘法逆元为20 例2 14 = 5*2+4 5 = 4*1+1 说明5与14互素,存在5关于14的乘法逆元 1 = 5-4 = 5-(14-5*2)= 5*3-14 因此5关于模14的乘法逆元为3 图2 5关于模14的乘法逆元为3