分数求模(取余)过程 乘法逆元

更新时间:2023-04-26 12:16:19 阅读: 评论:0


2023年4月26日发(作者:数控系统维修)

分数的模运算

ECC加密算法中需要用到对分数的模运小学生作文范例 算,但大多的资料只给结萝莉壁纸 果没有给计算过程,就

连初等数论书上面也找不到计算

方法,搜索了一下,终于在网上找到了相关资料,用的思路其实还是整数模运算的,直接

copy下来

下面是“分数”模运算的定义:

b, m互质(互为素数)

k = a/b (mod m) <=> kb = a (mod m)

这里求 x = 1/17 (mod 2668)

<=>

17x = 1 (mod 2668)

<=>

17x = 2668k + 1 k∈尚主 整数)

取合适的k使得17|(2668k+1) 【应该是17能被(2668k+1)整除,也即17x mod 2668 = 1

这里刚好17 | (2668 + 1)

所以k = 1, x = (2668+1)/17 = 157

当然,当k = 1 + 17n 时,

x = (2668 + 17n2668 + 1)/17 = 157 + 2668n

也符合条件(n任意整数)

但如果限定 2668 > x > 0x是唯一的。

分数求模(取余)过程

[原创 2008-03-20 20:13:27]

字号:大

貌似分数是这样取余的,好好学习,天天向上!

计算a/x(mod n)

a/x (mod n)=a*x^-1(mod n)

计算1/x mod n

=x^(-1) mod n

就是求y,满足:

yx = 1 mod n

y是有限域F(n)x的乘法逆元素

可用扩展的欧几里得算法求乘法逆元

int ExtEnclid(int ,int )

df

这里的d就相当

xf相当于n

{

int x1,x2,x3,y1,y2,y3,t1,t2,t3,k;

if(d>f) d=d+f-(d=f); //交换df使得d

x1=1,x2=0,x3=f;

y1=0,y2=1,y3=d;

while(1)

{

if(y3==0) return 0; //没有逆元,gcd(d,f)=x3考研科目时间安排

if(y3==1) return y2; //逆元为y2,gcd(d,f)=1

k=x3/y3;

k=x3/y3

t1=x1-k*y1, t2=x2-k*y2, t3=x3-k*y3;

5/3=115/4=3

x1=y1,x2=y2,x3=y3;

y1=t1,y2=t2,y3=t3;

}

}

int main()

{

int d,f,res;

printf("you can try d=550 f=1769, d^-1 = 55午餐食谱 0, press ctrl+Z ");

printf("intput the d and f value:n");

while(scanf("%d%d",&d,&f)==2)

{

printf("Enclid : gcd(%d,%d)=%dn",d,f,Enclid(d,f));

res=ExtEnclid(d,f);

if(res==0) printf("Not Exist the d^-1n");

el

if(res>0) printf("ExtenderEnclid : d^-1 = %d ,

%d * %d = 1 mod %dn",res,d,res,f);

el

{

printf("ExtenderEnclid : d^-1 = (%d) ,

%d * (%d) = 1 mod %dn",res,d,res,f);

忠孝两全 printf("ExtenderEnclid : d^-1 = %d , %d *

%d = 1 mod %dn",res+f,d,res+f,f);

}

}

return 0;

}

用扩展的欧几里德算法简单描述如下:

ExtendedEuclid(d,f)

1 X1,X2,X3):=(1,0,f)

2 (Y1,Y2,Y3):=(0,1,d)

3 if (Y3=0) then return d'=null//无逆元

4 if (Y3=1) then return d'=Y2 //Y2为逆元

5 Q:=X3 div Y3

6 (T1,T2,T3):=(X1-Q*Y1奶茶店图片 ,X2-Q*Y2,X3-Q*Y3)

7 X1,X2,X3):=(Y1,Y2,Y3)

8 (Y1,Y2,Y3):=(T1,T2,T3)

9 goto 3

1共享硬盘 2/5) mod 17

=25^-1 mod 17 (中间的是5-1次方)

=27 mod 17

=14

下面来看一看y=5^-1 mod 17 =7是怎样算出来的(即求5关于17的逆元):

d x1 x2 x3 y1 y2 y3

1 0 17 0 1 5

3 0 1 5 1 -3 2

2 1 -3 2 -2 7 1

2(4/6) mod 17

=46^-1 mod 17 (中间的是6-1次方)

=43 mod 17

=12

即求6关于17的逆元:

d x1 x2 x3 y1 y2 y3

如果y2的值最后为负值,还要进行取模运算。

37关于96的乘法逆元(即7^-1 mod 96

d x1 x2 x3 y1 y2 y3

1 0 96 0 1 7

13 0 1 7 1 -13 5

1 1 -13 5 -1 14 2

2 -1 14 2 3 -41 1

-41 mod 96 =55 所以55就是7关于96的逆元,让我们检验一下55*7 mod 96 =1

4: 上节课的题:p=11;g=5;x=3;m=3,穿过 k=2

: y=5^3mod11=4

a=5^2mod11=3

b=4^2*3mod11=4

b*a^-x(mod p)=4*3^-3(mod 11)=4*27^-1(mod 11)=4*9mod11=3

d x1 x2 x3 y1 y2 y3

1 0 11 0 1 27

0 0 1 27 1 0 11

2 1 0 1可爱女生头像卡通 1 -2 1 5

2 -2 1 5 5 -2 1

-2mod11=9


本文发布于:2023-04-26 12:16:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/849085.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:求模
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图