RSA算法原理

RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman发明。它基于大数分解难题,公钥和私钥是两个大质数的函数。加密时使用公钥,解密时使用私钥。本文详细介绍了RSA的原理、步骤、数学知识、安全性和实际应用,包括公钥和私钥的生成、加密和解密过程,并通过实例解释了其工作原理。

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

参考的网络资源如下:

https://blog.youkuaiyun.com/linuxandroidwince/article/details/81141815

http://bank.hexun.com/2009-06-24/118958531.html

https://baike.baidu.com/item/RSA%E7%AE%97%E6%B3%95/263310?fr=aladdin

算法发明人

Ron Rivest, Adi Shamir, Leonard Adleman.

简介

   RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Rivest, Adi Shamir, Leonard Adleman的名字首字母命名,这个算法经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有一定的可信性,目前它已经成为最流行的公开密钥算法。
  RSA的安全基于大数分解的难度。其公钥和私钥是一对大质数(100到200位十进制数或更大)的函数。从一个公钥和密文恢复出明文的难度,等价于分解两个大质数之积(这是公认的数学难题)。 

RSA的公钥、私钥的组成,以及加密、解密的公式可见于下表:

数学知识

这个很重要,所以标题放在前面。

考虑到对整体的理解,或者你数学很好根本不需要,内容放在本文最下方。

算法描述(及说明

(1)首先任意选择两个不相等的质数p和q 
(2)计算p和q的乘积n,令p=61, q=53,则n = 61×53 = 3233 
3)计算n的欧拉函数φ(n) = (p-1)(q-1)      φ(3233)=60×52=3120 
4)随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质 
在1到3120之间,随机选择了17,e=17。
5)计算e对于φ(n)的模反元素d 
根据前面模反元素公式e^φ(N)=e*e^φ(N-1)≡1mod(N),这个公式中的N等于这里的φ(n), 令d=e^φ(N-1), 则ed≡1mod(N),即 
ed ≡ 1 (mod φ(n)) 
这个式子等价于 
ed - 1 = kφ(n) 
于是,找到模反元素d,实质上就是对下面这个二元一次方程求解 
ex + φ(n)y = 1 
已知 e=17, φ(n)=3120 
17x + 3120y = 1 
这个方程可以用”扩展欧几里得算法”求解,此处省略具体的计算过程,有兴趣可以研究下这个算法,算出一组整数解为 (x,y)=(2753,-15),即 d=2753。至此所有计算完成。 
6)将n和e封装成公钥&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值