CN113946313B - Lookup3哈希算法的处理电路、芯片和终端 - Google Patents
Lookup3哈希算法的处理电路、芯片和终端 Download PDFInfo
- Publication number
- CN113946313B CN113946313B CN202111187145.3A CN202111187145A CN113946313B CN 113946313 B CN113946313 B CN 113946313B CN 202111187145 A CN202111187145 A CN 202111187145A CN 113946313 B CN113946313 B CN 113946313B
- Authority
- CN
- China
- Prior art keywords
- parameter values
- rot
- module
- result
- stage
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 72
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 19
- 238000000034 method Methods 0.000 description 12
- 230000000875 corresponding effect Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000001934 delay Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
Images
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
Abstract
本申请实施例涉及一种LOOKUP3哈希算法的处理电路、芯片和终端,LOOKUP3哈希算法的处理电路,包括:第一混合模块,用于当输入数据的字节长度大于n时,根据输入数据进行对应的第一组合逻辑运算;截取模块,用于截取去除输入数据中的n个字节;第二混合模块,用于当输入数据的字节长度小于或等于n时,根据输入数据进行对应的第二组合逻辑运算;结果确定模块,用于根据接收到的运算结果进行对应的第三组合逻辑运算;其中,第一混合模块和结果确定模块中的至少一个为目标运算模块,目标运算模块包括i级运算单元和i‑1个触发器组,第j‑1个触发器组用于对第j‑1级运算单元的运算结果进行锁存,并将锁存的运算结果输出至第j级运算单元。
Description
技术领域
本申请实施例涉及芯片技术领域,特别是涉及一种LOOKUP3哈希算法的处理电路、芯片和终端。
背景技术
散列(Hash)算法把固定或任意长度的输入变换成固定长度的输出,该输出就是散列值。Hash算法具有数据的查询效率高以及数据传递的安全性高的特点,因此,Hash算法被广泛地应用在各种终端中。例如,LOOKUP3(查找3)哈希算法能够根据输入数据计算对应的内存地址,并具有良好的雪崩性,即,更改输入数据的任何一位,就将引起输出结果中一半以上的位发生变化。因此,LOOKUP3哈希算法的均衡效果也优于其他的Hash算法,从而可以应用于存储缓存系统,以对数据进行均衡地存储,并能够对数据或对象进行快速地查找和读取。但是,随着通信技术的不断发展,现有的LOOKUP3哈希算法的处理速度已经无法满足目前的通信需求。
发明内容
本申请实施例提供了一种LOOKUP3哈希算法的处理电路、芯片和终端,可以优化哈希算法的处理速度。
一种LOOKUP3哈希算法的处理电路,包括:
第一混合模块,用于当输入数据的字节长度大于n时,根据所述输入数据进行对应的第一组合逻辑运算,以获取n字节的运算结果,其中,所述n为正整数;
截取模块,与所述第一混合模块连接,用于截取去除所述输入数据中的n个字节,并将截取后剩余的数据作为新的所述输入数据;
第二混合模块,用于当所述输入数据的字节长度小于或等于n时,根据所述输入数据进行对应的第二组合逻辑运算,以获取n字节的运算结果;
结果确定模块,与所述第二混合模块连接,用于接收所述第二混合模块的运算结果,并根据接收到的运算结果进行对应的第三组合逻辑运算,以获取n字节的LOOKUP3哈希算法的处理结果;
其中,所述第一混合模块和所述结果确定模块中的至少一个为目标运算模块,所述目标运算模块包括i级运算单元和i-1个触发器组,i级所述运算单元用于串行执行对应的组合逻辑运算,第j-1个所述触发器组用于对第j-1级所述运算单元的运算结果进行锁存,并将锁存的运算结果输出至第j级所述运算单元,i和j均为正整数,且1<j≤i<n。
一种芯片,包括如上述的LOOKUP3哈希算法的处理电路。
一种终端,包括如上述的芯片。
上述LOOKUP3哈希算法的处理电路,通过硬件结构实现哈希算法的处理过程,基于LOOKUP3哈希算法的处理电路内部实际连接的电路结构数据,无需受控于外部的指令信号或控制信号,因此能够大大提升数据处理的速度。而且,触发器组能够基于确定的时钟信号对各运算单元的运算结果进行锁存,以减小处理逻辑链路上的总延迟。相应地,由于总延迟减小,就可以提升处理电路的综合频率,从而有效提升LOOKUP3哈希算法的处理电路的处理速度。即,本实施例提供了一种处理速度较快的LOOKUP3哈希算法的处理电路。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一实施例的LOOKUP3哈希算法的处理电路的结构示意图之一;
图2为一实施例的运算单元与触发器组的连接关系示意图之一;
图3为一实施例的运算单元与触发器组的连接关系示意图之二;
图4为一实施例的第一混合模块的结构示意图;
图5为一实施例的第一混合模块和触发器组的连接示意图之一;
图6为一实施例的第一混合模块和触发器组的连接示意图之二;
图7为一实施例的结果确定模块的结构示意图;
图8为一实施例的结果确定模块和触发器组的连接示意图之一;
图9为一实施例的结果确定模块和触发器组的连接示意图之二;
图10为一实施例的LOOKUP3哈希算法的处理电路的结构示意图之二。
元件标号说明:
第一混合模块:100;运算单元:110;结果确定模块:200;截取模块:300;第二混合模块:400;函数调用模块:500;触发器组:600;触发器:610。
具体实施方式
为了便于理解本申请实施例,下面将参照相关附图对本申请实施例进行更全面的描述。附图中给出了本申请实施例的首选实施例。但是,本申请实施例可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请实施例的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本文中在本申请实施例的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请实施例。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一混合模块称为第二混合模块,且类似地,可将第二混合模块称为第一混合模块。第一混合模块和第二混合模块两者都是混合模块,但其不是同一混合模块。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。在本申请的描述中,“若干”的含义是至少一个,例如一个,两个等,除非另有明确具体的限定。
本实施例提供了一种LOOKUP3哈希算法的处理电路,如背景技术部分的记载,本实施例的采用LOOKUP3哈希算法,可以根据输入的输入数据(key)确定对应的内存地址,从而可以用于在内存中缓存数据,以实现缓存数据的高速读写。
其中,一示例性地,输入数据可以是来自外部器件的原始数据。原始数据例如为报文数据,报文数据可以为IP报文或隧道报文。IP报文具体可以为但不限于二元组、三元组、四元组、五元组和七元组等。其中,七元组包括源IP地址、目的IP地址、协议号、源端口、目的端口,服务类型以及接口索引。隧道报文则包括报文的外层和内层的上述字段。另一示例性地,输入数据还可以是中间数据,中间数据可以理解为对来自外部器件的原始数据进行过一定处理、但还未获得最终处理结果时的数据。可选地,输入数据的数据类型可以是但不限于文本、数字、压缩数据、计数序列和稀疏位数组等,本实施例不做限定。
图1为一实施例的LOOKUP3哈希算法的处理电路的结构示意图之一,参考图1,在本实施例中,LOOKUP3哈希算法的处理电路包括第一混合模块100、截取模块300、第二混合模块400和结果确定模块200。
第一混合模块100用于当输入数据的字节长度大于n时,根据所述输入数据进行对应的第一组合逻辑运算,以获取n字节的运算结果,其中,所述n为正整数。所述第二混合模块400用于当所述输入数据的字节长度小于或等于n时,根据所述输入数据进行对应的第二组合逻辑运算,以获取n字节的运算结果。因此,在本实施例中,通过为第一混合模块100和第二混合模块400配置不同的组合逻辑运算,可以针对不同长度的输入数据,选择对应的混合模块,使第一混合模块100和第二混合模块400输出长度相等的数据,以使后续的其他运算模块能够基于长度相等的数据进行处理,从而可以简化其他运算模块的运算逻辑,并获取准确的处理结果。
所述截取模块300与所述第一混合模块100连接,用于截取去除所述输入数据中的n个字节,并将截取后剩余的数据作为新的所述输入数据。具体地,第一混合模块100每进行过一次处理后,截取模块300对当前数据的长度进行截取处理,并将剩余的数据进行输出作为新的所述输入数据,可以实现循环迭代的处理过程,直至新的输入数据的长度小于或等于12字节。通过循环迭代的处理过程能够提高LOOKUP3哈希算法的均衡性,以使LOOKUP3哈希算法应用于数据缓存场景时,能够将输入数据均匀地分配至不同的存储地址。
结果确定模块200与所述第二混合模块400连接,用于接收所述第二混合模块400的运算结果,并根据接收到的运算结果进行对应的第三组合逻辑运算,以获取n字节的LOOKUP3哈希算法的处理结果。
其中,所述第一混合模块100和所述结果确定模块200中的至少一个为目标运算模块,所述目标运算模块包括i级运算单元和i-1个触发器组,其中,i级所述运算单元用于串行执行对应的组合逻辑运算。具体地,图2为一实施例的运算单元与触发器组的连接关系示意图之一,在图2所示的实施例中,示出了目标运算模块中的两个运算单元110,但可以理解的是,图2仅用于示例性说明,而不用于限定本实施例的保护范围,在其他实施例中,目标运算模块也可以包括三个、四个、五个运算单元110。第j-1个所述触发器组600用于对第j-1级所述运算单元110的运算结果进行锁存,并将锁存的运算结果输出至第j级所述运算单元110,i和j均为正整数,且1<j≤i<n。其中,同一触发器组600中的多个触发器610均连接至同一运算单元110。图2实施例中所示的一个触发器组600包括2个触发器610,但在其他实施例中,触发器组600中触发器610的数量可以根据需求设置。具体地,各触发器组600中触发器610的数量可以与运算单元的运算结果的长度正相关。例如,若运算结果的长度为8字节,则触发器610的数量可以为两个;若运算结果的长度为12字节,则触发器610的数量可以为三个,本实施例不做限定。
在本实施例中,通过硬件结构实现哈希算法的处理过程,基于目标运算模块内部实际连接的电路结构数据,无需受控于外部的指令信号或控制信号,因此能够大大提升数据处理的速度。示例性地,当实现相同的数据和处理过程时,若基于频率为3Ghz的CPU采用软件方式实施,需要耗时约100ns,而若采用本实施例的处理电路,可以仅在几个触发器时钟周期内获得处理结果,例如,若时钟频率为800M,采用三个时钟周期则仅需4ns。而且,触发器组600能够基于确定的时钟信号对各运算单元110的运算结果进行锁存,以减小处理逻辑链路上的总延迟。相应地,由于总延迟减小,就可以提升处理电路的综合频率,从而有效提升LOOKUP3哈希算法的处理电路的处理速度。即,本实施例提供了一种处理速度较快的LOOKUP3哈希算法的处理电路。
在其中一个实施例中,所述运算单元110的运算结果包括三个参数的参数值,所述触发器组600包括三个触发器610,三个所述触发器610分别用于一一对应对三个所述参数值进行锁存。其中,各参数的参数值例如可以为一个4字节或6字节的数据,本实施例不做限定。三个所述参数可以分别记为a、b和c,一次所述运算用于对其中一个所述参数进行运算。在本实施例中,基于三个参数进行处理,可以理解为是以数据块的方式进行运算处理,相较于逐个字节的处理方式,本实施例的哈希算法可以在一定程度上提升运行速度。
进一步地,若输入数据为原始数据,目标运算模块在对原始数据进行组合前,还可以先对各参数的参数值进行一次初始化。即,根据预设的初始化值生成初始状态的参数值,以提高运算结果的随机性。示例性地,预设的初始化值可以是用户设定的,也可以是随机生成的,还可以是以往对其他原始数据进行哈希处理后生成的处理结果,本实施例不做限定。
在其中一个实施例中,各所述运算单元110分别用于对全部所述参数进行至少一次运算。其中,一次运算是指一次算术运算操作或一次位运算操作,算术运算操作例如包括加法、减法、乘法、除法、求余等,位运算操作例如包括移位、位与、或、异或、非等。其中,多个运算单元110的运算逻辑可以相同,也可以不同。而且,不同的运算单元110执行的运算的次数可以相同,也可以不同,具体可以根据运算需要进行设置。可以理解的是,虽然插入大量的触发器610能够更大程度上地缩短组合逻辑链的长度,但同时也会增大处理电路的面积和电路复杂度。因此,在本实施例中,在对各参数进行至少一次运算后,插入一级触发器组600,对新运算的参数的值进行锁存,可以有效平衡组合逻辑链的长度与电路设计上的关系,从而提供一种延迟较低且电路较为简单的LOOKUP3哈希算法的处理电路。
图3为一实施例的运算单元与触发器组的连接关系示意图之二,参考图3,在本实施例中,第j-1级所述运算单元110最后执行的逻辑运算所运算的参数与第j级所述运算单元110最先执行的逻辑运算所运算的参数不同。可以理解的是,根据运算顺序的差异,需要选择恰当的位置设置锁存器组,以实现对参数的准确运算,防止锁存位置造成运算结果错误。可以理解的是,本实施例的第j-1级所述运算单元110和第j级所述运算单元110可以不限制为具体的某两个运算单元110,当一个运算单元110的输入端连接至一个寄存器组,而输出端连接至另一个寄存器组时,该运算单元110可以同时作为第j-1级所述运算单元110和第j级所述运算单元110。
在其中一个实施例中,所述第一混合模块为所述目标运算模块,所述第一组合逻辑运算包括循环执行的减法运算、移位异或运算和加法运算。具体地,图4为一实施例的第一混合模块的结构示意图,参考图4,在本实施例中,第一混合模块中的一个运算单元可以包括相连接的一个减法器、一个移位寄存器、一个异或门和一个加法器。其中,移位寄存器和异或门可以固定连接,以共同实现移位异或运算的功能。
进一步地,在其中一个实施例中,所述第一混合模块用于接收三个所述参数a、b和c当前的参数值,并根据第一运算公式和当前的三个所述参数值进行所述第一组合逻辑运算,以分别获取三个所述参数运算后的参数值作为所述第一混合模块的运算结果。可选地,第一混合模块可以通过设置电路中的连接关系,对图4所示的硬件结构循环进行调用,以减少电路中的器件数量,从而简化电路的复杂度。
其中,所述第一运算公式包括:a=a-c;a=a^rot(c,4);c=c+b;b=b-a;b=b^rot(a,6);a=a+c;c=c-b;c=c^rot(b,8);b=b+a;a=a-c;a=a^rot(c,16);c=c+b;b=b-a;b=b^rot(a,19);a=a+c;c=c-b;c=c^rot(b,4);b=b+a。其中,rot是指移位运算,例如rot(a,6)是指将a移动6位。^是指异或运算,例如b^a是指计算b与a的异或结果。基于上述不断迭代循环的所述第一运算公式,能够对参数a、b和c的数值进行有效的运算,从而提高哈希算法的均衡性。可以理解的是,在一些实施例中,移位运算的移位位数不局限于本实施例的位数,可以自行进行设置。
图5为一实施例的第一混合模块和触发器组的连接示意图之一,参考图5,在本实施例中,所述第一混合模块包括级联的两个所述运算单元,两个运算单元分别为111a和111b,两个所述运算单元连接至同一所述触发器组600。其中,第一级所述运算单元111a用于接收三个所述参数值,对获取到的所述参数值进行a=a-c;a=a^rot(c,4);c=c+b;b=b-a;b=b^rot(a,6);a=a+c;c=c-b;c=c^rot(b,8);b=b+a的组合运算操作,并将运算结果传输至第一个所述触发器组600进行锁存。第二级所述运算单元111b用于从第一个所述触发器组600获取三个所述参数值,对获取到的所述参数值进行a=a-c;a=a^rot(c,16);c=c+b;b=b-a;b=b^rot(a,19);a=a+c;c=c-b;c=c^rot(b,4);b=b+a的组合运算操作,第二级所述运算单元运算后的参数值作为所述第一混合模块100的运算结果。
可以理解的是,组合逻辑链的长度与组合逻辑链中的运算的数量正相关,即,组合逻辑链中的运算的数量越少,组合逻辑链的长度越短。在本实施例中,使用了一级触发器组600,从而有效缩短了组合逻辑链的长度,减小了每一级的运算单元的逻辑延时。而且,基于本实施例的触发器组600的位置,可以使两个运算单元的逻辑链长度相近,或者说两个运算单元的逻辑链长度之间的差值小于阈值。相应地,可以使两个运算单元的逻辑延迟相近。可以理解的是,对于包括多级运算单元的逻辑运算模组而言,逻辑延迟最大的运算单元决定了逻辑运算模组所能实现的最高频率。因此,设置多个运算单元的逻辑延迟相近,可以避免其中一级的逻辑延迟过大,进而实现更快的运行频率。
图6为一实施例的第一混合模块和触发器组的连接示意图之二,参考图6,在本实施例中,所述第一混合模块包括级联的四个所述运算单元,四个运算单元分别为111a、111b、111c和111d,相邻级的所述运算单元连接至同一所述触发器组600。其中,第一级所述运算单元111a用于接收三个所述参数值,对获取到的所述参数值进行a=a-c;a=a^rot(c,4);c=c+b;b=b-a;b=b^rot(a,6)的组合运算操作,并将运算结果传输至第一个所述触发器组600进行锁存。第二级所述运算单元111b用于从第一个所述触发器组600获取三个所述参数值,对获取到的所述参数值进行a=a+c;c=c-b;c=c^rot(b,8);b=b+a的组合运算操作,并将运算结果传输至第二个所述触发器组600进行锁存。第三级所述运算单元111c用于从第二个所述触发器组600获取三个所述参数值,对获取到的所述参数值进行a=a-c;a=a^rot(c,16);c=c+b;b=b-a;b=b^rot(a,19)的组合运算操作,并将运算结果传输至第三个所述触发器组600进行锁存。第四级所述运算单元111d用于第三个所述触发器组600获取三个所述参数值,对获取到的所述参数值进行a=a+c;c=c-b;c=c^rot(b,4);b=b+a的组合运算操作,第四级所述运算单元运算后的参数值作为所述第一混合模块100的运算结果。结合参考图5和图6,本实施例通过插入三级触发器组600,进一步缩短了组合逻辑链的长度,从而使逻辑运算模组的综合频率能够进一步提升。
在其中一个实施例中,所述结果确定模块为所述目标运算模块,所述第三组合逻辑运算包括循环执行的异或运算和移位减法运算。图7为一实施例的结果确定模块的结构示意图,参考图7,在本实施例中,结果确定模块中的一个运算单元可以包括相连接的一个异或门、一个移位寄存器和一个减法器。其中,移位寄存器和减法器可以固定连接,以共同实现移位减法运算的功能。
进一步地,在其中一个实施例中,所述结果确定模块用于接收三个所述参数a、b和c当前的参数值,并根据第二运算公式和当前的三个所述参数值进行所述第三组合逻辑运算,以分别获取三个所述参数运算后的参数值作为所述结果确定模块的运算结果。可选地,结果确定模块可以通过设置电路中的连接关系,对图7所示的硬件结构循环进行调用,以减少电路中的器件数量,从而简化电路的复杂度。
其中,所述第二运算公式包括:c=c^b;c=c-rot(b,14);a=a^c;a=a-rot(c,11);b=b^a;b=b-rot(a,25);c=c^b;c=c-rot(b,16);a=a^c;a=a-rot(c,4);b=b^a;b=b-rot(a,14);c=c^b;c=c-rot(b,24)。基于上述不断迭代循环的第二运算公式,能够对参数a、b和c的数值进行有效的运算,从而提高哈希算法的均衡性。
图8为一实施例的结果确定模块和触发器组的连接示意图之一,参考图8,在本实施例中,所述结果确定模块包括级联的两个所述运算单元,两个运算单元分别为211a和211b,两个所述运算单元连接至同一所述触发器组600。其中,第一级所述运算单元211a用于接收三个所述参数值,对获取到的所述参数值进行c=c^b;c=c-rot(b,14);a=a^c;a=a-rot(c,11);b=b^a;b=b-rot(a,25)的组合运算操作,并将运算结果传输至第一个所述触发器组600进行锁存。第二级所述运算单元211b用于从第一个所述触发器组600获取三个所述参数值,对获取到的所述参数值进行c=c^b;c=c-rot(b,16);a=a^c;a=a-rot(c,4);b=b^a;b=b-rot(a,14);c=c^b;c=c-rot(b,24)的组合运算操作。
在本实施例中,使用了一级触发器组600,从而有效缩短了组合逻辑链的长度,减小了每一级的运算单元的逻辑延时。而且,基于本实施例的触发器组600的位置,可以使两个运算单元的逻辑链长度相近。相应地,可以使两个运算单元的逻辑延迟相近,从而可以避免其中一级的逻辑延迟过大,进而实现更快的运行频率。
图9为一实施例的结果确定模块和触发器组的连接示意图之二,参考图9,在本实施例中,所述结果确定模块包括级联的三个所述运算单元,三个运算单元分别为211a、211b和211c,相邻级的所述运算单元连接至同一所述触发器组600。其中,第一级所述运算单元211a用于接收三个所述参数值,对获取到的所述参数值进行c=c^b;c=c-rot(b,14);a=a^c;a=a-rot(c,11);b=b^a;b=b-rot(a,25)的组合运算操作,并将运算结果传输至第一个所述触发器组600进行锁存。第二级所述运算单元211b用于从第一个所述触发器组600获取三个所述参数值,对获取到的所述参数值进行c=c^b;c=c-rot(b,16);a=a^c;a=a-rot(c,4);b=b^a;b=b-rot(a,14)的组合运算操作,并将运算结果传输至第二个所述触发器组600进行锁存。第三级所述运算单元211c用于从第二个所述触发器组600获取三个所述参数值,对获取到的所述参数值进行c=c^b;c=c-rot(b,24)的组合运算操作。结合参考图8和图9,本实施例通过插入两级触发器组600,进一步缩短了组合逻辑链的长度,从而使逻辑运算模组的综合频率能够进一步提升。
在其中一个实施例中,其中,第二混合模块通过第三规则对参数进行处理,第三规则可以为:
switch(length)
{
case 12:c+=k[2];b+=k[1];a+=k[0];break;
case 11:c+=k[2]&0xffffff;b+=k[1];a+=k[0];break;
case 10:c+=k[2]&0xffff;b+=k[1];a+=k[0];break;
case 9:c+=k[2]&0xff;b+=k[1];a+=k[0];break;
case 8:b+=k[1];a+=k[0];break;
case 7:b+=k[1]&0xffffff;a+=k[0];break;
case 6:b+=k[1]&0xffff;a+=k[0];break;
case 5:b+=k[1]&0xff;a+=k[0];break;
case 4:a+=k[0];break;
case 3:a+=k[0]&0xffffff;break;
case 2:a+=k[0]&0xffff;break;
case 1:a+=k[0]&0xff;break;
case 0:return c;
}
图10为一实施例的LOOKUP3哈希算法的处理电路的结构示意图之二,图10用于进一步说明处理电路中的其他硬件结构,由于其他硬件结构中不涉及触发器组,所以图10未示出触发器组,触发器组的具体设置方式可参考前述实施例,此处不再赘述。参考图10,所述处理电路还包括函数调用模块500。
所述函数调用模块500分别与所述第一混合模块100、所述第二混合模块400和所述截取模块300连接,所述函数调用模块500用于接收报文数据或所述截取模块300输出的数据,以作为新的所述输入数据;当输入数据的字节长度大于n时,函数调用模块500选择调用所述第一混合模块100,并将新的所述输入数据传输至所述第一混合模块100;当所述输入数据的字节长度小于或等于n时,函数调用模块500选择调用所述第二混合模块400,并将新的所述输入数据传输至所述第二混合模块400。具体地,以n=12为例,若函数调用模块500接收到的输入数据的长度大于12字节,则选择调用所述第一混合模块100和所述截取模块300;若函数调用模块500接收到的输入数据的长度小于或等于12字节,则选择调用所述第二混合模块400和所述结果确定模块200。基于上述方式,函数调用模块500可以实现对不同长度的输入数据的分类处理,从而提高LOOKUP3哈希算法的处理电路的普适性。
本申请实施例还提供了一种芯片,包括如上述的LOOKUP3哈希算法的处理电路。基于前述的LOOKUP3哈希算法的处理电路,本实施例的芯片能够对接收到的数据进行快速处理,从而实现对内存地址的快速、均衡分配。其中,本实施例的芯片可以是但不限于ASIC芯片。
一种终端,包括如上述的芯片。基于前述的LOOKUP3哈希算法的处理电路,本实施例的终端能够对接收到的数据进行快速处理,从而对数据的快速、均衡存储。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请实施例的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请实施例构思的前提下,还可以做出若干变形和改进,这些都属于本申请实施例的保护范围。因此,本申请实施例专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种LOOKUP3哈希算法的处理电路,其特征在于,包括:
第一混合模块,用于当输入数据的字节长度大于n时,根据所述输入数据进行对应的第一组合逻辑运算,以获取n字节的运算结果,所述第一组合逻辑运算包括循环执行的减法运算、移位异或运算和加法运算,其中,所述n为正整数;
截取模块,与所述第一混合模块连接,用于截取去除所述输入数据中的n个字节,并将截取后剩余的数据作为新的所述输入数据;
第二混合模块,用于当所述输入数据的字节长度小于或等于n时,根据所述输入数据进行对应的第二组合逻辑运算,以获取n字节的运算结果;
结果确定模块,与所述第二混合模块连接,用于接收所述第二混合模块的运算结果,并根据接收到的运算结果进行对应的第三组合逻辑运算,以获取n字节的LOOKUP3哈希算法的处理结果,所述第三组合逻辑运算包括循环执行的异或运算和移位减法运算;
其中,所述第一混合模块和所述结果确定模块为目标运算模块,所述目标运算模块包括i级运算单元和i-1个触发器组,i级所述运算单元用于串行执行对应的组合逻辑运算,第j-1个所述触发器组用于对第j-1级所述运算单元的运算结果进行锁存,并将锁存的运算结果输出至第j级所述运算单元,i和j均为正整数,且1<j≤i<n,所述运算单元的运算结果包括三个参数的参数值,所述触发器组包括三个触发器,三个所述触发器分别用于一一对应对三个所述参数值进行锁存。
2.根据权利要求1所述的处理电路,其特征在于,各所述运算单元分别用于对全部所述参数进行至少一次运算。
3.根据权利要求2所述的处理电路,其特征在于,第j-1级所述运算单元最后执行的逻辑运算所运算的参数与第j级所述运算单元最先执行的逻辑运算所运算的参数不同。
4.根据权利要求1所述的处理电路,其特征在于,三个所述参数分别记为a、b和c,所述第一混合模块用于分别接收三个所述参数当前的参数值,并根据第一运算公式和当前的三个所述参数值进行所述第一组合逻辑运算,以分别获取三个所述参数运算后的参数值作为所述第一混合模块的运算结果,所述第一运算公式包括:
a=a-c;a=a^rot(c,4);c=c+b;b=b-a;b=b^rot(a,6);a=a+c;c=c-b;c=c^rot(b,8);b=b+a;a=a-c;a=a^rot(c,16);c=c+b;b=b-a;b=b^rot(a,19);a=a+c;c=c-b;c=c^rot(b,4);b=b+a。
5.根据权利要求4所述的处理电路,其特征在于,所述第一混合模块包括级联的两个所述运算单元,其中,
第一级所述运算单元用于获取三个所述参数当前的参数值,对当前的所述参数值进行a=a-c;a=a^rot(c,4);c=c+b;b=b-a;b=b^rot(a,6);a=a+c;c=c-b;c=c^rot(b,8);b=b+a的组合运算操作,并将运算结果传输至第一个所述触发器组进行锁存;
第二级所述运算单元用于从第一个所述触发器组获取三个所述参数值,对获取到的所述参数值进行a=a-c;a=a^rot(c,16);c=c+b;b=b-a;b=b^rot(a,19);a=a+c;c=c-b;c=c^rot(b,4);b=b+a的组合运算操作,第二级所述运算单元运算后的参数值作为所述第一混合模块的运算结果。
6.根据权利要求4所述的处理电路,其特征在于,所述第一混合模块包括级联的四个所述运算单元,其中,
第一级所述运算单元用于获取三个所述参数当前的参数值,对当前的所述参数值进行a=a-c;a=a^rot(c,4);c=c+b;b=b-a;b=b^rot(a,6)的组合运算操作,并将运算结果传输至第一个所述触发器组进行锁存;
第二级所述运算单元用于从第一个所述触发器组获取三个所述参数值,对获取到的所述参数值进行a=a+c;c=c-b;c=c^rot(b,8);b=b+a的组合运算操作,并将运算结果传输至第二个所述触发器组进行锁存;
第三级所述运算单元用于从第二个所述触发器组获取三个所述参数值,对获取到的所述参数值进行a=a-c;a=a^rot(c,16);c=c+b;b=b-a;b=b^rot(a,19)的组合运算操作,并将运算结果传输至第三个所述触发器组进行锁存;
第四级所述运算单元用于从第三个所述触发器组获取三个所述参数值,对获取到的所述参数值进行a=a+c;c=c-b;c=c^rot(b,4);b=b+a的组合运算操作,第四级所述运算单元运算后的参数值作为所述第一混合模块的运算结果。
7.根据权利要求1所述的处理电路,其特征在于,三个所述参数分别记为a、b和c,所述结果确定模块用于分别接收三个所述参数当前的参数值,并根据第二运算公式和当前的三个所述参数值进行所述第三组合逻辑运算,以分别获取三个所述参数运算后的参数值作为所述结果确定模块的运算结果,所述第二运算公式包括:
c=c^b;c=c-rot(b,14);a=a^c;a=a-rot(c,11);b=b^a;b=b-rot(a,25);c=c^b;
c=c-rot(b,16);a=a^c;a=a-rot(c,4);b=b^a;b=b-rot(a,14);c=c^b;c=c-rot(b,24)。
8.根据权利要求7所述的处理电路,其特征在于,所述结果确定模块包括级联的两个所述运算单元,其中,
第一级所述运算单元用于获取三个所述参数当前的参数值,对当前的所述参数值进行c=c^b;c=c-rot(b,14);a=a^c;a=a-rot(c,11);b=b^a;b=b-rot(a,25)的组合运算操作,并将运算结果传输至第一个所述触发器组进行锁存;
第二级所述运算单元用于从第一个所述触发器组获取三个所述参数值,对获取到的所述参数值进行c=c^b;c=c-rot(b,16);a=a^c;a=a-rot(c,4);b=b^a;b=b-rot(a,14);c=c^b;c=c-rot(b,24)的组合运算操作,第二级所述运算单元运算后的参数值作为所述结果确定模块的运算结果。
9.根据权利要求7所述的处理电路,其特征在于,所述结果确定模块包括级联的三个所述运算单元,其中,
第一级所述运算单元用于获取三个所述参数当前的参数值,对获取到的所述参数值进行c=c^b;c=c-rot(b,14);a=a^c;a=a-rot(c,11);b=b^a;b=b-rot(a,25)的组合运算操作,并将运算结果传输至第一个所述触发器组进行锁存;
第二级所述运算单元用于从第一个所述触发器组获取三个所述参数值,对获取到的所述参数值进行c=c^b;c=c-rot(b,16);a=a^c;a=a-rot(c,4);b=b^a;b=b-rot(a,14)的组合运算操作,并将运算结果传输至第二个所述触发器组进行锁存;
第三级所述运算单元用于从第二个所述触发器组获取三个所述参数值,对获取到的所述参数值进行c=c^b;c=c-rot(b,24)的组合运算操作,第三级所述运算单元运算后的参数值作为所述结果确定模块的运算结果。
10.根据权利要求1所述的处理电路,其特征在于,所述处理电路还包括:
函数调用模块,所述函数调用模块分别与所述第一混合模块、所述第二混合模块和所述截取模块连接,所述函数调用模块用于接收报文数据或所述截取模块输出的数据,以作为新的所述输入数据;当输入数据的字节长度大于n时,选择调用所述第一混合模块,并将新的所述输入数据传输至所述第一混合模块;当所述输入数据的字节长度小于或等于n时,选择调用所述第二混合模块,并将新的所述输入数据传输至所述第二混合模块。
11.一种芯片,其特征在于,包括如权利要求1至10任一项所述的LOOKUP3哈希算法的处理电路。
12.一种终端,其特征在于,包括如权利要求11所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111187145.3A CN113946313B (zh) | 2021-10-12 | 2021-10-12 | Lookup3哈希算法的处理电路、芯片和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111187145.3A CN113946313B (zh) | 2021-10-12 | 2021-10-12 | Lookup3哈希算法的处理电路、芯片和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113946313A CN113946313A (zh) | 2022-01-18 |
CN113946313B true CN113946313B (zh) | 2023-05-05 |
Family
ID=79329683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111187145.3A Active CN113946313B (zh) | 2021-10-12 | 2021-10-12 | Lookup3哈希算法的处理电路、芯片和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113946313B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004063842A2 (en) * | 2003-01-16 | 2004-07-29 | Discretix Technologies Ltd. | Flexible hardware implementation of hash functions |
CN105190534A (zh) * | 2013-03-14 | 2015-12-23 | 国际商业机器公司 | 执行伪随机数种子操作的指令 |
CN212411183U (zh) * | 2020-08-19 | 2021-01-26 | 深圳比特微电子科技有限公司 | 用于执行散列算法的运算电路、芯片和计算装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249255B2 (en) * | 2001-06-13 | 2007-07-24 | Corrent Corporation | Apparatus and method for a hash processing system using multiple hash storage areas |
US7121639B2 (en) * | 2002-12-02 | 2006-10-17 | Silverbrook Research Pty Ltd | Data rate equalisation to account for relatively different printhead widths |
GB2508343A (en) * | 2012-11-28 | 2014-06-04 | Ibm | Replacing a hash function if a second hash function is more effective |
DE102013201687A1 (de) * | 2013-02-01 | 2014-08-07 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Erzeugen von Zufallsbits |
EP3092737B1 (en) * | 2014-01-07 | 2019-11-06 | CPacket Networks, Inc. | Systems for enhanced monitoring, searching, and visualization of network data |
CN109905228B (zh) * | 2017-12-07 | 2023-07-25 | 北京智云芯科技有限公司 | 一种实现哈希运算的专用计算电路 |
CN113489659A (zh) * | 2021-06-30 | 2021-10-08 | 新华三信息安全技术有限公司 | 一种报文处理方法及装置 |
-
2021
- 2021-10-12 CN CN202111187145.3A patent/CN113946313B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004063842A2 (en) * | 2003-01-16 | 2004-07-29 | Discretix Technologies Ltd. | Flexible hardware implementation of hash functions |
CN105190534A (zh) * | 2013-03-14 | 2015-12-23 | 国际商业机器公司 | 执行伪随机数种子操作的指令 |
CN212411183U (zh) * | 2020-08-19 | 2021-01-26 | 深圳比特微电子科技有限公司 | 用于执行散列算法的运算电路、芯片和计算装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113946313A (zh) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Adams et al. | The structured design of cryptographically good S-boxes | |
US10545865B2 (en) | Systems and methods for implementing low-latency lookup circuits using sparse hash functions | |
Borghoff et al. | PRINCE–a low-latency block cipher for pervasive computing applications | |
EP3468147B1 (en) | Method for constructing secure hash functions from bit-mixers | |
EP2661834B1 (en) | A design of a good general-purpose hash function with limited resources | |
WO2006033013A2 (en) | Substitution boxes | |
CN111464308A (zh) | 一种实现多种哈希算法可重构的方法和系统 | |
US7123720B2 (en) | Key scheduler for encryption apparatus using data encryption standard algorithm | |
CN112136134B (zh) | 具有组合的函数的加密asic | |
Kahri et al. | Efficient FPGA hardware implementation of secure hash function SHA-256/Blake-256 | |
Mihaljević et al. | A cellular automaton based fast one-way hash function suitable for hardware implementation | |
CN113946313B (zh) | Lookup3哈希算法的处理电路、芯片和终端 | |
Daemen et al. | A hardware design model for cryptographic algorithms | |
Wada et al. | Efficient byte stream pattern test using Bloom filter with rolling hash functions on the FPGA | |
CN113839772B (zh) | 托普利茨哈希算法的处理电路、芯片和终端 | |
Lemire | The universality of iterated hashing over variable-length strings | |
Naito et al. | Aes-lbbb: Aes mode for lightweight and bbb-secure authenticated encryption | |
Jasim et al. | Design and Implementation Secure Hash Algorithm 3 (SHA-3) using FPGA | |
Satoh et al. | High-Speed MARS Hardware. | |
Hulle et al. | Compact Reconfigurable Architecture for Sosemanuk Stream Cipher | |
US6396896B1 (en) | Implementation of functions of multiple successive bits of a shift register | |
Kamble et al. | Hardware implementations of LBlock and XXTEA lightweight block ciphers for resource-constrained IoT application | |
CN118153118A (zh) | 执行哈希算法的装置 | |
WO2023040595A1 (zh) | 芯片及消息认证码的生成方法 | |
Matsui | Supporting Document of MISTY1 |
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 |