信息安全数学基础(零):扩展欧几里得算法

由于之前请了两次假,这个算法一直没整明白,实验上网抄的,期中没做出来,特此整理消化一下

1.欧几里得除法(带余数除法)

(欧几里得除法). 设a, b 是两个整数,其中b>0。
则存在唯一一对整数q, r 使得
a = b*q + r,0 <= r < b
可用反证法证明。
在这里插入图片描述

2.最大公因数的求法:广义欧几里得除法(辗转相除法)

在这里插入图片描述
设a, b 是任意两个正整数,则(a, b )=rn,其
中rn是广义欧几里得除法中最后一个非零余数,即有
(a, b)=(r1, r2)=(r2, r3)=…=(rn-1, rn) =(rn, 0) = rn

gcd(a,b)=gcd(b,a%b)=…=最大公因数

三.扩展欧几里得除法

贝祖定理:若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by=m中的m一定是d的倍数。(逆定理:如果a、b是整数,那么一定存在整数x、y使得ax+by=gcd(a,b)。)
这里有个推论是,如果a,b互素,那么一定存在s,t使得sa+tb=1
(充要条件)
扩展欧几里得算法就是用来解决这个问题:给定两个非零的整数a和b,求一组整数解(x,y)使得ax+by = gcd(a,b)成立,其中gcd(a,b)表示a和b的最大公约数。
在欧几里得算法中
总是把gcd(a,b)转化为求解gcd(b,a%b),当b变为0时求解完成,返回a,此时的a就等于gcd。也就是说,欧几里得算法结束时变量a中存放的是gcd,变量b中存放的是0,因此此时显然有a × 1 + b × 0 = gcd ,a×1+b×0=gcd成立,此时有x=1、y=0成立,由以下推导可以得知逆推的递推方程
在这里插入图片描述
逆推就可求得x,y。
在考试中,不需要写程序所以没这么麻烦,在后面的例子中将具体介绍求解方法。

四.扩展欧几里得算法的应用:求逆元

逆元的定义:
a*a^(-1)=1(mod m),当(a,m)互素时
所以a^(-1) * a+m * y(一个倍数)=1
用欧几里得算法即可求出a^(-1)和y的值
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值