CN101300569A - 从扩展图构造散列函数 - Google Patents

从扩展图构造散列函数 Download PDF

Info

Publication number
CN101300569A
CN101300569A CNA2006800404564A CN200680040456A CN101300569A CN 101300569 A CN101300569 A CN 101300569A CN A2006800404564 A CNA2006800404564 A CN A2006800404564A CN 200680040456 A CN200680040456 A CN 200680040456A CN 101300569 A CN101300569 A CN 101300569A
Authority
CN
China
Prior art keywords
summit
walkthrough
expander graphs
hash function
computer
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
Application number
CNA2006800404564A
Other languages
English (en)
Other versions
CN101300569B (zh
Inventor
K·E·劳特
D·X·查尔斯
E·Z·戈伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101300569A publication Critical patent/CN101300569A/zh
Application granted granted Critical
Publication of CN101300569B publication Critical patent/CN101300569B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Abstract

描述了从扩展图构造散列函数。在一方面,走查一扩展图以计算散列函数。该扩展图是使用输入消息的相应子集来走查的。所走查的最后一个顶点的标签是该散列函数的输出。

Description

从扩展图构造散列函数
背景
散列函数构造在许多算法和密码协议中使用。它们是将其像“均匀”分布的函数f:U→S,其中|U|≥|S|。换言之,对于大多数x∈U,|{y∈U|f(x)=y}|接近于
Figure A20068004045600051
使冲突对(colliding pair),即使得f(x)=f(y)的对(x,y)的数量最小化的散列函数是非常有用的。对于散列函数的密码学应用,通常希望工程设计冲突的问题是困难的。这意味着找到使得f(x)=f(y)的不同元素x和y的任务在计算上是困难的。通常,对于以下较弱的性质是感兴趣的:给定x,找到另一y,使得f(x)=f(y)是困难的。
概述
提供本概述以便用简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
鉴于上述内容,描述了从扩展图(expander graph)构造散列函数。在一方面,走查作为散列函数的输入的扩展图。使用输入消息的相应子集来走查该扩展图。散列函数的输出是所走查的最后一个顶点的标签。
附图简述
在附图中,组件参考标号最左边的数字标识该组件首次出现的特定图。
图1示出了根据一个实施例的用于从扩展图构造散列函数的示例性系统。
图2示出了根据一个实施例的用于从扩展图构造散列函数的示例性过程。
图3示出了根据一个实施例的用于从扩展图构造散列函数的示例性过程。
图4示出了其中可全部或部分地实现从扩展图的散列函数构造的合适的计算环境的一个示例。
详细描述
综述
以下参考图1到4描述用于从扩展图构造散列函数的系统(例如,系统、装置、计算机可读介质等)和方法。散列函数通过在特定扩展图上走查来构造。对一扩展图的随机走查非常快速地混合,因此散列函数输出在输入消息是均匀地随机的时候一般是均匀的。在一个实现中,该系统和方法使用提取器(extractor)结合扩展图来产生散列函数。在此实现中,输入消息对最小熵(min-entropy)具有特定下限。例如,用密码签署一消息(通过散列来完成)是在向该消息添加“随机填充(random pad)”之后完成的。(该过程将熵注入到签名中)。假设输入消息具有某一少量的熵,则利用提取器来提取该随机性然后根据提取器的输出执行走查。
现在更详细描述用于从扩展图构造散列函数的系统列和方法的这些和其它方面。
示例性系统
尽管并非必需,但是用于从扩展图构造散列函数的系统和方法将在由诸如个人计算机等计算设备执行的计算机可执行指令(程序模块)的一般上下文中描述。程序模块一般包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等等。尽管该系统和方法是在上述上下文中描述的,但是以下所描述的动作和操作也可以用硬件来实现。
图1示出了根据一个实施例的用于从扩展图构造散列函数的示例性系统100。系统100包括计算设备102,它包括耦合到系统存储器106的一个或多个处理单元104。处理器104从程序模块108中取出并执行计算机程序指令,并从系统存储器106存取程序数据110部分。程序模块108包括,例如扩展图散列函数构造模块(“EGHF构造模块”)112和其它程序模块114。其它程序模块114包括,例如操作系统和利用由模块112生成的基于扩展图的散列函数构造116的一个或多个应用程序。存在对其可用这一散列函数构造116的许多应用程序。例如,这一构造可用于实现密码术、散列表、纠错、音频标识、Rabin-Karp串搜索算法等的一个或多个应用程序。
EGHF构造模块112从输入消息118和n个顶点的扩展图120生成散列函数构造116。扩展图118是具有高顶点或边扩展,或者换言之是高度连接的稀疏图。在一个实现中,扩展图118是Ramanujan图。在一个实现中,输入消息118具有一随机性程度(或熵)。
例如,在一个实现中,扩展图120如下确定。设p是质数,并设l(≠p)是另一质数。扩展图G(p,l)具有V作为其顶点集,V是有限域Fq上的超奇异(supersingular)j不变式(j-invariant),q=p2。如果在其j不变式是j1和j2的超奇异椭圆曲线之间有次数为l的同源,则在顶点j1和j2之间有一条边。图G(p,l)被称为是l+1正则Ramanujan图。G(p,l)的顶点数是四元数代数Bp,∞的类数,这大约是p/12。G(p,l)是扩展图120。
在另一实现中,扩展图120是Lubotzky-Phillips-Sarnak扩展图,如在以下“替换实施例”一节中所描述的。
为了生成散列函数构造116,扩展图散列函数构造模块112标识消息118。在一个实现中消息具有熵次数。EG HF构造模块112向构成扩展图120的n个顶点中的每一顶点分配相应的名称或标签。当输入消息具有与其相关联的熵次数时,EG HF构造模块112用一提取器函数来提取(确定)随机性程度。从这一消息中提取随机性的示例性的这样的提取函数和技术在以下题为“从输入中提取随机性”一节中更详细描述。
鉴于标识要随机地走查(访问)的扩展图120的顶点的可配置顶点边约定,构造模块112基于所提取的熵次数(当存在时)或其它客观准则(以下描述)来标识输入消息118的k长度比特段。走查扩展图120的示例性操作在以下题为“示例性过程”一节中更详细描述。与所走查的顶点中的最后一个顶点相关联的相应名称/标签表示散列函数构造114的输出。
从输入中提取随机性
最小熵:设X是在{0,1}n中取值的随机变量。X的最小熵被定义为以下量
min x ∈ { 0,1 } n ( - log ( Pr [ X = x ] ) )
分布接近度(closeness):设X和Y是{0,1}d上的两个分布。如果
max x % ∈ { 0,1 } d | Pr [ X = x ] - Pr [ Y = x ] | ≤ ϵ
则它们被认为是ε接近(ε-close)的(ε是实数)。
提取器:如果对最小熵{0,1}n上的任何随机变量X,至少k和Ud({0,1}d上的均匀分布),分布Ext(X,Ud)对Um是ε接近的,则函数Ext:{0,1}n×{0,1}d→{0,1}m被称为(k,ε)提取器((k,ε)-extractor)。
定理:如果Ext:{0,1}n×{0,1}d→{0,1}m是(k,ε)提取器,则对于随机种子σ∈{0,1}d的大多数选择,分布Ext(X,Ud)对Um是ε接近的。
证明:分布Ext(X,Ud)可被描述为在由σ∈{0,1}d索引的分布的簇Xd中均匀地随机选择一分布,其中σ∈{0,1}d由Xd=Ext(X,σ)定义。Ext是提取器的事实意味着这些分布中的许多都对Um是ε接近的(证明结束)。
如果d至少是log2n并且m=k1-α,其中α是任意实数,则多项式时间提取器的构造对于任何k>nγ(γ<1)和ε>0都是已知的。
散列函数的构造
表示对散列函数构造116的输入的随机变量M(即,输入消息118)具有至少为log1+βn的最小熵,其中n是G(p,l)的顶点数,且β>0。设{0,1}N是输入空间。为确定M的熵次数122,构造模块112实现提取器函数Ext,并用参数k=log1+βn来修正函数Ext:{0,1}N×{0,1}d→{0,1}m,ε非常小并且m=Θ(log1+αn)。出于示例性说明的目的,这些参数被示为“其它数据”124的相应部分。系统100假定N=kO(1).。构造模块112从{0,1}d中均匀地随机选取a。给定输入x∈{0,1}N,构造模块112计算
Figure A20068004045600082
(即,熵次数122)。该构造的结果是大小为m的串。构造模块112从某一固定顶点v0开始沿着由给出的方向对m执行走查,并且散列函数116的输出是走查中的最终顶点的标签。
对于其节点是超奇异椭圆曲线对质数p的模,并且边是椭圆曲线之间次数为l的同源的扩展图,可如下在围绕该图执行走查步骤:
在对应于椭圆曲线E的节点处开始,首先找出E[l]的l扭矩的生成元P和Q。为此:
1.设n为使得 F q ( E [ l ] ) ⊆ F q n .
2.设
Figure A20068004045600085
E上的有理点
Figure A20068004045600086
的个数(原始)。
3.设s=S/lk,其中lk是整除S的l的最大幂(注意k≥2)。
4.从E[l]中随机地选取两个点P和Q:
(a)从
Figure A20068004045600091
中随机地选取两个点U、V。
(b)设P′=sU且Q′=sV,如果P′或Q′等于O,则重复步骤(i)。
(c)找出最小的i1,i2,使得 l i 1 P ′ ≠ O l i 2 Q ′ ≠ O , 但是 l i 1 + 1 P ′ = O
l i 2 + 1 Q ′ = O .
(d)设 P = l i 1 P ′ Q = l i 2 Q ′ .
5.使用公知的Shank的小步-大步(Baby-steps-Giant-steps)算法,确定Q是否属于由P生成的群。如果是,则重复步骤(d)。
l+1条椭圆曲线上的中与E同源的j不变式是j1,…,jl+1。为找到它们:
(a)对于1≤i≤l,设G1=<Q>且G1+i=<P+(i-1)*Q>。
(b)对于每一i,1≤i≤l+1,使用Vélu公式计算椭圆曲线E/G的j不变式。
如果使用例如具有2同源的超奇异椭圆曲线的图,则可用以下显式方式进行随机走查:在每一步,在找到E的三个非平凡2扭矩点之后,按照其x坐标以预先指定的方式对它们进行排序。然后,对散列函数使用输入比特来确定要选择哪一点来对椭圆曲线求商以到达走查中的下一节点。
散列函数几乎是均匀的证明
按照定理,由扩展图散列函数构造模块112实现的提取器函数的输出接近均匀,并且在扩展图120上进行的走查非常接近随机走查。(走查是随机的仅仅意味着在图上的某一顶点v处,在下一步在其任一相邻点处的可能性是相等的。)现在,由于图G(p,l)具有n个顶点,并且m=Ω(log1+αn),因此走查迅速混合并且输出顶点非常接近均匀。接着,使得以上陈述更精确。在n个顶点的d正则图G(例如)上的O(logn)步的随机走查迅速混合的一种表述方式是
| | ( 1 d A ) O ( log n ) &CenterDot; v - 1 n 1 &RightArrow; | | &le; &epsiv;
其中ε很小,A是G的邻接矩阵,v可被取作为任一标准单位向量,是向量(1,1,...,1)。矩阵
1 d A
可被认为是图120上的均匀随机Markov链的转移矩阵。在此实现中,系统100在图120上实现几乎随机的走查。这可被认为是使用矩阵B作为转移矩阵,使得
| | 1 d A - B | | &le; &delta;
并且δ是很小的实数(其中符号|| ||表示矩阵模)。换言之,构造模块112将随机走查摄动一较小的量。以下定理示出该新的随机走查在δ可取得足够小的时候快速混合。
定理:设A和B是两个子随机矩阵,则||Ak-Bk||≤k||A-B||。
证明:可将差Ak-Bk写为
&Sigma; 0 &le; i &le; k - 1 A k - i - 1 ( A - B ) B i
对两边取模并使用||A||=||B||=1的事实(因为它们是子随机矩阵),得到结果。(证明结束)。
由于所进行的随机走查的长度是O(log n)。如果可将参数δ安排如下:
O ( 1 log 2 n ) ,
则所得的近似随机走查也将快速混合。这可通过将提取器的参数ε设为等于以下来安排:
O ( 1 log 2 n ) .
抗冲突
在这一散列函数116下明确地找到冲突等效于找到相同l次方的一对超奇异椭圆曲线之间的两个同源。如果图G(p,l)没有小环,则这一问题是非常困难的,因为在曲线之间构造高次同源公知地是计算上的难题。
替换实施例
作为对上述使用图G(p,l)的一种替换,系统100利用了Lubotzky-Phillips-Sarnak扩展图120。设l和p是两个不同的质数,其中l是小质数,而p相当大。还假设p和l≡1mod 4并且l是mod p的二次剩余(这是l(p-1)/2≡1mod p的情况)。用Xl,p来表示具有参数l和p的LPS图。接着定义构成图Xl,p的顶点和边。Xl,p的顶点是PSL(2,Fp)中的矩阵,即不可逆2×2矩阵,其项Fp中,行列式为1,以及对任何矩阵A的等价关系A=-A。给定一行列式为1的2×2矩阵A,顶点的名称将是A的项或-A的项的4元组,取决于在集合{0,...,p-1}4的普通排序中哪一个在字典顺序上更小。接着描述构成图的边。矩阵A连接到矩阵giA,其中gi是以下显式定义的矩阵。设i是满足i2≡-1modp的整数。对等式g0 2+g1 2+g2 2+g3 2=l恰好有8(l+1)个解g=(g0,g1,g2,g3)。在这些解中只有l+1个的g0>0且为奇数,并且对j=1,2,3,gj是偶数。对于每一这样的g,关联矩阵
g 0 + ig 1 g 2 + ig 3 - g 2 + ig 3 g 0 - ig 1 .
这给出了PSL(2,Fp)中l+1个矩阵的集合S。gi是此集合中的矩阵。事实是,如果g在S中,则g-1也在S中。此外,由于l很小,因此,该矩阵集合S可通过穷尽搜索非常快地找到。
示例性过程
图2示出了根据一个实施例的用于从扩展图构造散列函数的示例性过程200。出于示例性描述的目的,过程200的操作相对于图1的系统100的组件来描述。组件参考标号最左边的数字指示了该组件首次被描述的特定图。
在框202处,EG HF构造模块112(图1)将输入消息118划分成段。例如,输入消息的长度为N。假设在k正则扩展图120中有n个顶点(每一顶点具有名称/标签),则从任一顶点出发的每一条边的名称将具有log k比特。输入消息118被分解成长度为log k的块。在框204处,EG HF构造模块112走查作为对散列函数的输入的扩展图120。走查如下确定:假定在某一顶点v处,走查中的下一顶点通过从输入中读取下一log k的块以确定从顶点v出发的将遍历的边来确定,该边的另一端点将是走查的下一顶点。例如,EG HF构造模块112从由输入消息118的前k个比特(段/块)指定的第一顶点开始对扩展图120中的边的随机走查。在扩展图120中走查的下一顶点由下一log k比特的块来指定。考虑到指定边的名称如何对应于扩展图120中的顶点的约定,迭代地执行这些运算。一个示例性的这样的约定是对于每一顶点v,存在函数fv:{1,...,k}→E.。由此,fv(1)是从v出发的第一条边,fv(2)是从v出发的第二条边,依此类推。
在框206处,EG HF构造模块112确定所走查的最后一个顶点的标签。在框208处,EG HF构造模块112输出标签作为散列函数的结果。
图3示出了根据一个实施例用于从扩展图构造散列函数的示例性过程。出于示例性描述的目的,过程300的操作相对于图1的系统100的组件来描述。在框302处,扩展图散列函数构造模块(“EGHF构造模块”)112(图1)标识具有熵次数的消息118。在框304处,EGHF构造模块112向扩展图120中的每一顶点分配相应的标签。在框306处,EGHF构造模块112使用提取器函数来确定输入消息118中的熵次数。所确定的次数被示为所提取的熵次数122。在框308处,EGHF构造模块基于所提取的熵次数122走查扩展图120。在框310处,EGHF构造模块112输出与所走查的最后一个顶点的标签以及扩展图120作为散列函数构造116的结果。即,框302到310的操作对应于散列函数构造116的操作。
示例性操作环境
图4示出了其中可全部或部分实现从扩展图构造散列函数的合适的计算环境的一个示例。计算性计算环境400仅为适用于图1的示例性系统以及图2和3的示例性操作的计算环境的一个示例,并非对此处所描述的系统和方法的使用范围或功能提出任何局限。也不应将计算环境400解释为对计算环境400中示出的任一组件或其组合具有任何依赖性或要求。
此处所描述的方法和系统可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用的众所周知的计算系统、环境和/或配置的示例包括但不限于,个人计算机、服务器计算机、多处理器系统、基于微处理器的系统、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。该框架的紧凑或子集形式也可以在诸如手持式计算机或其它计算设备等有限资源的客户机中实现。本发明在其中任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实践。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
参考图4,用于从扩展图构造散列函数的示例性系统包括实现例如图1的系统100的计算机410形式的通用计算设备。以下描述的计算机410的各方面是图1的计算设备102的示例性实现。计算机410的组件可包括但不限于,处理单元420、系统存储器430以及将包括系统存储器的各类系统组件耦合至处理单元420的系统总线421。系统总线421可以是若干种总线结构的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的任一种的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、外围部件互连(PCI)总线(也称为小背板(Mezzanine)总线)。
计算机410通常包括各种计算机可读介质。计算机可读介质可以是可由计算机410访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机410访问的任一其它介质。
通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
系统存储器430包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)431和随机存取存储器(RAM)432。基本输入/输出系统433(BIOS)包括如在启动时帮助在计算机410内的元件之间传输信息的基本例程,它通常储存在ROM 431中。RAM 432通常包含处理单元420立即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图4示出了操作系统434、应用程序435、其它程序模块436和程序数据437。
计算机410也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作示例,图4示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器441,对可移动、非易失性磁盘432进行读写的磁盘驱动器431,以及对可移动、非易失性光盘436,如CD ROM或其它光介质进行读写的光盘驱动器433。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器441通常通过不可移动存储器接口,如接口440连接到系统总线421,磁盘驱动器431和光盘驱动器433通常通过可移动存储器接口,如接口430连接到系统总线421。
上文讨论并在图4示出的驱动器及其关联的计算机存储介质为计算机410提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图4中,示出硬盘驱动器441储存操作系统444、应用程序443、其它程序模块446和程序数据447。注意,这些组件可以与操作系统434、应用程序433、其它程序模块436和程序数据437相同,也可以与它们不同。应用程序433包括例如图1的计算设备102的程序模块108。程序数据437包括例如图1的计算设备102的程序数据110。这里对操作系统444、应用程序443、其它程序模块446和程序数据447给予不同的标号来说明至少它们是不同的副本。
用户可以通过输入设备,如键盘462和定位设备461(通常指鼠标、跟踪球或触摸垫)向计算机410输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线421的用户输入接口460连接至处理单元420,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。
监视器491或其它类型的显示设备也通过接口,如视频接口490连接至系统总线421。除监视器之外,计算机也可包括其它外围输出设备,如打印机496和音频设备497,它们通过输出外围接口493连接。
计算机410可以使用到一个或多个远程计算机,如远程计算机480的逻辑连接在网络化环境中操作。在一个实现中,远程计算机480表示图1的计算设备102或联网计算机104。远程计算机480可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并根据其具体实现,可以包括许多或所有相对于计算机410所描述的元件,尽管在图4中仅示出了存储器存储设备481。图4描述的逻辑连接包括局域网(LAN)471和广域网(WAN)473,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机410通过网络接口或适配器470连接至LAN 471。当在WAN网络环境中使用时,计算机410通常包括调制解调器472或用于通过WAN 473,如因特网建立通信的其它装置。调制解调器472可以是内置或外置的,它通过用户输入接口460或其它适当的机制连接至系统总线421。在网络化环境中,相对于计算机410所描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图4示出远程应用程序483驻留在存储器设备481上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。
结论
尽管以对结构特征和/或方法操作或动作专用的语言描述了用于从扩展图构造散列函数的系统和方法,但是可以理解,所附权利要求书中定义的实现不一定限于所描述的具体特征或动作。相反,系统100的具体特征和操作是作为实现所要求保护的主题的示例性形式而公开的。

