一種應用于入侵檢測系統的ac算法
【技術領域】
[0001]本發明涉及一種AC算法,尤其涉及一種應用于入侵檢測系統的AC算法。
【背景技術】
[0002]入侵檢測作為主要的網絡安全技術被人們進行了大量的研宄,獲得了長足的發展。但是現今的入侵檢測技術遠非完美,仍有巨大的進步空間。隨著近幾年來Internet的飛速發展,網絡干線基本都采用光纖作為傳輸設備,導致網絡帶寬較以前有顯著提高,網絡速度也越來越快,這就要求入侵檢測系統提高檢測效率。同時,隨著攻擊方法的不斷翻新,入侵檢測系統難以做到檢測出所有的攻擊,從而使得入侵檢測系統出現大量的誤報和漏報行為。
【發明內容】
[0003]本發明主要提供一種應用于入侵檢測系統的AC算法,解決入侵檢測的檢測效率低及檢測準確性差等問題。
[0004]為了實現本發明的目的,本發明提供一種應用于入侵檢測系統的AC算法,其預處理步驟為:
(1)按基本AC算法的方法構造有限狀態自動機,將有限自動機用二維數組存儲;
(2)壓縮有限狀態自動機存儲數組的全O列,之后查詢數組中的全O列,記錄全O列的位置信息,刪除數組中所有的全O列;
優選的,所述算法的匹配步驟為:
(1)從待匹配文本T中新讀取一個字符CHAR;
(2)在未用字符表中查找新讀入的字符,如果在其中找到CHAR,就置當前狀態currentstate為0,流程轉至(I ),否則繼續下面的操作;
(3)將CHAR減去未用字符表中ASCII碼小于CHAR的字符的數量;
(4)根據輸出函數判斷是否有匹配存在;
(5)如果文本讀取完畢就退出,否則返回(I)。
[0005]優選的,預處理步驟(3)中其壓縮步驟為:
(1)遍歷數組的行,根據設定的閾值將行分段,記錄各段的元素;
(2)計算各段的長度以及起始位置;
(3)按sparse-bandsformat格式將各行數據分別存儲在不同的一維組中,并令一指針數組指向它們。
[0006]優選的,在預處理步驟(2)刪除數組中所有O列后,需要對數組的各行采用sparse-bands format 格式進行壓縮。
[0007]優選的,在AC算法匹配步驟3之后需要將3的計算結果根據sparse-bandsformat格式的定義查找到對應的狀態,并將其置為current state。
[0008]優選的,在進行匹配步驟之前需要設待匹配的文本串為 text ο
[0009]有益效果:本發明提供一種應用于入侵檢測系統的AC算法,改進的AC算法與其它AC算法相比,空間開銷最小,改進AC算法占用的存儲空間為1027.01MB,而其他AC算法占用的存儲空間為635.13MB,比前者少占用存儲空間391.88MB,性能提升38.2%。同時,改進AC算法比占用1327.96MB的基本AC算法性能提升52.2%,比占用688.89MB的基于sparse-bands format存儲格式的改進AC算法性能提升7.8%,該算法的設計是成功的。
【附圖說明】
[0010]圖1:算法匹配過程流程圖。
[0011]圖2:模式集合P對應的DFA圖。
[0012]圖3:DFA存儲數組。
【具體實施方式】
[0013]下面結合附圖和【具體實施方式】對本發明做進一步詳細說明。
[0014]本發明提供一種應用于入侵檢測系統的AC算法,其預處理步驟為:
(1)按基本AC算法的方法構造有限狀態自動機,將有限自動機用二維數組存儲;
(2)壓縮有限狀態自動機存儲數組的全O列,之后查詢數組中的全O列,記錄全O列的位置信息,刪除數組中所有的全O列;
所述算法的匹配步驟為:
(1)從待匹配文本T中新讀取一個字符CHAR;
(2)在未用字符表中查找新讀入的字符,如果在其中找到CHAR,就置當前狀態currentstate為0,流程轉至(I ),否則繼續下面的操作;
(3)將CHAR減去未用字符表中ASCII碼小于CHAR的字符的數量;
(4)根據輸出函數判斷是否有匹配存在;
(5)如果文本讀取完畢就退出,否則返回(I)。
[0015]其中,預處理步驟(3)中其壓縮步驟為:
(1)遍歷數組的行,根據設定的閾值將行分段,記錄各段的元素;
(2)計算各段的長度以及起始位置;
(3)按sparse-bandsformat格式將各行數據分別存儲在不同的一維組中,并令一指針數組指向它們,在預處理步驟(2)刪除數組中所有O列后,需要對數組的各行采用sparse-bands format格式進行壓縮,在AC算法匹配步驟3之后需要將3的計算結果根據sparse-bands format格式的定義查找到對應的狀態,并將其置為current state,在進行匹配步驟之前需要設待匹配的文本串為text。
[0016]為了能形象地表述AC算法的預處理過程和匹配過程,舉一個例子進行說明。設模式集合為P= {he, she, his, hers, herb, shank},在預處理階段,首先按照基本AC算法的方法構建模式集合P對應的有限狀態自動機,該有限狀態自動機如圖2所示,存儲該有限狀態自動機的二維數組如圖3所示,可以看到該數組存在大量的O元素,查詢數組中的全O列,并將它們對應的字符存入未用字符表中。然后,根據雙重壓縮AC算法執行全O列的刪除,之后再按照sparse-bands format格式對數組的各行進行壓縮,最終得模式集合P對應的的有限狀態自動機存儲格式。
[0017]完成預處理后就可以利用壓縮后的有限狀態自動機進行字符串匹配了。匹配過程為:
(1)讀入字符CHAR=u,u在未用字符表中,置currentstate為O ;
(2)讀入字符CHAR=h,它不在未用字符表中,經查未用字符表中ASCII碼小于h的字符數量為101個;
(3)‘h’ -101=3 ;
(4)根據sparse-bandsformat存儲格式,計算“3”對應Ptr_0 (3)=1,因此置current state 為 I ;
(5)讀入字符CHAR=e,它不在未用字符表中,經查未用字符表中ASCII碼小于e的字符數量為99個;
(6)‘e’ -99=2 ;
(7)根據sparse-bandsformat存儲格式計算“2”對應Ptr_l (2)=2,因此置currentstate 為 2 ;
(8)在輸出函數中查詢到有模式“he”發生匹配,將該匹配信息輸出。
[0018]本發明提供一種應用于入侵檢測系統的AC算法,改進的AC算法與其它AC算法相比,空間開銷最小,改進AC算法占用的存儲空間為1027.01MB,而其他AC算法占用的存儲空間為635.13MB,比前者少占用存儲空間391.88MB,性能提升38.2%。同時,改進AC算法比占用1327.96MB的基本AC算法性能提升52.2%,比占用688.89MB的基于sparse-bandsformat存儲格式的改進AC算法性能提升7.8%,該算法的設計是成功的。
[0019]由技術常識可知,本發明可以通過其它的不脫離其精神實質或必要特征的實施方案來實現。因此,上述公開的實施方案,就各方面而言,都只是舉例說明,并不是僅有的。所有在本發明范圍內或在等同于本發明的范圍內的改變均被本發明包含。
【主權項】
1.一種應用于入侵檢測系統的AC算法,其特征在于,其預處理步驟為: (1)按基本AC算法的方法構造有限狀態自動機,將有限自動機用二 維數組存儲; (2)壓縮有限狀態自動機存儲數組的全O列,之后查詢數組中的全O列,記錄全O列的位置信息,刪除數組中所有的全O列。
2.根據權利要求1所述的一種應用于入侵檢測系統的AC算法,其特征在于,所述算法的匹配步驟為: (1)從待匹配文本T中新讀取一個字符CHAR; (2)在未用字符表中查找新讀入的字符,如果在其中找到CHAR,就置當前狀態currentstate為O,流程轉至(I ),否則繼續下面的操作; (3)將CHAR減去未用字符表中ASCII碼小于CHAR的字符的數量; (4)根據輸出函數判斷是否有匹配存在; (5)如果文本讀取完畢就退出,否則返回(I)。
3.根據權利要求1所述的一種應用于入侵檢測系統的AC算法,其特征在于,預處理步驟(3)中其壓縮步驟為: (1)遍歷數組的行,根據設定的閾值將行分段,記錄各段的元素; (2)計算各段的長度以及起始位置; (3)按sparse-bandsformat格式將各行數據分別存儲在不同的一維組中,并令一指針數組指向它們。
4.根據權利要求1所述的一種應用于入侵檢測系統的AC算法,其特征在于,在預處理步驟(2)刪除數組中所有O列后,需要對數組的各行采用sparse-bands format格式進行壓縮。
5.根據權利要求1所述的一種應用于入侵檢測系統的AC算法,其特征在于,在AC算法匹配步驟3之后需要將3的計算結果根據sparse-bands format格式的定義查找到對應的狀態,并將其置為current state。
6.根據權利要求1所述的一種應用于入侵檢測系統的AC算法,其特征在于,在進行匹配步驟之前需要設待匹配的文本串為text。
【專利摘要】本發明提供一種應用于入侵檢測系統的AC算法,改進的AC算法與其它AC算法相比,空間開銷最小,改進AC算法占用的存儲空間為1027.01MB,而其他AC算法占用的存儲空間為635.13MB,比前者少占用存儲空間391.88MB,性能提升38.2%。同時,改進AC算法比占用1327.96MB的基本AC算法性能提升52.2%,比占用688.89MB的基于sparse-bands format存儲格式的改進AC算法性能提升7.8%,該算法的設計是成功的。
【IPC分類】H04L29-06
【公開號】CN104869110
【申請號】CN201510091101
【發明人】肖守柏
【申請人】江西科技學院
【公開日】2015年8月26日
【申請日】2015年3月1日