專利名稱:多媒體數(shù)據(jù)加密方法
技術領域:
本發(fā)明涉及一種從數(shù)字錄影機(DVR)上輸入的多媒體數(shù)據(jù)的加密方法,特別涉及通過存入與多媒體數(shù)據(jù)分開的指紋值對多媒體數(shù)據(jù)進行加密的方法,這樣使多媒體數(shù)據(jù)的修改變得困難和復雜,并且多媒體數(shù)據(jù)接收器可以很容易的檢測到多媒體數(shù)據(jù)是否被修改了。
背景技術:
通常,磁帶錄像機(VTR)是把通過攝像機獲得的模擬數(shù)據(jù)記錄到磁帶中的裝置。與磁帶錄像機不同的是,視頻磁盤錄像機能夠記錄、存儲和傳輸由通過轉(zhuǎn)換模擬數(shù)據(jù)產(chǎn)生的數(shù)字信號組成的數(shù)字化的多媒體數(shù)據(jù)。
數(shù)字化的多媒體數(shù)據(jù)通常是利用移動圖像壓縮技術來對其進行壓縮,以便在被視頻磁盤錄像機存入存儲設備中或者傳輸之前減小數(shù)據(jù)尺寸。更進一步的說,被壓縮的數(shù)據(jù)通常具有一種保護存儲的或者傳輸?shù)亩嗝襟w數(shù)據(jù)不被修改的加密特性。
多媒體數(shù)據(jù)的加密是通過將指紋增加到數(shù)據(jù)單元中,這里的數(shù)據(jù)單元是多媒體數(shù)據(jù)的一部分,是為了便于存儲多媒體數(shù)據(jù)而通過將多媒體數(shù)據(jù)劃分成多個單元而產(chǎn)生的。
如在本技術領域公知的那樣,指紋具有固定的長度,并且用于檢測多媒體數(shù)據(jù)是否被修改。散列(hash)函數(shù)被提出來產(chǎn)生指紋。散列函數(shù)接收輸入的字符串,輸出固定長度的比特位,以便指紋,也就是散列函數(shù)的輸出值,具有固定的長度。散列函數(shù)的特點在于不能利用散列函數(shù)的輸出來預測其輸入數(shù)據(jù)。
換句話說,假如將相同的輸入數(shù)據(jù)輸入到散列函數(shù)中,散列函數(shù)的輸出始終是相同的。然而,即使輸入數(shù)據(jù)(字符串)中的一個字符發(fā)生了變化,散列函數(shù)的輸出也會變化。因此,根據(jù)散列函數(shù)的這些特性,可以很容易地檢測到數(shù)據(jù)是否被修改了。
因此,散列函數(shù)已經(jīng)被用來確保數(shù)字簽名和信息識別碼的安全,因為散列函數(shù)可以很好地保護數(shù)據(jù)(數(shù)字簽名和信息識別碼),防止其被第三方修改。
設計來用于加快軟件執(zhí)行的速度的信息摘要5(MD5)算法常用作這種散列函數(shù)。
在傳統(tǒng)加密方法中,指紋的產(chǎn)生是通過僅僅與諸如視頻數(shù)據(jù)中的一幀或一個字段的一個對應的數(shù)據(jù)單元關聯(lián),以及與音頻數(shù)據(jù)中的一個預定的間隔關聯(lián)。因此,由于指紋的計算方法很簡單,當指紋的計算方法泄露的時候,能夠很容易地重算指紋。
因此,傳統(tǒng)方法涉及到一個問題就是如果指紋的計算方法泄露然后多媒體數(shù)據(jù)被修改并且利用重新計算的指紋重新加密的時候不能檢測到多媒體數(shù)據(jù)是否被修改了。因此,不能實現(xiàn)加密的真實目的。
發(fā)明內(nèi)容
因此,本發(fā)明的目的是提供一種利用指紋來加密多媒體數(shù)據(jù)的方法,這種指紋是利用對應的數(shù)據(jù)單元和以預定的方式與在前的指紋相關聯(lián)的指紋值計算出來的,這樣多媒體數(shù)據(jù)的修改很容易被檢測到,而且修改也變得很困難。
根據(jù)本發(fā)明的一個實施例,其提供一種多媒體數(shù)據(jù)的加密方法,包括將多媒體數(shù)據(jù)劃分成多個數(shù)據(jù)單元;計算用于每個數(shù)據(jù)單元的指紋值,其中相對應于數(shù)據(jù)單元中所選擇的數(shù)據(jù)單元的指紋值是利用在所選擇出的數(shù)據(jù)單元中的至少一個數(shù)據(jù)單元、以預定的方式與所選擇的數(shù)據(jù)單元相關聯(lián)的另一個指紋值和以預定的方式與所選擇的數(shù)據(jù)單元相關聯(lián)的另一個數(shù)據(jù)單元計算出的。
另一個指紋值是對應于所選擇的數(shù)據(jù)單元的前一個數(shù)據(jù)單元的指紋值或者是對應于所選擇的數(shù)據(jù)單元的后一個數(shù)據(jù)單元的指紋值。
對應于所選擇的數(shù)據(jù)單元的指紋值包括正向指紋值和反向指紋值,其中對應于所選擇的數(shù)據(jù)單元的正向指紋值是利用所選擇的數(shù)據(jù)單元和以預定的方式與所選擇的數(shù)據(jù)單元相關聯(lián)的另一個正向指紋值產(chǎn)生的,并且反向指紋值是利用所選擇的數(shù)據(jù)單元、對應于所選擇的數(shù)據(jù)單元的正向指紋值和以預定的方式與所選擇的數(shù)據(jù)單元相關聯(lián)的另一個反向指紋值產(chǎn)生的。
另外一個正向指紋值是對應于所選擇的數(shù)據(jù)單元的前一個數(shù)據(jù)單元的指紋值,而另一個反向指紋值是對應于所選擇的數(shù)據(jù)單元的后一個數(shù)據(jù)單元的指紋值。
本發(fā)明的這些和其他的方面、因素和優(yōu)點將在下面結(jié)合附圖對優(yōu)選實施例進行詳細描述中得到進一步的體現(xiàn)。
為了更完整的理解本發(fā)明及其優(yōu)點,以下將結(jié)合附圖進行說明,其中相同的部分用相同的數(shù)字標記表示,其中圖1是依照本發(fā)明第一個實施例的用于多媒體數(shù)據(jù)加密的指紋的產(chǎn)生方法的方框圖;圖2是圖1所示的產(chǎn)生指紋的方法的流程圖;圖3是依照本發(fā)明第二個實施例的用于多媒體數(shù)據(jù)加密的指紋的產(chǎn)生方法的原理方框圖;圖4是圖3所示的產(chǎn)生指紋的方法的流程圖。
具體實施例方式
在所有附圖中,相同的附圖標記代表相同的元件。
圖1是依照本發(fā)明的第一個實施例的用于多媒體加密的指紋的產(chǎn)生方法的方框圖。如圖1所示,要加密的多媒體數(shù)據(jù)被劃分成多個數(shù)據(jù)單元S(1)-S(n)。每個指紋值FP_F(1)-FP_F(n)分別對應于數(shù)據(jù)單元S(1)-S(n)。指紋值FP_F(i)是通過計算數(shù)據(jù)單元S(i)和對應于前一個數(shù)據(jù)單元S(i-1)的前一個指紋值FP_F(i-1)而生成的。
當多媒體數(shù)據(jù)是視頻文件或者圖像文件時,數(shù)據(jù)單元S(i)(i=1,2,3,……,n)可以是幀或者字段,如果是音頻文件則是預先確定的間隔。
如果多媒體數(shù)據(jù)是實時產(chǎn)生的,數(shù)據(jù)單元不預先產(chǎn)生,而是也實時產(chǎn)生。
圖2是圖1所示的產(chǎn)生指紋的方法的流程圖。
首先,要加密的多媒體數(shù)據(jù)被劃分成多個數(shù)據(jù)單元S(1)-S(n)(步驟201),并且初始化正向初始指紋值FP_F(0)(步驟202)。
然后,按升序讀取數(shù)據(jù)單元S(i)(步驟203)。
接著,對應于在步驟203讀出的數(shù)據(jù)單元S(i)的指紋值FP_F(i)是通過計算相應的數(shù)據(jù)單元S(i)和對應于前一個數(shù)據(jù)單元S(i-1)的前一個指紋值FP_F(i-1)生成的。例如,當i等于1時,第一個指紋值FP_F(1)是通過計算第一數(shù)據(jù)單元S(1)和初始指紋值FP_F(0)生成的。更進一步的說,當i等于2的時候,第二指紋值FP_F(2)是通過計算第二數(shù)據(jù)單元S(2)和對應于第一數(shù)據(jù)單元S(1)的第一指紋值FP_F(1)得到。生成的指紋值FP_F(i)與數(shù)據(jù)單元分開存儲(步驟204)。
接下來,判斷在步驟204生成的正向指紋值FP_F(i)是否是最后一個正向指紋值FP_F(n)。如果不是最后一個正向指紋值FP_F(n),則重復步驟203-205,直到生成最后一個正向指紋值FP_F(n)。在另一方面,如果是最后一個正向指紋值FP_F(n),則結(jié)束生成正向指紋值的運算。
由于指紋的計算在上面已經(jīng)論述了,如果修改了第一個數(shù)據(jù)單元S(i)的內(nèi)容,與其對應的指紋值FP_F(i)也需要修改。并且,由于相應的指紋值FP_F(i)的修改影響了后一個指紋值FP_F(i+1),因此要進一步地對對應于后一個數(shù)據(jù)單元S(i+1)的后一個指紋值FP_F(i+1)進行修改。同樣,由于每一個在前的指紋值與在后的指紋值都是相關聯(lián)的,因此所有的對應于后一個數(shù)據(jù)單元S(i+2)-S(n)的后一個指紋值FP_F(i+2)-FP_F(n)都會被修改。
因此,修改數(shù)據(jù)單元的內(nèi)容而不被接收器檢測到是非常困難的,因為指紋值的計算是如此的復雜并且每個指紋值之間是彼此關聯(lián)的。
在本發(fā)明的第一個實施例中,每一個指紋值都是利用數(shù)據(jù)單元和在前的指紋值計算出來。因此修改數(shù)據(jù)單元的內(nèi)容是很困難的。本發(fā)明不僅限于圖1中顯示的方法,還可以對其進行各種修改。
例如,可以使用與對應數(shù)據(jù)單元S(i)的前面第(i-2)或第(i-3)個數(shù)據(jù)單元相對應的第(i-2)或第(i-3)個在前的指紋值來計算相應的指紋值FP_F(i)。更進一步的說,所有的指紋值FP_F(i)前面的指紋值FP_F(0)-FP_F(i-1)都可以用來作為輸入值以生成指紋值FP_F(i)。
而且,對應于數(shù)據(jù)單元S(i)的指紋值FP_F(i)可以用不同的公式計算。例如,對應于每一個偶數(shù)數(shù)據(jù)單元S(2i)的每一個偶數(shù)指紋值FP_F(2i)可以利用指紋值FP_F(2i)前的指紋值FP_F(i-1)計算出來,而對應于每一個奇數(shù)數(shù)據(jù)單元S(2i-1)的每一個奇數(shù)指紋值FP_F(2i-1)可以利用指紋值FP_F(2i-1)前的第(i-2)個的指紋值FP_F(i-2)產(chǎn)生出來。
圖3是本發(fā)明第二個實施例的產(chǎn)生指紋的方法的方框圖。
如圖3所示,為了生成指紋,這里將多媒體數(shù)據(jù)劃分成多個數(shù)據(jù)單元S(1)-S(n)。指紋值由多個分別對應于數(shù)據(jù)單元S(1)-S(n)的正向指紋值FP_F(1)-FP_F(n)和分別對應于數(shù)據(jù)單元S(1)-S(n)的反向指紋值FP_R(1)-FP_R(n)組成。指紋值FP_F(0)是生成正向指紋值FP_F(1)-FP_F(n)的正向初始值,而指紋值FP_R(n+1)是生成反向指紋值FP_R(1)-FP_R(n)的反向初始值。
為了生成對應于第i數(shù)個據(jù)單元的第i個指紋值,可以利用分別對應于在前的數(shù)據(jù)單元的在前的指紋值和分別對應于在后的數(shù)據(jù)單元的在后的指紋值,因此,數(shù)據(jù)單元的內(nèi)容的修改比根據(jù)本發(fā)明的第一個實施例生成的指紋更復雜和困難。
圖4中示出了根據(jù)本發(fā)明第二個實施例的指紋的生成。
首先,多媒體數(shù)據(jù)被劃分成多個數(shù)據(jù)單元S(1)-S(n)(步驟201)。
然后,初始化用于生成分別對應于數(shù)據(jù)單元S(1)-S(n)的正向指紋值FP_F(1)-FP_F(n)的正向初始值FP_F(0)(步驟202)。
接著,按升序讀取數(shù)據(jù)單元S(i)(步驟203)。
接著,對應于數(shù)據(jù)單元S(i)的正向指紋值FP_F(i)利用前一個正向指紋值FP_F(i-1)和相應的數(shù)據(jù)單元S(i)計算出來,然后,存儲計算出來的正向指紋值FP_F(i)(步驟204)。
也就是說,當i等于1的時候,正向第一指紋值FP_F(1)是利用第一數(shù)據(jù)單元S(1)和初始指紋值FP_F(0)生成的。當i等于2的時候,第二正向指紋值FP_F(2)是利用第二數(shù)據(jù)單元S(2)和正向第一指紋值FP_F(1)生成的。
接著,判斷在步驟204生成的正向指紋值FP_F(i)是否是最后一個正向指紋值FP_F(n)。如果不是最后一個正向指紋值FP_F(n),則重復步驟202-204,直到生成最后一個正向指紋值FP_F(n)。如果是最后一個向指紋值FP_F(n),則結(jié)束生成正向指紋值FP_F(1)-FP_F(n)的運算(步驟205)。
接下來,初始化反向初始指紋值FP_R(n+1),用于生成反向指紋值FP_R(n)-FP_R(1)。
接下來,以相反(下降)順序讀出數(shù)據(jù)單元S(1)-S(n),例如,從S(n)到S(1)(步驟206)。
接下來,繼續(xù)進行生成分別對應于數(shù)據(jù)單元S(n)-S(1)的反向指紋值FP_R(n)-FP_R(1)的運算,并且存儲結(jié)果(步驟207)。
反向指紋值FP_R(i)通過接收輸入的相應的數(shù)據(jù)單元S(i)、對應于數(shù)據(jù)單元S(i)的正向指紋值FP_F(i)和對應于后一個數(shù)據(jù)單元S(i+1)的前一個反向指紋值FP_R(i+1)來計算。
因此,當i等于n的時候,第一反向指紋值FP_R(n)利用最后一個數(shù)據(jù)單元S(n)、對應于最后一個數(shù)據(jù)單元S(n)的最后一個正向指紋值FP_F(n)和反向初始值FP_R(n+1)來生成。更進一步說,當i等于n-1的時候,對應于數(shù)據(jù)單元S(n-1)的第二反向指紋值FP_R(n-1)是利用相應的數(shù)據(jù)單元S(n-1)、對應于相應的數(shù)據(jù)單元S(n-1)的正向指紋值FP_F(n-1)和對應于后一個數(shù)據(jù)單元S(n)的第一反向指紋值FP_R(n)生成的。
接著,判斷在步驟207產(chǎn)生的反向指紋值是否是對應于第一個數(shù)據(jù)單元S(1)的最后一個反向指紋值FP_R(1)(步驟208)。如果不是最后一個反向指紋值FP_R(1),將重復步驟206-207。如果是最后一個反向指紋值FP_R(1),則結(jié)束生成反向指紋值的運算。
如上所述,根據(jù)本發(fā)明最佳實施例的指紋值是通過一種復雜的方法計算出來的,因此,對一個數(shù)據(jù)單元S(i)內(nèi)容的修改是困難的,因為即使是對一個數(shù)據(jù)單元S(i)的修改也會影響每一個在后的指紋值。因此,要實現(xiàn)修改一個數(shù)據(jù)單元S(i)的內(nèi)容而這種修改不被檢測到,那么對應于修改的數(shù)據(jù)單元S(i)的正向指紋值FP_F(i)和在指紋值FP_F(i)的后面的每一個正向指紋值FP_F(i+1)-FP_F(n)都要修改。進一步,所有的反向指紋值FP_R(1)-FP_R(n)也要修改。
因此,只要不對對應于每一個數(shù)據(jù)單元(整個多媒體數(shù)據(jù))的每一個指紋值都進行修改,就不可能修改多媒體數(shù)據(jù)中的一個數(shù)據(jù)單元的內(nèi)容。
如圖3和4所示,對應于數(shù)據(jù)單元S(i)的反向指紋值FP_R(i)是利用輸入的相應的數(shù)據(jù)單元S(i)、前一個反向指紋值FP_R(i-1)和相應的正向指紋值FP_F(i)獲得的。
更進一步說,第(i+2)或第(i+3)個在前的反向指紋值FP_R(i+2)或者FP_R(i+3)可以用來代替在前的反向指紋值FP_R(i+1)。進一步說,正向指紋值FP_F(i+1)或FP_F(i+2)可以用來代替相應的指紋值FP_F(i)。
雖然參考最佳實施例說明和描述了本發(fā)明,本領域技術人員應當理解,在不超出本發(fā)明的范圍的情況下,可以對本發(fā)明的形式和細節(jié)作進一步改進或其他修改。
權利要求
1.一種多媒體數(shù)據(jù)加密方法,包括將多媒體數(shù)據(jù)劃分成多個數(shù)據(jù)單元;計算分別對應于每一個數(shù)據(jù)單元的指紋值,其中,對應于數(shù)據(jù)單元中的所選擇的數(shù)據(jù)單元的指紋值是利用所選擇的數(shù)據(jù)單元中的至少一個、以預定的方式與所選擇的數(shù)據(jù)單元關聯(lián)的另一個指紋值和以預定的方式與所選擇的數(shù)據(jù)單元關聯(lián)的另一個數(shù)據(jù)單元計算出來。
2.根據(jù)權利要求1的方法,其特征在于另一個指紋值是與所選擇的數(shù)據(jù)單元的前一個數(shù)據(jù)單元對應的指紋值或者是與所選擇的數(shù)據(jù)單元的后一個數(shù)據(jù)單元對應的指紋值。
3.根據(jù)權利要求1的方法,其特征在于對應于所選擇的數(shù)據(jù)單元的指紋值包括正向指紋值和反向指紋值,其中,正向指紋值是利用所選擇的數(shù)據(jù)單元和以預定的方式與所選擇的數(shù)據(jù)單元關聯(lián)的另一個指紋值生成的,而反向指紋值是利用所選擇的數(shù)據(jù)單元、以預定的方式與所選擇的數(shù)據(jù)單元對應的正向指紋值和以預定的方式與所選擇的數(shù)據(jù)單元關聯(lián)的另一個反向指紋值生成的。
4.根據(jù)權利要求3的方法,其特征在于另一個指紋值是對應于所選擇的數(shù)據(jù)單元的前一個數(shù)據(jù)單元的指紋值,而另一個反向指紋值是對應于所選擇的數(shù)據(jù)單元的后一個數(shù)據(jù)單元的指紋值。
全文摘要
本發(fā)明公開了一種利用指紋為多媒體數(shù)據(jù)加密的方法。根據(jù)本發(fā)明的最佳實施例,指紋是利用通過將多媒體數(shù)據(jù)劃分為多個單元而產(chǎn)生的數(shù)據(jù)單元和以預定的方式與所述數(shù)據(jù)單元關聯(lián)的另一個數(shù)據(jù)單元或者以預定的方式與另一個數(shù)據(jù)單元對應的另一個指紋值計算出的。因此,多媒體數(shù)據(jù)的修改很容易被檢測到,并且這種修改是非常困難的。
文檔編號H04L9/32GK1409263SQ0214728
公開日2003年4月9日 申請日期2002年9月10日 優(yōu)先權日2001年9月10日
發(fā)明者鄭晉鎬 申請人:艾迪斯株式會社