国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種確定有限自動(dòng)機(jī)的構(gòu)建方法及裝置的制作方法

      文檔序號(hào):7773650閱讀:461來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):一種確定有限自動(dòng)機(jī)的構(gòu)建方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種確定有限自動(dòng)機(jī)的構(gòu)建方法及裝置。
      背景技術(shù)
      深度數(shù)據(jù)包檢測(cè)是NIDS (Network Intrusion Detection System,網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng))和NIPS (Network Intrusion Protection System,網(wǎng)絡(luò)入侵防護(hù)系統(tǒng))的核心,不僅檢測(cè)數(shù)據(jù)包頭部信息,而且檢測(cè)數(shù)據(jù)包有效載荷(即數(shù)據(jù)包內(nèi)容)。深度數(shù)據(jù)包檢測(cè)主要采用特征匹配算法,即將數(shù)據(jù)包內(nèi)容與一組預(yù)定義的特征規(guī)則(即特征規(guī)則集)進(jìn)行匹配,通過(guò)掃描數(shù)據(jù)包,識(shí)別出與特征規(guī)則集相匹配的數(shù)據(jù)包。
      隨著網(wǎng)絡(luò)攻擊越來(lái)越復(fù)雜,例如躲避攻擊、變型攻擊的出現(xiàn),單純的字符串難以精確描述復(fù)雜的網(wǎng)絡(luò)攻擊行為特征。由于正則表達(dá)式具有靈活、高效等特點(diǎn),目前許多安全產(chǎn)品采用正則表達(dá)式代替字符串表示攻擊數(shù)據(jù)包的特征規(guī)則。正則表達(dá)式匹配算法主要基于 NFA (Nondeterministic Finite Automaton,非確定有限自動(dòng)機(jī))和 DFA (DeterministicFinite Automaton,確定有限自動(dòng)機(jī))實(shí)現(xiàn),基于DFA的正則表達(dá)式匹配算法,從初始狀態(tài)開(kāi)始,對(duì)數(shù)據(jù)包的字符流進(jìn)行匹配,匹配完成之后,如果產(chǎn)生了接受狀態(tài)的匹配結(jié)果,則匹配成功,否則匹配失敗。
      現(xiàn)有技術(shù)中,利用嵌入式存儲(chǔ)器技術(shù),例如ASIC(專(zhuān)用集成電路)技術(shù)、FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)技術(shù)、NP(網(wǎng)絡(luò)處理器)技術(shù)、TCAM(三重內(nèi)容尋址存儲(chǔ)器)技術(shù)等,提供了面向硬件實(shí)現(xiàn)的正則表達(dá)式匹配算法以提高吞吐量。例如,在FPGA上實(shí)現(xiàn)NFA以進(jìn)行正則表達(dá)式的匹配,提高深度數(shù)據(jù)包檢測(cè)的吞吐量;在FPGA上實(shí)現(xiàn)DFA,與在FPGA上實(shí)現(xiàn)NFA相比,在吞吐量方面有很大的提高;在TCAM上實(shí)現(xiàn)DFA以進(jìn)行簡(jiǎn)單正則表達(dá)式的匹配等。
      DFA的存儲(chǔ)空間是由DFA狀態(tài)個(gè)數(shù)和每個(gè)DFA狀態(tài)的遷移邊條數(shù)決定的。目前的DFA壓縮算法主要分為兩種類(lèi)型:狀態(tài)壓縮算法和遷移邊壓縮算法。遷移邊壓縮算法是研究如何通過(guò)減少冗余遷移邊以壓縮DFA的存儲(chǔ)空間開(kāi)銷(xiāo),例如基于D2FA和基于⑶2FA的正則表達(dá)式匹配算法,通過(guò)引入默認(rèn)遷移邊的概念,將兩個(gè)DFA狀態(tài)中,經(jīng)過(guò)相同字符到達(dá)同一 DFA狀態(tài)后的邊去除一條從而減少遷移邊的條數(shù)。狀態(tài)壓縮算法是研究如何通過(guò)減少冗余DFA狀態(tài)以壓縮DFA的存儲(chǔ)空間開(kāi)銷(xiāo),例如基于狀態(tài)融合的DFA正則表達(dá)式匹配算法,通過(guò)添加標(biāo)簽將不等價(jià)DFA狀態(tài)合并為一個(gè)DFA狀態(tài)從而減少DFA狀態(tài)的個(gè)數(shù)。對(duì)于正則表達(dá)式的匹配速度方面,主要是采用并行的正則表達(dá)式匹配算法。并行的正則表達(dá)式匹配算法用來(lái)加快匹配速度,利用猜想的思想,通過(guò)并行和驗(yàn)證從而加快正則表達(dá)式的匹配速度。
      由于NIDS和NIPS的特征規(guī)則集中存在著大量的星項(xiàng)“*”、長(zhǎng)度限制“ {} ”、點(diǎn)項(xiàng) ”等,使得正則表達(dá)式的DFA狀態(tài)個(gè)數(shù)呈二次項(xiàng)甚至指數(shù)增長(zhǎng),從而導(dǎo)致正則表達(dá)式在轉(zhuǎn)換成為DFA的過(guò)程中可能產(chǎn)生數(shù)以萬(wàn)計(jì)的DFA狀態(tài),進(jìn)一步阻礙DFA的實(shí)現(xiàn)。造成DFA的存儲(chǔ)空間較大的主要原因在于:
      1、在DFA狀態(tài)方面,由于正則表達(dá)式中使用了許多語(yǔ)義豐富的符號(hào),例如“*”、“ {}”、“.”等,DFA需要大量的DFA狀態(tài)記錄部分匹配結(jié)果,導(dǎo)致DFA狀態(tài)爆炸;
      2、在遷移邊方面,對(duì)于ASCII字母表,每個(gè)DFA狀態(tài)需要256條遷移邊,導(dǎo)致DFA狀態(tài)的遷移邊表很大。而正則表達(dá)式的長(zhǎng)度限制部分會(huì)使得DFA狀態(tài)呈指數(shù)增長(zhǎng),消耗大量的存儲(chǔ)空間,進(jìn)而阻礙DFA的構(gòu)建,影響NIDS和NIPS的性能,甚至導(dǎo)致NIDS和NIPS無(wú)法提供服務(wù)。
      針對(duì)DFA無(wú)法構(gòu)建的問(wèn)題,可以采用重寫(xiě)規(guī)則、分割正則表達(dá)式、計(jì)數(shù)器和遷移邊歷史記錄等方法解決。所述的重寫(xiě)規(guī)則,例如將Pl “~A+[A-Z]{j}”重寫(xiě)為P2 “~A[A-Z]{j} ” ;將 Pl “.*AB[A-Z] {j} ” 重寫(xiě)為 P2 “(ΓΑ] |A[~B] |AB[A_Z] {j-1} Γ (A-Z) ]) *ΑΒ [ΑΖ]U} ”。通過(guò)該方法,可以減少轉(zhuǎn)化后的DFA的存儲(chǔ)空間消耗。
      現(xiàn)有技術(shù)中,一般將DFA狀態(tài)爆炸問(wèn)題分為三類(lèi):
      Insonia (不眠癥),正常數(shù)據(jù)包只訪問(wèn)前幾個(gè)DFA狀態(tài),大部分DFA狀態(tài)不訪問(wèn);
      Amnesia(健忘癥),由于星項(xiàng)的存在,使得DFA狀態(tài)呈二次項(xiàng)增長(zhǎng);
      Acalculia(計(jì)算力缺失癥),由于長(zhǎng)度限制的存在,使得DFA狀態(tài)呈指數(shù)增長(zhǎng)。
      通過(guò)構(gòu)建prefix-surfix DFA可以將正則表達(dá)式分割成前后兩部分,來(lái)分別構(gòu)建DFA,并保持前部DFA處于活躍狀態(tài),后部DFA在需要時(shí)被激活,從而減少存儲(chǔ)空間并加快匹配速度。H-FA(History-Finite Automaton,歷史有限自動(dòng)機(jī))記錄匹配過(guò)程中出現(xiàn)的星項(xiàng),通過(guò)一個(gè)歷史記錄減少 DFA 狀態(tài)。H-cFA (History-counting Finite Automaton,歷史計(jì)數(shù)有限自動(dòng)機(jī))對(duì)出現(xiàn)的長(zhǎng)度限制進(jìn)行計(jì)數(shù)以解決DFA狀態(tài)爆炸問(wèn)題。Hybrid-FA為了防止NFA到DFA轉(zhuǎn)化時(shí)DFA狀態(tài)的指數(shù)增長(zhǎng),同樣將正則表達(dá)式分割為兩段,并分別構(gòu)建Head-FA和Tai 1-FA,分界的標(biāo)識(shí)為當(dāng)遇到包含星項(xiàng)或者長(zhǎng)度限制的正則表達(dá)式時(shí),將該正則表達(dá)式分為兩部分,在需要時(shí)激活Tail-FA,這樣減少了存儲(chǔ)空間也可以進(jìn)行并行匹配。La-FA (Lookahead FA)將正則表達(dá)式按照復(fù)雜程度進(jìn)行分割,并調(diào)整分段次序,然后重新構(gòu)造DFA。通過(guò)分析DFA狀態(tài)爆炸原因,XFA(eXtend Finite Automaton,擴(kuò)展有限自動(dòng)機(jī))在DFA中加入某些輔助變量包括比特位和計(jì)數(shù)器,使用變量記錄中間的匹配結(jié)果,從而減少很多額外的DFA狀態(tài)。Counting-FA通過(guò)引進(jìn)計(jì)數(shù)器減少因?yàn)殚L(zhǎng)度限制導(dǎo)致的正則表達(dá)式的DFA狀態(tài)爆炸問(wèn)題。
      現(xiàn)有技術(shù)中,通過(guò)在FPGA上實(shí)現(xiàn)NFA能夠進(jìn)行正則表達(dá)式的匹配,提高深度數(shù)據(jù)包檢測(cè)的吞吐量,但是無(wú)法達(dá)到目前高速網(wǎng)絡(luò)的處理要求。通過(guò)在FPGA上實(shí)現(xiàn)DFA,與在FPGA上實(shí)現(xiàn)NFA相比, 在吞吐量方面有很大的提高,但是特征規(guī)則數(shù)受到了限制。雖然采用TCAM實(shí)現(xiàn)了簡(jiǎn)單正則表達(dá)式的DFA,但由于TCAM具有價(jià)格昂貴,集成度低等缺點(diǎn),難以對(duì)大規(guī)模特征規(guī)則集采用。由此本發(fā)明人在發(fā)明過(guò)程中發(fā)現(xiàn),基于傳統(tǒng)的NFA和DFA的正則表達(dá)式匹配算法都無(wú)法滿足高性能需求。而且隨著特征規(guī)則集的快速增長(zhǎng),基于傳統(tǒng)的NFA和DFA的正則表達(dá)式匹配算法缺乏可伸縮性,無(wú)法適應(yīng)高速網(wǎng)絡(luò)。因此,高性能深度數(shù)據(jù)包檢測(cè)的關(guān)鍵是設(shè)計(jì)一種快速且存儲(chǔ)高效的正則表達(dá)式匹配算法。又因?yàn)镹FA的匹配速度無(wú)法滿足高速網(wǎng)絡(luò)性能要求,所以目前研究如何改變這一狀況的重點(diǎn)主要圍繞DFA而展開(kāi)。
      狀態(tài)壓縮算法和遷移邊壓縮算法最主要的特點(diǎn)是針對(duì)一個(gè)假設(shè)前提:如果正則表達(dá)式能被正確的轉(zhuǎn)換為DFA。但實(shí)際上,由于現(xiàn)在的NIDS和NIPS的特征規(guī)則集中包含大量的長(zhǎng)度限制,使得正則表達(dá)式的DFA狀態(tài)呈指數(shù)增長(zhǎng),從而阻礙了 DFA的構(gòu)建。
      基于DFA可以被構(gòu)建的前提下的正則表達(dá)式匹配算法,對(duì)于包含復(fù)雜項(xiàng)的正則表達(dá)式導(dǎo)致DFA無(wú)法被構(gòu)建時(shí)無(wú)法運(yùn)用。在正則表達(dá)式匹配時(shí),XFA在進(jìn)行狀態(tài)遷移的同時(shí),需要執(zhí)行遷移邊或者DFA狀態(tài)上的指令使變量記錄匹配結(jié)果,因此需要付出一些指令執(zhí)行開(kāi)銷(xiāo)。Hybrid-FA、Counting-FA雖然在一定程度上減少了存儲(chǔ)空間,但是在Hybrid-FA中,由于單純的分離出長(zhǎng)度限制和星點(diǎn)項(xiàng),雖然在一定程度上減少了存儲(chǔ)空間,但是存儲(chǔ)空間的開(kāi)銷(xiāo)依然很大。在Counting-FA中,由于引入了計(jì)數(shù)器,從而進(jìn)一步的減少了存儲(chǔ)空間開(kāi)銷(xiāo),但是由于引入多個(gè)實(shí)例,對(duì)于多個(gè)實(shí)例的維護(hù)以及由此產(chǎn)生的DFA狀態(tài)及算法的復(fù)雜度增大,并且由于實(shí)例維護(hù)問(wèn)題導(dǎo)致需要一定的時(shí)間開(kāi)銷(xiāo),影響了匹配速度。總之,現(xiàn)有的針對(duì)DFA無(wú)法構(gòu)建問(wèn)題的算法雖然在一定程度上減少了存儲(chǔ)空間,但是存儲(chǔ)空間上的開(kāi)銷(xiāo)還是非常巨大的;同時(shí),算法也帶來(lái)了一定的負(fù)面影響,如算法復(fù)雜度大,額外存儲(chǔ)開(kāi)銷(xiāo)增多;最后,算法在匹配速度上也并未專(zhuān)門(mén)做改進(jìn)。發(fā)明內(nèi)容
      本發(fā)明提供一種確定有限自動(dòng)機(jī)的構(gòu)建方法及裝置,用以解決針對(duì)包含長(zhǎng)度限制的正則表達(dá)式構(gòu)建DFA時(shí)可能存在的DFA狀態(tài)爆炸問(wèn)題,同時(shí)實(shí)現(xiàn)DFA的存儲(chǔ)空間壓縮及匹配加速。
      本發(fā)明實(shí)施例提供的確定有限自動(dòng)機(jī)的構(gòu)建方法,包括:
      針對(duì)特征規(guī)則集中包含長(zhǎng)度限制的正則表達(dá)式,按照長(zhǎng)度限制的出現(xiàn)位置進(jìn)行分割與合并處理,將所述正則表達(dá)式的頭尾部和長(zhǎng)度限制部分相分離;
      構(gòu)建所述正則表達(dá)式的確定有限自動(dòng)機(jī),其中,所述正則表達(dá)式的確定有限自動(dòng)機(jī)對(duì)所述長(zhǎng)度限制部分使用跳躍策略調(diào)整匹配順序,頭尾部匹配完成之后使用計(jì)數(shù)策略對(duì)所述長(zhǎng)度限制部分進(jìn)行驗(yàn)證。
      本發(fā)明實(shí)施例提供的確定有限自動(dòng)機(jī)的構(gòu)建裝置,包括:
      處理單元,用于針對(duì)特征規(guī)則集中包含長(zhǎng)度限制的正則表達(dá)式,按照長(zhǎng)度限制的出現(xiàn)位置進(jìn)行分割與合并處理,將所述正則表達(dá)式的頭尾部和長(zhǎng)度限制部分相分離;
      構(gòu)建單元,用于構(gòu)建所述正則表達(dá)式的確定有限自動(dòng)機(jī),其中,所述正則表達(dá)式的確定有限自動(dòng)機(jī)對(duì)所述長(zhǎng)度限制部分使用跳躍策略調(diào)整匹配順序,頭尾部匹配完成之后使用計(jì)數(shù)策略對(duì)所述長(zhǎng)度限制部分進(jìn)行驗(yàn)證。
      本發(fā)明實(shí)施例提供的確定有限自動(dòng)機(jī)的構(gòu)建方法及裝置,采用對(duì)包含長(zhǎng)度限制的正則表達(dá)式進(jìn)行分割與合并處理的方式將長(zhǎng)度限制部分從正則表達(dá)式中分離出來(lái),然后通過(guò)對(duì)長(zhǎng)度限制部分使用跳躍策略調(diào)整正則表達(dá)式的匹配順序,從而減少DFA的存儲(chǔ)空間并加快匹配速度,頭尾部匹配完成之后使用計(jì)數(shù)策略驗(yàn)證長(zhǎng)度限制部分,通過(guò)分離避免了多實(shí)例維護(hù)問(wèn)題的出現(xiàn),在任何時(shí)候只有一個(gè)計(jì)數(shù)實(shí)例,進(jìn)一步減少了 DFA的存儲(chǔ)空間并加快匹配速度,從而提高深度數(shù)據(jù)包檢測(cè)的健壯性。
      本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫(xiě)的說(shuō)明書(shū)、權(quán)利要求書(shū)、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。


      此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
      圖1為本發(fā)明實(shí)施例提供的確定有限自動(dòng)機(jī)的構(gòu)建方法流程圖2為本發(fā)明實(shí)施例提供的一種較佳的基于Jump-CFA算法構(gòu)建DFA的流程圖3為本發(fā)明實(shí)施例提供的對(duì)正則表達(dá)式進(jìn)行分割與合并處理的示意圖4為本發(fā)明實(shí)施例提供的在正則表達(dá)式*a.{n}bc”上的跳躍策略示意圖5為本發(fā)明實(shí)施例提供的使用計(jì)數(shù)策略驗(yàn)證長(zhǎng)度限制部分的示意圖6為本發(fā)明實(shí)施例提供的正則表達(dá)式“.*a.1n} be”的Jump-CFA算法示意圖7為本發(fā)明實(shí)施例提供的優(yōu)化后的正則表達(dá)式*a.{n}be”的Jump-CFA算法示意圖8為本發(fā)明實(shí)施例提供的通過(guò)子集構(gòu)建的方式進(jìn)行DFA的構(gòu)建示意圖9為本發(fā)明實(shí)施例提供的構(gòu)建的DFA在網(wǎng)絡(luò)設(shè)備中使用的網(wǎng)絡(luò)架構(gòu)示意圖10為本發(fā)明實(shí)施例提供的確定有限自動(dòng)機(jī)的構(gòu)建裝置結(jié)構(gòu)框圖。
      具體實(shí)施方式
      本發(fā)明實(shí)施例針對(duì)采用正則表達(dá)式代替字符串表示攻擊數(shù)據(jù)包的特征規(guī)則的應(yīng)用場(chǎng)景,提供一種針對(duì)包含長(zhǎng)度限制的正則表達(dá)式構(gòu)建DFA(確定有限自動(dòng)機(jī))的方法及裝置,解決DFA狀態(tài)爆炸問(wèn)題,實(shí)現(xiàn)DFA的存儲(chǔ)空間壓縮及匹配加速;進(jìn)一步,基于構(gòu)建的DFA進(jìn)行正則表達(dá)式的匹配,能夠?qū)崿F(xiàn)深度數(shù)據(jù)包檢測(cè)的健壯性和高性能需求,從而保障企業(yè)信息系統(tǒng)領(lǐng)域的安全。
      以下結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明,并且在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。
      為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例首先提供了一種基于跳躍策略和計(jì)數(shù)策略的正則表達(dá)式匹配算法,首先,按照長(zhǎng)度限制的出現(xiàn)位置對(duì)包含長(zhǎng)度限制的正則表達(dá)式進(jìn)行分割與合并處理;然后,對(duì)長(zhǎng)度限制部分使用跳躍策略和計(jì)數(shù)策略構(gòu)建DFA ;最后,基于構(gòu)建的DFA對(duì)數(shù)據(jù)包進(jìn)行匹配,根據(jù)匹配結(jié)果確定該數(shù)據(jù)包是否為攻擊數(shù)據(jù)包。
      為了說(shuō)明算法的實(shí)現(xiàn)原理,首先對(duì)“小概率事件”進(jìn)行解釋說(shuō)明。
      對(duì)于任意一個(gè)DFA狀態(tài)S,SO為初始狀態(tài),定義D印th(S)為從SO到S的最小距離。本發(fā)明人在發(fā)明過(guò)程中發(fā)現(xiàn),正常數(shù)據(jù)包很少能夠匹配任何模式的尾部?;诖?,大部分的DFA狀態(tài)將不會(huì)被訪問(wèn),也就是說(shuō),存在一個(gè)正整數(shù)m,使得Depth (S’)> m的DFA狀態(tài)S’將很少被訪問(wèn),將此稱(chēng)之為小概率事件。也就是說(shuō),如果一個(gè)數(shù)據(jù)包匹配了模式的頭部和尾部,那么在很大程度上該數(shù)據(jù)包將是一個(gè)攻擊數(shù)據(jù)包;相反,如果一個(gè)數(shù)據(jù)包是正常數(shù)據(jù)包,在匹配了頭部之后同時(shí)匹配尾部的概率將會(huì)非常小。
      通過(guò)統(tǒng)計(jì)發(fā)現(xiàn),大部分的網(wǎng)絡(luò)流量都是正常數(shù)據(jù)包,攻擊數(shù)據(jù)包的特征規(guī)則集中大概42%的包含長(zhǎng)度限制的正則表達(dá)式都是In}”形式的。在正則表達(dá)式中,“b”比其他字符更具有針對(duì)性,能夠過(guò)濾掉更多的正常數(shù)據(jù)包。因此,可以改變正則表達(dá)式的匹配順序以提高正則表達(dá)式的匹配性能。
      本發(fā)明實(shí)施例中提供了一種基于跳躍策略和計(jì)數(shù)策略的DFA算法,本發(fā)明實(shí)施例中將該基于跳躍策略和計(jì)數(shù)策略的DFA算法稱(chēng)為Jump-CFA (Jump-Counting FiniteAutomata,跳躍和計(jì)數(shù)有限自動(dòng)機(jī))算法,即采用對(duì)正則表達(dá)式進(jìn)行分割和合并處理來(lái)重組正則表達(dá)式,然后通過(guò)對(duì)長(zhǎng)度限制部分使用跳躍策略調(diào)整正則表達(dá)式的匹配順序,從而減少DFA的存儲(chǔ)空間并加快匹配速度,頭尾部匹配完成之后使用計(jì)數(shù)策略驗(yàn)證長(zhǎng)度限制部分,由于在任何時(shí)候只有一個(gè)計(jì)數(shù)實(shí)例,從而進(jìn)一步減少了 DFA的存儲(chǔ)空間并加快匹配速度。
      下面,將詳細(xì)介紹Jump-CFA算法的DFA構(gòu)建方法,如圖1所示,包括如下步驟:
      S101、針對(duì)特征規(guī)則集中包含長(zhǎng)度限制的正則表達(dá)式,按照長(zhǎng)度限制的出現(xiàn)位置進(jìn)行分割與合并處理,將包含長(zhǎng)度限制的正則表達(dá)式的頭尾部和長(zhǎng)度限制部分相分離;
      S102、構(gòu)建包含長(zhǎng)度限制的正則表達(dá)式的DFA,其中,包含長(zhǎng)度限制的正則表達(dá)式的DFA對(duì)長(zhǎng)度限制部分使用跳躍策略調(diào)整匹配順序,頭尾部匹配完成之后使用計(jì)數(shù)策略對(duì)長(zhǎng)度限制部分進(jìn)行驗(yàn)證。
      特征規(guī)則集中一般包括多個(gè)正則表達(dá)式,則所述構(gòu)建方法還可以包括如下步驟:
      S103、對(duì)特征規(guī)則集中各正則表達(dá)式的DFA進(jìn)行合并處理,得到特征規(guī)則集的DFA。
      下面詳細(xì)說(shuō)明一種較佳的基于Jump-CFA算法構(gòu)建DFA的過(guò)程,如圖2所示,包括如下步驟:
      S201、從特征規(guī)則集中選擇一個(gè)未處理的正則表達(dá)式;
      選擇出未處理的正則表達(dá)式之后,可以將該正則表達(dá)式從特征規(guī)則集中刪除,或者將該正則表達(dá)式標(biāo)記為已處理狀態(tài)。
      S202、對(duì)當(dāng)前的正則表達(dá)式按照長(zhǎng)度限制的出現(xiàn)位置進(jìn)行分割與合并處理,將該正則表達(dá)式的頭尾部和長(zhǎng)度限制部分相分離,使得導(dǎo)致DFA狀態(tài)個(gè)數(shù)指數(shù)增長(zhǎng)的長(zhǎng)度限制部分從該正則表達(dá)式中分尚出來(lái)。
      S203、構(gòu)建當(dāng)前的正則表達(dá)式的DFA,該正則表達(dá)式的DFA對(duì)長(zhǎng)度限制部分使用跳躍策略和計(jì)數(shù)策略;
      具體的,對(duì)長(zhǎng)度限制部分使用跳躍策略調(diào)整該正則表達(dá)式的匹配順序,頭尾部匹配完成之后使用計(jì)數(shù)策略對(duì)長(zhǎng)度限制部分進(jìn)行驗(yàn)證。
      S204、將當(dāng)前的正則表達(dá)式的DFA與在先的正則表達(dá)式的DFA進(jìn)行合并處理。
      S205、判斷特征規(guī)則集中是否還有未處理的正則表達(dá)式,如果是,則返回執(zhí)行S201,如果否,流程結(jié)束,得到特征規(guī)則集的DFA。
      正則表達(dá)式的分割與合并處理,具體介紹如下。
      在實(shí)際的NIDS和NIPS中,特征規(guī)則集的正則表達(dá)式中一般包含復(fù)雜的部分,例如星點(diǎn)項(xiàng)和長(zhǎng)度限制,從而導(dǎo)致DFA不可行。雖然一般NIDS和NIPS的特征規(guī)則集中只有9.3%的正則表達(dá)式包含長(zhǎng)度限制,但是一旦長(zhǎng)度限制出現(xiàn),將會(huì)極大的影響NIDS和NIPS的性能,甚至導(dǎo)致NIDS和NIPS無(wú)法提供服務(wù)。由于DFA狀態(tài)爆炸問(wèn)題,包含長(zhǎng)度限制的正則表達(dá)式將會(huì)消耗大量的存儲(chǔ)空間進(jìn)而阻礙DFA的構(gòu)建。因此,本發(fā)明實(shí)施例中將正則表達(dá)式的長(zhǎng)度限制部分與其他部分相分離從而阻止DFA狀態(tài)爆炸。一旦在正則表達(dá)式中包含長(zhǎng)度限制,則將該正則表達(dá)式分割為三部分:頭部、長(zhǎng)度限制部分和尾部;然后將頭部和尾部進(jìn)行合并,從而分離出長(zhǎng)度限制部分。例如正則表達(dá)式“.*a.{5}bc”包含長(zhǎng)度限制{5}”,其中長(zhǎng)度限制的重復(fù)字符為”,表示任意字符,長(zhǎng)度限制的重復(fù)基數(shù)為“{5}”,表示重復(fù)5次。如果長(zhǎng)度限制的重復(fù)基數(shù)為“{*}”,則表示重復(fù)任意次數(shù)。將該正則表達(dá)式按照長(zhǎng)度限制的出現(xiàn)位置分為*a”、“.{5} ”和“bc”,分別作為該正則表達(dá)式的頭部、長(zhǎng)度限制部分和尾部;然后將頭部和尾部進(jìn)行合并,從而將該正則表達(dá)式的頭尾部*abc”和長(zhǎng)度限制部分{5}”相分離;最后使用不同的檢測(cè)器可以分別檢測(cè)頭尾部“.*abc”和長(zhǎng)度限制部分{5}”。對(duì)正則表達(dá)式進(jìn)行分割與合并處理的示意圖請(qǐng)參見(jiàn)圖3,例如正則表達(dá)式集R中包括三個(gè)正則表達(dá)式,分別為rl “.*a.{5}bc”、r2 *a bc[~d] {5}”和r3 {5}abc”,對(duì)各正則表達(dá)式進(jìn)行分割與合并處理之后得到:rl的頭尾部“.*abc”和長(zhǎng)度限制部分{5} ”,r2的頭尾部*abc”和長(zhǎng)度限制部分“ [~d] {5} ”,r3的頭尾部“abc”和長(zhǎng)度限制部分“.{5}”。
      長(zhǎng)度限制部分的跳躍策略,具體介紹如下。
      請(qǐng)參見(jiàn)圖4,給出了在正則表達(dá)式“.*a.{n}bc”上的跳躍策略。
      如圖4所示,狀態(tài)I是JUMP狀態(tài),用來(lái)指示長(zhǎng)度限制部分的開(kāi)始。一旦到達(dá)了 JUMP狀態(tài),一個(gè)變量i將會(huì)產(chǎn)生并用來(lái)記錄輸入的數(shù)據(jù)包的當(dāng)前位置。然后在數(shù)據(jù)包的剩余字符流中跳過(guò)隨后的η個(gè)字符,η為重復(fù)基數(shù),并使用w(i+n)判斷輸入的數(shù)據(jù)包的字符流中第(i+n)個(gè)字符是否為b,如果是,則進(jìn)入下一狀態(tài)2 ;否則返回初始狀態(tài)O并且從位置i重新開(kāi)始驗(yàn)證。在狀態(tài)2中,如果隨后的字符是C,則進(jìn)入下一狀態(tài)3。狀態(tài)3是TRIGGER狀態(tài),是一個(gè)觸發(fā)器用來(lái)驗(yàn)證長(zhǎng)度限部分。
      使用跳躍策略減少存儲(chǔ)空間需求,更重要的是加快正則表達(dá)式的匹配速度。一旦(i+n)大于數(shù)據(jù)包長(zhǎng)度,可知為正常數(shù)據(jù)包然后停止檢測(cè)剩余字符,平均需要檢測(cè)的數(shù)據(jù)包深度會(huì)減少,從而加快匹配速度。
      長(zhǎng)度限制部分的計(jì)數(shù)策略,具體介紹如下。
      在頭尾部匹配完成之后,下一步就是驗(yàn)證長(zhǎng)度限制部分。如圖5所示,給出了如何使用計(jì)數(shù)策略驗(yàn)證長(zhǎng)度限制部分。
      使用一個(gè)計(jì)數(shù)實(shí)例cnt記錄已經(jīng)匹配的字符個(gè)數(shù)。一旦驗(yàn)證操作被激發(fā),一個(gè)計(jì)數(shù)實(shí)例cnt被初始化為O。W(i+cnt) = * | cnt = n_l表示如果cnt的計(jì)數(shù)值為n_l且第(i+cnt)個(gè)字符是任意字符,從狀態(tài)O進(jìn)入狀態(tài)I。使用w(i)到w(i+n-l)判斷是否匹配長(zhǎng)度限制部分。在任何時(shí)候?qū)⒅粫?huì)產(chǎn)生一個(gè)計(jì)數(shù)實(shí)例來(lái)驗(yàn)證長(zhǎng)度限制部分,并且一個(gè)字符只驗(yàn)證一次,因此驗(yàn)證的復(fù)雜度是O (η),通過(guò)將長(zhǎng)度限制部分與正則表達(dá)式相分離,簡(jiǎn)化了多實(shí)例維護(hù)問(wèn)題,從而簡(jiǎn)化了算法的復(fù)雜度。
      Jump-CFA算法具體介紹如下。
      根據(jù)上面的分析,圖6給出了正則表達(dá)式*a.{n}bc”的Jump-CFA算法。長(zhǎng)度限制部分In}”要求任意η個(gè)字符。在這種情況下,一旦到達(dá)了狀態(tài)3即TRIGGER狀態(tài),并不需要再去驗(yàn)證分離出的長(zhǎng)度限制部分,優(yōu)化后的正則表達(dá)式*a.{n}bc”的Jump-CFA算法如圖7所示。
      Jump-CFA算法將DFA狀態(tài)分為四種類(lèi)型=NORMAL (正常)狀態(tài)、JUMP (跳躍)狀態(tài)、TRIGGER (觸發(fā))狀態(tài)和ACCEPT (接受)狀態(tài),其中:
      NORMAL狀態(tài)是除了 ACCEPT狀態(tài)之外的下一狀態(tài)可以根據(jù)遷移邊表確定并且不會(huì)激發(fā)任何策略的狀態(tài);
      JUMP狀態(tài)和TRIGGER狀態(tài)是可以分別激發(fā)對(duì)長(zhǎng)度限制部分使用跳躍策略和驗(yàn)證策略的狀態(tài);
      ACCEPT狀態(tài)指示在特征規(guī)則集中存在一個(gè)匹配的正則表達(dá)式。
      需要說(shuō)明的是,在正則表達(dá)式的匹配過(guò)程中,狀態(tài)行為隨著狀態(tài)類(lèi)型而改變。
      由于NFA巨大的帶寬消耗,Jump-CFA算法可以由圖7通過(guò)子集構(gòu)建的方式進(jìn)行DFA的構(gòu)建,具體請(qǐng)參見(jiàn)圖8??梢钥闯?,DFA狀態(tài)個(gè)數(shù)與長(zhǎng)度限制部分中η的取值無(wú)關(guān)并且在該實(shí)例中DFA狀態(tài)個(gè)數(shù)等于NFA狀態(tài)個(gè)數(shù)。使得Jump-CFA算法在η取值很大時(shí)非常具有吸引力,尤其當(dāng)DFA無(wú)法構(gòu)建時(shí)是個(gè)很好的解決方案。子集構(gòu)建過(guò)程如下:如果一個(gè)DFA狀態(tài)S是一個(gè)JUMP狀態(tài)(在圖6中為狀態(tài)I),那么所有的子集構(gòu)建過(guò)程中包含狀態(tài)S的DFA狀態(tài)都被會(huì)被賦予一個(gè)跳躍行為;如果一個(gè)DFA狀態(tài)S是一個(gè)TRIGGER狀態(tài)(圖6中為狀態(tài)3),那么所有的子集構(gòu)建過(guò)程中包含狀態(tài)S的DFA狀態(tài)都會(huì)被賦予一個(gè)驗(yàn)證行為;遷移邊可以隨著cnt的計(jì)數(shù)值來(lái)進(jìn)行條件判斷。
      構(gòu)建的基于跳躍和計(jì)數(shù)策略的DFA可以在網(wǎng)關(guān)、路由器等網(wǎng)絡(luò)設(shè)備中使用,具體網(wǎng)絡(luò)架構(gòu)如圖9所示,網(wǎng)絡(luò)設(shè)備根據(jù)構(gòu)建的DFA對(duì)數(shù)據(jù)包進(jìn)行匹配,根據(jù)匹配結(jié)果得出是否為攻擊數(shù)據(jù)包的結(jié)論。構(gòu)建的DFA維護(hù)一個(gè)狀態(tài)表,狀態(tài)表描述了若干DFA狀態(tài),以及在每一個(gè)DFA狀態(tài)下,針對(duì)輸入的字符跳轉(zhuǎn)到的下一 DFA狀態(tài),最終得到是否為接受狀態(tài)的匹配結(jié)果。根據(jù)數(shù)據(jù)包的字符流,構(gòu)建的DFA通過(guò)維護(hù)的狀態(tài)表可以進(jìn)行匹配,最終得到是否為接受狀態(tài)的匹配結(jié)果,如果匹配結(jié)果為接受狀態(tài),表示該數(shù)據(jù)包為攻擊數(shù)據(jù)包,針對(duì)攻擊數(shù)據(jù)包,網(wǎng)絡(luò)設(shè)備直接丟棄,否則,表示該數(shù)據(jù)包不是攻擊數(shù)據(jù)包,網(wǎng)絡(luò)設(shè)備發(fā)送到用戶(hù)的PC (Personal Computer,個(gè)人電腦)或筆記本上。
      基于同一技術(shù)構(gòu)思,本發(fā)明實(shí)施例還提供了一種確定有限自動(dòng)機(jī)的構(gòu)建裝置,由于該構(gòu)建裝置解決問(wèn)題的原理與確定有限自動(dòng)機(jī)的構(gòu)建方法相似,因此該裝置的實(shí)施可以參見(jiàn)方法的實(shí)施,重復(fù)之處不再贅述。
      本發(fā)明實(shí)施例提供的確定有限自動(dòng)機(jī)的構(gòu)建裝置的結(jié)構(gòu),如圖10所示,包括:
      處理單元1001,用于針對(duì)特征規(guī)則集中包含長(zhǎng)度限制的正則表達(dá)式,按照長(zhǎng)度限制的出現(xiàn)位置進(jìn)行分割與合并處理,將包含長(zhǎng)度限制的正則表達(dá)式的頭尾部和長(zhǎng)度限制部分相分離;
      構(gòu)建單元1002,用于構(gòu)建包含長(zhǎng)度限制的正則表達(dá)式的確定有限自動(dòng)機(jī),其中,包含長(zhǎng)度限制的正則表達(dá)式的確定有限自動(dòng)機(jī)對(duì)長(zhǎng)度限制部分使用跳躍策略調(diào)整匹配順序,頭尾部匹配完成之后使用計(jì)數(shù)策略對(duì)長(zhǎng)度限制部分進(jìn)行驗(yàn)證。
      具體實(shí)施中,該構(gòu)建裝置還可以包括:
      提取單元1003,用于從特征規(guī)則集中提取未處理的正則表達(dá)式發(fā)送給處理單元1001 ;
      合并單元1004,用于對(duì)特征規(guī)則集中各正則表達(dá)式的確定有限自動(dòng)機(jī)進(jìn)行合并處理,得到特征規(guī)則集的確定有限自動(dòng)機(jī)。
      較佳的,該構(gòu)建裝置還可以包括:
      數(shù)據(jù)包檢測(cè)單元1005,用于根據(jù)特征規(guī)則集的確定有限自動(dòng)機(jī)對(duì)數(shù)據(jù)包進(jìn)行匹配,如果得到接受狀態(tài)的匹配結(jié)果,確定數(shù)據(jù)包為攻擊數(shù)據(jù)包,否則,確定數(shù)據(jù)包為正常數(shù)據(jù)包。
      本發(fā)明實(shí)施例提供的確定有限自動(dòng)機(jī)的構(gòu)建方法及裝置,采用對(duì)包含長(zhǎng)度限制的正則表達(dá)式進(jìn)行分割與合并處理的方式將長(zhǎng)度限制部分從正則表達(dá)式中分離出來(lái),然后通過(guò)對(duì)長(zhǎng)度限制部分使用跳躍策略調(diào)整正則表達(dá)式的匹配順序,從而減少DFA的存儲(chǔ)空間并加快匹配速度,頭尾部匹配完成之后使用計(jì)數(shù)策略驗(yàn)證長(zhǎng)度限制部分,通過(guò)分離避免了多實(shí)例維護(hù)問(wèn)題的出現(xiàn),在任何時(shí)候只有一個(gè)計(jì)數(shù)實(shí)例,進(jìn)一步減少了 DFA的存儲(chǔ)空間并加快匹配速度,從而提高深度數(shù)據(jù)包檢測(cè)的健壯性。
      對(duì)分離出來(lái)的長(zhǎng)度限制部分使用計(jì)數(shù)策略,極大程度的驗(yàn)證長(zhǎng)度限制部分,并且降低了算法的復(fù)雜度,驗(yàn)證長(zhǎng)度限制部分的復(fù)雜度為0(n)。跳躍策略減少了數(shù)據(jù)包檢測(cè)的深度,具有更大的概率發(fā)現(xiàn)一個(gè)不接受狀態(tài),并且需要更少的操作,因此加快了正則表達(dá)式的匹配速度;忽略任意字符的長(zhǎng)度限制的驗(yàn)證使得進(jìn)一步壓縮了 DFA的存儲(chǔ)空間,并且進(jìn)一步優(yōu)化了正則表達(dá)式匹配算法。
      本發(fā)明實(shí)施例提供的確定有限自動(dòng)機(jī)的構(gòu)建方法及裝置,經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證了其可行性,能夠較好地滿足NIDS和NIPS的需要,效果理想。
      采用C++設(shè)計(jì)和實(shí)現(xiàn)了 Jump-CFA算法的DFA,實(shí)驗(yàn)運(yùn)行在CPU為Intel Core2 Duo 2.4 GHZ、內(nèi)存為2GB的計(jì)算機(jī)上。實(shí)驗(yàn)所需的特征規(guī)則集來(lái)源于2011年5月的Snort (snortrules-snapshot-2905.tar.gz)特征規(guī)則集,從中提取了部分正則表達(dá)式作為實(shí)驗(yàn)對(duì)象,如表I所示。并且實(shí)驗(yàn)所需的數(shù)據(jù)包使用林肯實(shí)驗(yàn)室的MIT DARPA入侵檢測(cè)數(shù)據(jù)集(2000DARPA入侵檢測(cè)評(píng)估)。
      表I
      權(quán)利要求
      1.一種確定有限自動(dòng)機(jī)的構(gòu)建方法,其特征在于,包括: 針對(duì)特征規(guī)則集中包含長(zhǎng)度限制的正則表達(dá)式,按照長(zhǎng)度限制的出現(xiàn)位置進(jìn)行分割與合并處理,將所述正則表達(dá)式的頭尾部和長(zhǎng)度限制部分相分離; 構(gòu)建所述正則表達(dá)式的確定有限自動(dòng)機(jī),其中,所述正則表達(dá)式的確定有限自動(dòng)機(jī)對(duì)所述長(zhǎng)度限制部分使用跳躍策略調(diào)整匹配順序,頭尾部匹配完成之后使用計(jì)數(shù)策略對(duì)所述長(zhǎng)度限制部分進(jìn)行驗(yàn)證。
      2.如權(quán)利要求1所述的方法,其特征在于,還包括: 對(duì)所述特征規(guī)則集中各正則表達(dá)式的確定有限自動(dòng)機(jī)進(jìn)行合并處理,得到所述特征規(guī)則集的確定有限自動(dòng)機(jī)。
      3.如權(quán)利要求2所述的方法,其特征在于,所述特征規(guī)則集的確定有限自動(dòng)機(jī)維護(hù)的狀態(tài)表中,狀態(tài)類(lèi)型包括正常狀態(tài)、跳躍狀態(tài)、觸發(fā)狀態(tài)和接受狀態(tài),其中: 在正常狀態(tài)下,根據(jù)該狀態(tài)的遷移邊表確定下一狀態(tài); 所述跳躍狀態(tài)用于激發(fā)對(duì)長(zhǎng)度限制部分使用跳躍策略; 所述觸發(fā)狀態(tài)用于激發(fā)對(duì)長(zhǎng)度限制部分使用計(jì)數(shù)策略; 所述接受狀態(tài)指示在特征規(guī)則集中存在一個(gè)匹配的正則表達(dá)式。
      4.如權(quán)利要求2或3所述的方法,其特征在于,還包括: 根據(jù)所述特征規(guī)則集的確定有限自動(dòng)機(jī)對(duì)數(shù)據(jù)包進(jìn)行匹配,如果產(chǎn)生了接受狀態(tài)的匹配結(jié)果,確定所述數(shù)據(jù)包為攻擊數(shù)據(jù)包,否則,確定所述數(shù)據(jù)包為正常數(shù)據(jù)包。
      5.如權(quán)利要求4所述的方法,其特征在于, 根據(jù)所述特征規(guī)則集的確定有限自動(dòng)機(jī)對(duì)數(shù)據(jù)包進(jìn)行匹配過(guò)程中,到達(dá)一個(gè)跳躍狀態(tài)時(shí),記錄所述數(shù)據(jù)包的當(dāng)前位置,在數(shù)據(jù)包的剩余字符流中以當(dāng)前位置為起點(diǎn)跳過(guò)對(duì)應(yīng)的長(zhǎng)度限制的重復(fù)基數(shù)所指示數(shù)量的字符;并 判斷跳躍后的到達(dá)位置上的字符是否與對(duì)應(yīng)的長(zhǎng)度限制的下一字符相一致,如果是,進(jìn)入下一狀態(tài),否則,返回上一狀態(tài)。
      6.如權(quán)利要求4所述的方法,其特征在于, 根據(jù)所述特征規(guī)則集的確定有限自動(dòng)機(jī)對(duì)數(shù)據(jù)包進(jìn)行匹配過(guò)程中,到達(dá)一個(gè)觸發(fā)狀態(tài)時(shí),使用一個(gè)用于記錄已經(jīng) 匹配的字符個(gè)數(shù)的計(jì)數(shù)實(shí)例驗(yàn)證長(zhǎng)度限制部分,如果計(jì)數(shù)實(shí)例的計(jì)數(shù)值達(dá)到對(duì)應(yīng)的長(zhǎng)度限制的重復(fù)基數(shù)、且當(dāng)前需要驗(yàn)證的字符與對(duì)應(yīng)的長(zhǎng)度限制的重復(fù)字符相一致,進(jìn)入下一狀態(tài)。
      7.如權(quán)利要求6所述的方法,其特征在于, 根據(jù)所述特征規(guī)則集的確定有限自動(dòng)機(jī)對(duì)數(shù)據(jù)包進(jìn)行匹配過(guò)程中,到達(dá)一個(gè)觸發(fā)狀態(tài)時(shí),如果對(duì)應(yīng)的長(zhǎng)度限制的重復(fù)字符為任意字符,不驗(yàn)證長(zhǎng)度限制部分。
      8.一種確定有限自動(dòng)機(jī)的構(gòu)建裝置,其特征在于,包括: 處理單元,用于針對(duì)特征規(guī)則集中包含長(zhǎng)度限制的正則表達(dá)式,按照長(zhǎng)度限制的出現(xiàn)位置進(jìn)行分割與合并處理,將所述正則表達(dá)式的頭尾部和長(zhǎng)度限制部分相分離; 構(gòu)建單元,用于構(gòu)建所述正則表達(dá)式的確定有限自動(dòng)機(jī),其中,所述正則表達(dá)式的確定有限自動(dòng)機(jī)對(duì)所述長(zhǎng)度限制部分使用跳躍策略調(diào)整匹配順序,頭尾部匹配完成之后使用計(jì)數(shù)策略對(duì)所述長(zhǎng)度限制部分進(jìn)行驗(yàn)證。
      9.如權(quán)利要求8所述的裝置,其特征在于,還包括:提取單元,用于從所述特征規(guī)則集中提取未處理的正則表達(dá)式發(fā)送給所述處理單元;合并單元,用于對(duì)所述特征規(guī)則集中各正則表達(dá)式的確定有限自動(dòng)機(jī)進(jìn)行合并處理,得到所述特征規(guī)則集的確定有限自動(dòng)機(jī)。
      10.如權(quán)利要求9所述的裝置,其特征在于,還包括: 數(shù)據(jù)包檢測(cè)單元,用于根據(jù)所述特征規(guī)則集的確定有限自動(dòng)機(jī)對(duì)數(shù)據(jù)包進(jìn)行匹配,如果得到接受狀態(tài)的匹配結(jié)果,確定所述數(shù)據(jù)包為攻擊數(shù)據(jù)包,否則,確定所述數(shù)據(jù)包為正常數(shù) 據(jù)包。
      全文摘要
      本發(fā)明公開(kāi)了一種確定有限自動(dòng)機(jī)的構(gòu)建方法及裝置,用以解決針對(duì)包含長(zhǎng)度限制的正則表達(dá)式構(gòu)建DFA時(shí)可能存在的DFA狀態(tài)爆炸問(wèn)題,同時(shí)實(shí)現(xiàn)DFA的存儲(chǔ)空間壓縮及匹配加速。確定有限自動(dòng)機(jī)的構(gòu)建方法,包括針對(duì)特征規(guī)則集中包含長(zhǎng)度限制的正則表達(dá)式,按照長(zhǎng)度限制的出現(xiàn)位置進(jìn)行分割與合并處理,將所述正則表達(dá)式的頭尾部和長(zhǎng)度限制部分相分離;構(gòu)建所述正則表達(dá)式的確定有限自動(dòng)機(jī),其中,所述正則表達(dá)式的確定有限自動(dòng)機(jī)對(duì)所述長(zhǎng)度限制部分使用跳躍策略調(diào)整匹配順序,頭尾部匹配完成之后使用計(jì)數(shù)策略對(duì)所述長(zhǎng)度限制部分進(jìn)行驗(yàn)證。
      文檔編號(hào)H04L12/24GK103166802SQ201110412829
      公開(kāi)日2013年6月19日 申請(qǐng)日期2011年12月12日 優(yōu)先權(quán)日2011年12月12日
      發(fā)明者曾彬, 王煥云, 張大方, 吳達(dá)志 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)湖南有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1