亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

模式檢測的相關(guān)改進(jìn)的制作方法

文檔序號(hào):6456494閱讀:216來源:國知局
專利名稱:模式檢測的相關(guān)改進(jìn)的制作方法
模式檢測的相關(guān)改進(jìn) 本發(fā)明涉及模式檢測。
在許多應(yīng)用中期望有檢測信息中的模式的能力。這些應(yīng)用包括串匹 配,在串匹配中,選擇特定的模式或串并在信息中搜索匹配的模式或串。 這在許多領(lǐng)域都有應(yīng)用,例如文件檢索、記錄檢索、安全性(例如,可在 數(shù)據(jù)或語音消息搜索包括特殊的詞或詞序列的模式的情況)。其他使用模
式?jīng)_企測的應(yīng)用包括生物學(xué)的應(yīng)用,比如DNA測序,以及電信業(yè)中的各種 應(yīng)用,比如正則表達(dá)式處理、IP包分類和深度包纟企查(deep packet inspection)。在后一應(yīng)用中,可在包中檢查是否存在例如在惡意內(nèi)容比如 病毒或蠕蟲中發(fā)現(xiàn)的模式。
模式檢測應(yīng)用得如此廣泛,以至于一直在尋求檢測的改進(jìn),例如檢測 的速度的改進(jìn)。
根據(jù)本發(fā)明的第 一方面,提供了 一種在多個(gè)數(shù)據(jù)塊中檢測模式的方 法,包括
生成包括一組被選模式中的模式的第 一子集的第 一數(shù)據(jù)庫,
生成包括所述一組被選模式中的剩余模式的第二子集的第二數(shù)據(jù)庫,
接收所述多個(gè)數(shù)據(jù)塊,且對(duì)每個(gè)數(shù)據(jù)塊,
使用數(shù)據(jù)塊和Hash函數(shù)(散列函數(shù))來生成關(guān)鍵碼(key),
使用所述關(guān)鍵碼來搜索所述第 一數(shù)據(jù)庫,
定位第一數(shù)據(jù)庫的相應(yīng)于所述關(guān)鍵碼的登記項(xiàng)(entry),
讀取包括零或生成所述關(guān)鍵碼的被選模式的登記項(xiàng)的內(nèi)容,
如果所述登記項(xiàng)的內(nèi)容包括零,則確定所述數(shù)據(jù)塊不包括被選^^莫式, 并輸出指示所述數(shù)據(jù)塊不包括被選模式的第一輸出,或者如果所述登記項(xiàng)的內(nèi)容包括被選模式,則確定所述數(shù)據(jù)塊包括所述被 選模式,并輸出指示所述數(shù)據(jù)塊包括所述被選模式的第一輸出,或者
確定所述數(shù)據(jù)塊不包括所述被選模式,并輸出指示所述數(shù)據(jù)塊不包括 所述被選模式的第一輸出,以及
使用內(nèi)容可尋址存儲(chǔ)器(CAM)比較所述數(shù)據(jù)塊與所述第二數(shù)據(jù)庫,
確定所述數(shù)據(jù)塊匹配所述第二數(shù)據(jù)庫中的被選模式,并輸出指示所述 數(shù)據(jù)塊包括所述被選模式的第二輸出,或者
確定所述數(shù)據(jù)塊不匹配所述第二數(shù)據(jù)庫中的被選模式,并輸出指示所 述數(shù)據(jù)塊不包括被選模式的第二輸出,
組合所述第一輸出和所述第二輸出,且如果任一輸出指示所述數(shù)據(jù)塊
包括被選模式,則輸出指示所述數(shù)據(jù)塊包括所述被選模式的標(biāo)志(flag)。
生成包括一組被選模式中的模式的第 一子集的第 一數(shù)據(jù)庫,可包括確
定每個(gè)可能的數(shù)據(jù)塊,使用每個(gè)可能的數(shù)據(jù)塊和Hash函數(shù)來生成多個(gè)關(guān) 鍵碼,比較生成關(guān)鍵碼的數(shù)據(jù)塊或每個(gè)數(shù)據(jù)塊與所述一組被選模式,且如 果所述數(shù)據(jù)塊或每個(gè)數(shù)據(jù)塊不包括被選模式,則生成所述第一數(shù)據(jù)庫的包 括所述關(guān)鍵碼和零的登記項(xiàng),或者如果數(shù)據(jù)塊或任何的數(shù)據(jù)塊包括被選模 式,則生成所述第一數(shù)據(jù)庫的包括關(guān)鍵碼、包括被選模式的數(shù)據(jù)塊或數(shù)據(jù) 塊中的一個(gè)數(shù)據(jù)塊、以及數(shù)據(jù)塊的標(biāo)識(shí)符(ID)的登記項(xiàng)。
生成包括所述一組被選模式中的剩余模式的第二子集的第二數(shù)據(jù)庫, 可包括生成第二數(shù)據(jù)庫的登記項(xiàng),其包括包含沒有存儲(chǔ)在第 一數(shù)據(jù)庫的登 記項(xiàng)中的被選模式的每一個(gè)數(shù)據(jù)塊。
生成關(guān)鍵碼可包括生成相對(duì)于數(shù)據(jù)塊被壓縮的關(guān)鍵碼。生成壓縮的關(guān) 鍵碼導(dǎo)致對(duì)內(nèi)存的要求降低。
確定數(shù)據(jù)塊包括或不包括被選模式的步驟,可包括比較所述數(shù)據(jù)塊與 所述被選模式,以確定它們之間的匹配是否出現(xiàn)。
組合第 一輸出和第二輸出可包括復(fù)用輸出。
本方法可用于檢測在數(shù)據(jù)塊的任何位置開始的模式。本方法可用于檢測具有不同長度的被選模式。
根據(jù)本發(fā)明的第二方面,提供了 一種用于在多個(gè)數(shù)據(jù)塊中檢測模式的 模式檢測電路,包括
多個(gè)Hash模塊(散列模塊),每個(gè)Hash模塊都包括包含一組被選模 式中的模式的第 一子集的第 一數(shù)據(jù)庫,其中每個(gè)Hash模塊接收多個(gè)數(shù)據(jù) 塊,且對(duì)每個(gè)數(shù)據(jù)塊,
使用數(shù)據(jù)塊和Hash函數(shù)來生成關(guān)鍵碼,
使用所述關(guān)鍵碼來搜索第 一數(shù)據(jù)庫,
定位第 一數(shù)據(jù)庫的相應(yīng)于所述關(guān)鍵碼的登記項(xiàng),
讀取所述登記項(xiàng)的內(nèi)容,其包括零或生成所述關(guān)鍵碼的被選模式,
如果登記項(xiàng)的內(nèi)容包括零,則確定數(shù)據(jù)塊不包括被選模式,并輸出指 示數(shù)據(jù)塊不包括被選模式的第一輸出,或者
如果登記項(xiàng)的內(nèi)容包括被選模式,則確定數(shù)據(jù)塊包括被選模式,并輸 出指示數(shù)據(jù)塊包括被選模式的第一輸出,或者
確定數(shù)據(jù)塊不包括被選模式,并輸出指示數(shù)據(jù)塊不包括被選模式的第 一輸出,以及
多個(gè)CAM模塊,每個(gè)CAM模塊包括包含所述一組被選模式中的剩 余模式的第二子集的第二數(shù)據(jù)庫,
其中每個(gè)CAM模塊接收多個(gè)數(shù)據(jù)塊,且對(duì)每個(gè)數(shù)據(jù)塊,
比較數(shù)據(jù)塊與所述第二數(shù)據(jù)庫,
確定數(shù)據(jù)塊匹配第二數(shù)據(jù)庫中的被選模式,并輸出指示數(shù)據(jù)塊包括被 選模式的第二輸出,或者
確定數(shù)據(jù)塊不匹配第二數(shù)據(jù)庫中的被選模式,并輸出指示數(shù)據(jù)塊不包 括被選沖莫式的第二輸出,以及
組合器模塊,其組合第一輸出和第二輸出,以及如果任一輸出指示所 述數(shù)據(jù)塊包括被選模式,則輸出指示數(shù)據(jù)塊包括被選模式的標(biāo)志。
9每個(gè)Hash模塊可包括RAM裝置。每個(gè)RAM裝置可存儲(chǔ)第一數(shù)據(jù) 庫。關(guān)鍵碼可用于通過將所述關(guān)鍵碼用作地址來搜索被指派給RAM裝置 的多個(gè)存儲(chǔ)單元(memory location)的地址,來搜索RAM裝置的第一數(shù)據(jù)庫。
每個(gè)Hash模塊可包括多個(gè)Hash裝置,所述多個(gè)Hash裝置中的每一 個(gè)Hash裝置使用數(shù)據(jù)塊和Hash函數(shù)來生成關(guān)鍵碼。
每個(gè)CAM模塊可包括多個(gè)CAM單元。每個(gè)CAM單元可存儲(chǔ)包括 第二數(shù)據(jù)庫的模式的數(shù)據(jù)塊。每個(gè)CAM單元都可包括多個(gè)比較器,所述 多個(gè)比較器中的每一個(gè)比較器比較接收到的數(shù)據(jù)塊與存儲(chǔ)在CAM單元 中的數(shù)據(jù)塊。
組合器模塊可包括復(fù)用器。
所述模式檢測電路可檢測在數(shù)據(jù)塊的任何位置開始的模式。所述模式 檢測電路可包括多個(gè)Hash裝置和多個(gè)CAM比較器,第一數(shù)據(jù)塊可輸入 到第一 Hash裝置中并輸入到第一 CAM比較器中,相對(duì)于所述第一數(shù)據(jù) 塊移位的第二數(shù)據(jù)塊可輸入到第二 Hash裝置中并輸入到第二 CAM比較 器中,等等。第二數(shù)據(jù)塊相對(duì)于第一數(shù)據(jù)塊可移位塊的一個(gè)或更多的位置。 例如,第一數(shù)據(jù)塊和第二數(shù)據(jù)塊可包括位或字節(jié),而第二數(shù)據(jù)塊相對(duì)于第 一數(shù)據(jù)塊可移位包括塊的一個(gè)或更多的位或字節(jié)的一個(gè)或更多的位置。這 允許檢測在數(shù)據(jù)塊中任何位置開始的模式。
模式檢測電路可包括多個(gè)部分,第一部分檢測長度為n的模式,第二 部分檢測長度為n-1的模式,第三部分檢測長度為n-2的模式,等等。
被選模式將包括多個(gè)模式,希望在數(shù)據(jù)塊中檢測到這些模式的存在。 被選才莫式可包括任何的全部或部分詞語,或全部或部分串,或全部或部分 DNA序列,或惡意內(nèi)容的特4正(signature )或特4正^: ( signature segment )。
應(yīng)理解,術(shù)語"模式"用于描述任何字符或任何數(shù)量字符,且并不限于 表示具有重復(fù)性的一定數(shù)量的字符。
現(xiàn)在將僅以舉例的方式,參考附圖,描述本發(fā)明的實(shí)施方式,其中


