课程报告:RSA算法

参考链接

目录

基本概念

原理

数论中的四个概念

1.互质关系:

2.欧拉函数:

3.欧拉定理:

4.模反元素:

RSA

RSA密钥生成过程:

RSA加解密:

RSA公式论证:因篇幅原因略。

应用


  • 基本概念

RSA加密算法是一种非对称加密算法在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。——维基百科

  • 原理

  • 数论中的四个概念

1.互质关系:

如果两个正整数,除了1以外没有其他公因子,我们就称这两个数是互质关系(coprime)。比如,6和21他们的公因子有:3和1,所以6和21就不是互质;而10和21只有一个公因子1,所以它们是互质关系。这说明,不是质数也可以构成互质关系。

有以下几点可构成互质关系:

  1. 任意两个质数构成互质关系;
  2. 1和任意一个自然数是都是互质关系;
  3. p是大于1的整数,则p和p-1构成互质关系;
  4. p是大于1的奇数,则p和p-2构成互质关系;
  5. 如果两个数之中,较大的那个数是质数,则两者构成互质关系;
  6. 一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系;

2.欧拉函数:

任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?计算这个值的方法就叫做欧拉函数,以φ(n)表示。

  1. 如果n=1,则 φ(1) = 1。因为1与任何数(包括自身)都构成互质关系
  2. 如果n是质数,则 φ(n)=n-1 。因为质数与小于它的每一个数,都构成互质关系。比如5与1、2、3、4都构成互质关系。
  3. 如果n是质数的某一个次方,即 n = pk (p为质数,k为大于等于1的整数),则φ(pk)=pk-pk-1

因为只有当一个数不包含质数p,才可能与n互质。而包含质数p的数一共有pk-1个,即1×p、2×p、3×p、…、p^(k-1)×p,把它们去除,剩下的就是与n互质的数。

上面的式子还可以写成下面的形式:

φ(pk)=pk-pk-1=pk(1-1p)

可以看出,此种情况是k=1时的特例。

  1. 如果n可以分解成两个互质的整数之积n = p1 × p2,则φ(n) = φ(p1p2) = φ(p1)φ(p2)。即:积的欧拉函数等于各个因子的欧拉函数之积。
  2. 因为任意一个大于1的正整数,都可以写成一系列质数的积,n=pk11pk22…pkrr,根据第4条的结论,得到:φ(n)=φ(pk11) φ(pk22)…φ(pkrr),再根据第3条的结论,得到:φ(n)= pk11pk22…pkrr(1-1p1) (1-1p2)…(1-1pr),也就等于

φ(n)= n(1-1p1) (1-1p2)…(1-1pr) 

这就是欧拉函数的通用计算公式。

3.欧拉定理:

    “欧拉定理”指的是:如果两个正整数a和n互质,则n的欧拉函数φ(n)可以让下面的等式成立:

    aφ(n)≡1(mod n)

也就是说,a的φ(n)次方被n除的余数为1。

          取模运算与取余运算的区别:取余的商是靠近0的,而取模的

商是靠近负无穷的。

欧拉定理是RSA算法的核心。

4.模反元素:

如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1

ab≡1(mod n)

这时,b就叫做a的“模反元素”。

如果b是a的模反元素,则b+kn都是a的模反元素。

欧拉定理可以用来证明模反元素必然存在。

aφ(n)=a×aφ(n)-1≡1(mod n)

可以看到,a的φ(n)-1次方,就是a的模反元素。

  • RSA

RSA密钥生成过程:

六步生成密钥:

  1. 随机选择两个不相等的质数pq
  2. 计算p和q的乘积n

n的长度就是密钥长度。实际应用中,RSA密钥一般是二进制1024位,重要场合则为二进制2048位。

  1. 计算n的欧拉函数φ(n)
  2. 随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质;
  3. 计算e对于φ(n)的模反元素d
  4. 将n和e封装成公钥,n和d封装成私钥。

RSA算法一共生成了六个数字:p、q、n、φ(n)、e、d。这六个数字之中,公钥用到了两个(n和e),其余四个不公开。其中最关键的是d,因为n和d组成了私钥,一旦d泄漏,就等于私钥泄漏。

 ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d

 φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)

  n=pq。只有将n因数分解,才能算出p和q

因此,如果n可以被因数分解,d就可求,即私钥被破解。

RSA加解密:

  1. 加密:明文m,me≡c(mod n),得到密文c;
  2. 解密:密文c,cdm(mod n),解密出明文m。

RSA公式论证:因篇幅原因略。

  • 应用

IOS App签名;

HTTPS 加密连接;

利用OpenSSL库对Socket传输进行安全加密(RSA+AES)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值