非對(duì)稱加密最初可能是為了解決密匙保管與交換難題. 非對(duì)稱加密過(guò)程中用一個(gè)密匙加密只能用另一個(gè)密匙解密. 由此解決了密匙交換難題: 公匙隨意發(fā)放; 保管也大為簡(jiǎn)化: 保護(hù)好私匙就可以了. PKI 之所以成為或 "稱為" 體系, 是包括了實(shí)施中所必需的公匙管理: 認(rèn)證, 發(fā)放, 收回, 查詢等.
現(xiàn)在看加密過(guò)程. 以加密郵件為例. Alice 發(fā)加密郵件給 Bob.
1a. Alice 從 Bob那里或從PKI服務(wù)器得到 Bob的公匙
2a. Alice 用 Bob的公匙加密郵件, 發(fā)送給 Bob
3a. Bob 受到加密郵件, 用自己的私匙解密.
其他人如果截獲加密郵件, 由于沒(méi)有 Bob的私匙, 無(wú)法解密郵件.
簽名過(guò)程則是非對(duì)稱加密的另一用法
1b. Alice 在用 Bob的公匙加密郵件前先對(duì)郵件產(chǎn)生摘要Ha.
2b. Alice 用自己的私匙加密郵件摘要, 連同加密郵件(2a)發(fā)送給 Bob
3b. Bob 將加密郵件摘要用Alice的公匙解密得到解密的郵件摘要Ha. (公匙可以從 Aliceb那里或從PKI服務(wù)器得到), 并用自己的私匙解密郵件(3a).
4b. Bob 對(duì)解密的郵件產(chǎn)生摘要Hb, 與(3b)解密的郵件摘要Ha比較.
如果無(wú)誤, 則可確認(rèn): 1) 該郵件由Alice 發(fā)出, 因?yàn)橹挥蠥lice 有自己的私匙; 2)郵件在傳遞過(guò)程中未遭篡改, 因?yàn)猷]件摘要比較結(jié)果一致.
另外, 因?yàn)橹挥蠥lice 有自己的私匙, Alice 無(wú)法否認(rèn)該郵件由自己發(fā)出.
如果 PKI Service Provider 用 RootCA 對(duì) Alice 的公匙做簽名操作, 由于RootCA的公匙可以公開(kāi)獲得, 對(duì) Alice 的公匙進(jìn)行核實(shí)(4b)即可確認(rèn)該公匙為 Alice 所有. 在解密的郵件中看到對(duì)方的證書(shū)信息是因?yàn)閷?duì)方對(duì)郵件不但加密并且簽名, 對(duì)方的公匙已經(jīng)含有有關(guān)信息. 既是簽名, 當(dāng)然要你看到才對(duì).
總結(jié):
用對(duì)方的公匙加密, 用自己的私匙解密
用自己的私匙簽名, 用對(duì)方的公匙核實(shí)