密码学之公钥密码算法

密码学之公钥密码算法

公钥密码算法简介

​ 公钥密码算法在加密和解密中使用一对不同的密钥,其中一个密钥公开,称为公钥,宁一个密钥保密,称为私钥,且由公钥求解私钥计算是不可行的的。顾名思义,公钥是公开的。

 

RSA公钥密码体制

简介

​ 是迄今为止理论上最为成熟完善的公钥密码体制。也是目前广泛应用的公钥密码体制。RSA的基础是数论的欧拉定理,他的安全性依赖于大整数因子分解的困难

数学知识补充

互质

如两个正整数,除了1之外就没有其他公因子,就称这两个正整数是互质的。而且并没有要求这两个正整数都是质数,如15和4就是互质的。

欧拉函数

求小于x并且和x互质的数的个数。其通式为φ(x) = x(1-1/p1)(1-1/p2)...(1-1/pₙ),其中p1,p2..pn为x的所有质因数,x为不为零的整数。

比如x=16时φ(16) = 16 * (1-1/2) = 8

我们也可以列举与16互质,且小于16的数: 1,3,5,7,9,11,13,15,个数为8个

而在RSA求密钥对中就需要用到欧拉函数的一个性质,即如果p是素数的话,φ(p)=p-1

模反元素

如果两个正整数a和b互质,那么一定可以找到整数n,使得ab-1被n整除,或者说ab被n整除的余数是1。一般在已知其中一个整数假如是a和整数n的情况下,求另一个整数b的运算就是模反运算。

其解法包括朴素算法,辗转相除法,欧几里得算法。

RSA生成公钥私钥对

  1. 选取两个不同的大素数p和q

  2. 计算n=p*q,并计算n的欧拉函数φ(n)=(p-1)(q-1),也就是求小于n且与n互质的数。

  3. 随机选取正式e<Z,1<e<φ(n)作为公钥之一,且要满足e与φ(n)互质。

  4. 采用模反算法计算私钥d,使ed=1(modφ(n)),也就是d=e⁻¹(modφ(n)),也就是(ed-1)能被φ(n)整除

  5. 得到公钥(e,n)和私钥d

加密过程

RSA的加密函数很简单,对于明文m,公钥(e,n),E(m)=mᵉ(modn)

​解密过程

RSA的解密过程也很简单移动,对于密文c,私钥d,D(c)=cᵈ(modn)

使用流程

 

posted @ 2022-02-09 13:35  三木森林  阅读(898)  评论(0编辑  收藏  举报