RSA 加密算法

RSA 加密算法是一种非对称加密算法。在公开密钥加密和电子商业中 RSA 被广泛使用

RSA 算法的可靠性由极大整数因数分解的难度决定。
换言之,对一极大整数做因数分解愈困难,RSA 算法愈可靠。
假如有人找到一种快速因数分解的算法的话,
那么用 RSA 加密的信息的可靠性就肯定会极度下降。
但找到这样的算法的可能性是非常小的。
如今,只有短的 RSA 密钥才可能被强力方式解破。

算法基本原理

1.随机选择两个不同大质数p和q,计算N =pXq
2.根据欧拉函数,求得φ(N)=(p- 1)(q-1)
3.选择一个小于φ(N)的整数e,使e和φ(N)互质。
	并求得e关于φ(N)的模反元素,命名为d,
	有ed= 1 (mod φ(N))
4.将p和q的记录销毁
	此时,(N,e) 是公钥,(N,d) 是私钥。
消息加密
首先需要将消息以一个双方约定好的格式转化为
一个小于N,且与N互质的整数m。
如果消息太长,
可以将消息分为几段,这也就是我们所说的块加密,
对于每段利用如下公式加密:
m^e=c (mod N)		m为明文,c是密文
消息解密
利用密钥d进行解密。
c^d=m  (modN)
可以发现,加密解密的运算只有
				m^e%N=c
				c^d%N=m
	明文与密文的联系取决于N e d
	e d是关于φ(N)的一组逆元
	N=p*q
	φ(N)=(p-1)*(q-1)
	销毁q,p后
	如果p,q很大,我们只有N就很难求得φ(N)
	也无法求得d(e关于φ(N)的逆元)
	也就无法解密

所以关键在于p,q的值足够大,使得解密运算足够复杂而无法破解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值