Claims (20)

1.一种计算机实现的方法,包括:
根据对一散列函数的输入走查一扩展图,所述扩展图是使用输入消息的相应子集来走查的;
确定所走查的最后一个顶点的标签;以及
输出所述标签作为所述散列函数的结果。
2.如权利要求1所述的方法,其特征在于,所述扩展图是Ramanujan图。
3.如权利要求1所述的方法,其特征在于,所述扩展图是Lubotzky-Phillips-Sarnak扩展图。
4.如权利要求1所述的方法,其特征在于,所述扩展图是有限特征域p上的超奇异椭圆曲线的图。
5.如权利要求1所述的方法,其特征在于,所述结果是密码散列。
6.如权利要求1所述的方法,其特征在于,找出所述散列函数的冲突在计算上是困难的。
7.如权利要求1所述的方法,其特征在于,所述输入消息具有特定的熵次数,并且其中,所述散列函数是抗冲突的。
8.如权利要求1所述的方法,其特征在于,走查还包括:
将所述输入消息划分成段;以及
对这些段中的至少一个子集,基于一子集的特定一段的各方面来确定到所述扩展图中的下一相应顶点的路径。
9.如权利要求1所述的方法,其特征在于,所述扩展图包括n个顶点,其中所述输入消息具有一熵次数,并且其中,所述方法还包括:
向所述图的各顶点分配相应的标签;
确定所述熵次数;
其中,走查还包括使用所述熵次数来走查所述n个顶点以标识完全随机的顶点输出;并且
所述输出是所走查的n个顶点中的最后一个顶点的相应的所分配的标签。
10.如权利要求9所述的方法,其特征在于,确定所述熵次数还包括使用一提取器函数来确定与所述输入消息相关联的随机性程度。
11.一种包括可由处理器执行的计算机编程的指令的计算机可读介质,所述指令用于:
将消息划分成段;
根据对一散列函数的输入走查一扩展图,所述扩展图是使用所述各段中的相应段确定到所述扩展图中的n个顶点中的下一顶点的路径来走查的;
确定所走查的最后一个顶点的标签;以及
输出所述标签作为所述散列函数的结果。
12.如权利要求11所述的计算机可读介质,其特征在于,所述扩展图是Ramanujan图或Lubotzky-Phillips-Sarnak扩展图。
13.如权利要求11所述的计算机可读介质,其特征在于,所述结果是密码散列。
14.如权利要求11所述的计算机可读介质,其特征在于,找出所述散列函数的冲突在计算上是困难的。
15.如权利要求11所述的计算机可读介质,其特征在于,所述消息基于从所述消息中提取的熵次数被划分成所述段。
16.如权利要求11所述的计算机可读介质,其特征在于,所述扩展图包括n个顶点,其中所述消息具有一熵次数,并且其中,所述计算机程序指令还包括用于执行以下动作的结构:
向所述图的各顶点分配相应的标签;
确定所述熵次数;
其中,走查还包括使用所述熵次数来走查所述n个顶点以标识完全随机的顶点输出;并且
所述输出是所走查的n个顶点中的最后一个顶点的相应的所分配的标签。
17.如权利要求11所述的计算机可读介质,其特征在于,所述用于确定熵次数的计算机编程的指令还包括用于使用一提取器函数来确定与所述消息相关联的随机性程度的指令。
18.一种计算设备,包括:
处理器;以及
耦合到所述处理器的存储器,所述存储器包括可由所述处理器执行的计算机程序指令,所述指令用于:
向一扩展图中的n个顶点中的相应顶点分配相应的标签;
确定输入消息的随机性;
走查作为对一散列函数的输入的所述扩展图,所述扩展图中的顶点是基于所述随机性来访问的;
确定所走查的顶点中的最后一个顶点的标签;以及
输出所述标签作为所述散列函数的结果。
19.如权利要求18所述的计算设备,其特征在于,所述扩展图是Ramanujan图或Lubotzky-Phillips-Sarnak扩展图。
20.如权利要求18所述的计算设备,其特征在于,所述结果是密码散列。
CN2006800404564A 2005-11-01 2006-10-16 用于从扩展图构造散列函数的系统和方法 Expired - Fee Related CN101300569B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/263,701 US7382876B2 (en) 2005-11-01 2005-11-01 Hash function constructions from expander graphs
US11/263,701 2005-11-01
PCT/US2006/040538 WO2007053295A1 (en) 2005-11-01 2006-10-16 Hash function constructions from expander graphs

