1. 程式人生 > >(轉載)我理解的數字證書-1-公鑰,私鑰和數字證書

(轉載)我理解的數字證書-1-公鑰,私鑰和數字證書

rsa加密算法 流程 employ alice 人的 無法 什麽是 作者 alt

原文地址:https://www.cnblogs.com/hthf/p/4986507.html

英文原文地址:

http://www.youdzone.com/signature.html

若下文有任何錯誤,請告知我,謝謝。[email protected]

主角介紹:Bob and Alice

提起RSA加密算法,公鑰和私鑰,多數文章都要使用Bob和Alice這兩位人物。他們的創造者名叫Rivest,是RSA之父。他為了在避免在描述中使用A和B,就以這兩個字母開頭,創建一男一女兩個角色,就是我們在任何文章上都能看到的Alice和Bob了。這是一些題外話,下面就來進入我們的數字證書入門學習吧。

什麽是數字證書

技術分享圖片

Bob有兩把鑰匙,一把叫公鑰(public key),一把叫私鑰(private key)。

技術分享圖片

Bob的公鑰可以公開供其他人使用,他只保留自己的私鑰。公鑰和私鑰用來加解密數據,如果使用任意一把來加密數據,那麽只有使用另外一把才能解密數據。

技術分享圖片

Susan想給Bob寫信,她可以使用Bob的公鑰將內容加密以後發送給Bob,Bob收到以後,使用私鑰解密以便閱讀內容。Bob的的其他同事即使截獲了Susan發送給Bob的信件,由於沒有Bob的私鑰,也無法解密,從而確保數據安全。以上就是使用公鑰和私鑰加解密的過程演示。

多說一句,如果Bob給Susan回信,如何保證數據安全呢?他可以使用Susan的公鑰加密消息後發給Susan,Susan使用自己的私鑰解密後閱讀。所以保護好自己的私鑰是多麽重要的事情啊。

現在Bob決定給Pat寫一份信,信件的內容不用加密,但是要保證Pat收到信件後,能夠確認信件的確是Bob發出的,而不是別人冒充Bob發給Pat的,應該如果做呢?

技術分享圖片

Bob將信件通過hash軟件計算一下,得到一串消息摘要(有的文章也稱之為“hash值”)。這一過程能夠保證2點:1、過程不可逆。即不能通過消息摘計算出信件的內容。2、消息摘要不會重復。即如果信件有任何改動,再次hash計算出的消息摘要一定不會和改動前的消息摘要一致。

技術分享圖片

技術分享圖片

然後,Bob使用自己的私鑰,將消息摘要加密。加密後的結果,我們稱之為“數字簽名”。現在,Bob就可以將信件連同數字簽名一起發給Pat。

技術分享圖片

Pat收到信件以後,會做2件事:1、使用Bob的公鑰將數字簽名解密,如果順利解密,說明的確是Bob簽發的數字簽名,不是別人簽發的,因為Bob的私鑰沒有公開。2、Pat使用hash軟件對信件再次進行hash計算,和解密數字簽名得到的消息摘要對比,如果一致,說明信件沒有篡改,確實是Bob發出的。這就是數字簽名的過程。它能夠確保簽名人發出的消息不被篡改,也能證明的確是簽名人發出的消息。

ok,一切看上去是那麽的完美,使用公鑰私鑰,即能加解密消息,又可以數字簽名。說了那麽多,還沒有提到文章的主題----數字證書(不要和數字簽名搞混了)。

先來做一道CISP的試題:

那類人對單位的信息安全威脅最大:a、高層領導 b、信息主管 c、安全管理員 d、心懷不滿的員工

三長一短選最短,三短一長選最長,so答案就是d,也是我們下面引入的主角,Doug,our disgruntled employee

Doug要欺騙Pat,冒充Bob給Pat寫信,他應該怎麽做的?既然Bob的公鑰是公開的,Doug可以冒充Bob,將他自己的公鑰發給Pat,讓Pat誤認為收到的公鑰就是Bob的,然後就可以冒充Bob給Pat發消息了(這裏我們只談理論,不談具體實現方式)。所以問題的核心就是,如何確保公鑰不被冒充?

使用數字證書可以確保公鑰不被冒充。數字證書是經過權威機構(CA)認證的公鑰,通過查看數字證書,可以知道該證書是由那家權威機構簽發的,證書使用人的信息,使用人的公鑰。它有以下特點:

1、由專門的機構簽發的數字證書才安全有效。

2、簽發數字證書是收費的。

3、不會被冒充,安全可信。

4、數字證書有使用期限,過了使用期限,證書變為不可用。CA也可以在試用期內,對證書進行作廢操作。

技術分享圖片

5、CA的公鑰已經集成到操作系統中了。如上圖。

生成數字證書的流程的如下:

1、持有人將公鑰以及身份信息發送給權威機構。

2、權威機構負責對持有人的身份進行驗證,確保公鑰和持有人的信息準確無誤。

3、權威機構使用自己私鑰對持有人公鑰進行數字簽名,生成數字證書。

4、為了確保證書不被篡改,權威機構對數字證書進行hash計算(指紋算法),生成摘要(指紋),使用自己的私鑰對摘要進行數字簽名,放到數字證書中。

5、對持有人收費。

附:

幾篇好的文章,對我的幫助很大,謝謝作者:

http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

http://blog.csdn.net/ly131420/article/details/38400583

(轉載)我理解的數字證書-1-公鑰,私鑰和數字證書