公鑰,私鑰,數字簽名,數字證書詳解

原文(英文):http://www.youdzone.com/signature.htmlhtml

本文(中文,已翻譯)轉載於:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.htmlgit


====================================
算法



1. 安全

鮑勃有兩把鑰匙,一把是公鑰,另外一把是私鑰。數據結構

2.函數

鮑勃把公鑰送給他的朋友們----帕蒂、道格、蘇珊----每人一把。加密

3.spa

蘇珊要給鮑勃寫一封保密的信。她寫完後用鮑勃的公鑰加密,就能夠達到保密的效果。.net

4.翻譯

鮑勃收信後,用私鑰解密,就看到了信件內容。這裏要強調的是,只要鮑勃的私鑰不泄露,這封信就是安全的,即便落在別人手裏,也沒法解密。

5.

鮑勃給蘇珊回信,決定採用"數字簽名"。他寫完後先用Hash函數,生成信件的摘要(digest)。

6.

而後,鮑勃使用私鑰,對這個摘要加密,生成"數字簽名"(signature)。

7.

鮑勃將這個簽名,附在信件下面,一塊兒發給蘇珊。

8.

蘇珊收信後,取下數字簽名,用鮑勃的公鑰解密,獲得信件的摘要。由此證實,這封信確實是鮑勃發出的。

9.

蘇珊再對信件自己使用Hash函數,將獲得的結果,與上一步獲得的摘要進行對比。若是二者一致,就證實這封信未被修改過。

10.

複雜的狀況出現了。道格想欺騙蘇珊,他偷偷使用了蘇珊的電腦,用本身的公鑰換走了鮑勃的公鑰。此時,蘇珊實際擁有的是道格的公鑰,可是還覺得這是鮑勃的公鑰。所以,道格就能夠冒充鮑勃,用本身的私鑰作成"數字簽名",寫信給蘇珊,讓蘇珊用假的鮑勃公鑰進行解密。

11.

後來,蘇珊感受不對勁,發現本身沒法肯定公鑰是否真的屬於鮑勃。她想到了一個辦法,要求鮑勃去找"證書中心"(certificate authority,簡稱CA),爲公鑰作認證。證書中心用本身的私鑰,對鮑勃的公鑰和一些相關信息一塊兒加密,生成"數字證書"(Digital Certificate)。

12.

鮑勃拿到數字證書之後,就能夠放心了。之後再給蘇珊寫信,只要在簽名的同時,再附上數字證書就好了。

13.

蘇珊收信後,用CA的公鑰解開數字證書,就能夠拿到鮑勃真實的公鑰了,而後就能證實"數字簽名"是否真的是鮑勃籤的。


============================================

http://blog.csdn.net/sum_rain/article/details/36897095


總結:


假設AB寫一份信。

那麼這封將包含以下三部分內容:

1.信自己的內容(直接能夠看到,未加密)

2.A的數字簽名

3.A的數字證書


其中:數字簽名 是由信自己的內容通過hash算法計算獲得digest摘要,而後用 A的私鑰 加密而來的。

             數字證書 是A 向數字證書中心(CA)申請的,是由 A的我的信息,A的公鑰 等通過CA的私鑰 加密而來的。



而後B收到了這封信。B會想這封肯定是A發過來的嗎?這封信在發送過程當中有被篡改,仍是完整的嗎?只有當B確認清楚,才能判斷出信的內容是否可靠


而後B先用CA提供的公鑰解開數字證書,根據獲得的內容,如A的我的信息,肯定是A發過來的,而後拿到了A的公鑰。

接着,用A的公鑰解開A的數字簽名 就能獲得信自己內容的摘要。而後將信的第一部分,即信的自己內容 經hash計算獲得一個新的摘要,將兩個摘要比較,若是相同 說明信的內容沒有被篡改。


最後,便能肯定信的可靠性了。

相關文章
相關標籤/搜索