【技术实现步骤摘要】
基于FPGA和CPU协同工作的高速关键字过滤方法
[0001]本专利技术属于数据信息安全应用领域,采用FPGA和CPU协同工作,涉及一种高速数据流关键字过滤的实现方法。
技术介绍
[0002]目前的关键字过滤多采用高性能的CPU实现,通过软件实现的方法,对数据报文进行查找。采用CPU实现速率慢,不能够满足高速的数据传输性能;内存占用率高,影响设备的整体性能和功耗。现有的查找技术,多局限于当前数据包报文的过滤,很难做到多数据包连接进行关键字过滤,当过滤线程多,CPU的能力明显的不足。
[0003]随着数据通信业务类型越来越多,信息安全问题日益突出。在通信过程中一些敏感信息、词汇可能会夹杂在正文中进行传输,造成安全信息泄露。为了防止此类事情的发生需要对通信过程中的数据报文内容进行过滤,看是否存在关键字。当前的关键字过滤技术主要采用CPU来实现,CPU对通信过程中的关键字进行过滤,但是CPU在处理此类事件的时候速率较慢,严重影响了数据通信速率。
技术实现思路
[0004]针对上述现有技术,本专利技术提出了一种高速数据流关键字过滤实现方法,采用CPU和FPGA共同实现关键字过滤,其中,充分发挥FPGA可以用于处理速率较高场合的特点进行关键字过滤,同时采用CPU处理一些事务型管理。
[0005]为了解决上述技术问题,本专利技术提出的一种基于FPGA和CPU协同工作的高速关键字过滤方法,在CPU中,数据发送线程和数据接收线程是两个线程,所述的数据发送线程中包括以下步骤:
[0006]1)关 ...
【技术保护点】
【技术特征摘要】
1.一种基于FPGA和CPU协同工作的高速关键字过滤方法,在CPU中,数据发送线程和数据接收线程是两个线程,其特征在于,所述的数据发送线程中包括以下步骤:1)关键字设置:每个会话设置1
‑
8组关键字,每组关键字长度为1
‑
32byte,FPGA内部缓存中每个会话关键字配置空间为256byte,每组所述关键字均配置有对应会话号,FPGA内部缓存中最多支持64个会话;接收电脑通过串口配置的关键字,该关键字的长度记为L;判断L的大小,如果L<32byte,用KEY_MASK指示关键字有效长度,生成关键字KEY及其关键字掩码KEY_MASK,执行步骤2);如果32byte<L≤256byte,将关键字空间进行级联,生成关键字KEY及其关键字掩码KEY_MASK,并以DATA_MASK用于指示关键字之间的级联关系,执行步骤2);如果L>256byte,向电脑发回关键字长度超长的提示;2)关键字下发:将生成的关键字的会话号、关键字KEY、关键字掩码KEY_MASK和以DATA_MASK表示的关键字级联关系通过PCIE下发至FPGA内部缓存中;与此同时,CPU判断当前会话的数据包的文件格式是否为纯文本数据格式,如果是纯文本数据格式,将当前会话的数据包通过PCIE下发至FPGA内部缓存中;如果不是纯文本数据格式,将当前会话的数据包进行缓存,直至当前会话的数据包接收完毕,将非文本数据格式的文件数据转换为纯文本数据格式的数据通过PCIE下发至FPGA内部缓存中;3)关键字过滤:所述FPGA根据数据包中会话号对应的关键字信息对接收到CPU的数据包进行关键字过滤;4)判断完成过滤的关键字是否存在级联关系DATA_MASK,如果存在,则进入级联结果处理,如果不存在,则执行步骤5);级联结果处理:首先判断关键字1和关键字2是否存在级联关系,如果关键字1和关键字2不存在级联则输出关键字1过滤的结果进入关键字2和关键字3级联判断状态,如果关键字1和关键字2存在级联关系,则直接进入关键字2和关键字3级联判断状态,在关键字2和关键字3级联判断状态判断关键字2和关键字3的级联状态,如果关键字2和关键字3不存在级联关系,则需要输出关键字1和关键字2级联的关系以及过滤结果后进入关键3与关键字4级联判断状态;如果不存在级联关系直接进入关键3与关键字4级联判断状态以此类推,直到判断所有关键字过滤结果与级联的关系,输出级联和过滤结果,并执行步骤5);步骤5)将关键字过滤的结果上报给CPU,上报的结果包括过滤命中的结果、会话号、关键字命中的位置,如果完成过滤的关键字存在有级联关系DATA_MASK,则还包括级联的结果;所述的数据接收线程一直在等待FPGA端是否有上报的关键字过滤结果的数据包;如果有,则通过对外接口将过滤的结果发送给数据源端。2.根据权利要求2所述的基于FPGA和C...
【专利技术属性】
技术研发人员:毕顺利,吴淑艳,
申请(专利权)人:天津光电聚能专用通信设备有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。