專利名稱:對至少二維的數(shù)據(jù)集的加密和解密的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼學(xué)領(lǐng)域。具體地說,本發(fā)明涉及一種用于對存 儲在存儲器中的數(shù)據(jù)集的至少一部分進(jìn)行加密的方法、和一種用于對 存儲在存儲器中的數(shù)據(jù)集的至少一部分進(jìn)行解密的方法,其中所述數(shù) 據(jù)集至少具有二維。
此外,本發(fā)明涉及一種臨時將數(shù)據(jù)集的至少一部分存儲到存儲 器中的方法,其中使用如上所述的加密方法來進(jìn)行存儲以及/或者使 用如上所述的解密方法來從存儲器取回所述數(shù)據(jù)集的所述部分。此 夕卜,本發(fā)明涉及一種用于處理具有至少二維的數(shù)據(jù)集的裝置,其中通 過使用上述加密方法來將數(shù)據(jù)集的所述部分從處理裝置傳輸至存儲 器,以及/或者其中通過使用如上所述的解密方法來從所述存儲器向 所述處理裝置傳輸所述數(shù)據(jù)集的所述部分。
背景技術(shù):
對壓縮多媒體內(nèi)容的加密逐漸成為內(nèi)容產(chǎn)業(yè)的共同需求,并且
是一種符合數(shù)字版權(quán)管理(DRM)標(biāo)準(zhǔn)中的各種魯棒性規(guī)則的要求。
一般的經(jīng)驗法則是,為了有效地防止對諸如高清(HD)視頻之類的
多媒體內(nèi)容的未授權(quán)復(fù)制,則不能在不對所述多媒體內(nèi)容進(jìn)行加密的 情況下將其存儲在電子設(shè)備的存儲器中。
當(dāng)前已知的加密方案的一個問題是渲染引擎(rendering engine) 不以線性模式來訪問存儲器。更確切地講,幀存儲表示二維(2D) 圖像,并且所渲染的對象可在該幀內(nèi)自由移動?;诜纸M密碼和流密 碼的已知解密方法不能容易地處理這種類型的訪問或者較大的內(nèi)容 加密的2D塊中的任意大小和位置的訪問。例如在HD圖像的情況下, 幀存儲約為1920X 1080X32比特的數(shù)量級。很明顯,僅僅為了獲得 更小的用于處理的數(shù)據(jù)內(nèi)容而解密這種大小的幀存儲是不切實際的。另外一個使存儲器加密變得困難的問題是必須不對存儲器的讀 操作增加明顯延遲。加密期間的任何復(fù)雜的操作都可能攪亂工作平臺 的定時并且使得加密方案對用戶不起作用。
WO 03/048939公開了一種方法,用于對與計算裝置的圖形子系 統(tǒng)有關(guān)的安全內(nèi)容的進(jìn)行加密保護(hù)。通過實施技術(shù)來對視頻存儲器的 內(nèi)容進(jìn)行加密,以使未授權(quán)的軟件不能對其進(jìn)行有意義的訪問,從而 保持保密性。此外,提供一種用于篡改檢測的機(jī)制,以使當(dāng)數(shù)據(jù)以某 種方式被更改時可以獲知,從而保持其完整性。在各種實施例中,對 覆蓋表面的內(nèi)容和/或命令緩沖區(qū)進(jìn)行加密,和/或當(dāng)阻止其對不信任 用戶、裝置或軟件的可用性時,圖像處理單元可以對已加密的內(nèi)容進(jìn) 行操作。
US 2003/0135742公開了一種方法和一種系統(tǒng),用于保護(hù)將要使 用并在視頻或圖像卡上處理的數(shù)據(jù)。在各種實施例中,可以對視屏卡 將要使用的數(shù)據(jù)進(jìn)行加密,以使在任何時間在視頻卡與計算機(jī)系統(tǒng)之 間的總線上提供所述數(shù)據(jù)。例如,當(dāng)從視頻卡上的存儲器向系統(tǒng)存儲 器移動數(shù)據(jù)時,數(shù)據(jù)為已加密的形式并且因此獲得保護(hù),反之亦然。
US 6,711,683公開了一種計算系統(tǒng),用于防止對機(jī)頂盒的先進(jìn)先 出存儲緩沖器中存儲的壓縮的視頻數(shù)據(jù)的未授權(quán)使用。單個集成電路 包括數(shù)據(jù)處理器和芯片身份只讀寄存器,該芯片身份只讀寄存器存儲 了在生產(chǎn)期間固定的唯一的芯片身份號。所述數(shù)據(jù)處理器通過使用芯 片身份號(作為加密密鑰)來對壓縮視頻數(shù)據(jù)流進(jìn)行加密。將加密后 的數(shù)據(jù)存儲在先進(jìn)先出(FIFO)緩存器中并從所述先進(jìn)先出(FIFO) 緩存器恢復(fù)該加密后的數(shù)據(jù)。接著,數(shù)據(jù)處理器使用芯片身份號的至 少一部分作為解密密鑰來解密所恢復(fù)的數(shù)據(jù)。通過使用該技術(shù),則以 壓縮的形式暫存在FIFO緩沖器中的壓縮視頻數(shù)據(jù)流僅可以被具有所 述唯一的芯片身份號的特定處理器使用。
因此,需要提供一種改進(jìn)的加密和解密方案,其對包括二維結(jié) 構(gòu)的數(shù)據(jù)內(nèi)容尤其有效
發(fā)明內(nèi)容
可通過根據(jù)獨(dú)立權(quán)利要求的客體來滿足這種需求。通過從屬權(quán) 利要求來描述本發(fā)明的優(yōu)選實施例。
根據(jù)本發(fā)明的第一方面,提供了一種用于對存儲在存儲器中的 數(shù)據(jù)集的至少一部分進(jìn)行加密的方法,其中,所述數(shù)據(jù)集至少具有二 維。所述提供的方法包括(a)形成分配給數(shù)據(jù)集的第一維的第一密 鑰流,(b)形成分配給數(shù)據(jù)集的第二維的第二密鑰流,以及(C)通過使 用第一密鑰流和第二密鑰流的組合來對數(shù)據(jù)集的一部分的每個數(shù)據(jù) 分組進(jìn)行加密。
本發(fā)明的第一方面基于這樣一種思想,即,可通過考慮數(shù)據(jù)集 的維數(shù)和存儲器的維數(shù)來改進(jìn)已知的一維流密碼加密方法,所述存儲 器存儲至少二維(2D)的數(shù)據(jù)集。因此,通過分別執(zhí)行如下步驟來 獨(dú)立地對數(shù)據(jù)集的該部分進(jìn)行加密(a)沿著數(shù)據(jù)集和存儲器的第一 方向執(zhí)行第一流密碼加密;(b)沿著數(shù)據(jù)集和存儲器的第二方向執(zhí)行 第二流密碼加密。每個方向分別表示數(shù)據(jù)集和存儲器的一維。
應(yīng)該注意,所述方法不限于加密2D數(shù)據(jù)集。由于該方法依靠沿 不同方向進(jìn)行獨(dú)立的加密,因此理論上可以對具有任意的較高維度的 數(shù)據(jù)集進(jìn)行加密。具體地說,也可以通過使用上述方法來對三維(3D) 數(shù)據(jù)集有效地進(jìn)行加密,該三維(3D)數(shù)據(jù)集可表示3D圖像或者 2D圖像的時間序列。此外,也可以通過有效并可靠的方式來對四維 (4D)數(shù)據(jù)集(例如,可以是表示3D圖像的時間序列的4D數(shù)據(jù)集) 進(jìn)行加密。
在這方面,必須強(qiáng)調(diào),數(shù)據(jù)集的維數(shù)不一定直接反映存儲器的 物理結(jié)構(gòu)以及對存儲器進(jìn)行限定的單獨(dú)存儲單元的空間布置。即,可 以將數(shù)據(jù)集和存儲器看作具有大于1的任意維數(shù)的數(shù)學(xué)矩陣。
優(yōu)選地,以加密的結(jié)果不依賴于組合的順序的方式來執(zhí)行兩個 密鑰流的組合。即,不管是先執(zhí)行第一方向的加密再執(zhí)行第二方向的 加密,還是反過來先執(zhí)行第二方向的加密再執(zhí)行第一方向的加密,數(shù) 據(jù)集部分內(nèi)的特定數(shù)據(jù)分組的加密都是相同的。此外,如果對不同方 向執(zhí)行不同的分步加密,數(shù)據(jù)集部分內(nèi)的特定數(shù)據(jù)分組的加密也應(yīng)該 相同。即,在加密特定數(shù)據(jù)分組之前,已經(jīng)通過一系列的不同加密程序來執(zhí)行對其他數(shù)據(jù)分組的加密,該一系列的不同加密表示沿交替方 向的加密。
所述方法可提供如下優(yōu)點(diǎn)當(dāng)僅需要對加密的多維數(shù)據(jù)集的選 擇部分進(jìn)行解密時,則不再需要解密整個數(shù)據(jù)集或者其絕大部分。如 果使用已知的一維流密碼加密或分組密碼加密來加密數(shù)據(jù)集,則需要 完整的解碼。通過使用所述多維流密碼加密,可以獲得對已加密的數(shù) 據(jù)分組的相對較快的訪問,所述已加密的數(shù)據(jù)分組被分配到數(shù)據(jù)集的 選擇部分。因為當(dāng)通過對沿不同方向的相鄰數(shù)據(jù)分組使用依次解密的 適當(dāng)組合來從數(shù)據(jù)集的預(yù)定起始數(shù)據(jù)分組開始進(jìn)行解密時,可以在解 密程序啟動之后相對較短的時間間隔內(nèi)解密數(shù)據(jù)集的選擇部分的加 密數(shù)據(jù)分組,所以可以進(jìn)行快速訪問。因此,與已知的一維流密碼解 密相比,不再需要沿覆蓋了整個加密的2D數(shù)據(jù)集的預(yù)定線路來依次 解密相鄰數(shù)據(jù)分組。對于加密的2D數(shù)據(jù)集,所述線路可以是曲折線。
上述說明即是指,通過使用已定義的多維加密方法來加密存儲 器中存儲的數(shù)據(jù)內(nèi)容,可以有效地使用于解密的解密區(qū)域與需要解密 的存儲器的特定部分對齊。因此,可以顯著地減少對用戶不需要的數(shù) 據(jù)內(nèi)容的不必要解密。因此,與已知的加密以及相應(yīng)的解密程序相比, 所述多維加密方法能使存儲器的特定部分的解密更快。
上述方法可用于例如表示視頻片段或電影的幀的2D數(shù)據(jù)集。即 使相應(yīng)的2D數(shù)據(jù)集只是居中地存儲于已知幀緩沖器中,上述方法也 可以使對特定幀部分的解密變得有效并且快速。
根據(jù)本發(fā)明的實施例,(a)根據(jù)第一流密碼來產(chǎn)生第一密鑰流, 并且(b)根據(jù)第二流密碼來產(chǎn)生第二密鑰流。
可通過迭代的方式來執(zhí)行各密鑰流的產(chǎn)生,其中每次迭代精確 地產(chǎn)生各密鑰流的一個數(shù)據(jù)分組。這種數(shù)據(jù)分組的產(chǎn)生可以以一種已 知的方式基于各流密碼的內(nèi)部狀態(tài)信息,所述各流密碼的內(nèi)部狀態(tài)信 息包括更新功能、流密碼產(chǎn)生功能以及密碼密鑰。
當(dāng)?shù)谝涣髅艽a和第二流密碼相互獨(dú)立時,可自動實現(xiàn)由于兩種 密鑰流為了確定數(shù)據(jù)集的特定位的地址而相互組合的特定方法所產(chǎn) 生的加密獨(dú)立性。S卩,前移第一密鑰流對第二流密碼沒有影響,以使
8兩種密鑰流的組合方式不影響加密結(jié)果。
根據(jù)本發(fā)明的另一方面,(a)第一流密碼和第二流密碼相同,并 且(b)使用第一密鑰來產(chǎn)生第一密鑰流,使用不同于第一密鑰的第二
密鑰來產(chǎn)生第二密鑰流。這可以提供如下優(yōu)點(diǎn)僅需要一個流密碼來 簡單地執(zhí)行所述多維加密方法。即,當(dāng)執(zhí)行常見的流密碼的重置密鑰 時(例如為了增加所述多維加密方法的安全級別),僅僅必須為每個 重置密鑰程序產(chǎn)生一個流密碼。
與必須為每個重置密鑰程序產(chǎn)生多個(其數(shù)量與數(shù)據(jù)集和存儲 器的維數(shù)相對應(yīng))流密碼的方法相比,可以顯著減少為整個流密碼產(chǎn) 生所付出的努力。
根據(jù)本發(fā)明的另一個實施例,第一密鑰流和/或第二密鑰流包括 循環(huán)碼(recurring codes)。循環(huán)碼以及重復(fù)碼的使用可提供如下優(yōu) 點(diǎn)無論數(shù)據(jù)集的大小如何,所述多維加密方法都可用于所有數(shù)據(jù)集。 換句話說,無論密鑰流的大小以及存儲器的大小如何,都可通過每個 存儲器位置處的至少兩個密鑰流的組合來唯一地覆蓋整個存儲器的 空間。為了對具有任意大小的存儲器和數(shù)據(jù)集執(zhí)行所述多維加密方 法,具有預(yù)定存儲空間的流密碼的內(nèi)部狀態(tài)的內(nèi)部存儲是足夠的。
根據(jù)本發(fā)明的另一個實施例,第一密鑰流與第二密鑰流相互關(guān) 聯(lián)。即,兩個密鑰流中的一個的輸出同時取決于相應(yīng)的流密碼和兩個 密鑰流中的另一個的狀態(tài)。換句話說,兩個流密碼具有共享的狀態(tài), 并且移動密鑰流將更新與兩個密碼相關(guān)的狀態(tài)。
根據(jù)本發(fā)明的另一個實施例,第一密鑰流和第二密鑰流的組合 包括第一密鑰流的位與第二密鑰流的位的XOR運(yùn)算。因此,第一密
鑰流的位數(shù)與第二密鑰流的位數(shù)取決于多維數(shù)據(jù)集中明文數(shù)據(jù)分組 的位置,其中假設(shè)已對所述明文數(shù)據(jù)分組加密。
異或XOR運(yùn)算的使用可提供如下優(yōu)點(diǎn)所述多維加密方法是對 稱的。即,可以使用與加密數(shù)據(jù)分組時使用的第一密鑰流和第二密鑰 流的組合相同的組合來從加密的數(shù)據(jù)集中解密所述數(shù)據(jù)分組。
根據(jù)本發(fā)明的另一個實施例,(a)數(shù)據(jù)分組具有單個位的大小,
并且(b)對數(shù)據(jù)集的所述部分的每位的加密包括對數(shù)據(jù)集的位與所組合的第一和第二密鑰流的相應(yīng)位執(zhí)行XOR運(yùn)算。這可提供如下優(yōu)點(diǎn) 所述多維加密方法可以不僅僅關(guān)于第一密鑰流和第二密鑰流的組合 對稱。所述加密方法還可以關(guān)于明文和加密的數(shù)據(jù)集的每個位的加密 和解密對稱。
根據(jù)本發(fā)明的另一個實施例,數(shù)據(jù)分組具有大于單個位的大小。 即,以大于單個位的間隔尺寸利用流密碼來執(zhí)行所述多維加密。這可
以提供如下優(yōu)點(diǎn)可以在數(shù)據(jù)分組基礎(chǔ)上執(zhí)行加密程序,其中根據(jù)各 應(yīng)用,每個數(shù)據(jù)分組具有合適的大小。例如,為了加密視頻數(shù)據(jù),以 像素為單位的數(shù)據(jù)打包應(yīng)該合適,其中根據(jù)所期望的單個像素的色彩
分辨率,每個數(shù)據(jù)分組可具有或大或小的大小。對于很高的色彩分辨 率,32位似乎合適。
根據(jù)本發(fā)明的另一方面,提供了一種用于解密存儲器中存儲的 數(shù)據(jù)集的至少一部分的方法,其中所述數(shù)據(jù)集至少具有二維。所提供 的方法包括(a)形成分配給數(shù)據(jù)集的第一維的第一密鑰流,(b)形成
分配給數(shù)據(jù)集的第二維的第二密鑰流,以及(C)通過使用第一密鑰流 和第二密鑰流的組合來解密所述數(shù)據(jù)集的所述部分的每個位。
本發(fā)明的這個方面是基于一種思想,該思想是已知的一維流 密碼解密方法還可通過考慮數(shù)據(jù)集的維數(shù)和存儲器的維數(shù)來改進(jìn),所
述存儲器存儲至少二維(2D)的數(shù)據(jù)集。因此,通過執(zhí)行如下步驟來獨(dú) 立地對數(shù)據(jù)集的該部分進(jìn)行解密(a)沿著數(shù)據(jù)集和存儲器的第一方 向執(zhí)行第一流密碼解密;(b)沿著數(shù)據(jù)集和存儲器的第二方向執(zhí)行第 二流密碼解密。每個方向分別表示數(shù)據(jù)集和存儲器的一維。
通過結(jié)合與上述多維加密方法的實施例相關(guān)的一個或多個限制 來給出所述多維加密方法的另外的實施例。因此,為了避免不必要的 重復(fù),參考所述加密方法的上述實施例來給出相應(yīng)的描述。特別地, 如果所述多維加密方法和解密方法是對稱的,本領(lǐng)域的技術(shù)人員可以 很明顯地找到由與加密方法相關(guān)的實施例給出的限制是如何用于所 述多維解密方法的。在這方面中,術(shù)語"對稱加密"與"對稱解密" 是指加密和解密使用相同的密鑰。
根據(jù)本發(fā)明的實施例,對數(shù)據(jù)集的一部分的每個位執(zhí)行解密包括對數(shù)據(jù)集的位和所組合的第一和第二密鑰流的相應(yīng)位執(zhí)行XOR運(yùn)算。
如上所述,參考解密方法的相應(yīng)實施例,可以提供如下優(yōu)點(diǎn) 所述多維解密方法可以不僅僅關(guān)于第一密鑰流和第二密鑰流的組合 對稱。所述解密方法也可以關(guān)于明文和加密的數(shù)據(jù)集的每個位的加密 和解密對稱。同樣,"對稱加密"和"對稱解密"是指加密和解密使 用相同的密鑰。
根據(jù)本發(fā)明的另一方面,提供了一種用于將數(shù)據(jù)集的至少一部 分暫存到存儲器中的方法,其中所述數(shù)據(jù)集至少具有二維。所提供的 方法包括(a)通過執(zhí)行上述多維加密方法來加密數(shù)據(jù)集的該部分;(b) 將數(shù)據(jù)集的已加密部分存儲到存儲器中;(c)從存儲器中讀出所存儲 的數(shù)據(jù)集的已加密部分;以及(C)通過執(zhí)行上述多維解密方法來解密 所讀出的數(shù)據(jù)集的已加密部分。
本發(fā)明的這個方面基于一種思想,該思想是指通過利用上述 多維加密和解密方法,可以有效地在存儲器中暫存數(shù)據(jù)集的至少一部 分,其中所述存儲器不受物理保護(hù)或者僅分散地保護(hù)其免受未授權(quán)攻
擊。在數(shù)據(jù)集的該部分的存儲期間,由于只能獲取存儲器中的加密形 式下的數(shù)據(jù)集,從而阻止了來自未授權(quán)人員的攻擊或者至少限制來自 未授權(quán)人的攻擊。
由于上述多維加密和解密方法能有效地加密數(shù)據(jù)集并且尤其是 能有效地解密多維數(shù)據(jù)集的一部分,所以可以很快地執(zhí)行整個程序。 這提供了如下機(jī)會所述暫存方法可用于例如多媒體裝置,其中表示
例如視頻內(nèi)容的數(shù)據(jù)集(如MPEG4數(shù)據(jù)文件)必須被快速地從安全
處理器傳輸?shù)较鄬Σ话踩墓ぷ鞔鎯ζ?。同樣適用于以相反方向從相 對不安全的工作存儲器向安全存儲器的數(shù)據(jù)傳輸。由于所述加密和解 密方法的效率,這至少可以近似實時地執(zhí)行,從而一方面使用戶注意 不到該加密和解密并且另一方面可以滿足安全性需求。這種安全性需 求通常由媒體內(nèi)容的版權(quán)擁有者給出,版權(quán)擁有者希望阻止其媒體內(nèi) 容的未授權(quán)復(fù)制和傳播。
根據(jù)本發(fā)明的另一方面,提供了一種用于處理至少具有二維的
11數(shù)據(jù)集(特別是多媒體數(shù)據(jù)集)的裝置。所提供的裝置包括(a)處 理裝置;以及(b)工作存儲器,該工作存儲器連接到所述處理單元。 因此,所述處理裝置適用于通過執(zhí)行上述多維加密方法將數(shù)據(jù)傳輸?shù)?工作存儲器,和/或所述處理裝置適用于通過執(zhí)行上述多維解密方法 從工作存儲器接收數(shù)據(jù)。
本發(fā)明的這個方面也基于一種思想,該思想是指通過利用上 述多維加密和解密方法,可以有效并安全地在所述數(shù)據(jù)處理裝置的工 作存儲器中存儲數(shù)據(jù)集的一部分。這可以提供如下優(yōu)點(diǎn)在不使所述 裝置成為一個對黑客攻擊完全不安全的裝置的情況下,所述裝置可以 具有一個相對不安全的存儲器。
例如,所述數(shù)據(jù)集處理裝置可以是便攜多媒體裝置或者是固定 的多媒體裝置,該裝置可以用于顯示圖像或視頻數(shù)據(jù)和/或用于輸出 聲音數(shù)據(jù)。可以使所述裝置安裝和/或連接輸入/輸出裝置。輸入/輸出 裝置可以包括例如檢測器和/或揚(yáng)聲器。
根據(jù)本發(fā)明的實施例,所述處理裝置包括(a)用于通過使用第 一密鑰流對數(shù)據(jù)集加密和/或解密的第一加密單元;以及(b)用于通過 使用第二密鑰流對數(shù)據(jù)集加密和/或解密的第二加密單元。即,第一 加密單元適用于執(zhí)行與數(shù)據(jù)集和存儲器的第一維相關(guān)的加密和/或解 密程序。相應(yīng)地,第二加密單元適用于執(zhí)行與數(shù)據(jù)集和存儲器的第二 維相關(guān)的加密和/或解密程序。
這種為不同維的加密和解密提供分立單元的劃分可以提供如下 優(yōu)點(diǎn)可以非常有效地執(zhí)行整個多維加密和解密程序。即,可以相對 較快地執(zhí)行加密和解密。
必須說明,可以通過計算機(jī)程序和軟件的方式來實現(xiàn)所述劃分。 但是,也可以通過一個或多個特定的電子電路以及硬件來實現(xiàn)本發(fā) 明。此外,也可以以混合的形式實現(xiàn)本發(fā)明,即以軟件模塊和硬件模 塊的適當(dāng)組合的方式。
根據(jù)本發(fā)明的另一個實施例,數(shù)據(jù)集處理裝置還包括用于接收 數(shù)據(jù)的數(shù)據(jù)輸入。這可以提供如下優(yōu)點(diǎn)可以向數(shù)據(jù)集處理裝置提供 來自任意外部數(shù)據(jù)載體(如數(shù)字多功能光碟(DVD))的數(shù)據(jù)。因此,所述數(shù)據(jù)可以是未加密格式的原始數(shù)據(jù)。此外,可以將來自網(wǎng)絡(luò) (如因特網(wǎng))的數(shù)據(jù)提供給所述數(shù)據(jù)處理裝置。根據(jù)本發(fā)明的另一個實施例,所述處理裝置還包括中央處理單 元,其適用于執(zhí)行MPEG解碼。這可以提供如下優(yōu)點(diǎn)可以以有效 的方式來處理視頻數(shù)據(jù)集。此外,由于MPEG標(biāo)準(zhǔn)廣泛用于視頻數(shù)據(jù)的處理,因此所述數(shù)據(jù)集處理裝置可以用于市場上的大多數(shù)視頻應(yīng) 用。應(yīng)該注意,已參考不同客體描述了本發(fā)明的實施例。特別地, 一些實施例是參考方法類型權(quán)利要求描述的,而另一些實施例是參考 設(shè)備類型權(quán)利要求描述的。但是,本領(lǐng)域的技術(shù)人員根據(jù)以上及以下 描述可以理解的是,除非特別說明,否則除了屬于一種類型客體的特 征的任意組合之外,與不同客體相關(guān)的特征之間的任意組合(尤其是 方法類型權(quán)利要求的特征與設(shè)備類型權(quán)利要求的特征之間的任意組 合)也被認(rèn)為已經(jīng)被本申請所公開。上文所限定的方面以及本發(fā)明的其他方面從下文所述的實施例 的示例可以很明顯地得知并且通過參考實施例的示例來對其進(jìn)行說 明。下文將參考實施例的示例(而不受其限制)來更詳細(xì)地說明本發(fā) 明。
圖1示出了描繪2D存儲器的不規(guī)則部分的解密的圖示,其中已 通過使用水平流密碼和垂直流密碼執(zhí)行連續(xù)的XOR運(yùn)算來對2D存 儲器中存儲的數(shù)據(jù)進(jìn)行了加密。圖2示出了一種多媒體裝置,其適用于通過使用水平流密碼和 垂直流密碼來執(zhí)行數(shù)據(jù)加密和數(shù)據(jù)解密。圖3示出了 2D存儲器的不規(guī)則部分的解密,其中已通過使用分 組密碼對其中的數(shù)據(jù)內(nèi)容進(jìn)行了加密。圖4示出了 2D存儲器的不規(guī)則部分的解密,其中已通過使用流 密碼對其中的數(shù)據(jù)內(nèi)容進(jìn)行了加密。
具體實施例方式
圖示中的說明是概要的。應(yīng)該注意,在不同的圖示中,對類似或相同的元件所提供的參考符號僅在第一數(shù)字不同于相應(yīng)的參考符號。
以下所描述的本發(fā)明的實施例本質(zhì)上提供了一種新的流密碼的形式。因此,為了方便理解這些實施例,首先將給出一些關(guān)于已知流密碼加密和流密碼解密的背景信息。
流密碼通常是基于線性反饋移位寄存器和非線性布爾元件的。
其被設(shè)計為可以在硬件中簡單并且容易地實現(xiàn)。假設(shè)密鑰k和初始矢量IV,則從內(nèi)部密碼寄存器的內(nèi)部狀態(tài)s來產(chǎn)生位流。
下文中f是流密碼更新函數(shù),并且Si是對明文的位i加密后流密
碼的內(nèi)部寄存器結(jié)構(gòu)。使用如下的每次迭代來更新內(nèi)部狀態(tài)的密碼
對于當(dāng)前流密碼,s約為150-300位的數(shù)量級。使用密鑰k和初始矢量IV來作為初始寄存器狀態(tài)以及內(nèi)部寄存器狀態(tài)s0.
密鑰流的位ki完全通過給定的內(nèi)部密碼結(jié)構(gòu)Si確定,并由如下
等式產(chǎn)生
其中,g是表示密鑰流產(chǎn)生的函數(shù),其每次從內(nèi)部狀態(tài)寄存器結(jié)構(gòu)提取一位。
明文的位Xi的實際加密通過如下表達(dá)式實現(xiàn)Cy = X, + &
其中,"+ "表示按位XOR運(yùn)算。相應(yīng)的解密通過相同密鑰流ki的產(chǎn)生以及簡單地執(zhí)行XOR運(yùn)算x,c,+A:,來實現(xiàn)。
如果己知流密碼Fk的內(nèi)部狀態(tài)Si,則可以產(chǎn)生從該點(diǎn)開始的整個密鑰流,其中所述流密碼Fk的內(nèi)部狀態(tài)、包括用于狀態(tài)更新的函數(shù)f、用于產(chǎn)生密鑰流和密碼密鑰k的函數(shù)g。這是通過每次迭代一位來實現(xiàn)的,可以將其描述為如下表達(dá)式
一個重要的性能是流密碼在對線性數(shù)據(jù)流(例如所下載的較大的文件)的加密和解密中是非常有效的。但是,加密和解密程序依賴于以精確順序逐位獲得數(shù)據(jù)。這是因為對特定位加密的方式取決于密碼狀態(tài),所述狀態(tài)在所有在先的加密中已被采用。因此,為了跳過數(shù)據(jù)流的一部分,密碼需要知道從假設(shè)解密再次開始的點(diǎn)的數(shù)據(jù)流開始的所有在先的內(nèi)部結(jié)構(gòu)以及所有密碼狀態(tài)。在這方面中,流密碼解密明顯不同于分組密碼,分組密碼可以根據(jù)精確的使用單獨(dú)解密每個數(shù)據(jù)分組。
從下文所述將很明顯,根據(jù)本發(fā)明的所述實施例的多維加密和解密程序具有如下優(yōu)點(diǎn)其可以支持復(fù)雜的存儲器訪問模式,這種模
式特別在多媒體應(yīng)用中逐漸增多。與其相比,基于已知分組密碼的加密和解密以及基于已知流密碼的加密和解密都不能提供這種優(yōu)點(diǎn)。
為了說明這方面并且為了增進(jìn)對本發(fā)明的理解,將參考圖3簡要說明對存儲在二維(2D)存儲器(如閃存)中的視頻內(nèi)容的基于分組密碼的加密和基于分組密碼的解密的示例。將參考圖4簡要說明對存儲在二維(2D)存儲器中的視頻內(nèi)容的基于流密碼的加密和基
于流密碼的解密的另一示例。這些示例說明了通常如何實現(xiàn)任意大小
和位置的數(shù)據(jù)的2D訪問,如在視頻解壓縮或圖像產(chǎn)生過程中。
圖3示出了 2D存儲器350的不規(guī)則部分355的解密,其數(shù)據(jù)內(nèi)容已通過使用分組密碼加密。即使需要解密的存儲器350的部分355可能與單獨(dú)的分組380相同,部分355通常也不與分組邊界對齊。這意味著在所述情況下的解密需要六個存儲器分組380。這說明了使用分組密碼以及對這類型的存儲器訪問的一個普遍問題。盡管原則上使用分組密碼的存儲器訪問確實是隨機(jī)訪問,但是,除非用于解密的存儲器350的部分355與分組邊界精確地對齊,否則必須執(zhí)行大量額外的冗余的解密工作。這意味著必須對不需要解密的數(shù)據(jù)進(jìn)行解密。
圖4示出了對2D存儲器450的不規(guī)則部分455的解密,其數(shù)據(jù)內(nèi)容已通過使用流密碼490加密。為了解密存儲器450的不規(guī)則部分455,需要密碼流中的四個入口點(diǎn)491。由于流密碼通常需要以與對其進(jìn)行加密完全一樣的順序來解密數(shù)據(jù),則在解密過程中不能跳過不需要的數(shù)據(jù)分組。因此,當(dāng)使用流密碼加密時,也必須執(zhí)行大量的額外的冗余解碼工作。
下文將更詳細(xì)地描述使用水平流密碼F^和垂直流密碼Fky的二
維(2D)加密和解密程序。盡管該二維(2D)加密和解密過程是本發(fā)明的優(yōu)選實施例,但是需要指出的是通過該應(yīng)用描述的本發(fā)明不限于2D加密過程。還可以通過相應(yīng)的基于三個或者甚至更多不同流密碼的加密過程來實現(xiàn)本發(fā)明,其中每個流密碼代表存儲器和/或數(shù)據(jù)集的一維。
用于有效地加密存儲器的2D部分(如,幀緩沖器)的2D加密程序包括如下重要步驟
在第一步中,產(chǎn)生兩個單獨(dú)的流密碼,即水平流密碼Fkx和垂直流密碼Fky。其中,這些流密碼在使用不同密鑰的情況下可以是相同的。
在第二步中,形成水平密鑰流&(&)。通過內(nèi)部寄存器結(jié)構(gòu)的內(nèi)
部狀態(tài)Si來產(chǎn)生該水平密鑰流&")。
在第三步中,形成垂直密鑰流~(~)。通過內(nèi)部寄存器結(jié)構(gòu)的內(nèi)部狀態(tài)sj來產(chǎn)生該垂直密鑰流^(。)。
在第四步中,通過如下邏輯運(yùn)算來對表示明文的位的2D存儲器的每個位Xij進(jìn)行加密
C(/ = + ~
其中、=&") + ~",),并且"+ "是邏輯XOR運(yùn)算。
該實施例的特征在于與僅使用單一密鑰流的一維流密碼加密
(參見以上所述)相比,在2D流密碼加密中,通過水平和垂直密鑰流的XOR運(yùn)算覆蓋了整個2D存儲器空間。
通過使用水平密鑰流的內(nèi)部狀態(tài)Si和垂直密鑰流的內(nèi)部狀態(tài)Sj
的信息來實現(xiàn)對存儲在2D存儲器中的這種已加密的數(shù)據(jù)集的任意矩形部分進(jìn)行相應(yīng)的解密??赏ㄟ^使用如下邏輯運(yùn)算來實現(xiàn)所述解密~ 、+^
盡管對2D存儲器上的水平和垂直方向僅使用單一重復(fù)的水平密鑰流,但是,通過每個存儲器位置的兩個流的XOR運(yùn)算能唯一地覆蓋所述存儲器空間。相應(yīng)的邏輯表達(dá)式如下所述2D加密和解密方法可提供如下優(yōu)點(diǎn)整個加密僅需要對用于水平密鑰流&^)和垂直密鑰流i^^,)的密碼的內(nèi)部狀態(tài)Si和Sj進(jìn)行內(nèi)部存儲。在相應(yīng)密鑰包括重復(fù)密鑰碼的情況下,所需要的內(nèi)部存儲
容量是一個與2D存儲器的大小無關(guān)的恒定值。
所述2D加密過程還提供如下優(yōu)點(diǎn)為目前為止尚未解決的對較
大2D存儲器中2D存儲器的部分的任意訪問的問題提供了有效的具有面積和時間效率的解決方案。與己有方法相比,所提供的解決方案更快、更廉價,并且需要較小的存儲容量。
圖1示出了描述對2D存儲器250的不規(guī)則部分155的解密的圖示。所述存儲器可以是如閃存250。己通過使用水平流密碼Fkx160和垂直流密碼Fky170執(zhí)行連續(xù)的XOR運(yùn)算來對2D存儲器250中存儲的數(shù)據(jù)進(jìn)行了加密。用參考符號165來表示內(nèi)部密碼狀態(tài)si的水平密鑰流Fkx。用參考符號175來表示內(nèi)部密碼狀態(tài)Sj的垂直密鑰流Fky。
如從圖1所能看到的,存儲器150包括11X7個2D存儲器網(wǎng)格。對于7位水平密鑰流Fkx160,由4位內(nèi)部密碼狀態(tài)Si來表示水平流中的每位,其中i二0…6。對于11位垂直密鑰流Fky170,由4位內(nèi)部密碼狀態(tài)Sj來表示垂直流中的每位,其中〗=0-10。因此,在這種情況下僅需要7X4+11 X4=336位來描述2D存儲器150的完整密鑰流,并且僅需要兩部分狀態(tài)信息(Si, Sj)來描述存儲器150的任意矩形部分155。
如從圖1所能看到的,水平密鑰流Fbl60和垂直密鑰流Fkyl70 —樣均橫跨較大2D存儲器150。如果已知明文,黑客則能恢復(fù)密鑰流的點(diǎn)。在這種使用相同密鑰流的情況下,如下表達(dá)式描述了通常不安全的2D存儲器150的每個點(diǎn)
這實際上表示了 i+j變量的iXj個線性表達(dá)式。即,可通過求解這些線性表達(dá)式來恢復(fù)密鑰流的這些部分。因此,為了增加所述2D加密程序的安全性,應(yīng)該頻繁地重置流密碼的密鑰。當(dāng)經(jīng)常改變密鑰并且通常未知明文時,該方案提供了高度安全性。
圖2示出了表示本發(fā)明的實施例的多媒體裝置200。所述多媒體裝置可以是如DVD視頻播放器200。
所述多媒體裝置200包括處理裝置210和工作存儲器250。將處理裝置210看作是表示多媒體裝置200的安全部件。將外部2D存儲器250看作是表示多媒體裝置200的相對不安全的部件。處理裝置210包括數(shù)據(jù)輸入230,其能將視頻數(shù)據(jù)加載到處理裝置210。根據(jù)本文所述的實施例,所述視頻數(shù)據(jù)是來自數(shù)據(jù)載體(如DVD)的原始數(shù)據(jù)。該原始數(shù)據(jù)是明文數(shù)據(jù),其通過已知的壓縮程序(如MPEG編碼)壓縮。
處理裝置210還包括中央處理單元215,其用于對從數(shù)據(jù)輸入230到中央處理單元215傳輸?shù)臄?shù)據(jù)執(zhí)行MPEG解碼。
此外,處理裝置210包括第一加密單元221和第二加密單元222。這些加密單元221、 222的組合用于對中央處理單元所提供的已壓縮的
數(shù)據(jù)執(zhí)行二維解密。
此外,處理裝置210包括存儲子系統(tǒng)控制單元225和掩碼單元228。存儲子系統(tǒng)控制單元225用于控制2D加密程序。具體地說,存儲子系統(tǒng)控制單元225確定哪些數(shù)據(jù)部分必須保留在安全處理裝置210中以及哪些數(shù)據(jù)部分可以離開安全處理裝置210。掩碼單元228用于對水平流密碼和垂直流密碼進(jìn)行加密。這可以確保可以將這些流密碼僅以加密的形式外部地存儲在2D工作存儲器250的存儲部分252中。將已加密的視頻數(shù)據(jù)存儲在2D視頻幀緩沖器251中,所述2D視頻幀緩沖器251也表示外部的相對不安全的2D工作存儲器250的一部分。
多媒體裝置200還包括輸入/輸出單元240和監(jiān)測器242。輸入/輸出單元240用于向用戶提供例如關(guān)于多媒體裝置200的運(yùn)行情況的信息和/或用于從用戶端接收控制命令。耦接在輸入/輸出單元240的監(jiān)測器242用于顯示所需要的視頻內(nèi)容。
下文將描述多媒體裝置200的運(yùn)行
A) 首先,從數(shù)據(jù)載體加載受數(shù)字版權(quán)管理(DRM)保護(hù)的內(nèi)容并且消除DRM保護(hù)。圖示中未示出該步驟。
B) 接著,用視頻內(nèi)容填充2D視頻幀緩沖器251。但是,在將視頻內(nèi)容存儲到緩沖器251中之前,使用本申請先前已描述的2D加密方法來對視頻內(nèi)容加密。
18C) 同時產(chǎn)生水平和垂直流密碼(Sl, Sj)的狀態(tài)數(shù)據(jù)。在將視頻
內(nèi)容存儲到外部存儲器251之前,通過與任意值的XOR運(yùn)算來對視頻內(nèi)容作掩碼處理。
D) 當(dāng)媒體解碼需要存儲器251中存儲的視頻數(shù)據(jù)的特定的2D部分時,從幀緩沖器251中獲取該部分。同時也獲得合適的和Sj數(shù)據(jù)并消除掩碼。
r 、 士承巻 ^fr;TM厶6^i3rr說乂擊ffl6h、、/右^fera "cv 壬n 17』^k在S7;nit fi
l乂 ;i又z目,》hx_hu rj MliUJ/w'lT i人乂 ij w.j i乂ilt山丄'kx化h i'ky zi、/hth,乂i在媒體解碼器之前使用所述Si和Sj數(shù)據(jù)。
F) 接著通過相同的加密處理將任何更新信息寫入幀緩沖器251中。
G) 偶然地,將完全重新填充幀緩沖器251。在這之前,執(zhí)行水平和垂直流密碼,并且掩碼值被密鑰重置。這將顯著提高安全性。
例如,上述發(fā)明可用于需要對存儲器的2D部分進(jìn)行快速有效的加密和解密的處理器。例如這同樣可用于處理已編碼的視頻內(nèi)容(如MPEG4壓縮的視頻數(shù)據(jù))的許多處理器。
與已知的加密和解密程序相比,所述2D加密方法可提供如下優(yōu)
點(diǎn)
-比分組密碼加密更快速并且更有效的加密和解密。-比使用單一流密碼需要更少的存儲空間并且更有效。-僅通過較低的硬件需求并提供頻繁的重置密鑰,可以提供可接受的安全級別。
-解決了目前尚未解決的有效的2D隨機(jī)存儲訪問的問題。應(yīng)該注意,術(shù)語"包括"不排除其他元件或步驟,并且"一"和"一個"不排除多個。同時相關(guān)不同實施例中描述的元件可以組合。
同樣應(yīng)該注意,權(quán)利要求中的參考符號不解釋為對權(quán)利要求的保護(hù)范
圍的限制。
權(quán)利要求
1.一種用于對存儲在存儲器(150)中的數(shù)據(jù)集的至少一部分(155)進(jìn)行加密的方法,其中所述數(shù)據(jù)集至少具有二維,該方法包括形成分配給所述數(shù)據(jù)集的第一維的第一密鑰流(165),形成分配給所述數(shù)據(jù)集的第二維的第二密鑰流(175),以及通過使用第一密鑰流(165)和第二密鑰流(175)的組合來對所述數(shù)據(jù)集的所述部分(155)的每個數(shù)據(jù)分組進(jìn)行加密。
2. 根據(jù)權(quán)利要求1所述的方法,其中第一密鑰流(165)是基于第一流密碼(160)產(chǎn)生的,并且 第二密鑰流(175)是基于第二流密碼(170)產(chǎn)生的。
3. 根據(jù)權(quán)利要求2所述的方法,其中第一流密碼(160)和第二流密碼(170)是相同的,并且其中 使用第一密鑰來產(chǎn)生第一密鑰流(165)并且使用不同于第一密 鑰的第二密鑰來產(chǎn)生第二密鑰流(175)。
4. 根據(jù)權(quán)利要求1所述的方法,其中第一密鑰流(165)和/或第二密鑰流(175)包括循環(huán)碼。
5. 根據(jù)權(quán)利要求1所述的方法,其中 第一密鑰流(165)和第二密鑰流(175)相互關(guān)聯(lián)。
6. 根據(jù)權(quán)利要求1所述的方法,其中第一密鑰流(165)和第二密鑰流(175)的組合包括第一密鑰 流(165)的位與第二密鑰流(175)的位之間的XOR運(yùn)算。
7. 根據(jù)權(quán)利要求1所述的方法,其中所述數(shù)據(jù)分組具有單單個位的大小,并且 對數(shù)據(jù)集的部分(155)的每個位的加密包括 對數(shù)據(jù)集的位與第一密鑰流(165)和第二密鑰流(175)的組 合的相應(yīng)位進(jìn)行XOR運(yùn)算。
8. 根據(jù)權(quán)利要求1所述的方法,其中 所述數(shù)據(jù)分組具有大于單個位的大小。
9. 一種用于對存儲器(150)中存儲的數(shù)據(jù)集的至少一部分進(jìn)行解密的方法,其中所述數(shù)據(jù)集至少具有二維,該方法包括形成分配給所述數(shù)據(jù)集的第一維的第一密鑰流(165), 形成分配給所述數(shù)據(jù)集的第二維的第二密鑰流(175),以及 通過使用第一密鑰流(165)和第二密鑰流(175)的組合來對 所述數(shù)據(jù)集的所述部分的每個位進(jìn)行解密。
10. 根據(jù)權(quán)利要求9所述的方法,其中 對所述數(shù)據(jù)集的所述部分(155)的每個位進(jìn)行解密包括 對數(shù)據(jù)集的位與第一密鑰流(165)和第二密鑰流(175)的組合的相應(yīng)位執(zhí)行XOR運(yùn)算。
11. 一種用于將數(shù)據(jù)集的至少一部分暫存到存儲器(150)中的 方法,其中所述數(shù)據(jù)集至少具有二維,該方法包括通過執(zhí)行權(quán)利要求1中所述的方法來對所述數(shù)據(jù)集的所述部分 (155)進(jìn)行加密,將已加密的所述數(shù)據(jù)集的所述部分(155)存儲到存儲器(150)中,從存儲器(150)中讀出所存儲的已加密的所述數(shù)據(jù)集的所述部 分(155),以及通過執(zhí)行權(quán)利要求9中所述的方法來對所讀出的已加密的數(shù)據(jù) 集的部分進(jìn)行解密。
12. —種用于處理至少具有二維的數(shù)據(jù)集的裝置,特別用于處理 多媒體數(shù)據(jù)集,該裝置(200)包括處理裝置(210),以及耦接至處理裝置(210)的工作存儲器(250),其中-處理裝置(210)適用于通過執(zhí)行權(quán)利要求1中所述的方法將數(shù)據(jù)傳輸?shù)焦ぷ鞔鎯ζ?250),和/或-處理裝置(210)適用于通過執(zhí)行權(quán)利要求9中所述的方法從工作存儲器(250)接收數(shù)據(jù)。
13. 根據(jù)權(quán)利要求12所述的裝置,其中 處理裝置(210)包括第一加密單元(221),用于通過使用第一密鑰流來對數(shù)據(jù)集進(jìn) 行加密和/或解密,以及第二加密單元(222),用于通過使用第二密鑰流來對數(shù)據(jù)集進(jìn) 行加密和/或解密。
14. 根據(jù)權(quán)利要求12所述的裝置,還包括 用于接收數(shù)據(jù)的數(shù)據(jù)輸入(230)。
15. 根據(jù)權(quán)利要求12所述的裝置,其中 所述處理裝置(210)還包括中央處理單元(215),其適用于執(zhí)行MPEG解碼。
全文摘要
本發(fā)明描述了一種用于對存儲在存儲器(150)中的數(shù)據(jù)集的至少一部分(155)進(jìn)行加密和解密的方法,其中所述數(shù)據(jù)集至少具有二維。所述多維加密方法包括形成分配給所述數(shù)據(jù)集的第一維的第一密鑰流(165);形成分配給所述數(shù)據(jù)集的第二維的第二密鑰流(175)。所述加密方法還包括通過使用第一密鑰流(165)和第二密鑰流(175)的組合來對所述數(shù)據(jù)集的所述部分(155)的每個數(shù)據(jù)分組進(jìn)行加密。所述解密方法還包括通過使用第一密鑰流(165)和第二密鑰流(175)的組合來對所述數(shù)據(jù)集的所述部分(155)的每個數(shù)據(jù)分組進(jìn)行解密。本發(fā)明還描述了一種用于將數(shù)據(jù)集的至少一部分(155)暫存到存儲器(150)的方法以及一種用于處理數(shù)據(jù)集的裝置,所述方法和所述裝置都利用了上述加密方法和/或上述解密方法。
文檔編號G06F21/10GK101632084SQ200880007908
公開日2010年1月20日 申請日期2008年3月11日 優(yōu)先權(quán)日2007年3月13日
發(fā)明者克勞斯·庫爾薩韋, 蒂莫西·克林斯 申請人:Nxp股份有限公司