基金項目:黑龍江省自然基金資助,項目名稱《聯(lián)想記神經(jīng)網(wǎng)絡(luò)研究》項目編號F2007-015;黑龍江省教育廳科技項目資助,項目名稱《基于聯(lián)想記憶的混沌神經(jīng)網(wǎng)絡(luò)模型研究》,項目編號:11531065
[摘要] 本文首先介紹了數(shù)據(jù)加密的基本原理,在此基礎(chǔ)上說明了神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)加密的實現(xiàn)過程,并以Hopfield神經(jīng)網(wǎng)絡(luò)為例詳細(xì)闡述了加密、仿真過程及破譯復(fù)雜度,為神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)加密中的應(yīng)用開辟了一條新路。
[關(guān)鍵詞] 神經(jīng)網(wǎng)絡(luò)加密密鑰
一、引言
密碼系統(tǒng)是用于加密解密的系統(tǒng),明文和加密密鑰作為密碼系統(tǒng)的輸入?yún)?shù),經(jīng)過一定的加密變化處理后得到輸出密文。一個完整的密碼系統(tǒng)包括明文空間,密鑰空間,以及算法。加密算法主要要考慮的因素有兩個,一是混亂,即明文與密鑰以及密文之間的關(guān)系盡量復(fù)雜化,使破譯者無法理出相互間的依賴關(guān)系。二是擴散,是指讓明文中的每一位包括密鑰中的每一位直接或者間接影響輸出密文中的許多位或讓密文中的每一位受制于輸入密文以及密鑰中的若干位,把聯(lián)想記憶神經(jīng)網(wǎng)絡(luò)用于加密,利用網(wǎng)絡(luò)迭代的非線性變化達(dá)到混亂的目的,采用分組密碼增加算法的擴散性。
目前,還找不出一種對所有樣本都可逆的Hopfield網(wǎng)絡(luò),所以無法單純的靠網(wǎng)絡(luò)來加密。如果利用不可逆的網(wǎng)絡(luò),就必須把原文構(gòu)造成網(wǎng)絡(luò)的穩(wěn)定點。這樣就相當(dāng)于把受畸變的樣本作為密文。很顯然,具有高容錯能力的網(wǎng)絡(luò)的安全性能也相對較高,并且構(gòu)造這樣的網(wǎng)絡(luò)難度也較大,所以我們換個思考問題的方式把通過網(wǎng)絡(luò)最終迭代的樣本最為加密的密鑰。這樣既提高了密鑰計算的難度,同時也提高了密文的安全性。
聯(lián)想記憶神經(jīng)網(wǎng)絡(luò)的用途很廣泛,目前主要應(yīng)用于動態(tài)聯(lián)想記憶、混沌優(yōu)化及預(yù)測、模式分類和模式識別上,本文主要研究它在數(shù)據(jù)加密的應(yīng)用上。
二、加密過程
密碼體制分兩大類,單鑰密鑰和雙鑰密鑰,本文采用了傳統(tǒng)的單鑰密鑰,即系統(tǒng)的保密性取決于密鑰的安全性。當(dāng)然,如果不對外公開加密算法,該密碼系統(tǒng)的安全級別會更高。傳統(tǒng)的加密系統(tǒng)中,加密算法和解密算法的操作通常是在一組密鑰的控制下進行的,分別稱為加密密鑰和解密密鑰加密。具體的加密及解密過程如上圖所示。
本文的加密原理是把原網(wǎng)絡(luò)的樣本和作為密鑰的添加大量噪聲的樣本一起傳輸過去,假設(shè)該密碼系統(tǒng)中包含n1個神經(jīng)網(wǎng)絡(luò),其中有個n2網(wǎng)絡(luò)樣本,有n3個是作為密鑰的,它們不參與網(wǎng)絡(luò)權(quán)值的計算。我們假設(shè)屬于網(wǎng)絡(luò)1的樣本數(shù)為,屬于網(wǎng)絡(luò)2的樣本數(shù)為,屬于網(wǎng)絡(luò)n1的樣本數(shù)為,這樣,同時還要傳輸?shù)氖巧窠?jīng)網(wǎng)絡(luò)的參數(shù),其中包括各個網(wǎng)絡(luò)的起始位置,樣本的個數(shù),以及網(wǎng)絡(luò)的維數(shù),有的還需要包括迭代的次數(shù)。因為由于我們網(wǎng)絡(luò)樣本選取的隨機性,很多樣本并不是網(wǎng)絡(luò)的穩(wěn)定點。為了該加密系統(tǒng)的安全,網(wǎng)絡(luò)參數(shù)我們通過安全通道傳輸,而網(wǎng)絡(luò)的樣本則接在密文后邊傳輸過去。事實上,我們可以用不同的神經(jīng)網(wǎng)絡(luò)作為密鑰的載體,這里我們采用的是離散的Hopfiled網(wǎng)絡(luò),為了方便闡述該密碼系統(tǒng),假設(shè)作為單個網(wǎng)絡(luò)的樣本是連續(xù)存放的,在該網(wǎng)絡(luò)前面的樣本按照網(wǎng)絡(luò)的維數(shù)劃分成幾個該網(wǎng)絡(luò)的樣本。當(dāng)然,作為網(wǎng)絡(luò)樣本的向量分散存放會使破譯的難度大大增加,但是同時也增大的密鑰空間。
三、加密算法
假設(shè)有一個長度為256的明文,我們將其分組進行加密,分別與我們按上述過程生成的密鑰進行異或,或者利用別的更高級加密算法。
加密的重點在于密鑰的生成,因此為了方便說明加密原理,關(guān)于加密算法我們就簡單的使用生成一個2進制序列,和原文異或,完全可以反復(fù)利用密鑰對原文多次不同算法的加密。
四、破譯復(fù)雜度
首先破譯者要知道密文的長度,這樣才能得出網(wǎng)絡(luò)樣本。破譯者無法知道我們使用了幾個網(wǎng)絡(luò),也無法得知我們各個網(wǎng)絡(luò)的維數(shù)以及樣本個數(shù),本為僅計算在最簡單情況下破譯的代價,最簡單的情況只用一個網(wǎng)絡(luò)。我們假設(shè)網(wǎng)絡(luò)樣本總數(shù)為n,考慮到網(wǎng)絡(luò)的樣本至少有2個,所以網(wǎng)絡(luò)的樣本維數(shù)應(yīng)在2到之間,相應(yīng)的網(wǎng)絡(luò)可能有種情況。由于我們采用的并不是hopfield網(wǎng)絡(luò)的穩(wěn)定點,所以破譯者無法通過網(wǎng)絡(luò)的存儲上先來幫助其排出上述的任何一種情況,加上破譯者無法知道我們的樣本需要迭代的次數(shù),如果我們采用n個網(wǎng)絡(luò),那么破譯者首先要知道我們使用了幾個網(wǎng)絡(luò),所以破譯的復(fù)雜度在原來的基礎(chǔ)上擴大了幾何級數(shù)倍。所以我們認(rèn)為計算代價很大,在不知道密鑰的情況下在有限時間內(nèi)是不可解的。
對于網(wǎng)絡(luò)的參數(shù)傳輸我們傳輸幾對這樣的序列,當(dāng)然在傳輸?shù)臅r候是連續(xù)的,分別是網(wǎng)絡(luò)的起始位置,網(wǎng)絡(luò)的維數(shù),樣本產(chǎn)生密鑰需要迭代的次數(shù)。如果分散傳輸,就大大的增大了網(wǎng)絡(luò)的參數(shù),因為我們要指出是第幾個網(wǎng)絡(luò)的樣本,第幾個網(wǎng)絡(luò)的輸入, 如果更復(fù)雜的,同一個網(wǎng)絡(luò)的輸入我們可以規(guī)定不同的迭代次數(shù)。
五、仿真過程及結(jié)果
我們生成一個64位的密鑰來舉例說明,我們用兩個Hopfiled網(wǎng)絡(luò),網(wǎng)絡(luò)一的樣本維數(shù)是4,網(wǎng)絡(luò)二的樣本是維數(shù)是5,網(wǎng)絡(luò)一的樣本為(1,0,1,0),(0,0,1,1),(1,1,0,0)網(wǎng)絡(luò)二的樣本為(1,1,0,1,0),(0,1,1,0,0),我們把其中的0換成-1,首先我們根據(jù)hebb規(guī)則計算出兩個網(wǎng)絡(luò)的權(quán)值,該規(guī)則的公式為
我們把網(wǎng)絡(luò)樣本代入計算,網(wǎng)絡(luò)一的權(quán)值為,網(wǎng)絡(luò)二的權(quán)值為我們讓網(wǎng)絡(luò)一的6個輸入迭代5次作為密鑰,讓網(wǎng)絡(luò)二的8個輸入迭代3次作為密鑰,其中網(wǎng)絡(luò)一的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),網(wǎng)絡(luò)二的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),我們通過仿真得到迭代的結(jié)果分別是(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)由于我們選取的網(wǎng)絡(luò)樣本數(shù)較小,維數(shù)較低,所以有一部分密鑰暴露在明文的后邊,但只要我們規(guī)定合理的網(wǎng)絡(luò)樣本,網(wǎng)絡(luò)維數(shù),以及具體輸入的迭代次數(shù),要完全隱藏密鑰的信息是完全可行的。
假設(shè)我們要秘密傳送的網(wǎng)絡(luò)參數(shù)是(24,4,3,5),(55,5,2,6),其中它們代表的意義分別是網(wǎng)絡(luò)開始的位置,網(wǎng)絡(luò)的樣本維數(shù),網(wǎng)絡(luò)的樣本數(shù),輸入樣本需要迭代的次數(shù)。
接受方按照把明文后的向量截取下來,對照通過相對安全的通道傳輸過來的網(wǎng)絡(luò)參數(shù),把該向量的第24位,每四位截取一個向量,共截取3個網(wǎng)絡(luò)樣本,按照協(xié)議的公式計算出網(wǎng)絡(luò)的權(quán)值,并把其前邊的樣本也按四個每組截成若干個輸入,進入網(wǎng)絡(luò)迭代5次得出的結(jié)果,和從第24+4*3到第54位的數(shù)按5個一組輸入從第55位開始取10位數(shù)分解成2個5維的樣本構(gòu)成的網(wǎng)絡(luò)進行迭代3次的結(jié)果便是密鑰,將密鑰和密文異或變得出明文。
本文采用基本的Hopfiled網(wǎng)絡(luò)作為加密模型,簡單的外積法計算權(quán)值。事實上,我們可以利用各種網(wǎng)絡(luò)模型以及改進的權(quán)值計算方法來獲得網(wǎng)絡(luò)的權(quán)值,只要傳遞給接受方相應(yīng)的參數(shù),這樣既增大的破譯的難度,又使該算法有很大的靈活性。
本算法也存在一定有待改善的缺陷,由于網(wǎng)絡(luò)的一些樣本在迭代有限步內(nèi)就成為網(wǎng)絡(luò)的冗余吸引子,繼續(xù)迭代也不再發(fā)生變化,這是一個明顯的安全漏洞,所以我們對加密模型的研究還在于盡量使用不收斂的網(wǎng)絡(luò)輸入,這樣能提高該密碼系統(tǒng)的安全性。
六、結(jié)論
數(shù)據(jù)加密技術(shù)是現(xiàn)代信息社會急需的熱門技術(shù)之一,本文主要分析Hopfiled聯(lián)想記憶神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)加密上的用途,詳細(xì)介紹了加密的原理及過程。對于采用神經(jīng)網(wǎng)絡(luò)的方法實現(xiàn)數(shù)據(jù)加密提供了一種新的思路。
參考文獻:
[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]何國光朱萍曹志彤等:混沌神經(jīng)網(wǎng)絡(luò)的Lyapunov指數(shù)與混沌區(qū)域[J]. 浙江大學(xué)學(xué)報,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īng)網(wǎng)絡(luò)模型中的模擬退火策略[J].上海交通大學(xué)學(xué)報,2002,37(3):323-326