1. A method, comprising: identifying substrings from within keywords, wherein each keyword comprises a string; caching a set of flags, each flag indicating whether a respective substring from the identified substrings occurs in one or more of the keywords, in an internal cache memory of a processor device; identifying, using the processor device, locations in input data in which the substrings occur by comparing the input data with the cached flags; and searching at the identified locations for occurrences of the keywords, so as to find at least one of the keywords in the input data wherein each flag indicates whether the respective substring occurs in at least one of multiple predefined offsets within the one or more keywords, wherein the input data comprises received communication network traffic, wherein the input data further comprises multiple data packets, wherein identifying the locations comprises identifying a subset of the data packets in which the substrings occur, and wherein searching at the identified locations comprises searching in the identified subset of the data packets; and further wherein incoming Real Time Protocol (RTP) traffic, traffic that is identified as being encrypted, or traffic associated with any other suitable application or protocol is discarded.