圖1是根據(jù)本發(fā)明的模式檢測電路的圖示,所述模式檢測電路包括Hash模塊和CAM模塊,
圖2是圖1的Hash模塊的部分的圖示,
圖3是圖1的CAM模塊的部分的圖示,以及
圖4是包括本發(fā)明的特征檢測電路的深度包檢查系統(tǒng)的圖示。
在所描述的實(shí)施方式中,被選模式包括惡意內(nèi)容的特征或特征段。然 而,應(yīng)認(rèn)識(shí)到,這只是示例性的,且本發(fā)明可應(yīng)用于許多模式類型的檢觀'J。
圖1顯示了模式或特征檢測電路1,其包括輸入寄存器IO、 Hash模 塊12、內(nèi)容可尋址存儲(chǔ)器(CAM)模塊14、多個(gè)復(fù)用器16以及多個(gè)輸 出寄存器18。在此實(shí)施方式中,特征檢測電路形成通信網(wǎng)絡(luò)的深度包檢 查(DPI)系統(tǒng)的部分,并接收在多個(gè)實(shí)體間通信的數(shù)據(jù)。數(shù)據(jù)被格式化 為包,每個(gè)包包括首部和有效負(fù)載。有可能任何包的有效負(fù)載可包含惡意 內(nèi)容,比如病毒或蠕蟲。特征檢測電路1檢驗(yàn)數(shù)據(jù),并向DPI系統(tǒng)標(biāo)記 在該數(shù)據(jù)中發(fā)現(xiàn)的任何惡意內(nèi)容。諸如病毒的惡意內(nèi)容一般每一個(gè)都包括 獨(dú)特的標(biāo)識(shí)符或特征。到目前為止,具有相應(yīng)的有限數(shù)目的特征的有限數(shù) 目的病毒等是已知的。本發(fā)明的特征檢測電路1通過尋找這些特征來檢驗(yàn) 網(wǎng)絡(luò)中的凄t據(jù)是否有惡意內(nèi)容。
在此實(shí)施方式中,網(wǎng)絡(luò)數(shù)據(jù)被輸入到特征檢測電路1的輸入寄存器 10中,并由此輸出且由該電路處理為一系列的4字節(jié)數(shù)據(jù)塊。然而,應(yīng) 認(rèn)識(shí)到,可以使用其他的數(shù)據(jù)塊大小,例如8字節(jié)數(shù)據(jù)塊或16字節(jié)數(shù)據(jù) 塊。惡意內(nèi)容的每個(gè)特征通常將包括例如1、 2、 3、 4、 6、 8、 12、 14、 16、 24個(gè)等一定數(shù)量的字節(jié)。因此,每個(gè)特征將散布在從輸入寄存器10 輸出的一個(gè)或更多的數(shù)據(jù)塊中。當(dāng)將被檢測的特征的長度小于數(shù)據(jù)塊的長 度(即在此實(shí)施方式中,小于4字節(jié))時(shí),特征檢測電路將檢查接收到的 數(shù)據(jù)塊的完整特征。當(dāng)將被檢測的特征的長度大于數(shù)據(jù)塊的長度(即在此 實(shí)施方式中,大于4字節(jié))時(shí),也是大多數(shù)的情況時(shí),特征檢測電路將檢 查接收到的數(shù)據(jù)塊的特征段。關(guān)于被檢測到的特征或特征段的信息從特征 檢測電路l輸出,且在特征段的情況下,上述信息可被整理(collate )。
特征或第 一特征段可在網(wǎng)絡(luò)數(shù)據(jù)中的多個(gè)位置開始。這通過以下方式而被考慮配置特征檢測電路1以處理相對(duì)于第一數(shù)據(jù)塊而移位(或偏移) 的例如移位一個(gè)或更多的字節(jié)的數(shù)據(jù)塊。在此實(shí)施方式中,特征檢測電路
1通過將4字節(jié)的數(shù)據(jù)塊例如xl 、 x2、 x3和x4 (移位=0 )輸入到Hash 模塊12的第一 Hash裝置中,并還輸入到CAM模塊14的第一 CAM比 較器中而處理婆史據(jù)。移位l個(gè)字節(jié)即x2, x3, x4和x5的4字節(jié)下一凄t據(jù) 塊,被輸入到Hash模塊12的第二 Hash裝置中,并還輸入到CAM模塊 14的第二 CAM比較器中,對(duì)于Hash模塊12的每個(gè)Hash裝置和CAM 模塊14的CAM比較器,依此類推。Hash模塊12和CAM模塊14均檢 驗(yàn)數(shù)據(jù)塊的惡意內(nèi)容。這些模塊的輸出由多個(gè)復(fù)用器16接收,而在數(shù)據(jù) 塊中發(fā)現(xiàn)的任何惡意內(nèi)容的細(xì)節(jié)由復(fù)用器16輸出到多個(gè)輸出寄存器18, 并從這些輸出寄存器輸出到通信網(wǎng)絡(luò)。
現(xiàn)將更詳細(xì)地描述特征檢測電路1的此實(shí)施方式的元件的功能。
圖2詳細(xì)示出了 Hash才莫塊12的一部分。這包括第一到第四Hash裝 置20、第一到第四寄存器22、復(fù)用器24、 RAM裝置26、第一到第四寄 存器28以及第一到第四比較器30。將被檢驗(yàn)惡意內(nèi)容的網(wǎng)絡(luò)數(shù)據(jù)以4字 節(jié)的塊由Hash裝置20的每一個(gè)4妻收,如所示出的。
每個(gè)Hash裝置以相同的方式工作,其基本的Hash函數(shù)是接收4字 節(jié)(32位)數(shù)據(jù)塊,并生成關(guān)鍵碼,所述關(guān)鍵碼的值決定于數(shù)據(jù)塊的值, 且該關(guān)鍵:碼相對(duì)于數(shù)據(jù)塊是被壓縮的,即包括少于32位。在此實(shí)施方式 中,由Hash裝置生成的每個(gè)關(guān)鍵碼具有12位的長度。然而,應(yīng)認(rèn)識(shí)到, 可能生成不是12 (但小于32)位大小的關(guān)鍵碼。
使用Hash函數(shù)很可能造成兩個(gè)或更多不同的數(shù)據(jù)塊將生成相同的關(guān) 鍵碼。例如,五個(gè)不同的數(shù)據(jù)塊,其中三個(gè)包含惡意內(nèi)容,而其中兩個(gè)不 包含惡意內(nèi)容,可能生成相同的關(guān)鍵碼。這種情況稱為沖突(collision)。
當(dāng)已經(jīng)確定了將在Hash裝置中使用的特定的Hash函數(shù)時(shí),軟件模 塊使用Hash函數(shù)生成關(guān)鍵碼,用于每一可能的32位數(shù)據(jù)塊。這允許繪 制一表,各關(guān)鍵碼都具有登記項(xiàng),包括關(guān)鍵碼的值以及零或生成關(guān)鍵碼的 數(shù)據(jù)塊。如果關(guān)鍵碼由一個(gè)或更多的數(shù)據(jù)塊生成且每個(gè)數(shù)據(jù)塊都不包含惡 意內(nèi)容,則關(guān)鍵碼的登記項(xiàng)包括關(guān)鍵碼值和零。如果關(guān)鍵碼由一個(gè)或更多的數(shù)據(jù)塊生成,且每個(gè)數(shù)據(jù)塊都由已知特征中的一個(gè)特征組成或包括已知 特征中的一個(gè)特征的段(即包含惡意內(nèi)容),則關(guān)鍵碼的登記項(xiàng)包括關(guān)鍵碼 值和數(shù)據(jù)塊或數(shù)據(jù)塊中的每一個(gè),即特征或特征段,或特征或特征段中的 每一個(gè)特征或特征段。數(shù)據(jù)塊或數(shù)據(jù)塊中的每一個(gè)的特征ID或特征段ID,
無"i侖哪個(gè)是合適的,也都添加到關(guān)^t碼的登記項(xiàng),其使用將在下面進(jìn)行描 述。如果關(guān)鍵碼由這樣的數(shù)據(jù)塊生成,即數(shù)據(jù)塊中的一個(gè)或更多個(gè)數(shù)據(jù) 塊由已知特征中的一個(gè)特征組成或包括已知特征中的一個(gè)特征的段,即包 含惡意內(nèi)容,而數(shù)據(jù)塊中的一個(gè)或更多的數(shù)據(jù)塊不包含惡意內(nèi)容,則關(guān)鍵 碼的登記項(xiàng)包括關(guān)鍵碼值和包含惡意內(nèi)容的數(shù)據(jù)塊或數(shù)據(jù)塊中的每一個(gè), 以及數(shù)據(jù)塊或這些數(shù)據(jù)塊中的每一個(gè)的特征ID或特征段ID,惡意內(nèi)容即 特征或特征段,或特征或特征段中的每一個(gè)特征或特征段。因此,由于使 用Hash函數(shù)而造成的沖突是顯著的。
所述表隨后用于配置Hash模塊12的RAM裝置26。 RAM裝置26 包括多個(gè)存儲(chǔ)單元。每個(gè)存儲(chǔ)單元都被指派地址和內(nèi)容,所述地址具有等 于關(guān)鍵碼中的 一個(gè)關(guān)鍵碼的值,所述內(nèi)容包括零或生成該關(guān)鍵碼的一個(gè)數(shù) 據(jù)塊,如下所示。如果關(guān)鍵碼由一個(gè)或更多的數(shù)據(jù)塊生成且每個(gè)數(shù)據(jù)塊都 不包含惡意內(nèi)容,則該關(guān)鍵碼的存儲(chǔ)單元的內(nèi)容包括零。如果關(guān)鍵碼由一 個(gè)或更多的數(shù)據(jù)塊生成,且每個(gè)數(shù)據(jù)塊都由已知特征中的一個(gè)特征組成或 包括已知特征中的一個(gè)特征的段(即包含惡意內(nèi)容),則該關(guān)鍵碼的存儲(chǔ) 單元的內(nèi)容包括數(shù)據(jù)塊或數(shù)據(jù)塊中的一個(gè)數(shù)據(jù)塊,即特征或特征段,或特 征或特征段中的一個(gè)特征或特征段,以及特征ID或特征段ID。如果關(guān)鍵 碼由這樣的數(shù)據(jù)塊生成,即數(shù)據(jù)塊中的一個(gè)或更多個(gè)數(shù)據(jù)塊由已知特征 中的一個(gè)特征組成或包括已知特征中的一個(gè)特征的段,即包含惡意內(nèi)容, 而數(shù)據(jù)塊中的一個(gè)或更多的數(shù)據(jù)塊不包含惡意內(nèi)容,則該關(guān)鍵碼的存儲(chǔ)單 元的內(nèi)容包括包含惡意內(nèi)容的數(shù)據(jù)塊或數(shù)據(jù)塊中的一個(gè)數(shù)據(jù)塊,即特征或 特征段,或特征或特征段中的一個(gè)特征或特征段,以及特征/特征段ID。 從后兩種情況可注意到,當(dāng)包含惡意內(nèi)容的多個(gè)數(shù)據(jù)塊生成相同的關(guān)鍵碼 時(shí),數(shù)據(jù)塊中的僅一個(gè)數(shù)據(jù)塊,即特征/特征段,被選擇用于RAM裝置 的存儲(chǔ)單元的登記項(xiàng)。剩余的包含惡意內(nèi)容的數(shù)據(jù)塊被用來配置CAM模 塊14,如下所述。
13RAM裝置26具有用于每個(gè)不同的關(guān)鍵碼值的存儲(chǔ)單元,并因此包 括等于可能的關(guān)鍵碼的數(shù)量的 一定數(shù)量的存儲(chǔ)單元。每個(gè)關(guān)鍵碼都包括
12位。因此有212個(gè)可能的關(guān)鍵碼值。因此RAM裝置26包括212存儲(chǔ)單 元。每個(gè)關(guān)鍵碼與生成其的數(shù)據(jù)塊相比是壓縮的,即與32位的數(shù)據(jù)塊相 對(duì)照,每個(gè)關(guān)鍵碼只包括12位。與如果每個(gè)關(guān)鍵碼包括32位則需要232 個(gè)存儲(chǔ)單元相對(duì)照,這導(dǎo)致只需要2U個(gè)存儲(chǔ)單元的RAM裝置26。因此, 使用Hash裝置壓縮輸入到特征檢測電路l的數(shù)據(jù)允許極大地降低對(duì)RAM 裝置26的存儲(chǔ)要求。
在操作中,Hash裝置每個(gè)都接收數(shù)據(jù)塊,并生成關(guān)鍵碼。每個(gè)Hash 裝置向寄存器22中的一個(gè)輸出生成的關(guān)鍵碼。每個(gè)寄存器隨后向復(fù)用器 24輸出其關(guān)鍵碼。復(fù)用器24接收地址輸入(未顯示),該地址輸入將使 復(fù)用器24依次接收其四個(gè)輸入的每一個(gè)上的關(guān)鍵碼,并依次向RAM裝 置26輸出關(guān)鍵碼。
RAM裝置26依次接收關(guān)鍵碼。每個(gè)關(guān)鍵碼被用作為存儲(chǔ)單元地址, 即關(guān)4走碼的值與RAM裝置26的存儲(chǔ)單元的地址比較,直到找到地址值 匹配關(guān)鍵碼值的存儲(chǔ)單元為止。在找到RAM裝置26的匹配的存儲(chǔ)單元 后,讀取該匹配的存儲(chǔ)單元的內(nèi)容。存儲(chǔ)單元的內(nèi)容將包括零,或?qū)?包含惡意內(nèi)容即特征或特征段的數(shù)據(jù)塊以及特征/特征段ID。在此實(shí)施方 式中,因?yàn)閿?shù)據(jù)塊是32位長,因此,特征或特征段是32位長,特征/特 征段ID的長度被選擇為12位。
RAM裝置26依次向寄存器28的第一個(gè)寄存器,然后向第二個(gè)寄存 器,然后向第三個(gè)寄存器,然后向第四個(gè)寄存器輸出被尋址的存儲(chǔ)單元的 內(nèi)容。寄存器28的每一個(gè)都向特征檢測電路1的復(fù)用器16 (見圖1 )輸 出其接收的存儲(chǔ)單元內(nèi)容的零或12位特征/特征段ID部分,用于與CAM 模塊14的輸出比較,如下所述。
寄存器28的每一個(gè)也向比較器30中的一個(gè)比較器輸出其接收的存儲(chǔ) 單元內(nèi)容的32位特征/特征段部分,如所示。每個(gè)比較器接收兩個(gè)輸入, 原始數(shù)據(jù)塊(通過延遲提供,如所示出的)和由使用相同的數(shù)據(jù)塊生成的 關(guān)鍵碼而產(chǎn)生的存儲(chǔ)單元的內(nèi)容的32位特征/特征段部分。每個(gè)比較器比較原始數(shù)據(jù)塊的值與存儲(chǔ)單元內(nèi)容的32位特征/特征段部分的值,并如果 發(fā)現(xiàn)這些值是相同的,則輸出匹配標(biāo)志,該匹配標(biāo)志指示已經(jīng)找到惡意內(nèi)容。
根據(jù)上述特征檢測電路的操作,如果數(shù)據(jù)塊不包含惡意內(nèi)容,即不包 括特征也不包含特征段,則數(shù)據(jù)塊生成的關(guān)鍵碼將產(chǎn)生零存儲(chǔ)單元內(nèi)容 (當(dāng)關(guān)鍵碼由不包含惡意內(nèi)容的一個(gè)或更多的數(shù)據(jù)塊生成時(shí)),或產(chǎn)生包
括32位特征/特征段的存儲(chǔ)單元內(nèi)容(當(dāng)關(guān)鍵碼由不包含惡意內(nèi)容的一個(gè) 或更多的數(shù)據(jù)塊和包含惡意內(nèi)容的一個(gè)或更多的數(shù)據(jù)塊生成時(shí))。在任一 情況下,存儲(chǔ)單元內(nèi)容的32位特征/特征段與原始數(shù)據(jù)塊的比較都將導(dǎo)致 發(fā)現(xiàn)它們不是相同的,且不會(huì)生成匹配標(biāo)志,即電路指示在該數(shù)據(jù)塊中沒 有發(fā)現(xiàn)惡意內(nèi)容。如果數(shù)據(jù)塊包含惡意內(nèi)容,即包括特征或包含特征段, 則該數(shù)據(jù)塊生成的關(guān)鍵碼將產(chǎn)生包括等于該數(shù)據(jù)塊的特征/特征段的32 位特征/特征段的存儲(chǔ)單元內(nèi)容(當(dāng)關(guān)鍵碼由包含惡意內(nèi)容的一個(gè)或更多 的數(shù)據(jù)塊生成,且此數(shù)據(jù)塊被選作進(jìn)入RAM裝置的登記項(xiàng)時(shí)),或產(chǎn)生 包括不等于該數(shù)據(jù)塊的特征/特征段的32位特征/特征段的存儲(chǔ)單元內(nèi)容 (當(dāng)關(guān)鍵碼由包含惡意內(nèi)容的一個(gè)或更多的數(shù)據(jù)塊生成,且此數(shù)據(jù)塊未被 選作進(jìn)入RAM裝置的登記項(xiàng)時(shí))。在第一種情況下,存儲(chǔ)單元內(nèi)容的32 位特征/特征段與原始數(shù)據(jù)塊的比較將導(dǎo)致發(fā)現(xiàn)它們是相同的,且將生成 匹配標(biāo)志,即系統(tǒng)指示已經(jīng)在數(shù)據(jù)塊中發(fā)現(xiàn)惡意內(nèi)容。在第二種情況下, 存儲(chǔ)單元內(nèi)容的32位特征/特征段與原始數(shù)據(jù)塊的比較將導(dǎo)致發(fā)現(xiàn)它們 不是相同的,且不會(huì)生成匹配標(biāo)志,即系統(tǒng)指示在該數(shù)據(jù)塊中沒有發(fā)現(xiàn)惡 意內(nèi)容。這不是正確的指示,但此情況通過使用CAM模塊14而被考慮 進(jìn)來,如下所述。
圖2所示的Hash裝置等只包括特征檢測電路1的實(shí)際Hash模塊12 的第一部分。Hash模塊12的此第一部分能夠檢測長度為4字節(jié)的特征或 特征段。Hash模塊12進(jìn)一步包括第二部分,該第二部分能夠通過在三個(gè) 最高有效字節(jié)中具有可能的特征數(shù)據(jù)而在剩余字節(jié)中具有'通配符,數(shù)據(jù) 的4字節(jié)數(shù)據(jù)塊中尋找特征/特征段,檢測長度為3字節(jié)的特征或特征段。 Hash模塊12進(jìn)一步包括第三部分,該第三部分能夠通過在兩個(gè)最高有效字節(jié)中具有可能的特征數(shù)據(jù)而在剩余字節(jié)中具有'通配符,數(shù)據(jù)的4字節(jié)數(shù)
據(jù)塊中尋找特征/特征段,檢測長度為2字節(jié)的特征或特征段。Hash模塊 12進(jìn)一步包括第四部分,該第四部分能夠檢測長度為1字節(jié)的特征或特 征段。Hash模塊的第二和第三部分包括與第一部分相同的元件,并以相 同的方式起作用。Hash模塊的第四部分包括簡單的RAM裝置,其能夠 提供足夠的內(nèi)存,以檢測長度為1字節(jié)的特征或特征段,而沒有過度的硬 件要求。輸入到如上所述的Hash模塊的第一部分的數(shù)據(jù)塊,也輸入到 Hash模塊的第二部分、第三部分和第四部分。Hash模塊12的這樣的安 排,允許其用于檢測可變長度的特征或特征段。例如,如果將被檢測的特 征的長度為4字節(jié),則這被提供給Hash模塊的所有部分,且完整特征能 夠由Hash模塊12的第一部分纟企測,而不被其他部分檢測。如果將被檢 測的特征的長度為2字節(jié),則這被提供給Hash模塊的所有部分,且完整 特征能夠由Hash模塊12的第三部分檢測,而不被其他部分檢測。如果 將被;險(xiǎn)測的特征的長度為6字節(jié),因?yàn)樘峁┙oHash模塊的部分的數(shù)據(jù)塊 的長度為4字節(jié),包括所述特征的前4個(gè)最高有效字節(jié)的特征段被提供給 Hash模塊的所有部分,且此特征段能夠由Hash模塊12的第一部分檢測, 而不被其他部分檢測,以及包括所述特征的剩余2字節(jié)的特征段和輸入數(shù) 據(jù)的下一個(gè)2字節(jié)被提供給Hash模塊的所有部分,且此特征段能夠由 Hash模塊12的第三部分檢測,而不被其他部分檢測。這樣,兩個(gè)特征段 都可由Hash模塊12檢測,并從那里輸出。這兩個(gè)特征段可隨后被整理, 以允許產(chǎn)生指示已經(jīng)檢測到惡意內(nèi)容的標(biāo)志。
如上所述,由于Hash函數(shù)用于檢測惡意內(nèi)容,則很可能會(huì)出現(xiàn)沖突, 即兩個(gè)或更多不同的數(shù)據(jù)塊生成相同的關(guān)鍵碼。確定用于Hash裝置的 Hash函數(shù)中出現(xiàn)的沖突,并相應(yīng)地配置RAM裝置26。當(dāng)不包含惡意內(nèi) 容的數(shù)據(jù)塊和包含惡意內(nèi)容的數(shù)據(jù)塊每個(gè)都產(chǎn)生相同的關(guān)鍵碼時(shí),這對(duì)特 征檢測電路1檢測惡意內(nèi)容沒有影響。這種情況下,RAM裝置26將被 配置成使得地址等于關(guān)鍵碼的存儲(chǔ)單元具有包括包含惡意內(nèi)容的數(shù)據(jù)塊 的細(xì)節(jié)的內(nèi)容,且將為包含惡意內(nèi)容的數(shù)據(jù)塊生成匹配標(biāo)志。然而,當(dāng)每 個(gè)都包含惡意內(nèi)容的兩個(gè)或更多數(shù)據(jù)塊每個(gè)都產(chǎn)生相同的關(guān)鍵碼時(shí),這可 能影響特征檢測電路1對(duì)惡意內(nèi)容的檢測。這種情況下,RAM裝置26將被配置成使得地址等于關(guān)鍵碼的存儲(chǔ)單元具有只包括包含惡意內(nèi)容的 數(shù)據(jù)塊中的一個(gè)數(shù)據(jù)塊的內(nèi)容。如以上所詳述的,這可導(dǎo)致對(duì)事實(shí)上包含
惡意內(nèi)容的數(shù)據(jù)塊并不生成匹配標(biāo)志。通過CAM模塊14將這種情況考 慮進(jìn)來。
圖3中示出了 CAM模塊14的部分。其包括多個(gè)CAM單元(cell) 40、多個(gè)解碼器42、多個(gè)寄存器44、復(fù)用器46、 RAM裝置48和多個(gè)寄 存器50。每個(gè)CAM單元包括內(nèi)容寄存器和多個(gè)比較器。
CAM單元被定制成處理包含惡意內(nèi)容的兩個(gè)或更多數(shù)據(jù)塊的沖突。 如上所述,由軟件模塊確定造成這種沖突的數(shù)據(jù)塊。數(shù)據(jù)塊之一被選擇用 于模塊12的RAM裝置26的存儲(chǔ)單元中的登記項(xiàng)(且因而如果等于此被 選擇的數(shù)據(jù)塊的數(shù)據(jù)塊輸入到特征檢測電路,則將檢測到它的惡意內(nèi)容)。 剩余的數(shù)據(jù)塊通過使用一個(gè)或更多的CAM單元而被考慮進(jìn)來。CAM單 元被定制成通過將數(shù)據(jù)塊存儲(chǔ)在CAM單元的內(nèi)容寄存器中而將一個(gè)這 樣的數(shù)據(jù)塊考慮進(jìn)來。因此CAM模塊14將包括k個(gè)CAM單元,其中k 等于沒有被選擇用于儲(chǔ)存在Hash模塊12的RAM裝置26的包含惡意內(nèi) 容的數(shù)據(jù)塊的數(shù)量。
每個(gè)CAM單元包括四個(gè)比較器。對(duì)于每個(gè)CAM單元,每個(gè)比較器 都接收網(wǎng)絡(luò)數(shù)據(jù)的輸入數(shù)據(jù)塊,所述輸入數(shù)據(jù)塊如之前所詳述的已相對(duì)于 第一數(shù)據(jù)塊移位。對(duì)于每個(gè)CAM單元,每個(gè)比較器還接收存儲(chǔ)在CAM 單元的內(nèi)容寄存器中的數(shù)據(jù)塊。每個(gè)比較器比較輸入數(shù)據(jù)塊與內(nèi)容寄存器 數(shù)據(jù)塊,并在它們不相同的情況下,輸出等于0的匹配,或在它們相同的 情況下,輸出等于1的匹配。在后一情況下,這意味著輸入數(shù)據(jù)塊包含惡 意內(nèi)容(即特征或特征段),其與導(dǎo)致沖突的包含惡意內(nèi)容的數(shù)據(jù)塊中的 一個(gè)數(shù)據(jù)塊相同。每個(gè)CAM單元的第一比較器的輸出被輸入到第一解碼 器,每個(gè)CAM單元的第二比較器的輸出被輸入到第二解碼器,等等,如 所顯示的。對(duì)解碼器接收的每個(gè)等于1的匹配,解碼器確定CAM單元的 標(biāo)識(shí)(identity)以及確定輸出該匹配的CAM單元的比較器的標(biāo)識(shí),并輸 出指示匹配的起源位置的二進(jìn)制值。對(duì)解碼器接收的每個(gè)等于0的匹配, 解碼器輸出二進(jìn)制值零。
17每個(gè)解碼器向寄存器42的一個(gè)寄存器輸出二進(jìn)制位置值和零值,如
所顯示的。每個(gè)寄存器隨后向復(fù)用器44輸出其二進(jìn)制位置值和零值。復(fù) 用器44接收地址輸入(未顯示),該地址輸入使復(fù)用器依次在其四個(gè)輸入 的每個(gè)輸入上接收二進(jìn)制位置值或零值,并向RAM裝置48依次輸出二 進(jìn)制位值和零值。
RAM裝置48依次接收二進(jìn)制位置值和零值。每個(gè)二進(jìn)制位置值和 零值用作為存儲(chǔ)單元地址。當(dāng)接收到零值時(shí),這映射到RAM48的地址等 于零的存儲(chǔ)單元,而等于零的此存儲(chǔ)單元的內(nèi)容被輸出到寄存器50中的 一個(gè)寄存器。當(dāng)接收到二進(jìn)制位置值時(shí),這與RAM裝置48的存儲(chǔ)單元 的地址比較,直到發(fā)現(xiàn)地址匹配二進(jìn)制位置值的存儲(chǔ)單元為止。在找到 RAM裝置48的匹配存儲(chǔ)單元之后,匹配存儲(chǔ)單元的內(nèi)容被輸入到寄存 器50的一個(gè)寄存器。存儲(chǔ)單元的內(nèi)容將包括生成那個(gè)產(chǎn)生了該二進(jìn)制位 置值的匹配的數(shù)據(jù)塊的12位的特征/特征段ID。
RAM裝置48向寄存器50的第一個(gè)寄存器、隨后向第二個(gè)寄存器、 隨后向第三個(gè)寄存器、隨后向第四個(gè)寄存器依次輸出零值和12位特征/ 特征段ID。寄存器50的每個(gè)寄存器都向復(fù)用器16 (見圖l)輸出零值和 12位特征/特征段ID,用于與Hash模塊12的輸出相比較,如下所述。
與Hash模塊12 —樣,圖3示出的CAM裝置等也只包括特征檢測電 路1的實(shí)際CAM模塊14的第一部分。CAM模塊14的此第一部分能夠 檢測長度為4字節(jié)的特征或特征段。CAM模塊14進(jìn)一步包括第二部分, 該第二部分能夠通過在三個(gè)最高有效字節(jié)中具有可能的特征數(shù)據(jù)而在剩
余字節(jié)中具有'通配符,數(shù)據(jù)的4字節(jié)數(shù)據(jù)塊中尋找特征/特征段,檢測長度 為3字節(jié)的特征或特征段。CAM模塊14進(jìn)一步包括第三部分,該第三 部分能夠通過在兩個(gè)最高有效字節(jié)中具有可能的特征數(shù)據(jù)而在剩余字節(jié) 中具有'通配符,數(shù)據(jù)的4字節(jié)數(shù)據(jù)塊中尋找特征/特征段,檢測長度為2 字節(jié)的特征或特征段。CAM模塊14進(jìn)一步包括第四部分,該第四部分 能夠檢測長度為l字節(jié)的特征或特征段。CAM模塊的第二和第三部分包 括與第一部分相同的元件,并以相同的方式起作用。CAM模塊的第四部 分包括簡單的RAM裝置,其能夠提供足夠的內(nèi)存,以檢測長度為l字節(jié)的特征或特征段,而沒有過度的硬件要求。輸入到如上所述的CAM模塊
的第一部分的數(shù)據(jù)塊,也輸入到CAM模塊的第二部分、第三部分和第四 部分。CAM模塊14的這樣的安排,允許其用于檢測可變長度的特征或 特征段。例如,如果將被檢測的特征的長度為3字節(jié),則這被提供給CAM 模塊的所有部分,且完整特征能夠由CAM模塊14的第二部分檢測,而 不被其他部分檢測。如果將被檢測的特征的長度為1字節(jié),則這被提供給 CAM模塊的所有部分,且完整特征能夠由CAM模塊14的第四部分檢測, 而不被其他部分檢測。如果將被檢測的特征的長度為7字節(jié),因?yàn)樘峁┙o CAM模塊的部分的數(shù)據(jù)塊的長度為4字節(jié),包括所述特征的前4個(gè)最高 有效字節(jié)的特征段被提供給CAM模塊的所有部分,且此特征段能夠由 CAM模塊14的第一部分檢測,而不被其他部分檢測,以及包括所述特 征的剩余3字節(jié)的特征段和輸入數(shù)據(jù)的下個(gè)字節(jié)被提供給CAM模塊的所 有部分,且此特征段能夠由CAM模塊14的第二部分檢測,而不被其他 部分檢測。這樣,兩個(gè)特征段都可由CAM模塊14檢測,并從那里輸出。 這兩個(gè)特征段可隨后被整理,以允許產(chǎn)生指示已經(jīng)檢測到惡意內(nèi)容的標(biāo)
志o
對(duì)輸入到特征檢測電路1中的每個(gè)數(shù)據(jù)塊,電路的復(fù)用器16的每個(gè) 復(fù)用器都從Hash模塊12接收零值或12位特征/特征段ID,從CAM模塊 14接收零值或12位特征/特征段ID以及接收空閑信號(hào),如所顯示的。每 個(gè)復(fù)用器16如果接收到Hashl2位特征/特征段ID,則輸出Hashl2位特征 /特征段ID,或如果接收到CAM12位特征/特征段ID,則輸出CAM12位 特征/特征段ID,或如果從Hash模塊12和CAM模塊14兩者都接收到零 值,則輸出空閑信號(hào)。復(fù)用器16的輸出由寄存器18接收。寄存器的每一 個(gè)都輸出Hashl2位特征/特征段ID或CAM12位特征/特征段ID,連同輸 出指示在網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)塊中發(fā)現(xiàn)惡意內(nèi)容的標(biāo)志,或輸出空閑值。把這 些從特征檢測電路1輸出到DPI系統(tǒng),以便在那里使用。因?yàn)樘卣?特征段 ID只有12位,因此,與32位特征/特征段相對(duì)照,例如就存儲(chǔ)它們所需 的內(nèi)存方面而言,ID比特征/特征段可更容易地使用。
在此實(shí)施方式中,特征檢測電路1構(gòu)成DPI系統(tǒng)的部分,如圖4所示。DPI系統(tǒng)4妻收IP包,如在附圖的下部所顯示的。DPI系統(tǒng)處理IP包以,人 其提取有效負(fù)載,如在附圖的中部所顯示的。特征檢測電路被用來檢測有 效負(fù)載中的特征,如在附圖的上部所顯示的。這示出了,在檢測到特征段 時(shí),整理這些特征段來形成完整特征,以便確定有效負(fù)載中惡意內(nèi)容的存 在。
權(quán)利要求
1.一種方法,其用于在多個(gè)數(shù)據(jù)塊中檢測模式,所述方法包括生成包括一組被選模式中的模式的第一子集的第一數(shù)據(jù)庫,生成包括所述一組被選模式中的剩余模式的第二子集的第二數(shù)據(jù)庫,接收所述多個(gè)數(shù)據(jù)塊,且對(duì)每個(gè)數(shù)據(jù)塊,使用所述數(shù)據(jù)塊和Hash函數(shù)來生成關(guān)鍵碼,使用所述關(guān)鍵碼來搜索所述第一數(shù)據(jù)庫,定位所述第一數(shù)據(jù)庫的相應(yīng)于所述關(guān)鍵碼的登記項(xiàng),讀取所述登記項(xiàng)的內(nèi)容,所述登記項(xiàng)的內(nèi)容包括零或生成所述關(guān)鍵碼的被選模式,如果所述登記項(xiàng)的內(nèi)容包括零,則確定所述數(shù)據(jù)塊不包括被選模式,并輸出指示所述數(shù)據(jù)塊不包括被選模式的第一輸出,或者如果所述登記項(xiàng)的內(nèi)容包括被選模式,則確定所述數(shù)據(jù)塊包括所述被選模式,并輸出指示所述數(shù)據(jù)塊包括所述被選模式的第一輸出,或者確定所述數(shù)據(jù)塊不包括所述被選模式,并輸出指示所述數(shù)據(jù)塊不包括所述被選模式的第一輸出,以及使用內(nèi)容可尋址存儲(chǔ)器(CAM)比較所述數(shù)據(jù)塊與所述第二數(shù)據(jù)庫,確定所述數(shù)據(jù)塊匹配所述第二數(shù)據(jù)庫中的被選模式,并輸出指示所述數(shù)據(jù)塊包括所述被選模式的第二輸出,或者確定所述數(shù)據(jù)塊不匹配所述第二數(shù)據(jù)庫中的被選模式,并輸出指示所述數(shù)據(jù)塊不包括被選模式的第二輸出,組合所述第一輸出和所述第二輸出,且如果任一輸出指示所述數(shù)據(jù)塊包括被選模式,則輸出指示所述數(shù)據(jù)塊包括所述被選模式的標(biāo)志。
2. 如權(quán)利要求l所述的方法,其中生成包括一組被選模式中的模式的第 一子集的第 一數(shù)據(jù)庫的所述步驟包括 確定每個(gè)可能的數(shù)據(jù)塊,使用每個(gè)可能的數(shù)據(jù)塊和所述Hash函數(shù)來生成多個(gè)關(guān)鍵碼,比較生成關(guān)鍵碼的數(shù)據(jù)塊或每個(gè)數(shù)據(jù)塊與所述一組被選模式,且如果所述數(shù)據(jù)塊或每個(gè)數(shù)據(jù)塊不包括被選模式,則生成所述第 一數(shù)據(jù) 庫的包括所述關(guān)鍵碼和零的登記項(xiàng),或者如果所述數(shù)據(jù)塊或任何的數(shù)據(jù)塊包括被選模式,則生成所述第 一數(shù)據(jù) 庫的包括所述關(guān)鍵碼、包含被選模式的數(shù)據(jù)塊或數(shù)據(jù)塊中的一個(gè)數(shù)據(jù)塊、 以及數(shù)據(jù)塊的標(biāo)識(shí)符(ID)的登記項(xiàng)。
3. 如權(quán)利要求1或2所述的方法,其中生成包括所述一組被選模式 中的剩余^t式的第二子集的第二數(shù)據(jù)庫的所述步驟包括生成所述第二數(shù) 據(jù)庫的登記項(xiàng),所述第二數(shù)據(jù)庫的所述登記項(xiàng)包括包含沒有存儲(chǔ)在所述第 一數(shù)據(jù)庫的登記項(xiàng)中的被選模式的每個(gè)數(shù)據(jù)塊。
4. 如任一前述權(quán)利要求所述的方法,其中生成關(guān)鍵碼的所述步驟包 括生成相對(duì)于數(shù)據(jù)塊被壓縮的關(guān)鍵:碼。
5. 如任一前述權(quán)利要求所述的方法,其中確定所述數(shù)據(jù)塊包括或不 包括^L選^f莫式的所述步驟包括比較所述數(shù)據(jù)塊與所述被選模式以確定它 們之間的匹配是否出現(xiàn)。
6. 如任一前述權(quán)利要求所述的方法,其被用于檢測在數(shù)據(jù)塊的任何 位置開始的模式。
7. 如任一前述權(quán)利要求所述的方法,其被用于檢測具有不同長度的 被選模式。
8. 如任一前述權(quán)利要求所述的方法,其中所述被選模式包括任何的 全部或部分詞語,或全部或部分串,或全部或部分DNA序列,或惡意內(nèi) 容的特征或特征段。
9. 一種模式檢測電路,其用于在多個(gè)數(shù)據(jù)塊中檢測模式,所述電路包括多個(gè)Hash模塊,每個(gè)Hash模塊都包括包含一組被選模式中的模式 的第一子集的第一數(shù)據(jù)庫,其中每個(gè)Hash模塊接收所述多個(gè)數(shù)據(jù)塊,且 對(duì)每個(gè)數(shù)據(jù)塊,使用所述數(shù)據(jù)塊和Hash函數(shù)來生成關(guān)鍵碼,使用所述關(guān)鍵碼來搜索所述第一數(shù)據(jù)庫,定位所述第一數(shù)據(jù)庫的相應(yīng)于所述關(guān)鍵:碼的登記項(xiàng),讀取所述登記項(xiàng)的內(nèi)容,所述登記項(xiàng)的內(nèi)容包括零或生成所述 關(guān)鍵碼的被選模式,如果所述登記項(xiàng)的內(nèi)容包括零,則確定所述數(shù)據(jù)塊不包括被選 ^f莫式,并輸出指示所述數(shù)據(jù)塊不包括被選^f莫式的第一輸出,或者如果所述登記項(xiàng)的內(nèi)容包括被選模式,則確定所述數(shù)據(jù)塊包括 所述被選模式,并輸出指示所述數(shù)據(jù)塊包括所述被選模式的第 一輸 出,或者確定所述數(shù)據(jù)塊不包括所述被選模式,并輸出指示所述數(shù)據(jù)塊 不包括所述被選模式的第一輸出,多個(gè)CAM模塊,每個(gè)CAM模塊包括包含所述一組被選模式中的剩 余模式的第二子集的第二數(shù)據(jù)庫,其中每個(gè)CAM模塊接收所述多個(gè)數(shù)據(jù) 塊,且對(duì)每個(gè)數(shù)據(jù)塊,比較所述數(shù)據(jù)塊與所述第二數(shù)據(jù)庫,確定所述數(shù)據(jù)塊匹配所述第二數(shù)據(jù)庫中的被選模式,并輸出指 示所述數(shù)據(jù)塊包括所述被選模式的第二輸出,或者確定所述數(shù)據(jù)塊不匹配所述第二數(shù)據(jù)庫中的被選模式,并輸出 指示所述數(shù)據(jù)塊不包括被選模式的第二輸出,以及組合器模塊,其組合所述第一輸出和所述第二輸出,以及如果任一輸出指示所述數(shù)據(jù)塊包括被選模式,則輸出指示所述數(shù)據(jù)塊包括所述被選模 式的4示志。
10. 如權(quán)利要求9所述的電路,其中每個(gè)Hash模塊包括RAM裝置。
11. 如權(quán)利要求10所述的電路,其中每個(gè)RAM裝置存儲(chǔ)所述第一數(shù)據(jù)庫。
12. 如權(quán)利要求11所述的電路,其中關(guān)鍵碼被通過以下方式使用來 搜索RAM裝置的所述第一數(shù)據(jù)庫將所述關(guān)鍵碼用作地址來搜索被指派 給所述RAM裝置的多個(gè)存儲(chǔ)單元的地址。
13. 如權(quán)利要求9至12中任一權(quán)利要求所述的電路,其中每個(gè)Hash 模塊包括多個(gè)Hash裝置,所述多個(gè)Hash裝置中的每一個(gè)Hash裝置使用 數(shù)據(jù)塊和所述Hash函數(shù)來生成關(guān)鍵碼。
14. 如權(quán)利要求9至13中任一權(quán)利要求所述的電路,其中每個(gè)CAM 模塊包括多個(gè)CAM單元。
15. 如權(quán)利要求14所述的電路,其中每個(gè)CAM單元存儲(chǔ)包括所述 第二數(shù)據(jù)庫的模式的數(shù)據(jù)塊。
16. 如權(quán)利要求15所述的電路,其中每個(gè)CAM單元包括多個(gè)比較 器,所述多個(gè)比較器中的每一個(gè)比較器比較接收到的數(shù)據(jù)塊與存儲(chǔ)在所述 CAM單元中的所述數(shù)據(jù)塊。
17. 如權(quán)利要求9至16中任一權(quán)利要求所述的電路,其檢測在數(shù)據(jù) 塊的任何位置開始的模式。
18. 如權(quán)利要求17所述的電路,其中所述模式檢測電路包括多個(gè)Hash 裝置和多個(gè)CAM比較器,第一數(shù)據(jù)塊輸入到第一 Hash裝置中并輸入到 第一 CAM比較器中,相對(duì)于所述第一數(shù)據(jù)塊移位的第二數(shù)據(jù)塊輸入到第 二 Hash裝置中并輸入到第二 CAM比較器中,等等。
19. 如權(quán)利要求18所述的電路,其中所述第二數(shù)據(jù)塊相對(duì)于所述第 一數(shù)據(jù)塊移位所述塊的一個(gè)或更多的位置。
20. 如權(quán)利要求19所述的電路,其中所述第一數(shù)據(jù)塊和所述第二數(shù)據(jù)塊包括位或字節(jié),且所述第二數(shù)據(jù)塊相對(duì)于所述第一數(shù)據(jù)塊移位包括所 述塊的一個(gè)或更多的位或字節(jié)的一個(gè)或更多的位置。
21. 如權(quán)利要求9至20中任一權(quán)利要求所述的電路,其包括多個(gè)部 分,第一部分檢測長度為n的模式,第二部分檢測長度為n-l的模式,第 三部分檢測長度為n-2的模式,等等。
22. 如權(quán)利要求9至21中任一權(quán)利要求所述的電路,其中所述被選 模式包括任何的全部或部分詞語,或全部或部分串,或全部或部分DNA 序列,或惡意內(nèi)容的特征或特征段。
全文摘要
一種在多個(gè)數(shù)據(jù)塊中檢測模式的方法,包括生成包含一組被選模式中的模式的第一子集的第一數(shù)據(jù)庫,生成包含所述一組被選模式中的剩余模式的第二子集的第二數(shù)據(jù)庫,接收所述多個(gè)數(shù)據(jù)塊,且對(duì)每個(gè)數(shù)據(jù)塊,使用數(shù)據(jù)塊和Hash函數(shù)來生成關(guān)鍵碼,使用所述關(guān)鍵碼來搜索所述第一數(shù)據(jù)庫,定位第一數(shù)據(jù)庫的相應(yīng)于所述關(guān)鍵碼的登記項(xiàng),讀取包括零或生成所述關(guān)鍵碼的被選模式的登記項(xiàng)的內(nèi)容,如果所述登記項(xiàng)的內(nèi)容包括零,則確定所述數(shù)據(jù)塊不包括被選模式,并輸出指示所述數(shù)據(jù)塊不包括被選模式的第一輸出。
文檔編號(hào)G06F21/56GK101606160SQ200780042490
公開日2009年12月16日 申請(qǐng)日期2007年10月10日 優(yōu)先權(quán)日2006年10月10日
發(fā)明者薩吉爾·塞澤爾 申請(qǐng)人:英國貝爾法斯特女王大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1