公鑰私鑰數字證書及工作原理


http://deep-fish.iteye.com/blog/760311

公鑰私鑰數字證書及工作原理

公/私鑰成對出現,私鑰加的密用公鑰解,公鑰加的密用私鑰解密。
公鑰一般用於加密,驗證簽名
私鑰一般用於簽名
簽名的具體作法:
      首先將信息“***”通過散列算法計算后得到的報文摘要,然后通過私鑰對摘要進行加密,后面簽名有三種證書:建
行CA認證中心的根證書、建行網銀中心的服務器證書,每 個網上銀行用戶在瀏覽器端的客戶證書。有了這三個證書,就可
以在瀏覽器與建行網銀服務器之間建立起SSL連接。這樣,您的瀏覽器與建行網銀服務器之間就有 了一個安全的加密信道
。您的證書可以使與您通訊的對方驗證您的身份(您確實是您所聲稱的那個您),同樣,您也可以用與您通訊的對方的證
書驗證他的身份(他 確實是他所聲稱的那個他),而這一驗證過程是由系統自動完成的。
銀行系統一般是:
1. 用對方的公鑰加密數據,對方收到后用自己的私鑰解密;
2. 用你自己的私鑰簽名數據,對方收到后用你自己的公鑰驗證簽名。
網銀在傳遞數據過程中要把”傳遞的數據“用自己的私鑰進行簽名,而且要把”傳遞的數據“用公鑰進行加密
客戶端有自己的私鑰和一個數字證書,其中私鑰和服務器中的公鑰成對,而且是數字證書中的公鑰和服務器上的私鑰成對
匹配.
過程如下:
    (1)客戶A准備好要傳送的數字信息(明文)。  
  (2)客戶A對數字信息進行哈希(hash)運算,得到一個信息摘要。
  3)客戶A用自己的私鑰(SK)對信息摘要進行加密得到客戶A的數字簽名,並將其附在數字信息上。
  4)客戶A隨機產生一個加密密鑰(DES密鑰),並用此密鑰對要發送的信息進行加密,形成密文。
  5)客戶A用雙方共有的公鑰(PK)對剛才隨機產生的加密密鑰進行加密,將加密后的DES密鑰連同密文一起傳送給乙。
  6)銀行B收到客戶A傳送過來的密文和加過密的DES密鑰,先用自己的私鑰(SK)對加密的DES密鑰進行解密,得到DES
密鑰。  
  7)銀行B然后用DES密鑰對收到的密文進行解密,得到明文的數字信息,然后將DES密鑰拋棄(即DES密鑰作廢)。
  8)銀行B用雙方共有的公鑰(PK)對客戶A的數字簽名進行解密,得到信息摘要。銀行B用相同的hash算法對收到的明
文再進行一次hash運算,得到一個新的信息摘要。  
  9)銀行B將收到的信息摘要和新產生的信息摘要進行比較,如果一致,說明收到的信息沒有被修改過。
 

 

ssh公鑰私鑰認證原理

通常,通過ssh登錄遠程服務器時,使用密碼認證,分別輸入用戶名和密碼,兩者滿足一定規則就可以登錄。但是密碼認證有以下的缺點:

用戶無法設置空密碼(即使系統允許空密碼,也會十分危險)
密碼容易被人偷窺或猜到
服務器上的一個帳戶若要給多人使用,則必須讓所有使用者都知道密碼,導致密碼容易泄露,而且修改密碼時必須通知所有人
而使用公鑰認證則可以解決上述問題。

公鑰認證允許使用空密碼,省去每次登錄都需要輸入密碼的麻煩
多個使用者可以通過各自的密鑰登錄到系統上的同一個用戶
公鑰認證的原理
所謂的公鑰認證,實際上是使用一對加密字符串,一個稱為公鑰(public key),任何人都可以看到其內容,用於加密;另一個稱為密鑰(private key),只有擁有者才能看到,用於解密。通過公鑰加密過的密文使用密鑰可以輕松解密,但根據公鑰來猜測密鑰卻十分困難。

