RSA密码算法

本文详细介绍了RSA加密算法的原理,包括RSA加密、解密过程以及如何生成密钥对。在加密过程中,通过两个质数p和q计算N,并确保E与L互质。解密时则需要用到E的逆元D。除了RSA,还提到了其他公钥密码体制如EIGamal和Rabin方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RSA加密

=EmodN

E和N的组合就是公钥

RSA解密

=DmodN

D和N的组合就是私钥

生成密钥对

1. 求N
用伪随机数生成器求p和q,p和q都是质数
N = p * q

p和q太小的话,密码会变得容易破译,但太大的话计算时间又会变得很长。例如,假设p和q的大小都是512比特,相当于155位的十进制数字。
要求出这样大的质数,需要通过伪随机数生成器生成一个512比特大小的数,在判断这个是不是质数,若不是质数,则重新生成。

更多知识请看:
[matrix67大神的文章]  (http://www.matrix67.com/blog/archives/234);[维基百科-素性测试](https://zh.wikipedia.org/zh/%E7%B4%A0%E6%80%A7%E6%B5%8B%E8%AF%95)

2. 求L
L = lcm(p - 1,q - 1)
L是p - 1和q - 1的最小公倍数

3. 求E
1 < E < L
gcd(E,L) = 1; E 和 L的最大公约数为1(E和L互质)

之所以要加上E和L的最大公约数为1的条件,是为了保证一定存在解密时需要使用的数D。

4. 求D
1 < D < L
E * D mod L = 1

    要保证存在满足条件的D,就需要保证E和L的最大公约数为1。
    简单的来说,E * D mod L = 1 保证了对密文进行解密时能够得到原来的明文。

一旦发现了对大整数的质因数分解的高效算法,RSA就能够被破译

其他公钥密码

  1. EIGamal方式
  2. Rabin方式
  3. 椭圆曲线密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值