RSA 加密算法

1.RSA 非对称加密算法的一种。
2.一些基础知识:

1) gcd(a, b) 为a, b的最大公约数,如果gcd(a, b) = 1,则称a, b 互素。

2) 模运算, mod。如果(a mod n) = (b mod n),则称a与b模n同余。

3)欧拉函数,定义φ(n)为欧拉函数,那么φ(n)的值为比n小并且与n互为素数的正整数的个数。比如φ(9) = |{8, 7, 5,4,2,1}|=6。

4)欧拉函数的性质1:如果p是素数,则φ(p) = p - 1,例如φ(7) = |{6, 5, 4, 3, 2, 1}| = 6。

5)欧拉函数的性质2:如果p, q是素数,则 φ(p*q) = (p-1) * (q - 1)。

6)欧拉定理:在数论中,欧拉定理(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,gcd(a,n) = 1,则a^φ(n) ≡ 1 (mod n)。例如a = 3, n = 5,gcd(3,5) = 1,φ(n) = φ(5) = 5 -1 = 4, a^φ(n) = 3^4 = 81, 81 mod 5 = 1,满足欧拉定理。

7)欧拉定理的证明:

首先证明下面这个命题:
  对于集合Zn={x1,x2,...,xφ(n)},其中xi(i=1,2,…φ(n))是不大于n且与n互素的数,即n的一个化简剩余系,或称简系,或称缩系),考虑集合S = {a*x1(mod n),a*x2(mod n),...,a*xφ(n)(mod n)}
  则S = Zn
  1) 由于a,n互质,xi也与n互质,则a*xi也一定于n互质,因此
  任意xi,a*xi(mod n) 必然是Zn的一个元素
  2) 对于Zn中两个元素xi和xj,如果xi ≠ xj
  则a*xi(mod n) ≠ a*xj(mod n),这个由a、n互质和消去律可以得出。
  所以,很明显,S=Zn
  既然这样,那么
  (a*x1 × a*x2×...×a*xφ(n))(mod n)
  = (a*x1(mod n) × a*x2(mod n) × ... × a*xφ(n)(mod n))(mod n)
  = (x1 × x2 × ... × xφ(n))(mod n)
  考虑上面等式左边和右边
  左边等于([a^φ(n)] *(x1 × x2 × ... × xφ(n))) (mod n)
  右边等于x1 × x2 × ... × xφ(n))(mod n)
  而x1 × x2 × ... × xφ(n)(mod n)和n互质
  根据消去律,可以从等式两边约去,就得到:
  a^φ(n) ≡ 1 (mod n) 
3.RSA算法的操作过程

1)取两个大素数p, q,保密。计算n = p * q,公开n。

2)计算欧拉函数φ(n) = (p - 1) * (q - 1);

3)任意取一个与互为素数的小整数e,则gcd(e, φ(n)) = 1,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值