[发明专利]一种基于加密算法的网络节点布隆过滤器构建及实现方法在审
申请号: | 201710993208.1 | 申请日: | 2017-10-23 |
公开(公告)号: | CN107566111A | 公开(公告)日: | 2018-01-09 |
发明(设计)人: | 张尧 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | H04L9/00 | 分类号: | H04L9/00;H04L9/06;H04L29/06 |
代理公司: | 济南信达专利事务所有限公司37100 | 代理人: | 韩月娥 |
地址: | 450008 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 加密算法 网络 节点 过滤器 构建 实现 方法 | ||
技术领域
本发明涉及网络安全技术,具体的说是一种基于加密算法的网络节点布隆过滤器构建及实现方法。
背景技术
布隆过滤器是一类具有存储高效性的数据结构,该数据结构利用底层的哈希函数,可被用来快速判断任一元素是否属于给定集合。随着互联网的发展,数以千计的实时网络应用与服务将布隆过滤器作为一个重要的设计组成要素,这些应用包括分布式拒绝服务攻击防御,高速网络流量测试,以及网络流量包监控等。布隆过滤器已经为各式各样的网络系统提供了功能及效能上的巨大支持。
然而,构建布隆过滤器并不是一件轻而易举的事情。在将多种协议部署于网络节点时,由于底层哈希函数的实现方法不同,布隆过滤器的实现也产生了差异性。虽然通常一些优秀的哈希函数(如Murmur算法)可供选择,然而一些传统的哈希函数(如MD5算法)仍然被广泛使用。在不同协议中实现布隆过滤器时,这种非一致性将不可避免地增加部署的复杂度。另一个问题是布隆过滤器的处理速度。目前,数据查询请求往往具有海量特性,数据处理上轻微的延迟都将会逐步积累,并最终限制并影响相关应用的实施效率。因此,如何加速布隆过滤器这一关键部件,变得异常重要。但布隆过滤器自身结构的简单性,几乎没有为其加速和优化提供空间。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种基于加密算法的网络节点布隆过滤器构建及实现方法。
本发明所述一种基于加密算法的网络节点布隆过滤器构建及实现方法,解决上述技术问题采用的技术方案如下:所述基于加密算法的网络节点布隆过滤器构建及实现方法,通过计数器模式下的高级加密算法AES对布隆过滤器的插入、查询元素进行加密,近似得到布隆过滤器中所需的哈希流;通过对生成的哈希流进行截断输出,得到不同参数设置下,布隆过滤器所对应的各个哈希函数;
具体实现流程包括:
步骤一,设置布隆过滤器的加密密钥,并进行轮密钥扩展;
步骤二,布隆过滤器接收一系列插入或查询请求,根据初始请求的元素长度进行元素预处理操作;
步骤三,使用高级加密标准AES对预处理后的数据进行加密;
步骤四,确定布隆过滤器哈希函数的输出值;
步骤五,根据步骤四产生的哈希函数的输出值,完成布隆过滤器相应的插入或查询请求。
进一步,所述步骤一,
设置高级加密标准AES加密密钥,根据设置的AES加密密钥,轮密钥扩展利用指令集AES-NI支持的AES_Key_Expansion()函数,生成所有后续插入或查询操作所需AES加密过程的轮密钥值。
进一步,所述步骤二,
布隆过滤器接收一系列插入或查询请求,对于每个请求,根据相应的初始请求元素的长度进行元素预处理操作,具体流程包括:
步骤1,计算加密分组数量b;
步骤2,分组长度填充;
比较初始请求元素与最大输入长度的值,确定预处理操作的方式,使元素被修正以最终对齐至最大输入长度;
步骤3,元素自我复制;
若加工后的元素依然不足b个分组,将进行自我复制直至最终达到b个分组。
进一步,所述步骤2,
使用PKCS#7填充模式将元素的大小对齐至AES分组长度的整数倍。
进一步,所述基于加密算法的网络节点布隆过滤器构建及实现方法,还包括:利用指令集AES-NI对布隆过滤器的实现进行速度优化的步骤。
进一步,利用微处理器广泛支持的指令集技术AES-NI,对AES算法的计算过程进行加速,包括对轮密钥扩展和文本加密两个过程进行加速。
本发明所述一种基于加密算法的网络节点布隆过滤器构建及实现方法,与现有技术相比具有的有益效果是:本发明不同于传统的基于哈希函数的构建方式,利用高级加密标准AES算法进行布隆过滤器构建,并使用AES指令集AES-NI对AES的运算速度进行优化;利用微处理器硬件广泛支持的AES-NI技术,能够保证布隆过滤器在网络节点部署的一致性,为网络场景下基于布隆过滤器的各类应用提供一致高效的数据元素操作;为使用布隆过滤器这一算法部件的网络协议带来显著的性能提升;此外,当网络节点具有加密或身份认证功能时,基于AES算法构建的布隆过滤器也提升了网络节点中算法的可复用性。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710993208.1/2.html,转载请声明来源钻瓜专利网。