原文(英文):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
總結:
假設A給B寫一份信。
那麼這封將包含以下三部分內容:
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計算獲得一個新的摘要,將兩個摘要比較,若是相同 說明信的內容沒有被篡改。
最後,便能肯定信的可靠性了。