密码学之RSA密码

本文介绍了RSA非对称加密算法的工作原理,包括如何生成公钥和私钥,以及加密和解密的过程。通过示例展示了如何使用RSA算法进行计算,并指出该算法在加密解密、数字签名和密钥分发等方面的应用。

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

RSA加密算法

前面讲了几个对称加密算法,今天就谈一谈非对称加密算法。非对称加密算法的出现源于对称加密算法的局限性:分发密钥的重要与困难性,无法进行数字签名等原因。非对称加密算法有两把钥匙,一把加密密钥,一把解密密钥。两者既数学相关但又无法相互推导。
非对称加密算法依赖于单向陷门函数。什么是单向函数,即对于y=f(x),知道x可求y,但是知道y不能求x。而单向陷门函数就是在单向函数的基础上加了个陷门,即只有知道陷门信息的人才能通过y求x,而这个陷门信息就是私钥。RSA算法所使用的单向陷门函数为大素数分解的难题(数学上还没有完全证明反向不可推)。
RSA算法步骤:
1.随机选取两个大的素数p,q
2.计算n=p*q,φ(n) = (p-1)(q-1),然后将p,q扔掉
3.随机选取e(1< e < φ(n)),满足gcd(e, φ(n))=1,即e与φ(n) 互质
4.计算d,使得d满足de ≡ 1 (mod φ(n))
5.加密:c=m^e mod n; 解密:m=c^d mod n(其中c为密文,m为明文,n为公共模数,e为加密指数,d为解密指数)

例题(计算必考)
1.p=17,q=11,e=7,m=123,求c。
解:
n=p·q=11·17=187
φ(n)=(p-1)(q-1)=16·10=160
d·e ≡ 1 (mod φ(n))
即d·7 ≡ 1 (mod 160)
160=22·7…6
7=1·6…1
1=7-6=7-(160-22·7)
=23·7-160 (辗转相除法)
∴(23·7-160)mod 160=1
∴d=23
∴c=m^e mod n=123^7 mod 187=183

2.p=17,q=31,e=7,m=2,求c。
解:
n=p·q=17·31=527
φ(n)=(p-1)(q-1)=16·30=480
d·e ≡ 1 (mod φ(n))
d·7 ≡ 1 (mod 480)
480=68·7…4
7=1·4…3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值