公钥密码可以解决密钥配送问题。
公钥密码(public-key cryptography)中,密钥分为加密密钥和解密密钥两种。发送者用加密密钥对消息进行加密,接收者用解密密钥对密文进行解密。要理解公钥密钥,清楚地区分加密密钥和解密密钥是非常重要改的。加密密钥是发送者加密时使用的,而解密密钥则是接收者解密时使用的。
加密密钥和解密密钥的区别:
业绩就是说,解密密钥从一开始就是由接收者自己保管的,因此只要将加密密钥发给发送者就可以解决密钥配送问题了,而根本不需要配送解密密钥。
公钥密钥中,加密密钥一般是公开的。正是由于加密密钥可以任意公开,因此该密钥被称为公钥(public key)。公钥可以通过邮件直接发送给接收者,也可以刊登在报纸的广告栏上,做成看板放在街上,或者做成网页公开给世界上任何人,而完全不必担心内窃听者Eve窃取。
当然,我们也没有必要非要将公钥公开给全世界所有的人,但至少我们需要将公钥发送给需要使用公钥进行加密的通信对象(也就是给自己发送密文的发送者)。
相对地,解密密钥是绝不能公开的,这个密钥只能由自己来使用 ,因此成为私钥(private key)。私钥不可以被别人知道,也不可以将它发送给别人,甚至也不能发送给自己的通信对象。
公钥和私钥是一一对应的,一对公钥和私钥统称为密钥对(key pair)。由公钥进行加密的密文,必须使用与该公钥配对的私钥才能够解密。密钥对中的两个密钥之间具有非常密切的关系——数学上的关系——因此公钥和私钥是不能分别单独生成的。
公钥密码的使用者需要生成一个包含公钥和私钥的密钥对,其中公钥会被发送给别人,而私钥则仅供自己使用。
假设Alice要给Bob发送一条消息,Alice是发送者,Bob是接收者,窃听者Eve能够窃听到他们之间的通信内容。
在公钥密钥通信中,通信过程是由接收者Bob来启动的。
(1) Bob生成一个包含公钥和私钥的密钥对。
私钥有Bob自行妥善保管。
(2) Bob将自己的公钥发送给Alice。
Bob的公钥被窃听者Eve截获也没有关系。
Bob将公钥发送给Alice,表示Bob请Alice用这个公钥对消息进行加密蹦发送给他。
(3) Alice用Bob的公钥对消息进行加密。
加密后的密文只有用Bob的私钥才能够解密。
虽然Alice拥有Bob的公钥,但用Bob的公钥是无法对密文进行解密的。
(4) Alice将密文发送给Bob。
密文被窃听者Eve截取也没关系。Eve可能拥有Bob的公钥,但是用Bob的公钥是无法进行解密的。
(5) Bob用自己的私钥对密文进行解密。
请参看图5-2,看一看Alice和Bob直接到底传输了哪些信息。其实他们之间传输的信息只有两个:Bob的公钥以及用Bob公钥加密的密文。由于Bob的私钥没有出现在通信内容中,因此窃听者Eve无法对密文进行解密。

窃听者Eve可能拥有Bob的公钥,但是Bob的公钥只是加密密钥,而不是解密密钥,因此窃听者Eve就无法完成解密操作。
原文:https://www.cnblogs.com/doitjust/p/12758484.html