【轉】詳解公鑰、私鑰、數字證書的概念

轉自http://www.2cto.com/Article/201208/145328.html


加密和認證
  首先我們需要區分加密和認證這兩個基本概念。
   加密是將數據資料加密,使得非法用戶即使取得加密過的資料,也無法獲取正確的資料內容,所以數據加密可以保護數據,防止監聽攻擊。其重點在於數據的安全性。身份認證是用來判斷某個身份的真實性,確認身份後,系統纔可以依不同的身份給予不同的權限。其重點在於用戶的真實性。兩者的側重點是不同的。

 
公鑰和私鑰
      公鑰和私鑰就是俗稱的不對稱加密方式,是從以前的對稱加密(使用用戶名與密碼)方式的提高。

      在現代密碼體制中加密和解密是採用不同的密鑰(公開密鑰),也就是非對稱密鑰密碼系統,每個通信方均需要兩個密鑰,即公鑰和私鑰,這兩把密鑰可以互爲加解密。公鑰是公開的,不需要保密,而私鑰是由個人自己持有,並且必須妥善保管和注意保密。

  公鑰私鑰的原則:

一個公鑰對應一個私鑰。
密鑰對中,讓大家都知道的是公鑰,不告訴大家,只有自己知道的,是私鑰。
如果用其中一個密鑰加密數據,則只有對應的那個密鑰纔可以解密。
如果用其中一個密鑰可以進行解密數據,則該數據必然是對應的那個密鑰進行的加密。
      用電子郵件的方式說明一下原理。
      使用公鑰與私鑰的目的就是實現安全的電子郵件,必須實現如下目的:
      1. 我發送給你的內容必須加密,在郵件的傳輸過程中不能被別人看到。
      2. 必須保證是我發送的郵件,不是別人冒充我的。
      要達到這樣的目標必鬚髮送郵件的兩人都有公鑰和私鑰。
      公鑰,就是給大家用的,你可以通過電子郵件發佈,可以通過網站讓別人下載,公鑰其實是用來加密/驗章用的。私鑰,就是自己的,必須非常小心保存,最好加上 密碼,私鑰是用來解密/簽章,首先就Key的所有權來說,私鑰只有個人擁有。公鑰與私鑰的作用是:用公鑰加密的內容只能用私鑰解密,用私鑰加密的內容只能 用公鑰解密。
      比如說,我要給你發送一個加密的郵件。首先,我必須擁有你的公鑰,你也必須擁有我的公鑰。
      首先,我用你的公鑰給這個郵件加密,這樣就保證這個郵件不被別人看到,而且保證這個郵件在傳送過程中沒有被修改。你收到郵件後,用你的私鑰就可以解密,就能看到內容。
      其次我用我的私鑰給這個郵件加密,發送到你手裏後,你可以用我的公鑰解密。因爲私鑰只有我手裏有,這樣就保證了這個郵件是我發送的。

 

      非對稱密鑰密碼的主要應用就是公鑰加密和公鑰認證,而公鑰加密的過程和公鑰認證的過程是不一樣的,下面我就詳細講解一下兩者的區別。

 

基於公開密鑰的加密過程

    比如有兩個用戶Alice和Bob,Alice想把一段明文通過雙鑰加密的技術發送給Bob,Bob有一對公鑰和私鑰,那麼加密解密的過程如下:

Bob將他的公開密鑰傳送給Alice。
Alice用Bob的公開密鑰加密她的消息,然後傳送給Bob。
Bob用他的私人密鑰解密Alice的消息。
 Alice使用Bob的公鑰進行加密,Bob用自己的私鑰進行解密。

 

基於公開密鑰的認證過程

  身份認證和加密就不同了,主要用來鑑別用戶的真僞。這裏我們只要能夠鑑別一個用戶的私鑰是正確的,就可以鑑別這個用戶的真僞。

  還是Alice和Bob這兩個用戶,Alice想讓Bob知道自己是真實的Alice,而不是假冒的,因此Alice只要使用公鑰密碼學對文件 簽名發送給Bob,Bob使用Alice的公鑰對文件進行解密,如果可以解密成功,則證明Alice的私鑰是正確的,因而就完成了對Alice的身份鑑 別。整個身份認證的過程如下:

Alice用她的私人密鑰對文件加密,從而對文件簽名。
Alice將簽名的文件傳送給Bob。
Bob用Alice的公鑰解密文件,從而驗證簽名。
 Alice使用自己的私鑰加密,Bob用Alice的公鑰進行解密。

 

根證書

       根證書是CA認證中心給自己頒發的證書,是信任鏈的起始點。安裝根證書意味着對這個CA認證中心的信任。

 

總結

 

      根據非對稱密碼學的原理,每個證書持有人都有一對公鑰和私鑰,這兩把密鑰可以互爲加解密。公鑰是公開的,不需要保密,而私鑰是由證書持有人自己持有,並且必須妥善保管和注意保密。

      數字證書則是由證書認證機構(CA)對證書申請者真實身份驗證之後,用CA的根證書對申請人的一些基本信息以及申請人的公鑰進行簽名(相當於加蓋發證書機構的公章)後形成的一個數字文件。CA完成簽發證書後,會將證書發佈在CA的證書庫(目錄服務器)中,任何人都可以查詢和下載,因此數字證書和公鑰一樣是公開的。  

      可以這樣說,數字證書就是經過CA認證過的公鑰,而私鑰一般情況都是由證書持有者在自己本地生成的,由證書持有者自己負責保管。具體使用時,簽名操作是發 送方用私鑰進行簽名,接受方用發送方證書來驗證簽名;加密操作則是用接受方的證書進行加密,接受方用自己的私鑰進行解密。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章