CN113655992B - 哈希函数电路、芯片及通信设备 - Google Patents
哈希函数电路、芯片及通信设备 Download PDFInfo
- Publication number
- CN113655992B CN113655992B CN202110936676.1A CN202110936676A CN113655992B CN 113655992 B CN113655992 B CN 113655992B CN 202110936676 A CN202110936676 A CN 202110936676A CN 113655992 B CN113655992 B CN 113655992B
- Authority
- CN
- China
- Prior art keywords
- field
- unit
- stage
- exclusive
- input end
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 description 43
- 238000004422 calculation algorithm Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 20
- 238000000034 method Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例公开了一种哈希函数电路、芯片和通信设备,应用于芯片技术领域,可以实现SpookyHash的硬件应用。包括:求余运算模块,用于根据输入的第一字段的字节数,对所述第一字段进行第一逻辑运算得到第二字段,并输出所述第二字段,所述第一逻辑运算与所述第一字段的字节数对应,所述第一字段的字节数小于16字节;结束运算模块,用于对所述求余运算模块输出的所述第二字段进行多级第二逻辑运算,以得到目标哈希字段,所述第二逻辑运算为进行异或运算和左移运算之后,再将异或运算结果和左移运算结果进行加法运算的运算。
Description
技术领域
本发明实施例涉及芯片技术领域,尤其涉及一种哈希函数电路、芯片及通信设备。
背景技术
在网络数据处理的应用中,针对同一个客户端的会话请求,需要路由到同一台机器,以保证数据的一致性,在该路由过程中就需要借助哈希(Hash)算法来实现,哈希算法是把任意长度的输入,压缩变换成固定长度的输出,该输出称为哈希值,具体的,可以通过提取输入的网络数据包中的IP地址和端口地址等关键字段,进行哈希计算,得到哈希值,并将哈希至与目的地址对应保存,作为哈希变的地址查表,以实现负载均衡。近年来提出的奇异哈希(SpookyHash)算法可以实现更好的均衡效果,SpookyHash可以根据任意长度的输入,生成128位、64位和32位的哈希值。但是SpookyHash因为计算过程较复杂,因此并未在专用集成电路(Application Specific Integrated Circuit,ASIC)中进行硬件应用,因此实现SpookyHash的硬件应用是亟需解决的问题。
发明内容
本发明实施例提供哈希函数电路、芯片及通信设备,可以实现SpookyHash的硬件应用。
为了解决上述技术问题,本发明实施例是这样实现的:
第一方面,提供一种哈希函数电路,用于实现SpookyHash函数的运算,包括:
求余运算模块,用于根据输入的第一字段的字节数,对所述第一字段进行第一逻辑运算得到第二字段,并输出所述第二字段,所述第一逻辑运算与所述第一字段的字节数对应,所述第一字段的字节数小于16字节;
结束运算模块,用于对所述求余运算模块输出的所述第二字段进行多级第二逻辑运算,以得到目标哈希字段,所述第二逻辑运算为进行异或运算和左移运算之后,再将异或运算结果和左移运算结果进行加法运算的运算。
第二方面,提供一种芯片,包括:接口电路以及如第一方面的哈希函数电路,所述接口电路用于接收待处理字段,所述待处理字段包括所述第一字段。
第三方面,提供一种通信设备,包括:如第一方面的哈希函数电路,或者,如第二方面的芯片。
在本发明实施例提供一种哈希函数电路,用于实现SpookyHash函数的运算,包括:求余运算模块,用于根据输入的第一字段的字节数,对第一字段进行第一逻辑运算得到第二字段,并输出第二字段,第一逻辑运算与第一字段的字节数对应,第一字段的字节数小于16字节;结束运算模块,用于对求余运算模块输出的第二字段进行多级第二逻辑运算,以得到目标哈希字段,第二逻辑运算为进行异或运算和左移运算之后,再将异或运算结果和左移运算结果进行加法运算的运算。通过该方案,可以通过硬件电路中求余运算模块,实现SpookyHash函数中的求余运算子函数(spooky_remainder_mix),并且可以通过硬件电路中结束运算模块,实现SpookyHash函数中的结束运算子函数(Spooky_end),从而可以实现SpookyHash的硬件应用。
附图说明
图1为本发明实施例提供的一种基于哈希算法的网络数据包处理流程示意图;
图2为本发明实施例提供的一种针对网络数据包进行哈希计算的流程示意图;
图3为本发明实施例提供的一种SpookyHash算法的计算流程示意图;
图4A为本发明实施例提供一种哈希函数电路的结构示意图一;
图4B为本发明实施例提供一种哈希函数电路的结构示意图二;
图4C为本发明实施例提供一种哈希函数电路的结构示意图三;
图5为本发明实施例提供的一种求余运算模块的结构示意图;
图6为本发明实施例提供的一种第一逻辑单元的结构示意图;
图7为本发明实施例提供的一种结束运算模块的结构示意图;
图8为本发明实施例提供的一种设置有第一寄存器的结束运算模块的结构示意图;
图9为本发明实施例提供的一种第二逻辑单元的结构示意图;
图10为本发明实施例提供的一种混合运算模块的结构示意图;
图11为本发明实施例提供的一种设置有第二寄存器的混合运算模块的结构示意图;
图12为本发明实施例提供的一种芯片的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先对本发明实施例的相关技术内容进行介绍:
Hash可以翻译做“哈希”或“散列”,Hash算法是把固定或任意长度的输入,变换成固定长度的输出,该输出就是哈希值。这种转换是一种压缩映射,通常哈希值的空间远小于输入的空间。简单而言Hash是一种将一定长度的消息压缩到某一固定长度的消息摘要的处理。在数据交换网络处理中,针对同一个客户端(即同一个用户)的会话请求,需要路由到同一台机器,以保证数据的一致性,就需要借助哈希算法得到哈希表来实现。
实际应用中,终端设备、路由器、交换机、服务器等数据交换网络中的设备均有可能借助哈希算法去处理网络数据包。示例性的,如图1所示为一种基于哈希算法的网络数据包处理流程示意图,在该处理流程中,首先可以针对获取的网络数据包进行数据包解析,以提取数据包中的IP地址和端口地址等关键字段,然后针对这些关键字段进行哈希计算,最后使用哈希计算的结果作为路由信息,该路由信息可以为哈希计算后得到的固定长度字段的表格,通过这样的路由信息达到负载均衡的目的。
进一步的,如图2所示,为一种针对网络数据包进行哈希计算的流程示意图,具体的计算流程包括:
201、获取报文的信息;
对于普通的IP报文获取的报文信息可以包括:源媒体访问控制(Media AccessControl,MAC)地址、目的MAC地址、源网际互连协议(Internet Protocol,IP)地址、目的IP地址、虚拟局域网(Virtual Local Area Network,VLAN)、四层(L4层)端口号等;对于隧道报文,则为报文的外层和内层报文的上述几种报文信息字段。
示例性的,如图2中所示,获取报文的报头部分,按照配置的Hash模型,将这些信息作为Hash输入的参考值。其中,报头部分包括:以太网(ETH)报头、IP报头和L4报头(即L4层协议报头),其中,ETH报头中包括源地址(Source Address,SA)、目的地址(DestinationAddress,DA)、标签(TAG)以及以太网类型(Ethernet type,E-TYPE);IP报头中包括:源IP地址(SIP)、目的IP地址(DIP)以及用户协议(PRO)等;L4报头中包括:目的端口(Destination port,DPORT)和源端口(Source port,SPORT)等。
202、根据Hash算法对Hash输入进行计算,得到哈希值(Hash Key)。
其中,Hash算法可以由芯片提供固定种类的算法,不同Hash算法对于不同的流量模型计算的效果不同,可以存在有多种算法以供选择。
203、将哈希值进行偏移。
为了让同一个Hash输入衍生更多的变化,以更加灵活的适应不同的Hash场景,芯片可以对Hash Key的值进行0~15位的偏移,具体的该偏移过程可通过命令设置,将Hash_Key转化为Offset值,Offset值与出口个数进行取余运算,可以根据取余运算的结果,决定报文的出口。
近年来随着各种哈希算法的演进,有一些hash算法,可以得到更好的均衡效果,使得哈希冲突的概率大幅下降。例如SpookyHash是一个非加密哈希函数,它可以为任意长度的数据生成128位、64位和32位的哈希值,它是目前为止计算效率最高的哈希函数。SpookyHash因为计算过程较复杂,在专用集成电路(Application Specific IntegratedCircuit,ASIC)设计中的实现比较少见,为了获得更好的的哈希均衡效果,基于硬件实现SpookyHash的功能是目前的研究热点之一。
为了解决上述问题,本发明实施例提供一种哈希函数电路,该哈希函数电路是在理解SpookyHash算法的原理基础,整理了数据处理过程,并按照硬件设计的思路对其计算流程进行优化后实现的一套硬件电路。
本发明实施例中的哈希函数电路,可以应用在芯片中,或者数据交换网络中的通信设备中,该通信设备可以为终端设备、路由器、交换机、服务器等。
示例性的,如图3所示为一种SpookyHash算法的计算流程示意图,图3中的流程可以看出SpookyHash算法中有两个基本的处理函数,Spooky_hash_mix和Spooky_hash_end,其中,Spooky_hash_mix中包括:全混合运算(Spooky_full_mix),半混合运算(Spooky_half_mix)和求余运算(Spooky_remainder_mix)这三个运算过程。
在确定输入字段小于16字节时,针对输入字段进行求余运算(Spooky_remainder_mix)后,经过结束运算(Spooky_end)后得到目标哈希字段,即哈希值;
在确定输入字段小于32字节,且大于或等于16字节时,将输入字段与预设初始字段进行异或运算得到第三字段,对第三字段进行半混合运算Spooky_half_mix运算,经Spooky_half_mix运算后可以得到第一剩余字段,第一剩余字段的长度比第三字段的字段长度少16字节。后将第一剩余字段进行求余运算(Spooky_remainder_mix)后,经过结束运算(Spooky_end),得到目标哈希字段;
在确定输入字段大于或等于32字节时,可以对输入字段进行一次或多次的全混合运算(Spooky_full_mix),每经历一次全混合运算Spooky_full_mix),运算后的字段长度比运算前的字段长度少32字节。对输入字段进行一次或多次的全混合运算(Spooky_full_mix)后,可以有以下两种情况:
直到第三剩余字段小于32字节,且大于或等于16字节时,后续进行Spooky_half_mix、Spooky_remainder_mix和Spooky_end,得到目标哈希字段;
或者,
直到第三剩余字段小于16字段时,后续进行Spooky_remainder_mix运算和Spooky_end,得到目标哈希字段
其中,第三剩余字段可以理解为每次全混合运算(Spooky_full_mix)后所得到的字段。
上述Spooky_hash_mix和Spooky_hash_end两个函数的设计过程中,使用的基本电路单元是循环移位、异或和加法的组合电路,以下将对本发明实施例所涉及的哈希函数电路进行详细的介绍。
如图4A所示,本发明实施例提供一种哈希函数电路,该哈希函数电路用于实现奇异哈希SpookyHash函数的运算,该电路包括:
求余运算模块41,用于根据输入的第一字段的字节数,对第一字段进行第一逻辑运算得到第二字段,并输出第二字段,第一逻辑运算与第一字段的字节数对应,第一字段的字节数小于16字节;
结束运算模块42,用于对求余运算模块输出的第二字段进行多级第二逻辑运算,以得到目标哈希字段,第二逻辑运算为进行异或运算和左移运算之后,再将异或运算结果和左移运算结果进行加法运算的运算。
其中,上述第一字段,可以是根据待处理字段确定的。
可选的,第一字段可以是包括在待处理字段中的部分字段。
可选的,第一字段可以是针对对待处理字段中的部分字段,与预设初始字段进行异或运算后得到的字段。
可选的,上述对第一字段进行第一逻辑运算时,可以是将第一字段与预设初始字段进行第一逻辑运算。
其中,预设初始字段可以根据实际哈希算法的运算需求确定,本发明实施例不作限定。
本发明实施例提供的哈希函数电路,可以通过硬件电路中求余运算模块,实现SpookyHash函数中的求余运算子函数(spooky_remainder_mix),并且可以通过硬件电路中结束运算模块,实现SpookyHash函数中的结束运算子函数(Spooky_end),这样通过上述求余运算模块和结束运算模块,可以针对小于16字节的输入字段进行处理,得到目标哈希字段,实现了SpookyHash函数中,Spooky_remainder_mix和Spooky_end部分的运算功能,实现了SpookyHash函数的硬件应用。
可选的,如图4B所示,上述哈希函数电路还包括:
判断控制模块43,用于在确定输入字段小于16字节时,将输入字段作为第一字段输入至求余运算模块41。
本发明实施例中,判断控制模块43可以用于对输入字段的长度进行判断,并在判断出输入字段的长度所处的字节范围时,后续会输入至与该字节范围相应的模块进行运算。
其中,该判断控制模块43,可以通过逻辑门电路实现,对于具体的该判断控制模块的硬件实现本发明不作限定,以能够实现本发明实施例中判断控制模块所涉及的对应功能为准。
可选的,判断控制模块43,还用于在确定输入字段大于或等于16字节时,将所述输入字段作为所述第一字段输入至所述求余运算模块;
求余运算模块41,具体用于根据输入的所述第一字段的字节数和预设初始字段,对所述第一字段进行第一逻辑运算得到第二字段。
可选的,如图4C所示,哈希函数实现电路还包括:混合运算模块44;
判断控制模块43,还用于在确定输入字段大于或等于16字节时,将第三字段输入至混合运算模块44,所述第三字段为所述输入字段的部分或全部字段;
混合运算模块44,用于针对第三字段进行至少一次多级第三逻辑运算,以得到目标运算字段,并将目标运算字段和第一字段输出至求余运算模块41,第一字段为第三字段经过至少一次多级逻辑运算后的第一剩余字段;
求余运算模块41,具体用于根据混合运算模块输出的第一字段的字节数和目标运算字段,对第一字段,进行第一逻辑运算得到第二字段。
可选的,可以包括:以下针对输入字段小于32且大于或等于16字节的情况,以及针对输入字段大于32字节的情况,以下将分别针对两种情况进行详细说明:
情况1:输入字段小于32且大于或等于16字节的情况;
判断控制模块43,具体用于在确定输入字段小于32字节,且大于或等于16字节时,将输入字段与预设初始字段进行异或运算得到第三字段,并将第三字段输入至混合运算模块44;
混合运算模块44,具体用于对第三字段的前32个字节进行一次多级第三逻辑运算,以得到目标运算字段,第一字段为第三字段中除前32个字节以外的字段。
情况2:输入字段大于32字节的情况;
判断控制模块43,具体用于在确定输入字段大于或等于32字节时,将输入字段作为第三字段输入至混合运算模块44;
混合运算模块44,具体用于对第三字段的前32个字节,进行多级第三逻辑运算以得到第一运算字段,并将第三字段中除前32个字节以外的第二剩余字段输入至判断控制模块43;
判断控制模块43,还用于:
在确定第二剩余字段大于或等于32个字节时,将第二剩余字段与第一运算字段进行异或运算,并将异或运算的结果作为第三字段,再次输入至混合运算模块44;
在确定第二剩余字段小于16个字节时,将第二剩余字段作为第一字段输入至求余运算模块41,第一运算字段作为目标运算字段;
在确定第二剩余字段小于32字节,且大于或等于16字节时,将第二剩余字段与第一运算字段进行异或运算,并将异或运算的结果作为第三字段,再次输入至混合运算模块44;混合运算模块44,具体用于对第三字段的前32个字节进行一次多级第三逻辑运算,以得到目标运算字段。
针对判断控制模块针对大于32个字节的第三字段进行了第三逻辑运算的过程,对应于全混合运算(Spooky_full_mix),在此之后,如果再次确定第二剩余字段小于32字节,且大于或等于16字节时,此时第二剩余字段与第一运算字段进行异或运算,并将异或运算的结果作为第三字段,再次输入至混合运算模块,此时复用混合运算模块进行计算,但是由于此时输入的第三字段,是将第二剩余字段(小于32字节且大于或等于16字节)与第一运算字段(32位)进行了异或运算,这样使得本次输入混合运算模块的输入字段至少有一半发生了变化,对应于半混合运算(Spooky_half_mix),从而通过上述判断控制模块,结合混合运算模块,实现了SpookyHash函数中的Spooky_full_mix和Spooky_half_mix的运算。
通过上述混合运算模块和判断控制模块,实现了SpookyHash函数中的Spooky_full_mix和Spooky_half_mix的运算,如此不仅可以实现小于16字节的输入字段的哈希运算,还可以实现大于或等于16字节的输入字段的哈希运算,从而可以实现SpookyHash函数的运算功能,实现了SpookyHash函数的硬件应用。
可选的,如图5所示,针对如图4A、4B和4C中所示的求余运算模块的结构可以包括:16个逻辑运算支路,每个逻辑运算支路对应于0至15个字节数;求余运算模块41,用于根据输入的第一字段的字节数,确定用于进行第一逻辑运算的目标支路。该求余运算模块输入的是第一字段,输出的是第二字段。
可选的,上述16个逻辑运算支路包括:
(1)对应于第一字节数的逻辑运算支路,第一字节数为以下字节数中的一种:2、3、5、6、7、10、11、13、14、15;
对应于第一字节数的逻辑运算支路包括:左移单元51和第一加法单元52,左移单元的输出端连接第一加法单元的一个输入端,左移单元51用于对第一字段进行左移运算,将左移运算结果输出至第一加法单元52,第一加法单元52的另一输入端输入目标字段,第一加法单元52用于对左移运算结果和目标字段进行加法运算,以得到第二字段,需要说明的是,目标字段为目标运算字段或者预设初始字段。图5中仅对字节数为15的逻辑运算支路中第一加法单元和左移单元进行了标识,其他涉及第一加法单元和左移单元的支路未在图中标识。
其中,每个逻辑运算支路所计算的第一字段中的数据不同。具体的,字节数为2的逻辑运算支路计算的是第112个比特至第119个比特的数据;字节数为3的逻辑运算支路计算的是第104个比特至111个比特的数据;字节数为5的逻辑运算支路计算的是第88个比特至95个比特的数据;字节数为6的逻辑运算支路计算的是第88个比特至95个比特的数据;字节数为7的逻辑运算支路计算的是第80个比特至87个比特的数据;字节数为10的逻辑运算支路计算的是第48个比特至55个比特的数据;字节数为11的逻辑运算支路计算的是第40个比特至47个比特的数据;字节数为13的逻辑运算支路计算的是第24个比特至31个比特的数据;字节数为14的逻辑运算支路计算的是第16个比特至23个比特的数据;字节数为15的逻辑运算支路计算的是第8个比特至15个比特的数据。
其中,对应于字节数为2、3、5、6、7的逻辑运算支路中,第一加法单元52在将左移运算结果和目标字段进行加法运算时,是对左移运算结果和目标字段中第3个8字节字段进行加法运算,计算得到的也是第二字段中的第3个8字节字段,在图5中表示为H2;对应于字节数为10、11、13、14、15的逻辑运算支路中,第一加法单元在将左移运算结果和目标字段进行加法运算时,是对左移运算结果和目标字段中第4个8字节字段进行加法运算,计算得到的也是第二字段中的第4个8字节字段,在图5中表示为H3。
本发明实施例中,从低位至高位,分别采用H0、H1、H2和H3标识字段中的第1个8字节字段至第4个8字节字段,即H0表示字段中的第1个8字节字段,H1表示字段中的第2个8字节字段、H2表示字段中第3个8字节字段,H3表示字段中第4个8字节字段。
(2)对应于第二字节数的逻辑运算支路,第二字节数为以下字节数中的一种:1、4、8、9;
对应于第二字节数的逻辑运算支路包括:第二加法单元53,用于对第一字段和目标字段进行加法运算,以得到第二字段,需要说明的是,图5中仅对字节数为9的逻辑运算支路中第二加法单元进行了标识,其他涉及第二加法单元的支路未在图中标识。
其中,每个逻辑运算支路所计算的第一字段中的数据不同。具体的,字节数为1的逻辑运算支路计算的是第120个比特至127个比特的数据;字节数为4的逻辑运算支路计算的是第96个比特至127个比特;字节数为8的逻辑运算支路计算的是第64个比特至127个比特的数据;字节数为9的逻辑运算支路计算的是第56个比特至63个比特的数据。
其中,对应于字节数为1、4、8的逻辑运算支路中,第二加法单元53在第一字段和目标字段进行加法运算时,是对第一字段和目标字段中第3个8字节字段进行加法运算,计算得到的也是第二字段中的第3个8字节字段,在图5中第3个8字节字段表示为H2;对应于字节数为9的逻辑运算支路中,第二加法单元在将第一字段和目标字段进行加法运算时,是对左移运算结果和目标字段中第4个8字节字段进行加法运算,计算得到的也是第二字段中的第4个8字节字段,在图5中第4个8字节字段表示为H3。
(3)字节数为0的逻辑运算支路;
字节数为0的逻辑运算支路包括:两个第一子支路,两个第一子支路对应不同比特数据,每个第一子支路中包括一个第三加法单元54,第三加法单元541用于对预设常数和目标字段进行加法运算,以得到第二字段。
上述两个第一子支路中,一个支路是将预设常数和目标字段中的第3个8字节字段进行加法运算,相应的得到的也是第二字段中的第3个8字节字段,图5中第3个8字节字段标识为H2,另一个支路是将预设常数与目标字段中的第4个8字节字段进行加法运算,相应的得到的也是第二字段中的第4个8字节字段,图5中第4个8字节字段标识为H3。
(4)字节数为12的逻辑运算支路;
字节数为12的逻辑运算支路包括:两个第二子支路,两个第二子支路对应不同比特数据,每个第二子支路中包括一个第四加法单元55,第四加法单元55用于对第一字段和目标字段进行加法运算。
上述两个第二子支路中,一个支路是将第一字段中第64个比特至第127个比特的数据,与目标字段中的第3个8字节字段进行加法运算,相应的得到的也是第二字段中的第3个8字节字段,图5中第3个8字节字段标识为H2,另一个支路是将第一字段中第32个比特至第63个比特的数据,与目标字段中的第4个8字节字段进行加法运算,相应的得到的也是第二字段中的第4个8字节字段,图5中第4个8字节字段标识为H3。
其中,目标字段为目标运算字段或者预设初始字段。
可选的,上述求余运算模块在电路设计阶段,可以直接在寄存器传输级(registertransfer level,RTL)仿真中通过case语句描述,其中,RTL指的是用寄存器这一级别的描述方式来描述电路的数据流方式,case语句为c语言中用于进行判断选择的语句。
可选的,针对如图4A、图4B和图4C中所示的结束运算模块中包括:11级第一逻辑单元,如图6所示为第一逻辑单元的结构示意图;每级第一逻辑单元中包括:异或单元、左移单元和加法单元,每级第一逻辑单元中异或单元的输出端和左移单元的输出端,分别连接加法单元的不同输入端。
结合图6,如图7所示为结束运算模块的结构示意图,图7中从低位至高位,分别采用H0、H1、H2和H3标识字段中的第1个8字节字段至第4个8字节字段。该结束运算模块输入的字段为第二字段,该结束运算模块输出的字段为目标哈希字段。
可选的,4≤i≤8,第i级中异或单元的第一输入端连接第i-1级中加法单元的输出端,第i级中异或单元的第二输入端连接第i-3级中左移单元的输出端;第i级中左移单元的输入端连接第i-1级中加法单元的输出端,第i级中左移单元的输出端连接第i+3级中异或单元的第二输入端;第i级中加法单元的输出端连接第i+1级中异或单元的第一输入端;
第1级中异或单元的第一输入端和第1级中左移单元的输入端用于输入第二字段中第3个8字节字段,第1级中左移单元的输出端还连接第4级中异或单元的第二输入端,第1级中异或单元的第二输入端用于输入第二字段中第4个8字节字段,第1级中加法单元的输出端连接第2级中左移单元的输入端;
第2级中异或单元的第一输入端连接第1级中加法单元的输出端,第2级中异或单元的第二输入端用于输入第二字段中第1个8字节字段,第2级中左移单元的输出端还连接第5级中异或单元的第二输入端;第2级中加法单元的输出端连接第3级中左移单元的输入端;
第3级中异或单元的第一输入端连接第2级中加法单元的输出端,第2级中异或单元的第二输入端用于输入第二字段中第2个8字节字段,第3级中左移单元的输出端还连接第6级中异或单元的第二输入端;第3级中加法单元的输出端连接第4级中左移单元的输入端;
第9级中异或单元的第一输入端和左移单元的输入端均连接第8级中加法单元的输出端,第9级中异或单元的第二输入端连接第6级中左移单元的输出端,第9级中加法单元的输出端连接第10级中异或单元的第一输入端和左移单元的输入端,第9级中左移单元还用于输出目标哈希字段的第3个8字节字段;
第10级中异或单元的第二输入端连接第7级中左移单元的输出端,第10级中加法单元的输出端连接第11级中异或单元的第一输入端和左移单元的输入端;第10级中左移单元还用于输出目标哈希字段的第4个8字节字段
第11级中异或单元的第二输入端连接第8级中左移单元的输出端,第11级中加法单元还用于输出目标哈希字段的第2个8字节字段,第11级中左移单元还用于输出目标哈希字段的第1个8字节字段。
需要说明的,对于上述的第一输入端、第二输入端是为了区分同一单元的不同输入端。具体的对于各个单元的输入端和输出端可以结合图7中箭头的方向确定。
可选的,上述结束运算模块,还包括:第一寄存器;第一寄存器设置于任意两级相邻的第一逻辑单元之间。
可选的,结束运算模块中可以包括一个或多个第一寄存器。
示例性的,如图8所示为一种设置有第一寄存器的结束运算模块的结构示意图,每间隔4级第一逻辑单元,设置一个第一寄存器81。
通过上述图8所示的结束运算模块的结构,加入第一寄存器之后,第一寄存器可以缓存之前的第一逻辑单元的运算结果,从而使得结束运算模块中的多级第一逻辑单元可以实现复用,提高运算效率,减小时延。
示例性的,以如图8所示的设置有第一寄存器的结束运算模块为例,在前4级第一逻辑单元对当前输入至结束运算模块的字段进行逻辑运算之后,可以将该次的逻辑运算结果A保存在第4级第一逻辑单元与第5级第一逻辑单元之间的第一寄存器中。相应的,在前4级第一逻辑单元进行逻辑运算将该次的逻辑运算结果A保存在第4级第一逻辑单元与第5级第一逻辑单元之间的第一寄存器中后,前4级第一逻辑单元处于空闲状态(即未进行逻辑运算),此时可以复用前4级第一逻辑单元针对后续输入结束运算模块的字段进行运算,如此可以实现针对前4级第一逻辑单元的复用。
进一步的,在确定第5级到第8级的第一逻辑单元空闲(即未进行逻辑运算)的情况下,可以将保存的逻辑运算结果A再输入至第5级第一逻辑单元,以使得第5级到第8级的第一逻辑单元进行后续逻辑运算。
需要说明的是,针对其他级第一逻辑单元的复用方式与上述复用前4级第一逻辑单元类似,此处不再赘述。
可选的,针对如图4B和图4C中所示的混合运算模块中包括:12级第二逻辑单元,如图9所示为第二逻辑单元的结构示意图;每级第二逻辑单元中包括:左移单元、加法单元和异或单元,每级第二逻辑单元中左移单元的输出端和加法单元的第一输入端连接,加法单元的输出端连接异或单元的第一输入端。
结合图9,如图10所示为一种混合运算模块的结构示意图,图10中从低位至高位,分别采用H0、H1、H2和H3标识字段中的第1个8字节字段至第4个8字节字段,该混合运算模块输入的字段为上述第三字段,该混合运算模块输出的字段为上述第一运算字段。
可选的,3≤i≤10,第i级中左移单元的输入端连接第i-2级异或单元的输出端;第i级中加法单元的第二输入端连接第i-1级中异或单元的输出端,加法单元的输出端连接第i+2级中异或单元的第二输入端;第i级中异或单元的第二输入端连接第i-2级中加法单元的输出端,第i级中异或单元的输出端,连接第i+2级中左移单元的输入端,以及第i+1级中加法单元的第二输入端;
第1级中左移单元的输入端用于输入第三字段的第3个8字节字段,第1级中加法单元的第二输入端用于输入第三字段的第4个8字节字段,第1级中加法单元的输出端连接第3级中异或单元的第二输入端,第1级中异或单元的第二输入端用于输入第三字段的第1个8字节字段;
第2级中左移单元的输入端用于输入第三字段的第4个8字节字段,第2级中加法单元的第二输入端连接第1级中异或单元的输出端,第2级中加法单元的输出端连接第4级中异或单元的第二输入端,第2级中异或单元的第二输入端用于输入第三字段的第2个8字节字段,第2级中异或单元的输出端连接第4级中左移单元的输入端和第3级中加法单元的第二输入端;
第11级中左移单元的输入端连接第9级中异或单元的输出端,第11级中加法单元的第二输入端连接第10级中异或单元的输出端,第11级中加法单元的输出端用于输出第一运算字段中第1个8字节字段,第11级中异或单元的第二输入端连接第8级中加法单元的输出端,第11级中异或单元的输出端连接第12级中加法单元的第二输入端,第11级中异或单元的输出端用于输出第一运算字段中第3个8字节字段;
第12级中左移单元的输入端连接第10级中异或单元的输出端,第12级中加法单元的输出端用于输出第一运算字段中第2个8字节字段,第12级中异或单元的第二输入端连接第10级中加法单元的输出端,第12级中异或单元的输出端用于输出第一运算字段中第4个8字节字段。
需要说明的,对于上述的第一输入端、第二输入端是为了区分同一单元的不同输入端。具体的对于各个单元的输入端和输出端可以结合图7中箭头的方向确定。
可选的,混合运算模块中还可以包括第二寄存器;第二寄存器设置于任意两级相邻的第二逻辑单元之间。
可选的,混合运算模块中可以包括一个或多个第一寄存器。
示例性的,如图11所示,为一种设置有第二寄存器的结束运算模块的结构示意图,每间隔4级第二逻辑单元,设置一个第一寄存器111。
通过上述图11所示的混合运算模块的结构,加入第二寄存器之后,第二寄存器可以缓存之前的第二逻辑单元的运算结果,从而使得混合运算模块中的多级第二逻辑单元可以实现复用,提高运算效率,减小时延。
针对上述第二逻辑单元的复用方式与上述针对第一逻辑单元的复用方式类似,此处不再赘述。
示例性的,如图12所示,本发明实施例还提供一种芯片,包括:接口电路121以及本发明实施例提供的哈希函数电路122(如,图4A、图4B或图4C所示),接口电路121用于接收待处理字段,上述第一字段根据待处理字段确定。本发明实施例还提供一种通信设备,该通信设备包括:本发明实施例提供的哈希函数电路,或,本发明实施例提供的芯片(如图12所示)。
可选的,该通信设备可以为数据交换网络中的设备,例如,该通信设备可以为数据交换网络中的终端设备、交换机、路由器或服务器等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (16)
1.一种哈希函数电路,其特征在于,用于实现奇异哈希SpookyHash函数的运算,包括:
求余运算模块,用于根据输入的第一字段的字节数,对所述第一字段进行第一逻辑运算得到第二字段,并输出所述第二字段,所述第一逻辑运算与所述第一字段的字节数对应,所述第一字段的字节数小于16字节;
结束运算模块,用于对所述求余运算模块输出的所述第二字段进行多级第二逻辑运算,以得到目标哈希字段,所述第二逻辑运算为进行异或运算和左移运算之后,再将异或运算结果和左移运算结果进行加法运算的运算。
2.根据权利要求1所述的哈希函数电路,其特征在于,所述哈希函数电路还包括:
判断控制模块,用于在确定输入字段小于16字节时,将所述输入字段作为所述第一字段输入至所述求余运算模块。
3.根据权利要求2所述的哈希函数电路,其特征在于,所述哈希函数实现电路还包括:混合运算模块;
所述判断控制模块,还用于在确定所述输入字段大于或等于16字节时,将第三字段输入至所述混合运算模块,所述第三字段为所述输入字段的部分或全部字段;
所述混合运算模块,用于针对所述第三字段进行至少一次多级第三逻辑运算,以得到目标运算字段,并将所述目标运算字段和所述第一字段输出至所述求余运算模块,所述第一字段为所述第三字段经过所述至少一次多级逻辑运算后的第一剩余字段;
所述求余运算模块,具体用于根据所述混合运算模块输出的所述第一字段的字节数和所述目标运算字段,对所述第一字段,进行第一逻辑运算得到第二字段。
4.根据权利要求1所述的哈希函数电路,其特征在于,
所述求余运算模块,具体用于根据输入的所述第一字段的字节数和预设初始字段,对所述第一字段进行第一逻辑运算得到第二字段。
5.根据权利要求3所述的哈希函数电路,其特征在于,
所述判断控制模块,具体用于在确定所述输入字段小于32字节,且大于或等于16字节时,将所述输入字段与预设初始字段进行异或运算得到所述第三字段,并将所述第三字段输入至所述混合运算模块;
所述混合运算模块,具体用于对所述第三字段的前32个字节进行一次多级第三逻辑运算,以得到所述目标运算字段,所述第一字段为所述第三字段中除前32个字节以外的字段。
6.根据权利要求3所述的哈希函数电路,其特征在于,
所述判断控制模块,具体用于在确定所述输入字段大于或等于32字节时,将所述输入字段作为所述第三字段输入至所述混合运算模块;
所述混合运算模块,具体用于对所述第三字段的前32个字节,进行多级第三逻辑运算以得到第一运算字段,并将所述第三字段中除前32个字节以外的第二剩余字段输入至所述判断控制模块;
所述判断控制模块,还用于:
在确定所述第二剩余字段大于或等于32个字节时,将所述第二剩余字段与所述第一运算字段进行异或运算,并将异或运算的结果作为所述第三字段,再次输入至所述混合运算模块;
在确定所述第二剩余字段小于16个字节时,将所述第二剩余字段作为所述第一字段输入至所述求余运算模块,所述第一运算字段作为所述目标运算字段;
在确定所述第二剩余字段小于32字节,且大于或等于16字节时,将所述第二剩余字段与所述第一运算字段进行异或运算,并将异或运算的结果作为所述第三字段,再次输入至所述混合运算模块;所述混合运算模块,具体用于对所述第三字段的前32个字节进行一次多级第三逻辑运算,以得到所述目标运算字段。
7.根据权利要求3或4所述的哈希函数电路,其特征在于,所述求余运算模块的结构包括:16个逻辑运算支路,每个逻辑运算支路对应于0至15个字节数;
所述求余运算模块,用于根据输入的第一字段的字节数,确定用于进行第一逻辑运算的目标支路。
8.根据权利要求7所述的哈希函数电路,其特征在于,所述16个逻辑运算支路包括:
对应于第一字节数的逻辑运算支路包括:左移单元和第一加法单元,所述左移单元用于对所述第一字段进行左移运算,将左移运算结果输出至所述第一加法单元,所述第一加法单元用于对所述左移运算结果和目标字段进行加法运算,以得到所述第二字段;所述第一字节数为以下字节数中的一种:2、3、5、6、7、10、11、13、14、15;
对应于第二字节数的逻辑运算支路包括:第二加法单元,用于对所述第一字段和所述目标字段进行加法运算,以得到所述第二字段;所述第二字节数为以下字节数中的一种:1、4、8、9;
字节数为0的逻辑运算支路包括:两个第一子支路,每个第一子支路中包括一个第三加法单元,所述两个第一子支路对应不同比特数据;所述第三加法单元用于对预设常数和所述目标字段进行加法运算,以得到所述第二字段;
字节数为12的逻辑运算支路包括:两个第二子支路,每个第二子支路中包括一个第四加法单元,所述两个第二子支路对应不同比特数据;所述第四加法单元用于对所述第一字段和所述目标字段进行加法运算;
其中,所述目标字段为目标运算字段或者预设初始字段。
9.根据权利要求1至6任一项所述的哈希函数电路,其特征在于,所述结束运算模块,包括:11级第一逻辑单元;
每级第一逻辑单元中包括:异或单元、左移单元和加法单元,每级第一逻辑单元中异或单元的输出端和左移单元的输出端,分别连接所述加法单元的不同输入端。
10.根据权利要求9所述的哈希函数电路,其特征在于,4≤i≤8,第i级中异或单元的第一输入端连接第i-1级中加法单元的输出端,第i级中异或单元的第二输入端连接第i-3级中左移单元的输出端;第i级中左移单元的输入端连接第i-1级中加法单元的输出端,第i级中左移单元的输出端连接第i+3级中异或单元的第二输入端;第i级中加法单元的输出端连接第i+1级中异或单元的第一输入端;
第1级中异或单元的第一输入端和第1级中左移单元的输入端用于输入所述第二字段中第3个8字节字段,所述第1级中左移单元的输出端还连接第4级中异或单元的第二输入端,所述第1级中异或单元的第二输入端用于输入所述第二字段中第4个8字节字段,第1级中加法单元的输出端连接第2级中左移单元的输入端;
第2级中异或单元的第一输入端连接第1级中加法单元的输出端,所述第2级中异或单元的第二输入端用于输入所述第二字段中第1个8字节字段,所述第2级中左移单元的输出端还连接第5级中异或单元的第二输入端;第2级中加法单元的输出端连接第3级中左移单元的输入端;
第3级中异或单元的第一输入端连接第2级中加法单元的输出端,第2级中异或单元的第二输入端用于输入所述第二字段中第2个8字节字段,所述第3级中左移单元的输出端还连接第6级中异或单元的第二输入端;第3级中加法单元的输出端连接第4级中左移单元的输入端;
第9级中异或单元的第一输入端和左移单元的输入端均连接第8级中加法单元的输出端,第9级中异或单元的第二输入端连接第6级中左移单元的输出端,第9级中加法单元的输出端连接第10级中异或单元的第一输入端和左移单元的输入端,所述第9级中左移单元还用于输出所述目标哈希字段的第3个8字节字段;
第10级中异或单元的第二输入端连接第7级中左移单元的输出端,第10级中加法单元的输出端连接第11级中异或单元的第一输入端和左移单元的输入端;所述第10级中左移单元还用于输出所述目标哈希字段的第4个8字节字段;
第11级中异或单元的第二输入端连接第8级中左移单元的输出端,第11级中加法单元还用于输出所述目标哈希字段的第2个8字节字段,所述第11级中左移单元还用于输出所述目标哈希字段的第1个8字节字段。
11.根据权利要求10所述的哈希函数电路,其特征在于,所述结束运算模块,还包括:第一寄存器;
所述第一寄存器设置于任意两级相邻的第一逻辑单元之间。
12.根据权利要求3所述的哈希函数电路,其特征在于,所述混合运算模块,还包括:12级第二逻辑单元;
每级第二逻辑单元中包括:左移单元、加法单元和异或单元,每级第二逻辑单元中左移单元的输出端和加法单元的第一输入端连接,加法单元的输出端连接异或单元的第一输入端。
13.根据权利要求12所述的哈希函数电路,其特征在于,3≤i≤10,第i级中左移单元的输入端连接第i-2级异或单元的输出端;第i级中加法单元的第二输入端连接第i-1级中异或单元的输出端,加法单元的输出端连接第i+2级中异或单元的第二输入端;第i级中异或单元的第二输入端连接第i-2级中加法单元的输出端,所述第i级中异或单元的输出端,连接第i+2级中左移单元的输入端,以及第i+1级中加法单元的第二输入端;
第1级中左移单元的输入端用于输入所述第三字段的第3个8字节字段,第1级中加法单元的第二输入端用于输入所述第三字段的第4个8字节字段,第1级中加法单元的输出端连接第3级中异或单元的第二输入端,第1级中异或单元的第二输入端用于输入所述第三字段的第1个8字节字段;
第2级中左移单元的输入端用于输入所述第三字段的第4个8字节字段,第2级中加法单元的第二输入端连接所述第1级中异或单元的输出端,第2级中加法单元的输出端连接第4级中异或单元的第二输入端,第2级中异或单元的第二输入端用于输入所述第三字段的第2个8字节字段,第2级中异或单元的输出端连接第4级中左移单元的输入端和第3级中加法单元的第二输入端;
第11级中左移单元的输入端连接第9级中异或单元的输出端,第11级中加法单元的第二输入端连接第10级中异或单元的输出端,第11级中加法单元的输出端用于输出所述第一运算字段中第1个8字节字段,第11级中异或单元的第二输入端连接第8级中加法单元的输出端,第11级中异或单元的输出端连接第12级中加法单元的第二输入端,第11级中异或单元的输出端用于输出所述第一运算字段中第3个8字节字段;
第12级中左移单元的输入端连接第10级中异或单元的输出端,第12级中加法单元的输出端用于输出所述第一运算字段中第2个8字节字段,第12级中异或单元的第二输入端连接第10级中加法单元的输出端,第12级中异或单元的输出端用于输出所述第一运算字段中第4个8字节字段。
14.根据权利要求13所述的哈希函数电路,其特征在于,所述混合运算模块,还包括:第二寄存器;
所述第二寄存器设置于任意两级相邻的第二逻辑单元之间。
15.一种芯片,包括:接口电路以及如权利要求1至14任一项所述的哈希函数电路,所述接口电路用于接收待处理字段,所述第一字段根据所述待处理字段确定。
16.一种通信设备,包括:如权利要求1至14任一项所述的哈希函数电路,或,如权利要求15所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110936676.1A CN113655992B (zh) | 2021-08-16 | 2021-08-16 | 哈希函数电路、芯片及通信设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110936676.1A CN113655992B (zh) | 2021-08-16 | 2021-08-16 | 哈希函数电路、芯片及通信设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113655992A CN113655992A (zh) | 2021-11-16 |
CN113655992B true CN113655992B (zh) | 2024-03-15 |
Family
ID=78479197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110936676.1A Active CN113655992B (zh) | 2021-08-16 | 2021-08-16 | 哈希函数电路、芯片及通信设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113655992B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105491060A (zh) * | 2015-12-30 | 2016-04-13 | 北京神州绿盟信息安全科技股份有限公司 | 防御分布式拒绝服务攻击的方法、装置、客户端及设备 |
CN107666387A (zh) * | 2016-07-27 | 2018-02-06 | 北京计算机技术及应用研究所 | 低功耗并行哈希计算电路 |
CN111600699A (zh) * | 2020-06-17 | 2020-08-28 | 深圳比特微电子科技有限公司 | 用于实现散列算法的电路和方法 |
CN112115095A (zh) * | 2020-06-12 | 2020-12-22 | 苏州浪潮智能科技有限公司 | 一种用于哈希算法的可重构硬件及运行方法 |
CN112463116A (zh) * | 2020-11-26 | 2021-03-09 | 深圳比特微电子科技有限公司 | 用于划分组合逻辑的方法和电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9215171B2 (en) * | 2012-08-29 | 2015-12-15 | International Business Machines Corporation | Hashing-based routing table management |
-
2021
- 2021-08-16 CN CN202110936676.1A patent/CN113655992B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105491060A (zh) * | 2015-12-30 | 2016-04-13 | 北京神州绿盟信息安全科技股份有限公司 | 防御分布式拒绝服务攻击的方法、装置、客户端及设备 |
CN107666387A (zh) * | 2016-07-27 | 2018-02-06 | 北京计算机技术及应用研究所 | 低功耗并行哈希计算电路 |
CN112115095A (zh) * | 2020-06-12 | 2020-12-22 | 苏州浪潮智能科技有限公司 | 一种用于哈希算法的可重构硬件及运行方法 |
CN111600699A (zh) * | 2020-06-17 | 2020-08-28 | 深圳比特微电子科技有限公司 | 用于实现散列算法的电路和方法 |
CN112463116A (zh) * | 2020-11-26 | 2021-03-09 | 深圳比特微电子科技有限公司 | 用于划分组合逻辑的方法和电路 |
Also Published As
Publication number | Publication date |
---|---|
CN113655992A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6654701B2 (en) | Method and apparatus for measuring protocol performance in a data communication network | |
US6065064A (en) | Inter-network connecting device | |
US6957272B2 (en) | Stackable lookup engines | |
US8046487B2 (en) | Method for routing of data packets and routing apparatus | |
US6625662B1 (en) | Inter-network connecting device | |
EP0993144B1 (en) | Packet relaying apparatus and method and circuit thereof | |
US7023797B2 (en) | Flexible aggregation of output links | |
US7047453B2 (en) | Method and apparatus for managing network traffic using cyclical redundancy check hash functions | |
US10666564B2 (en) | Increasing entropy across routing table segments | |
JP2005507614A (ja) | パケットの順序付けを行う並列パケット変換処理のための方法、システムおよびコンピュータプログラム製品 | |
US7180894B2 (en) | Load balancing engine | |
CN115883681B (zh) | 报文解析方法、装置、电子设备及存储介质 | |
CN110336661B (zh) | Aes-gcm数据处理方法、装置、电子设备及存储介质 | |
US9525661B2 (en) | Efficient method of NAT without reassemling IPV4 fragments | |
US20200042629A1 (en) | Field Variability based TCAM Splitting | |
CN114296707A (zh) | 基于p4语言实现的可编程硬件逻辑架构和逻辑实现方法 | |
CN113655992B (zh) | 哈希函数电路、芯片及通信设备 | |
CN113079077B (zh) | 基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统 | |
WO2004019561A1 (ja) | イーサネット(r)におけるフレーム転送方法及びノード | |
CN104394077B (zh) | 基于Hash算法的标签查找方法及装置 | |
US20040218596A1 (en) | Packet forwarding method and system | |
KR100572693B1 (ko) | 인터넷 프로토콜 패킷 룩업 방법 | |
TW201401813A (zh) | 用於在記憶體中儲存整數值的範圍的方法及其系統 | |
Liu et al. | Fast IP table lookup and memory reduction | |
CN116471344A (zh) | 一种数据报文的关键字提取方法、装置及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |