專利名稱:確認(rèn)有損耗傳輸?shù)膱D象的完整性的方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及信號加密的領(lǐng)域,并且特別涉及一種用于識別有損耗傳輸?shù)臄?shù)字圖象是否還沒有被修改過并且是否已經(jīng)從專用的源發(fā)送的方法。這通過建立專門的指紋和“簽名”實現(xiàn)。
現(xiàn)有的諸如美國專利No.5,499,294中公開的用于加密數(shù)字信號以防干擾的方法可防止有惡意的敵方修改信號。指紋或“散列”用于表示數(shù)字圖象。散列算法(即單向函數(shù))已廣為人知并且易于計算,但是卻非常難以數(shù)學(xué)反演。通常使用加密密鑰加密指紋以證明或鑒別簽名創(chuàng)建人。該加密本身是一種具有使用秘密密鑰的源站的標(biāo)準(zhǔn)公共/秘密密鑰密碼法。由此產(chǎn)生的簽名由具有源公開密鑰的接收站解密。
散列密鑰與原始圖象組合在一起,隨后發(fā)送到在解密加密的散列時使用假想發(fā)射機(jī)的公開密鑰的接收站。接收站對接收的圖象執(zhí)行相同的散列算法并且把它與解密的散列相比。如果這兩個散列相同,那么在傳輸中沒有噪聲并且圖象沒有被第三方修改(干擾)。如果圖象被修改或者使用了錯誤的公開密鑰,那么兩個散列則不相同。
一般地,同樣的技術(shù)在損失信息的傳輸中則行不通。通常,所接收圖象的數(shù)字化形式包括損失的比特或噪聲,它們破壞所接收的數(shù)字化圖象。因此,根據(jù)所接收的源圖象指紋與根據(jù)接收的數(shù)字化圖象產(chǎn)生的數(shù)字化指紋的比較,難以確認(rèn)接收的圖象是否被竄改過。
解決JPEG傳輸中的此問題的其它努力在Ching-Yun Lin和Shih-Fu Chang發(fā)表于ISLT/SPIE Symposium on E1ectronicImaging:Science and Teehnology.Jan 1998,San Jose,Cal.pages77-80的"A Robust Image Authentication AlgorithmDistinguishingJPEGCompressionfromMaiiciousManipulations"中進(jìn)行了描述。它們的方法是比較JPEG壓縮傳輸?shù)暮罄m(xù)幀中的相同塊。進(jìn)行這個比較是為了確保這兩個塊間的差值范圍即使在執(zhí)行壓縮和解壓之后也保持相同。通過把兩個塊間的差值與閾值比較可建立簽名。二進(jìn)制位的“0”或“1,”根據(jù)該差值是否高于或低于該閾值而被輸入到簽名中。這個簽名與將要傳送的圖象一起發(fā)送,并且此方法如上所述而繼續(xù)。
Lin/Chang法的不足之處在于它依賴于JPEG壓縮的固有結(jié)構(gòu),并且不能用于不遵循JPEG格式的傳輸(包括有損耗傳輸)。而且,Lin/Chang法使干擾成為可能。由于簽名完全根據(jù)連續(xù)幀與閾值的比較,所以只要連續(xù)幀間的差值大概相同(在所選閾值范圍內(nèi)),惡意的敵方就能夠建立完全不同的數(shù)據(jù)流并且將其發(fā)送到接收機(jī)。
在本技術(shù)領(lǐng)域中已知的另一項技術(shù)是水印技術(shù)。一組比特(一個標(biāo)記)添加到傳送的圖象中。這個標(biāo)記應(yīng)當(dāng)完全足以使其能夠被接收機(jī)檢測但又不會改變圖象的性質(zhì)。該技術(shù)常常在關(guān)注剽竊的版權(quán)問題中使用。于是,宣稱沒有復(fù)制圖象的被告將被迫解釋為何在圖象中仍有水印。水印技術(shù)是一種證明原創(chuàng)的有效方式。但是,它不能指示何時發(fā)生了干擾。
因而希望提供一種改進(jìn)的方法,用于確認(rèn)所接收圖象是否已經(jīng)被修改。該方法應(yīng)當(dāng)包括一個指紋,它易于通過圖象進(jìn)行計算但難以建立具有給定指紋的圖象。指紋法還應(yīng)當(dāng)具有難以產(chǎn)生兩個具有相同指紋的圖象的特性。該指紋法應(yīng)當(dāng)在數(shù)字化信號傳輸存在損耗時能夠使用。
本發(fā)明的一個方案是一種用于確認(rèn)傳送圖象完整性的方法,包括的步驟是把圖象分成具有第一序列的第一多個信元;產(chǎn)生隨機(jī)種子(seed)并且根據(jù)所述隨機(jī)種子產(chǎn)生第一多個偽隨機(jī)數(shù)。該方法還包括的步驟有根據(jù)第一多個偽隨機(jī)數(shù)和第一多個信元把圖象分成第二多個信元并且產(chǎn)生第二多個偽隨機(jī)數(shù),該第二多個偽隨機(jī)數(shù)形成第二序列。該方法進(jìn)一步包括的步驟有在形成第一指紋時,把對應(yīng)于第一序列的信元與對應(yīng)于第二序列的信元相比較并且把該指紋、圖象和隨機(jī)種子傳送到接收機(jī)。該方法另外還包括的步驟有由接收機(jī)通過使用接收圖象和隨機(jī)種子產(chǎn)生第二指紋并且比較第一和第二指紋。
此方法使第三方在不改變圖象指紋的情況下難以操縱該圖象。如果一個人知道種子則可以輕易地建立指紋本身。但是這個種子對于第三方來說是未知的。即使有損耗地發(fā)送圖象,指紋也不會改變并且這樣它仍然可用于監(jiān)控圖象的完整性。
本發(fā)明的另一個方案是一種用于建立圖象指紋的方法,包括的步驟有把圖象分成具有第一序列的第一多個信元;產(chǎn)生隨機(jī)種子;根據(jù)所述隨機(jī)種子產(chǎn)生第一多個偽隨機(jī)數(shù);并且根據(jù)第一多個偽隨機(jī)數(shù)和第一多個信元把圖象分成第二多個信元。該方法還包括的步驟有產(chǎn)生第二多個偽隨機(jī)數(shù),該第二多個偽隨機(jī)數(shù)形成第二序列;以及在形成指紋時把對應(yīng)于第一序列的信元與對應(yīng)于第二序列的信元相比較。這個指紋與上述的指紋具有相同的益處。
在本發(fā)明的又一個方案中,一種計算機(jī)可讀存儲介質(zhì)包括表示圖象的指紋,該介質(zhì)具有一系列的指示,每個指示均由閾值與第一個數(shù)和第二個數(shù)的差值之間的比較產(chǎn)生。第一個數(shù)對應(yīng)于圖象的第一多個信元的第一信元值。第二個數(shù)對應(yīng)于圖象的第二多個信元的第二信元值。通過把圖象分成第三多個信元并且根據(jù)第一多個偽隨機(jī)數(shù)操縱第三多個信元形成第一多個信元。第二多個信元與所述第一多個信元數(shù)目相同,并且具有由所述第二多個偽隨機(jī)數(shù)指示的序列。
在本發(fā)明的再一個方案中,一種計算機(jī)可讀存儲介質(zhì)具有編碼的數(shù)據(jù),用于把圖象分成具有第一序列的第一多個信元;產(chǎn)生一個隨機(jī)種子;并且根據(jù)該隨機(jī)種子產(chǎn)生第一多個偽隨機(jī)數(shù)。該介質(zhì)還具有數(shù)據(jù),用于根據(jù)第一多個偽隨機(jī)數(shù)和第一多個信元把圖象分成第二多個信元;產(chǎn)生第二多個偽隨機(jī)數(shù),該第二多個偽隨機(jī)數(shù)形成第二序列;并且比較對應(yīng)于第一序列的信元和對應(yīng)于第二序列的信元。
本發(fā)明的一個目的是提供一種用于確認(rèn)有損耗傳輸?shù)膱D象的完整性和源的方法。
本發(fā)明的另一個目的是提供一個唯一的數(shù)字圖象的簽名,它易于產(chǎn)生并且即使是在有損耗傳輸之后也能夠與另一個簽名相比較。
通過連續(xù)參照附圖的下述公開,本發(fā)明的這些和其它優(yōu)點將變得顯而易見,在附圖中,相同的參考數(shù)字代表相同的元件。
圖1所示為根據(jù)本發(fā)明的傳輸圖象的信元的分割和排序圖;圖2所示為根據(jù)本發(fā)明新近建立的信元圖;圖3所示為根據(jù)本發(fā)明的典型指紋圖;圖4所示為用于部分表示圖3的圖象和指紋的傳輸信號的產(chǎn)生方法的流程圖;以及圖5所示為用于接收圖3的傳送圖象和指紋并且用于確認(rèn)該圖象完整性的方法的流程圖。
參照圖1和4,一個n×n網(wǎng)格100應(yīng)用于源數(shù)字圖象103,由此在步驟200建立n2個信元。n值根據(jù)處理功率和希望的精確度的可能性而定。n2個信元根據(jù)希望的任何合適的編號系統(tǒng)來編號(C1,C2,C3…Cn2)。在步驟202產(chǎn)生隨機(jī)種子“r”。產(chǎn)生這個隨機(jī)種子的最佳方式實際上是來自源。例如,電子噪聲、放射衰變或者源于太陽的宇宙射線。任何不能輕易改變的不可預(yù)測的事物都可形成最佳的源。在步驟204,通過使用作為種子的r產(chǎn)生n2個偽隨機(jī)數(shù)(prn)。必須為prn值加上邊界,這是因為這些數(shù)值可引起偏移(下面將作更詳細(xì)描述)。這些數(shù)通過使用應(yīng)用于隨機(jī)數(shù)r的數(shù)學(xué)算法來計算。任何算法都可使用。盡管該算法最終會被確認(rèn),但不可能輕易地知道隨機(jī)數(shù)r。
現(xiàn)在參照圖2,在步驟206,每個信元(C1、C2、C3…Cn2)被處理(即偏移或縮放)以作為各自prn的結(jié)果。例如,每個信元可偏移其原始位置prn,并且隨后寬度和高度變化相同的量(或者由多個prn產(chǎn)生的不同的量)作為偏移。如果偏移使一個信元超出了原始圖象的邊界,則如圖2所示,該信元折回到另一個邊。顯然,現(xiàn)在會有很多信元重疊。這些新信元(C1′,C2′,C3′…Cn2′)的大小和位置對于第三方來說是未知的。
已有技術(shù)中的指紋為每個信元產(chǎn)生一個估算尺度(metric),由此產(chǎn)生一個相應(yīng)值。很多技術(shù)可用來尋找這個度量。例如,該量度可以是每個信元中的特定顏色量、像素值之和或者是離散余弦變換(“DCT”)。在這些已有技術(shù)的指紋中,如上所述,第三方可以輕易地建立一個具有相同指紋的不同圖象。例如,如果綠色是變量,則第三方只要產(chǎn)生具有相同量的綠色的信元即可。但是,如果第三方試圖重建具有本發(fā)明指紋的圖象,那么他將干擾多個重疊的信元。
在步驟208,對于這些新產(chǎn)生的信元中的每一個來說,取用一個估算尺度用于圖象的每個最后所得到的區(qū)域。實際使用的量度不重要,并且可執(zhí)行任何已有的技術(shù)。通過實驗發(fā)現(xiàn),如果使用DCT,則只需要DC值;AC值對于計算的貢獻(xiàn)不大。用戶可得到并選擇各類技術(shù)或者通過使用上述的偽隨機(jī)數(shù)進(jìn)行隨機(jī)選擇。這樣的各類技術(shù)也可以組合起來形成一個大簽名。其目的是產(chǎn)生一個簽名以使第三方難以創(chuàng)建一個具有相同簽名的不同圖象。
在步驟210產(chǎn)生第二組n2個偽隨機(jī)數(shù)。這些數(shù)表示應(yīng)用于新產(chǎn)生信元的一個序列。該序列的第一個數(shù)是與信元1比較的信元數(shù),第二個數(shù)是與第二個信元比較的數(shù),而第n2個數(shù)則是與信元n2比較的數(shù)。例如,如果第二組prn開始于14,23,5…,則信元14將與信元1相比較,信元23與信元2相比較,如此類推。該比較與上面決定的量度有關(guān)。
在步驟212,通過把一對信元之間的關(guān)系與閾值相比較產(chǎn)生了指紋。如果一對信元間的差值高于閾值,則把“1”輸入到指紋中。否則輸入“0”。因此每對產(chǎn)生n2比特長的指紋的一個比特。指紋的一個實例如圖3所示。該指紋可存儲到任何存儲介質(zhì)中或者被立即發(fā)送。
對于從發(fā)射機(jī)A到接收機(jī)B的傳送來說,在步驟214,通過使用接收機(jī)的公開密鑰-Epub(b)(r),隨機(jī)種子被加密。該指紋隨即附加到Epub(b)(r)。最后,在步驟216和218,-Epub(b)(r)和指紋的組合通過使用發(fā)射機(jī)的秘密密鑰而加密并且發(fā)送-Epri(a)[-Epu(b)和指紋]。顯然,Epub(b)(r)不必使用A的秘密密鑰加密。但是,如果不加密,則至少該指紋將要求秘密密鑰A來確認(rèn)在A的原物。
指紋和圖象均被發(fā)送。圖象以其固有的方式發(fā)送。至于指紋,甚至連模擬傳輸也分配可有一些損耗發(fā)送的數(shù)字?jǐn)?shù)據(jù)。例如,如果使用NTSC標(biāo)準(zhǔn),則數(shù)字?jǐn)?shù)據(jù)可在垂直消隱間隔(VBI)期間發(fā)送。在NTSC中,像素被水平地逐行打亮。當(dāng)最后一個像素被激發(fā)時,則需要一個有限的時間周期以回移到屏幕的開始。在這個稱作VBI的時間周期中可接收數(shù)字?jǐn)?shù)據(jù)。在同類標(biāo)準(zhǔn)中存在其它相似的周期。
參照圖5,在接收機(jī)側(cè)B,通過使用A的公開密鑰解密圖象和指紋。如果是其它的源而非A發(fā)送信息,那么該結(jié)果將沒有意義。如果使用了錯誤的公開密鑰(例如第三站C),產(chǎn)生的結(jié)果也毫無意義。現(xiàn)在,接收機(jī)具有簽名和E(r)并且使用其自己的秘密密鑰獲得r。接收機(jī)B對其接收的圖象所執(zhí)行的步驟與A上面執(zhí)行的步驟相同。這些步驟包括把圖象分成一個n×n的網(wǎng)格;產(chǎn)生偽數(shù)等。這樣也將產(chǎn)生接收圖象的指紋。接收站把這個產(chǎn)生的指紋與接收的指紋相比較。這兩個指紋應(yīng)當(dāng)是相同的。該比較應(yīng)當(dāng)實時進(jìn)行,或是存儲這些指紋并且隨后進(jìn)行比較。即使在傳輸中存在損耗,該損耗也不致于使指紋發(fā)生顯著地改變。
為了補(bǔ)償傳輸中的噪聲,簽名中的一些差異是允許的。例如,可比較兩個指紋并且如果它們之間的差值(不匹配的0和1的數(shù))低于閾值(“哈明”距離),則該差值可以接受。甚至在指紋中一些比特的不同也不會影響系統(tǒng)的安全性,這是因為干擾會使得指紋中的很多比特翻動;噪聲只引起少量的變化。
顯然,上述的所有變量都可以調(diào)整,而不會影響該算法的固有性質(zhì)。例如,所產(chǎn)生的信元數(shù)n可根據(jù)用戶希望的安全性而增加或減少。
上面公開了一種用于確認(rèn)傳輸信號的整體性和鑒別的增強(qiáng)方法。本發(fā)明至少產(chǎn)生四個可以認(rèn)識到的優(yōu)化系統(tǒng)操作的結(jié)果1)使用的每個信元的大小對于第三方來說是未知的。這由通過未知的隨機(jī)種子產(chǎn)生的prn保護(hù)。實際的定大小和縮放的算法也可以是保密的。2)第三方不知道比較哪一個信元。這也是未知的隨機(jī)變量的一個函數(shù)。3)信元的位置未知,同時它們也是所產(chǎn)生的隨機(jī)變量的一個函數(shù)。4)用于估算每個信元的算法或估算尺度未知。如上所述,所使用的度量也可以是prn的一個函數(shù)。
對于安全性的其它因素來說,可把時間戳記添加到傳輸?shù)男盘栔小阂獾牡谌娇稍L問圖象并且向接收機(jī)發(fā)送一個延遲的圖象,由此傳送了一個可接受的圖象和指紋。時間戳記將避免這個問題,因為這個時間也被包括到了傳輸之中。這個戳記將被加密并且與r、計算的指紋、圖象一起發(fā)送到接收機(jī)。
顯然,我們不需要遵循上面所示的確切步驟。例如,甚至可在應(yīng)用n×n網(wǎng)格之前的同一時間產(chǎn)生所有的偽隨機(jī)數(shù)。
本發(fā)明值得稱道的是,即使是在傳輸中存在損耗時,通過產(chǎn)生專用指紋也可估算傳送的圖象是否被改變。
對于本領(lǐng)域的普通技術(shù)人員來說,通過對最佳實施例的描述,在不背離附屬的權(quán)利要求更清晰定義的本發(fā)明的范圍和宗旨的情況下顯然可進(jìn)行各種變化。
權(quán)利要求
1.一種用于產(chǎn)生圖象指紋的方法,包括的步驟是把所述圖象分成具有第一序列的第一多個信元(200);產(chǎn)生一個隨機(jī)種子(202);根據(jù)所述隨機(jī)種子產(chǎn)生第一多個偽隨機(jī)數(shù)(204);根據(jù)所述第一多個偽隨機(jī)數(shù)和所述第一多個信元把所述圖象分成第二多個信元(206);產(chǎn)生第二多個偽隨機(jī)數(shù)(210),所述第二多個偽隨機(jī)數(shù)決定所述第二多個信元的第二序列;以及在形成所述指紋時,比較對應(yīng)于所述第一序列的信元和對應(yīng)于所述第二序列的信元(212)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述分割步驟包括移動和縮放所述第一多個信元。
3.根據(jù)權(quán)利要求1所述的方法,其中所述第一多個信元在數(shù)目上等于所述第一多個偽隨機(jī)數(shù)并且在數(shù)目上等于所述第二多個偽隨機(jī)數(shù)。
4.根據(jù)權(quán)利要求1所述的方法,其中所述比較步驟包括通過使用多個估算尺度估算每個信元。
5.根據(jù)權(quán)利要求1所述的方法,其中所述比較信元的步驟包括通過使用從多個估算尺度所選的估算尺度來估算每個信元,所述選擇由所述第一和第二多個偽隨機(jī)數(shù)中的至少一個來指示。
6.一種用于確認(rèn)傳輸?shù)臄?shù)字圖象的完整性的方法,包括的步驟是根據(jù)權(quán)利要求1所要求的方法產(chǎn)生圖象指紋;把所述指紋,所述圖象,和所述隨機(jī)種子發(fā)送到接收機(jī)(218);通過使用接收的所述圖象和所述隨機(jī)種子由所述接收機(jī)產(chǎn)生第二指紋(316);以及比較所述第一和第二指紋(318)。
7.根據(jù)權(quán)利要求6所述的方法,其中所述發(fā)送步驟包括的步驟是使用所述接收機(jī)的公開密鑰加密所述隨機(jī)種子(214),由此產(chǎn)生一個加密的種子;以及使用所述發(fā)射機(jī)的秘密密鑰加密所述第一指紋和所述加密種子(216)。
8.根據(jù)權(quán)利要求6所述的方法進(jìn)一步包括的步驟是產(chǎn)生一個時間戳記;以及把所述時間戳記發(fā)送到所述接收機(jī)。
9.根據(jù)權(quán)利要求6所述的方法,其中所述第二指紋的形成方式與所述第一指紋相同。
10.一種使用權(quán)利要求1或6所述的方法的安全系統(tǒng)。
11.一種包括表示圖象的指紋的計算機(jī)可讀存儲介質(zhì),所述指紋包括一系列指示,每個所述指示由在閾值與第一數(shù)和第二數(shù)問的差值之間的比較產(chǎn)生;所述第一數(shù)對應(yīng)于所述圖象的第一多個信元的第一信元的值;所述第二數(shù)對應(yīng)于所述圖象的第二多個信元的第二信元的值;所述第一多個信元通過把所述圖象分成第三多個信元并且根據(jù)第一多個偽隨機(jī)數(shù)處理(206)所述第三多個信元而形成(204);以及所述第二多個信元在數(shù)目上等于所述第一多個信元并且具有一個由所述第二多個偽隨機(jī)數(shù)指示的序列(210)。
12.根據(jù)權(quán)利要求11所述的計算機(jī)可讀存儲介質(zhì),進(jìn)一步包括一個時間戳記。
13.一種計算機(jī)可讀存儲介質(zhì)包括一個用于對圖象執(zhí)行下面步驟的計算機(jī)程序把所述圖象分成具有第一序列的第一多個信元(200);產(chǎn)生一個隨機(jī)種子(202);根據(jù)所述隨機(jī)種子產(chǎn)生第一多個偽隨機(jī)數(shù)(204);根據(jù)所述第一多個偽隨機(jī)數(shù)和所述第一多個信元把所述圖象分成第二多個信元(206);產(chǎn)生第二多個偽隨機(jī)數(shù),所述第二多個偽隨機(jī)數(shù)形成第二序列(210);在形成一個指紋時,比較對應(yīng)于所述第一序列的信元和對應(yīng)于所述第二序列的信元(212)。
全文摘要
一個數(shù)字圖象被分成具有第一序列的多個信元。一個隨機(jī)種子產(chǎn)生并且用于產(chǎn)生兩組偽隨機(jī)數(shù)。第一組偽隨機(jī)數(shù)用于改變信元的位置和形狀,由此產(chǎn)生劃分該圖象的一組新信元。為這些新信元中的每一個取用一個量度。第二組偽隨機(jī)數(shù)產(chǎn)生第二序列。對應(yīng)于第一序列的新信元中的每一個與另一個對應(yīng)于第二序列的新信元相比較。這個比較與一個閾值相關(guān)并且產(chǎn)生一個指紋。所產(chǎn)生的指紋與圖象和隨機(jī)種子一起發(fā)送。接收機(jī)對其接收的圖象執(zhí)行相同的算法。如果它產(chǎn)生的指紋與其接收的指紋相同,則可以斷定該圖象還沒有被修改。
文檔編號H04N1/387GK1288633SQ99802343
公開日2001年3月21日 申請日期1999年9月21日 優(yōu)先權(quán)日1998年9月23日
發(fā)明者W·P·洛德, M·阿布德爾-莫塔萊布, M·A·埃普斯坦 申請人:皇家菲利浦電子有限公司