欧几里得算法和扩展欧几里得

本文介绍了欧几里得算法和扩展欧几里得算法,阐述了它们在计算最大公约数上的原理,并重点讨论了在密码学中的应用,如在有限域中求解数的逆元和多项式的逆元,特别是在AES加密算法的S盒构造中的作用。
摘要由CSDN通过智能技术生成

主要是为了密码学整理的。(这排版真是。。我真的不知道怎么弄,谁能帮帮我)

欧几里得算法

  • 欧几里得算法或者叫做辗转相除法,是指用于计算两个正整数a,b的最大公约数。
    gcd(a,b)=gcd(b,amodb)(1) (1) g c d ( a , b ) = g c d ( b , a m o d b )

eg: 计算45和12的最大公约数。
  gcd(45,12) = gcd(12,9)
  gcd(12,9) = gcd(9,3)
  gcd(9,3) = gcd(3,0)
所以,45和12的最大公约数是3.


扩展欧几里得算法

给予二整数 a 与 b, 必存在有整数 x 与 y 使得

ax+by=gcd(a,b)=gcd(b,amodb)=bx+(amodb)y(2) (2) a x + b y = g c d ( a , b ) = g c d ( b , a m o d b ) = b x + ( a m o d b ) y

  • 先将表达式按上面的公式做到底, Mul=y/x M u l = y 的 系 数 / x 的 系 数
  • 再逆溯回去,得到x和y的值。
  • 逆溯方法: tmp=y;y=x;x=tmpmulx t m p = y ; y = x ; x = t m p − m u l ∗ x

应用

  • 在有限域中求某个数的逆 。
    eg:在Z26上求17的逆。
  Mul   Expression   Trace Back
  mul:1 26y+17x=1(mod26) 26 y + 17 x = 1 ( m o d 26 ) tmp=1,y=2,x=11×2=3 t m p = − 1 , y = 2 , x = − 1 − 1 × 2 = − 3
  mul:1 17y+9x=1(mod26) 17 y + 9 x = 1 ( m o d 26 ) tmp=1,y=1,x=11×(1)=2 t m p = 1 , y = − 1 , x = 1 − 1 × ( − 1 ) = 2
  mul:1 9y+8x=1(mod26)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值