360百科给出的定义: 非对称加密算法是一种密钥的保密方法,该算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。 公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。 因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。 另一方面,甲方可以使用自己的私钥对机密信息进行签名后再发送给乙方;乙方再用甲方的公钥对甲方发送回来的数据进行验签。甲方只能用其私钥解密由其公钥加密后的任何信息。
假设A与B之间需要传递信息: A会生成一对属于自己的秘钥,暂记为公钥A与私钥A; B也会生成一对属于自己的秘钥,公钥B与私钥B; 公钥是公开的。即整个网络中每个用户都能够获取到其他用户的公钥。
1、A首先用自己的私钥对信息进行签名; 2、B接收到私钥A签名后的信息,B需要用在网络中公开的公钥A对其进行验证; 3、验证通过,B成功接收到A传递的信息。
1、B利用A的公钥对信息进行加密; 2、A接收到用自己的公钥加密的信息后,只能用自己的私钥A对其进行解密; 3、解密完成,A成功接收消息。
1、算法强度复杂 相比对称加密算法,非对称加密算法的加密和解密花费时间长、速度慢,只适合对少量数据进行加密。 2、安全性高 对称加密算法中只有一种非公开秘钥,如果需要解密,就必须将秘钥告知对方; 而非对称加密算法用于加密与解密的秘钥值不同,用公钥加密的消息只能用与之对应的私钥来解密,私钥除了持有者外无人知道,而公钥却可通过非安全管道来发送或在目录中发布,这样安全性便得到极大提高。