肖亞飛
摘要:在網絡安全傳輸過程中,Diffie-Hellman密鑰交互協(xié)議是一種具有隱私安全的算法,該算法可以在不安全的公共信道上實現通信雙方協(xié)商一個共享密鑰,該密鑰可以對通信雙方傳輸的數據進行加解密運算,從而保證數據的安全性。因此,該文設計并實現了一個以Diffie-Hellman協(xié)議為核心的密鑰交互系統(tǒng)。該系統(tǒng),主要設計與實現了以下幾個部分:設置公共參數、隨機數的產生、公開密鑰計算、共享密鑰生成。
關鍵詞:Diffie-Hellman算法;密鑰交互系統(tǒng);加解密
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)03-0034-03
1 概述
科技迅速發(fā)展的今天,通過計算機網絡和公開信道設施來傳遞信息,其信息的保密性越來越受到人們的重視,而對傳輸信息的安全性有了不同程度的要求,比如QQ聊天,同學之間發(fā)送郵件,這些都使用了數據加密。文獻[1,2]描述了信息安全,為了實現在公共信道設施上進行安全數據傳輸信息,采用DES算法對信道上的數據進行加密運算,而且在每次通信或者在一定的時間內都建立一個新的通信密鑰,可以避免密鑰泄露防止黑客的攻擊,這樣可以確保數據的安全性。為了解決此類問題的發(fā)生,本文設計了一種以Diffie-Hellman協(xié)議為核心的密鑰交互系統(tǒng),從而保證公共信道傳輸數據的安全性。
迪菲-赫爾曼密鑰交換是第一個比較實用的,它是在非安全信道中,創(chuàng)建共享密鑰確保信道安全的一種方法。文獻[3,4]概述了Diffie-Hellman密鑰交換算法,該算法可以讓通信雙方在完全不知對方消息的情況下,通過創(chuàng)建一個共享密鑰,從而使得在不安全信道中保護數據信息的安全性,它能在網絡通信中為通信的參與者提供相應的身份認證,而且能夠為參與者生成一個用來加密解密傳遞消息的臨時會話密鑰。
2 相關技術
在文獻[5,6]中,公開密碼體制是當今時代密碼學最重要的發(fā)明之一,也是當今研究的主題。一般而言,將公開密碼體制理解為保護信息傳輸過程數據安全性而產生的一種密碼學(Cryptography)體制。而密鑰的產生是成對出現的,即密鑰對,它是根據公鑰體系而建立的,而且每個密鑰對都是由一個公鑰和一個私鑰組成的。而最早提出公開密鑰算法是在1976年,是由美國斯坦福大學的迪菲(Diffie)和赫爾曼(Hellman)共同合作提出的,該算法也稱作為非對稱密鑰算法,使用密鑰對即專用密鑰和公共密鑰對數據進行加密運算。
Diffie-Hellman協(xié)議密鑰交互算法是第一個非常實用的算法體系,它是在不安全的通信傳輸過程中建立共享密鑰的一種方法,然而它卻不具備加密的功能。但是,它所產生的密鑰可用于對數據進行加解密運算,以至于可以確保信道傳輸中數據的隱私性。文獻[7,8,9]中概括了DES算法是一種對稱密碼體制,又被稱為美國數據加密標準。DES算法密鑰長度是64位,但是第8位、16位、32位、48位、56位、64位是用作奇偶校驗位使用的,這樣就使得每個密鑰都是奇數個一,而實際上加密過程中只有56位參與DES算法[10]。
3 Diffie-Hellman協(xié)議密鑰交互系統(tǒng)的設計
3.1 設計思路
Diffie-Hellman密鑰交互是依據數學上離散對數設計的一種算法。對其定義如下:任意素數p及其原根,若i是素數p的一個原根,那么數值是互不相同的以某種排列組合方式組成整數。
由上可知,Diffie-Hellman算法的描述如下:
1) 假設任意兩個公開參數,素數p和整數g,而且g是p的一個原根。
2) 假設兩個通信雙方A(Alice)和B(Bob)希望獲得通信密鑰,那么通信方A選擇私有密鑰a
3) 通信方A利用計算密鑰。類似地,B利用計算密鑰,雖然這兩個用戶選擇的隨機數不同,但是計算結果卻是相同的,這就相當于雙方已經得到了一個共同的共享密鑰。具體的計算公式如下:
K = (Y^a) mod p
= (g ^b mod p)^a mod p
= (g ^b)^a mod p
= g ^a^b mod p
= (g ^a)^b mod p
= (g^a mod p)^b mod p
= (X^b) mod p
4) a和b是保密存放的,是私有密鑰。攻擊者可以獲得的參數只有p、g、X和Y四個。 若攻擊者想要獲得密鑰,就必須使用離散對數來確定。例如,要獲取B的秘有密鑰,攻擊者就必須先計算,再使用與B采用同樣方法計算私有密鑰K,計算量復雜繁瑣,不利于獲得,從而保證了數據信息的安全性。具體的密鑰交換流程如圖1所示。
通過密鑰交換的流程可知,Diffie-Hellman密鑰交換算法需要實現幾個模塊功能,如公共參數模塊,公開密鑰模塊等。因此,本文設計的Diffie-Hellman密鑰交換系統(tǒng)能夠更高效的完成,并且實現信道上安全傳輸數據信息的功能。
3.2 隨機數產生模塊
Alice隨機選取私有密鑰數據a
3.3 公開密鑰模塊
大素數p和底數g已經得到,接下來通信雙方要分別計算各自的公開密鑰數據X=(g^a ) mod p和Y=(g^b) mod p,計算好之后,參與者開始把自己計算得到的密鑰傳輸給對方,也即交換數據。
3.4 共享密鑰生成模塊
通信雙方得到來自對方的公開密鑰,再根據自己的私有密鑰a和b以及大素數p分別計算K= (Y^a) mod p和K = (X^b) mod p,而計算得到了一個相同的共享密鑰,也即完成了Diffie-Hellman密鑰交換算法的設計。
4 基于Diffie-Hellman協(xié)議密鑰交互系統(tǒng)的實現
4.1 概要分析
本文為了實現Diffie-Hellman密鑰交互系統(tǒng)的實現,需要實現公共參數的設置、產生保密隨機數、通過離散對數計算公開密鑰和生成共享密鑰的功能。而其中最主要的部分就是實現通信雙方公開密鑰的計算和共享密鑰的計算,在傳輸數據信息時,Diffie-Hellman算法通過公共信道時,通信雙方交換信息,創(chuàng)建一個可以用于在公共信道上安全通信的共享密鑰,這個共享數據為通信雙方所知,但是各自都有自己的私有密鑰,以此可以在不安全的信道上安全傳輸信息。
4.2 公共參數的設置
通過大數運算隨機獲取一個大數和原根,再根據Miller-Rabin算法進行對大數進行檢測,判斷是大素數。通信雙方Alice和Bob隨機選取保密數a和b。
首先,包括素數模p和底數g;
其次,點擊產生隨機素數,輸入素數比特長度,在點擊產生素數,點擊接受即可產生大素數p;
最后,產生隨機素數成功之后,再生成一個隨機自然數作為底數的g,接受即可,這樣就完成了公共參數的設置。
4.3 隨機數模塊的實現
產生保密的隨機數,它包括用戶Alice和用戶Bob的設置:
首先,點擊Alice用戶的保密隨機數,讓其產生隨機數a,在點擊接受即可;
其次,是對Bob的保密隨機數b的設置,和Alice的設置是相同的;
最后,產生的隨機數也就是通信雙方的私有密鑰,而對于私有密鑰,在通信過程中是不被其他人知道的。因此,人們在設置私有密鑰時,展現在眼前的是看不到具體的數字的,而是使用了特別的符號來代替,當然作為自己的私有密鑰,自己是保密存放的,相對于其他的通信方是不知道。
4.4 公開密鑰的計算
根據離散對數的相關知識,通信方Alice和Bob分別計算公開密鑰X=(g^a )mod p和Y=(g^b) mod p,得到X和Y。對于這個公開密鑰是對外開放的,也即是公開密鑰。
4.5 共享密鑰的生成
有上一步知道了公開密鑰,而相對于對方還不知道這個公開的密鑰。所以在根據離散對數計算而得到的密鑰,要使Alice和Bob交換數據X和Y之后,再根據K= (Y^a) mod p和K = (X^b) mod p計算共享密鑰,最終可得到一個相同的密鑰,該共享密鑰可以在傳輸過程中加密數據信息,確保數據的隱私性。
綜上所述,通過實現以上各個功能模塊,通信雙方獲得共享密鑰,該密鑰用來作對稱密鑰使用,從而對通信雙方的數據加密,使雙方可以在不安全信道上完成通信內容。最終實現了Diffie-Hellman協(xié)議密鑰交互系統(tǒng)的功能,完整的示例如圖2所示。
最后,實現Diffie-Hellman協(xié)議密鑰交互系統(tǒng)相的關代碼如圖3所示。
5 總結
本文設計與實現了Diffie-Hellman協(xié)議密鑰交互系統(tǒng),該系統(tǒng)可以在不安全的公共信道上實現通信,通信方可以用共享密鑰對傳輸的消息進行加密和解密。密鑰交互是安全領域的一個很重要的算法。因此,本文設計并實現了一個以Diffie-Hellman協(xié)議為核心的密鑰交互系統(tǒng)。而在文中主要實現了公共參數的設置、隨機數產生、公開密鑰如何計算以及共享密鑰生成等幾個部分。
參考文獻:
[1] 楊明,胥光輝,齊望東. 密碼編碼學與網絡安全-原理與實踐[M].北京:電子工業(yè)出版社,2001:85.
[2] 盧開澄. 計算機碼學-計算機網絡中的數據保密與安全[M].北京:清華大學出版社,2003:370-374.
[3] 肖寧. 基于Diffie-Hellman的密鑰交換協(xié)議[J]. 中國科技博覽, 2010(34):76-76.
[4] 馮超, 張權, 唐朝京. 計算可靠的Diffie-Hellman密鑰交換協(xié)議自動證明[J]. 通信學報, 2011, 32(10):118-126.
[5] Liu K, Qing S, Meng Y. An improved way on Kerberos protocol Based on public-key algorithms[J]. Journal of Software, 2001.
[6] Jia K, Chen X, Xu G. The improved Public Key Encryption Algorithm of Kerberos Protocol Based on Braid Groups[C]//the 4th international conference on wireless communications, networking and mobile computing. 2008:1 - 4.
[7] Chueng T P, Yusoff Z M, Sha'Ameri A Z. Implementation of pipelined data encryption standard (DES) using Altera CPLD[J]. 1109/tencon, 2000, 3:17 - 21.
[8] Poornima P V, Amrutha V. Security Enhanced Communication Scheme with Error Correction Capability and Efficient Channel Utilization[J]. International Journal of Computer Science & Information Technology, 2014.
[9] Sun H M, Wu M E, Ting W C, et al. Dual RSA and Its Security Analysis[J]. Information Theory IEEE Transactions on, 2007, 53(8):2922-2933.
[10] 李尚恩. 動態(tài)模擬方式詳解DES輪密鑰生成[J]. 智能計算機與應用, 2013(6).