Methods and systems for multi-pattern searching
First Claim
1. A method for building a state table of a state machine algorithm in a pattern matching application, comprising:
- identifying at least one search pattern;
creating a search pattern trie;
adding the at least one search pattern to the search pattern trie;
building a non-deterministic finite automata from the search pattern trie;
building a deterministic finite automata from the non-deterministic finite automata;
converting the deterministic finite automata into separate data structures comprising a state transition table, an array of per state matching pattern lists, and a separate failure pointer list for each state for the non-deterministic finite automata; and
using the separate data structures as the state table.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention relate to systems and methods for optimizing and reducing the memory requirements of state machine algorithms in pattern matching applications. Memory requirements of an Aho-Corasick algorithm are reduced in an intrusion detection system by representing the state table as three separate data structures. Memory requirements of an Aho-Corasick algorithm are are also reduced by applying a banded-row sparse matrix technique to the state transition table of the state table. The pattern matching performance of the intrusion detection system is improved by performing a case insensitive search, where the characters of the test sequence are converted to uppercase as the characters are read. Testing reveals that state transition table with sixteen bit elements outperform state transition table with thirty-two bit elements and do not reduce the functionality of intrusion detection systems using the Aho-Corasick algorithm.
-
Citations
18 Claims
-
1. A method for building a state table of a state machine algorithm in a pattern matching application, comprising:
-
identifying at least one search pattern;
creating a search pattern trie;
adding the at least one search pattern to the search pattern trie;
building a non-deterministic finite automata from the search pattern trie;
building a deterministic finite automata from the non-deterministic finite automata;
converting the deterministic finite automata into separate data structures comprising a state transition table, an array of per state matching pattern lists, and a separate failure pointer list for each state for the non-deterministic finite automata; and
using the separate data structures as the state table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18-29. -29. (canceled)
Specification