A parallel acceleration method of network intrusion detection based on CUDA. Methods The CUDA parallel computing model was adopted. Firstly, the k_means algorithm in the network intrusion detection system was parallelized and analyzed. A global selector was designed to judge whether the cluster of the intrusion detection data points belonged to changed or not before the distance calculation, which reduced the redundant computation. Finally, all intrusion detection data points are sorted and grouped according to the cluster label when the cluster center is updated. By simply adding the data in the group, the atomic memory operation is reduced and the overall performance is improved. The experimental results show that the acceleration method proposed by the invention is effective and has high parallel acceleration performance under the condition of guaranteeing the detection rate.
【技术实现步骤摘要】
一种基于CUDA的网络入侵检测并行化加速方法
本专利技术涉及信息安全领域的网络入侵检测,是一种基于CUDA的网络入侵检测并行化加速方法。
技术介绍
网络入侵检测的目的是分析网络中传输的数据流量,从中发现异常的流量。目前有许多聚类算法应用于网络入侵检测系统,其中基于k-means算法的网络入侵检测方法较为流行。由于k-means算法在每次迭代过程中会计算每个入侵检测数据点到所有聚簇中心的距离,当需要检测的数据量尺寸和维度非常庞大时,该算法将会非常耗时。如果需要检测的数据总量为N,聚簇数目为k,算法经过m次迭代之后收敛,那么算法在计算距离阶段就要进行k*N*m次运算。随着网络入侵检测数据集的增长,算法的执行效率将大大降低。为了提高k-means算法在大规模网络入侵检测数据集上的执行速度,一种有效的途径就是将k-means算法移植到多核架构上,例如目前流行的图形处理单元GPU(GraphicsProcessingUnit),然后运用CUDA(ComputeUnifiedDeviceArchitecture)编程模型并行化该算法,这样可以节省大量计算时间,提高算法的执行效率。CUDA是显卡厂商NVIDIA公司推出的一款通用并行计算架构,它可以让GPU解决复杂的计算问题。CUDA提供了硬件的直接访问接口,这种接口可以实现GPU的直接访问,而不需要依赖传统的图形API。GPU是能够并行执行大量线程的协处理器。一个简单的GPU源程序包括运行在CPU上的主机端代码和运行在GPU上的内核(kernel)代码,这种编程方式可以降低GPU的编程难度。很多研究都采用CUDA来优化 ...
【技术保护点】
1.一种基于CUDA的网络入侵检测并行化加速方法,包括如下步骤:(1)在CPU端初始化n个网络入侵检测数据点的集合R,随机选取k个点作为初始聚簇中心,设置最大迭代次数为m,中心点收敛阈值为t;在GPU端分配网络入侵检测数据点集、聚簇中心、全局上下界以及中心点偏移量的内存空间,将数据拷贝至GPU端;(2)第一次计算所有入侵检测数据点至k个聚簇中心的距离;具体的计算方法采用步骤(4)的方法进行计算;然后,根据距离计算的结果,把数据点归入距离最近的聚簇中;最后,采用步骤(6)的方法来更新聚簇中心,从而获得全局选择器需要的数据;(3)对于每一个入侵检测数据点,采用全局选择器判断是否需要进行下一轮迭代;如果入侵检测数据点满足全局选择器判定条件,则转步骤(6)处理,如果不满足,则转步骤(4)处理;全局选择器的判定条件为:
【技术特征摘要】
1.一种基于CUDA的网络入侵检测并行化加速方法,包括如下步骤:(1)在CPU端初始化n个网络入侵检测数据点的集合R,随机选取k个点作为初始聚簇中心,设置最大迭代次数为m,中心点收敛阈值为t;在GPU端分配网络入侵检测数据点集、聚簇中心、全局上下界以及中心点偏移量的内存空间,将数据拷贝至GPU端;(2)第一次计算所有入侵检测数据点至k个聚簇中心的距离;具体的计算方法采用步骤(4)的方法进行计算;然后,根据距离计算的结果,把数据点归入距离最近的聚簇中;最后,采用步骤(6)的方法来更新聚簇中心,从而获得全局选择器需要的数据;(3)对于每一个入侵检测数据点,采用全局选择器判断是否需要进行下一轮迭代;如果入侵检测数据点满足全局选择器判定条件,则转步骤(6)处理,如果不满足,则转步骤(4)处理;全局选择器的判定条件为:其中,x代表一个网络入侵检测数据点,e代表点x所属聚簇的聚簇中心,ue(x)代表x的全局上界,le(x)代表x的全局下界,φ(e)代表聚簇更新之后聚簇中心e的距离偏移量,C代表所有网络入侵检测聚簇中心的集合,c代表集合中除了e之外的一个聚簇中心,代表聚簇更新之后聚簇中心的最大距离偏移量;(4)计算所有入侵检测数据点至k个聚簇中心的距离;在GPU端开启n个线程计算入侵检测数据点矩阵x的平方x2,然后开启k个线程计算聚簇中心矩阵y的平方y2,并计算x2+y2;最后,调用CUDA提供的通用矩阵乘函数cublasSgemm()进行距离计算,即计算n个入侵检测数据点至k个聚簇中心的距离;(5)根据距离计算的结果,寻找每个入侵检测数据点最近的聚簇中心,并把这个数据点归入该聚簇集合;由于部分入侵检测数据点满足全局...
【专利技术属性】
技术研发人员:刘端阳,郑江帆,沈国江,刘志,朱李楠,杨曦,阮中远,
申请(专利权)人:浙江工业大学,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。