所述方法能夠在任意在線提供受保護的多媒體內容的系統中、在從任意在線提供受保護的多媒體內容的服務獲得受保護的多媒體內容之后執行,在所述系統中頭端確保對內容的保護以及將其傳輸到多個終端。
然后由系統用戶使用終端訪問受保護的內容,以便對其進行播放。訪問受保護的多媒體內容在此是指:
-將其加載到存儲器中,然后
-在受保護的多媒體內容被接收時逐漸地或在受保護的多媒體內容預先已經存儲在其上的存儲介質上解除對受保護的多媒體內容的保護,然后
-對其進行解碼,然后
-將受保護的多媒體內容傳輸到能夠對其進行播放、存儲或者進行由提供受保護的多媒體內容的服務提供的任意其他使用的多媒體設備。
在此,“逐漸地解除保護”指的是在無需等待完整的多媒體內容、即其片段的全部都已經被完全且完整地接收的情況下,在多媒體內容的片段被接收時就逐漸地對其進行處理的事實。
為此,該終端包括解擾器、解碼器和由解擾器、解碼器共享的存儲器。
所提供的內容為:
-視聽內容,例如電視節目,
-只有音頻的內容,例如廣播節目,或
-更普遍地,包含視頻和/或音頻的任意數字內容,諸如計算機應用、游戲、幻燈片、圖片或任意數據集。
下文中將更具體地考慮這些內容中的所謂時間內容。時間多媒體內容為在音頻時間內容的情況下以聲音的時序、在視頻時間內容的情況下以圖片的時序或者在視聽時間多媒體內容的情況下以彼此時間上同步的聲音和圖片的時序播放的多媒體內容。時間多媒體內容還能夠包括與聲音或圖片在時間上同步的交互時間分量。
為了進行提供,這樣的內容首先被編碼,也就是說被壓縮,使得其傳輸需要更少的帶寬。
為此,內容的視頻分量是根據視頻格式、例如MPEG-2來編碼的。有興趣的讀者可以在由國際標準化組織發布的標準號為ISO/IEC13818-2:2013、標題為“Technologies de l’information–Codage générique des images animées et du son associé–Partie 2:Donnée vidéo”的文檔中找到該格式的完整陳述。可替代地,諸如MPEG-4ASP、MPEG-4第2部分、MPEG-4AVC(或第10部分)、HEVC(高效視頻編碼)、或WMV(Windows媒體視頻)的許多其他格式也能夠被使用,并基于相同的原理。由此,以下內容的全部同樣適用于這些所基于的原理與MPEG-2編碼所基于的原理相同的其他視頻格式。
MPEG-2編碼使用通用數據壓縮方法。對于固定的圖片,其尤其利用圖片內的空間冗余、相鄰點之間的相關性和眼睛對細節的較小靈敏度。對于運動的圖片,它利用了連續圖片之間的強時間冗余。對該強時間冗余的利用允許參考其他圖片(在此稱為源圖片),例如通過預測或內插來對內容的某些圖片(在此稱為導出圖片)進行編碼,使得僅在所述源圖片解碼之后才能夠對導出圖片進行解碼。其他圖片(在此稱為初始圖片)不參考這樣的源圖片來編碼,也就是說,它們在被編碼時,其每個都含有對于其解碼所需的全部信息,因此它們能夠獨立于其他圖片被完全解碼。因此在訪問內容時,初始圖片是必須的進入點。因此,所產生的被編碼的內容不包括獨立于其他圖片對圖片的每個進行解碼所需的數據,而是由根據MPEG-2術語的“序列”組成。一個序列實現至少一個“圖片組”(或MPEG-2中的Group of Pictures,縮寫為GOP)的壓縮。
圖片組是一系列連續圖片,其中每個圖片都:
-要么是包含在同系列的連續圖片中的至少一個導出圖片的源圖片并且是初始圖片,
-要么是導出圖片并且使得對于其解碼所需的源圖片的每個都屬于同一系列的連續圖片。
圖片組不包含具有與上述屬性相同的屬性的任何較小系列的連續圖片。因此,圖片組是內容的在不必事先解碼此內容的另一部分的情況下能夠被訪問的最小部分。
序列由“頭”和“尾”限定,其每個都由第一個特定代碼來標識。頭包括表征被解碼的圖片的預期屬性的參數,例如水平和垂直尺寸、比率、頻率。標準建議在序列的圖片組之間通過頭在編碼內容中的連續出現以大約幾秒間隔開的方式來使頭重復。
例如,圖片組常常包括多于5到10個圖片并且通常少于12或20或50個圖片。例如,在每秒25個圖片的系統中,圖片組通常具有長于0.1或者0.4秒并且通常短于0.5或者1或者10秒的播放時間。
時間多媒體內容能夠包括數個視頻分量。在這種情況下,這些分量中的每個都被如上所述地編碼。
此外,內容的音頻分量是根據音頻格式、例如MPEG-2音頻來編碼的。有興趣的讀者可以在由國際標準化組織發布的標準號為ISO/IEC13818-3:1998、標題為“Technologies de l’information–Codage générique des images animées et des inforamtions sonores associées–Partie 3:Son”的文檔中找到該格式的完整陳述。可替代地,諸如以名稱MP3更為人所知的MPEG-1層III、AAC(高級音頻編碼)、Vorbis或WMA(Windows媒體音頻)的許多其他格式也能夠被使用,并且基于相同的原理。由此,以下內容的全部同樣適用于這些所基于的原理與MPEG-2音頻編碼所基于的原理相同的其他音頻格式。
MPEG-2音頻編碼遵循與上述時間視頻內容的原理相同的原理。因此,所產生的被編碼的內容以相似的方式由“幀”組成。幀是視頻中的圖片組在音頻中的對應。因此,幀特別地是音頻內容的在不必解碼此音頻內容的另一部分的情況下能夠被訪問的最小部分。幀還包括對其解碼有用的全部信息。
幀通常包括其每個都對聲音進行編碼的多于100或200個樣本并且通常少于2000或5000個樣本。通常,當多媒體設備播放幀時,一幀持續超過10ms或20ms并且通常小于80ms或100ms。例如,一個幀包括每個都對聲音進行編碼的384或1152個樣本。根據信號取樣頻率,該幀具有8到12或者24到36毫秒的播放時長。
時間多媒體內容能夠包括數個音頻分量。在這種情況下,這些分量中的每個都如上所述地被編碼。
內容的被編碼的分量(也稱為基本的數據流)然后被多路復用,即特別地時間上同步,然后組合成單個數據流。
這樣的內容,特別是在其是權利(例如版權或類似權利)的對象時,由多媒體內容保護系統來提供保護。該系統允許確保遵守從這些權利中產生的對內容進行訪問的條件。
然后通常通過數字版權管理、即DRM(英文Digital Rights Management的縮寫)系統來提供對其的加密保護。該加密通常借助加密密鑰通過對稱算法來實現。這適用于由多路復用所產生的流,或者在多路復用之前用于被編碼的內容的分量。
DRM系統實際上是一種多媒體內容保護系統。因此在本文檔的下文中使用數字版權管理系統領域的術語。有興趣的讀者可以例如在以下文獻中找到更全面的描述:DRM Architecture,草案第2.0版,OMA-DRM-ARCH-V2_0-20040518-D,Open Mobile Alliance,2004年5月18日。
在這樣的數字版權管理系統中,許可證的獲得使得終端能夠訪問受保護的多媒體內容。
這樣的許可證(其具有眾所周知的結構)包括對于解密受對稱加密算法保護的多媒體內容所需的至少一個所謂的內容密鑰。
內容密鑰通常以通過利用加密密鑰對內容密鑰進行加密而獲得的密碼的形式插入到許可證中,所述加密密鑰稱為“終端”密鑰并且是終端所特有或者該終端知悉的。
為了訪問內容,終端通過借助其終端密鑰對其密碼進行解密而從許可證提取內容密鑰。
接下來,終端的解擾器借助由此從許可證中提取的內容密鑰對內容進行解擾、即解密,從而解除保護。解擾器因此生成未加擾多媒體內容,其包括視頻序列或者圖片組或者音頻幀的至少一個時間序列。該多媒體內容能夠由連接到終端的多媒體設備來播放。在此,“未加擾”指的是以下事實:多媒體內容不再需要被解密就能夠由多媒體設備以人類可直接感知并且理解的方式播放。術語“多媒體設備”還指能夠播放未加擾多媒體內容的任意設備,例如電視機或者多媒體播放器。
然后,解擾器接著將未加擾內容傳輸到共享存儲器。
接著,終端的解碼器讀取共享存儲器中的未加擾內容并且對其解碼。
最后,終端將被如此解碼的內容傳輸到多媒體設備。
更具體地,在時間多媒體內容的情況下,該內容的如上所述的接收、處理、然后由終端傳輸到多媒體設備是逐個片段地實現的。片段是未加擾多媒體流與整個多媒體流相比具有較短播放時長的受限部分。因此,片段包括未加擾多媒體流的每個視頻和音頻分量的受限部分、其與整個多媒體流相比具有較短的播放時長。這些分量的受限部分在流中同步以同時播放。片段因此包括視頻序列或者圖片組或者音頻幀的時間序列的受限部分,其實現對未加擾多媒體流的分量的該受限部分的編碼。該受限部分通常包括多個連續的音頻幀或視頻序列或圖像組。
在上述通過終端訪問內容的方式中,被解擾的內容由終端的解擾器傳輸到終端的共享存儲器中,以便在其中由其解碼器來讀取。因此,未加擾內容至少在其被解擾器存放在存儲器中的時刻和其被解碼器讀取的時刻之間存在于該存儲器中。因此,在這樣的開放環境中,容易讀取其中的被解擾的內容并從而獲得對內容的非法訪問。因此,在內容存在于共享存儲器中期間需要對內容進行額外的保護。
對這個問題的加密解決方案是已知的,其基于由解擾器和解碼器共享密鑰。在這些解決方案中,解擾器在將經解擾內容傳輸到共享存儲器之前對所述內容進行加密。然后,解碼器讀取共享存儲器中的如此加密的內容,然后對其進行解密,并且在其可能被存儲在終端的存儲器中之前對其進行解碼,并且將其傳輸到能夠播放該內容的多媒體設備。這些加密解決方案是安全的,但具有復雜且需要大量信息資源來成功地進行所涉及的加密計算的缺點。
其他具有該缺點的解決方案是已知的,例如將內容轉換成其他內容格式。
實施安全機制(例如通過終端的DRM模塊對未加擾內容的目標應用程序進行驗證)的解決方案也是已知的。這些解決方案具有該實施在開放環境(例如終端)中不安全的缺點。
專利EP2268020保護改變經解擾內容的位元的替代解決方案。該解決方案被描述為需要在對于其實施所需的計算資源和其安全性之間實現折中。因此,要在所需的計算資源方面提供顯著的節省,該解決方案就必須伴隨著安全性方面的顯著損失。
本發明旨在提供與申請EP2268020相比更安全并且在計算時間方面至少同樣經濟的替代解決方案。
從US6747580B1還已知現有技術。
因此,本發明的主題是如權利要求1所要求保護的用于訪問受保護的多媒體內容的方法。
在上述方法中,在步驟c)中將M個原始位的位串替換為N個替代位的位串允許通過使密碼分析的嘗試更加困難而增加所述方法的安全性,其中N嚴格大于M。實際上,不知道N的話,終端的共享存儲器的觀察者就不會事先知道如何界定被修改的片段。此外,即使觀察者能夠界定被修改的片段,這也不會給其提供關于M的值的任何信息,使得很難從被修改的片段重構出未加擾片段。特別地,要注意,在加密方法中,被加密的數據通常具有與未加擾數據的尺寸相同的尺寸,在本情況下并非如此。
此外,由于N大于M,所以N個替代位的位串的可能值的數量遠大于M個原始位的可能值的數量。這使得任何密碼分析的嘗試都更加困難。而且,這允許通過利用例如已經或者之前沒有用于替換同一個M個原始位的位串的幾個不同的N個替代位的位串來改變所述用N個替代位的位串對M個原始位的位串的替換。
用于訪問受保護的多媒體內容的該方法的實施方式能夠包括從屬權利要求的特征。
用于訪問受保護的多媒體內容的該方法的這些實施例還提供以下優點:
·第一查找表的使用允許執行在第一表中選擇N個替代位的位串而不是根據M個原始位的位串的值對其進行計算。這通過使對該方法的密碼分析更加難以進行,更具體地通過確保在實施所述方法期間就這些原始和替代位的值的方面對系統的外部觀察(例如對計算時間或者電能消耗的外部觀察)不會給出關于為了獲得被修改的片段而執行的位替代的性質的任何信息,從而在安全性方面提供另外的優點。而且,執行第一查找表中的輸入輸出操作而不是計算操作還具有顯著減少計算時間的優點。
·第二查找表的使用允許在選擇之前在第二表中搜索N個替代位的位串,而不是在第一表中搜索與被修改的片段的N個替代位的位串關聯的M個原始位的位串。這具有降低所執行的搜索的復雜度以及由此減少計算時間的優點。
·根據具有給定指數(indices donnés)的M位的值的順序對第二查找表的行排序允許使用這些M位作為第二查找表的索引,以在第二查找表中直接選擇出與被修改的片段的N個替代位的位串相關聯的M個原始位的位串。同上地,執行第二查找表中的輸入輸出操作而不是搜索操作具有顯著減少計算時間的優點。
·幾個不同的第一查找表的使用允許通過使對所述方法的密碼分析更加困難而提高所述方法的安全性。更具體地,這允許改變為了產生被修改的片段并且重構未加擾的片段而執行的位替代。
·通過M的值或者通過N的值而彼此不同的第一查找表的使用允許通過使對所述方法的密碼分析更加困難而提高所述方法的安全性。更具體地,這允許改變原始位的位串或者替代位的位串的長度。
·數的隨機或者偽隨機抽取允許通過使對所述方法的密碼分析更加困難而提高所述方法的安全性。更具體地,這允許隨機改變為了產生被修改的片段并且重構未加擾片段而執行的位替代的序列。
·將不同的第一查找表的個數或者隨機或偽隨機抽取的數的字節數取為等于2的嚴格正的冪允許減少計算時間。更具體地,這簡化了步驟c)中的選擇以及步驟f)中的確定,在該選擇和該確定中涉及以這些數為模的除法。實際上,如果這些數是2的冪,那么這些除法就相當于位的移位。
本發明的另一主題是一種信息存儲介質,其包括指令,這些指令用于在由電子計算機執行時實施上述用于訪問受保護的多媒體內容的方法。
本發明的另一主題是一種終端,其包括用于實施上述用于訪問受保護的多媒體內容的解擾器、解碼器和共享存儲器。
通過閱讀參照附圖做出的僅作為非限制性示例給出的以下描述會更好的理解本發明,附圖中:
-圖1是包括解擾器、解碼器和共享存儲器的終端的示意圖,
-圖2是相對應的第一和第二查找表的局部示意圖,和
-圖3是用于利用圖1的終端訪問受保護的多媒體內容的方法的示意圖。
在這些附圖中,相同的附圖標記標注相同的元件。
在本說明書的下文中,不詳細描述為本領域技術人員熟知的特征。
圖1表示一個能夠訪問受保護的多媒體內容的終端。為此,該終端包括解擾器1、解碼器3、由解擾器和解碼器共享的存儲器5、可編程電子計算機7和存儲器9。
解擾器1能夠將信息存儲到共享存儲器5中并且能夠如解碼器3那樣從該共享存儲器中提取信息。
電子計算機7能夠執行存儲器9中存儲的指令。存儲器9包括執行圖3的方法所需的指令。
共享存儲器5和存儲器9能夠如圖1中那樣是獨立的,或者是合并的,或者共享存儲器5能夠是存儲器9的一部分。
圖2表示第一查找表12的一部分和第二查找表18的一部分。在該圖中,字節以十六進制的形式給出,并且符號“|”表示級聯運算(l’opération de concaténation)。
第一表12對于每個可能的字節值都包括一行。該表因此包括第一列,所述第一列含有八個原始位的所有可能的位串14。位串14的位的數量(在下文中標注為M)在此取值為等于八。因此存在2M個位串14,其值為0x01到0xFF。表12的每行都使其位串14與第一和第二字節的級聯(即,十六個替代位的位串16)相關聯。位串16的位的數量(在下文中標注為N)在此取值為等于十六。因此存在2N個可能的位串16,但是表12僅含有2M個位串16。每個位串16都不同于其他位串16。位串16被包含在表12的第二列中。
根據位串14的值的順序對表12的行排序以構成該表的索引。該索引允許加速對含有給定位串14的表12的行的搜索和對其的選擇。而且,該索引的值以規則的步長從一個值變化到下一個值,這允許在不用讀取其他行的內容的情況下直接找到表12的含有該索引的行。在此,索引的值等于表12的含有該位串14的行號。因此,這允許更快地搜索給定位串14。為了簡化說明,圖2僅表示出與值分別為0xA0到0xA7的位串14相關的八行。例如,表12所表示的第一行將十六個替代位的位串16 0xD4|0x03與八個原始位的位串14 0xA0相關聯。位串0xA0位于表12的行0xA0中,即從該表的第一行開始的第160行中。
此外,在該表12中,經級聯的字節中的第二字節、即每個位串16的指數為9至16的八個位的值的集合等于位串14的集合。在圖2中,位串16的可見第二字節從0x01到0x08。
圖2的第二表18對十六個替代位的每個位串16都包括一行。每行都使該位串16與通過表12與該位串16關聯的位串14相關聯。因此,這些表12和18被稱為是“對應的”。位串16和14分別被包含在表18的第一和第二列中。表18所表示的第一行例如使八個原始位的位串14 0xA4與十六個替代位的位串16 0x5B|0x01相關聯。
而且,根據第二字節、即每個位串16的指數為9到16的八個位的值的順序對表18的行排序。這些第二字節的值涵蓋所有從0x01到0xFF的可能的值。它們因此構成該第二表的索引。如前所述那樣地,該索引允許加快對含有給定位串16的表18的行的搜索和選擇。實際上,由于該索引的值以規則步長從一個值變化到下一個值,因此這允許在不用讀取其他行的內容的情況下直接找到表18的含有該索引的行。在此,索引的值等于表18的含有該位串16的行號。特別地,與所述索引的值不均勻地分布在其極限值之間的情況相比,這允許節省時間。在圖2中,所表示的第二字節取0x01到0x08的值并且分別以升序占據表18的第一到第八行。
現在將參照圖3的方法描述圖1的終端的工作。
所述方法開始于初始化階段。該初始化階段包括:
-步驟110和112,在這些步驟期間構造和存儲表12、18,和
-構造初始化數S的步驟114,。
例如每當終端啟動時都觸發該初始化階段。在這種情況下,優選地,將所構造的表和數S存儲在易失性存儲器(例如RAM(隨機存取存儲器))中,以在終端關閉時被自動擦除。
更具體地,在步驟110中,終端在可被解擾器1訪問的存儲器中構造和存儲表12。該存儲器能夠是專用于該解擾器的存儲器、存儲器9的一部分,或者共享存儲器5。例如,通過對每個可能的位串14執行以下操作來構造表12:
a)終端從所有2N個可能的位串16中隨機抽取位串16,然后
b)如果因此而隨機抽取的位串16尚未與另一位串14相關聯,那么使其在表12中與該位串14相關聯,否則,重復進行操作a)和b)。
接下來,在步驟112中,終端在可被解碼器3訪問的存儲器中構造和存儲對應的表18。該存儲器能夠是專用于該解碼器的存儲器、存儲器9的一部分,或者共享存儲器5。例如,在步驟112中,基于之前在步驟110中存儲的表12來構造表18。為此,例如,先交換表12的第一列和第二列的內容,然后根據第一列的第二字節的值的升序或降序對該新表的行進行排序。在該實施方式中,所述行是根據第二字節的值的升序來排序的。
將步驟110執行預定次數t1次以存儲t1個不同的表12。優選地,次數t1等于嚴格為正的2的冪。同樣地,將步驟112執行t2次以存儲t2個不同的表18。t1和t2是正整數或零,并且t1大于或等于t2。在該實施方式中,t1和t2相等。在此,在每次執行步驟110時都改變數M和N,同時一直滿足數N嚴格大于數M。例如,在步驟110的每次迭代中,從可能值的預定范圍中隨機或偽隨機地抽取數M。然后,將同樣的過程應用于數N。通常,數M在4到16位之間變化,而數N在8到24位之間變化。由此獲得通過數M和N的值而彼此不同的表12。
所存儲的表12中的每個借助從0到t1-1的指數i來標識。同樣地,所存儲的表18中的每個都由指數來標識。表18的指數選擇為使得對應的表12和18具有相同的指數i。在下文中分別使用T[i]和L[i]來標注指數為i的對應的表12和18。
在步驟114中,終端隨機或偽隨機地抽取嚴格為正的k字節的整數。該整數構成數S。優選地,該數S是從僅含有2的嚴格為正的冪的集合中隨機或偽隨機地抽取的。數k要么是預定數,要么本身是從預定值的集合隨機或偽隨機地抽取的。類似地,在該實施方式中,終端還隨機或偽隨機地抽取嚴格為正的整數u。該數u表示連續使用同一表12的次數。然后,使得由此構造的數S和u可被解擾器1和解碼器3使用。為此,終端將數S和u以及數S的字節長度k存儲在共享存儲器5中。而且,在該實施方式中,數t1也存儲在存儲器5中。
在初始化階段之前、期間、或之后,在步驟100中,解擾器1接收多媒體內容的加密片段以及用于解密此加密片段的密鑰。如本領域技術人員已知的,加密片段和解密密鑰能夠一起地、即在同一時刻并且經由終端內部或外部的同一存儲介質或者同一通信網絡來被接收。加密片段和解密密鑰也能夠分別地、即在不同時刻或經由終端內部或外部的不同存儲介質或不同通信網絡來被接收。在此,如上所述,用于解密該加密片段的密鑰是在DRM許可證中被終端接收的。
在步驟100和初始化階段之后,在步驟120中,解擾器1用解密密鑰對片段進行解密,從而獲得未加擾片段,其中所述解密密鑰和片段都是在步驟100中接收的。
在步驟120之后,并且在將被解密的片段存儲在存儲器5中之前,在步驟130中,所述解擾器用不同的替代位替換未加擾片段的原始位以獲得被修改的片段。
更具體地說,解擾器1通過逐步構造的塊用替代位替換未加擾片段的所有原始位。這些位塊中的每個在下文中會被標注為Px。指數“x”表示塊Px的序號或者排序。在此,未加擾片段的第一位塊的序號為“1”,而最末位塊的序號為事先未知的整數“X”,該整數是在步驟130結束時確定的。指數“x”因此為1到X。所有的塊Px以指數x的順序進行的級聯等于未加擾片段。
為此,對于這些塊Px中的每個,解擾器1執行操作132,然后執行操作134。
在操作132中,解擾器1首先選擇在步驟110中存儲的表12中的一個,以使用其來用替代位替換該塊Px的原始位。
為此,在這里,解擾器1從存儲器5中提取數S及其字節長度k、數u、以及在步驟110中存儲的表12的個數t1。接下來,利用以下公式確定所選表T[i]的指數i:i=S[((x-1)div u)modulo k]modulo t1,其中
-S[j]是返回在數S中的指數為j的字節的函數,
-div表示歐幾里得除法運算。
一旦選擇了表T[i],包含在該表T[i]第一列中的位串14的位數M就是已知的。
接下來,在操作134中,解擾器1借助在之前執行操作132時所選擇的表T[i]來用替代位替換塊Px的原始位。更具體地,如果仍剩余有未加擾片段的至少M個原始位待被替換,那么解擾器1就利用剩余的待被替換的未加擾片段的最前M位來構造塊PX。該塊Px因此構成未加擾片段的M個連續原始位的位串。所述替換然后在于:
-在所選表12中搜索和讀取與具有和塊Px相同值的位串14關聯的位串16,和
-以讀取順序將所讀取的該位串16與之前所讀取的位串16級聯。
在該實施方式中,搜索是特別簡單且快速的,這是由于表T[i]的含有待讀取的位串16的行號能夠直接由塊Px的值來構造而不用參照該表的其他行的內容。例如,在表T[i]的數Px的行中讀取位串16。
由此,通過重復操作132和134,逐步地構造被修改的片段,其中每個塊Px都被各自的位串16所替換。
如果仍剩余有未加擾片段的少于M個原始位待被替換,那么這些剩余的待被替換的未加擾片段的原始位就由附加位來任意補充,以形成待像之前的塊那樣被處理的M個連續位的塊。
例如,在此,如果指數為i的表T[i]是圖2中的表,并且如果未加擾片段的塊Px等于八個原始位的位串14 0xA4,那么被修改的片段的指數為x的塊就是十六個替代位的位串16 0x5B|0x01。
接下來,在已經對所有塊Px執行了操作132和134時,在步驟140中,解擾器1僅將由此獲得的被修改的片段存儲在共享存儲器5中。
然后,在步驟150中,解碼器3從共享存儲器5中提取該被修改的片段。
接下來,在步驟160中,解碼器3用原始位替換被修改的片段的替代位,以由被修改的片段重構出未加擾片段。
更具體地說,解碼器3利用逐步構造的塊來用原始位替換被修改的片段的替代位的全部。這些塊中的每個在下文中會被標注為Px*。指數“x”表示塊Px*的序號或者排序。在此,被修改的片段的第一位塊的序號為“1”,而最末位塊的序號為事先未知的整數“X”,該整數是在步驟160結束時確定。指數“x”因此為1到X。塊Px*以指數x的順序進行的級聯等于被修改的片段。
為此,對于這些塊Px*中的每個,解碼器3執行操作162,然后執行操作164。
在操作162中,解碼器3首先確定在步驟130中選擇和使用的表T[i]的指數i。然后,該解碼器選擇與表T[i]形成一對對應的表的表L[i]。
為此,在這里,解碼器3從存儲器5中提取數S及其字節長度k、數u、以及在步驟110中存儲的表12的個數t1。接下來,利用以下公式確定表L[i]的指數i:i=S[((x-1)div u)modulo k]modulo t1,其中x為會在接下來的操作164中處理的塊Px*的序號。然后,解碼器3選擇指數為i的表L[i]。從此刻開始,表L[i]的位串16的位數N就是已知的。
接下來,在操作164中,解碼器3借助在之前執行操作162時所選擇的表L[i]來用原始位替換塊Px*的替代位。為此,該解碼器利用剩余的待被替換的被修改的片段的最前N位來構造塊Px*。塊PX*因此是N個連續替代位的位串。所述替換然后在于:
-在所選表L[i]中讀取與值等于塊Px*的值的位串16相關聯的位串14,和
-以讀取順序將所讀取的該位串14與之前所讀取的位串14級聯。
在表L[i]中讀取位串14在此是特別快的,這是由于位串16的第二字節允許直接構造表L[i]的含有待讀取的位串14的行號而不用參照該表的其他行的內容。例如,在表L[i]的行號與位串16的第二字節的值相等的行中讀取位串14。
通過重復操作162、164,解碼器逐步地重構未加擾片段。
在操作164中,如果解碼器3檢測到是被修改的片段的最后一個待處理的塊PX*,那么解碼器3就像之前的塊那樣地替換最后一個塊PX*。接下來,該解碼器僅將位串14的最前有用位級聯到之前的所讀取的位串14。為了確定該位串14的有用位的數量,解碼器3使用例如包含在未加擾片段的已獲得的那部分中的長度信息。該長度信息在未加擾片段中的位置是由用于未加擾片段的已知編碼格式來設置的。該長度信息還能夠是與每個片段的結構相關并且由所使用的編碼格式強制要求的預定信息。
例如,如果表L[i]是圖2的表,并且如果塊Px*是十六個替代位的位串0x5B|0x01,那么未加擾片段的重構的塊Px就是八個原始位的位串14 0xA4。
接下來,在已經對所有塊Px*執行了操作162和164時,并且在未加擾片段還未最終被存儲在終端的存儲器中之前,在步驟170中,解碼器3對獲得的未加擾片段進行解碼。在此,由解碼器獲得的未加擾片段絕不會被存儲在共享的存儲器中、特別是存儲器5中。
最后,在步驟180中,解碼器3將被解碼的片段傳輸到能夠播放多媒體內容的該被解碼的片段以使其能夠被人類直接感知和理解的多媒體設備。
本發明的許多其它實施例是可能的。例如,多媒體內容是由條件訪問系統(Conditional Access System,縮寫為CAS)保護而被提供的。因此使用條件訪問系統領域的術語。例如,有興趣的讀者可以在以下文獻中找到更全面的描述:“條件訪問系統的功能模型”,EBU評論,技術歐洲廣播聯盟,布魯塞爾,BE,第266號,1995年12月21日。在這種情況下,內容密鑰通常被稱作控制字,并且是在授權控制消息(Entitlement Control Message,縮寫為ECM)中被接收的。
在另一個實施方式中,多媒體內容是由任何其它類型的內容保護系統保護而被提供的,例如不執行任何訪問權限管理的更傳統的數據保護系統。在這種情況下,能夠在任何其他類型的傳輸消息中接收內容密鑰。
初始化階段能夠由其他事件觸發。例如,響應于執行用于訪問終端的受保護的內容的模塊來觸發步驟110和112的執行。初始化階段還能夠周期性地,或在之前構造的表12和18或者數S的預定使用次數之后來觸發。
作為變型,在步驟110和112中,表12和18能夠被預先計算,然后在存儲在存儲器9中的指令的開發名下是靜態并且集成到所述指令中的。
作為變型,數M和N在步驟110的每次執行中都是恒定的。例如,數M被選擇為等于8,而數N被選擇為等于大于或等于16的8的整數倍。在另一變型中,僅數N在步驟110的執行中是變化的,而數M保持不變。
用于形成表L[i]的指數的、該表的每個位串16的M個位不一定是每個位串16的最后M個位。實際上,從解碼器3獲悉這些M個位的位置的時刻開始,這些M個位就能夠位于位串16中的任一位置處。例如,這些M個位僅占據位串16中偶數指數的位置。
在另一變型中,表L[i]的第一列簡單地按照位串16的值的升序或降序來排序,并且沒有使用之前對于表18所描述的索引。
在另一個實施方式中,在執行步驟110之后省略了步驟112。僅第一表12被存儲以使其不僅能夠被解擾器1而且能夠被解碼器3所用。因此,在該實施方式中,在操作134和164中使用相同的表12。在操作164中,例如通過以預定順序逐次地查閱存在于表12的第二列中的位串16來在該表的第二列中尋找塊Px*的值。
在另一個實施方式中,在執行步驟110之后,將步驟112執行t2次,使得僅存儲t2個表18,其中t2嚴格為正且嚴格小于t1。例如,對于處于[0;t2-1]中的指數i的值,針對每個表T[i]構造表L[i]。相反,對于處于[t2;t1-1]中的指數i的值,則僅構造表T[i]。在后一種情況下,表T[i]被存儲以不僅可被解擾器1而且可被解碼器3所用。之后,如果在步驟162中,指數i的值處于[0;t2-1]中,那么在操作164中就在與表T[i]對應的表L[i]中尋找塊Px*的值。相反,如果在步驟162中,指數i的值處于[t2;t1-1]中,那么在操作164中就在表T[i]的第二列中尋找塊Px*的值。
作為變型,在步驟114中,為了使生成的數S、k、u可被解擾器1和解碼器3所用,終端同時將這兩者存儲在專用于解擾器1的存儲器中和專用于解碼器3的存儲器中。
在一個簡化的實施方式中,t1等于1,即,單個的表12用于創建所有被修改的片段。
操作132和162能夠以不同的方式來執行。例如,能夠省略數u的使用。在這種情況下,利用以下公式確定所選的表12或18的指數i:i=S[(x-1)modulok]modulo t1。還可以在不使用數S的情況下確定指數i。例如,在后一種情況下,使用以下公式:i=x modulo t1。在這種情況下,在步驟114中,數S、u和k未被構造。
在另一個實施方式中,步驟110、112和114被省略。由此,在步驟130開始之前不存儲任何表12、18。在這種情況下,在操作132中,隨著操作132的執行逐漸地構造表12。例如,在此假定M和N是已知常數并且表12最初是空的。接著,如果未加擾片段的下一個塊Px的值不對應于已經包含于表12中的任何位串14,那么就生成位串16然后將其以與塊Px的原始位相關聯的方式存儲在表12中。例如如此生成位串16:
a)通過從所有2N個可能的位串16的集合中隨機或偽隨機地抽取位串16,然后
b)如果由此隨機抽取的位串16尚未與另一位串14個相關聯,那么將其在表12中與該位串14相關聯,否則,重復進行操作a)和b)。
這樣,逐步構造稱為動態表的表格。該動態表與表12的不同之處在于其可以不含有全部可能的位串14。在此,該動態表僅含有對于處理未加擾片段所需的位串14。接著,在步驟162中,例如像針對步驟112所描述的那樣來構造對應的動態表。
在另一個實施方式中,用對加密函數F和解密函數F-1的使用來替代對表12、18的使用。更具體地,函數F對位串14的位執行不同的算術和邏輯運算,以生成與其關聯的位串16。函數F-1是函數F的逆函數。因此,其返回與位串16相關聯的位串14的值。函數F和F-1因此用于分別在操作134和164的執行中來代替表12、18。
在另一個實施方式中,在步驟130中不由替代位來替換原始位的全部。為此,例如,在步驟134中,僅塊Px的預定部分形成上述替換的對象。對于其他塊Px而言,將原始位直接與前面的塊的處理結果級聯。所替換的塊的預定部分能夠針對被處理的每個未加擾片段進行修改。例如,對于偶數未加擾片段,所述方法將操作132和134應用于兩個塊Px中的僅一個,而對于奇數片段,則應用于三個塊Px中的僅一個。在步驟160中,解碼器3實現對在步驟130中所實現的那些替換的反向替換。因此,如果在步驟130中沒有用替代位來替換原始位的全部的話,那么在步驟160中,塊的僅一部分被標識為替代位塊Px*。僅這些被標識的塊Px*形成上述替換的對象,而其他位則直接與前面的塊的處理結果級聯。
作為變型,在步驟134中,解擾器1形成長度大于M的塊Px,并且用位串16替換該塊Px的僅M個原始位的位串。該M個原始位的位串在每個塊Px中位于同一預定位置處。例如,該M個原始位的位串位于塊Px的開始處。這回到在每個位串16之間將原始位的位串插入到被修改的片段中。在步驟164中,解碼器3形成預定長度大于N的塊Px*,并且替換這些位的僅與位串16對應的預定部分。塊Px*的剩余位不變。塊Px的長度以及所替換的M個原始位的位串在塊Px中的位置每個都能夠是恒定或者變化的。
還作為變型,在操作134中,當仍有未加擾片段的少于M個原始位待被替換時,不替換這些最后的原始位,而是將其直接與之前的所讀取的位串16級聯。在這種情況下,在操作164中,最后一個塊PX*具有小于M個位,并且不替換這些位,而是將其直接與之前的所讀取的位串14級聯。
在另一變型中,在步驟140中,被修改的片段與未加擾片段的或者其最后一個塊PX的以位計的有用長度一起存儲在存儲器5中。接著,在步驟150中,解碼器3于是從存儲器5中提取該被修改的片段和該有用長度。然后,在操作164中,解碼器3如替換前面的塊那樣替換最后一個塊PX*,但是僅將由此讀取的位串14的有用的最前位與之前的所讀取的位串14串聯。有用的最前位的數目由步驟150中所提取的有用長度來確定。