本發(fā)明涉及一種在設(shè)備上提供對(duì)內(nèi)容的訪問的方法,以及用于執(zhí)行該方法的裝置和計(jì)算機(jī)程序。
背景技術(shù):
保護(hù)一個(gè)或多個(gè)內(nèi)容項(xiàng)(其可以以例如數(shù)據(jù)流的形式)的遞送是眾所周知的。內(nèi)容項(xiàng)可以包括任何種類的內(nèi)容,諸如音頻內(nèi)容、圖像內(nèi)容、視頻內(nèi)容、多媒體內(nèi)容、文本內(nèi)容等中的一個(gè)或多個(gè)。例如,對(duì)于廣播內(nèi)容遞送基礎(chǔ)設(shè)施,條件訪問(conditionalaccess)(ca)系統(tǒng)使得能夠?qū)⒛M和/或數(shù)字信號(hào)(諸如電視信號(hào))選擇性地遞送到廣播接收機(jī)(諸如機(jī)頂盒)。對(duì)于寬帶基礎(chǔ)設(shè)施(諸如通過互聯(lián)網(wǎng)遞送內(nèi)容),數(shù)字版權(quán)管理(drm)系統(tǒng)相似地使得能夠?qū)拵Ы邮諜C(jī)(諸如,個(gè)人計(jì)算機(jī)、移動(dòng)電話等)的內(nèi)容進(jìn)行選擇性訪問和解碼。已知的是,在ca和drm系統(tǒng)兩者中,使用硬件防篡改(例如,使用智能卡或所謂的“可信執(zhí)行環(huán)境”或tee)和/或軟件防篡改技術(shù)(例如,使用所謂的“白盒保護(hù)技術(shù)或軟件混淆技術(shù)),用以加強(qiáng)客戶端設(shè)備實(shí)現(xiàn)方式以防備攻擊。
傳統(tǒng)上,ca系統(tǒng)已依賴于硬件保護(hù)的密鑰管理功能,例如以智能卡的形式。為了降低實(shí)現(xiàn)成本,在一些ca系統(tǒng)中,通過在接收機(jī)設(shè)備中執(zhí)行的安全軟件實(shí)現(xiàn),來實(shí)現(xiàn)/提供智能卡的功能,而不是使用智能卡來實(shí)現(xiàn)/提供智能卡的功能。例如在ep2227014,ep2227015和ep2360918中陳述了這種安全軟件實(shí)現(xiàn)和相關(guān)聯(lián)的頭端功能的示例,其全部公開內(nèi)容通過引用并入本文。
在不使用智能卡的情況下實(shí)現(xiàn)的某些ca系統(tǒng)依賴于形成接收機(jī)的一部分(例如,在機(jī)頂盒中)的片上系統(tǒng)(soc)設(shè)備中的專有硬件解密模塊。該專有硬件解密模塊依賴于在soc設(shè)備的制造過程期間加載到該模塊中的秘密密鑰(參見例如ep2506176,其全部公開內(nèi)容通過引用并入本文)。該秘密密鑰對(duì)于soc設(shè)備是唯一的。該秘密密鑰的唯一性由ca客戶端(在接收機(jī)設(shè)備上執(zhí)行的ca軟件應(yīng)用)使用,并將ca客戶端鏈接到設(shè)備,這有助于保護(hù)ca客戶端防備逆向工程攻擊。
使用開放操作系統(tǒng)(os)的消費(fèi)電子設(shè)備的范圍越來越廣。這樣的開放操作系統(tǒng)的示例是android。由于這種操作系統(tǒng)的開放性,攻擊者對(duì)此操作系統(tǒng)有充分的了解和控制。這使得這樣的操作系統(tǒng)成為對(duì)于攻擊者非常有吸引力的平臺(tái)。為了減少基于操作系統(tǒng)的攻擊的影響,已經(jīng)部署了硬件保護(hù)機(jī)制以加強(qiáng)或保護(hù)軟件應(yīng)用防備基于操作系統(tǒng)的攻擊。一些soc設(shè)備(諸如當(dāng)前消費(fèi)電子設(shè)備中使用的一些設(shè)備)現(xiàn)在支持tee,該tee與固件相結(jié)合使得選定的軟件應(yīng)用針對(duì)基于操作系統(tǒng)的攻擊實(shí)現(xiàn)更好的保護(hù)。為軟件應(yīng)用部署基于tee的硬件保護(hù)系統(tǒng)要求芯片制造商和ce制造商兩者的支持。這意味著實(shí)現(xiàn)大范圍的設(shè)備以實(shí)現(xiàn)對(duì)應(yīng)用的保護(hù)是非常困難的。
一些內(nèi)容所有者授權(quán)使用基于硬件的drm系統(tǒng),以便將其內(nèi)容發(fā)布到相對(duì)開放的ce設(shè)備,諸如基于android的裝備。這意味著現(xiàn)在許多ce設(shè)備支持至少一個(gè)drm系統(tǒng)。示例包括用于電視機(jī)的soc設(shè)備,其目前支持用于呈遞流內(nèi)容的drm系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:
ca系統(tǒng)對(duì)特定硬件密鑰梯形圖的依賴不容易定標(biāo)到大范圍的ce設(shè)備和它們使用的soc設(shè)備。這種定標(biāo)的缺乏減少了可以支持任何特定ca系統(tǒng)的總體ce設(shè)備(例如,電視和機(jī)頂盒)的百分比,因此可能限制特定ce設(shè)備能夠訪問的內(nèi)容的范圍。
根據(jù)本發(fā)明的第一方面,提供了一種在第一設(shè)備處提供對(duì)內(nèi)容的訪問的方法,所述方法包括:接收內(nèi)容項(xiàng),其中,所述內(nèi)容項(xiàng)的至少一部分被加密,能夠使用至少一個(gè)解密密鑰對(duì)內(nèi)容項(xiàng)的加密的至少一部分進(jìn)行解密;在第一軟件客戶端中:獲得至少一個(gè)解密密鑰的變換版本;基于該至少一個(gè)解密密鑰對(duì)該內(nèi)容項(xiàng)的加密的至少一部分實(shí)行解密操作,以獲得該內(nèi)容項(xiàng)的該至少一部分的中間版本,其中,所述實(shí)行解密操作使用解密操作的白盒實(shí)現(xiàn)(white-boximplementation),其形成第一軟件客戶端的一部分并且通過使用至少一個(gè)解密密鑰的變換版本來操作;以及基于至少一個(gè)加密密鑰對(duì)該中間版本的至少一部分實(shí)行加密操作以獲得重新加密的內(nèi)容,其中,所述實(shí)行加密操作使用加密操作的白盒實(shí)現(xiàn),其形成第一軟件客戶端的一部分;以及向在第一設(shè)備上執(zhí)行的數(shù)字版權(quán)管理客戶端提供:(a)權(quán)利對(duì)象,該權(quán)利對(duì)象使得數(shù)字版權(quán)管理客戶端能夠獲得與至少一個(gè)加密密鑰相對(duì)應(yīng)的一個(gè)或多個(gè)第二解密密鑰,該一個(gè)或多個(gè)第二解密密鑰使得數(shù)字版權(quán)管理客戶端能夠解密該重新加密的內(nèi)容,以及(b)重新加密的內(nèi)容。
第一軟件客戶端基本上實(shí)現(xiàn)了到安裝在第一設(shè)備上或者在第一設(shè)備上執(zhí)行的drm客戶端的基于軟件的橋接。使用用于轉(zhuǎn)碼(transcryption)的一個(gè)或多個(gè)加密密鑰基本上將第一軟件客戶端與drm客戶端結(jié)合(tie),以使得第一軟件客戶端可以與drm客戶端的屬性(諸如,錨定到設(shè)備并在受保護(hù)的硬件環(huán)境中執(zhí)行)和/或drm客戶端206的功能(諸如其根據(jù)特定的drm系統(tǒng)實(shí)行drm處理的能力)相鏈接或者使用和利用所述drm客戶端的屬性和/或drm客戶端206的功能,而第一軟件客戶端本身不必提供這些屬性或該功能。因此,可以在設(shè)備上預(yù)先安裝或預(yù)先配置(諸如,在設(shè)備的tee內(nèi))具有其有益屬性和功能的drm客戶端,然而,用本發(fā)明的實(shí)施例,可以利用第一軟件客戶端來處理內(nèi)容(其中,根據(jù)drm系統(tǒng)或者不一定與drm客戶端兼容的ca系統(tǒng)來保護(hù)內(nèi)容),并且通過已經(jīng)在設(shè)備上的drm客戶端訪問該內(nèi)容。這意味著可以打開設(shè)備,以便能夠以許多不同的方式訪問已經(jīng)受保護(hù)的多得多的內(nèi)容,同時(shí)仍然提供安全的訪問(借助于使用drm客戶端)。例如,有可能將多個(gè)不同的“第一軟件客戶端”下載到設(shè)備上,以處理設(shè)備的用戶可能希望訪問的許多不同類型的受保護(hù)內(nèi)容-該機(jī)制提供靈活性,同時(shí)保持高水平的安全性。另一個(gè)優(yōu)點(diǎn)是,例如,如果drm客戶端被錨定或鎖定到設(shè)備,則第一軟件客戶端本身不需要以這種方式被錨定或鎖定——仍然借助于第一軟件客戶端與drm客戶端的交互和drm客戶端自己的錨定/鎖定來實(shí)現(xiàn)錨定/鎖定。
在一些實(shí)施例中,第一軟件客戶端在第一設(shè)備上執(zhí)行。替代性地,第一軟件客戶端可以在不同于第一設(shè)備的第二設(shè)備上執(zhí)行。
在一些實(shí)施例中,數(shù)字版權(quán)管理客戶端被錨定到第一設(shè)備。
在一些實(shí)施例中,數(shù)字版權(quán)管理客戶端被布置為在第一設(shè)備的受保護(hù)的硬件處理環(huán)境中執(zhí)行。
在一些實(shí)施例中,至少一個(gè)加密密鑰:(a)對(duì)于第一設(shè)備是唯一的,或(b)對(duì)于包括第一設(shè)備的預(yù)定的一組設(shè)備是唯一的或(c)對(duì)于在第一設(shè)備上執(zhí)行的drm客戶端的實(shí)例是唯一的。
在一些實(shí)施例中,第一軟件客戶端是以下之一:(a)條件訪問客戶端;(b)條件訪問客戶端的一部分;(c)第二數(shù)字版權(quán)管理客戶端;(d)第二數(shù)字版權(quán)管理客戶端的一部分。
在一些實(shí)施例中,第一軟件客戶端不被錨定到設(shè)備,第一軟件客戶端在該設(shè)備上執(zhí)行。
在一些實(shí)施例中,第一軟件客戶端被布置為在設(shè)備(第一軟件客戶端在該設(shè)備上執(zhí)行)的未受保護(hù)的硬件處理環(huán)境中執(zhí)行。
在一些實(shí)施例中,該方法包括第一軟件客戶端接收至少一個(gè)加密密鑰的變換版本。
在一些實(shí)施例中,用于第一軟件客戶端的代碼在其中嵌入了至少一個(gè)加密密鑰的變換版本。
在一些實(shí)施例中,用于第一軟件客戶端的代碼在其中嵌入了權(quán)利對(duì)象。
在一些實(shí)施例中,第一軟件客戶端被布置為至少部分地基于第一軟件客戶端是否檢測(cè)到用以訪問內(nèi)容項(xiàng)的有效授權(quán)(entitlement)來控制解密操作和/或加密操作。
在一些實(shí)施例中,第一軟件客戶端從通過廣播網(wǎng)絡(luò)傳達(dá)的一個(gè)或多個(gè)授權(quán)控制消息獲得一個(gè)或多個(gè)解密密鑰的變換版本。
在一些實(shí)施例中,通過廣播網(wǎng)絡(luò)接收內(nèi)容項(xiàng)。替代性地,可以通過寬帶網(wǎng)絡(luò)(其可以包括因特網(wǎng))接收內(nèi)容項(xiàng)。
在一些實(shí)施例中,該至少一個(gè)加密密鑰不與內(nèi)容項(xiàng)相關(guān)聯(lián)。
在一些實(shí)施例中,(a)解密操作至少部分地基于aes解密算法或三重des解密算法;和/或(b)加密操作至少部分地基于aes加密算法或三重des加密算法。
在一些實(shí)施例中,應(yīng)用于至少一個(gè)解密密鑰以獲得該至少一個(gè)解密密鑰的變換版本的變換與形成第一客戶端軟件的一部分的解密操作的特定白盒實(shí)現(xiàn)相關(guān)聯(lián)。
在一些實(shí)施例中,解密操作和加密操作至少部分地對(duì)與用于內(nèi)容項(xiàng)的數(shù)據(jù)的域不同的一個(gè)或多個(gè)變換域中的數(shù)據(jù)進(jìn)行操作。
在一些實(shí)施例中,解密操作的白盒實(shí)現(xiàn)和/或加密操作的白盒實(shí)現(xiàn)對(duì)于第一軟件客戶端在其上執(zhí)行的設(shè)備是唯一的或者對(duì)于包括第一軟件客戶端在其上執(zhí)行的設(shè)備的預(yù)定的一組設(shè)備是唯一的。
在一些實(shí)施例中,該方法包括在加密中間版本之前修改中間版本,然后,加密包括對(duì)修改的中間版本的至少一部分進(jìn)行加密。修改可以包括以下中的一個(gè)或多個(gè):(a)在中間版本的至少一部分中嵌入水??;(b)在中間版本的至少一部分中嵌入指紋;以及(c)將中間版本從第一格式轉(zhuǎn)換成第二格式。
在一些實(shí)施例中,中間版本的至少一部分不是全部中間版本。然后,該方法可以包括向數(shù)字版權(quán)管理客戶端提供與中間版本的至少一部分不對(duì)應(yīng)的至少一些內(nèi)容項(xiàng)。
在一些實(shí)施例中,第一設(shè)備包括以下之一:(a)移動(dòng)電話;(b)平板計(jì)算機(jī);(c)便攜式個(gè)人電子設(shè)備;(d)游戲控制臺(tái);(e)個(gè)人計(jì)算機(jī);(f)電視。
在一些實(shí)施例中,解密操作的白盒實(shí)現(xiàn)和加密操作的白盒實(shí)現(xiàn)一起被實(shí)現(xiàn)為單個(gè)白盒實(shí)現(xiàn)。
根據(jù)本發(fā)明的第二方面,提供了一種裝置,該裝置被布置為執(zhí)行根據(jù)第一方面的上述方法中的任一個(gè)。
根據(jù)本發(fā)明的第三方面,提供了一個(gè)或多個(gè)計(jì)算機(jī)程序,當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得一個(gè)或多個(gè)處理器實(shí)行根據(jù)第一方面的上述方法中的任一個(gè)。一個(gè)或多個(gè)計(jì)算機(jī)程序可以被存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上。
根據(jù)本發(fā)明的第四方面,提供了一種配置設(shè)備的方法,所述方法包括:將根據(jù)本發(fā)明的第三方面的一個(gè)或多個(gè)計(jì)算機(jī)程序加載到該設(shè)備上。
在一些實(shí)施例中,該方法包括從存儲(chǔ)多個(gè)應(yīng)用的商店中獲得一個(gè)或多個(gè)計(jì)算機(jī)程序,該多個(gè)應(yīng)用可用于下載到設(shè)備上并且在設(shè)備上執(zhí)行??梢酝ㄟ^網(wǎng)站訪問該商店。
附圖說明
現(xiàn)在將參照附圖僅通過示例的方式描述本發(fā)明的實(shí)施例,其中:
圖1示意性地圖示了計(jì)算機(jī)系統(tǒng)的示例;
圖2示意性地圖示了根據(jù)本發(fā)明實(shí)施例的設(shè)備(或接收機(jī));以及
圖3示意性地圖示了根據(jù)本發(fā)明另一實(shí)施例的設(shè)備(或接收機(jī))。
具體實(shí)施方式
在下面的描述和附圖中,描述了本發(fā)明的某些實(shí)施例。然而,應(yīng)當(dāng)理解,本發(fā)明不限于所描述的實(shí)施例,并且一些實(shí)施例可以不包括下面描述的所有特征。然而,將顯而易見的是,在不脫離如所附權(quán)利要求所闡述的本發(fā)明的更廣泛的精神和范圍的情況下,在此可以做出各種修改和改變。
1-系統(tǒng)概述
圖1示意性地圖示了計(jì)算機(jī)系統(tǒng)100的示例。系統(tǒng)100包括計(jì)算機(jī)102。計(jì)算機(jī)102包括:存儲(chǔ)介質(zhì)104,存儲(chǔ)器106,處理器108,接口110,用戶輸出接口112,用戶輸入接口114以及網(wǎng)絡(luò)接口116,上述所有部分通過一個(gè)或更多通信總線118鏈接到一起。
存儲(chǔ)介質(zhì)104可以是諸如硬盤驅(qū)動(dòng)器,磁盤,光盤,rom等中的一種或多種的任何形式的非易失性數(shù)據(jù)存儲(chǔ)設(shè)備。存儲(chǔ)介質(zhì)104可以存儲(chǔ)用于處理器108來執(zhí)行以便使計(jì)算機(jī)102運(yùn)行的操作系統(tǒng)。存儲(chǔ)介質(zhì)104還可以存儲(chǔ)一個(gè)或多個(gè)計(jì)算機(jī)程序(或軟件或指令或代碼)。
存儲(chǔ)器106可以是適于存儲(chǔ)數(shù)據(jù)和/或計(jì)算機(jī)程序(或軟件或指令或代碼)的任何隨機(jī)存取存儲(chǔ)器(存儲(chǔ)單元或易失性存儲(chǔ)介質(zhì))。
處理器108可以是適于執(zhí)行一個(gè)或多個(gè)計(jì)算機(jī)程序(諸如存儲(chǔ)在存儲(chǔ)介質(zhì)104和/或存儲(chǔ)器106中的計(jì)算機(jī)程序)的任何數(shù)據(jù)處理單元,其中一些計(jì)算機(jī)程序可以是根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)程序或當(dāng)由處理器108執(zhí)行時(shí)使得處理器108實(shí)行根據(jù)本發(fā)明的實(shí)施例的方法并將系統(tǒng)100配置為根據(jù)本發(fā)明實(shí)施例的系統(tǒng)的計(jì)算機(jī)程序。處理器108可以包括單個(gè)數(shù)據(jù)處理單元或多個(gè)數(shù)據(jù)處理單元,該多個(gè)數(shù)據(jù)處理單元并行地、單獨(dú)地或彼此協(xié)作地操作。處理器108在針對(duì)本發(fā)明的實(shí)施例執(zhí)行數(shù)據(jù)處理操作時(shí),可以將數(shù)據(jù)存儲(chǔ)到存儲(chǔ)介質(zhì)104和/或存儲(chǔ)器106和/或從存儲(chǔ)介質(zhì)104和/或存儲(chǔ)器106讀取數(shù)據(jù)。
接口110可以是用于向計(jì)算機(jī)102外部的設(shè)備122或可從計(jì)算機(jī)102去除的設(shè)備122提供接口的任何單元。設(shè)備122可以是數(shù)據(jù)存儲(chǔ)設(shè)備,例如光盤,磁盤,固態(tài)存儲(chǔ)設(shè)備等中的一個(gè)或多個(gè)。設(shè)備122可以具有處理能力-例如,設(shè)備可以是智能卡。因此,接口110可以根據(jù)從處理器108接收的一個(gè)或多個(gè)命令來訪問來自設(shè)備122的數(shù)據(jù)或者向設(shè)備122提供數(shù)據(jù)或者與設(shè)備122接口連接。
用戶輸入接口114被布置為從系統(tǒng)100的用戶或操作者接收輸入。用戶可以經(jīng)由系統(tǒng)100的連接到用戶輸入接口114或與用戶輸入接口114通信的一個(gè)或多個(gè)輸入設(shè)備(諸如鼠標(biāo)(或其他定點(diǎn)設(shè)備)126和/或鍵盤124)提供該輸入。然而,應(yīng)當(dāng)理解,用戶可以經(jīng)由一個(gè)或多個(gè)附加的或替代的輸入設(shè)備(諸如觸摸屏)向計(jì)算機(jī)102提供輸入。計(jì)算機(jī)102可以將經(jīng)由用戶輸入接口114從輸入設(shè)備接收的輸入存儲(chǔ)在存儲(chǔ)器106中,以用于處理器108隨后訪問和處理,或者可以將從輸入設(shè)備接收的輸入直接傳遞給處理器108,以使得處理器108可以因此響應(yīng)用戶輸入。
用戶輸出接口112被布置為向系統(tǒng)100的用戶或操作者提供圖形/視覺和/或音頻輸出。這樣,處理器108可以被布置為指示用戶輸出接口112形成表示期望的圖形輸出的圖像/視頻信號(hào),并且將該信號(hào)提供給系統(tǒng)100的連接到用戶輸出接口112的監(jiān)視器(或屏幕或顯示單元)120。附加地或替代地,處理器108可以被布置為指示用戶輸出接口112形成表示期望的音頻輸出的音頻信號(hào),并且將該信號(hào)提供給系統(tǒng)100的連接到用戶輸出接口112的一個(gè)或多個(gè)揚(yáng)聲器121。
最后,網(wǎng)絡(luò)接口116為計(jì)算機(jī)102提供從一個(gè)或多個(gè)數(shù)據(jù)通信網(wǎng)絡(luò)下載數(shù)據(jù)和/或?qū)?shù)據(jù)上傳到一個(gè)或多個(gè)數(shù)據(jù)通信網(wǎng)絡(luò)的功能。
應(yīng)當(dāng)理解,圖1所示和上面描述的系統(tǒng)100的架構(gòu)僅僅是示例性的,并且可以在本發(fā)明的實(shí)施例中使用具有不同架構(gòu)(例如,具有比圖1所示的更少的組件或者具有相比于圖1所示的附加和/或替代的組件)的其他計(jì)算機(jī)系統(tǒng)100。作為示例,計(jì)算機(jī)系統(tǒng)100可以包括以下中的一個(gè)或多個(gè):個(gè)人計(jì)算機(jī);服務(wù)器計(jì)算機(jī);移動(dòng)電話;平板;筆記本電腦;電視機(jī);機(jī)頂盒;游戲控制臺(tái);其他移動(dòng)設(shè)備或消費(fèi)電子設(shè)備;等等。
2-白盒實(shí)現(xiàn)
白盒環(huán)境是用于軟件數(shù)據(jù)處理的執(zhí)行環(huán)境,其中,假設(shè)數(shù)據(jù)處理的攻擊者具有對(duì)正在被操作的數(shù)據(jù)(包括中間值)、存儲(chǔ)器內(nèi)容以及軟件數(shù)據(jù)處理的執(zhí)行/處理流程的完全訪問和可見性。此外,在白盒環(huán)境中,假設(shè)攻擊者能夠修改正在被操作的數(shù)據(jù)、存儲(chǔ)器內(nèi)容以及軟件數(shù)據(jù)處理的執(zhí)行/處理流程,以這種方式,攻擊者可以對(duì)數(shù)據(jù)處理進(jìn)行實(shí)驗(yàn)并且嘗試操縱數(shù)據(jù)處理的操作,其目的是規(guī)避最初的預(yù)期功能和/或識(shí)別秘密信息和/或?yàn)榱似渌鈭D。的確,甚至可以假定攻擊者知道由數(shù)據(jù)處理實(shí)行的底層算法。然而,數(shù)據(jù)處理可能需要使用秘密信息(例如,一個(gè)或多個(gè)密碼密鑰),其中,該信息需要保持對(duì)攻擊者隱藏。類似地,期望防止攻擊者修改數(shù)據(jù)處理的執(zhí)行/控制流程,例如防止攻擊者在決策塊而不是合法執(zhí)行路徑之后強(qiáng)制數(shù)據(jù)處理采取一個(gè)執(zhí)行路徑?!鞍缀小惫羰钱?dāng)在白盒環(huán)境中實(shí)行數(shù)據(jù)處理時(shí),攻擊者可能對(duì)軟件數(shù)據(jù)實(shí)行處理的攻擊(例如,試圖確定秘密信息或試圖修改數(shù)據(jù)處理的執(zhí)行/控制流程以達(dá)到所需的目標(biāo)/目的)。白盒攻擊是眾所周知的。白盒攻擊是對(duì)軟件項(xiàng)(或代碼或指令)實(shí)行的攻擊,因?yàn)楣粽呖梢栽谲浖h(huán)境(諸如調(diào)試器)中執(zhí)行(或運(yùn)行或仿真)這些軟件項(xiàng),這使攻擊者能夠在執(zhí)行期間監(jiān)視和修改存儲(chǔ)器和/或控制流程中的數(shù)據(jù)值。
在一些實(shí)施例中,將使用一個(gè)或多個(gè)雙射函數(shù)(或變換或轉(zhuǎn)換)。雙射函數(shù)是單射的(即,1對(duì)1映射)并且滿射的(即,映射到全部特定值范圍)函數(shù)。如果函數(shù)t的可能輸入值的域是域dom,并且如果函數(shù)t是單射函數(shù)(使得當(dāng)且僅當(dāng)a=b時(shí),t(a)=t(b)),則t是從dom到范圍t(dom)={t(a):a∈dom}的雙射函數(shù)。
一個(gè)初步的簡(jiǎn)單示例將有助于理解如何使用雙射函數(shù)t可以幫助提供抵抗白盒攻擊的保護(hù)。在這個(gè)示例中,雙射函數(shù)t是對(duì)于一些素?cái)?shù)ψ和正整數(shù)n的galois域gf(ψn)中的線性變換,即,t:t:gf(ψn)→gf(ψn)。例如,如果數(shù)據(jù)值si(i=1,…,m)是z位數(shù)據(jù)值,則它們可以被視為galois域gf(2z)的元素,使得ψ=2并且n=z。
考慮根據(jù)r=g(s1,s2)=s1+s2對(duì)galois域gf(ψn)中的元素s1和s2進(jìn)行操作的預(yù)定函數(shù)g,其中+是galois域gf(ψn)中的加法。在該galois域gf(ψn)中,加法s1+s2與xor操作相同,使得r=g(s1,s2)=s1
因此,考慮到輸入s1和s2的變換版本s1*=t1(s1)以及s2*=t2(s2),可以計(jì)算結(jié)果r的變換版本r*=t3(r),而不必去除任何變換(即,不必從版本s1*和s2*導(dǎo)出s1和/或s2)。特別地,已經(jīng)通過t1、t2和t3各自的參數(shù)(用于t1的a和b,用于t2的c和d,用于t3的e和f)定義了t1、t2和t3,可以根據(jù)g*(s1*,s2*)=g·s1*+h·s2*+i,其中,g=e·a-1,h=e·c-1并且i=e·(a-1b+c-1d)+f來實(shí)現(xiàn)函數(shù)g的變換版本g*,以使得可以計(jì)算r*=g*(s1*,s2*),而無需作為處理的中間步驟確定/揭露s1或s2。然后可以從結(jié)果r的變換版本r*=g*(s1*,s2*)獲得結(jié)果r,因?yàn)閞=e-1(r*+f)),因此,可以使用線性變換t4(其是t3的倒數(shù))來從變換版本r*獲得結(jié)果r,其中r=t4(r*)=e-1r*+e-1f。替代性地,結(jié)果r的變換版本r*可以是后續(xù)函數(shù)的輸入。換言之,考慮到對(duì)輸入s1和s2進(jìn)行操作以產(chǎn)生結(jié)果r的函數(shù)g,如果指定變換t1,t2和t3(例如,通過隨機(jī)地選擇用于變換的參數(shù)來隨機(jī)地指定或者基于一些其他參數(shù)/數(shù)據(jù)來指定),則可以生成/實(shí)現(xiàn)函數(shù)g的變換版本g*,其中,函數(shù)g*對(duì)變換輸入s1*=t1(s1)和s2*=t2(s2)進(jìn)行操作,以根據(jù)r*=g·s1*+h·s2*+i產(chǎn)生變換結(jié)果r*=t3(r)。如果人在白盒環(huán)境中實(shí)現(xiàn)函數(shù)g*,則該人不能夠識(shí)別底層函數(shù)g正在進(jìn)行什么操作,也不能確定實(shí)際結(jié)果r,也不能確定輸入s1和s2(因?yàn)楫?dāng)實(shí)行函數(shù)g*時(shí),這些值不會(huì)被揭露)。
作為另一示例,假設(shè)函數(shù)g根據(jù)r=g(s1)=s1+k在galois域gf(ψn)中對(duì)元素s1進(jìn)行操作,其中,+是galois域gf(ψn)中的加法,以及k是預(yù)定的秘密值(諸如,密碼密鑰)。在此galois域(ψn)中,加法s1+k與xor操作相同,使得r=g(s1)=s1
因此,考慮到輸入s1的變換版本s1*=t1(s1),可以計(jì)算結(jié)果r的變換版本r*=t3(r),而不必去除任何變換(即,不必從版本s1*導(dǎo)出s1)。特別地,已經(jīng)通過t1和t3各自的參數(shù)(用于t1的a和b,用于t3的e和f)定義了變換t1和t3,可以根據(jù)g*(s1*)=g·s1*+h,其中,g=e·a-1,h=e·(a-1b+k)+f來實(shí)現(xiàn)函數(shù)g的變換版本g*,以使得可以計(jì)算r*=g*(s1*),而無需確定/揭露s1并且無需使得秘密值k對(duì)于攻擊者可用。然后可以從結(jié)果r的變換版本r*=g*(s1*,s2*)獲得結(jié)果r,因?yàn)閞=e-1(r*+f)),因此,可以使用線性變換t4(其是t3的倒數(shù))來從變換版本r*獲得結(jié)果r,其中
r=t4(r*)=e-1r*+e-1f。替代性地,結(jié)果r的變換版本r*可以是后續(xù)函數(shù)的輸入。換言之,考慮到對(duì)輸入s1進(jìn)行操作以產(chǎn)生結(jié)果r的函數(shù)g,如果指定變換t1和t3(例如,通過隨機(jī)地選擇用于變換的參數(shù)來隨機(jī)地指定或者基于一些其他參數(shù)/數(shù)據(jù)來指定),則可以生成/實(shí)現(xiàn)函數(shù)g的變換版本g*,其中,函數(shù)g*對(duì)變換輸入s1*=t1(s1)進(jìn)行操作,以根據(jù)r*=g·s1*+h產(chǎn)生變換結(jié)果r*=t3(r)。如果人在白盒環(huán)境中實(shí)現(xiàn)函數(shù)g*,則該人不能夠識(shí)別底層函數(shù)g正在實(shí)行什么操作,也不能確定實(shí)際結(jié)果r,也不能確定輸入s1,也不能確定密鑰k(因?yàn)楫?dāng)實(shí)行函數(shù)g*作時(shí),這些值不會(huì)被揭露)。
注意,在上述示例中,t1和t2中的一個(gè)或兩者可以是恒等變換(identitytransformation)(即,如果對(duì)于所有的s1值,t1(s1)=s1,則t1是恒等變換,使得在上述的示例中,a=1并且b=0,并且如果t2(s2)=s2,則t2是恒等變換,使得在上述的示例中,c=1并且d=0)。如果是這種情況,則實(shí)現(xiàn)函數(shù)g*的人可以識(shí)別由輸入s1假設(shè)的值(如果τ1是恒等變換)和/或由輸入s2假設(shè)的值(如果t2是恒等變換)。然而,只要t3不是恒等變換,則該人就不能識(shí)別底層函數(shù)g正在實(shí)行什么操作,該人也不能確定實(shí)際結(jié)果r。
類似地,在上述示例中,t3可以是恒等變換(即,如果對(duì)于所有的r值,t3(r)=r,則t3是恒等變換,使得在上述的示例中,e=1并且f=0)。如果是這種情況,則實(shí)現(xiàn)函數(shù)g*的人可以識(shí)別由輸出r假設(shè)的值。然而,只要t1和t2兩者或其一不是恒等變換,則該人就不能識(shí)別底層函數(shù)g正在進(jìn)行什么操作,也不能確定初始輸入s1和s2中的兩者或其一。
應(yīng)當(dāng)理解,其他函數(shù)g可以被實(shí)現(xiàn)為相應(yīng)的“變換版本”g*,其中,到函數(shù)g*的(一個(gè)或多個(gè))輸入是根據(jù)相應(yīng)的單射(1對(duì)1)變換的函數(shù)g的(一個(gè)或多個(gè))輸入的變換版本,并且函數(shù)g*的(一個(gè)或多個(gè))輸出是根據(jù)相應(yīng)的單射變換的函數(shù)g的(一個(gè)或多個(gè))輸出的變換版本。該變換不需要一定是上述的線性變換,而是可以是任何其他類型的單射變換。因此,考慮到具有u個(gè)輸入α1,…,αu和v個(gè)輸出β1,…,βv的函數(shù)g,可以實(shí)現(xiàn)函數(shù)g的變換版本g*,其中g(shù)*將輸入α1,…,αu的變換版本α1*,…,α*u作為其輸入,并且將輸出β1,…,βv的變換版本β1*,…,βv*作為其輸出,其中,對(duì)于單射函數(shù)t1,…,tu+v,αi*=ti(αi)并且βi*=ti+u(βi)。有可能兩個(gè)或多個(gè)函數(shù)ti可以彼此相同。對(duì)于任何函數(shù)g都可以完成這一點(diǎn)的事實(shí)討論如下。
如下所述,xor操作以及關(guān)于常量的條件分支形成圖靈完備的系統(tǒng)。這意味著可以僅使用:(a)零個(gè)或多個(gè)xor操作以及(b)關(guān)于常量的的零個(gè)或多個(gè)條件分支來實(shí)現(xiàn)任何數(shù)學(xué)函數(shù)。
圖靈機(jī)是根據(jù)規(guī)則表來操縱帶的條上的符號(hào)的概念性設(shè)備。盡管圖靈機(jī)具有簡(jiǎn)單性,但圖靈機(jī)可以適用于模擬任何計(jì)算機(jī)算法的邏輯。圖靈機(jī)在對(duì)在帶上機(jī)械操作的機(jī)器進(jìn)行數(shù)學(xué)建模。在這個(gè)帶上具有符號(hào),機(jī)器可以通過使用帶頭一次一個(gè)地讀取和寫入該符號(hào)。操作完全由有限的基本指令集確定,諸如“在狀態(tài)42中,如果看到的符號(hào)為0,則寫入1;如果看到的符號(hào)為1,則改變?yōu)闋顟B(tài)17;在狀態(tài)17中,如果看到的符號(hào)為0,則寫入1并且改變?yōu)闋顟B(tài)6”等。更準(zhǔn)確地,圖靈機(jī)包括以下內(nèi)容:
1.帶,該帶被劃分為一個(gè)緊挨另一個(gè)的單元格(cell)。每個(gè)單元格包含來自一些有限字母表的符號(hào)。字母表包含特殊的空白符號(hào)(這里寫為'b')以及一個(gè)或多個(gè)其他符號(hào)。假設(shè)帶可以任意擴(kuò)展到左邊和右邊,即,圖靈機(jī)總是被提供有與用于圖靈機(jī)的計(jì)算所需要的一樣多的帶。假設(shè)之前尚未被寫入的單元格被填充空白符號(hào)。
2.頭,該頭可以在帶上讀取和寫入符號(hào)并且以一次一個(gè)(且僅僅一個(gè))單元格向左和向右移動(dòng)帶。
3.狀態(tài)寄存器,該狀態(tài)寄存器存儲(chǔ)圖靈機(jī)的有限許多狀態(tài)之一的當(dāng)前狀態(tài)。存在一個(gè)特殊的啟動(dòng)狀態(tài),用該特殊的啟動(dòng)狀態(tài)初始化狀態(tài)寄存器。
4.一個(gè)或多個(gè)指令(每個(gè)通常表示為相應(yīng)的五元組
?寫入aj1代替當(dāng)前符號(hào)。(符號(hào)aj1可以是空白符號(hào))。
?如dk所述那樣控制頭的位置。dk可以具有下述值:“l(fā)”,其指示將頭向左移動(dòng)一個(gè)單元格,“r”,其指示將頭向右移動(dòng)一個(gè)單元格;或“n”,其指示表示不移動(dòng)頭,即,停留在相同的地方。
?將當(dāng)前狀態(tài)設(shè)置為由si1指定的狀態(tài)(其可以與si相同或不同)。
圖靈機(jī)是非常眾所周知的,并且因此在此不再對(duì)其進(jìn)行更詳細(xì)的描述。
如果可以示出,可以使用xor操作和關(guān)于常量的條件分支來實(shí)現(xiàn)動(dòng)作表中的任何可能的5元組,那么我們知道基于xor操作和關(guān)于常量的條件分支的處理系統(tǒng)是圖靈完備的(因?yàn)槿魏喂δ芑蛴?jì)算機(jī)程序都可以被實(shí)現(xiàn)或建模為圖靈機(jī),并且該圖靈機(jī)的動(dòng)作表中的所有5元組都可以使用xor操作和關(guān)于常量的條件分支來實(shí)現(xiàn))。
考慮圖靈機(jī)中的元素與僅使用xor和關(guān)于常量的條件分支的系統(tǒng)中的元素之間的以下映射:
(a)圖靈機(jī)的字母大小設(shè)置為字母gf(ψn)的大小ψn。
(b)每個(gè)狀態(tài)被實(shí)現(xiàn)為具有(用于跳轉(zhuǎn)到的)標(biāo)識(shí)符的代碼塊。因此,可以通過以當(dāng)前狀態(tài)和存儲(chǔ)器的內(nèi)容為條件的goto語(yǔ)句(即,基于常量的條件分支)來實(shí)現(xiàn)圖靈機(jī)中的下一個(gè)狀態(tài)。
(c)帶可以被實(shí)現(xiàn)為存儲(chǔ)器,該存儲(chǔ)器保持字母中的元素的二進(jìn)制表示。因此,可以通過改變指向存儲(chǔ)器的地址來實(shí)現(xiàn)帶中的移動(dòng)。
(d)稱為“地址”的全局變量用于指向等同于頭之下的帶區(qū)段的存儲(chǔ)位置。
(e)我們使用存儲(chǔ)內(nèi)容的地址來讀取存儲(chǔ)內(nèi)容。為了寫入存儲(chǔ)器中,我們用存儲(chǔ)內(nèi)容與產(chǎn)生期望值的常量進(jìn)行xor。
以下偽代碼示出了典型的狀態(tài)實(shí)現(xiàn)(對(duì)于具有標(biāo)識(shí)符“i”的狀態(tài)),其中值x1,x2,…,xq是常量,并且“addr”是指向存儲(chǔ)位置的指針。下面所示的示例說明了增加、減小和不改變地址“addr”變量的三種可能性。
塊i:
{
mem=memory(addr)//在當(dāng)前地址addr處讀取存儲(chǔ)在帶上的數(shù)據(jù)
beginswitch(mem)
case1:{memory(addr)=xor(mem,x1),addr++,gotoblockj1}
//如果讀取的數(shù)據(jù)等于1,則將值1
并且轉(zhuǎn)到狀態(tài)j1
case2:{memory(addr)=xor(mem,x2),addr--,gotoblockj2}
//如果讀取的數(shù)據(jù)等于2,則將值2
并且轉(zhuǎn)到狀態(tài)j2
caseq:{memory(addr)=xor(mem,xq),addr,gotoblockjq}
//如果讀取的數(shù)據(jù)等于q,則將值q
位置并且轉(zhuǎn)到狀態(tài)jq
endswitch(mem)
}
因此,可以使用xor操作和條件分支來實(shí)現(xiàn)動(dòng)作表中的任何可能的5元組。因此,基于xor操作和條件分支的系統(tǒng)是圖靈完備的,即,可以僅使用xor(對(duì)于上面的點(diǎn)(e))和條件跳轉(zhuǎn)(對(duì)于上面的點(diǎn)(b))來實(shí)現(xiàn)任何圖靈機(jī)。
如上所示,可以在(通過函數(shù)g*)變換的域中實(shí)行等同于r=s1
使用雙射函數(shù)t來模糊預(yù)定函數(shù)的實(shí)現(xiàn)以及此類使用的各種方法在這個(gè)技術(shù)領(lǐng)域中是公知的,例如參見:2002年8月15-16日,加拿大紐芬蘭圣約翰sac2002第9期國(guó)際研討會(huì),密碼學(xué)所選區(qū)域中,stanleychow,philipeisen,haroldjohnson,以及paulc.vanoorschot的“white-boxcryptographyandanaesimplementation”;2002年11月18日,美國(guó)華盛頓特區(qū),在acmccs-9工作組,drm2002的數(shù)字版權(quán)管理中,stanleychow,phileisen,haroldjohnson,以及paulc.vanoorschot的“awhite-boxdesimplementationfordrmapplications”;us61/055,694;wo2009/140774;us6779114;us7350085;us7397916;us6594761;以及us6842862,其全部公開內(nèi)容通過引用并入本文。
3-軟件ca和drm客戶端
本發(fā)明的實(shí)施例使得能夠提供可以部署在非托管的設(shè)備上的僅軟件的ca客戶端,即,在沒有(或不實(shí)現(xiàn)或暴露給第三方實(shí)現(xiàn)者)硬件密鑰梯形圖的設(shè)備上。
本發(fā)明的實(shí)施例利用在非托管設(shè)備上執(zhí)行的drm客戶端(例如,本機(jī),oem強(qiáng)化或“設(shè)備供應(yīng)商”強(qiáng)化的drm客戶端)。這樣的drm客戶端通常存在于非托管設(shè)備上。在一些實(shí)施例中,這樣的drm客戶端可以利用設(shè)備的設(shè)備專有技術(shù)來將drm客戶端(和任何drm密鑰)錨定或鎖定到特定設(shè)備。這意味著drm客戶端的特定實(shí)例或版本只能在該特定設(shè)備上執(zhí)行(即,如果drm客戶端的該實(shí)例或版本被復(fù)制到不同的設(shè)備,則它將不會(huì)正確地執(zhí)行,或者可能在該不同的設(shè)備上根本不執(zhí)行)。這樣的drm客戶端可以利用設(shè)備供應(yīng)商專有的并且不作為公共api暴露給第三方供應(yīng)商的硬件鉤子(hardwarehook),這被認(rèn)為是提供drm客戶端到設(shè)備的強(qiáng)的錨定。
在本發(fā)明的一些實(shí)施例中涉及的drm技術(shù)的示例是在非托管設(shè)備上在androidos上執(zhí)行的widevinedrm。因此,在本發(fā)明的一些實(shí)施例中,drm客戶端是widevinedrm客戶端。然而,應(yīng)當(dāng)理解,這僅僅是示例,并且本發(fā)明的實(shí)施例可以利用其他drm技術(shù)。
在本發(fā)明的實(shí)施例中,所使用的ca客戶端不一定實(shí)現(xiàn)其自身的錨定機(jī)制,而是將該責(zé)任委托給drm客戶端。換言之,在本發(fā)明一些實(shí)施例中,ca客戶端不被錨定或者鎖定到執(zhí)行ca客戶端的設(shè)備。
將顯而易見的是,在一些實(shí)施例中,drm客戶端和ca客戶端在同一設(shè)備上執(zhí)行。在其他實(shí)施例中,drm客戶端和ca客戶端在不同的設(shè)備中執(zhí)行,例如,在針對(duì)家庭網(wǎng)絡(luò)場(chǎng)景的實(shí)施例中,可以在ca客戶端在其上執(zhí)行并且其不具有本機(jī)、強(qiáng)化的drm客戶端的非管理設(shè)備上接收內(nèi)容;然后可以(在已經(jīng)使用ca客戶端處理之后)將內(nèi)容重新分配到其上存在本機(jī)、強(qiáng)化的drm客戶端的另一非管理設(shè)備。
圖2示意性地圖示了根據(jù)本發(fā)明的實(shí)施例的設(shè)備(或接收機(jī))200。設(shè)備200包括或被布置為執(zhí)行輸入202、ca客戶端204、drm客戶端206和解碼器208。
drm客戶端206和/或解碼器208可以在可信執(zhí)行環(huán)境207(或受保護(hù)的硬件處理環(huán)境)中實(shí)現(xiàn)或者作為可信執(zhí)行環(huán)境207(或受保護(hù)的硬件處理環(huán)境)的一部分或者可以在可信執(zhí)行環(huán)境207(或受保護(hù)的硬件處理環(huán)境)中執(zhí)行。該可信執(zhí)行環(huán)境是設(shè)備200的處理器的安全區(qū)域,例如設(shè)備200的soc設(shè)備的安全部分。這種可信執(zhí)行環(huán)境是公知的,并且因此將不在此進(jìn)行詳細(xì)描述。
drm客戶端206可以是例如1級(jí)平臺(tái)drm客戶端。drm客戶端206可以是例如widevinedrm客戶端。然而,通常,drm客戶端206被布置為接收受保護(hù)的(或安全的或加密的)內(nèi)容項(xiàng)和權(quán)利對(duì)象(或drm許可證)。權(quán)利對(duì)象包含信息(諸如,一個(gè)或多個(gè)密碼密鑰),該信息允許或使得drm客戶端206能夠訪問(或解密)所接收到的受保護(hù)內(nèi)容項(xiàng)并使用該內(nèi)容項(xiàng)(其中,使用可能受限制或者受到通常被稱為“輸出保護(hù)”的一個(gè)或多個(gè)限制或條件的影響)。drm客戶端206可以是獨(dú)立的drm客戶端206;替代性地,drm客戶端206可能需要與外部drm服務(wù)器(圖2中未示出)進(jìn)行交互,以便執(zhí)行其drm功能。由于drm客戶端、權(quán)利對(duì)象和drm功能通常是眾所周知的,所以在此將不對(duì)其進(jìn)行更詳細(xì)描述。
解碼器208是內(nèi)容解碼器,該內(nèi)容解碼器能夠接收從drm客戶端206輸出的解密/訪問的內(nèi)容項(xiàng)并實(shí)行一個(gè)或多個(gè)內(nèi)容解碼操作(諸如解壓縮,格式轉(zhuǎn)換等)。如所述,內(nèi)容項(xiàng)可以包括任何種類的內(nèi)容,諸如音頻內(nèi)容,圖像內(nèi)容,視頻內(nèi)容,多媒體內(nèi)容,文本內(nèi)容等中的一個(gè)或多個(gè)。因此,由解碼器208實(shí)行的(一個(gè)或多個(gè))操作可以取決于內(nèi)容的性質(zhì),例如,如果內(nèi)容項(xiàng)包含壓縮的視頻內(nèi)容,則解碼器208可以實(shí)行視頻解壓縮操作。因此,可以具有單個(gè)解碼器208或者在不同的相應(yīng)類型的內(nèi)容上操作的多個(gè)解碼器208。
drm客戶端206和解碼器208可以被實(shí)現(xiàn)為用于在設(shè)備200的可信執(zhí)行環(huán)境中執(zhí)行的軟件或固件。在其他實(shí)施例中,drm客戶端206和解碼器208中的一個(gè)或兩者可以被實(shí)現(xiàn)為設(shè)備200的一個(gè)或多個(gè)安全硬件組件。
ca客戶端204被實(shí)現(xiàn)為一個(gè)或多個(gè)軟件模塊/組件(或計(jì)算機(jī)程序)。設(shè)備200不在可信執(zhí)行環(huán)境中執(zhí)行ca客戶端204,即,設(shè)備200在諸如設(shè)備200的soc設(shè)備的主處理器的未受保護(hù)的硬件處理環(huán)境中執(zhí)行ca客戶端204。因此,ca客戶端204在白盒環(huán)境中操作或執(zhí)行。因此,ca客戶端204被實(shí)現(xiàn)為安全或受保護(hù)的ca客戶端204,ca客戶端204的實(shí)現(xiàn)可以使用上述技術(shù)(在第2部分中)中的一個(gè)或多個(gè)或任何其他白盒保護(hù)技術(shù),以提供免受白盒攻擊的保護(hù)。類似地,可以使用在該技術(shù)領(lǐng)域中已知的其他軟件保護(hù)技術(shù)(諸如,節(jié)點(diǎn)鎖定,混淆等)來實(shí)現(xiàn)ca客戶端204。
設(shè)備200被布置為在輸入202處接收內(nèi)容項(xiàng)(c)。內(nèi)容項(xiàng)(c)以該內(nèi)容(c)的至少一部分被加密的形式在所述輸入處被接收,可使用至少一個(gè)解密密鑰(這里稱為控制字)對(duì)該內(nèi)容項(xiàng)的加密的至少一部分進(jìn)行解密。在圖2中,至少一個(gè)解密密鑰被表示為cwn(其中n是用于一個(gè)或多個(gè)解密密鑰的索引)。至少部分被加密的內(nèi)容項(xiàng)(c)被表示為{c}cwn。通常,在本說明書中,至少部分被加密并且可以使用密鑰k解密的數(shù)據(jù)d被表示為dn8uhelbkzumk。因此,輸入接收以{c}cwn的形式的內(nèi)容項(xiàng)(c)。
所接收的內(nèi)容項(xiàng){c}cwn不一定為適合于drm客戶端206進(jìn)行處理的格式。例如,所接收的內(nèi)容項(xiàng){c}cwn可以是根據(jù)dvb標(biāo)準(zhǔn)(例如具有mpeg2視頻)的廣播流的一部分,并且drm客戶端206不能處理該形式的這種內(nèi)容。如下文將描述的,ca客戶端204對(duì)所接收(受保護(hù)的)內(nèi)容項(xiàng){c}cwn實(shí)行ca處理,并且可以向drm客戶端206輸出適當(dāng)?shù)男畔?,以使drm客戶端能夠訪問/處理內(nèi)容項(xiàng)(c)。當(dāng)drm客戶端206是設(shè)備200的預(yù)先安裝的組件并且用戶在購(gòu)買設(shè)備200之后希望使用設(shè)備200來訪問與該drm客戶端206不兼容的受保護(hù)內(nèi)容項(xiàng)時(shí),這尤其有用,本發(fā)明的實(shí)施例使得用戶能夠以安全的方式訪問受保護(hù)的內(nèi)容項(xiàng)。
ca客戶端206包括(或?qū)崿F(xiàn))解密操作210的白盒實(shí)現(xiàn)和加密操作212的白盒實(shí)現(xiàn)。這些實(shí)現(xiàn)210和220可以是ca客戶端206的分開的組件或者可以被實(shí)現(xiàn)為ca客戶端206內(nèi)的單個(gè)白盒實(shí)現(xiàn)。
ca客戶端206被布置為獲得至少一個(gè)解密密鑰cwn的變換版本,該獲得將在后面更詳細(xì)地描述。在本文中將至少一個(gè)解密密鑰cwn的變換版本稱為ti(cwn),說明了至少一個(gè)解密密鑰cwn的變換版本ti(cwn)對(duì)應(yīng)于應(yīng)用到至少一個(gè)解密密鑰cwn的一個(gè)或多個(gè)變換ti下的至少一個(gè)解密密鑰cwn。一個(gè)或多個(gè)變換ti是在上面的第2部分中闡述的類型的變換,用于實(shí)現(xiàn)白盒保護(hù)的目的。
解密操作210的白盒實(shí)現(xiàn)接收或被提供或訪問至少一個(gè)解密密鑰cwn的變換版本ti(cwn)。解密操作210的白盒實(shí)現(xiàn)還接收或被提供或訪問所接收的內(nèi)容項(xiàng){c}cwn。然后,白盒實(shí)現(xiàn)210基于至少一個(gè)解密密鑰cwn對(duì)內(nèi)容項(xiàng){c}cwn的加密的至少一部分實(shí)行解密操作,以獲得該內(nèi)容項(xiàng)的至少一部分的中間版本(圖2中示出為tj(c))。為此,解密操作210的白盒實(shí)現(xiàn)使用至少一個(gè)解密密鑰cwn的變換版本ti(cwn)進(jìn)行操作,以便根據(jù)(或基于)至少一個(gè)解密密鑰cwn實(shí)行解密操作。上述第2部分提供了有關(guān)可如何將這樣的解密操作實(shí)現(xiàn)為白盒實(shí)現(xiàn)的細(xì)節(jié)。此外,ep2369778(其全部?jī)?nèi)容通過引用并入本文)提供了關(guān)于解密操作210如何以白盒保護(hù)方式來實(shí)現(xiàn)的細(xì)節(jié),該白盒保護(hù)方式使用至少一個(gè)解密密鑰cwn的變換版本ti(cwn)。
由于使用白盒實(shí)現(xiàn)210來實(shí)現(xiàn)解密操作,即使解密操作基于或者根據(jù)一個(gè)或多個(gè)解密密鑰cwn進(jìn)行,一個(gè)或多個(gè)解密密鑰cwn的(一個(gè)或多個(gè))值也不會(huì)對(duì)攻擊者保持隱藏。
優(yōu)選地,中間版本tj(c)是基于一個(gè)或多個(gè)變換tj在變換域中的內(nèi)容項(xiàng)(c)的至少一部分的表示。為了實(shí)現(xiàn)白盒保護(hù)的目的,該一個(gè)或多個(gè)變換tj是上述第2部分所述類型的變換。例如,一個(gè)或多個(gè)變換tj可以被實(shí)現(xiàn),或者與使用白盒實(shí)現(xiàn)210實(shí)現(xiàn)的解密操作的一個(gè)或多個(gè)處理步驟組合/合并(使得這些一個(gè)或多個(gè)變換tj的應(yīng)用不能夠被攻擊者去除或發(fā)現(xiàn))。這有助于防止攻擊者在解密操作210的白盒實(shí)現(xiàn)的輸出處訪問內(nèi)容項(xiàng)(c)的至少一部分的明文版本。
一個(gè)或多個(gè)變換tj可以是唯一的,或者特定于設(shè)備200(或特定于包括特定設(shè)備200的一組設(shè)備),這可以例如通過向設(shè)備200提供其自己的定制版本的ca客戶端204來獲?。?,對(duì)應(yīng)于具體設(shè)備或一組設(shè)備的ca客戶端204的特定/唯一實(shí)現(xiàn))。
加密操作212的白盒實(shí)現(xiàn)接收或被提供或訪問中間版本tj(c)。然后,白盒實(shí)現(xiàn)212基于至少一個(gè)加密密鑰(對(duì)應(yīng)于一個(gè)或多個(gè)解密密鑰dk)對(duì)中間版本tj(c)實(shí)行加密操作,以獲得重新加密的內(nèi)容(在圖2中示為{c}dk)。如果加密操作使用或基于對(duì)稱加密算法,則至少一個(gè)加密密鑰可以與對(duì)應(yīng)的一個(gè)或多個(gè)解密密鑰dk相同。借助于被嵌入到用于加密操作212的白盒實(shí)現(xiàn)的代碼內(nèi)(例如,以轉(zhuǎn)換的形式),可以保護(hù)一個(gè)或多個(gè)加密密鑰免受白盒攻擊。替代性地,設(shè)備200可以被布置為接收這些一個(gè)或多個(gè)加密密鑰的變換版本,并且被布置為以與下述方式相似的方式將這些一個(gè)或多個(gè)加密密鑰的變換版本作為輸入提供給加密操作212的白盒實(shí)現(xiàn),所述方式為:其中,解密操作210的白盒實(shí)現(xiàn)獲得一個(gè)或多個(gè)解密密鑰的變換版本。
如從上面在第2部分中的討論將顯而易見的,加密操作212的白盒實(shí)現(xiàn)可以補(bǔ)償用于中間版本tj(c)的一個(gè)或多個(gè)變換tj。再次,一個(gè)或多個(gè)變換tj的“撤銷(undoing)”可以與加密操作212的其他數(shù)據(jù)操作合并,使得攻擊者不能夠從加密操作212的白盒實(shí)現(xiàn)發(fā)現(xiàn)一個(gè)或多個(gè)變換tj。
因此,加密操作212的白盒實(shí)現(xiàn)輸出重新加密的內(nèi)容{c}dk。
ca客戶端204還包括圖2中所示的權(quán)利對(duì)象(或drm許可證)或?qū)D2中所示的權(quán)利對(duì)象(或drm許可證)儲(chǔ)存為ro(dk)。權(quán)利對(duì)象包括以受保護(hù)形式(例如,以加密形式)的一個(gè)或多個(gè)解密密鑰dk,或者使得drm客戶端206能夠獲得一個(gè)或多個(gè)解密密鑰dk(例如,drm服務(wù)器的url,可以從該url下載解密密鑰)的其他信息。例如,一個(gè)或多個(gè)解密密鑰dk可以使用密鑰kdrm來加密(該drm客戶端知道或者訪問該密鑰kdrm),使得drm客戶端206在接收到權(quán)利對(duì)象時(shí)可以獲得一個(gè)或多個(gè)解密密鑰dk。
在一些實(shí)施例中,權(quán)利對(duì)象被存儲(chǔ)為用于ca客戶端204的(受保護(hù)的)代碼的一部分。在其他實(shí)施例中,ca客戶端204被布置為(例如,從drm系統(tǒng)的drm服務(wù)器或頭端)接收權(quán)利對(duì)象,以使得然后ca客戶端204可以存儲(chǔ)或訪問權(quán)利對(duì)象。權(quán)利對(duì)象可以在與接收一個(gè)或多個(gè)加密密鑰的變換版本的同時(shí)(即,與其一起)以這種方式由設(shè)備200接收。
因此,ca客戶端204可以輸出:(a)權(quán)利對(duì)象,該權(quán)利對(duì)象使得drm客戶端206能夠獲得對(duì)應(yīng)于由加密操作212的白盒實(shí)現(xiàn)所使用的至少一個(gè)加密密鑰的一個(gè)或多個(gè)解密密鑰dk,其中這些一個(gè)或多個(gè)解密密鑰dk使得drm客戶端206能夠解密重新加密的內(nèi)容{c}dk和(b)重新加密的內(nèi)容{c}dk本身。然后可以將權(quán)利對(duì)象和重新加密的內(nèi)容{c}dk提供給drm客戶端206,以使drm客戶端206正常進(jìn)行處理。設(shè)備200(可能是ca客戶端204)可以包括或可以被布置為執(zhí)行drm包裝程序,該drm包裝程序被布置為接收權(quán)利對(duì)象和重新加密的內(nèi)容{c}dk并且創(chuàng)建drm對(duì)象,該drm對(duì)象包含權(quán)利對(duì)象和重新加密的內(nèi)容{c}dk并且適合于(或者符合)drm客戶端206的輸入接口或標(biāo)準(zhǔn),然后其可以是被提供給drm客戶端206的該drm對(duì)象。
如上所述,ca客戶端204獲得一個(gè)或多個(gè)解密密鑰cwn的變換版本ti(cwn)。在一些實(shí)施例中,設(shè)備200(在輸入202處)接收一個(gè)或多個(gè)解密密鑰cwn的變換版本tj(cwn)(例如,內(nèi)容項(xiàng)(c)的提供者或者ca系統(tǒng)的頭端可以將變換的版本tj(cwn)提供給設(shè)備200,例如在一個(gè)或多個(gè)授權(quán)控制消息中)。
替代性地,ca客戶端204可以包括密鑰管理器模塊214(其也可以被實(shí)現(xiàn)為白盒實(shí)現(xiàn))。密鑰管理器模塊214可以被布置為(例如,經(jīng)由一個(gè)或多個(gè)授權(quán)控制消息和/或一個(gè)或多個(gè)授權(quán)管理消息)接收密鑰信息并且基于接收到的密鑰信息生成一個(gè)或多個(gè)解密密鑰cwn的變換版本tj(cwn)。在ep2227015(其全部公開內(nèi)容通過引用并入本文中)中闡述了此情況的示例,應(yīng)當(dāng)理解,可以使用其他方法。優(yōu)選地,由密鑰管理器模塊214生成的一個(gè)或多個(gè)解密密鑰cwn的明文值不在任何點(diǎn)處。
一個(gè)或多個(gè)變換ti可以是唯一的,或者特定于設(shè)備200(或特定于包括特定設(shè)備200的一組設(shè)備)-這可以例如通過向設(shè)備200提供其自己的定制版本的ca客戶端204來實(shí)現(xiàn)(即,對(duì)應(yīng)于具體設(shè)備或一組設(shè)備的ca客戶端204的特定/唯一實(shí)現(xiàn))。
在輸入202處接收到的密鑰數(shù)據(jù)可以與(例如,在相同的傳輸流中的)內(nèi)容項(xiàng){c}cwn一起被接收。替代性地,在輸入202處接收的密鑰數(shù)據(jù)可以與內(nèi)容項(xiàng){c}cwn分開地被接收。
在圖2所示的示例實(shí)施例中,ca客戶端204包括密鑰管理器214(用以實(shí)行通常/已知的ca密鑰管理功能)以及解密操作210和加密操作212的白盒實(shí)現(xiàn)。因此,由于現(xiàn)有技術(shù)的ca客戶端不涉及或提供由解密操作210和加密操作212實(shí)行的內(nèi)容轉(zhuǎn)碼,因此,圖2的ca客戶端204可以被視為“擴(kuò)展”ca客戶端或“ca橋接”客戶端。在圖3所示的替代實(shí)施例中,解密操作210和加密操作212的白盒實(shí)現(xiàn)是與ca客戶端204分開的轉(zhuǎn)碼模塊300的一部分(ca客戶端將一個(gè)或更多的解密密鑰的變換版本提供給轉(zhuǎn)碼模塊300)。因此,更“標(biāo)準(zhǔn)的”ca客戶端204可以與轉(zhuǎn)碼模塊300一起使用,從而形成ca客戶端204與drm客戶端206之間的橋接。
因此,在一個(gè)實(shí)施例中,提供了一種提供對(duì)第一設(shè)備200處的內(nèi)容的訪問的方法m,所述方法包括:
接收內(nèi)容項(xiàng){c}cwn,其中,所述內(nèi)容項(xiàng)的至少一部分被加密,能夠使用至少一個(gè)解密密鑰對(duì)內(nèi)容項(xiàng)的加密的至少一部分進(jìn)行解密;
在第一軟件客戶端中:
獲得至少一個(gè)解密密鑰的變換版本ti(cwn);
基于至少一個(gè)解密密鑰對(duì)內(nèi)容項(xiàng)的加密的至少一部分實(shí)行解密操作,以獲得內(nèi)容項(xiàng)的至少一部分的中間版本tj(c),其中,所述實(shí)行解密操作使用形成第一軟件客戶端的一部分并且使用至少一個(gè)解密密鑰的變換版本進(jìn)行操作的解密操作210的白盒實(shí)現(xiàn);
基于至少一個(gè)加密密鑰對(duì)中間版本的至少一部分實(shí)行加密操作以獲得重新加密的內(nèi)容{c}dk,其中所述實(shí)行加密操作使用形成第一軟件客戶端的一部分的加密操作212的白盒實(shí)現(xiàn);
向在第一設(shè)備上執(zhí)行的drm客戶端206提供:(a)權(quán)利對(duì)象,該權(quán)利對(duì)象使得drm客戶端206能夠獲得與至少一個(gè)加密密鑰相對(duì)應(yīng)的一個(gè)或多個(gè)第二解密密鑰,該一個(gè)或多個(gè)第二解密密鑰使得drm客戶端206能夠解密重新加密的內(nèi)容,以及(b)重新加密的內(nèi)容。
這里,第一軟件客戶端可以是轉(zhuǎn)碼模塊300,ca客戶端204或ca客戶端204的一部分(至少部分地由解密操作210的白盒實(shí)現(xiàn)以及加密操作212的白盒實(shí)現(xiàn)形成)。
4-修改
在一些實(shí)施例中,ca客戶端204可以被布置為在加密中間版本tj(c)的加密操作212的白盒實(shí)現(xiàn)之前修改中間版本tj(c)。這樣的修改可以包括以下中的一個(gè)或多個(gè):(a)在中間版本的至少一部分中嵌入水??;(b)在中間版本的至少一部分中嵌入指紋(這里,指紋可以識(shí)別例如設(shè)備200和/或ca客戶端204和/或drm客戶端206);以及(c)將中間版本tj(c)從第一格式轉(zhuǎn)換成第二格式(例如,從一種數(shù)據(jù)壓縮格式(其可以是drm客戶端206不能夠處置/處理的格式)移動(dòng)到一數(shù)據(jù)壓縮格式(drm客戶端206被配置為處置/處理該數(shù)據(jù)壓縮格式)。
一般來說,drm客戶端206和解碼器208將預(yù)先安裝在設(shè)備200上(因?yàn)樵诒景l(fā)明的大多數(shù)實(shí)施例中,它們將在可信執(zhí)行環(huán)境中實(shí)現(xiàn))。然而,ca客戶端204本身可以在任何時(shí)間點(diǎn)(包括在用戶已經(jīng)購(gòu)買(并且持有)設(shè)備200之后)被下載到設(shè)備200上或者加載/安裝在設(shè)備200上。例如,ca客戶端204可以是可用于從網(wǎng)站(諸如,移動(dòng)電話的應(yīng)用商店)下載的軟件應(yīng)用,設(shè)備200的用戶然后可以將ca客戶端204下載到設(shè)備上,使得可以獲取上述的益處。類似地,關(guān)于圖3的實(shí)施例,轉(zhuǎn)碼模塊300(或用于執(zhí)行上述方法m的任何計(jì)算機(jī)程序)可以是可用于從網(wǎng)站(諸如,移動(dòng)電話的應(yīng)用商店)下載的軟件應(yīng)用,設(shè)備200的用戶然后可以將轉(zhuǎn)碼模塊300下載到設(shè)備上,使得可以獲取上述的益處。
上述所有示例性實(shí)施例涉及在與drm客戶端206和解碼器208相同的設(shè)備上執(zhí)行的ca客戶端204。在替代實(shí)施例中,ca客戶端204(和輸入202)在與drm客戶端206和解碼器208在其上執(zhí)行的設(shè)備200不同/分開的第二設(shè)備上執(zhí)行。例如,輸入202和ca客戶端204可以在經(jīng)由家庭網(wǎng)絡(luò)連接到一個(gè)或多個(gè)設(shè)備的接收機(jī)(或機(jī)頂盒)上執(zhí)行,其中,這些設(shè)備中的至少一個(gè)被布置為執(zhí)行drm客戶端206和解碼器208。替代性地,輸入202和ca客戶端204可以在接收機(jī)(或機(jī)頂盒)上執(zhí)行,該接收機(jī)(或機(jī)頂盒)將重新加密的內(nèi)容存儲(chǔ)在中間設(shè)備(諸如,視頻服務(wù)器或家庭媒體服務(wù)器)上-然后可以由設(shè)備在稍后的階段訪問該重新加密的內(nèi)容,該設(shè)備被布置為執(zhí)行drm客戶端206和解碼器208。
優(yōu)選地,由加密操作212的白盒實(shí)現(xiàn)使用的一個(gè)或多個(gè)加密密鑰是唯一的,或者特定于設(shè)備200(或者特定于包括特定設(shè)備200的一組設(shè)備)或者特定于設(shè)備200上的drm客戶端206的具體實(shí)例-這可以例如通過向設(shè)備200提供其自己的定制版本的ca客戶端204來實(shí)現(xiàn)(即,對(duì)應(yīng)于具體設(shè)備或一組設(shè)備或者對(duì)應(yīng)于設(shè)備200上的drm客戶端的具體實(shí)例的ca客戶端204的特定/唯一實(shí)現(xiàn))。
優(yōu)選地,一個(gè)或多個(gè)加密密鑰不與內(nèi)容項(xiàng)相關(guān)聯(lián)-一個(gè)或多個(gè)加密密鑰的目的是將ca客戶端204與drm客戶端206綁定,使得ca客戶端204可以與drm客戶端206的屬性(諸如,錨定到設(shè)備200)和/或drm客戶端206的功能(諸如,其根據(jù)具體的drm系統(tǒng)實(shí)行drm處理的能力)鏈接或使用和利用drm客戶端206的屬性和/或drm客戶端206的功能,而ca客戶端204本身不必提供這些屬性或者該功能。一個(gè)或多個(gè)加密密鑰可以是靜態(tài)的。替代性地,可以更新一個(gè)或多個(gè)加密密鑰,但是這不需要頻繁地發(fā)生,因此(例如,到drm服務(wù)器的)連接要求是最小的。
在一些實(shí)施例中,輸入202經(jīng)由廣播網(wǎng)絡(luò)(諸如,衛(wèi)星通信網(wǎng)絡(luò)或有線網(wǎng)絡(luò))接收由ca客戶端204使用的內(nèi)容項(xiàng){c}cwn和/或變換密鑰(或密鑰信息)。在一些實(shí)施例中,輸入202經(jīng)由寬帶網(wǎng)絡(luò)(其可以包括例如因特網(wǎng))接收由ca客戶端204使用的內(nèi)容項(xiàng){c}cwn和/或變換密鑰(或密鑰信息)。
ca客戶端204可以實(shí)行任何相關(guān)聯(lián)的ca處理。例如,ca客戶端204可以使用密鑰管理器214來實(shí)行已知的密鑰管理功能。例如,ca客戶端204可以至少部分地基于ca客戶端204是否檢測(cè)到訪問內(nèi)容項(xiàng)(c)的有效授權(quán)來控制解密操作210和/或加密操作212。這樣的授權(quán)可以由ca客戶端204經(jīng)由本技術(shù)領(lǐng)域中已知的例如授權(quán)管理消息來接收。例如,如果ca客戶端204檢測(cè)到有效授權(quán),則ca客戶端204可以僅向解密操作210提供一個(gè)或多個(gè)解密密鑰(cwn)的變換版本ti(cwn),或者,如果ca客戶端204沒有檢測(cè)到有效授權(quán),則ca客戶端204可以向解密操作210提供一個(gè)或多個(gè)解密密鑰的無效變換版本。
解密操作210可以至少部分地基于適合于經(jīng)由白盒實(shí)現(xiàn)(諸如,aes解密算法或三重des解密算法)來實(shí)現(xiàn)的任何解密算法。類似地,加密操作212可以至少部分地基于適合于通過白盒實(shí)現(xiàn)(諸如,aes加密算法或三重des加密算法)來實(shí)現(xiàn)的任何加密算法。一些實(shí)施例可以利用非對(duì)稱加密或解密操作210,212,其也可以被實(shí)現(xiàn)為白盒實(shí)現(xiàn)。
如上所述,中間版本tj(c)的至少一部分由加密操作212重新加密。在一些實(shí)施例中,該部分不是全部中間版本tj(c)。在這種情況下,在尚未被重新加密的情況下,可以向drm客戶端206提供不對(duì)應(yīng)于該部分的內(nèi)容項(xiàng)c的至少一些(或可能全部),例如,解密操作210可以生成未被加密操作212重新加密的內(nèi)容項(xiàng)c的解密/明文部分,內(nèi)容項(xiàng)c的那些解密/明文部分被傳遞給drm客戶端206(潛在地作為drm對(duì)象的一部分,即,與重新加密的內(nèi)容{c}dk一起)。這有助于節(jié)省由設(shè)備200實(shí)行的處理量。作為示例,重新加密可以是電影的視頻部分(內(nèi)容項(xiàng)),其中,電影的音頻部分不被重新加密。
上述所有示例性實(shí)施例都利用ca客戶端204。在替代實(shí)施例中,由第二drm客戶端替代ca客戶端204。這使得第二drm系統(tǒng)(第二drm客戶端對(duì)應(yīng)于該第二drm系統(tǒng))能夠使用第一drm系統(tǒng)(第一drm客戶端對(duì)應(yīng)于該第一drm系統(tǒng))來提供對(duì)內(nèi)容的訪問。在任一情況下(即,無論使用ca客戶端204還是使用第二drm客戶端204),本發(fā)明的實(shí)施例使得與設(shè)備200上的預(yù)先安裝的drm客戶端206不兼容的內(nèi)容能夠被以安全/受保護(hù)的方式在設(shè)備200上訪問。
應(yīng)當(dāng)理解,所描述的方法已經(jīng)被示出為以特定順序執(zhí)行的各個(gè)步驟。然而,技術(shù)人員將理解,這些步驟可以以不同的順序組合或執(zhí)行,同時(shí)仍然實(shí)現(xiàn)期望的結(jié)果。
應(yīng)當(dāng)理解,可以使用各種不同的信息處理系統(tǒng)來實(shí)現(xiàn)本發(fā)明的實(shí)施例。特別地,盡管附圖及其討論提供了示例性的計(jì)算系統(tǒng)和方法,但提出這些僅僅是為了在討論本發(fā)明的各個(gè)方面時(shí)提供有用的參考。本發(fā)明的實(shí)施例可以在諸如個(gè)人計(jì)算機(jī),膝上型計(jì)算機(jī),個(gè)人數(shù)字助理,移動(dòng)電話,機(jī)頂盒,電視機(jī),服務(wù)器計(jì)算機(jī)等的任何合適的數(shù)據(jù)處理設(shè)備上實(shí)現(xiàn)。當(dāng)然,為了討論的目的,已經(jīng)簡(jiǎn)化了系統(tǒng)和方法的描述,并且它們僅僅是可用于本發(fā)明的實(shí)施例的許多不同類型的系統(tǒng)和方法之一。應(yīng)當(dāng)理解,邏輯塊之間的邊界僅僅是說明性的,并且替代實(shí)施例可以合并邏輯塊或元件,或者可以根據(jù)各種邏輯塊或元件來施加功能的替代分解。
應(yīng)當(dāng)理解,上述功能可以作為硬件和/或軟件實(shí)現(xiàn)為一個(gè)或多個(gè)相應(yīng)的模塊。例如,上述功能可以被實(shí)現(xiàn)為用于由系統(tǒng)的處理器執(zhí)行的一個(gè)或多個(gè)軟件組件。替代性地,上述功能可以被實(shí)現(xiàn)為諸如在一個(gè)或多個(gè)現(xiàn)場(chǎng)可編程門陣列(fpga)和/或一個(gè)或多個(gè)專用集成電路(asic)上的硬件,和/或一個(gè)或多個(gè)數(shù)字信號(hào)處理器(dsp)和/或其他硬件布置。在此處包含的或如上所述的流程圖中實(shí)現(xiàn)的方法步驟可各自由相應(yīng)的各個(gè)模塊實(shí)現(xiàn);可以由單個(gè)模塊一起實(shí)現(xiàn)在此處包含的或如上所述的流程圖中實(shí)現(xiàn)的多個(gè)方法步驟。
應(yīng)當(dāng)理解,只要本發(fā)明的實(shí)施例由計(jì)算機(jī)程序?qū)崿F(xiàn),則存儲(chǔ)或載有計(jì)算機(jī)程序的一個(gè)或多個(gè)存儲(chǔ)介質(zhì)和/或一個(gè)或多個(gè)傳輸介質(zhì)形成本發(fā)明的方面。計(jì)算機(jī)程序可以具有一個(gè)或多個(gè)程序指令或程序代碼,當(dāng)由一個(gè)或多個(gè)處理器(或一個(gè)或多個(gè)計(jì)算機(jī))執(zhí)行時(shí),程序指令或程序代碼實(shí)行本發(fā)明的實(shí)施例。如本文所使用的術(shù)語(yǔ)“程序”可以是設(shè)計(jì)用于在計(jì)算機(jī)系統(tǒng)上執(zhí)行的指令序列,并且可以包括子例程,函數(shù),過程,模塊,對(duì)象方法,對(duì)象實(shí)現(xiàn),可執(zhí)行應(yīng)用,小程序,小服務(wù)程序,源代碼,目標(biāo)代碼,字節(jié)代碼,共享庫(kù),動(dòng)態(tài)鏈接庫(kù)和/或設(shè)計(jì)用于在計(jì)算機(jī)系統(tǒng)上執(zhí)行的其他指令序列。存儲(chǔ)介質(zhì)可以是磁盤(諸如,硬盤驅(qū)動(dòng)器或軟盤),光盤(諸如cd-rom,dvd-rom或bluray盤)或存儲(chǔ)器(諸如rom,ram,eeprom,eprom,閃存或便攜式/可移動(dòng)存儲(chǔ)設(shè)備)等。傳輸介質(zhì)可以是通信信號(hào),數(shù)據(jù)廣播,兩臺(tái)或多臺(tái)計(jì)算機(jī)之間的通信鏈路等。