Patent ID: 7630982

Claim:
A method of screening a data stream to detect presence of at least one complex string belonging to a predefined complex dictionary, the method being encoded into instructions stored in a processor-readable storage medium coupled to a processor, the method comprising: transforming said complex dictionary into: a segmented dictionary comprising a string suffix and string segments of each complex string in said complex dictionary, each string segment comprising a segment prefix and a simple string; an array of segment descriptors, each segment descriptor defining a content of a corresponding string segment in said segmented dictionary; and an array of bitmasks, each bitmask indicating a location of a string segment in said segmented dictionary within a respective complex string in said complex dictionary; performing a simple search in said data stream to produce detected simple strings defined in said segmented dictionary; selecting candidate string segments, from said segmented dictionary, containing said detected simple strings; and identifying candidate complex strings for the at least one complex string in said complex dictionary containing said candidate string segments using said array of segment descriptors and said array of bitmasks; wherein the step of selecting comprises a further step of ascertaining congruence of a portion of said data stream, said portion preceding each said detected simple string, and a segment prefix of a corresponding string segment in said segmented dictionary.