密码学指RSA密码

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
4=1·3…1
1=4-3=4-(7-4)
=2·4-7
=2·(480-68·7)-7
=2·480-137·7

∴1=(2·480-137·7) mod 480
=[2·480-(-480+137)·7] mod 480
∴ d=480-137=343
∴c=m^e mod n=2^7 mod 527=128

RSA加密算法可以解决的问题:

  • 加密解密
  • 数字签名
  • 密钥的分发

数字信封/密钥分发/RSA Speed:
甲先使用对称算法加密要发送的信息,然后用乙的公钥加密对称密钥,然后将加密后的信息和密钥都发给乙,乙拿到之后先用乙的私钥将对称密钥解密,然后用对称密钥解密信息得到密文。这样既能解决单纯的非对称密码加密解密速度过慢的问题,也能够完成对称密钥的密钥分发,此时的非对称密码就相当于一个信封,将对称密钥封起来,一举三得。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43699616/article/details/84202766