Jenner's Blog

不变秃,也要变强!

0%

非对称加密

RSA(模幂运算)

根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥.

算法描述

RSA算法的具体描述如下:

(1)任意选取两个不同的大素数p和q计算乘积$n=pq, φ(n)=(p-1)(q-1);$

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

(2)任意选取一个大整数e,满足 gcd(e,φ(n)) = 11< e < φ(n),整数e用做加密钥(注意:e的选取是很容易的,例如,所有大于p和q的素数都可用);

(3)确定的解密钥d,满足 (de)mod φ(n) = 1 ,即de = kφ(n) +1, k≥1是一个任意的整数;所以,若知道e和φ(n),则很容易计算出d;

(4)公开整数n和e,秘密保存d ;

(5)将明文m(m<n是一个整数)加密成密文c,加密算法为$c=E(m)=m^emodn$ , n和e为公钥;

(6)将密文c解密为明文m,解密算法为$m=D(c)=c^dmodn$,n和d为私钥;

然而只根据n和e(注意:不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

签名

查看数字签名这一章。

点击下方打赏按钮,获得支付宝二维码