rsa加密算法 非对称加密

非对称加密算法非对称加密算法是一种密钥的保密方法 。
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥) 。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密 。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法 。
非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密 。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密 。
另一方面,甲方可以使用自己的私钥对机密信息进行签名后再发送给乙方;乙方再用甲方的公钥对甲方发送回来的数据进行验签 。
甲方只能用其私钥解密由其公钥加密后的任何信息 。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要 。
非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快 。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥 。
所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了 。这样安全性就大了很多 。

rsa加密算法 非对称加密

文章插图
加密那些事--非对称加密详解“非对称加密也叫公钥密码:使用公钥 加密,使用私钥解密”
在对称密码中,由于加密和解密的密钥是相同的,因此必须向接收者配送密钥 。用于解密的密钥必须被配送给接收者,这一问题称为密钥配送问题 。如果使用非对称加密,则无需向接收者配送用于解密的密钥,这样就解决了密钥配送的问题 。
非对称加密中,密钥分为加密密钥和解密密钥两种 。发送者用加密密钥对消息进行加密,接收者用解密密钥对密文进行解密 。需理解公钥密码,清楚地分加密密钥和解密密钥是非常重要的 。加密密钥是发送者加密时使用的,而解密密钥则是接收者解密时使用的 。
【rsa加密算法 非对称加密】 加密密钥和解密密钥的区别:
a.发送者只需要加密密钥
b.接收者只需要解密密钥
c.解密密钥不可以被窃听者获取
d.加密密钥被窃听者获取也没关系
也就是说,解密密钥从一开始就是由接收者自己保管的,因此只要将加密密钥发给发送者就可以解决密钥配送问题了,而根本不需要配送解密密钥 。
非对称加密中,加密密钥一般是公开的 。真是由于加密密钥可以任意公开,因此该密钥被称为公钥(pulickey) 。相对地解密密钥是绝对不能公开的,这个密钥只能由你自己来使用,因此称为私钥(privatekey)**** 。私钥不可以被别人知道,也不可以将它发送给别人 。
公钥和私钥是"一一对应的",一对公钥和私钥统称为密钥对(keypair) 。由公钥进行加密的密文,必须使用与该公钥配对的私钥才能解密 。密钥对中的两个密钥之间具有非常密切的的关系(数学上的关系) 。因此公钥和私钥不能分别单独生成 。
非对称加密通讯流程
假设A要给B发一条信息,A是发送者,B是接收者,窃听者C可以窃听他们之间的通讯内容 。
1.B生成一个包含公钥和私钥的密钥对
私钥由B自行妥善保管
2.B将自己的公钥发送给A
B的公钥被C截获也没关系 。将公钥发给A,表示B请A用这个公钥对消息进行加密并发送给他 。
3.A用B的公钥对消息进行加密
加密后的消息只有B的私钥才能够解密 。
虽然A拥有B的公钥,但用B的公钥是无法对密文进行解密的 。
4.A将密文发送给B
密文被C截获也没关系,C可能拥有B的公钥,但是B的公钥是无法进行解密的 。
5.B用自己的私钥对密文进行解密 。
参考下图
RSA是一种非对称加密算法,它的名字由三位开发者 。即RonRivest、AdiShamir和LeonardAdleman 的姓氏的首字母组成的(Rivest-Shamir-Leonard)
RSA的加密工程可以用下来公式来表达,如下 。
也就是说,RSA的密文是对代表明文的数字的E次方求modN的结果 。换句话说,就是将明文自己做E次乘法,然后将其结果除以N求余数,这个余数就是密文 。

秒懂生活扩展阅读