非对称加密的出现是密码学史上重要的里程碑。非对称加密用的公开密钥是在对称加密的单密码方式中解决问题最难解决时提出的,该问题是密钥分配与数字签名。
公开密钥与私有密钥中的任意一把均能当做公开密钥以非保密方式给他人公开,而另一把做私有密钥来保管。在加密系统中,公开密钥用于加密,私有密钥用于解密。私有密钥仅可通过生成密钥的交换方管控,公开密钥能公布,不过它仅与生成密钥的交换方相对应。
非对称密钥有两种使用方式,传送保密信息与消失认证。
(1)传送保密信息。这种方式可用在公共网络中来完成保密通信;它能达到多个用户借公钥加密的消息仅能通过一个用户用私钥解读,即其他用户用接收方的公钥加密信息发给接收方,仅有接收方能解读。
(2)消息认证。这种方式可用在认证系统中对消息数字签名。公钥是公开的,因此用户用私钥加密的消息可被其他多个用户用公钥解读;公钥与私钥是对应的,同时也证明了消息的来源。
非对称加密算法特点如下:
a)用加密密钥对明文M加密后得到密文,再用解密密钥对密文进行解密,即可恢复出明文。
b)加密密钥不能用来解密,
c)用解密密钥加密的信息只能用加密密钥解密,用加密密钥加密的信息只能用解密密钥进行解密。
d)从已知的加密密钥不能推导出解密密钥。
e)加密和解密的运算可交换作用次序。
如果用户B要给用户A发送一个数据,此时该用户会在公开的密钥中得到与A的私有密钥对应的公开密钥,然后用此公开密钥对数据加密后发至网络中进行传输。用户A在收到密文后用自己的私有密钥解密,由于数据的发送方拿接收方的公开密钥加密数据,因此仅A才可读懂此密文。当其他用户得到此密文时,因他们无加密此信息的公开密钥相应的私有密钥,因此不能读懂此密文。
在非对称加密中,全部参与加密通信的用户都可获得每个用户的公开密钥,而每个用户的私有密钥由用户在通信前已产生,无需事先分配。在一个系统中,只要能管理好每个用户的私有密钥,用户收到的通信内容即为安全的。不管何时,系统都可更改它的私有密钥,并公开相应的公开密钥代替原来的。
非对称加密方式能让通信两方不用预先交换密钥即能进行安全通信,普遍用在身份认证、数字签名等领域。