非对称加密算法是相对于对称加密算法来说的。对称加密算法,在加密和解密时使用的是同一个密钥;而非对称加密算法,需要两个密钥来进行加密和解密,这两个密钥是公钥和私钥。
不同于对称加密算法,非对称加密算法需要两个密钥,即公钥和私钥。公钥与私钥是一对,用公钥对数据进行加密,只有用对应的私钥才能解密;用私钥对数据进行加密,只有用对应的公钥才能解密。因为加密和解密使用的是两个完全不同的密钥,这种算法就叫作非对称加密算法。
这里有个能够体现非对称加密算法的工作原理:
甲、乙两人使用非对称加密的方式完成了重要信息的安全传输:首先,乙生成一对密钥(公钥和私钥)并将公钥向其他方公开;其次,甲得到该公钥后,使用该密钥对机密信息进行加密,再发送给乙;最后,乙用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。由此,乙只能使用专用密钥(私钥)解密由对应的公钥加密后的信息;在传输过程中,即使攻击者截获了传输密文并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。同样,如果乙要给甲回复加密信息,需要甲先给乙公布自己的公钥用于加密,甲自己保存的私钥用于解密。