專(zhuān)利名稱(chēng):從擴(kuò)展圖構(gòu)造散列函數(shù)的制作方法
從擴(kuò)展圖構(gòu)造散列函數(shù)
背學(xué)
散列函數(shù)構(gòu)造在許多算法和密碼協(xié)議中使用。它們是將其像"均勻"分布
的函數(shù)/'u + s,其中iu^isi。換言之,對(duì)于大多數(shù)
K",ltve"l/W〃)l接近于l^。
使沖突對(duì)(colliding pair),即使得/(力=/6^的對(duì)(&力的數(shù)量最小化的散 列函數(shù)是非常有用的。對(duì)于散列函數(shù)的密碼學(xué)應(yīng)用,通常希望工程設(shè)計(jì)沖突的 問(wèn)題是困難的。這意味著找到使得/w =/^的不同元素^和;;的任務(wù)在計(jì)算上 是困難的。通常,對(duì)于以下較弱的性質(zhì)是感興趣的給定x,找到另一》使得 /^=/6^是困難的。
概述
提供本概述以便用簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一 些概念。本概述并不旨在確定所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不 旨在用于幫助確定所要求保護(hù)的主題的范圍。
鑒于上述內(nèi)容,描述了從擴(kuò)展圖(expander graph)構(gòu)造散列函數(shù)。在一 方面,走査作為散列函數(shù)的輸入的擴(kuò)展圖。使用輸入消息的相應(yīng)子集來(lái)走査該 擴(kuò)展圖。散列函數(shù)的輸出是所走查的最后一個(gè)頂點(diǎn)的標(biāo)簽。
附圖簡(jiǎn)述
在附圖中,組件參考標(biāo)號(hào)最左邊的數(shù)字標(biāo)識(shí)該組件首次出現(xiàn)的特定圖。
圖1示出了根據(jù)一個(gè)實(shí)施例的用于從擴(kuò)展圖構(gòu)造散列函數(shù)的示例性系統(tǒng)。 圖2示出了根據(jù)一個(gè)實(shí)施例的用于從擴(kuò)展圖構(gòu)造散列函數(shù)的示例性過(guò)程。 圖3示出了根據(jù)一個(gè)實(shí)施例的用于從擴(kuò)展圖構(gòu)造散列函數(shù)的示例性過(guò)程。 圖4示出了其中可全部或部分地實(shí)現(xiàn)從擴(kuò)展圖的散列函數(shù)構(gòu)造的合適的 計(jì)算環(huán)境的一個(gè)示例。詳細(xì)描述 綜述
以下參考圖1到4描述用于從擴(kuò)展圖構(gòu)造散列函數(shù)的系統(tǒng)(例如,系統(tǒng)、 裝置、計(jì)算機(jī)可讀介質(zhì)等)和方法。散列函數(shù)通過(guò)在特定擴(kuò)展圖上走查來(lái)構(gòu)造。 對(duì)一擴(kuò)展圖的隨機(jī)走查非??焖俚鼗旌?,因此散列函數(shù)輸出在輸入消息是均勻 地隨機(jī)的時(shí)候一般是均勻的。在一個(gè)實(shí)現(xiàn)中,該系統(tǒng)和方法使用提取器
(extractor)結(jié)合擴(kuò)展圖來(lái)產(chǎn)生散列函數(shù)。在此實(shí)現(xiàn)中,輸入消息對(duì)最小熵 (min-entropy)具有特定下限。例如,用密碼簽署一消息(通過(guò)散列來(lái)完成)
是在向該消息添加"隨機(jī)填充(random pad)"之后完成的。(該過(guò)程將熵注
入到簽名中)。假設(shè)輸入消息具有某一少量的熵,則利用提取器來(lái)提取該隨機(jī)
性然后根據(jù)提取器的輸出執(zhí)行走查。
現(xiàn)在更詳細(xì)描述用于從擴(kuò)展圖構(gòu)造散列函數(shù)的系統(tǒng)列和方法的這些和其
它方面。
示例性系統(tǒng)
盡管并非必需,但是用于從擴(kuò)展圖構(gòu)造散列函數(shù)的系統(tǒng)和方法將在由諸如 個(gè)人計(jì)算機(jī)等計(jì)算設(shè)備執(zhí)行的計(jì)算機(jī)可執(zhí)行指令(程序模塊)的一般上下文中 描述。程序模塊一般包括執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類(lèi)型的例程、 程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。盡管該系統(tǒng)和方法是在上述上下文中描述 的,但是以下所描述的動(dòng)作和操作也可以用硬件來(lái)實(shí)現(xiàn)。
圖1示出了根據(jù)一個(gè)實(shí)施例的用于從擴(kuò)展圖構(gòu)造散列函數(shù)的示例性系統(tǒng) 100。系統(tǒng)100包括計(jì)算設(shè)備102,它包括耦合到系統(tǒng)存儲(chǔ)器106的一個(gè)或多個(gè) 處理單元104。處理器104從程序模塊108中取出并執(zhí)行計(jì)算機(jī)程序指令,并 從系統(tǒng)存儲(chǔ)器106存取程序數(shù)據(jù)110部分。程序模塊108包括,例如擴(kuò)展圖散 列函數(shù)構(gòu)造模塊("EGHF構(gòu)造模塊")112和其它程序模塊114。其它程序 模塊114包括,例如操作系統(tǒng)和利用由模塊112生成的基于擴(kuò)展圖的散列函數(shù) 構(gòu)造116的一個(gè)或多個(gè)應(yīng)用程序。存在對(duì)其可用這一散列函數(shù)構(gòu)造116的許多 應(yīng)用程序。例如,這一構(gòu)造可用于實(shí)現(xiàn)密碼術(shù)、散列表、糾錯(cuò)、音頻標(biāo)識(shí)、Rabin-Karp串搜索算法等的一個(gè)或多個(gè)應(yīng)用程序。
EGHF構(gòu)造模塊112從輸入消息118和"個(gè)頂點(diǎn)的擴(kuò)展圖120生成散列函 數(shù)構(gòu)造116。擴(kuò)展圖118是具有高頂點(diǎn)或邊擴(kuò)展,或者換言之是高度連接的稀 疏圖。在一個(gè)實(shí)現(xiàn)中,擴(kuò)展圖118是Ramanujan圖。在一個(gè)實(shí)現(xiàn)中,輸入消息 118具有一隨機(jī)性程度(或熵)。
例如,在一個(gè)實(shí)現(xiàn)中,擴(kuò)展圖120如下確定。設(shè)p是質(zhì)數(shù),并設(shè)£ (^p)
是另一質(zhì)數(shù)。擴(kuò)展圖G(p, f)具有V作為其頂點(diǎn)集,V是有限域Fq上的超奇異
(supersingular) j不變式(j-invariant) , q=p2。如果在其j不變式是j!和j2的 超奇異橢圓曲線之間有次數(shù)為£的同源,則在頂點(diǎn)j,和J2之間有一條邊。圖 G(p,《)被稱(chēng)為是£+1正則Ramanujan圖。G(p, £)的頂點(diǎn)數(shù)是四元數(shù)代數(shù)B^的 類(lèi)數(shù),這大約是p/12。 G(p, £)是擴(kuò)展圖120。
在另一實(shí)現(xiàn)中,擴(kuò)展圖120是Lubotzky-Phillips-Sarnak擴(kuò)展圖,如在以下 "替換實(shí)施例"一節(jié)中所描述的。
為了生成散列函數(shù)構(gòu)造116,擴(kuò)展圖散列函數(shù)構(gòu)造模塊112標(biāo)識(shí)消息118。 在一個(gè)實(shí)現(xiàn)中消息具有熵次數(shù)。EG HF構(gòu)造模塊112向構(gòu)成擴(kuò)展圖120的"個(gè) 頂點(diǎn)中的每一頂點(diǎn)分配相應(yīng)的名稱(chēng)或標(biāo)簽。當(dāng)輸入消息具有與其相關(guān)聯(lián)的熵次 數(shù)時(shí),EGHF構(gòu)造模塊112用一提取器函數(shù)來(lái)提取(確定)隨機(jī)性程度。從這 一消息中提取隨機(jī)性的示例性的這樣的提取函數(shù)和技術(shù)在以下題為"從輸入中 提取隨機(jī)性"一節(jié)中更詳細(xì)描述。
鑒于標(biāo)識(shí)要隨機(jī)地走查(訪問(wèn))的擴(kuò)展圖120的頂點(diǎn)的可配置頂點(diǎn)邊約定, 構(gòu)造模塊112基于所提取的熵次數(shù)(當(dāng)存在時(shí))或其它客觀準(zhǔn)則(以下描述) 來(lái)標(biāo)識(shí)輸入消息118的k長(zhǎng)度比特段。走査擴(kuò)展圖120的示例性操作在以下題 為"示例性過(guò)程" 一節(jié)中更詳細(xì)描述。與所走査的頂點(diǎn)中的最后一個(gè)頂點(diǎn)相關(guān) 聯(lián)的相應(yīng)名稱(chēng)/標(biāo)簽表示散列函數(shù)構(gòu)造114的輸出。
從輸入中提取隨機(jī)性
最小熵設(shè)X是在{0, l}n中取值的隨機(jī)變量。X的最小熵被定義為以下量
分布接近度(closeness):設(shè)X和Y是{0, l"上的兩個(gè)分布。如果<formula>formula see original document page 8</formula>
則它們被認(rèn)為是e接近(e-close)的(£是實(shí)數(shù))。
提取器如果對(duì)最小熵(O,ir上的任何隨機(jī)變量X,至少k和W ({0, l}d 上的均勻分布),分布AW(X,"J對(duì)Um是e接近的,則函數(shù)
£w:{0,l}"x{0,l}rf—{0,1}"被稱(chēng)為(^)提取器((&e)-extractor)。
定理如果ficW0,irx(0,ir"M0,ir"是(^)提取器,則對(duì)于隨機(jī)種子
ex e {0,l}rf的大多數(shù)選擇,分布E:"(Z,t/》對(duì)Um是e接近的。
證明分布五;"(X,^)可被描述為在由cre(0,ir索引的分布的簇;^中均勻
地隨機(jī)選擇一分布,其中o"^0,ir由X,-E對(duì)(y,c7)定義。五W是提取器的事實(shí)
意味著這些分布中的許多都對(duì)Um是e接近的(證明結(jié)束)。
如果"至少是log、并且附=^—",其中a是任意實(shí)數(shù),則多項(xiàng)式時(shí)間提取 器的構(gòu)造對(duì)于任何*>^ (/<1)和£>0都是已知的。
散列函數(shù)的構(gòu)造
表示對(duì)散列函數(shù)構(gòu)造116的輸入的隨機(jī)變量M (即,輸入消息118)具有 至少為k)g^"的最小熵,其中"是G(p,f)的頂點(diǎn)數(shù),且々>0。設(shè){0,1"是輸入
空間。為確定M的熵次數(shù)122,構(gòu)造模塊112實(shí)現(xiàn)提取器函數(shù)五;^,并用參數(shù) A = log1""來(lái)修正函數(shù)£w: {0,1}W x{0,l}rf — {0,l}m , e非常小并且w = 0(log1+a ")。
出于示例性說(shuō)明的目的,這些參數(shù)被示為"其它數(shù)據(jù)"124的相應(yīng)部分。系統(tǒng) 100假定^ = ^(1).。構(gòu)造模塊112從{0, l"中均勻地隨機(jī)選取"。給定輸入 xe{0,l}w,構(gòu)造模塊112計(jì)算c7-^(;c,")(即,熵次數(shù)122)。該構(gòu)造的結(jié)果
是大小為w的串。構(gòu)造模塊112從某一固定頂點(diǎn)vo開(kāi)始沿著由w給出的方向 對(duì)m執(zhí)行走査,并且散列函數(shù)116的輸出是走查中的最終頂點(diǎn)的標(biāo)簽。
對(duì)于其節(jié)點(diǎn)是超奇異橢圓曲線對(duì)質(zhì)數(shù)p的模,并且邊是橢圓曲線之間次數(shù) 為f的同源的擴(kuò)展圖,可如下在圍繞該圖執(zhí)行走査步驟
在對(duì)應(yīng)于橢圓曲線E的節(jié)點(diǎn)處開(kāi)始,首先找出的f扭矩的生成元戶(hù)和
g。為此
1. 設(shè)"為使得^(E[f])s々。
2. 設(shè)5=6£(^);五上的有理點(diǎn);的個(gè)數(shù)(原始)。3. 設(shè)s-S/",其中產(chǎn)是整除S的《的最大冪(注意*^2)。
4. 從£[。中隨機(jī)地選取兩個(gè)點(diǎn)尸和2:
(a) 從A(々)中隨機(jī)地選取兩個(gè)點(diǎn)U、 V。
(b) 設(shè)尸'"f/且Q'-W,如果尸'或2'等于(9,則重復(fù)步驟(i)。
(c) 找出最小的,;,/2 ,使得f'尸VO且^2^0,但是,+1尸'=6>且
f 2"g' = O 。
5. 使用公知的Shank的小步一大步(Baby-steps-Giant-steps)算法,確定Q
是否屬于由P生成的群。如果是,則重復(fù)步驟(d)。 《+ l條橢圓曲線上的々中與五同源的j不變式是乂,…,力w。為找到它們
(a) 對(duì)于W",設(shè)Gi-〈Q〉且Gw"P + (i-i;TQ〉。
(b) 對(duì)于每一/, 1&、"1,使用Vdu公式計(jì)算橢圓曲線五/G的j不變 式。
如果使用例如具有2同源的超奇異橢圓曲線的圖,則可用以下顯式方式進(jìn) 行隨機(jī)走査在每一步,在找到E的三個(gè)非平凡2扭矩點(diǎn)之后,按照其x坐標(biāo) 以預(yù)先指定的方式對(duì)它們進(jìn)行排序。然后,對(duì)散列函數(shù)使用輸入比特來(lái)確定要 選擇哪一點(diǎn)來(lái)對(duì)橢圓曲線求商以到達(dá)走查中的下一節(jié)點(diǎn)。
散列函數(shù)幾乎是均勻的證明
按照定理,由擴(kuò)展圖散列函數(shù)構(gòu)造模塊112實(shí)現(xiàn)的提取器函數(shù)的輸出接近 均勻,并且在擴(kuò)展圖120上進(jìn)行的走查非常接近隨機(jī)走査。(走査是隨機(jī)的僅
僅意味著在圖上的某一頂點(diǎn)v處,在下一步在其任一相鄰點(diǎn)處的可能性是相等 的。)現(xiàn)在,由于圖G(p,C)具有"個(gè)頂點(diǎn),并且m:Q(log"""),因此走査迅速
混合并且輸出頂點(diǎn)非常接近均勻。接著,使得以上陳述更精確。在w個(gè)頂點(diǎn)的 c/正則圖G (例如)上的O(logn)步的隨機(jī)走査迅速混合的一種表述方式是<formula>formula see original document page 9</formula>
其中s很小,^是G的鄰接矩陣,v可被取作為任一標(biāo)準(zhǔn)單位向量,T是向量(l, 1, ..., 1)。矩陣可被認(rèn)為是圖120上的均勻隨機(jī)Markov鏈的轉(zhuǎn)移矩陣。在此實(shí)現(xiàn)中,系統(tǒng)100 在圖120上實(shí)現(xiàn)幾乎隨機(jī)的走査。這可被認(rèn)為是使用矩陣B作為轉(zhuǎn)移矩陣,使
得
丄M
并且S是很小的實(shí)數(shù)(其中符號(hào)l l表示矩陣模)。換言之,構(gòu)造模塊112將隨
機(jī)走査攝動(dòng)一較小的量。以下定理示出該新的隨機(jī)走查在S可取得足夠小的時(shí) 候快速混合。
定理設(shè)^和萬(wàn)是兩個(gè)子隨機(jī)矩陣,貝1」|^-^卜44-4。 證明可將差^-54寫(xiě)為
0轟-1
對(duì)兩邊取模并使用M卜M卜i的事實(shí)(因?yàn)樗鼈兪亲与S機(jī)矩陣),得到結(jié) 果。(證明結(jié)束)。
由于所進(jìn)行的隨機(jī)走查的長(zhǎng)度是O(log n)。如果可將參數(shù)5安排如下 、1og "
則所得的近似隨機(jī)走查也將快速混合。這可通過(guò)將提取器的參數(shù)s設(shè)為等于以
下來(lái)安排 (9
1
log w
抗沖突
在這一散列函數(shù)116下明確地找到?jīng)_突等效于找到相同C次方的一對(duì)超奇 異橢圓曲線之間的兩個(gè)同源。如果圖G(p,f)沒(méi)有小環(huán),則這一問(wèn)題是非常困難 的,因?yàn)樵谇€之間構(gòu)造高次同源公知地是計(jì)算上的難題。
替換實(shí)施例
作為對(duì)上述使用圖G(p, 的 一 種替換,系統(tǒng)100利用了 Lubotzky-Phillips-Sarnak擴(kuò)展圖120。設(shè)£和p是兩個(gè)不同的質(zhì)數(shù),其中£是小質(zhì)數(shù),而p相當(dāng)大。還假設(shè)p和f ^lmod4并且f是modp的二次剩余(這是 一-^三lmodp的情況)。用X^來(lái)表示具有參數(shù)f和p的LPS圖。接著定義 構(gòu)成圖Xt,p的頂點(diǎn)和邊。Xt,p的頂點(diǎn)是PSL(2,Fp)中的矩陣,即不可逆2x2矩陣, 其項(xiàng)Fp中,行列式為l,以及對(duì)任何矩陣A的等價(jià)關(guān)系A(chǔ) =-A。給定一行列 式為1的2x2矩陣A,頂點(diǎn)的名稱(chēng)將是A的項(xiàng)或-A的項(xiàng)的4元組,取決于在 集合(0,…,p-l"的普通排序中哪一個(gè)在字典順序上更小。接著報(bào)述構(gòu)成圖的邊。 矩陣A連接到矩陣giA,其中g(shù),是以下顯式定義的矩陣。設(shè)i是滿(mǎn)足i2E -l m0d p的整數(shù)。對(duì)等式gQ2+ gl2+ g22+ g32 = €恰好有8(f+l)個(gè)解g = (gG, gl, g2, g3)。在 這些解中只有£+1個(gè)的§()>0且為奇數(shù),并且對(duì)]=1,2, 3, gj是偶數(shù)。對(duì)于每
一這樣的g,關(guān)聯(lián)矩陣
這給出了 PSL(2,Fp)中£+1個(gè)矩陣的集合S。 gi是此集合中的矩陣。事實(shí)是, 如果g在S中,則g"也在S中。此外,由于£很小,因此,該矩陣集合S可 通過(guò)窮盡搜索非??斓卣业健?br>
示例性過(guò)程
圖2示出了根據(jù)一個(gè)實(shí)施例的用于從擴(kuò)展圖構(gòu)造散列函數(shù)的示例性過(guò)程 200。出于示例性描述的目的,過(guò)程200的操作相對(duì)于圖1的系統(tǒng)100的組件 來(lái)描述。組件參考標(biāo)號(hào)最左邊的數(shù)字指示了該組件首次被描述的特定圖。
在框202處,EG HF構(gòu)造模塊112 (圖1)將輸入消息118劃分成段。例 如,輸入消息的長(zhǎng)度為N。假設(shè)在k正則擴(kuò)展圖120中有w個(gè)頂點(diǎn)(每一頂點(diǎn) 具有名稱(chēng)/標(biāo)簽),則從任一頂點(diǎn)出發(fā)的每一條邊的名稱(chēng)將具有l(wèi)ogk比特。輸 入消息118被分解成長(zhǎng)度為logk的塊。在框204處,EGHF構(gòu)造模塊112走 査作為對(duì)散列函數(shù)的輸入的擴(kuò)展圖120。走查如下確定假定在某一頂點(diǎn)v處, 走査中的下一頂點(diǎn)通過(guò)從輸入中讀取下一 log k的塊以確定從頂點(diǎn)v出發(fā)的將 遍歷的邊來(lái)確定,該邊的另一端點(diǎn)將是走査的下一頂點(diǎn)。例如,EGHF構(gòu)造模 塊112從由輸入消息118的前k個(gè)比特(段/塊)指定的第一頂點(diǎn)開(kāi)始對(duì)擴(kuò)展圖 120中的邊的隨機(jī)走査。在擴(kuò)展圖120中走査的下一頂點(diǎn)由下一 logk比特的塊 來(lái)指定。考慮到指定邊的名稱(chēng)如何對(duì)應(yīng)于擴(kuò)展圖120中的頂點(diǎn)的約定,迭代地執(zhí)行這些運(yùn)算。 一個(gè)示例性的這樣的約定是對(duì)于每一頂點(diǎn)V,存在函數(shù) /V:{1,...,W4K。由此,y;(l)是從V出發(fā)的第一條邊,乂(2)是從V出發(fā)的第二
條邊,依此類(lèi)推。
在框206處,EGHF構(gòu)造模塊112確定所走査的最后一個(gè)頂點(diǎn)的標(biāo)簽。在 框208處,EGHF構(gòu)造模塊112輸出標(biāo)簽作為散列函數(shù)的結(jié)果。
圖3示出了根據(jù)一個(gè)實(shí)施例用于從擴(kuò)展圖構(gòu)造散列函數(shù)的示例性過(guò)程。出 于示例性描述的目的,過(guò)程300的操作相對(duì)于圖1的系統(tǒng)100的組件來(lái)描述。 在框302處,擴(kuò)展圖散列函數(shù)構(gòu)造模塊("EGHF構(gòu)造模塊")112 (圖1)標(biāo) 識(shí)具有熵次數(shù)的消息118。在框304處,EGHF構(gòu)造模塊112向擴(kuò)展圖120中 的每一頂點(diǎn)分配相應(yīng)的標(biāo)簽。在框306處,EGHF構(gòu)造模塊112使用提取器函 數(shù)來(lái)確定輸入消息118中的熵次數(shù)。所確定的次數(shù)被示為所提取的熵次數(shù)122。 在框308處,EGHF構(gòu)造模塊基于所提取的熵次數(shù)122走查擴(kuò)展圖120。在框 310處,EGHF構(gòu)造模塊112輸出與所走查的最后一個(gè)頂點(diǎn)的標(biāo)簽以及擴(kuò)展圖 120作為散列函數(shù)構(gòu)造116的結(jié)果。5卩,框302到310的操作對(duì)應(yīng)于散列函數(shù) 構(gòu)造116的操作。
示例性操作環(huán)境
圖4示出了其中可全部或部分實(shí)現(xiàn)從擴(kuò)展圖構(gòu)造散列函數(shù)的合適的計(jì)算 環(huán)境的一個(gè)示例。計(jì)算性計(jì)算環(huán)境400僅為適用于圖1的示例性系統(tǒng)以及圖2 和3的示例性操作的計(jì)算環(huán)境的一個(gè)示例,并非對(duì)此處所描述的系統(tǒng)和方法的 使用范圍或功能提出任何局限。也不應(yīng)將計(jì)算環(huán)境400解釋為對(duì)計(jì)算環(huán)境400 中示出的任一組件或其組合具有任何依賴(lài)性或要求。
此處所描述的方法和系統(tǒng)可以使用眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或 配置來(lái)操作。適合使用的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括但不 限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、網(wǎng) 絡(luò)PC、小型機(jī)、大型機(jī)、包括任一上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。 該框架的緊湊或子集形式也可以在諸如手持式計(jì)算機(jī)或其它計(jì)算設(shè)備等有限 資源的客戶(hù)機(jī)中實(shí)現(xiàn)。本發(fā)明在其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備 來(lái)執(zhí)行的分布式計(jì)算環(huán)境中實(shí)踐。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
參考圖4,用于從擴(kuò)展圖構(gòu)造散列函數(shù)的示例性系統(tǒng)包括實(shí)現(xiàn)例如圖1的
系統(tǒng)100的計(jì)算機(jī)410形式的通用計(jì)算設(shè)備。以下描述的計(jì)算機(jī)410的各方面 是圖1的計(jì)算設(shè)備102的示例性實(shí)現(xiàn)。計(jì)算機(jī)410的組件可包括但不限于,處 理單元420、系統(tǒng)存儲(chǔ)器430以及將包括系統(tǒng)存儲(chǔ)器的各類(lèi)系統(tǒng)組件耦合至處 理單元420的系統(tǒng)總線421。系統(tǒng)總線421可以是若干種總線結(jié)構(gòu)的任一種, 包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及使用各類(lèi)總線體系結(jié)構(gòu)的任一 種的局部總線。作為示例而非局限,這類(lèi)體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA) 總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA (EISA)總線、視頻電子 技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線、外圍部件互連(PCI)總線(也稱(chēng)為小背板 (Mezzanine)總線)。
計(jì)算機(jī)410通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì) 算機(jī)410訪問(wèn)的任一可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移
動(dòng)介質(zhì)。作為示例而非局限,計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。 計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于儲(chǔ)存諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或
其它數(shù)據(jù)等信息的任一方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性,可移動(dòng)和不可移 動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其 它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其它光盤(pán)存儲(chǔ)、磁盒、磁 帶、磁盤(pán)存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來(lái)儲(chǔ)存所期望的信息并可由計(jì)算機(jī) 410訪問(wèn)的任一其它介質(zhì)。
通信介質(zhì)通常以諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算 機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù) 語(yǔ)"已調(diào)制數(shù)據(jù)信號(hào)"指以對(duì)信號(hào)中的信息進(jìn)行編碼的方式設(shè)置或改變其一個(gè) 或多個(gè)特征的信號(hào)。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò) 或直接連線連接,以及無(wú)線介質(zhì),如聲學(xué)、RF、紅外和其它無(wú)線介質(zhì)。上述任 一的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器430包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì), 如只讀存儲(chǔ)器(ROM) 431和隨機(jī)存取存儲(chǔ)器(RAM) 432?;据斎?輸出系 統(tǒng)433 (BIOS)包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)410內(nèi)的元件之間傳輸信息的基本例程,它通常儲(chǔ)存在ROM431中。RAM432通常包含處理單元420立即可 訪問(wèn)和/或當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖4示出 了操作系統(tǒng)434、應(yīng)用程序435、其它程序模塊436和程序數(shù)據(jù)437。
計(jì)算機(jī)410也可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ) 介質(zhì)。僅作示例,圖4示出了對(duì)不可移動(dòng)、非易失性磁介質(zhì)進(jìn)行讀寫(xiě)的硬盤(pán)驅(qū) 動(dòng)器441,對(duì)可移動(dòng)、非易失性磁盤(pán)432進(jìn)行讀寫(xiě)的磁盤(pán)驅(qū)動(dòng)器431,以及對(duì) 可移動(dòng)、非易失性光盤(pán)436,如CDROM或其它光介質(zhì)進(jìn)行讀寫(xiě)的光盤(pán)驅(qū)動(dòng)器 433??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性 計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤(pán)、數(shù)字錄像帶、 固態(tài)RAM、固態(tài)ROM等等。硬盤(pán)驅(qū)動(dòng)器441通常通過(guò)不可移動(dòng)存儲(chǔ)器接口, 如接口 440連接到系統(tǒng)總線421,磁盤(pán)驅(qū)動(dòng)器431和光盤(pán)驅(qū)動(dòng)器433通常通過(guò) 可移動(dòng)存儲(chǔ)器接口,如接口 430連接到系統(tǒng)總線421。
上文討論并在圖4示出的驅(qū)動(dòng)器及其關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)410 提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖 4中,示出硬盤(pán)驅(qū)動(dòng)器441儲(chǔ)存操作系統(tǒng)444、應(yīng)用程序443、其它程序模塊 446和程序數(shù)據(jù)447。注意,這些組件可以與操作系統(tǒng)434、應(yīng)用程序433、其 它程序模塊436和程序數(shù)據(jù)437相同,也可以與它們不同。應(yīng)用程序433包括 例如圖1的計(jì)算設(shè)備102的程序模塊108。程序數(shù)據(jù)437包括例如圖1的計(jì)算 設(shè)備102的程序數(shù)據(jù)110。這里對(duì)操作系統(tǒng)444、應(yīng)用程序443、其它程序模塊 446和程序數(shù)據(jù)447給予不同的標(biāo)號(hào)來(lái)說(shuō)明至少它們是不同的副本。
用戶(hù)可以通過(guò)輸入設(shè)備,如鍵盤(pán)462和定位設(shè)備461 (通常指鼠標(biāo)、跟蹤 球或觸摸墊)向計(jì)算機(jī)410輸入命令和信息。其它輸入設(shè)備(未示出)可包括 話(huà)筒、操縱桿、游戲手柄、圓盤(pán)式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè) 備通常通過(guò)耦合至系統(tǒng)總線421的用戶(hù)輸入接口 460連接至處理單元420,但 是也可以通過(guò)其它接口和總線結(jié)構(gòu)連接,如并行端口、游戲端口或通用串行總 線(USB)。
監(jiān)視器491或其它類(lèi)型的顯示設(shè)備也通過(guò)接口,如視頻接口 490連接至系 統(tǒng)總線421。除監(jiān)視器之外,計(jì)算機(jī)也可包括其它外圍輸出設(shè)備,如打印機(jī)496 和音頻設(shè)備497,它們通過(guò)輸出外圍接口 493連接。計(jì)算機(jī)410可以使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)480的邏輯 連接在網(wǎng)絡(luò)化環(huán)境中操作。在一個(gè)實(shí)現(xiàn)中,遠(yuǎn)程計(jì)算機(jī)480表示圖1的計(jì)算設(shè) 備102或聯(lián)網(wǎng)計(jì)算機(jī)104。遠(yuǎn)程計(jì)算機(jī)480可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由 器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見(jiàn)的網(wǎng)絡(luò)節(jié)點(diǎn),并根據(jù)其具體實(shí)現(xiàn),可以包 括許多或所有相對(duì)于計(jì)算機(jī)410所描述的元件,盡管在圖4中僅示出了存儲(chǔ)器 存儲(chǔ)設(shè)備481。圖4描述的邏輯連接包括局域網(wǎng)(LAN) 471和廣域網(wǎng)(WAN) 473,但也可包括其它網(wǎng)絡(luò)。這類(lèi)網(wǎng)絡(luò)環(huán)境常見(jiàn)于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng) 絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)410通過(guò)網(wǎng)絡(luò)接口或適配器470連 接至LAN471。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)410通常包括調(diào)制解調(diào) 器472或用于通過(guò)WAN473,如因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器472 可以是內(nèi)置或外置的,它通過(guò)用戶(hù)輸入接口 460或其它適當(dāng)?shù)臋C(jī)制連接至系統(tǒng) 總線421。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)410所描述的程序模塊或其部分可 儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非局限,圖4示出遠(yuǎn)程應(yīng)用程序483 駐留在存儲(chǔ)器設(shè)備481上。可以理解,示出的網(wǎng)絡(luò)連接是示例性的,也可以使 用在計(jì)算機(jī)之間建立通信鏈路的其它手段。
結(jié)論
盡管以對(duì)結(jié)構(gòu)特征和/或方法操作或動(dòng)作專(zhuān)用的語(yǔ)言描述了用于從擴(kuò)展圖 構(gòu)造散列函數(shù)的系統(tǒng)和方法,但是可以理解,所附權(quán)利要求書(shū)中定義的實(shí)現(xiàn)不 一定限于所描述的具體特征或動(dòng)作。相反,系統(tǒng)100的具體特征和操作是作為 實(shí)現(xiàn)所要求保護(hù)的主題的示例性形式而公開(kāi)的。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括根據(jù)對(duì)一散列函數(shù)的輸入走查一擴(kuò)展圖,所述擴(kuò)展圖是使用輸入消息的相應(yīng)子集來(lái)走查的;確定所走查的最后一個(gè)頂點(diǎn)的標(biāo)簽;以及輸出所述標(biāo)簽作為所述散列函數(shù)的結(jié)果。
2. 如權(quán)利要求l所述的方法,其特征在于,所述擴(kuò)展圖是Ramanujan圖。
3. 如權(quán)利要求1所述的方法,其特征在于,所述擴(kuò)展圖是 Lubotzky-Phillips-Sarnak擴(kuò)展圖。
4. 如權(quán)利要求1所述的方法,其特征在于,所述擴(kuò)展圖是有限特征域p 上的超奇異橢圓曲線的圖。
5. 如權(quán)利要求l所述的方法,其特征在于,所述結(jié)果是密碼散列。
6. 如權(quán)利要求1所述的方法,其特征在于,找出所述散列函數(shù)的沖突在 計(jì)算上是困難的。
7. 如權(quán)利要求1所述的方法,其特征在于,所述輸入消息具有特定的熵 次數(shù),并且其中,所述散列函數(shù)是抗沖突的。
8. 如權(quán)利要求l所述的方法,其特征在于,走查還包括 將所述輸入消息劃分成段;以及對(duì)這些段中的至少一個(gè)子集,基于一子集的特定一段的各方面來(lái)確定到所 述擴(kuò)展圖中的下一相應(yīng)頂點(diǎn)的路徑。
9. 如權(quán)利要求l所述的方法,其特征在于,所述擴(kuò)展圖包括"個(gè)頂點(diǎn), 其中所述輸入消息具有一熵次數(shù),并且其中,所述方法還包括向所述圖的各頂點(diǎn)分配相應(yīng)的標(biāo)簽; 確定所述熵次數(shù);其中,走査還包括使用所述熵次數(shù)來(lái)走査所述w個(gè)頂點(diǎn)以標(biāo)識(shí)完全隨機(jī)的 頂點(diǎn)輸出;并且所述輸出是所走査的"個(gè)頂點(diǎn)中的最后一個(gè)頂點(diǎn)的相應(yīng)的所分配的標(biāo)簽。
10. 如權(quán)利要求9所述的方法,其特征在于,確定所述熵次數(shù)還包括使用一提取器函數(shù)來(lái)確定與所述輸入消息相關(guān)聯(lián)的隨機(jī)性程度。
11. 一種包括可由處理器執(zhí)行的計(jì)算機(jī)編程的指令的計(jì)算機(jī)可讀介質(zhì),所 述指令用于將消息劃分成段;根據(jù)對(duì)一散列函數(shù)的輸入走查一擴(kuò)展圖,所述擴(kuò)展圖是使用所述各段中的 相應(yīng)段確定到所述擴(kuò)展圖中的W個(gè)頂點(diǎn)中的下一頂點(diǎn)的路徑來(lái)走查的; 確定所走查的最后一個(gè)頂點(diǎn)的標(biāo)簽;以及 輸出所述標(biāo)簽作為所述散列函數(shù)的結(jié)果。
12. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述擴(kuò)展圖是 Ramanujan圖或Lubotzky-Phillips誦Sarnak擴(kuò)展圖。
13. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述結(jié)果是密 碼散列。
14. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,找出所述散列 函數(shù)的沖突在計(jì)算上是困難的。
15. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述消息基于 從所述消息中提取的熵次數(shù)被劃分成所述段。
16. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述擴(kuò)展圖包 括w個(gè)頂點(diǎn),其中所述消息具有一熵次數(shù),并且其中,所述計(jì)算機(jī)程序指令還 包括用于執(zhí)行以下動(dòng)作的結(jié)構(gòu)向所述圖的各頂點(diǎn)分配相應(yīng)的標(biāo)簽; 確定所述熵次數(shù);其中,走査還包括使用所述熵次數(shù)來(lái)走查所述《個(gè)頂點(diǎn)以標(biāo)識(shí)完全隨機(jī)的 頂點(diǎn)輸出;并且所述輸出是所走査的"個(gè)頂點(diǎn)中的最后一個(gè)頂點(diǎn)的相應(yīng)的所分配的標(biāo)簽。
17. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述用于確定 熵次數(shù)的計(jì)算機(jī)編程的指令還包括用于使用一提取器函數(shù)來(lái)確定與所述消息 相關(guān)聯(lián)的隨機(jī)性程度的指令。
18. —種計(jì)算設(shè)備,包括 處理器;以及耦合到所述處理器的存儲(chǔ)器,所述存儲(chǔ)器包括可由所述處理器執(zhí)行的計(jì)算 機(jī)程序指令,所述指令用于向一擴(kuò)展圖中的W個(gè)頂點(diǎn)中的相應(yīng)頂點(diǎn)分配相應(yīng)的標(biāo)簽; 確定輸入消息的隨機(jī)性;走査作為對(duì)一散列函數(shù)的輸入的所述擴(kuò)展圖,所述擴(kuò)展圖中的頂點(diǎn)是 基于所述隨機(jī)性來(lái)訪問(wèn)的;確定所走査的頂點(diǎn)中的最后一個(gè)頂點(diǎn)的標(biāo)簽;以及 輸出所述標(biāo)簽作為所述散列函數(shù)的結(jié)果。
19. 如權(quán)利要求18所述的計(jì)算設(shè)備,其特征在于,所述擴(kuò)展圖是Ramanujan 圖或Lubotzky-Phillips-Sarnak擴(kuò)展圖。
20. 如權(quán)利要求18所述的計(jì)算設(shè)備,其特征在于,所述結(jié)果是密碼散列。
全文摘要
描述了從擴(kuò)展圖構(gòu)造散列函數(shù)。在一方面,走查一擴(kuò)展圖以計(jì)算散列函數(shù)。該擴(kuò)展圖是使用輸入消息的相應(yīng)子集來(lái)走查的。所走查的最后一個(gè)頂點(diǎn)的標(biāo)簽是該散列函數(shù)的輸出。
文檔編號(hào)G06F17/00GK101300569SQ200680040456
公開(kāi)日2008年11月5日 申請(qǐng)日期2006年10月16日 優(yōu)先權(quán)日2005年11月1日
發(fā)明者D·X·查爾斯, E·Z·戈倫, K·E·勞特 申請(qǐng)人:微軟公司