非对称加密
非对称加密也叫公钥密码: 使用公钥加密, 使用私钥解密。
在对称密码中,由于加密和解密的密钥是相同的,因此必须向接收者配送密钥。用于解密的密钥必须被配送给接收者,这一问题称为密钥配送问题。如果使用非对称加密也可以称为公钥密码,则无需向接收者配送用于解密的密钥,这样就解决了密钥配送问题。
非对称加密中,密钥分为加密密钥和解密密钥两种。发送者用加密密钥对消息进行加密,接收者用解密密钥对密文进行解密。要理解公钥密码,清楚地区分加密密钥和解密密钥是非常重要的。加密密钥是发送者加密时使用的,而解密密钥则是接收者解密时使用的。
非对称加密中,加密密钥一般是公开的。正是由于加密密钥可以任意公开,因此该密钥被称为公钥(publickey),相对地,解密密钥是绝对不能公开的,因此称为私钥(privatekey)。公钥和私钥是一一对应的,一对公钥和私钥统称为密钥对(keypair)。
非对称加密通信流程
我们还是假设Alice要给Bob发送一条消息,Alice是发送者,Bob是接收者,而这一次窃听者Eve依然能够窃所到他们之间的通信内容。
在公开非对称加密通信中,通信过程是由接收者Bob来启动的。
- Bob生成一个包含公钥和私钥的密钥对。
私钥由Bob自行妥善保管。 - Bob将自己的公钥发送给Alice
Bob的公钥被窃听者Eve截获也没关系。
将公钥发送给Alice,表示Bob请Alice用这个公钥对消息进行加密并发送 给他。 - Alice用Bob的公钥对消息进行加密。
加密后的消息只有用Bob的私钥才能够解密。
虽然Alice拥有Bob的公钥,但用Bob的公钥是