关于什么是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