轉自:http://blog.csdn.net/mozart_cai/article/details/37592291
1.
Bob有兩把鑰匙,一把是Public Key, 一把是Private Key。
2.
Bob把公鑰送給他的三位朋友。
3.
蘇珊要給Bob寫一封信,用Bob的公鑰加密。別人就不知道信中的內容。
4.
Bob拿自己的私鑰將信解密。就算信落在別人手裏,別人由於沒有Bob的private key,所以也不能解開信的內容。
只要Bob的私鑰不被別人獲取,別人就不能破解該信。
5.
Bob給蘇珊回信,決定使用Digital Signature技術。他通過Hash函數,將信的內容生成一個摘要。
6.
Bob用他的私鑰對摘要加密,生成數字簽名。
7.
Bob將簽名附在信一起,打包一起發給蘇珊。
8.
蘇珊取下數字簽名,用Bob給她的公鑰解密數字簽名,得到信的摘要。
9.
蘇珊再將信的內容通過Hash函數,得到一個摘要。比對該摘要和Bob發過來的摘要,判斷它們是否相等。如果一樣,則表示信的內容沒有被改變。
10.
複雜的情況出現了。道格想欺騙蘇珊,他偷偷使用了蘇珊的電腦,用自己的公鑰換走了鮑勃的公鑰。此時,蘇珊實際擁有的是道格的公鑰,但是還以爲這是鮑勃的公鑰。因此,道格就可以冒充鮑勃,用自己的私鑰做成"數字簽名",寫信給蘇珊,讓蘇珊用假的鮑勃公鑰進行解密。
11.
後來,蘇珊感覺不對勁,發現自己無法確定公鑰是否真的屬於鮑勃。她想到了一個辦法,要求鮑勃去找"證書中心"(certificate authority,簡稱CA),爲公鑰做認證。證書中心用自己的私鑰,對鮑勃的公鑰和一些相關信息一起加密,生成"數字證書"(Digital Certificate)。
12.
鮑勃拿到數字證書以後,就可以放心了。以後再給蘇珊寫信,只要在簽名的同時,再附上數字證書就行了。
13.
蘇珊收信後,用CA的公鑰解開數字證書,就可以拿到鮑勃真實的公鑰了,然後就能證明"數字簽名"是否真的是鮑勃籤的。