專利名稱:通過并行散列值確定來同步源和目的系統(tǒng)的制作方法
背景技術(shù):
方法
技術(shù)領(lǐng)域:
本發(fā)明涉及安全性系統(tǒng)的領(lǐng)域,以及特別地,涉及一個(gè)有助于為內(nèi)容材料的毗連段而計(jì)算散列值的系統(tǒng)。
2、背景技術(shù)散列法被普遍地用于創(chuàng)建多個(gè)數(shù)據(jù)單元的一個(gè)單向編碼。該單向編碼是這樣的它易于從特定的輸入值或者一系列輸入值來創(chuàng)建一個(gè)散列值,但是要從該散列值來確定特定的輸入值或者輸入值系列卻是非常困難的,或者事實(shí)上是不可能的。散列值被普遍地用于“綁定”多個(gè)數(shù)據(jù)單元。特定的多個(gè)數(shù)據(jù)單元的散列值能夠識(shí)別該多個(gè)數(shù)據(jù)單元;如果該數(shù)據(jù)單元中的一個(gè)或多個(gè)被改變了,則將會(huì)產(chǎn)生一個(gè)不同的散列值。在通信系統(tǒng)中,對(duì)應(yīng)于一組被發(fā)送的數(shù)據(jù)單元的散列值與一組接收到的數(shù)據(jù)單元的通過計(jì)算得到的散列值相比較,以證實(shí)該接收到的數(shù)據(jù)單元對(duì)應(yīng)于所述發(fā)送出的數(shù)據(jù)單元。在存儲(chǔ)系統(tǒng)中,被寫入到存儲(chǔ)媒體的該數(shù)據(jù)單元的散列值與一個(gè)計(jì)算得到的數(shù)據(jù)單元的散列值相比較,其中所述計(jì)算得到的數(shù)據(jù)單元被宣稱對(duì)應(yīng)于該被寫入的數(shù)據(jù)單元,以證實(shí)該數(shù)據(jù)單元已被從原始的存儲(chǔ)媒體中讀出,或者從該被寫入所述存儲(chǔ)媒體的數(shù)據(jù)單元的一個(gè)有效拷貝中讀出。為了易于參考,在此術(shù)語“源”被用來定義所述原始的數(shù)據(jù)單元,為該原始的數(shù)據(jù)單元提供了一個(gè)“源”散列值,并且術(shù)語“目的”被用來定義當(dāng)前的數(shù)據(jù)單元,為該當(dāng)前的數(shù)據(jù)單元計(jì)算一個(gè)“目的”散列值以與所述源散列值相比較,從而確定所述源和目的數(shù)據(jù)值之間的對(duì)應(yīng)關(guān)系。
散列法被特定地設(shè)計(jì)用于檢測(cè)數(shù)據(jù)的甚至最微小的變化。兩組數(shù)據(jù)間單個(gè)比特的差別都將導(dǎo)致顯著不同的散列值。散列值對(duì)特定數(shù)據(jù)值的敏感度可以通過“舍入(rounding)”該數(shù)據(jù)值,或者通過其他技術(shù)而被降低,所述其它技術(shù)有效地向該散列函數(shù)提供同樣的輸入而不管在該特定的數(shù)據(jù)值中的一些小的變化。然而,散列值對(duì)于被提供給所述散列函數(shù)的特定數(shù)據(jù)值的選擇的敏感度不能被降低。即,假定所述數(shù)據(jù)單元的取值不同,如果所述散列值是基于一組十個(gè)數(shù)據(jù)值的,則在目的處對(duì)用于計(jì)算所述散列值的第一到第十個(gè)數(shù)據(jù)單元的選擇必須與在源處的同樣的數(shù)據(jù)單元一致。也就是說,在所述源和所述目的處的散列函數(shù)必須是同步的。
要確保源和目的散列函數(shù)的同步經(jīng)常是很困難的。例如,散列法經(jīng)常被用于對(duì)諸如CD、VCD以及其他媒體上的版權(quán)材料的受復(fù)制保護(hù)的內(nèi)容材料的編碼。在錄制過程及重放過程中的變化,特別是在那些被設(shè)計(jì)以允許低成本制作的消費(fèi)設(shè)備中的變化,常常阻止了源和目的之間的真正的同步。因此,常規(guī)的系統(tǒng)通常被配置成動(dòng)態(tài)地確定局部化的同步,其中該常規(guī)的系統(tǒng)被設(shè)計(jì)用來比較未被假定為同步的源和目的系統(tǒng)的散列值。即,在目的處、在預(yù)期的同步點(diǎn)使用一組數(shù)據(jù)值來確定一個(gè)散列值。如果所述計(jì)算得到的目的散列值不對(duì)應(yīng)于該源散列值,則在偏離該目的處的預(yù)期同步點(diǎn)的某點(diǎn)計(jì)算另一個(gè)目的散列值。如果這個(gè)新的目的散列值也不對(duì)應(yīng)于所述源散列值,則使用一個(gè)新的偏移,并計(jì)算出新的目的散列值。自該預(yù)期的同步點(diǎn)的偏移在該預(yù)期的同步點(diǎn)周圍不斷擴(kuò)展,直到達(dá)到了局部的同步(目的散列值=源散列值),或者直到該偏移量超出了所述預(yù)期的同步點(diǎn)周圍的某一合理的界限,在這一點(diǎn)上可以得出結(jié)論該源和目的單元是不同的。在這種情況下,一個(gè)“良好受控的”目的設(shè)備可能很快地達(dá)到局部的同步,而較少受控的(即不太昂貴的)目的設(shè)備則可能在要求達(dá)到局部同步的時(shí)間內(nèi)呈現(xiàn)出較大的變化。
發(fā)明概述本發(fā)明的一個(gè)目的是提供一種用于多散列比較的有效的方法和系統(tǒng)。本發(fā)明的另一個(gè)目的是減少被要求用來實(shí)現(xiàn)源和目的散列值之間的同步的時(shí)間可變性。
這些目的及其他目的是通過并行處理多個(gè)散列計(jì)算以實(shí)現(xiàn)源和目的散列過程之間的同步來實(shí)現(xiàn)的。多個(gè)動(dòng)態(tài)的散列計(jì)算過程并行操作,每個(gè)計(jì)算過程處在相對(duì)于所接收到的數(shù)據(jù)序列的特定階段或者延遲。如果該過程之一的散列結(jié)果匹配于一個(gè)與在該源處的數(shù)據(jù)序列相關(guān)聯(lián)的給定散列值,則在該目的處的產(chǎn)生所述散列結(jié)果的數(shù)據(jù)集被確保為對(duì)應(yīng)于在該源處產(chǎn)生該給定的散列值的數(shù)據(jù)集。
附圖簡(jiǎn)述本發(fā)明將參考附圖來進(jìn)一步詳細(xì)地且借助于實(shí)例地進(jìn)行解釋,其中
圖1說明了依照本發(fā)明的一個(gè)并行散列系統(tǒng)的實(shí)例框圖。
圖2說明了依照本發(fā)明的一個(gè)并行散列系統(tǒng)的實(shí)例流程圖。
貫穿所述附圖始終,同樣的參考數(shù)字表示相似的或者相應(yīng)的特征或功能。
發(fā)明詳述圖1說明了依照本發(fā)明的一個(gè)并行散列系統(tǒng)100的實(shí)例框圖。該系統(tǒng)100,即在下文中的所述目的系統(tǒng),接收到一個(gè)數(shù)據(jù)序列Din,該Din意味著是來自源系統(tǒng)的(圖中沒有示出)。伴隨著該數(shù)據(jù)Din的是一個(gè)散列值Hsource。該散列值Hsource被假定為安全地從該源系統(tǒng)傳送,并且對(duì)應(yīng)于在該源系統(tǒng)的數(shù)據(jù)的一個(gè)特定段的散列。如果所接收到的數(shù)據(jù)Din的某個(gè)散列對(duì)應(yīng)于所述散列值Hsource,則這種對(duì)應(yīng)關(guān)系用作對(duì)所接收到的數(shù)據(jù)Din對(duì)應(yīng)于源自該源系統(tǒng)的數(shù)據(jù)的證明。
盡管散列函數(shù)和被用于形成所述散列值Hsource的數(shù)據(jù)單元的個(gè)數(shù)是已知的,但是對(duì)應(yīng)于該散列值Hsource的特定的數(shù)據(jù)單元Din集還是未知的。正如前面所解釋的,例如,在CD上的某首歌曲的編碼可能包括對(duì)應(yīng)于該已被編碼的歌曲的一個(gè)或多個(gè)段的一個(gè)或多個(gè)散列值。被在所述源用以產(chǎn)生每個(gè)散列值的所述散列函數(shù),包括被用于產(chǎn)生所述散列值的數(shù)據(jù)單元的個(gè)數(shù),是已知的,但是對(duì)在所述目的系統(tǒng)100的每段的起點(diǎn)的確定可能經(jīng)歷某一可變性。例如,某段可能在所述源被定義成出現(xiàn)在CD上的每首歌的“開始”的前k個(gè)數(shù)據(jù)單元。在目的處,例如在重放設(shè)備處,歌曲的精確“開始”可能很難以一個(gè)數(shù)據(jù)單元的辨析度來確定。如果該目的設(shè)備在所述數(shù)據(jù)流中的某點(diǎn)啟動(dòng)對(duì)散列值的確定,該點(diǎn)不同于源設(shè)備啟動(dòng)對(duì)所述散列值Hsource的確定處的數(shù)據(jù)流中的點(diǎn),甚至相差一個(gè)數(shù)據(jù)單元,則在該目的處的散列值通常將不對(duì)應(yīng)于來自所述源的散列值。
在圖1中示出的是“n”個(gè)并行操作的散列設(shè)備110,所述散列設(shè)備110中的每一個(gè)都被連接以接收所述數(shù)據(jù)單元序列Din。每個(gè)散列設(shè)備110被相應(yīng)的使能信號(hào)S1-Sn所控制。當(dāng)被所述相應(yīng)的使能信號(hào)S1-Sn使能時(shí),每個(gè)散列設(shè)備110被配置成執(zhí)行與被用于產(chǎn)生所述散列值Hsource的散列函數(shù)相同的散列函數(shù)。所述使能信號(hào)S1-Sn被斷言用于與產(chǎn)生所述散列值Hsource所用的相同數(shù)量的數(shù)據(jù)樣本,但是相對(duì)于所述輸入數(shù)據(jù)Din,每個(gè)開始于不同的時(shí)間或者相位。時(shí)鐘信號(hào)Cd在所述數(shù)據(jù)值序列的每個(gè)新數(shù)據(jù)樣本Din處觸發(fā)每個(gè)散列設(shè)備110,并且當(dāng)前的數(shù)據(jù)樣本Din被應(yīng)用于每一個(gè)已被使能的散列設(shè)備110。在一個(gè)直接的實(shí)施方案中,所述使能信號(hào)S1-Sn被配置成對(duì)應(yīng)于每個(gè)按順序的數(shù)據(jù)單元。例如,S1在第一數(shù)據(jù)單元開始,S2對(duì)應(yīng)于下一個(gè)數(shù)據(jù)單元的出現(xiàn),S3對(duì)應(yīng)于再下一個(gè)數(shù)據(jù)單元,等等。作為選擇,如果所述目的設(shè)備100接收到一個(gè)觸發(fā)或者隊(duì)列來指示每個(gè)散列值是在何處開始的,例如在特定的數(shù)據(jù)字邊界,則該開始信號(hào)S1-Sn將被配置成開始于每個(gè)觸發(fā)點(diǎn)。
比較器120被配置成對(duì)來自每個(gè)散列設(shè)備110的被確定的散列值和來自所述源系統(tǒng)的散列值Hsource進(jìn)行比較。該比較發(fā)生在對(duì)每個(gè)散列值的確定的結(jié)尾,即該相應(yīng)的使能信號(hào)S1-Sn被解除斷言時(shí)。如果所述被確定的散列值等于散列值Hsource,則匹配結(jié)果M1-Mn被斷言,從而發(fā)信號(hào)通知所接收到的數(shù)據(jù)Din對(duì)應(yīng)于源自所述源的數(shù)據(jù)。注意到為易于理解,在圖中示出一個(gè)個(gè)體比較器120。本領(lǐng)域的任意一名普通技術(shù)人員都將意識(shí)到利用適當(dāng)?shù)那袚Q電路來從每個(gè)散列設(shè)備100中順序地選擇所述被確定的散列,則可以使用一單個(gè)比較器。
由于所述散列的確定和比較是以交錯(cuò)并行的方式出現(xiàn)的,所以會(huì)出現(xiàn)持續(xù)的比較,并且避免了為匹配而進(jìn)行的常規(guī)的迭代搜索。正如在圖1中所示出的,一旦出現(xiàn)一次匹配則該匹配被報(bào)告。在優(yōu)選的實(shí)施方案中,并聯(lián)電路的數(shù)目n被選擇以對(duì)應(yīng)于在所述源和目的系統(tǒng)之間同步的所預(yù)期的變化。例如,如果所預(yù)期的同步點(diǎn)是在T時(shí)刻,并且該變化為+/-T1,那么n優(yōu)選地取2*T1+1。在本實(shí)施方案中,S1對(duì)應(yīng)于T-T1,S2對(duì)應(yīng)于(T-T1)+1,等等,以及Sn對(duì)應(yīng)于T+T1。如果被用于計(jì)算每個(gè)散列值的數(shù)據(jù)值的個(gè)數(shù)k小于n,則級(jí)數(shù)能夠通過在該比較完成之后“再利用”每一級(jí)而減少。即,例如,第一級(jí)將在(T-T1)+(k-1)時(shí)刻完成它的比較,并將可用于開始新的散列確定以及與下一數(shù)據(jù)輸入Din的比較。這樣,該目的系統(tǒng)能夠被配置成包括k個(gè)散列確定和比較級(jí),并且所述使能信號(hào)S1-Sk將被配置成以循環(huán)(round-robin)的方式在n個(gè)數(shù)據(jù)樣本內(nèi)輪轉(zhuǎn)。也就是說,S1將為k個(gè)數(shù)據(jù)樣本在T-T1時(shí)刻被使能,然后在(T-T1)+k時(shí)刻被重新使能,然后是在(T-T1)+2*k時(shí)刻等等,直到出現(xiàn)一次匹配,或者直到n次比較都已經(jīng)完成。
該散列確定和比較可能會(huì)通過硬件(如在圖1中所示)或者通過軟件或者兩者的結(jié)合而實(shí)現(xiàn)。例如,圖1的所述散列設(shè)備120可以被實(shí)現(xiàn)為多個(gè)軟件功能調(diào)用,該軟件功能調(diào)用實(shí)現(xiàn)所述散列函數(shù)以及將結(jié)果存儲(chǔ)到相應(yīng)的寄存器中以便于后來的跟源散列值的比較。所述散列函數(shù)本身可以被實(shí)現(xiàn)為軟件算法、硬件設(shè)備,或者是在可編程硬件設(shè)備中的固件步驟的序列。其它的實(shí)施方案及方案的結(jié)合對(duì)于本領(lǐng)域的任意一位普通技術(shù)人員都將是顯而易見的。
圖2說明了依照本發(fā)明的并行散列系統(tǒng)的實(shí)例流程圖,其中每個(gè)所示程序塊或者程序塊序列都可以被實(shí)現(xiàn)為硬件、軟件、或者二者的結(jié)合。
在210,在對(duì)應(yīng)于散列確定的范圍開始的時(shí)刻(即,當(dāng)圖1的S1被首次使能時(shí)),該系統(tǒng)通過清除被用于包含該散列值的變量并將數(shù)據(jù)索引i置為零而被初始化。當(dāng)每個(gè)新的數(shù)據(jù)值在220被接收到時(shí),該數(shù)據(jù)索引i被遞增。在圖2的實(shí)例流程圖中,每個(gè)新的數(shù)據(jù)值被應(yīng)用到受所述數(shù)據(jù)值影響的每個(gè)散列變量。在230,受當(dāng)前的數(shù)據(jù)樣本影響的散列變量的范圍被確定為變量Lower(下)和Upper(上)。也就是說,例如,在圖1的所示實(shí)施例中,當(dāng)S1被首次使能時(shí),第一數(shù)據(jù)樣本將只被應(yīng)用到第一散列設(shè)備120,因?yàn)槠渌氖鼓苄盘?hào)S2-Sn還沒有被使能。在本實(shí)施例中,Lower和Upper都將被置為1。類似地,當(dāng)S2被首次使能時(shí),第二數(shù)據(jù)樣本將被應(yīng)用到第一和第二散列設(shè)備120,并且所述Lower和Upper變量將分別被置為1和2。所示Min和Max函數(shù)確保該Lower和Upper變量被限制為對(duì)應(yīng)于1到N散列變量。
所示循環(huán)240-249將當(dāng)前的數(shù)據(jù)值應(yīng)用于在所述Lower和Upper界限內(nèi)的散列變量的每一個(gè)。在245,所述對(duì)應(yīng)于在該源系統(tǒng)的散列函數(shù)的散列函數(shù)被應(yīng)用于特定的散列變量H(r),其中r是來自所述Lower到Upper界限的序列的索引。
在第一散列變量H(1)能夠跟所述源散列值Hsource相比較之前必須對(duì)至少K個(gè)數(shù)據(jù)樣本進(jìn)行處理。如果已經(jīng)接收到少于K個(gè)數(shù)據(jù)樣本,則在250的判決塊實(shí)現(xiàn)一個(gè)返回220的環(huán)路以便接收下一個(gè)數(shù)據(jù)樣本。此后,在每個(gè)環(huán)路過程240-249的末尾,將完成Lower散列值H(Lower),并且這個(gè)被完成的散列值H(Lower)在260與所述源值Hsource相比較。如果該被完成的散列值H(Lower)等于所述源散列值Hsource,則該過程在265以結(jié)果“匹配”來終止。如果這個(gè)被完成的散列值是上一個(gè)散列變量(Lower=N),在270,則該過程在275以結(jié)果“不匹配”來終止;否則,該過程環(huán)回,在220接收下一個(gè)數(shù)據(jù)樣本。
正如前面所解釋的,如果被用于計(jì)算所述散列變量的數(shù)據(jù)值的個(gè)數(shù)K小于搜索范圍N,則可以使用更少的散列變量。在這種情況下,對(duì)該散列變量的索引將采用一個(gè)模(K)函數(shù)來重新使用所述散列變量,并且在270,每個(gè)被完成的散列變量將在環(huán)回去接收下一個(gè)數(shù)據(jù)樣本之前被清除。
前述的內(nèi)容只說明了本發(fā)明的原理。因而應(yīng)當(dāng)意識(shí)到本領(lǐng)域的技術(shù)人員將能夠設(shè)計(jì)出多種方案,雖然沒有在此進(jìn)行明確地描述或說明,但這些方案包含了本發(fā)明的原理并且因此在以下權(quán)利要求的精神和范圍之內(nèi)。
權(quán)利要求
1.一種散列系統(tǒng)(100),該系統(tǒng)被配置成接收一個(gè)數(shù)據(jù)值的序列(Din)和一個(gè)源散列值(Hsource),包括多個(gè)散列設(shè)備(110),該多個(gè)散列設(shè)備(110)的每個(gè)散列設(shè)備被配置成當(dāng)被使能時(shí)(S1-Sn)將一個(gè)散列函數(shù)(H)應(yīng)用于所述數(shù)據(jù)值的序列(Din)的接收到的數(shù)據(jù)值,以及至少一個(gè)比較器(120),其可操作地被耦合到所述多個(gè)散列設(shè)備(110),該比較器被配置成比較每個(gè)散列設(shè)備的輸出和所述源散列值(Hsource),以便于對(duì)所述數(shù)據(jù)值的序列(Din)的驗(yàn)證。
2.如權(quán)利要求1所述的散列系統(tǒng)(100),其中每個(gè)散列設(shè)備順序地被使能(S1-Sn)。
3.如權(quán)利要求1所述的散列系統(tǒng)(100),其中每個(gè)散列函數(shù)(H)對(duì)于K個(gè)數(shù)據(jù)樣本的持續(xù)時(shí)間被使能(S1-Sn),以及所述多個(gè)散列設(shè)備(110)對(duì)應(yīng)于K個(gè)散列設(shè)備(110)。
4.一種基于一個(gè)對(duì)應(yīng)于源數(shù)據(jù)值(Din)的某個(gè)子集的源散列值(Hsource)來確定接收到的數(shù)據(jù)值序列(Din)和源之間對(duì)應(yīng)關(guān)系的方法,該方法包括剛一出現(xiàn)所接收到的數(shù)據(jù)值序列(Din)的每個(gè)數(shù)據(jù)值,就有選擇地使能(S1-Sn)一個(gè)或多個(gè)散列單元(110),利用每個(gè)被使能的散列單元來散列(H)每個(gè)數(shù)據(jù)值以產(chǎn)生一個(gè)對(duì)應(yīng)于所述一個(gè)或多個(gè)散列單元(110)的每個(gè)散列單元的確定的散列值,以及比較(C)每個(gè)被確定的散列值和所述源散列值(Hsource)以確定所述接收到的數(shù)據(jù)值序列(Din)和所述源之間的對(duì)應(yīng)關(guān)系。
5.如權(quán)利要求4所述的方法,其中有選擇地使能(S1-Sn)所述一個(gè)或多個(gè)散列單元(110)包括順序地使能所述一個(gè)或多個(gè)散列單元(110)中的每一個(gè)。
6.如權(quán)利要求4所述的方法,其中有選擇地使能(S1-Sn)所述一個(gè)或多個(gè)散列單元(110)包括對(duì)于對(duì)應(yīng)于K個(gè)數(shù)據(jù)值(Din)的持續(xù)時(shí)間來使能所述一個(gè)或多個(gè)散列單元(110)中的每一個(gè),以及所述一個(gè)或多個(gè)散列單元(110)對(duì)應(yīng)于K個(gè)散列單元(110)。
全文摘要
多個(gè)散列計(jì)算被并行處理以實(shí)現(xiàn)在源和目的散列處理之間的同步。多個(gè)動(dòng)態(tài)的散列計(jì)算過程并行操作,每一個(gè)散列計(jì)算過程相對(duì)于所接收到的數(shù)據(jù)序列而處于一個(gè)特定的階段,或者被延遲。如果所述處理之一的散列結(jié)果匹配于與在所述源的數(shù)據(jù)序列相關(guān)聯(lián)的一個(gè)給定的散列值,則在產(chǎn)生所述散列結(jié)果的目的處的數(shù)據(jù)集被確保對(duì)應(yīng)于在產(chǎn)生所述給定散列值的源的數(shù)據(jù)集。
文檔編號(hào)H04L9/32GK1606845SQ02825371
公開日2005年4月13日 申請(qǐng)日期2002年12月20日 優(yōu)先權(quán)日2001年12月21日
發(fā)明者M·A·埃普斯泰恩 申請(qǐng)人:皇家飛利浦電子股份有限公司