專利名稱:用于產(chǎn)生控制字的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)字權(quán)限管理(DRM),更具體地,涉及針對DRM受保護(hù)數(shù)字內(nèi)容的控制字的產(chǎn)生。
背景技術(shù):
本部分g在向讀者介紹與所描述的和/或以下要求保護(hù)的本發(fā)明的各個方面相關(guān)的技術(shù)的各個方面。這個討論被認(rèn)為是有助于向讀者提供背景信息,以促進(jìn)對本發(fā)明的各個方面進(jìn)行更好地理解。因此,應(yīng)該理解,從上述方面來閱讀這些記載,而不應(yīng)將這些記載當(dāng)作是對現(xiàn)有技術(shù)的承認(rèn)。DRM解決方案通常被認(rèn)為是用戶不友好的,共同的抱怨是DRM禁止由1998年的數(shù)字千禧年版權(quán)法案[參見 http://www. copyright, gov/legislation/dmca. pdf]定義的公 平使用。在多種事項(xiàng)中,終端用戶引用或使用作品(即內(nèi)容項(xiàng))摘錄以進(jìn)行批評、用于學(xué)術(shù)等的權(quán)利被認(rèn)為是公平使用的一部分。然而,這對于現(xiàn)有技術(shù)的DRM解決方案而言是不可能的。因此,需要DRM解決方案能夠保護(hù)內(nèi)容項(xiàng)免受非法或未授權(quán)使用。允許終端用戶提取內(nèi)容項(xiàng)的一部分,并且向其它終端用戶再分發(fā)該部分,然后這些其它終端用戶可以訪問該部分,而不論這些終端用戶是否有權(quán)訪問整個內(nèi)容項(xiàng)。使得互相串通的終端用戶難以通過拼接ー組作品摘錄來自由地分發(fā)整個作品。這可以有利地通過將內(nèi)容分割為多個塊來實(shí)現(xiàn),其中使用從針對內(nèi)容的主控制字產(chǎn)生的控制字對每個所述塊加擾。然后,可以由第一用戶向第二用戶發(fā)送伴隨有許可證的ー個或多個塊,該許可證包括所產(chǎn)生的非主控制字的控制字。通過使用適當(dāng)算法來產(chǎn)生控制字,可以確定第二終端用戶不能夠訪問內(nèi)容的其它塊?,F(xiàn)有技術(shù)提供了用于產(chǎn)生控制字(加密密鑰)的多種解決方案。例如,US 2006/0034453描述了ー種系統(tǒng),其中使用哈希值來加密塊,在此之后,對已加密塊和該哈希值進(jìn)行哈希計(jì)算,以產(chǎn)生用于加密后續(xù)塊的哈希值。此外,EP 2197145描述了密鑰產(chǎn)生系統(tǒng),其中通過組合塊與用于在前塊的密鑰來獲得密鑰。因此,這些系統(tǒng)的問題在于不可能將解密限制在ー個“方向”。Marc Joye 和 Sung-Ming Yen 在 One-Way Cross-Trees and Their Applications中,D. Naccache 和 P. Pallier 在 Eds. , Public Key Cryptography, vol. 2274 of LectureNotes in Computer Science, pp. 346-356, Springer Verlag, 2002 中在一定程度上解決了這個問題。他們的解決方案是從ー個秘密開始,針對該秘密,對左半邊或右半邊進(jìn)行哈希計(jì)算,以產(chǎn)生新秘密,從而產(chǎn)生秘密的ニ叉樹。然后,例如可以對每個秘密進(jìn)行哈希計(jì)算,以產(chǎn)生密鑰。這種解決方案使得不可能從所接收的密鑰中產(chǎn)生另外的密鑰。盡管該樹提供了用于密鑰導(dǎo)出的不同路徑,但是該過程總是按照從上至下的方向,即從樹的節(jié)點(diǎn)開始,往下至下級節(jié)點(diǎn)。
本發(fā)明提供了一種備選方案,該備選方案使用兩個或更多個秘密,對于這些秘密,以相反方向執(zhí)行導(dǎo)出過程,這使得將解密密鑰的導(dǎo)出限制在若干相反“方向”上成為可能。
發(fā)明內(nèi)容
在第一方面,本發(fā)明涉及用于產(chǎn)生η個控制字的設(shè)備,所述η個控制字用于內(nèi)容項(xiàng)的η個連續(xù)単元的加密或解密,其中η是整數(shù)。設(shè)備包括處理器,所述處理器配置為獲取第一密鑰Kstart和第二密鑰Kmd ;將第一單向函數(shù)迭代地應(yīng)用于第一密鑰Kstart來產(chǎn)生η個子密鑰的第一有序集合,以及將第二單向函數(shù)迭代地應(yīng)用于第二密鑰Kmd來產(chǎn)生η個子密鑰的第二有序集合;通過迭代地使用組合操作,根據(jù)來自所述η個子密鑰的第一有序集合的子密鑰i和來自所述η個子密鑰的第二有序集合的子密鑰n-1-i產(chǎn)生控制字i,以產(chǎn)生η個控制字,其中i <η-1 ;以及輸出η個產(chǎn)生的控制字在第一優(yōu)選實(shí)施例中,第一單向函數(shù)和第二單向函數(shù)中的至少ー個函數(shù)是哈希函數(shù)。在第二優(yōu)選實(shí)施例中,第一單向函數(shù)和第二單向函數(shù)中的至少ー個函數(shù)是公鑰加密。在第三優(yōu)選實(shí)施例中,組合操作是X0R。在第四優(yōu)選實(shí)施例中,組合操作是拼接、公鑰加密或?qū)ΨQ密鑰加密。在第五優(yōu)選實(shí)施例中,處理器還配置為將內(nèi)容項(xiàng)分離為多個部分,每部分包括多個單元;以及針對每部分獨(dú)立地產(chǎn)生控制字。在第六優(yōu)選實(shí)施例中,處理器還配置為產(chǎn)生針對內(nèi)容項(xiàng)的許可證,該所述內(nèi)容項(xiàng)的単元i是已經(jīng)使用產(chǎn)生的控制字i加密的,許可證包括第一密鑰Kstart、第二密鑰Kstart以及整數(shù)η ;向接收方發(fā)送許可證。有利地,該內(nèi)容項(xiàng)是較長內(nèi)容項(xiàng)的摘錄(excerpt),所述較長內(nèi)容項(xiàng)是使用根據(jù)第三密鑰和第四密鑰產(chǎn)生的控制字來加密的,以及處理器還配置為將第一單向函數(shù)迭代地應(yīng)用于第三密鑰來產(chǎn)生第一密鑰Kstart ;以及將第二單向函數(shù)迭代地應(yīng)用于第四密鑰來產(chǎn)生第二密鑰Kmd。在第七優(yōu)選實(shí)施例中,內(nèi)容項(xiàng)是加密的,以及處理器還配置為使用產(chǎn)生的控制字來解密已加密的內(nèi)容項(xiàng)。在第二方面,本發(fā)明涉及用于產(chǎn)生η個控制字的方法,所述η個控制字用于內(nèi)容項(xiàng)的η個連續(xù)単元的加密或解密,其中η是整數(shù)。設(shè)備獲取第一密鑰Kstart和第二密鑰Kmd ;將第一單向函數(shù)迭代地應(yīng)用于第一密鑰Kstart來產(chǎn)生η個子密鑰的第一有序集合,以及將第二單向函數(shù)迭代地應(yīng)用于第二密鑰Kmd來產(chǎn)生η個子密鑰的第二有序集合;通過迭代地使用組合操作,根據(jù)來自所述η個子密鑰的第一有序集合的子密鑰i和來自所述η個子密鑰的第二有序集合的子密鑰n-1-i產(chǎn)生控制字i,以產(chǎn)生η個控制字,其中O彡i彡η-I ;以及輸出η個產(chǎn)生的控制字。在第一優(yōu)選實(shí)施例中,第一單向函數(shù)和第二單向函數(shù)中的至少ー個函數(shù)是哈希函數(shù)。在第二優(yōu)選實(shí)施例中,組合操作是X0R。在第三優(yōu)選實(shí)施例中,方法還包括以下步驟將內(nèi)容項(xiàng)分離為多個部分,每部分包括多個單元;以及其中針對每部分,獨(dú)立地執(zhí)行第二方面的方法的步驟。
在第三方面,本發(fā)明涉及一種產(chǎn)生針對內(nèi)容項(xiàng)的內(nèi)容許可證的方法,其中,所述內(nèi)容項(xiàng)是使用由第二方面的方法產(chǎn)生的控制字來加密的。設(shè)備產(chǎn)生針對內(nèi)容項(xiàng)的許可證,該所述內(nèi)容項(xiàng)的單元i是已經(jīng)使用產(chǎn)生的控制字i加密的,所述許可證包括第一密鑰Kstart、第ニ密鑰Kstart以及整數(shù)η ;以及向接收方傳送許可證。在第一優(yōu)選實(shí)施例中,內(nèi)容項(xiàng)是較長內(nèi)容項(xiàng)的摘錄,所述較長內(nèi)容項(xiàng)是使用從第三密鑰和第四密鑰產(chǎn)生的控制字來加密的,以及其中所述方法還包括以下步驟通過將第ー單向函數(shù)迭代地應(yīng)用于第三密鑰來產(chǎn)生第一密鑰Kstart ;以及通過將第二單向函數(shù)迭代地應(yīng)用于第四密鑰來產(chǎn)生第二密鑰Kmd。
現(xiàn)在參考附圖,以非限制性示例的方式描述本發(fā)明的優(yōu)選特征,其中圖I示出了使用本發(fā)明優(yōu)選實(shí)施例的示例場合;圖2示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的加擾設(shè)備;圖3示出了根據(jù)本發(fā)明第一優(yōu)選實(shí)施例的加擾密鑰的產(chǎn)生;圖4示出了根據(jù)本發(fā)明第一優(yōu)選實(shí)施例的摘錄的產(chǎn)生、發(fā)送和接收。
具體實(shí)施例方式本發(fā)明的主要思想在于產(chǎn)生可以傳送至接收方的至少ー個加擾密鑰(即,加密和解密密鑰),同時確保接收方不能夠使用所述至少一個加擾密鑰來產(chǎn)生另外的加擾密鑰。圖I示出了示例使用場合。將內(nèi)容項(xiàng)劃分為多個塊110。由塊索引(j)標(biāo)識每個塊(Uj) 110,有利地但非必要地,所述塊索引(j)可以是順序的。因此,內(nèi)容100包括塊集合{U。,Ui,Ug,· · ·,UnI ο此外,參考圖2描述對內(nèi)容100的加擾(也被稱作加密),其中圖2示出了包括密鑰發(fā)生器210和擾碼器220的加擾設(shè)備200??梢詫⒓訑_設(shè)備200實(shí)現(xiàn)為一個或多個處理器。本領(lǐng)域技術(shù)人員應(yīng)意識到,對于對稱加密算法而言,加密與解密實(shí)質(zhì)上是相同的;它們均使用相同的密鑰和相同的算法來處理輸入數(shù)據(jù),以產(chǎn)生輸出數(shù)據(jù)。為了加擾內(nèi)容100,分離地對內(nèi)容100的塊110進(jìn)行加擾。密鑰發(fā)生器210產(chǎn)生針對要加擾的每個塊110的塊控制字CW??梢詢?nèi)部地產(chǎn)生密鑰發(fā)生器210操作所基于的塊索引(如果索引是順序的),塊索引可以一直到例如從內(nèi)容100獲得的最末塊索引;也可以在對要加擾的塊進(jìn)行檢查之后,由控制電路(未示出)或擾碼器提供塊索引。向擾碼器220傳送所產(chǎn)生的塊控制字CWj,可以連同對應(yīng)的塊索引來傳送,但是擾碼器220也可以從控制電路接收塊索引。另ー種可能方式是針對密鑰發(fā)生器和擾碼器的同步,在這種情況下,可以在擾碼器需要時傳送塊CW。擾碼器220接收塊Uj,使用塊CW加擾塊Uj,以及輸出受保護(hù)的塊 I3Ujtl此外,在圖I中也示出了 將上行中的內(nèi)容110的塊ル加擾為下行中受保護(hù)內(nèi)容120的受保護(hù)塊Ujl30。 本領(lǐng)域技術(shù)人員應(yīng)意識到,當(dāng)加擾算法是對稱的時,擾碼器與解擾器之間沒有結(jié)構(gòu)上的差異。實(shí)際上,擾碼器與解擾器均獲取輸入數(shù)據(jù),并使用實(shí)質(zhì)上相同的算法與相同的密鑰來產(chǎn)生輸出數(shù)據(jù);唯一的不同之處在于一個采用明文來產(chǎn)生密文,而另ー個則相反。因此,在已作必要修正情況下,圖2也可以示出了解擾設(shè)備200。第一優(yōu)詵實(shí)施例圖3示出了根據(jù)本發(fā)明第一優(yōu)選實(shí)施例的加擾密鑰的產(chǎn)生,而圖4則示出了根據(jù)本發(fā)明第一優(yōu)選實(shí)施例的摘錄的產(chǎn)生、發(fā)送及接收。優(yōu)選地,產(chǎn)生針對內(nèi)容的兩個隨機(jī)主密鑰Kstart和Kmd。如果要加擾的塊的數(shù)目是η,則通過單向(one-way)函數(shù)h (有利地是哈希函數(shù),但是可能是其它函數(shù),比如通過使用公鑰加密算法的公鑰進(jìn)行的加密)對每個主密鑰進(jìn)行至少η-I次處理,得到根據(jù)每個主密鑰產(chǎn)生的η個子密鑰=Ksl-Ksn和Κε1-Κεη。為說明目的,末端密鑰可以是回轉(zhuǎn)(turned around)的,使得Kel在結(jié)尾端,而Ken在起始端。
然后,對于每個塊,將密鑰Ksi與密鑰Ke(n_i)組合,以產(chǎn)生塊CW。在子密鑰的長度與加擾算法所需的密鑰長度相對應(yīng)的情況下,組合操作實(shí)際上可以是任何算木操作,比如公鑰或?qū)ΨQ密鑰加密、任何ニ進(jìn)制操作、拼接(concatenation)操作。優(yōu)選的組合操作是異或(XOR)。以數(shù)學(xué)符號的形式,第一塊具有索引0,最末塊具有索引η-I。通過以下公式,根據(jù)兩個主密鑰產(chǎn)生每個子密鑰CW CWi = H(Kstart)十げ-沐—),I= O... n-l,(等式 I)其中h是單向函數(shù)。hn指示單向函數(shù)的m次迭代。然后,可以向終端用戶發(fā)送已加擾內(nèi)容,該終端用戶還可以接收包括主密鑰Kstart和KEnd的通用內(nèi)容許可證(不一定與內(nèi)容一起接收),該通用內(nèi)容許可證是使用優(yōu)選地對用戶而言特定的用戶密鑰Ku來加密的;有利地,用戶密鑰是非對稱加密系統(tǒng)中的用戶公鑰。為了解擾內(nèi)容,用戶首先使用其用戶密鑰Ku(或相應(yīng)的私鑰)解密許可證,然后使用主密鑰Kstart和KEnd產(chǎn)生用于解擾內(nèi)容的子密鑰。使用等式I的公式產(chǎn)生子密鑰。在步驟S41,當(dāng)?shù)谝挥脩粝Mc第二用戶共享內(nèi)容的摘錄(從塊X至塊x+m的m+1個連續(xù)塊)時,第一用戶選擇這些連續(xù)塊。然后,在步驟S42,第一用戶設(shè)備產(chǎn)生兩個派生密鑰 K’ start 和 K’ End K,start = hx (Kstart),K,End = hm(KEnd)。應(yīng)意識到,K’ start是針對摘錄的第一塊的加擾密鑰,K’ End是針對摘錄的最末塊的加擾密鑰。然后在步驟S43,將兩個派生密鑰嵌入摘錄許可證中,該摘錄許可證是使用針對第二用戶的(対稱的,或者優(yōu)選地非対稱的)加密密鑰來加密的。然后在步驟S44,第一用戶設(shè)備向第二用戶發(fā)送摘錄和摘錄許可證。在步驟S45接收到摘錄和摘錄許可證時,在步驟S46,第二用戶設(shè)備(使用對應(yīng)的密鑰)解密摘錄許可證。然后在步驟S47,將派生密鑰哈希m次,并進(jìn)行組合,以使用與等式I的公式相類似的公式(用K’ start替代Kstart, K’ End替代KEnd,X替代i,以及n-x-m替代n-i)來產(chǎn)生針對摘錄的塊的子密鑰。換句話說,如下計(jì)算每個子密鑰Kbj = htx(K'start)十 hx+m_j(K'End) J= X... x+m ο然后,在步驟S48,可以使用子密鑰來解擾摘錄,并呈現(xiàn)。本發(fā)明的密鑰產(chǎn)生的優(yōu)點(diǎn)在于摘錄許可證僅包括兩個密鑰,而不論摘錄的長度如何。可以根據(jù)這兩個(派生)密鑰容易地計(jì)算針對摘錄內(nèi)的塊的所有子密鑰。
此外,對所共享部分內(nèi)的子密鑰的知曉并不允許計(jì)算該摘錄外部的子密鑰。為計(jì)算這些“外部”的子密鑰,必須在知曉K’ start的情況下計(jì)算針對索引X之前的塊的子密鑰,并在知曉K’md的情況下計(jì)算針對索引x+m之后的塊的子密鑰,但是這要求將單向函數(shù)h反轉(zhuǎn),而這在計(jì)算上是不可行的。具體地,第一優(yōu)選實(shí)施例采用未加密的內(nèi)容流作為輸入,該內(nèi)容流是運(yùn)動圖像專家組2(MPEG2)內(nèi)容流。MPEG2是用于數(shù)字廣播內(nèi)容的公知的編碼和壓縮標(biāo)準(zhǔn),在ISO/_lEし 13818-1, Information technology—generic coding of moving pictures andassociated audio information—Part I :Systems,2007 中1有所描述。MPEG2 流包括打包的基本流(Packetized Elementary Stream, PES),所述打包的基本流包括固定或可變大小的幀。將每個PES包分解為的固定大小(188字節(jié))的傳輸包,稱為MPEG2傳輸流(TS),包括音頻數(shù)據(jù)和視頻數(shù)據(jù)的組合。當(dāng)保護(hù)MPEG2內(nèi)容流時,使用控制字(CW)加密每個TS包。CW以每10秒的周期(即密碼周期持續(xù)10s)發(fā)生改變。在機(jī)頂盒的體系結(jié)構(gòu)中,機(jī)頂盒的安全模塊接收包括已加密CW的授權(quán)控制消息(Entitlement Control Message, ECM)。安全模塊向解擾器模塊傳送正確的CW(ODD或EVEN),然后解擾器模塊在適當(dāng)?shù)臅r間向已加擾TS施加ODD/EVEN Cff,并輸出已解擾TS包。每個內(nèi)容提供商具有特定的秘密或者公共信息Ip,以及每個用戶從中心接收經(jīng)證明的1024比特RSA密鑰對(Kpub,Kpriv)。內(nèi)容提供商的密鑰Kp對中心而言是已知的;用戶私鑰Kpriva與Ip被安全地存儲在用戶的機(jī)頂盒中。此外,在第一優(yōu)選實(shí)施例中-單向函數(shù)h是SHAl哈希算法。-TS 加擾算法是 CBC 模式的 AES-128。參見 NIST,F(xiàn)IPS PUB 197," AdvancedEncryption Standard(AEbノ," November 2001 http://csrc.nist.gov/publications/fips/fipsl97/fips_197· pdf,以及S. Frankel,R. Glenn和S. Kelly, " The AES-CBC CipherAlgorithm and Its Use with IPsec, " RFC 3602, Internet Soc., Sept. 2003 ;http://rfc. sunsite. dk/rfc/rfc3602. html。-許可證加密算法是具有1024比特密鑰長度的RSA最優(yōu)非対稱加密填充(OAEP)。對于更多細(xì)節(jié),參見RFC 3560,July 2003,R. Housley, Use of the RSAES-0AEPKey Transport Algorithm in the Cryptographic Message Syntax (CMS) ;M. Bellare和 P. Rogaway Optimal Asymmetric Encryption-How to Encrypt with RSA. In A.DeSantis (ed. )EUR0CRYPT 1994. LNCS, vol. 950,pp. 92-111. Springer, Heidelberg (1995);以及 RSA Laboratories, PKCS #1 v.2. I RSA Cryptography Standard, June 2002。作為說明性示例,內(nèi)容是兩小時的電影。這意味著使用(2h)*(60min/h)*(60s/min)*(lCW/10s) = 720 個 CW, CWtl-CW719,來對內(nèi)容加擾。此外,CW’和CW”是由中心隨機(jī)產(chǎn)生的兩個128比持主密鑰。使用以下公式(根據(jù)等式I而適配的),從兩個主密鑰產(chǎn)生每個CWi CWi = Hi(IpWCWt) f 例Crツ,Z= O…719。對密碼周期i內(nèi)的TS包加擾,TS_ENC = AES-128-ENC(Cffi, TS)。給定SHAl的輸出是160比特,則CWi也是160比特。為了適合AES密鑰大小(128比特),例如通過丟棄32個最高位或32個最低位來將每個CWi截短為128比特。
將主密鑰CW’和CW”嵌入到ー個ECM = {CW,,CW” },該ECM還包括128比特的提供商標(biāo)識符信息PID。PID有助于了解哪個提供商信息Ip與哪個內(nèi)容一起使用。ECM還包括必要的CW的總數(shù)目(該2比特域有助于計(jì)算哈希索引)。在向用戶分發(fā)內(nèi)容之前,使用用戶公鑰 Kpuba 對 400 比特 ECM = {CW,,CW”,Cff_count = 720,PID}進(jìn)行加密,即 ECM_ENC=RSA-1024-ENC (Kpuba, ECM)。為了解擾內(nèi)容,安全模塊使用私有用戶密鑰Kpriva來解密ECM。然后,安全模塊使用PID信息來了解要使用哪個提供商信息Ip。然后,安全模塊使用與中心使用的算法相同的CW產(chǎn)生算法,根據(jù)主密鑰Cr和CW”、提供商信息Ip和CW_count來產(chǎn)生針對已加擾TS包的控制字CWi,該已加擾TS包構(gòu)成了受保護(hù)的多媒體內(nèi)容。為了保持CW計(jì)算量較低,即避免多次產(chǎn)生相同值,有利地,如下產(chǎn)生CW I-在接收到主控制字CW’ and CW”時,從CW”產(chǎn)生所有控制字的“第二部分”CW' = h619-i(Ip| |CW”), 其中,i開始于CW_count_l = 619,并遞減直到達(dá)到零。2-將這些第二部分與第一 CW的“第一部分”CW’ = CW’ ^ 一起存儲在存儲器中的列表L中,L = {CW,,CW” ο, CW” い· · CW” 619 = CW” }(對于2小時電影,這需要大約12kb(721*16 = 11586字節(jié))的存儲器)。3-為了計(jì)算第一 CW,,計(jì)算CPf0 = CW'o C”0,其中從L中獲得CW’Q和CW”。。4-由后續(xù)的控制字的第一部分來更新列表L中的CW’。,即CW’Q— h(Ip I |CW’)=Cff105-對于每個已加擾TS包,重復(fù)步驟3-4,直到產(chǎn)生最后的CW,CW619=CW619 @ C『仍為止。本領(lǐng)域技術(shù)人員應(yīng)意識到,該方法需要一些存儲器空間,但是卻節(jié)約了多個計(jì)算步驟。假設(shè)第一用戶希望與第二用戶共享10分鐘的內(nèi)容摘錄,其中摘錄位于從電影開頭算起的60分鐘處。已使用6*10 = 60個CW加擾了該10分鐘的摘錄。則摘錄起始和結(jié)束Cff分別是Cff360和Cff4190針對該摘錄,第一用戶的安全模塊如下根據(jù)主密鑰CW’和CW”產(chǎn)生兩個摘錄密鑰CW_e,和 CW_e” CW_e,= h36°(Ip| |CW,),CW_e” = h619-419 (Ip | | CW,,) = h300 (Ip | | CW,,)。將密鑰CW_e ’ 和 CW_e ” 嵌入摘錄 ECM 中,EECM = {Cff_e ’,Cff_e ”, Cff_count = 60,PID}。在向第ニ用戶分發(fā)已加擾摘錄之前,安全模塊使用第二用戶的公共密鑰Kpubb加密EECM,即 EECM_ENC = RSA-1024-ENC (Kpubb, EECM)。在接收到已加擾摘錄時,第二用戶的安全模塊使用第二用戶的私鑰Kprivb解密1024比特EECM_ENC。然后如下計(jì)算針對該部分內(nèi)的密鑰周期j中的TS包的每個控制字CWJ:CWj = hi(Ip\\CW_e') h59-j(Ip\\CW_e''),j= O... 59。然后,使用這些控制字來解擾已加擾摘錄,并向第二用戶呈現(xiàn)。
本領(lǐng)域技術(shù)人員應(yīng)意識到,在現(xiàn)有技術(shù)的系統(tǒng)中,用于加擾/解擾的CW是隨機(jī)產(chǎn)生的,并且彼此獨(dú)立。安全模塊不得不接收和解密針對每個TS包的ECM,這使得針對受保護(hù)內(nèi)容的要處理數(shù)百個ECM(針對2小時電影,至少720個ECM)。然而根據(jù)本發(fā)明的第一實(shí)施例,對于每項(xiàng)內(nèi)容,安全模塊只需要單個ECM或EECM,因?yàn)榭梢允褂迷揈CM/EECM來產(chǎn)生內(nèi)容解擾所必要的CW。因此應(yīng)意識到,本發(fā)明的第一實(shí)施例可以節(jié)約傳輸帶寬。第二優(yōu)詵實(shí)施例盡管第一優(yōu)選實(shí)施例提供的解決方案是緊湊的,但是卻不能抵抗互相串通(collusion)攻擊。訪問內(nèi)容的兩個非連續(xù)摘錄的攻擊者可以產(chǎn)生針對兩個摘錄之間的所有包的控制字;如果摘錄與內(nèi)容的起始與結(jié)尾相對應(yīng),則可以產(chǎn)生針對內(nèi)容的所有控制字。
第二優(yōu)選實(shí)施例通過將內(nèi)容分離為多個邏輯部分,來抵抗互相串通攻擊。每個部分包括少于整個內(nèi)容但多于單個塊的內(nèi)容。作為說明性示例,每個部分是10分鐘長度(SP,60個塊),但是也可以更短或更長。每個部分的控制字是獨(dú)立于其它部分的控制字而產(chǎn)生的,就好像每個部分是整個內(nèi)容項(xiàng)一祥。換句話說(繼續(xù)電影的示例),對于電影內(nèi)容的每個10分鐘,中心產(chǎn)生兩個128比特主密鑰CW’ [k]和CW”[k],k = O.. 11(這表示了針對2小時電影具有24個主密鑰)。使用如下公式從主密鑰產(chǎn)生每個CWi [k]CWi[k] = Hi(IpWCWlkj) h^flpWCW'lk]) , ι= 0... 59, k=0... 11??梢?,產(chǎn)生了兩種類型的周期10秒鐘的較短密碼周期和10分鐘的較長密碼周期,在10秒鐘的較短密碼周期上,CW改變(公式中的索引i改變,而k保持固定),在10分鐘的較長密碼周期上,主密鑰CW’和CW”改變(公式中的索引k改變;在周期的開始,將i重置為O)。將密碼周期U,k}內(nèi)的 TC 包加擾為 TS_ENC = AES-128-ENC(CWi[k],TS)。在這種情況下,不是針對整個內(nèi)容具有ー個唯一 ECM,而是存在12個ECM,每個ECM包括ー對不同的主密鑰;ECMk = {CW,[k],CW” [k],Cff_count = 60,PID}。應(yīng)注意,部分還可能具有不同的長度,只要相應(yīng)地調(diào)節(jié)CW_count。如果用戶只能共享比10分鐘短的摘錄(并且不跨越部分邊界),則僅需要傳送ー個EECM。假設(shè)第一用戶希望與第二用戶共享內(nèi)容的5分鐘部分,該5分鐘部分位于從電影開始算起的60分鐘處。利用根據(jù)主密鑰{CW’ [6],CW” [6]}(因?yàn)檎浳挥凇拜^高”的密碼周期7)導(dǎo)出的6*5 = 30個CW來保護(hù)5分鐘的摘錄。摘錄的起始與結(jié)束CW分別是CWQ[6]和 CW29 [6]。安全模塊如下根據(jù)主密鑰CW’ [6]和CW” [6]產(chǎn)生兩個密鑰CW_p’和CW_p” CW_p’ = h°(Ip |CW’ [6]) = Cff0 [6] = CW’ [6],CW_p” = h59-29(Ip| |CW” [6]) = h3CI (Ip I I CW” [6])。然后,將密鑰CW_p’ 和 CW_p”嵌入 EECM,得到{CW_p’,Cff_p”, Cff_count = 30, PID} 在向第二用戶分發(fā)受保護(hù)摘錄之前,使用第二用戶的公共密鑰Kpubb加密EECM,即EECM_ENC = RSA-1024-ENC(Kpubb, EECM)。在接收到受保護(hù)摘錄時,第二用戶的安全模塊使用第二用戶的私鑰Kprivb來解密1024比特的EECM_ENC,如下產(chǎn)生針對密碼周期{j,6}中的TS包的控制字CWj [6]
CWj [6] = ^'(IpWCWJJ’) h29-j(Ip\\CWjj”) j= 0...29。對于使用了本發(fā)明第二優(yōu)選實(shí)施例來保護(hù)的摘錄,訪問內(nèi)容的兩個非連續(xù)摘錄的攻擊者不能夠重建位于兩個摘錄之間的TS包的控制字,除非這些摘錄屬于相同的主密鑰密碼周期。本發(fā)明還涉及諸如DVD或⑶-ROM之類的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品存儲指令,當(dāng)處理器執(zhí)行所述指令時,使得處理器執(zhí)行本發(fā)明的方法。應(yīng)意識到,本發(fā)明可以使用戶能夠共享受保護(hù)內(nèi)容的部分,而不會使整個內(nèi)容對于接收方是可獲得的。本發(fā)明的解決方案在計(jì)算成本、帶寬效率(傳輸較少數(shù)據(jù))方面是高效的,并且在第二實(shí)施例中能夠抵抗互相串通攻擊,同時可以對于實(shí)際中任何現(xiàn)有的拷貝保護(hù)系統(tǒng)來實(shí)現(xiàn)本發(fā)明??梢元?dú)立地或以任何適當(dāng)?shù)慕M合形式提供說明書、(如適當(dāng)?shù)脑?權(quán)利要求和附 圖中公開的每個特征。權(quán)利要求中出現(xiàn)的附圖標(biāo)記只用于說明,而不應(yīng)該對權(quán)利要求的范圍產(chǎn)生限制效果。
權(quán)利要求
1.一種用于產(chǎn)生η個控制字的設(shè)備(200),所述η個控制字用于內(nèi)容項(xiàng)的η個連續(xù)單元的加密或解密,其中η是整數(shù),所述設(shè)備(200)包括處理器,所述處理器配置為 獲取第一密鑰Kstart和第二密鑰Kmd ; 通過將第一單向函數(shù)迭代地應(yīng)用于第一密鑰Kstart來產(chǎn)生η個子密鑰Kltl-Kllri的第一有序集合,以及通過將第二單向函數(shù)迭代地應(yīng)用于第二密鑰Kmd來產(chǎn)生η個子密鑰Dci-Dlri的第二有序集合; 通過迭代地使用組合操作,根據(jù)來自所述η個子密鑰的第一有序集合的子密鑰Kli和來自所述η個子密鑰的第二有序集合的子密鑰產(chǎn)生控制字i,來產(chǎn)生η個控制字,其中O彡i彡η-i ;以及 輸出產(chǎn)生的η個控制字。
2.如權(quán)利要求I的設(shè)備,其中第一單向函數(shù)和第二單向函數(shù)中的至少一個是哈希函數(shù)。
3.如權(quán)利要求I或2的設(shè)備,其中第一單向函數(shù)和第二單向函數(shù)中的至少一個是公鑰加密。
4.如權(quán)利要求I的設(shè)備,其中組合操作是異或XOR。
5.如權(quán)利要求I的設(shè)備,其中組合操作是拼接、公鑰加密或?qū)ΨQ密鑰加密。
6.如權(quán)利要求I的設(shè)備,處理器還配置為將內(nèi)容項(xiàng)分離為多個部分,每部分包括多個單元;以及針對每部分獨(dú)立地產(chǎn)生控制字。
7.如權(quán)利要求I的設(shè)備,其中處理器還配置為 產(chǎn)生針對內(nèi)容項(xiàng)的許可證,其中該內(nèi)容項(xiàng)的單元i是已使用所產(chǎn)生的控制字i加密的,所述許可證包括第一密鑰Kstart、第二密鑰Kstart和整數(shù)η ;以及 -向接收方發(fā)送許可證。
8.如權(quán)利要求7的設(shè)備,其中內(nèi)容項(xiàng)是較長內(nèi)容項(xiàng)的摘錄,所述較長內(nèi)容項(xiàng)是使用根據(jù)第三密鑰和第四密鑰產(chǎn)生的控制字來加密的,以及其中處理器還配置為 通過將第一單向函數(shù)迭代地應(yīng)用于第三密鑰來產(chǎn)生第一密鑰Kstart ;以及 通過將第二單向函數(shù)迭代地應(yīng)用于第四密鑰來產(chǎn)生第二密鑰Kmd。
9.如權(quán)利要求I的設(shè)備,其中內(nèi)容項(xiàng)是加密的,以及處理器還配置為使用所產(chǎn)生的控制字來解密已加密的內(nèi)容項(xiàng)。
10.一種用于產(chǎn)生η個控制字的方法,所述η個控制字用于內(nèi)容項(xiàng)的η個連續(xù)單元的加密或解密,其中η是整數(shù),所述方法包括在設(shè)備(200)處的以下步驟 獲取第一密鑰Kstart和第二密鑰Kmd ; 通過將第一單向函數(shù)迭代地應(yīng)用于第一密鑰Kstart來產(chǎn)生η個子密鑰Kltl-Kllri的第一有序集合,以及通過將第二單向函數(shù)迭代地應(yīng)用于第二密鑰Kmd來產(chǎn)生η個子密鑰Dci-Dlri的第二有序集合; 通過迭代地使用組合操作,根據(jù)來自所述η個子密鑰的第一有序集合的子密鑰Kli和來自所述η個子密鑰的第二有序集合的子密鑰產(chǎn)生控制字i,來產(chǎn)生η個控制字,其中O≤i≤η-I ;以及 輸出所產(chǎn)生的η個控制字。
11.如權(quán)利要求10的方法,其中第一單向函數(shù)和第二單向函數(shù)中的至少一個是哈希函數(shù)。
12.如權(quán)利要求10的方法,其中組合操作是異或XOR。
13.如權(quán)利要求10的方法,還包括以下步驟將內(nèi)容項(xiàng)分離為多個部分,每部分包括多個單元;以及其中針對每部分,獨(dú)立地執(zhí)行權(quán)利要求10所述的步驟。
14.一種產(chǎn)生針對內(nèi)容項(xiàng)的內(nèi)容許可證的方法,其中內(nèi)容項(xiàng)是使用權(quán)利要求10的方法所產(chǎn)生的控制字來加密的,所述方法還包括在設(shè)備(200)處的以下步驟 產(chǎn)生(S43)針對內(nèi)容項(xiàng)的許可證,其中該內(nèi)容項(xiàng)的單元i是已使用所產(chǎn)生的控制字i加密的,所述許可證包括第一密鑰Kstart、第二密鑰Kstart以及整數(shù)η ;以及向接收方發(fā)送(S44)許可證。
15.如權(quán)利要求14的方法,其中內(nèi)容項(xiàng)是較長內(nèi)容項(xiàng)的摘錄,所述較長內(nèi)容項(xiàng)是使用根據(jù)第三密鑰和第四密鑰產(chǎn)生的控制字來加密的,以及其中所述方法還包括以下步驟 通過將第一單向函數(shù)迭代地應(yīng)用于第三密鑰來產(chǎn)生第一密鑰Kstart ;以及 通過將第二單向函數(shù)迭代地應(yīng)用于第四密鑰來產(chǎn)生第二密鑰Kmd。
全文摘要
產(chǎn)生用于內(nèi)容項(xiàng)加密的n個控制字。設(shè)備(200)獲取第一密鑰Kstart和第二密鑰Kend;使用公式來產(chǎn)生(S42)n個控制字,CWi指示控制字i,h1和h2指示單向函數(shù),指示組合操作;以及輸出n個產(chǎn)生的控制字。優(yōu)選地,至少一個單向函數(shù)是哈希函數(shù),組合操作是XOR。在一個實(shí)施例中,使用所產(chǎn)生的控制字產(chǎn)生(S43)針對已加密內(nèi)容項(xiàng)的許可證,許可證包括第一密鑰Kstart、第二密鑰Kstart以及整數(shù)n;向接收方傳送(S44)許可證。提供了一種方法和設(shè)備(200)。有利的是可以向接收方發(fā)送處于第一密鑰和第二密鑰之間的第三密鑰和第四密鑰,接收方不能夠產(chǎn)生在第三密鑰和第四密鑰“外部”的密鑰字。
文檔編號H04L9/32GK102637246SQ20121002620
公開日2012年8月15日 申請日期2012年2月7日 優(yōu)先權(quán)日2011年2月10日
發(fā)明者穆罕默德·卡羅米 申請人:湯姆森許可貿(mào)易公司