公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以提供给任何人;公钥用于对要发送到私钥持有者的数据进行加密。两个密钥对于通信会话都是唯一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。

公钥加密算法使用固定的缓冲区大小,而私钥加密算法使用长度可变的缓冲区。公钥算法无法像私钥算法那样将数据链接起来成为流,原因是它只可以加密少量数据。因此,不对称操作不使用与对称操作相同的流模型。

公钥加密方法由6个部分组成:明文、加密算法、公钥、私钥、密文和解密算法。密钥对中的公钥是公开供其他人使用的,而只有自己知道私钥。通常的公钥加密算法根据一个密钥进行加密,根据另一个不同但相关的密钥进行解密。

基本步骤如下:

(1)每个用户都生成一对密钥用来对消息进行加密和解密。

(2)每个用户把两个密钥中的一个放在公共寄存器或其他可访问的文件里,这个密钥便是公钥,另一个密钥自己保存。每个用户都收藏别人的公钥。

(3)如果Bob希望给Alice发送私人消息,则他用Alice的公钥加密消息。

(4)当Alice收到这条消息,她用私钥进行解密。因为只有Alice知道她自己的私钥,其他收到消息的人无法解密消息。RSA和Diffie-Hellman是使用量最大的两种公钥算法,另外已被法,商业接受的两种其他公钥算法是DSS和椭圆曲线密码