1.一种基于分类计数器的确定有限状态机构造方法,其特征在于,包括以下步骤:
101、根据数据流中不同服务的数据特征编写基于规则匹配的网络入侵检测系统的正则表达式,并对正则表达式集合中的每一个正则表达式按照构建有限状态机DFA的复杂度进行分类,具体分为线性级复杂度类、乘法级复杂度类、平方级复杂度类和指数级复杂度类;
102、然后对步骤101中的按照构建线性级复杂度类、乘法级复杂度类、平方级复杂度类和指数级复杂度类对应的正则表达式构造带有计数器的有限状态机DFA,其中被省略的状态和转移由计数器的计数取代;
103、最后遍历有限状态机DFA中所有的状态节点,合并含有相同输出激励的状态,压缩DFA状态数目和转移数目,生成最终的有效状态机。
2.根据权利要求1所述的一种基于分类计数器的确定有限状态机构造方法,其特征在于,步骤102中对于线性级构造复杂度对应的正则表达式,构造带有计数器的有限状态机DFA的步骤为:遍历表达式所有字符,生成状态转移图,其中状态转移图的边即为表达式中的一个输入激励,构造出的状态转移图即为普通的DFA。
3.根据权利要求1所述的一种基于分类计数器的确定有限状态机构造方法,其特征在于,当步骤102中为乘法级或者平方级构造复杂度对应的正则表达式时,构造带有计数器的有限状态机DFA的步骤为:将正则表达式中具体的长度限制的值改写为表示重复次数的元字符“*”,并构造对应的DFA’确定的有限状态机;找到DFA’中的内部起始状态、计数状态和内部终止状态,并申请一个计数变量Counter并初始化为j,用来表示j与带长度限制的字符连续出现的次数,为每个计数状态添加一个常量参数num,表示从内部起始状态到当前状态所需要的最少状态转移的次数,即从内部起始状态开始连续匹配成功的字符数,在匹配过程中根据计数变量Counter和常量参数num来判断匹配是否成功。
4.根据权利要求1所述的一种基于分类计数器的确定有限状态机构造方法,其特征在于,当步骤102中为指数级构建复杂度的正则表达式时,首先改写该正则表达式;接着对于无法改写的正则表达式,其具有指数级的状态点数目,将其构建为半确定有限状态机,半确定有限状态机介于有限状态机DFA和非确定的有限状态机NFA之间,在非确定的有限状态机NFA扫描处理时计算并存储实际需要的一些DFA状态节点,状态数目的复杂度为o(n),从而将对应的正则表达式的构建复杂度从指数级降低到线性级。