Publications (2)

Publication Number Publication Date
CN101300569A true CN101300569A (zh) 2008-11-05
CN101300569B CN101300569B (zh) 2010-06-16

Family

ID=37996294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800404564A Expired - Fee Related CN101300569B (zh) 2005-11-01 2006-10-16 用于从扩展图构造散列函数的系统和方法

Country Status (6)

Country Link
US (1) US7382876B2 (zh)
EP (1) EP1949255A4 (zh)
JP (1) JP4455661B2 (zh)
KR (1) KR101292927B1 (zh)
CN (1) CN101300569B (zh)
WO (1) WO2007053295A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842459B1 (en) 2000-04-19 2005-01-11 Serconet Ltd. Network combining wired and non-wired segments
US7680871B2 (en) * 2006-01-19 2010-03-16 Microsoft Corporation Approximating function properties with expander graphs
US8130955B2 (en) * 2007-12-21 2012-03-06 Spansion Llc Random number generation through use of memory cell activity
US8114117B2 (en) * 2008-09-30 2012-02-14 Tyco Healthcare Group Lp Compression device with wear area
US7796541B1 (en) 2008-09-30 2010-09-14 Juniper Networks, Inc. Methods and apparatus for range matching during packet classification based on a linked-node structure
US7961734B2 (en) 2008-09-30 2011-06-14 Juniper Networks, Inc. Methods and apparatus related to packet classification associated with a multi-stage switch
US8675648B1 (en) 2008-09-30 2014-03-18 Juniper Networks, Inc. Methods and apparatus for compression in packet classification
US7835357B2 (en) * 2008-09-30 2010-11-16 Juniper Networks, Inc. Methods and apparatus for packet classification based on policy vectors
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
US7738454B1 (en) * 2008-09-30 2010-06-15 Juniper Networks, Inc. Methods and apparatus related to packet classification based on range values
US8798057B1 (en) 2008-09-30 2014-08-05 Juniper Networks, Inc. Methods and apparatus to implement except condition during data packet classification
US20100115276A1 (en) * 2008-10-31 2010-05-06 Apple Inc. System and method for derivating deterministic binary values
US8184803B2 (en) * 2008-12-29 2012-05-22 King Fahd University Of Petroleum And Minerals Hash functions using elliptic curve cryptography
US8111697B1 (en) 2008-12-31 2012-02-07 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US7889741B1 (en) 2008-12-31 2011-02-15 Juniper Networks, Inc. Methods and apparatus for packet classification based on multiple conditions
US8488588B1 (en) 2008-12-31 2013-07-16 Juniper Networks, Inc. Methods and apparatus for indexing set bit values in a long vector associated with a switch fabric
US8363825B1 (en) 2009-05-21 2013-01-29 The United States Of America As Represented By The Director, National Security Agency Device for and method of collision-free hashing for near-match inputs
US20110055581A1 (en) * 2009-08-31 2011-03-03 Apple Inc. Hash function based on painting techniques
US8953603B2 (en) * 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US9282060B2 (en) 2010-12-15 2016-03-08 Juniper Networks, Inc. Methods and apparatus for dynamic resource management within a distributed control plane of a switch
US8731187B2 (en) * 2010-12-21 2014-05-20 Microsoft Corporation Computing genus-2 curves using general isogenies
US9230548B2 (en) * 2012-06-06 2016-01-05 Cypress Semiconductor Corporation Hybrid hashing scheme for active HMMS
US8812935B2 (en) 2012-08-02 2014-08-19 Oracle International Corporation Using a data ECC to detect address corruption
JP6614979B2 (ja) * 2016-01-15 2019-12-04 三菱電機株式会社 暗号装置、暗号方法及び暗号プログラム
CA2984390A1 (en) * 2016-11-07 2018-05-07 Infosec Global Inc. Elliptic curve isogeny-based cryptographic scheme
KR101878213B1 (ko) * 2017-03-24 2018-07-13 경희대학교 산학협력단 가중치 그래프를 요약하는 방법, 장치 및 컴퓨터 프로그램
US11531859B2 (en) * 2017-08-08 2022-12-20 Samsung Electronics Co., Ltd. System and method for hashed compressed weighting matrix in neural networks
KR102009216B1 (ko) * 2018-05-14 2019-08-09 경희대학교 산학협력단 그래프 요약 및 압축 방법 및 시스템
US11483151B1 (en) * 2021-07-16 2022-10-25 Pqsecure Technologies, Llc Method and system for computing large-degree isogenies with an odd degree
US20240004933A1 (en) * 2022-06-29 2024-01-04 Tigergraph, Inc. Minhash signatures as vertices for fuzzy string match on graph

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515307A (en) * 1994-08-04 1996-05-07 Bell Communications Research, Inc. Pseudo-random generator
CA2262551C (en) 1996-08-16 2002-09-17 Bell Communications Research, Inc. Improved cryptographically secure pseudo-random bit generator for fast and secure encryption
US6014733A (en) * 1997-06-05 2000-01-11 Microsoft Corporation Method and system for creating a perfect hash using an offset table
US6757686B1 (en) 2000-06-14 2004-06-29 International Business Machines Corporation Method and apparatus for representing database and query information using interval hash tree
US7120856B2 (en) * 2002-09-25 2006-10-10 Leanics Corporation LDPC code and encoder/decoder regarding same
US6988180B2 (en) 2003-09-29 2006-01-17 Microsoft Corporation Method and apparatus for lock-free, non-blocking hash table
US7289629B2 (en) * 2004-02-09 2007-10-30 Microsoft Corporation Primitives for fast secure hash functions and stream ciphers

