RSA加密原理

来源:互联网 发布:紫竹调网络歌手 编辑:程序博客网 时间:2024/06/04 23:42

http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html

http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html

一、基本概念

1、互质

如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质的(coprime)。

互质关系结论:

  1. 任意两个质数构成互质关系,比如13和61。
  2. 一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系,比如3和10。
  3. 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如97和57。
  4. 1和任意一个自然数是都是互质关系,比如1和99。
  5. p是大于1的整数,则p和p-1构成互质关系,比如57和56。
  6. p是大于1的奇数,则p和p-2构成互质关系,
  7. 比如17和15。

 

2、欧拉函数

用于计算小于等于任意给定正整数n,与n构成互质关系的数的个数的方法,以φ(n)表示。

 

3、欧拉定理


也可以说,a的φ(n)次方减去1,可以被n整除。

 

4、费马小定理


欧拉定理的特殊形式。

 

二、RSA加密算法

  1. 随机选择两个不相等的质数p和q。
  2. 计算p和q的乘积n。n转换成二进制的长度就是密钥的长度。
  3. 计算n的欧拉函数φ(n)。φ(n)=(p-1)(q-1
  4. 随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。一般是65537
  5. 计算e对于φ(n)的模反元素d。ed ≡ 1 (mod φ(n))          ed - 1 = kφ(n)          ex + φ(n)y = 1
  6. 将n和e封装成公钥,n和d封装成私钥。

 

三、RSA加密、解密

加密要用公钥 (n,e)。m^e ≡ c (mod n)

解密要用私钥(n,d)。c^d ≡ m (mod n)

原创粉丝点击