rsa算法c语言实现欧拉函数的性质,RSA算法原理(一)之欧拉定理

关于什么是RSA,可以查看这篇文章, 今天主要是讲一下RSA底层用的一些算法原理,其实都是一些数学概念,谁让RSA算法是三个数学家发明的。

互质关系

如果两个整数(或者两个以上的整数)的最大公约数是1,则称他们为互质。也就是说两个整数,除了1以外,没有其它的最大公约数了,这两个整数就叫做互质关系。

比如说7,11他们的最大公约数只有1,所以他们互质;8,10他们的最大公约数为1,2,所以这两数不是互质关系。

欧拉函数

欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目,称为欧拉函数

比如说当n=8时,与8能形成互质关系的数有4个,分别是1,3,5,7,所以φ(8)=4

具体φ(n)函数的计算公式,可以分为以下四种情况:

情况一: 当n=1,φ(1)=1

因为1与任何整数都是互质关系,所以当n=1时,φ(1)=1

情况二:当n为质数,φ(n)=n-1

因为质数与小于它的每一个数,都构成互质关系,所以当n为质数时,φ(n)=n-1 。

比如说n=3时,1,2都跟他是互质关系, n=7时,1,2,3,4,5,6都跟他是互质关系。

情况三:n = p^k (p为质数,k为指数,且大于等于1),n是质数的k次方,则φ(p^k) = p^k - p^(k-1) = p^k(1 - 1/p)

比如:φ(8) = φ(2^3) = 2^3 - 2^2 = 4

φ(27) = φ(3^3) = 3^3(1 - 1/3) = 18

情况四: n是两个互质的整数之积,如:n = p1 * p1,则 φ(n) = φ(p1p2) = φ(p1)φ(p2)

比如:φ(56)=φ(8×7)=φ(8)×φ(7)=4×6=24

情况五:欧拉函数通式:[图片上传失败...(image-5f0fb9-1523323180027)]

其展开式为: [图片上传失败...(image-5d9beb-1523323180027)]%3Dn(1-%5Cfrac%7B1%7D%7Bp_%7B1%7D%7D)(1-%5Cfrac%7B1%7D%7Bp_%7B2%7D%7D)...(1-%5Cfrac%7B1%7D%7Bp_%7Br%7D%7D)&chs=60)

比如,用通式计算72的欧拉函数为:[图片上传失败...(image-58676a-1523323180027)]

1323的欧拉函数为:[图片上传失败...(image-68ae5e-1523323180027)]%3D%5Cphi(3%5E%7B3%7D%5Ctimes7%5E%7B2%7D)%3D1323(1-%5Cfrac%7B1%7D%7B3%7D)(1-%5Cfrac%7B1%7D%7B7%7D)%3D756&chs=60)

同余定理

给定一个正整数n,如果两个整数a和b满足a-b能够被n整除,即(a-b)/n得到一个整数,那么就称整数a与b对模n同余,记作a≡b(mod n)。这就是同余定理。

例如:26≡2(mod 12), 26%12 余2, 2%12余2, 26-2/12 = 0,所以26与2对模12同余

欧拉定理

在数论中,欧拉定理是一个关于同余的性质,其性质如下:

若n,a为正整数,且n,a互质,则: [图片上传失败...(image-eb8acd-1523323180027)]

首先看一个基本的例子,令a = 3, n = 5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值