Also Published As

Publication number Publication date
EP1949255A4 (en) 2009-12-23
JP4455661B2 (ja) 2010-04-21
US20070098150A1 (en) 2007-05-03
US7382876B2 (en) 2008-06-03
JP2009514036A (ja) 2009-04-02
KR20080063785A (ko) 2008-07-07
WO2007053295A1 (en) 2007-05-10
KR101292927B1 (ko) 2013-08-02
CN101300569B (zh) 2010-06-16
EP1949255A1 (en) 2008-07-30

Similar Documents

Publication Publication Date Title
CN101300569B (zh) 用于从扩展图构造散列函数的系统和方法
CN107683502B (zh) 根据紧凑源代码生成加密函数参数
Bakiri et al. A hardware and secure pseudorandom generator for constrained devices
CN1677917B (zh) 用于流式密码中的循环存储单元的方法和系统
CN101300570A (zh) 用于网络编码的数字签名
CN109815226B (zh) 基于区块链的数据存储方法、装置、设备和存储介质
CN111144576A (zh) 模型训练方法、装置和电子设备
US20190342103A1 (en) Method and Apparatus for Verification of Social Media Information
CN114817943A (zh) 一种数据匹配方法、装置、设备及介质
US8824677B1 (en) Provably secure and efficient pseudorandom number generation
Yang et al. Discrete embedding for latent networks
CN116318660B (zh) 一种消息扩展与压缩方法及相关装置
US7685211B2 (en) Deterministic file content generation of seed-based files
US20100111292A1 (en) Aggregate and parallelizable hash function
US11070354B2 (en) System and method for generating a symmetrically balanced output
Sun et al. SoK: modeling for large s-boxes oriented to differential probabilities and linear correlations
Loutfi et al. Smartphone sensors as random bit generators
US20230059130A1 (en) Method and device for generating random numbers
CN111061720B (zh) 数据筛选方法、装置和电子设备
Mohammed Text encryption algorithm based on chaotic neural network and random key generator
Sun et al. SoK: Modeling for Large S-boxes Oriented to Differential Probabilities and Linear Correlations (Long Paper)
Karmakar et al. An Approach for Ensuring Security and its Verification
CN115150153A (zh) 报文处理方法、装置、设备、存储介质和计算机程序产品
BANERJEE et al. Design of Cellular Automata based Linear Rules in Multilingual Encryption for Performance Optimization in Wireless Network
Ince Exploring the potential of deep learning and machine learning techniques for randomness analysis to enhance security on IoT

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100616

Termination date: 20151016

EXPY Termination of patent right or utility model