一、系統(tǒng)方案 隨著計(jì)算機(jī)及其網(wǎng)絡(luò)應(yīng)用的日益普及,尤其是互聯(lián)網(wǎng)應(yīng)用的迅猛發(fā)展,計(jì)算機(jī)及其網(wǎng)絡(luò)系統(tǒng)的安全管理問題日顯突出,各種非法的計(jì)算機(jī)及網(wǎng)絡(luò)入侵事件頻頻發(fā)生。據(jù)統(tǒng)計(jì),網(wǎng)絡(luò)入侵的70%~80%來自于網(wǎng)絡(luò)內(nèi)部,因此加強(qiáng)對(duì)計(jì)算機(jī)使用者身份的監(jiān)督和管理,防止合法用戶的越權(quán)和惡意訪問以及非法用戶的非法訪問都顯得十分重要。 那么,我們?cè)鯓蛹訌?qiáng)對(duì)計(jì)算機(jī)使用者身份的監(jiān)督和管理呢? 首先,傳統(tǒng)的密碼技術(shù)是最常用的用戶訪問控制手段,但密碼又比較容易遺失或被破解。 于是,人們提出了多個(gè)基于各種生物特征的用戶身份認(rèn)證方法,是的身份認(rèn)證智能化。這些生物特征包括:指紋、虹膜、面部、聲音、掌形(紋)等。但基于這些生物特征的用戶身份認(rèn)證方法均需要額外價(jià)格不菲的硬件設(shè)備(其價(jià)格從數(shù)百美元到數(shù)萬美元不等),這也就使得基于這些生物特征的用戶身份認(rèn)證方法無法得到廣泛的應(yīng)用。 為利用現(xiàn)有普通電腦硬件,完成基于生物特征的用戶身份認(rèn)證,人們提出了基于用戶擊鍵特征來進(jìn)行用戶身份認(rèn)證的方法,該方法利用用戶輸入口令時(shí)的擊鍵壓力、擊鍵節(jié)奏等所構(gòu)成的用戶生物特征,來進(jìn)行用戶身份的認(rèn)證工作。用戶由于不同的生理特點(diǎn)和習(xí)慣,在使用鍵盤時(shí)存在擊鍵力度、鍵盤熟練程度等明顯差異(類似于筆跡、指紋)。 受智能密碼的啟發(fā),即不同用戶的鍵盤使用習(xí)慣、特征存在差異,我們提出一種將用戶鍵盤使用特征和神經(jīng)網(wǎng)絡(luò)技術(shù)相結(jié)合的用戶身份監(jiān)督、管理方法。本系統(tǒng)就是利用這種差異提取特征量, 建立模型, 實(shí)現(xiàn)對(duì)用戶身份的辨別和監(jiān)控。 目前,國(guó)內(nèi)外有關(guān)的基于用戶擊鍵生物特征進(jìn)行身份認(rèn)證研究的公開報(bào)道并不多:Dunn認(rèn)為擊鍵時(shí)延符合正態(tài)分布并使用了距離分類法;Monrose 和Rubin提出了一種基于K近鄰聚類方法的算法;Kacholia和Pandit提出了一種基于啟發(fā)式聚類的算法,但并沒有給出聚類算法的細(xì)節(jié);Ru 和Eloff及Tapiador 和Sigüenza嘗試了模糊數(shù)學(xué)的方法;朱明等人也提出了基于示例學(xué)習(xí)的方法對(duì)用戶身份的真?zhèn)芜M(jìn)行判斷,曲維光和宋如順等人則利用對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練來區(qū)分不同的用戶,Monrose 等人將這一技術(shù)用于強(qiáng)化用戶身份驗(yàn)證。但是,他們的研究都是基于軟件層面的,而且采樣數(shù)據(jù)也很有限。 我們提出的智能安全鍵盤將壓力傳感器加入傳統(tǒng)鍵盤中,旨在利用已有的用戶名和密碼,通過用戶特定的擊鍵特征,即按鍵時(shí)間長(zhǎng)短、時(shí)間間隔和壓力三個(gè)參數(shù),來判定某一擊鍵序列是否為某特定用戶的行為,進(jìn)而對(duì)用戶身份的真?zhèn)芜M(jìn)行判斷識(shí)別,以此來強(qiáng)化身份驗(yàn)證的效果,防止密碼被他人非法使用,加強(qiáng)對(duì)計(jì)算機(jī)使用者身份的監(jiān)督和管理,使鍵盤操作更安全,從而達(dá)到信息安全的目的。 二、實(shí)現(xiàn)方案 (一)理論基礎(chǔ) 根據(jù)一個(gè)簡(jiǎn)化的統(tǒng)計(jì),人腦由百億條神經(jīng)組成,每條神經(jīng)平均連結(jié)到其它幾千條神經(jīng)。通過這種連結(jié)方式,神經(jīng)可以收發(fā)不同數(shù)量的能量。神經(jīng)的一個(gè)非常重要的功能是,它們對(duì)能量的接受并不是立即作出響應(yīng),而是將它們累加起來,當(dāng)這個(gè)累加的總和達(dá)到某個(gè)臨界閾值時(shí),將自己的那部分能量發(fā)送給其它的神經(jīng)。大腦通過調(diào)節(jié)這些連結(jié)的數(shù)目和強(qiáng)度進(jìn)行學(xué)習(xí)。盡管這是個(gè)生物行為的簡(jiǎn)化描述。但同樣可以充分有力地被看作是神經(jīng)網(wǎng)絡(luò)的模型。 閾值邏輯單元(Threshold Logic Unit,TLU) 理解神經(jīng)網(wǎng)絡(luò)的第一步是從對(duì)抽象生物神經(jīng)開始,并把重點(diǎn)放在閾值邏輯單元(TLU)這一特征上。一個(gè)TLU是一個(gè)對(duì)象,它可以輸入一組加權(quán)系數(shù)的量,對(duì)它們進(jìn)行求和,如果這個(gè)和達(dá)到或者超過了某個(gè)閾值,則輸出一個(gè)量。用符號(hào)標(biāo)注這些功能,首先,輸入值以及它們的權(quán)系數(shù)分別記為X1,X2,...,Xn和W1,W2,...,Wn。接著,求和計(jì)算出的Xi*Wi,產(chǎn)生了激發(fā)層a,換一種方法表示: a = (X1 * W1)+(X2 * W2)+...+(Xi * Wi)+...+ (Xn * Wn) 閾值稱為theta。最后,輸出結(jié)果y。當(dāng)a>=theta時(shí)y=1,反之y=0。輸出可以是連續(xù)的,因?yàn)樗部梢杂梢粋(gè)squash函數(shù)s(或 sigma)判定,該函數(shù)的自變量是a,函數(shù)值在0和1之間,y=s(a)。 閾值邏輯單元,帶有 sigma 函數(shù)(頂部)和 cutoff 函數(shù)(底部) TLU 會(huì)分類,假設(shè)一個(gè)TLU有兩個(gè)輸入值,它們的權(quán)系數(shù)等于1,theta值等于1.5。當(dāng)這個(gè) TLU 輸入、、和時(shí),它的輸出分別為0、0、0、1。TLU將這些輸入分為兩組:0組和1組。 TLU 的學(xué)習(xí)原理 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)機(jī)制是模仿大腦調(diào)節(jié)神經(jīng)連結(jié)的原理。TLU通過改變它的權(quán)系數(shù)和閾值來學(xué)習(xí)。當(dāng)SUM(Xi*Wi)>=theta時(shí)TLU在臨界點(diǎn)時(shí)輸出的是1而不是0,臨界點(diǎn)是出現(xiàn)在SUM(Xi*Wi)+(-1*theta)>=0的時(shí)候。所以,我們可以把-1看成一個(gè)常量輸入,它的權(quán)系數(shù)theta在學(xué)習(xí)的過程中進(jìn)行調(diào)整。這樣,當(dāng)SUM(Xi*Wi)+(-1*theta)>=0時(shí),y=1,反之y=0。 在學(xué)習(xí)過程中,神經(jīng)網(wǎng)絡(luò)輸入一系列需要分類的術(shù)語示例和它們的正確分類或者目標(biāo)。 這樣的輸入可以看成一個(gè)向量:,這里t是一個(gè)目標(biāo)或者正確分類。神經(jīng)網(wǎng)絡(luò)用這些來調(diào)整權(quán)系數(shù),其目的使學(xué)習(xí)中的目標(biāo)與其分類相匹配。更確切地說,這是有指導(dǎo)的學(xué)習(xí),與之相反的是無指導(dǎo)的學(xué)習(xí)。前者是基于帶目標(biāo)的示例,而后者卻只是建立在統(tǒng)計(jì)分析的基礎(chǔ)上。權(quán)系數(shù)的調(diào)整有一個(gè)學(xué)習(xí)規(guī)則,一個(gè)理想化的學(xué)習(xí)算法如下所示: fully_trained = FALSE DO UNTIL (fully_trained): fully_trained = TRUE FOR EACH training_vector = :: # Weights compared to theta a = (X1 * W1)+(X2 * W2)+...+(Xn * Wn) - theta y = sigma(a) IF y != target: fully_trained = FALSE FOR EACH Wi: MODIFY_WEIGHT(Wi) # According to the training rule IF (fully_trained): BREAK 學(xué)習(xí)規(guī)則有很多,通過對(duì)收集的大量資料的研究分析,我們發(fā)現(xiàn),有一條似乎合理的規(guī)則是基于這樣一種思想,即權(quán)系數(shù)和閾值的調(diào)整應(yīng)該由分式(t-y)確定。這個(gè)規(guī)則通過引入學(xué)習(xí)率alpha(0 關(guān)于 delta 規(guī)則 delta 規(guī)則是基于梯度降落這樣一種思路的。在權(quán)系數(shù)的調(diào)整中,神經(jīng)網(wǎng)絡(luò)將會(huì)找到一種將誤差減少到最小的權(quán)系數(shù)的分配方式。 將我們的網(wǎng)絡(luò)限制為沒有隱藏節(jié)點(diǎn),但是可能會(huì)有不止一個(gè)的輸出節(jié)點(diǎn),設(shè)p是一組學(xué)習(xí)中的一個(gè)元素,t(p,n)是相應(yīng)的輸出節(jié)點(diǎn)n的目標(biāo)。設(shè)y(p,n)由以上提到的squash函數(shù)s決定,這里a(p,n)是與p相關(guān)的n的激活函數(shù),或者用(p,n)=s(a(p,n))表示為與p相關(guān)的節(jié)點(diǎn)n的squash過的激活函數(shù)。為網(wǎng)絡(luò)設(shè)定權(quán)系數(shù)(每個(gè)Wi),也為每個(gè)p和n建立t(p,n)與y(p,n)的差分,這就意味著為每個(gè)p設(shè)定了網(wǎng)絡(luò)全部的誤差。因此對(duì)于每組權(quán)系數(shù)來說有一個(gè)平均誤差。但是delta規(guī)則取決于求平均值方法的精確度以及誤差。對(duì)于每個(gè)Wi,平均誤差定義如下: sum = 0 FOR p = 1 TO M: # M is number of training vectors FOR n = 1 TO N: # N is number of output nodes sum = sum + (1/2 * (t(p,n)-y(p,n))^2) average = 1/M * sum delta規(guī)則就是依據(jù)這個(gè)誤差的定義來定義的。因?yàn)檎`差是依據(jù)那些學(xué)習(xí)向量來說明的,delta規(guī)則是一種獲取一個(gè)特殊的權(quán)系數(shù)集以及一個(gè)特殊的向量的算法。而改變權(quán)系數(shù)將會(huì)使神經(jīng)網(wǎng)絡(luò)的誤差最小化。任何Wi發(fā)生的變化都如下所示:alpha*s'(a(p,n))*(t(p,n)-y(p,n))*X(p,i,n)。 X(p,i,n)是輸入到節(jié)點(diǎn)n的p中的第i個(gè)元素,alpha是已知的學(xué)習(xí)率。最后s'(a(p,n))是與p相關(guān)的第n個(gè)節(jié)點(diǎn)激活的squashing函數(shù)的變化(派生)率,這就是delta規(guī)則,并且當(dāng)alpha非常小的時(shí)候,權(quán)系數(shù)向量接近某個(gè)將誤差最小化的向量。用于權(quán)系數(shù)調(diào)節(jié)的基于delta規(guī)則的算法就是如此。 梯度降落(直到誤差小到適當(dāng)?shù)某潭葹橹?如下: step 1: for each training vector, p, find a(p) step 2: for each i, change Wi by: alpha * s'(a(p,n)) * (t(p,n)-y(p,n)) * X(p,i,n) delta規(guī)則算法總是在權(quán)系數(shù)上調(diào)整,而且這是建立在相對(duì)輸出的激活方式上,不一定適用于存在隱藏節(jié)點(diǎn)的網(wǎng)絡(luò)。 反向傳播 反向傳播這一算法把支持delta規(guī)則的分析擴(kuò)展到了帶有隱藏節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)。當(dāng)輸出節(jié)點(diǎn)從隱藏節(jié)點(diǎn)獲得輸入,網(wǎng)絡(luò)發(fā)現(xiàn)出現(xiàn)了誤差,權(quán)系數(shù)的調(diào)整可以通過一個(gè)算法來找出整個(gè)誤差是由多少不同的節(jié)點(diǎn)造成的,具體方法如下: “代碼識(shí)別”反向傳播的神經(jīng)網(wǎng)絡(luò) 反向傳播算法同樣來源于梯度降落原理,在權(quán)系數(shù)調(diào)整分析中的唯一不同是涉及到t(p,n)與y(p,n)的差分。通常來說Wi的改變?cè)谟冢?br /> alpha * s'(a(p,n)) * d(n) * X(p,i,n) 其中d(n)是隱藏節(jié)點(diǎn)n的函數(shù)。一方面,n影響輸出節(jié)點(diǎn)越多,n造成網(wǎng)絡(luò)整體的誤差也越多。另一方面,如果輸出節(jié)點(diǎn)影響網(wǎng)絡(luò)整體的誤差越少,n對(duì)輸出節(jié)點(diǎn)的影響也相應(yīng)減少。這里d(j)是對(duì)網(wǎng)絡(luò)的整體誤差的基值,W(n,j)是n對(duì)j造成的影響,d(j)*W(n,j)是這兩種影響的總和。但是n幾乎總是影響多個(gè)輸出節(jié)點(diǎn),也許會(huì)影響每一個(gè)輸出結(jié)點(diǎn),這樣,d(n)可以表示為:SUM(d(j)*W(n,j)) 這里j是一個(gè)從n獲得輸入的輸出節(jié)點(diǎn),聯(lián)系起來,我們就得到了一個(gè)學(xué)習(xí)規(guī)則。 第1部分:在隱藏節(jié)點(diǎn)n和輸出節(jié)點(diǎn)j之間權(quán)系數(shù)改變,如下所示: alpha * s'(a(p,n))*(t(p,n) - y(p,n)) * X(p,n,j) 第2部分:在輸入節(jié)點(diǎn)i和輸出節(jié)點(diǎn)n之間權(quán)系數(shù)改變,如下所示: alpha * s'(a(p,n)) * sum(d(j) * W(n,j)) * X(p,i,n) 這里每個(gè)從n接收輸入的輸出節(jié)點(diǎn)j都不同。關(guān)于反向傳播算法的基本情況大致如此。 將Wi初始化為小的隨機(jī)值。 使誤差小到適當(dāng)?shù)某潭纫裱牟襟E如下: 第1步:輸入學(xué)習(xí)向量; 第2步:計(jì)算隱藏節(jié)點(diǎn)的輸出; 第3步:在第2步的基礎(chǔ)上計(jì)算輸出節(jié)點(diǎn)的輸出; 第4步:計(jì)算第3步所得的結(jié)果和期望值之間的差; 第5步:把第4步的結(jié)果填入學(xué)習(xí)規(guī)則的第1部分; 第6步:對(duì)于每個(gè)隱藏節(jié)點(diǎn)n,計(jì)算d(n); 第7步:把第6步的結(jié)果填入學(xué)習(xí)規(guī)則的第2部分。 通常把第1步到第3步稱為正向傳播,把第4步到第7步稱為反向傳播。 至此,我們已經(jīng)成功地通過神經(jīng)網(wǎng)絡(luò)算法對(duì)用戶需要分類的術(shù)語示例進(jìn)行了正向?qū)W習(xí),對(duì)用戶需要驗(yàn)證的數(shù)據(jù)進(jìn)行了識(shí)別,并且對(duì)經(jīng)過驗(yàn)證的數(shù)據(jù)進(jìn)行了反向傳播學(xué)習(xí)。 (二)實(shí)現(xiàn)原理 使用Xilinx Spartan 3E Starter-kit的開發(fā)板開發(fā)應(yīng)用程序的過程大致分為兩部分——硬件和軟件。 ⒈硬件部分。借助Xilinx Platform Studio 9.1i with SP2(一下簡(jiǎn)稱為XPS)良好的界面和易用性,我們借助其自帶的IP核實(shí)現(xiàn)大部分開發(fā)板上設(shè)備的驅(qū)動(dòng),但是由于我們的項(xiàng)目要用到PS/2鍵盤、A/D轉(zhuǎn)換器以及CC2420射頻板等相應(yīng)的IP核并沒有附帶在XPS中的設(shè)備,因此我們正在完成這些設(shè)備的IP核的設(shè)計(jì),以便搭起我們所需要的硬件平臺(tái)。 ⒉軟件部分。通過XPS中附帶的Xilinx Platform Studio SDK(以下簡(jiǎn)稱為XPSSDK)組件,我們使用C語言完成我們的項(xiàng)目的核心部分的設(shè)計(jì)。XPSSDK的外殼實(shí)際上使用的是開源軟件Eclipse,其友好的界面可以極大方便我們的項(xiàng)目的開發(fā)。軟件核心部分分為信號(hào)處理模塊和密碼處理模塊。其中,信號(hào)處理模塊采用神經(jīng)網(wǎng)絡(luò)算法,密碼處理模塊采用混沌算法。 ⑴信號(hào)處理模塊 信號(hào)采集部分主要采集三個(gè)系數(shù):按鍵時(shí)間長(zhǎng)短、按鍵時(shí)間間隔和力感模擬信號(hào)。其中前兩個(gè)系數(shù)可以通過按鍵產(chǎn)生的通碼和斷碼得到(每個(gè)通碼和下一個(gè)斷碼之間構(gòu)成一個(gè)按鍵時(shí)間長(zhǎng)短,每個(gè)斷碼與下一個(gè)通碼之間構(gòu)成一個(gè)按鍵時(shí)間間隔),力感模擬信號(hào)可以通過綁定在每個(gè)按鍵下面的力度傳感器采集到。 若用TH(i)表示第i個(gè)鍵按下的持續(xù)時(shí)間(Hold-time,即按鍵時(shí)間長(zhǎng)短),則TH(i)=Trelease(i) -Tpress(i),Tpress(i)表示第i個(gè)鍵的按下時(shí)刻,Trelease(i)表示第i個(gè)鍵抬起的時(shí)刻。令TL(i,i+1)表示連續(xù)敲擊第i個(gè)鍵和第i+1個(gè)鍵的時(shí)間間隔。則TL(i,i+1)=Tpress(i+1) -Trelease(i)。對(duì)于我們采集到的力感系數(shù),每按鍵一次產(chǎn)生一個(gè)相關(guān)力度模擬信號(hào),經(jīng)Spartan 3E開發(fā)板上的A/D轉(zhuǎn)換器將其轉(zhuǎn)化為數(shù)字信號(hào),得到相應(yīng)的力感值TM(i)。若用戶口令由n個(gè)字符組成,則最后我們得到一個(gè)3n-1維的信號(hào)采集特征向量[TH(1), TM(1),TL(1,2),TH(2), TM(2),TL(2,3),TH(3), TM(3),……,TL(n-1,n),TH(n) , TM(n)]。 然后我們將這些特征向量作為BP神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元,使用BP算法通過一邊向后傳播誤差,一邊修正誤差的方法來不斷調(diào)節(jié)網(wǎng)絡(luò)參數(shù)(權(quán)值或閾值),以實(shí)現(xiàn)或逼近所希望的輸入輸出映射關(guān)系,最后得以對(duì)合法用戶的身份進(jìn)行辨別。 BP算法的學(xué)習(xí)過程如下: ①正向傳播:輸入信息從輸入層經(jīng)隱含層逐層處理,并傳向輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)(如下圖所示)。 ②反向傳播:如果在輸出層不能得到期望的輸出,則轉(zhuǎn)入反向傳播,將誤差信號(hào)沿原來的連接通路返回,通過修改各層神經(jīng)元的權(quán)值,使誤差信號(hào)最小。 BP算法的主要步驟如下: ①置所有權(quán)值為較小的隨機(jī)數(shù); ②提供訓(xùn)練集,給定輸入向量X=(x1,x2,……,xm)和期望的目標(biāo)輸出向量D=(d1,d2,……,dn); ③前向計(jì)算,計(jì)算實(shí)際輸出,計(jì)算隱含層,輸出層各神經(jīng)元的輸出: ; ④對(duì)輸出層計(jì)算δ: ; ⑤從后向前計(jì)算各隱層δ: ; ⑥計(jì)算并保存各權(quán)值修正量: ; ⑦修正權(quán)值: ; ⑧判斷是否收斂,如果收斂則結(jié)束,不收斂則轉(zhuǎn)至(3)重復(fù)計(jì)算,直到誤差Ep滿足要求。 本系統(tǒng)實(shí)現(xiàn)設(shè)計(jì)的BP網(wǎng)絡(luò)考慮到用戶的口令長(zhǎng)度通常為8~16個(gè),對(duì)應(yīng)生成的特征的維數(shù)為23-47維,因此網(wǎng)絡(luò)的輸入節(jié)點(diǎn)數(shù)定為20~50,可依據(jù)口令長(zhǎng)度選擇。隱含層節(jié)點(diǎn)數(shù)需要在實(shí)現(xiàn)過程中不斷模擬訓(xùn)練進(jìn)行確定,以使判別效果達(dá)到最佳。 ⑵密碼處理模塊 設(shè)混沌序列為 ,其中, 考慮到這四個(gè)值在PS/2總線上傳輸帶來的安全性的問題,我們決定讓其在密碼處理模塊和PC機(jī)端分別生成,生成函數(shù)如下: (三)硬件框圖 在硬件框圖中,鍵盤信號(hào)包括按鍵時(shí)間長(zhǎng)短、按鍵時(shí)間間隔和密碼明文三個(gè)信號(hào),該信號(hào)通過RS232總線傳送至FPGA。由于FPGA的ADC對(duì)電壓的范圍有要求,壓力信號(hào)先通過AMP進(jìn)行放大處理后,再通過ADC轉(zhuǎn)換成數(shù)字信號(hào)后再傳送至FPGA。在FPGA上,信號(hào)處理模塊運(yùn)用神經(jīng)網(wǎng)絡(luò)算法對(duì)采集的信號(hào)樣本進(jìn)行處理,對(duì)于通過神經(jīng)網(wǎng)絡(luò)的信號(hào)樣本,通過密碼處理模塊的混沌算法對(duì)密碼進(jìn)行加密后,再通過RS232總線送至PC。在PC端,密碼實(shí)際上為密碼原文經(jīng)混沌加密以后的密文。 三、設(shè)計(jì)與實(shí)現(xiàn)的功能 1.安全性。以應(yīng)用為基礎(chǔ),以神經(jīng)網(wǎng)絡(luò)為核心,以混沌算法輔助完成基于有限學(xué)習(xí)正例集合的正反例識(shí)別。通過采集用戶擊鍵習(xí)慣相關(guān)系數(shù),采用BP神經(jīng)網(wǎng)絡(luò)算法動(dòng)態(tài)學(xué)習(xí)、判別合法用戶特征,再通過混沌算法對(duì)密碼進(jìn)行加密處理,實(shí)現(xiàn)高效、高用戶辨別能力的身份認(rèn)證。 2.多用戶支持。利用FPGA的大量數(shù)據(jù)處理能力,可以方便地實(shí)現(xiàn)采樣數(shù)據(jù)與相關(guān)數(shù)據(jù)庫(kù)中大量數(shù)據(jù)的迅速比對(duì)。 3.力感識(shí)別。通過對(duì)相關(guān)資料的學(xué)習(xí),我們發(fā)現(xiàn)目前關(guān)于用戶特征信息采樣的研究工作都是基于擊鍵時(shí)間長(zhǎng)短和時(shí)間間隔的,我們通過力度傳感設(shè)備將用戶擊鍵力度數(shù)字化之后,作為用戶特征信息的一個(gè)方面,進(jìn)行比對(duì)驗(yàn)證和學(xué)習(xí)。 4.密碼鍵盤與普通鍵盤的切換。單用戶應(yīng)用環(huán)境中,可以通過硬件開關(guān)屏蔽傳感器不進(jìn)行相應(yīng)數(shù)據(jù)處理而實(shí)現(xiàn)密碼鍵盤與普通鍵盤的切換。 5.成本低廉。對(duì)用戶的眼底圖像、指紋、頭像等的識(shí)別均需要特殊的硬件設(shè)備,且有些設(shè)備價(jià)格相當(dāng)昂貴,不利于系統(tǒng)的實(shí)施和推廣。而除了力感識(shí)別所需的壓力傳感器以外,了解用戶的擊鍵節(jié)奏不需要添加其他硬件,是各種生物特征用戶認(rèn)證技術(shù)中代價(jià)較小的一種,易于為用戶所接受。 四、性能指標(biāo) 在系統(tǒng)檢測(cè)方面,我們將分別模擬單用戶和多用戶應(yīng)用環(huán)境,采集相關(guān)數(shù)據(jù),通過以下兩個(gè)評(píng)價(jià)指標(biāo),檢測(cè)系統(tǒng)的性能: 1.檢測(cè)率(Detection Rate,DR):被檢測(cè)到的假冒樣本的數(shù)量和測(cè)試集中總的假冒樣本的數(shù)量的比率; 2.虛警率(False Positive Rate,F(xiàn)PR):正常樣本數(shù)據(jù)被誤檢為假冒樣本的數(shù)量和測(cè)試集中總的正常樣本的數(shù)量的比率。 五、系統(tǒng)特色 本系統(tǒng)最大的特色在于采用了神經(jīng)網(wǎng)絡(luò)算法,智能地對(duì)用戶擊鍵特征進(jìn)行學(xué)習(xí)和識(shí)別。 人工神經(jīng)網(wǎng)絡(luò)模型主要考慮網(wǎng)絡(luò)連接的拓?fù)浣Y(jié)構(gòu)、神經(jīng)元的特征、學(xué)習(xí)規(guī)則等。目前,已有近40種神經(jīng)網(wǎng)絡(luò)模型,其中有反傳網(wǎng)絡(luò)、感知器、自組織映射、Hopfield網(wǎng)絡(luò)、波耳茲曼機(jī)、適應(yīng)諧振理論等。根據(jù)連接的拓?fù)浣Y(jié)構(gòu),神經(jīng)網(wǎng)絡(luò)模型可以分為:(1)前向網(wǎng)絡(luò) 網(wǎng)絡(luò)中各個(gè)神經(jīng)元接受前一級(jí)的輸入,并輸出到下一級(jí),網(wǎng)絡(luò)中沒有反饋,可以用一個(gè)有向無環(huán)路圖表示。這種網(wǎng)絡(luò)實(shí)現(xiàn)信號(hào)從輸入空間到輸出空間的變換,它的信息處理能力來自于簡(jiǎn)單非線性函數(shù)的多次復(fù)合。網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn)。反傳網(wǎng)絡(luò)是一種典型的前向網(wǎng)絡(luò)。(2)反饋網(wǎng)絡(luò) 網(wǎng)絡(luò)內(nèi)神經(jīng)元間有反饋,可以用一個(gè)無向的完備圖表示。這種神經(jīng)網(wǎng)絡(luò)的信息處理是狀態(tài)的變換,可以用動(dòng)力學(xué)系統(tǒng)理論處理。系統(tǒng)的穩(wěn)定性與聯(lián)想記憶功能有密切關(guān)系。Hopfield網(wǎng)絡(luò)、波耳茲曼機(jī)均屬于這種類型。 學(xué)習(xí)是神經(jīng)網(wǎng)絡(luò)研究的一個(gè)重要內(nèi)容,它的適應(yīng)性是通過學(xué)習(xí)實(shí)現(xiàn)的。根據(jù)環(huán)境的變化,對(duì)權(quán)值進(jìn)行調(diào)整,改善系統(tǒng)的行為。由Hebb提出的Hebb學(xué)習(xí)規(guī)則為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法奠定了基礎(chǔ)。Hebb規(guī)則認(rèn)為學(xué)習(xí)過程最終發(fā)生在神經(jīng)元之間的突觸部位,突觸的聯(lián)系強(qiáng)度隨著突觸前后神經(jīng)元的活動(dòng)而變化。在此基礎(chǔ)上,人們提出了各種學(xué)習(xí)規(guī)則和算法,以適應(yīng)不同網(wǎng)絡(luò)模型的需要。有效的學(xué)習(xí)算法,使得神經(jīng)網(wǎng)絡(luò)能夠通過連接權(quán)值的調(diào)整,構(gòu)造客觀世界的內(nèi)在表示,形成具有特色的信息處理方法,信息存儲(chǔ)和處理體現(xiàn)在網(wǎng)絡(luò)的連接中。 本系統(tǒng)采用的神經(jīng)網(wǎng)絡(luò)算法的學(xué)習(xí)方式為監(jiān)督學(xué)習(xí)。我們將訓(xùn)練樣本的數(shù)據(jù)加到網(wǎng)絡(luò)輸入端,同時(shí)將相應(yīng)的期望輸出與網(wǎng)絡(luò)輸出相比較,得到誤差信號(hào),以此控制權(quán)值連接強(qiáng)度的調(diào)整,經(jīng)多次訓(xùn)練后收斂到一個(gè)確定的權(quán)值。當(dāng)樣本情況發(fā)生變化時(shí),經(jīng)學(xué)習(xí)可以修改權(quán)值以適應(yīng)新的環(huán)境。 人工神經(jīng)網(wǎng)絡(luò)特有的非線性適應(yīng)性信息處理能力,克服了傳統(tǒng)人工智能方法對(duì)于直覺,如模式、語音識(shí)別、非結(jié)構(gòu)化信息處理方面的缺陷,使之在神經(jīng)專家系統(tǒng)、模式識(shí)別、智能控制、組合優(yōu)化、預(yù)測(cè)等領(lǐng)域得到成功應(yīng)用。人工神經(jīng)網(wǎng)絡(luò)與其它傳統(tǒng)方法相結(jié)合,將推動(dòng)人工智能和信息處理技術(shù)不斷發(fā)展。近年來,人工神經(jīng)網(wǎng)絡(luò)正向模擬人類認(rèn)知的道路上更加深入發(fā)展,與模糊系統(tǒng)、遺傳算法、進(jìn)化機(jī)制等結(jié)合,形成計(jì)算智能,成為人工智能的一個(gè)重要方向,將在實(shí)際應(yīng)用中得到發(fā)展。將信息幾何應(yīng)用于人工神經(jīng)網(wǎng)絡(luò)的研究,為人工神經(jīng)網(wǎng)絡(luò)的理論研究開辟了新的途徑。神經(jīng)計(jì)算機(jī)的研究發(fā)展很快,已有產(chǎn)品進(jìn)入市場(chǎng)。光電結(jié)合的神經(jīng)計(jì)算機(jī)為人工神經(jīng)網(wǎng)絡(luò)的發(fā)展提供了良好條件。 神經(jīng)網(wǎng)絡(luò)在這個(gè)領(lǐng)域中有很多優(yōu)點(diǎn),使得它越來越流行。它在類型分類/識(shí)別方面非常出色。神經(jīng)網(wǎng)絡(luò)可以處理例外及不正常的輸入數(shù)據(jù),這對(duì)于很多系統(tǒng)都很重要(例如雷達(dá)及聲波定位系統(tǒng))。很多神經(jīng)網(wǎng)絡(luò)都是模仿生物神經(jīng)網(wǎng)絡(luò)的,即是他們仿照大腦的運(yùn)作方式工作。神經(jīng)網(wǎng)絡(luò)也得助于神經(jīng)系統(tǒng)科學(xué)的發(fā)展,使它可以像人類一樣準(zhǔn)確地辨別物件而有電腦的速度! 基于軟件實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)也有些不好的地方。這通常都是因?yàn)槿狈ψ銐驈?qiáng)大的硬件。神經(jīng)網(wǎng)絡(luò)的力量源自于以并行方式處理資訊,即是同時(shí)處理多項(xiàng)數(shù)據(jù)。因此,要一個(gè)串行的機(jī)器模擬并行處理是非常耗時(shí)的。但是,我們將該算法轉(zhuǎn)移到硬件板上來實(shí)現(xiàn),避免了這一缺陷。 本系統(tǒng)的另一個(gè)特色點(diǎn)在于對(duì)密碼的混沌加密。 混沌理論是一種迅速發(fā)展的新科學(xué),致力于研究復(fù)雜的、非線性的、動(dòng)態(tài)的系統(tǒng)。混沌理論不是關(guān)于無序的理論,雖然從字面上看起來是這樣。相反,它可以看作是一種更好地理解秩序的方法。 混沌系統(tǒng)具有三個(gè)關(guān)鍵要素:一是對(duì)初始條件的敏感依賴性;二是臨界水平,這里是非線性事件的發(fā)生點(diǎn);三是分形維,它表明有序和無序的統(tǒng)一。混沌系統(tǒng)經(jīng)常是自反饋系統(tǒng),出來的東西會(huì)回去經(jīng)過變換再出來,循環(huán)往復(fù),沒完沒了,任何初始值的微小差別都會(huì)按指數(shù)放大,因此導(dǎo)致系統(tǒng)內(nèi)在地不可長(zhǎng)期預(yù)測(cè)。 混沌是一個(gè)難以精確定義的數(shù)學(xué)概念。一般而言,“混沌”是指由確定性方程描述的動(dòng)力學(xué)系統(tǒng)中表現(xiàn)出的非確定性行為,或稱之為確定的隨機(jī)性。“確定性”是因?yàn)樗蓛?nèi)在的原因而不是外來的噪聲或干擾所產(chǎn)生,而“隨機(jī)性”是指其不規(guī)則的、不能預(yù)測(cè)的行為,只可能用統(tǒng)計(jì)的方法描述。混沌動(dòng)力學(xué)系統(tǒng)的主要特征是其狀態(tài)對(duì)初始條件的靈敏依賴性,混沌反映其內(nèi)在的隨機(jī)性。混沌理論是指描述具有混沌行為的非線性動(dòng)力學(xué)系統(tǒng)的基本理論、概念、方法,它把動(dòng)力學(xué)系統(tǒng)的復(fù)雜行為理解為其自身與其在同外界進(jìn)行物質(zhì)、能量和信息交換過程中內(nèi)在的有結(jié)構(gòu)的行為,而不是外來的和偶然的行為,混沌狀態(tài)是一種定態(tài)。混沌動(dòng)力學(xué)系統(tǒng)的定態(tài)包括:靜止、平穩(wěn)量、周期性、準(zhǔn)同期性和混沌解。混沌軌線是整體上穩(wěn)定與局部不穩(wěn)定相結(jié)合的結(jié)果,稱之為奇異吸引子。一個(gè)奇異吸引子有如下一些特征:(1)奇異吸引子是一個(gè)吸引子,但它既不是不動(dòng)點(diǎn),也不是周期解;(2)奇異吸引子是不可分割的,即不能分為兩個(gè)以及兩個(gè)以上的吸引子;(3)它對(duì)初始值十分敏感,不同的初始值會(huì)導(dǎo)致極不相同的行為。 我們正是利用混沌算法的以上特性,結(jié)合基于用戶按鍵特征的混沌初值,生成相應(yīng)的混沌序列對(duì)密文進(jìn)行處理,從而極大地加強(qiáng)了本系統(tǒng)的安全性。 六、系統(tǒng)測(cè)試 (一)測(cè)試方案 取10人,每?jī)扇艘唤M,共5組。10個(gè)用戶使用同一臺(tái)電腦和鍵盤,要求他們根據(jù)自身的輸入習(xí)慣使用,不要刻意模仿,依次進(jìn)行如下實(shí)驗(yàn)。 實(shí)驗(yàn)一:10個(gè)用戶分別按自己正常的輸入習(xí)慣輸入自己設(shè)定的6位密碼8次,各個(gè)用戶分別形成自己的訓(xùn)練樣本。經(jīng)過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)后,各用戶再分別輸入自己預(yù)定的6位密碼,測(cè)試本系統(tǒng)的虛警率。 實(shí)驗(yàn)二:各用戶按自己的正常輸入習(xí)慣分別輸入錯(cuò)誤的6位密碼,測(cè)試本系統(tǒng)的檢測(cè)率。 實(shí)驗(yàn)三:每組用戶分別用該組另一用戶的6位密碼嘗試登錄本系統(tǒng),測(cè)試本系統(tǒng)的檢測(cè)率。 |