CN104704780A - 减小复杂性的散列 - Google Patents
减小复杂性的散列 Download PDFInfo
- Publication number
- CN104704780A CN104704780A CN201380053366.9A CN201380053366A CN104704780A CN 104704780 A CN104704780 A CN 104704780A CN 201380053366 A CN201380053366 A CN 201380053366A CN 104704780 A CN104704780 A CN 104704780A
- Authority
- CN
- China
- Prior art keywords
- hash
- output vector
- input vector
- vector
- row
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
通过利用散列矩阵结构来减小散列复杂性,所述散列矩阵结构准许实施对应散列函数,使得响应于位(x)(x(1)-x(m))的输入向量产生位(y)(y(1)-y(m))的输出向量而不将所述输入向量中的每一位与所述散列矩阵的任一行中的每一位组合。
Description
本发明一般来说涉及散列函数,且更特定来说涉及散列函数的减小的复杂性实施。
背景技术
散列函数广泛地用以加速在大数据库中查找项目。通常,散列函数输出为其中可存储与散列输入匹配的条目的存储器中的位置的索引。由散列输出索引的存储器空间的大小远远小于输入空间的基数。散列用以将伪随机生成的输入条目指派到有限存储器空间中的特定位置。在散列碰撞率最小化时,存储器利用最大化。在多个不同散列输入产生相同散列输出值时,散列碰撞发生。假设输入分布为均匀的,那么期望具有均匀的散列输出分布以将散列碰撞的概率最小化。
散列函数的一个实例性用途为网络交换器中的路由表查找。网络交换器使用散列函数来存储及查找路由信息。设想可将64k个条目存储于路由表中的IPv6网络交换器。每一路由表条目由与转发端口配对的IPv6目的地地址组成。路由表中的条目的位置由在将IPv6目的地地址输入到散列函数时所产生的散列函数输出来识别。在封包到达网络交换器时,基于从所述封包提取的IPv6目的地地址输入而计算散列函数输出。散列函数输出提供对可含有匹配IPv6地址的路由表条目的索引。在此特定实例中,散列输入为128位宽的IPv6目的地地址且散列输出为指出64k个条目的路由表中的一位置的16位宽的索引。换句话说,散列函数为从128位输入到16位输出的映射。
在网络交换器应用中,在路由规则由例如MAC地址、IPv6地址、TCP端口数目等许多元组组成时,到散列函数的输入的位宽度可为极大的。在开放流(OpenFlow)标准中,举例来说,网络交换器流规则需要600位以上的散列输入。同时,网络交换器应用的散列函数处理量要求是极为严厉的以便足够快速地搜寻流路由规则以保持与传入封包业务速率同步。举例来说,具有10Gbps端口的64个实例的网络交换器每秒需要接近10亿次表查找。高度期望具有均匀的散列输出分布以便以最小散列碰撞将存储器空间利用最大化。
一种流行的常规散列技术是基于XOR(“异或”)运算的。如先前所指示,散列函数为n位输入与m位输出之间的映射。通常,输入位宽度n远远大于输出位宽度m(n>>m)。假设x为散列输入位的1×n向量,且假设y为散列输出位的1×m向量。“异或”散列输出y是通过输入向量x与n×m二元矩阵H的GF(2)(伽罗瓦域2(Galois field 2))乘法获得,如下文所展示
y=x·H (1)
其中“·”指示向量-矩阵GF(2)乘法。二元矩阵H称为散列矩阵。
上文由(1)所表示的基于“异或”的散列可使用“异或”逻辑在硬件中实施。假设x(a)为向量x的第a位,H(a,b)为散列矩阵H的(a,b)成分,H(:,b)为H的第b列,且H(a,:)为H的第a行。输出向量y的每一位通过输入向量x中的经“异或”选择的位获得。对y的第i位(y(i))的“异或”输入选择由H的第i列(H(:,i))的非零位位置指定。举例来说,如果H(1,i)=H(4,i)=H(7,i)=1,同时H(:,i)的所有其它成分为零,那么y(i)是通过将x(1)、x(4)及x(7)进行“异或”而获得的。
在许多实用系统中,散列矩阵H可编程是重要的,因此散列函数可根据输入统计学更新。在一些应用中,出于安全目的,可随机挑选H。通常,在系统初始化期间将H编程。为将n×m二元矩阵H编程,在编程存储器空间中需要n×m个位。
如果准许H为任意的n×m二元矩阵,那么基于“异或”的散列函数可如图1中所展示而实施。在此常规架构中,散列矩阵H为任意的n×m二元矩阵,且散列输出根据上述(1)而获得。然而,在1×n个输入向量x极大时,图1架构不利地需要对应大的编程存储器空间(用以将H编程的n×m位)。此外,所述架构具有相当大的复杂性,这是因为1×m个输出向量y的每一位需要具有n个输入位的“异或”树。注意,图1的选择逻辑将输入向量x中的每一位与散列矩阵H的对应行中的每一位组合。
鉴于前述,对将大位宽度的输入散列以产生均匀的输出分布且具有低复杂性、低编程存储器空间、低延时及高处理量的期望是显而易见的。
附图说明
图1以图解方式图解说明常规散列架构。
图2以图解方式图解说明根据本发明的实例性实施例的散列架构。
图3以图解方式图解说明根据本发明的其它实例性实施例的散列架构。
图4以图解方式图解说明能够实施图2及3的散列功能性中的一些或所有散列功能性的数据处理布置。
图5图解说明可根据本发明的实例性实施例执行的运算。
具体实施方式
此提供具有均匀输出分布性质的最小汉明重量(Hamming weight)的基于“异或”的散列,所述基于“异或”的散列具有比图1中所展示的常规类型的基于“异或”的散列显著较低的复杂性以及潜在较佳的处理量及延时。
在最小汉明重量的“异或”散列中,散列矩阵H具有下文由(2)给出的结构,其中每一构成矩阵Cj(j=1、2、…、n/m)为具有每行及每列的汉明重量为1的性质的m×m二元矩阵。
具有此结构及性质的散列矩阵保证,每一输入位仅一次用于散列输出计算,且每一输入位仅有助于一个输出位。这是因为H的任一行的汉明重量为1。如果任一行具有汉明重量=0,那么此指示对应输入位将不会用于散列输出计算。需要每一行具有汉明重量=1是完全利用输入位的最小要求。
在Cj列当中,列汉明重量约束(Cj的每列的汉明重量为1)将汉明重量变化最小化。据暗示,在n为m的倍数时所有散列输出位是通过对相同数目个输入位进行“异或”而计算。上文由(2)给出的结构假设,n为m的倍数。如果不是如此,那么为了建构最小汉明重量的矩阵H,一些实施例采用m×m矩阵C1、…Cfloor(n/m)的floor(n/m)实例及额外(n-m*floor(n/m))行c1、…cn-m*floor(n/m),其汉明重量中的每一者为1。这些额外行中的任何两者均不应相同,且每一额外行可位于H的任一行位置处。最小汉明重量的散列矩阵的两个实例遵循:第一,其中n=16且m=4;及第二,其中n=10且m=4,且其中为随机排列的A×A单位矩阵。
如上文所述,通常期望提供具有均匀分布的散列输出。只要输入分布为均匀的,最小汉明重量“异或”散列就可保证均匀的输出分布。同时,其复杂性显著低于基于完全任意的矩阵的“异或”散列(例如图1中所展示)的复杂性。
如上文在(2)中所展示的最小汉明重量散列矩阵H可用小于n×m位来表示。通过使用每一行的汉明重量为1的事实,可用具有ceil(log2(m))位的排列值(‘排列’)来描述H矩阵的每一行。给定行的‘排列’值主要指示非零位在所述行中的位置。为了全面地描述H矩阵,需要n个‘排列’值(perm(1)、…perm(n)),一个‘排列’值用于H的每一行,或等效地一个用于每一输入位。
图2以图解方式图解说明根据本发明的实例性实施例的在n为m的倍数时实现最小汉明重量“异或”散列的架构。所属领域的技术人员将易知,对较泛型情形(即,其中n不是m的倍数)的扩展是直接的。在图2中,通过计算GF(2)向量-矩阵乘法x(a*m+1,...,(a+1)*m)·Ca,排列逻辑21的n/m个实例中的每一者产生1×m个向量z(a+1,:),其中对于排列逻辑21的相应实例,a=0、1、…、n/m-1。排列逻辑21的给定实例的输出位z(a+1,b)(对于b=1、2、…、m)是通过在由perm(a*m+b)信号索引的m个输入位x(a*m+1)、…、x((a+1)*m)当中选择一个位而获得。换句话说,排列逻辑21的每一实例的每一输出位可通过对应m位(即,m到1)的多路复用器实施。从每一排列逻辑21输出的m位分别馈送到m个“异或”树23。m个“异或”树23中的每一者接收n/m个输入位(从每一排列逻辑21接收一个),且通过获得n/m个输入位的“异或”结果而产生散列输出向量y的对应位(y(1)、y(2)、…y(m))。
下文表1总结完全泛型“异或”散列(例如,参见图1)及最小汉明重量“异或”散列(例如,参见图2)的复杂性。对于最小汉明重量“异或”散列来说,将散列矩阵H编程的存储器要求显著较低,这是因为具有ceil(log2(m))位的一个‘排列’值就足以表示H的每一行,而泛型矩阵需要每行m位。对于n=640,m=16的例子,图2的排列逻辑21的复杂性类似于图1的选择逻辑的复杂性。然而,最小汉明重量“异或”散列利用稀疏H矩阵结构且实施“异或”树的复杂性减少到1/16。
表1
为了进一步降低最小汉明重量的散列的复杂性,一些实施例将额外约束强加于上文(2)中的矩阵Cj。一个实例为(3)中给出的子矩阵结构:
其中Aa,b为k×k矩阵(k<m,m为k的倍数),且a及b为Cj中的构成k×k矩阵的相应行及列索引。对于给定行索引a,在矩阵Aa,1、…Aa,m/k当中仅存在一个非零矩阵。对于给定列索引b,A1,b、…Am/k,b当中的非零矩阵的数目也为1。上文在(3)中的每一非零矩阵Aa,b被排列为k×k单位矩阵。下文给出H(对于n=16,m=4,k=m/2)的实例。
图3以图解方式图解说明根据本发明的实例性实施例的在应用(3)的散列矩阵结构时的散列架构。m个输入位的n/m组中的每一者被应用到排列逻辑31及选择逻辑33的对应两级级联式布置。针对输入位的每一k位分段单独地执行排列。排列逻辑31模拟地运算以排列图2的逻辑21,但针对给定行索引a仅使用Aa,1、…Aa,m/k当中的非零矩阵来排列每一k输入位分段。由于非零矩阵尺寸为k×k,因此给定排列逻辑31的m个‘排列’信号中的每一者可由ceil(log2(k))位来表示。选择逻辑33针对给定列索引b基于A1,b、…Am/k,b当中的非零矩阵位置将m个经排列位的k位分段映射到m位位置。因此,每一选择逻辑33使用各自具有ceil(log2(m/k))位的m个选择信号35。每一选择逻辑33产生等效于图2的排列逻辑21所产生的输出位的m个输出位。图3的m个“异或”树23以与图2相同的方式运算,以与图2中的m个“异或”树23接收并处理从排列逻辑级21输出的位相同的方式接收并处理由选择逻辑级33输出的位。
通过使用(3)的子矩阵结构,排列逻辑31及选择逻辑33可借助k输入多路复用器的n个实例(每逻辑31m个多路复用器)及m/k输入多路复用器的n个实例(每逻辑33m个多路复用器)来实施。在n=640,m=16,k=4的实例性情形中,排列逻辑31及选择逻辑33的总复杂性等效于2输入“与”门的3840个实例,与等效于2输入“与”门的9600个实例的图2的排列逻辑21所需要的总复杂性相比,复杂性减小到1/2.67。
各个实施例以各种方式(举例来说,硬件、软件以及硬件与软件的组合)实施图2及3的架构。图4图解说明,在一些实施例中,通过执行存储于适合机器可读代码存储媒体43上的代码的适合数据处理资源41来实施上文相对于图2(或图3)所描述的功能性(或其部分)。以虚线展示代码存储媒体43以指示存储媒体可物理上不同于数据处理资源41,或可部分或完全与数据处理资源41集成。
如上文所述,图1的常规布置将输入向量x中的每一位与散列矩阵H的对应行中的每一位组合。相比来说,如依据图2及3的前述说明显而易见,本发明并不将x中的每一位与H的任一行中的每一位组合。因此,且如上文在表1中所述,图2及3的“异或”树23需要比图1的“异或”树显著较低的门计数。
图5图解说明可根据本发明的实例性实施例执行的运算。上文相对于图2及3所描述的实施例能够执行所图解说明运算。在51处,提供散列输入向量x。在52处,产生散列输出向量y而不将x中的每一位与散列矩阵H的任一行中的每一位组合。
所属领域的技术人员将了解,在所主张发明的范围内,可对所描述实施例做出修改,而且许多其它实施例为可能的。
Claims (20)
1.一种实施散列函数的方法,所述散列函数将输入向量的位与散列矩阵的位进行伽罗瓦域2相乘以产生小于所述输入向量的输出向量的位,所述方法包括:
提供所述输入向量;以及
响应于所述输入向量产生所述输出向量而不将所述输入向量中的每一位与所述散列矩阵的任一行中的每一位组合。
2.根据权利要求1所述的方法,其中所述产生包含执行多个选择运算,且其中所述选择运算中的每一者从所述输入向量位的相应对应子集当中选择一个位。
3.根据权利要求2所述的方法,其中所述产生包含执行“异或”XOR运算,所述“异或”运算对通过所述选择运算选择的所述位进行“异或”运算以产生所述输出向量位中的一者。
4.根据权利要求3所述的方法,其中所述散列矩阵的每一行仅含有一个非零位,其中所述散列矩阵的每一列满足第一及第二条件中的一者,其中所述第一条件为每一列含有相同数目个非零位,其中所述第二条件为所述列中的每一列所含有的非零位的数目与任何其它列中所含有的非零位的数目相差都不超过一,其中每一所述子集所含有的位的数目等于所述散列矩阵中的列的数目,且其中通过所述选择运算选择的所述位中的每一者对所述输出向量的影响仅限于所述一个输出向量位。
5.根据权利要求4所述的方法,其中所述产生包含针对所述输出向量位中的每一者执行对应的所述多个选择运算及对应的所述“异或”运算以产生所述输出向量位。
6.根据权利要求2所述的方法,其中所述选择运算中的每一者包含与第二级选择级联的第一级选择。
7.一种用于实施散列函数的设备,所述散列函数将输入向量的位与散列矩阵的位进行伽罗瓦域2相乘以产生小于所述输入向量的输出向量的位,所述设备包括:
输入,其用于接收所述输入向量;
输出,其用于提供所述输出向量;以及
逻辑,其耦合到所述输入及所述输出,且经配置以响应于所述输入向量产生所述输出向量而不将所述输入向量中的每一位与所述散列矩阵的任一行中的每一位组合。
8.根据权利要求7所述的设备,其中所述逻辑实施多个选择运算,且其中所述选择运算中的每一者从所述输入向量位的相应对应子集当中选择一个位。
9.根据权利要求8所述的设备,其中所述逻辑实施“异或”XOR运算,所述“异或”运算对通过所述选择运算选择的所述位进行“异或”运算以产生所述输出向量位中的一者。
10.根据权利要求9所述的设备,其中所述散列矩阵的每一行仅含有一个非零位,其中所述散列矩阵的每一列满足第一及第二条件中的一者,其中所述第一条件为每一列含有相同数目个非零位,其中所述第二条件为所述列中的每一列所含有的非零位的数目与任何其它列中所含有的非零位的数目相差都不超过一,其中每一所述子集所含有的位的数目等于所述散列矩阵中的列的数目,且其中通过所述选择运算选择的所述位中的每一者对所述输出向量的影响仅限于所述一个输出向量位。
11.根据权利要求10所述的设备,其中所述逻辑针对所述输出向量位中的每一者实施对应的所述多个选择运算及对应的所述“异或”运算以产生所述输出向量位。
12.根据权利要求8所述的设备,其中所述选择运算中的每一者包含与第二级选择级联的第一级选择。
13.一种其上存储有支持实施散列函数的代码的机器可读媒体,所述散列函数将输入向量的位与散列矩阵的位进行伽罗瓦域2相乘以产生小于所述输入向量的输出向量的位,其中所述代码在由数据处理资源执行时致使所述数据处理资源执行包括以下各项的过程:
接收所述输入向量;以及
响应于所述输入向量产生所述输出向量而不将所述输入向量中的每一位与所述散列矩阵的任一行中的每一位组合。
14.根据权利要求13所述的机器可读媒体,其中所述产生包含执行多个选择运算,且其中所述选择运算中的每一者从所述输入向量位的相应对应子集当中选择一个位。
15.根据权利要求14所述的机器可读媒体,其中所述产生包含执行“异或”XOR运算,所述“异或”运算对通过所述选择运算选择的所述位进行“异或”运算以产生所述输出向量位中的一者。
16.根据权利要求15所述的机器可读媒体,其中所述散列矩阵的每一行仅含有一个非零位,其中所述散列矩阵的每一列满足第一及第二条件中的一者,其中所述第一条件为每一列含有相同数目个非零位,其中所述第二条件为所述列中的每一列所含有的非零位的数目与任何其它列中所含有的非零位的数目相差都不超过一,其中每一所述子集所含有的位的数目等于所述散列矩阵中的列的数目,且其中通过所述选择运算选择的所述位中的每一者对所述输出向量的影响仅限于所述一个输出向量位。
17.根据权利要求16所述的机器可读媒体,其中所述产生包含针对所述输出向量位中的每一者执行对应的所述多个选择运算及对应的所述“异或”运算以产生所述输出向量位。
18.根据权利要求14所述的机器可读媒体,其中所述选择运算中的每一者包含与第二级选择级联的第一级选择。
19.一种用于实施散列函数的设备,所述散列函数将输入向量的位与散列矩阵的位进行伽罗瓦域2相乘以产生小于所述输入向量的输出向量的位,所述设备包括:
用于接收所述输入向量的装置;以及
用于产生所述输出向量的装置,其响应于所述输入向量产生所述输出向量而不将所述输入向量中的每一位与所述散列矩阵的任一行中的每一位组合。
20.根据权利要求19所述的设备,其中所述产生包含执行多个选择运算,其中所述选择运算中的每一者从所述输入向量位的相应对应子集当中选择一个位,且其中所述产生包含执行“异或”XOR运算,所述“异或”运算对通过所述选择运算选择的所述位进行“异或”运算以产生所述输出向量位中的一者。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261724115P | 2012-11-08 | 2012-11-08 | |
US61/724,115 | 2012-11-08 | ||
US13/922,327 US9646105B2 (en) | 2012-11-08 | 2013-06-20 | Reduced complexity hashing |
US13/922,327 | 2013-06-20 | ||
PCT/US2013/069062 WO2014074779A1 (en) | 2012-11-08 | 2013-11-08 | Reduced complexity hashing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104704780A true CN104704780A (zh) | 2015-06-10 |
CN104704780B CN104704780B (zh) | 2018-05-01 |
Family
ID=50623366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380053366.9A Active CN104704780B (zh) | 2012-11-08 | 2013-11-08 | 减小复杂性的散列的方法及实施该方法的设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9646105B2 (zh) |
CN (1) | CN104704780B (zh) |
WO (1) | WO2014074779A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317548B2 (en) | 2013-01-30 | 2016-04-19 | International Business Machines Corporation | Reducing collisions within a hash table |
US9311359B2 (en) | 2013-01-30 | 2016-04-12 | International Business Machines Corporation | Join operation partitioning |
US9367556B2 (en) * | 2013-06-14 | 2016-06-14 | International Business Machines Corporation | Hashing scheme using compact array tables |
US9471710B2 (en) | 2013-06-14 | 2016-10-18 | International Business Machines Corporation | On-the-fly encoding method for efficient grouping and aggregation |
US9672248B2 (en) | 2014-10-08 | 2017-06-06 | International Business Machines Corporation | Embracing and exploiting data skew during a join or groupby |
US10303791B2 (en) | 2015-03-20 | 2019-05-28 | International Business Machines Corporation | Efficient join on dynamically compressed inner for improved fit into cache hierarchy |
US10650011B2 (en) | 2015-03-20 | 2020-05-12 | International Business Machines Corporation | Efficient performance of insert and point query operations in a column store |
US9922064B2 (en) | 2015-03-20 | 2018-03-20 | International Business Machines Corporation | Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables |
US10108653B2 (en) | 2015-03-27 | 2018-10-23 | International Business Machines Corporation | Concurrent reads and inserts into a data structure without latching or waiting by readers |
US10831736B2 (en) | 2015-03-27 | 2020-11-10 | International Business Machines Corporation | Fast multi-tier indexing supporting dynamic update |
US11625584B2 (en) * | 2019-06-17 | 2023-04-11 | Intel Corporation | Reconfigurable memory compression techniques for deep neural networks |
WO2022191980A1 (en) * | 2021-03-12 | 2022-09-15 | Raytheon BBN Technologies, Corp. | Parametric filter using hash functions with improved time and memory |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080189381A1 (en) * | 2007-02-01 | 2008-08-07 | Universal Data Protection Corporation | Method and system for secure communication between devices |
US7472334B1 (en) * | 2003-10-15 | 2008-12-30 | Scott Thomas P | Efficient method for the reconstruction of digital information |
CN101681316A (zh) * | 2008-03-01 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3825894A (en) * | 1973-09-24 | 1974-07-23 | Ibm | Self-checking parity checker for two or more independent parity coded data paths |
US4162480A (en) * | 1977-01-28 | 1979-07-24 | Cyclotomics, Inc. | Galois field computer |
US4215402A (en) * | 1978-10-23 | 1980-07-29 | International Business Machines Corporation | Hash index table hash generator apparatus |
US4538240A (en) * | 1982-12-30 | 1985-08-27 | International Business Machines Corporation | Method and apparatus for performing hashing operations using Galois field multiplication |
US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US5559453A (en) * | 1995-09-28 | 1996-09-24 | International Business Machines Corporation | Interlocked restore circuit |
US6097725A (en) * | 1997-10-01 | 2000-08-01 | International Business Machines Corporation | Low cost searching method and apparatus for asynchronous transfer mode systems |
US6877119B2 (en) * | 2001-09-14 | 2005-04-05 | Stmicroelectronics Limited | Circuit scan output arrangement |
US7177891B2 (en) * | 2002-10-09 | 2007-02-13 | Analog Devices, Inc. | Compact Galois field multiplier engine |
US7039854B1 (en) * | 2002-02-21 | 2006-05-02 | Ciena Corporation | Method and apparatus for performing syndrome computation in a decoder of a forward error correction (FEC) system |
US7085988B1 (en) * | 2002-04-08 | 2006-08-01 | Maxtor Corporation | Hashing system utilizing error correction coding techniques |
US7103832B2 (en) * | 2003-12-04 | 2006-09-05 | International Business Machines Corporation | Scalable cyclic redundancy check circuit |
US7328396B2 (en) * | 2004-05-28 | 2008-02-05 | International Business Machines Corporation | Cyclic redundancy check generating circuit |
US7231572B2 (en) * | 2005-04-15 | 2007-06-12 | Lsi Corporation | Method and circuit for parametric testing of integrated circuits with an exclusive-or logic tree |
US7984018B2 (en) * | 2005-04-18 | 2011-07-19 | Microsoft Corporation | Efficient point-to-multipoint data reconciliation |
US7242219B1 (en) * | 2005-09-08 | 2007-07-10 | Advanced Micro Devices, Inc. | Circuit for parity tree structure |
JP2007086170A (ja) * | 2005-09-20 | 2007-04-05 | Nec Corp | 汎用ハッシュ関数族計算装置、方法、プログラム、および共有鍵生成システム |
SI1976715T1 (sl) * | 2006-02-02 | 2011-01-31 | Peerless Chain Co | Samonapenjalne sneĺ˝ne verige in metode uporabe |
JP4787732B2 (ja) * | 2006-12-26 | 2011-10-05 | 富士通株式会社 | 情報ビット列の除算方法及びその装置 |
US7805595B2 (en) * | 2007-04-20 | 2010-09-28 | Arm Limited | Data processing apparatus and method for updating prediction data based on an operation's priority level |
TWI342703B (en) * | 2007-05-10 | 2011-05-21 | Ind Tech Res Inst | Low-latency method and apparatus of ghash operation for authenticated encryption galois counter mode |
US7827384B2 (en) * | 2007-07-16 | 2010-11-02 | Cisco Technology, Inc. | Galois-based incremental hash module |
US20090080646A1 (en) * | 2007-09-21 | 2009-03-26 | Chih-Hsu Yen | Method And Architecture For Parallel Calculating Ghash Of Galois Counter Mode |
US7557614B1 (en) * | 2008-07-15 | 2009-07-07 | International Business Machines Corporation | Topology for a n-way XOR/XNOR circuit |
US8804950B1 (en) * | 2008-09-30 | 2014-08-12 | Juniper Networks, Inc. | Methods and apparatus for producing a hash value based on a hash function |
TWI370388B (en) * | 2008-10-30 | 2012-08-11 | Ind Tech Res Inst | Semi-sequential galois field multiplier and the method for performing the same |
US8442217B2 (en) * | 2008-11-17 | 2013-05-14 | Intel Corporation | Method of implementing one way hash functions and apparatus therefor |
US8006150B2 (en) * | 2009-02-24 | 2011-08-23 | Kuwait University | Circuit and method for increasing scan cell observability of response compactors |
US20100303229A1 (en) * | 2009-05-27 | 2010-12-02 | Unruh Gregory | Modified counter mode encryption |
US8082359B2 (en) | 2009-12-23 | 2011-12-20 | Citrix Systems, Inc. | Systems and methods for determining a good RSS key |
RU2010110344A (ru) * | 2010-03-18 | 2011-09-27 | ЭлЭсАй Корпорейшн (US) | Криптографическая обработка с использованием процессора |
TWI406138B (zh) * | 2010-04-01 | 2013-08-21 | Ind Tech Res Inst | 循序運算的伽羅瓦乘法架構與方法 |
RU2011107568A (ru) * | 2011-03-01 | 2012-09-10 | ЭлЭсАй Корпорейшн (US) | Устройство (варианты) и способ генерирования конструкции комбинационного умножителя конечного поля малой глубины |
CN103975302B (zh) * | 2011-12-22 | 2017-10-27 | 英特尔公司 | 矩阵乘法累加指令 |
US8929539B2 (en) * | 2011-12-22 | 2015-01-06 | Intel Corporation | Instructions to perform Groestl hashing |
-
2013
- 2013-06-20 US US13/922,327 patent/US9646105B2/en active Active
- 2013-11-08 CN CN201380053366.9A patent/CN104704780B/zh active Active
- 2013-11-08 WO PCT/US2013/069062 patent/WO2014074779A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7472334B1 (en) * | 2003-10-15 | 2008-12-30 | Scott Thomas P | Efficient method for the reconstruction of digital information |
US20080189381A1 (en) * | 2007-02-01 | 2008-08-07 | Universal Data Protection Corporation | Method and system for secure communication between devices |
CN101681316A (zh) * | 2008-03-01 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
Also Published As
Publication number | Publication date |
---|---|
US9646105B2 (en) | 2017-05-09 |
US20140129568A1 (en) | 2014-05-08 |
CN104704780B (zh) | 2018-05-01 |
WO2014074779A1 (en) | 2014-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104704780A (zh) | 减小复杂性的散列 | |
US8804950B1 (en) | Methods and apparatus for producing a hash value based on a hash function | |
CN106850221B (zh) | 信息加密、解密方法及装置 | |
US7835357B2 (en) | Methods and apparatus for packet classification based on policy vectors | |
US9608913B1 (en) | Weighted load balancing in a multistage network | |
EP3186802A1 (en) | Encryption function and decryption function generating method, encryption and decryption method and related apparatuses | |
Baksi et al. | Quantum implementation and resource estimates for rectangle and knot | |
CN101848081A (zh) | 一种s盒构造方法及s盒 | |
Tong et al. | High-throughput online hash table on FPGA | |
US11283619B2 (en) | Bit mixer based parallel MAC and hash functions | |
Huang et al. | Automatic Search for the Linear (Hull) Characteristics of ARX Ciphers: Applied to SPECK, SPARX, Chaskey, and CHAM‐64 | |
Li et al. | Keyed hash function based on a dynamic lookup table of functions | |
Li et al. | Automatic preimage attack framework on ascon using a linearize-and-guess approach | |
CN106330424A (zh) | 基于sm3算法的密码模块的防攻击方法及装置 | |
CN103368725B (zh) | 一种g0类s盒构造方法及其电路 | |
CN110995403B (zh) | 一种搜索密码算法线性层硬件实现优化的方法 | |
Sasao | Row-shift decompositions for index generation functions | |
Wang et al. | Reorganized and compact DFA for efficient regular expression matching | |
Zhang et al. | Hardware implementation of compact AES S-box | |
Byun et al. | Vectored-bloom filter implemented on FPGA for IP address lookup | |
Heyse et al. | Attacking code-based cryptosystems with information set decoding using special-purpose hardware | |
US6928162B1 (en) | Method and system for manipulating and telescoping a hash function | |
Fonseca et al. | Developing redundant binary representations for genetic search | |
Zajac et al. | Cryptographic properties of small bijective S-boxes with respect to modular addition | |
Mendel et al. | Cryptanalysis of reduced variants of the FORK-256 hash function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |