當我們在進行通訊的時候,常常需要在c/s兩端分配乙個會話金鑰,然後利用對稱密碼演算法對通訊的資料加密,當然了,也可以使用非對稱加密演算法,但是非對稱加密會使加密速度降低了乙個數量級,因此並不適用。那麼如何安全的在不安全的通道中分發會話金鑰呢?
有兩種方式,一種使用共享金鑰機制,這樣的協議很多,比如d-h金鑰分配協議、kerberos認證協議等等。但是使用共享金鑰進行會話金鑰的分發很麻煩,而且還有各種漏洞。作為工程人員,我們當然不希望進行複雜的多次協商才能完成認證的工作。
那麼使用公開金鑰機制就可以完成這個工作了。
1、首先a獲取b的公鑰eb,然後a隨機選擇乙個隨機數ra,然後將eb(a,ra)傳送給b。
2、b獲取到資料之後,利用自己的私鑰解密出結果為a,ra,然後b獲取a的公鑰ea,然後b選擇乙個會話金鑰ks和乙個隨機數rb並將資料ea(ra,ks,rb)傳送給a。
3、a在收到資料之後,使用自己私鑰後發現有ra,這個資料是剛剛發給b的,ra除了b不可能有任何知道,因為只有b才能解密。所以a確定他對面肯定是b,但是這時候b並不確定對面是不是a,還是h,因為h可以宣稱自己是a,所以最好的驗證方法是b確定a肯定能夠解密傳送給a的資料。
4、於是a 在上面收到資料之後,解密之後發現有rb,和ks,此時將資料ks(rb)傳送給b。當然了,此時,b肯定知道它對面通訊的是a了,於是這樣就完成了相互認證,並分發共享金鑰的操作。
那麼為什麼最後一步不是eb(rb),而要ks(rb)呢?我個人認為主要有兩點:1、eb是公開的,前者的隨機性相當於只有rb來保證,而後者ks和rb只有a才會知道,所以隨機性更大;2、還是一樣,對稱密碼演算法速度會更快。
公開金鑰機制
公開金鑰機制 演算法及公式 例子 轉 domino的安全機制中用到了公開金鑰機制。請你用5分鐘的時間看看我這個帖子,你就會明白公開金鑰機制的原理和使用方法。幾個小數數學中的概念 1 自然數 natural number 用以計量事物的件數或表示事物次序的數。即用數碼0,1,2,3,4,所表示的數 自...
公開金鑰體系
公開金鑰體系 1.確認伺服器的身份?客戶機請求通訊並傳送一明文讓伺服器加密,伺服器用私鑰加密後將密文傳輸給客戶機,客戶機用公鑰對密文進行解密,如解密後的密文和明文不等,則確認不是伺服器。實際上伺服器並不對客戶機的明文直接加密,因為攻擊者可以將有規律的字串傳送給伺服器,如伺服器對其直接加密返回,會威脅...
對稱金鑰系統和公開金鑰系統
為了安全性,在網際網路上傳輸的一些資訊需要加密,比如使用者登陸所使用的密碼。加密系統一般分為對稱金鑰系統 symmetric key system 和公開金鑰系統 public key system 在對稱金鑰系統中,用於加密和解密的金鑰是相同的並且是秘密的,只能為兩個人所知。對稱金鑰系統要求雙方共...