淺顯易懂地解釋公鑰私鑰數字簽名數字證書


公鑰私鑰與數字簽名數字證書

英文文章原文:http://www.youdzone.com/signature.html,在此文章基礎上做了一些擴充
公鑰加密,私鑰解密;私鑰簽名,公鑰驗簽。

私鑰對摘要(某明文的hash值)進行加密,加密后產生數字簽名。

Bob 有兩把鑰匙。Bob 的密鑰之一稱為公鑰,另一個稱為私鑰。

Bob 的公鑰可供任何需要它的人使用,但他將私鑰留給自己。密鑰用於加密信息。Bob 的兩個密鑰中的任何一個都可以加密數據,另一個密鑰可以解密該數據。

Susan可以使用 Bob 的公鑰加密消息。Bob 使用他的私鑰來解密消息。Bob 的任何同事都可以訪問 Susan 加密的消息,但沒有 Bob 的私鑰,數據就毫無價值。

現在Bob決定給Pat寫一份信,信件的內容不用加密,但是要保證Pat收到信件后,能夠確認信件的確是Bob發出的。Bob將信件hash計算一下,得到一串消息摘要,也叫hash值。

然后對消息摘要使用自己的私鑰進行加密,加密后的結果,就是“數字簽名”。

現在,Bob把數字簽名附在文檔之后一起發給Pat。

數字簽名:私鑰對某公開內容的hash值進行加密。

Pat 收到消息后使用 Bob 的公鑰,將數字簽名將其改回消息摘要。如果這有效,則證明 Bob 簽署了該文件,因為只有 Bob 擁有他的私鑰。Pat 之后將文檔數據進行hash計算,如果消息摘要與解密簽名時創建的消息摘要相同,則 Pat 知道數據沒有更改。

既然Bob的公鑰是公開的,Doug可以冒充Bob,將他自己的公鑰發給Pat,讓Pat誤認為收到的公鑰就是Bob的,然后就可以冒充Bob給Pat發消息了。所以出現新的問題,如何確保公鑰不被冒充?

使用權威機構(CA)認證的公鑰數字證書可以確保公鑰不被冒充。通過查看數字證書,可以知道該證書是由哪家權威機構簽發的,證書使用人的信息,使用人的公鑰等信息。現在 Bob 的同事可以檢查 Bob 的可信證書,以確保他的公鑰真正屬於他。事實上,Bob 公司的任何人都不會接受不存在 CA機構生成的證書的簽名。 CA機構有權在私鑰被泄露或不再需要時撤銷簽名。

證書生成過程:先生成一個文件D,文件大概是:

  • 公鑰內容

  • 簽發者ID----誰簽發的證書

  • Subject----也就是這個證書簽發給誰。這里subject和簽發者ID相同。

  • 有效期

  • 其他信息

    然后使用hash算法,對以上內容D進行hash計算,得到一個摘要H(hash值)。然后使用簽發機構的私鑰對摘要H進行RSA加密,得到數字簽名S。然后將文件D和數字簽名S連成一個文件,這個文件就是數字證書。所以數字證書里,包括證書持有者的身份信息,證書信息,證書持有人的公鑰,以及簽名信息。

CA的公鑰已經添加到操作系統中了。Bob將公鑰以及身份信息發送給CA機構。機構對Bob的身份進行驗證,確保公鑰和Bob的信息准確無誤。CA機構使用自己私鑰對持有人公鑰與持有人信息進行數字簽名,生成數字證書。使用自己的私鑰對摘要進行數字簽名,放到數字證書中。Susan收到證書之后,利用CA機構公鑰對數字簽名解析,得到摘要,然后對Bob公鑰與Bob信息進行hash計算,查看計算得到的hash值是否與摘要一致,一致則說明公鑰未被篡改,不一致則說明已被篡改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM