ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

RSA加密算法

2021-12-23 21:03:07  阅读:192  来源: 互联网

标签:质数 元素 模反 RSA 欧拉 互质 加密算法 mod


RSA加密算法详解

1、寻找两个不相同的质数

  • 随意选择两个大的质数pqp不等于q,计算N=p*q;

  • 什么是质数?我想可能会有一部分人已经忘记了,定义如下:

    除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1该数本身两个正因数)的数)。
    

2、根据欧拉函数获取r

  • r = φ(N) = φ(p)φ(q) = (p-1)(q-1)

  • 欧拉函数的定义:

欧拉函数 φ(n)是小于或等于n的正整数中与n互质的数的数目。
  • 互质的定义:
如果两个或两个以上的整数的最大公约数是 1,则称它们为互质

例如:φ(8) = 4,因为1,3,5,7均和8互质。

3、选择一个小于r并与r互质的整数e

  • 选择一个小于r并与r互质的整数e,求得e关于r的模反元素,命名为d(***ed = 1(mod r)***模反元素存在,当且仅当e与r互质),e我们通常取65537。

  • 模反元素:

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

比如35互质,3关于5的模反元素就可能是2,因为3*2-1=5可以被5整除。所以很明显模反元素不止一个,2加减5的整数倍都是3关于5的模反元素*{…-3, 2,7,12…}* 放在公式里就是3*2 = 1 (mod 5)

4、销毁p和q

  • 此时我们的*(N , e)是公钥,(N, d)为私钥,爱丽丝会把公钥(N, e)传给鲍勃,然后将(N, d)*自己藏起来。一对公钥和私钥就产生了

备注

  • p,q:我们随机挑选的两个大质数
  • N:是由两个大质数pq相乘得到的。N = p * q
  • r:由欧拉函数得到的N的值,r = φ(N) = φ§φ(q) = (p-1)(q-1)
  • e:随机选择和和r互质的数字,实际中通常选择65537
  • d: d是以欧拉定理为基础求得的e关于r的模反元素,ed = 1 (mod r)

Ne我们都会公开使用,最为重要的就是私钥中的dd一旦泄露,加密也就失去了意义。那么得到d的过程是如何的呢?如下:

  1. 比如知道e和r,因为d是e关于r的模反元素;r是φ(N) 的值
  2. φ(N)=(p-1)(q-1),所以知道p和q我们就能得到d

标签:质数,元素,模反,RSA,欧拉,互质,加密算法,mod
来源: https://blog.csdn.net/qq_41977637/article/details/122116334

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有