基金項目:黑龍江省自然基金資助,項目名稱《聯想記神經網絡研究》項目編號F2007-015;黑龍江省教育廳科技項目資助,項目名稱《基于聯想記憶的混沌神經網絡模型研究》,項目編號:11531065
[摘要] 本文首先介紹了數據加密的基本原理,在此基礎上說明了神經網絡在數據加密的實現過程,并以Hopfield神經網絡為例詳細闡述了加密、仿真過程及破譯復雜度,為神經網絡在數據加密中的應用開辟了一條新路。
[關鍵詞] 神經網絡加密密鑰
一、引言
密碼系統是用于加密解密的系統,明文和加密密鑰作為密碼系統的輸入參數,經過一定的加密變化處理后得到輸出密文。一個完整的密碼系統包括明文空間,密鑰空間,以及算法。加密算法主要要考慮的因素有兩個,一是混亂,即明文與密鑰以及密文之間的關系盡量復雜化,使破譯者無法理出相互間的依賴關系。二是擴散,是指讓明文中的每一位包括密鑰中的每一位直接或者間接影響輸出密文中的許多位或讓密文中的每一位受制于輸入密文以及密鑰中的若干位,把聯想記憶神經網絡用于加密,利用網絡迭代的非線性變化達到混亂的目的,采用分組密碼增加算法的擴散性。
目前,還找不出一種對所有樣本都可逆的Hopfield網絡,所以無法單純的靠網絡來加密。如果利用不可逆的網絡,就必須把原文構造成網絡的穩定點。這樣就相當于把受畸變的樣本作為密文。很顯然,具有高容錯能力的網絡的安全性能也相對較高,并且構造這樣的網絡難度也較大,所以我們換個思考問題的方式把通過網絡最終迭代的樣本最為加密的密鑰。這樣既提高了密鑰計算的難度,同時也提高了密文的安全性。
聯想記憶神經網絡的用途很廣泛,目前主要應用于動態聯想記憶、混沌優化及預測、模式分類和模式識別上,本文主要研究它在數據加密的應用上。
二、加密過程
密碼體制分兩大類,單鑰密鑰和雙鑰密鑰,本文采用了傳統的單鑰密鑰,即系統的保密性取決于密鑰的安全性。當然,如果不對外公開加密算法,該密碼系統的安全級別會更高。傳統的加密系統中,加密算法和解密算法的操作通常是在一組密鑰的控制下進行的,分別稱為加密密鑰和解密密鑰加密。具體的加密及解密過程如上圖所示。
本文的加密原理是把原網絡的樣本和作為密鑰的添加大量噪聲的樣本一起傳輸過去,假設該密碼系統中包含n1個神經網絡,其中有個n2網絡樣本,有n3個是作為密鑰的,它們不參與網絡權值的計算。我們假設屬于網絡1的樣本數為,屬于網絡2的樣本數為,屬于網絡n1的樣本數為,這樣,同時還要傳輸的是神經網絡的參數,其中包括各個網絡的起始位置,樣本的個數,以及網絡的維數,有的還需要包括迭代的次數。因為由于我們網絡樣本選取的隨機性,很多樣本并不是網絡的穩定點。為了該加密系統的安全,網絡參數我們通過安全通道傳輸,而網絡的樣本則接在密文后邊傳輸過去。事實上,我們可以用不同的神經網絡作為密鑰的載體,這里我們采用的是離散的Hopfiled網絡,為了方便闡述該密碼系統,假設作為單個網絡的樣本是連續存放的,在該網絡前面的樣本按照網絡的維數劃分成幾個該網絡的樣本。當然,作為網絡樣本的向量分散存放會使破譯的難度大大增加,但是同時也增大的密鑰空間。
三、加密算法
假設有一個長度為256的明文,我們將其分組進行加密,分別與我們按上述過程生成的密鑰進行異或,或者利用別的更高級加密算法。
加密的重點在于密鑰的生成,因此為了方便說明加密原理,關于加密算法我們就簡單的使用生成一個2進制序列,和原文異或,完全可以反復利用密鑰對原文多次不同算法的加密。
四、破譯復雜度
首先破譯者要知道密文的長度,這樣才能得出網絡樣本。破譯者無法知道我們使用了幾個網絡,也無法得知我們各個網絡的維數以及樣本個數,本為僅計算在最簡單情況下破譯的代價,最簡單的情況只用一個網絡。我們假設網絡樣本總數為n,考慮到網絡的樣本至少有2個,所以網絡的樣本維數應在2到之間,相應的網絡可能有種情況。由于我們采用的并不是hopfield網絡的穩定點,所以破譯者無法通過網絡的存儲上先來幫助其排出上述的任何一種情況,加上破譯者無法知道我們的樣本需要迭代的次數,如果我們采用n個網絡,那么破譯者首先要知道我們使用了幾個網絡,所以破譯的復雜度在原來的基礎上擴大了幾何級數倍。所以我們認為計算代價很大,在不知道密鑰的情況下在有限時間內是不可解的。
對于網絡的參數傳輸我們傳輸幾對這樣的序列,當然在傳輸的時候是連續的,分別是網絡的起始位置,網絡的維數,樣本產生密鑰需要迭代的次數。如果分散傳輸,就大大的增大了網絡的參數,因為我們要指出是第幾個網絡的樣本,第幾個網絡的輸入, 如果更復雜的,同一個網絡的輸入我們可以規定不同的迭代次數。
五、仿真過程及結果
我們生成一個64位的密鑰來舉例說明,我們用兩個Hopfiled網絡,網絡一的樣本維數是4,網絡二的樣本是維數是5,網絡一的樣本為(1,0,1,0),(0,0,1,1),(1,1,0,0)網絡二的樣本為(1,1,0,1,0),(0,1,1,0,0),我們把其中的0換成-1,首先我們根據hebb規則計算出兩個網絡的權值,該規則的公式為
我們把網絡樣本代入計算,網絡一的權值為,網絡二的權值為我們讓網絡一的6個輸入迭代5次作為密鑰,讓網絡二的8個輸入迭代3次作為密鑰,其中網絡一的6個輸入模式分別是(1,1,1,1),(0,1,0,1),(0,0,0,1),(1,1,1,0),(0,1,0,0),(1,1,0,1),網絡二的8個輸入樣本分別是(1,1,1,0,0),(0,0,0,1,1),(0,0,1,0,1),(1,0,0,1,1),(1,1,0,1,1),(1,0,1,0,1),(0,1,0,1,0),(1,1,0,0,1),我們通過仿真得到迭代的結果分別是(1,1,0,0),(0,1,0,1),(0,0,1,1),(1,1,0,0),(1,1,0,1),(1,1,0,1),以及(0,1,1,0,0),(1,0,0,1,1),(0,0,1,0,1),(1,0,0,1,1),(1,1,0,1,1),(0,0,1,0,1),(1,1,0,1,0),(1,1,0,1,1)由于我們選取的網絡樣本數較小,維數較低,所以有一部分密鑰暴露在明文的后邊,但只要我們規定合理的網絡樣本,網絡維數,以及具體輸入的迭代次數,要完全隱藏密鑰的信息是完全可行的。
假設我們要秘密傳送的網絡參數是(24,4,3,5),(55,5,2,6),其中它們代表的意義分別是網絡開始的位置,網絡的樣本維數,網絡的樣本數,輸入樣本需要迭代的次數。
接受方按照把明文后的向量截取下來,對照通過相對安全的通道傳輸過來的網絡參數,把該向量的第24位,每四位截取一個向量,共截取3個網絡樣本,按照協議的公式計算出網絡的權值,并把其前邊的樣本也按四個每組截成若干個輸入,進入網絡迭代5次得出的結果,和從第24+4*3到第54位的數按5個一組輸入從第55位開始取10位數分解成2個5維的樣本構成的網絡進行迭代3次的結果便是密鑰,將密鑰和密文異或變得出明文。
本文采用基本的Hopfiled網絡作為加密模型,簡單的外積法計算權值。事實上,我們可以利用各種網絡模型以及改進的權值計算方法來獲得網絡的權值,只要傳遞給接受方相應的參數,這樣既增大的破譯的難度,又使該算法有很大的靈活性。
本算法也存在一定有待改善的缺陷,由于網絡的一些樣本在迭代有限步內就成為網絡的冗余吸引子,繼續迭代也不再發生變化,這是一個明顯的安全漏洞,所以我們對加密模型的研究還在于盡量使用不收斂的網絡輸入,這樣能提高該密碼系統的安全性。
六、結論
數據加密技術是現代信息社會急需的熱門技術之一,本文主要分析Hopfiled聯想記憶神經網絡在數據加密上的用途,詳細介紹了加密的原理及過程。對于采用神經網絡的方法實現數據加密提供了一種新的思路。
參考文獻:
[1]Ohta Masaya. Chaotic Neural Networks with Reinforced self-feedbacks and Its application to N-queen Problem [J]. Mathematics and Computers in Simulation,2002,59(4): 305-317
[2]Adachi M,Aihara K. Associative Dynamics in a Chaotic Neural Network [J]. Neural Networks,1997,10(1): 83-98
[3]He G G,Gao Z T,Zhu P,et al. Controlling Chaos in a Chaotic NeuralNetwork[J]. Neural Networks,2003,16(8): 1195-1200
[4]何國光朱萍曹志彤等:混沌神經網絡的Lyapunov指數與混沌區域[J]. 浙江大學學報,2004,31(7):387-390
[5]Xinshun Xu,Zheng Tang,Jiahai Wang. A method to improve the transiently chaotic neural network [J]. Neurocomputing 67(2005): 456-463
[6]謝傳泉何晨:混沌神經網絡模型中的模擬退火策略[J].上海交通大學學報,2002,37(3):323-326