1 BM算法研究
1977年Boyer和Moore提出了一種全新的算法,即BM算法。它的特點在于匹配過程中,模式從左向右移動,但字符比較卻從右向左進行。其基本算法思想是:(1)匹配從右至左進行。(2)若匹配失敗發(fā)生在Pi≠Ti且Ti不出現(xiàn)在模式P中,則將模式右移直到Pi位于匹配失敗位置T的右邊第一位(即Ti 1位),若Ti在P中有若干地方出現(xiàn),則選擇j=max{k|Pk=Ti}即通過Skip函數計算文本字符Ti失配時模式向右移動的距離,也稱壞字符啟發(fā)。(3)若模式后面k位與文本T中一致的部分有一部分在P中其他地方出現(xiàn),則可以將P向右移動,直接使這部分對齊,且要求這一部分盡可能大,Shift函數通過對已經匹配部分的考查決定模式向右移動的距離,也稱好后綴啟發(fā)。
實例分析:
第1次匹配:
Example
here is a simple example
第2次匹配(壞字符啟發(fā)):
Example
here is a simple example
第3次匹配(壞字符啟發(fā)):
Example
here is a simple example
第4次匹配(好后綴啟發(fā)):
Example
here is a simple example
第5次匹配(壞字符啟發(fā)):
Example
here is a simple example
BM算法預處理時間復雜度為O(m s),空間復雜度為O(s),s是與P, T相關的有限字符集長度,搜索階段時間復雜度為O(mn)。最壞情況下要進行3n次比較,最好情況下的時間復雜度為O(n/m)。
2 改進BM匹配算法研究
2.1 改進的意義
綜合分析會發(fā)現(xiàn)雖然BM算法考慮較全面,但它使用了兩個數組,預處理時間開銷較大,于是在BM算法基礎上我們對其進行了簡化,使得算法更簡單、高效,提出了一種改進的BM算法。通過實驗表明改進的模式匹配算法能減少比較次數,有效地提高了匹配效率。
2.2 改進的原理
在BM算法匹配過程中,常出現(xiàn)模式的一部分后綴與文本匹配,而模式的前綴卻不匹配,在這種情況下,就進行了一些不必要的比較。因此在BMGJ算法中,我們在對模式串與文本字符串進行匹配時采用從模式兩端向中間位置交替的匹配順序,模式匹配先從模式最右端Pm開始進行。若Pm匹配不成功,則通過Skip函數計算出模式向右移動的距離,這與BM算法中壞字符啟發(fā)思想相同;若Pm匹配成功,則比較模式P1與文本中相應的字符。若P1匹配不成功,則考查文本中與模式中Pm下一個字符對齊的字符,若該字符不出現(xiàn)在模式中,則模式可以向右移動m 1個位置,若該字符出現(xiàn)在模式中,則計算其Skip函數,然后將模式向右移動相應的長度;若P1匹配成功,則按上述方法依次對Pm-1,P2,Pm-2,P3,…進行匹配,依此類推,直到匹配過程完成。實例分析:
經過多次匹配實驗,結果顯示改進后的BM算法進行模式匹配時字符比較次數、匹配時間均少于原BM算法,匹配效率有所提高。
3 結語
隨著網絡規(guī)模的不斷擴大和入侵手段的不斷更新,對入侵檢測也提出了更高的要求。目前,BM算法還是入侵檢測系統(tǒng)中主要使用的模式匹配方法,而它本身存在的一些問題使其還是有改進的余地,本文對其進行了改進,并且通過實驗結果分析得出改進以后在匹配效率的提高。以后我們還可以在檢測引擎中結合其他智能化的檢測方法,如協(xié)議分析、神經網絡、遺傳算法等,這將是我們下一步研究的重點。
參考文獻
`1`?谷曉鋼,江榮安,趙銘偉.Snort的高效規(guī)則匹配算法`J`.計算機工程,2006,(18).
`2`?唐正軍.入侵檢測技術導論(第一版)`M`.北京:機械工業(yè)出版社,2004.
`3`?邊肇祺,閻平凡,楊存榮.模式識別(第一版)`M`.北京:清華大學出版社,1988.
`4`?郭軍,笹尾勤.入侵檢測中模式匹配算法的FPGA實現(xiàn)`J`.科技創(chuàng)新導報,2007,(14).
以上是關于論入侵檢測系統(tǒng)的研究與改進已公布的相關信息,請自考生們認真查看,如果你想獲取最新的江蘇自考新聞或者江蘇自考問題答疑,可以掃描江蘇自考網公眾號二維碼,我們會最第一時間內為你解答。
?自考有疑惑或想進學習群,請聯(lián)系江蘇自考網客服