ssh 的公鑰認證就是使用了這一特性。服務器和客戶端都各自擁有自己的公鑰和密鑰。為了說明方便,以下將使用這些符號。

Ac 客戶端公鑰
Bc 客戶端密鑰
As 服務器公鑰
Bs 服務器密鑰

在認證之前,客戶端需要通過某種方法將公鑰 Ac 登錄到服務器上。

認證過程分為兩個步驟。

會話密鑰(session key)生成
客戶端請求連接服務器,服務器將 As 發送給客戶端。
服務器生成會話ID(session id),設為 p,發送給客戶端。
客戶端生成會話密鑰(session key),設為 q,並計算 r = p xor q。
客戶端將 r 用 As 進行加密,結果發送給服務器。
服務器用 Bs 進行解密,獲得 r。
服務器進行 r xor p 的運算,獲得 q。
至此服務器和客戶端都知道了會話密鑰q,以后的傳輸都將被 q 加密。
認證
服務器生成隨機數 x,並用 Ac 加密后生成結果 S(x),發送給客戶端
客戶端使用 Bc 解密 S(x) 得到 x
客戶端計算 q + x 的 md5 值 n(q+x),q為上一步得到的會話密鑰
服務器計算 q + x 的 md5 值 m(q+x)
客戶端將 n(q+x) 發送給服務器
服務器比較 m(q+x) 和 n(q+x),兩者相同則認證成功

 
    一直以來對公鑰和私鑰都理解得不是很透徹,感覺到模棱兩可,心里直打鼓呢。公鑰怎么會事?私鑰怎么會事?工作原理是怎么的?今天在網上找了半天,通過查看大家對這個密鑰對的理解,總算弄清楚了,咱就把我的心得寫出來給大家對密鑰對有疑問的同志們看看。
      公鑰和私鑰就是俗稱的不對稱加密方式,是從以前的對稱加密(使用用戶名與密碼)方式的提高。我用電子郵件的方式說明一下原理。
      使用公鑰與私鑰的目的就是實現安全的電子郵件,必須實現如下目的:
      1. 我發送給你的內容必須加密,在郵件的傳輸過程中不能被別人看到。
      2. 必須保證是我發送的郵件,不是別人冒充我的。
      要達到這樣的目標必須發送郵件的兩人都有公鑰和私鑰。
      公鑰,就是給大家用的,你可以通過電子郵件發布,可以通過網站讓別人下載,公鑰其實是用來加密/驗章用的。私鑰,就是自己的,必須非常小心保存,最好加上 密碼,私鑰是用來解密/簽章,首先就Key的所有權來說,私鑰只有個人擁有。公鑰與私鑰的作用是:用公鑰加密的內容只能用私鑰解密,用私鑰加密的內容只能 用公鑰解密。
      比如說,我要給你發送一個加密的郵件。首先,我必須擁有你的公鑰,你也必須擁有我的公鑰。
      首先,我用你的公鑰給這個郵件加密,這樣就保證這個郵件不被別人看到,而且保證這個郵件在傳送過程中沒有被修改。你收到郵件后,用你的私鑰就可以解密,就能看到內容。
      其次我用我的私鑰給這個郵件加密,發送到你手里后,你可以用我的公鑰解密。因為私鑰只有我手里有,這樣就保證了這個郵件是我發送的。
      當A->B資料時,A會使用B的公鑰加密,這樣才能確保只有B能解開,否則普羅大眾都能解開加密的訊息,就是去了資料的保密性。驗證方面則是使用簽 驗章的機制,A傳資料給大家時,會以自己的私鑰做簽章,如此所有收到訊息的人都可以用A的公鑰進行驗章,便可確認訊息是由 A 發出來的了。


免責聲明!

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



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