IP Sec中的加密機制是通過IKE來實作的,在看《IPSec及IKE原理》的時候對雜湊演算法和Diffie-Hellman密鑰交換算法有點不太清楚,就到網上找了找關于這兩個算法的文章。
哈希(Hash)值
雜湊演算法将任意長度的二進制值映射為固定長度的較小二進制值,這個小的二進制值稱為哈希值。哈希值是一段資料唯一且極其緊湊的數值表示形式。如果散列一段明文而且哪怕隻更改該段落的一個字母,随後的哈希都将産生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的,是以資料的哈希值可以檢驗資料的完整性。
雜湊演算法是一類符合特殊要求的散列函數(Hash)函數,這些特殊要求是:
接受的輸入封包資料沒有長度限制;
對任何輸入封包資料生成固定長度的摘要("數字指紋")輸出;
由封包能友善地算出摘要;
難以對指定的摘要生成一個封包,由該封包可以得出指定的摘要;
難以生成兩個不同的封包具有相同的摘要。
Diffie和Hellman在其裡程碑意義的文章中雖然給出了
密碼的思想但是沒有給出真正意義上的公鑰密碼執行個體也
沒能找出一個真正帶陷門的單向函數然而他們給出單向
函數的執行個體并且基于此提出Diffie-Hellman密鑰交換算法
這個算法是基于有限域中計算離散對數的困難性問題之上
設F為有限域g F是F的乘法群F*=F\{0}=<g> 并且對
任意正整數x 計算gx是容易的但是已知g和y求x使y= gx
是計算上幾乎不可能的這一問題稱為有限域F上的離散對
數問題公鑰密碼學中使用最廣泛的有限域為素域FP.
對Diffie-Hellman密鑰交換協定描述Alice和Bob協商
好一個大素數p 和大的整數g 1<g<p p和g無須保密可
為網絡上的所有使用者共享
當Alice和Bob要進行保密通信時他們可以按如下步驟來做
(1)Alice選取大的随機數x 并計算X=gx(mod P)
(2)Bob選取大的随機數x′ 并計算X ′ = gx ′(mod P)
(3)Alice将X傳送給Bob Bob将X ′傳送給Alice
(4)Alice計算K=(X ′)X(mod P);Bob計算K ′ X) X ′(mod P),
易見K=K ′ =g xx ′(mod P)
由(4)知Alice和Bob已獲得了相同的秘密值K 雙方以K作為
加解密鑰以傳統對稱密鑰算法進行保密通信
本文轉自loveme2351CTO部落格,原文連結:http://blog.51cto.com/loveme23/8111 ,如需轉載請自行聯系原作者