本文所公開的各種示例性實(shí)施例大體上涉及針對(duì)差異性錯(cuò)誤分析(dfa)攻擊的安全加密函數(shù)。
背景技術(shù):
互聯(lián)網(wǎng)向使用者提供對(duì)數(shù)字內(nèi)容的方便和廣泛的訪問。因?yàn)榛ヂ?lián)網(wǎng)是強(qiáng)有力的分發(fā)渠道,許多用戶裝置力求直接訪問互聯(lián)網(wǎng)。用戶裝置可包括個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、機(jī)頂盒、支持互聯(lián)網(wǎng)的媒體播放器、移動(dòng)電話、智能電話、平板計(jì)算機(jī)、移動(dòng)熱點(diǎn)或能夠訪問互聯(lián)網(wǎng)的任何其它裝置。使用互聯(lián)網(wǎng)作為用于有版權(quán)內(nèi)容的分發(fā)媒體對(duì)保證內(nèi)容提供商的興趣產(chǎn)生有力的挑戰(zhàn)。用戶裝置越來越多地使用加載有合適軟件的處理器來操作以呈現(xiàn)(重放)數(shù)字內(nèi)容例如音頻和/或視頻。重放軟件的控制是一種強(qiáng)制執(zhí)行內(nèi)容所有者的利益(包括內(nèi)容可依據(jù)其被使用的條款)的方式。先前,許多用戶裝置是封閉系統(tǒng)。當(dāng)今越來越多的平臺(tái)是部分開放的??杉俣ㄒ恍┦褂谜呔哂袑?duì)于提供對(duì)內(nèi)容的訪問的硬件和軟件的完全控制和訪問權(quán),并且具有大量時(shí)間和資源來攻擊和繞過任何內(nèi)容保護(hù)機(jī)制。因此,內(nèi)容提供商必須跨越到其中并非所有使用者或用戶裝置可信任的團(tuán)體的敵對(duì)網(wǎng)絡(luò)將內(nèi)容遞送給合法使用者。
通常想到將加密算法設(shè)計(jì)成具有黑攻擊模型。這意味著攻擊者被假定為僅具有對(duì)算法的輸入/輸出行為的訪問權(quán)。然而,實(shí)際上,攻擊者通常可以訪問更多信息。舉例來說,攻擊者可訪問在執(zhí)行算法時(shí)的側(cè)信道信息。在此情況下攻擊模型被稱作灰盒。在大多數(shù)極端的情況下,被稱作白盒攻擊模型,攻擊者甚至可完全訪問和完全控制運(yùn)行算法的執(zhí)行環(huán)境。
在白盒攻擊模型中,在執(zhí)行各種函數(shù),例如用于保護(hù)和鑒別數(shù)字內(nèi)容的加密函數(shù)時(shí),可調(diào)用安全軟件應(yīng)用。為了對(duì)抗攻擊,這些算法必須被混淆(隱藏)以便防止算法的逆向工程和修改或禁止獲得使用者特定的安全信息。因此,安全軟件應(yīng)用的功能可通過由實(shí)施該安全軟件的處理器的指令集定義的各種函數(shù)來執(zhí)行。例如,模糊這些函數(shù)的一種方式是通過使用查找表。
內(nèi)容提供商必須跨越到其中并非所有使用者或裝置可信任的團(tuán)體的敵對(duì)網(wǎng)絡(luò)將內(nèi)容遞送給合法使用者。在一些情況下,用戶裝置可具有有助于內(nèi)容分發(fā)的硬件加密解決方案。即使此硬件解決方案僅可允許觀察輸入和輸出,它也有可能如上所述被攻擊者用來獲得對(duì)側(cè)信道信息的訪問,從而允許攻擊者擊敗加密函數(shù)。
硬件加密解決方案不可行的情況已引起白盒密碼術(shù)的演變。在白盒加密情形中,假定使用者具有對(duì)提供內(nèi)容訪問權(quán)的硬件和軟件的完全控制,以及攻擊和繞過任何內(nèi)容保護(hù)機(jī)制的不受限制的時(shí)間和資源量。強(qiáng)制執(zhí)行內(nèi)容可依據(jù)其來使用的條款的安全軟件代碼應(yīng)是防篡改的。數(shù)字版權(quán)管理為安全軟件應(yīng)用的共同應(yīng)用。用于分發(fā)到用戶裝置的受保護(hù)內(nèi)容的數(shù)字版權(quán)管理中的一般方法是使用例如des(數(shù)據(jù)加密標(biāo)準(zhǔn))、aes(高級(jí)加密標(biāo)準(zhǔn))或使用其它已知加密方案對(duì)數(shù)字內(nèi)容進(jìn)行加密,并使用解密密鑰來恢復(fù)數(shù)字內(nèi)容。這些解密密鑰必須被保護(hù)以防止對(duì)受保護(hù)材料的未授權(quán)的訪問。
在數(shù)字版權(quán)管理的情形中,攻擊者具有對(duì)強(qiáng)制執(zhí)行受保護(hù)內(nèi)容的管理和訪問的軟件的完全控制。因此,攻擊者可以修改軟件并且也搜尋以獲得用于對(duì)受保護(hù)內(nèi)容進(jìn)行加密的加密密鑰。此類密鑰可通過分析軟件來發(fā)現(xiàn)。
加密函數(shù)的白盒和灰盒實(shí)施方案兩者經(jīng)受側(cè)信道攻擊。此類攻擊在擊敗加密函數(shù)時(shí)中可能成功。
技術(shù)實(shí)現(xiàn)要素:
各種示例性實(shí)施例的簡(jiǎn)要概述在下文呈現(xiàn)。在以下概述中可以做出一些簡(jiǎn)化和省略,其意在突出并介紹各種示例性實(shí)施例的一些方面,而非限制本發(fā)明的范圍。足以允許本領(lǐng)域的普通技術(shù)人員制作并使用本發(fā)明概念的示例性實(shí)施例的詳細(xì)描述將在后續(xù)章節(jié)呈現(xiàn)。
各種實(shí)施例涉及用于通過帶密鑰的加密運(yùn)算來執(zhí)行將輸入消息映射到輸出消息的裝置,其中,該帶密鑰的加密運(yùn)算包括多輪,該裝置包括:存儲(chǔ)器;以及與該存儲(chǔ)器通信的處理器,該處理器被配置成:拆分在第一輪中所處理的數(shù)據(jù)以產(chǎn)生第一輸出和第二輸出,其中,第一輸出等于第二輸出;通過第二輪處理第一輸入以產(chǎn)生第三輸出,其中,第一輸入基于第一輸出;通過第二輪處理第二輸入以產(chǎn)生第四輸出,其中,第二輸入基于第二輸出;通過第三輪處理第三輸入以使用第一權(quán)重產(chǎn)生第一共享,其中,第三輸入基于第三輸出;通過第三輪處理第四輸入以使用第二權(quán)重產(chǎn)生第二共享,其中,第一權(quán)重和第二權(quán)重互補(bǔ),其中,第四輸入基于第四輸出;組合第一共享和第二共享以產(chǎn)生組合輸出;以及通過第四輪處理該組合輸出。
另外的各種實(shí)施例涉及經(jīng)指令編碼的非暫時(shí)性機(jī)器可讀存儲(chǔ)媒體,該指令用于通過帶密鑰的加密運(yùn)算來實(shí)施將輸入消息映射到輸出消息,其中,該帶密鑰的加密運(yùn)算包括多輪,該非暫時(shí)性機(jī)器可讀存儲(chǔ)媒體包括:用于拆分在第一輪中所處理的數(shù)據(jù)以產(chǎn)生第一輸出和第二輸出的指令,其中,第一輸出等于第二輸出;用于通過第二輪處理第一輸入以產(chǎn)生第三輸出的指令,其中,第一輸入基于第一輸出;用于通過第二輪處理第二輸入以產(chǎn)生第四輸出的指令,其中,第二輸入基于第二輸出;用于通過第三輪處理第三輸入以使用第一權(quán)重產(chǎn)生第一共享的指令,其中,第三輸入基于第三輸出;用于通過第三輪處理第四輸入以使用第二權(quán)重產(chǎn)生第二共享的指令,其中,第一權(quán)重和第二權(quán)重互補(bǔ),其中,第四輸入基于第四輸出;用于組合第一共享和第二共享以產(chǎn)生組合輸出的指令;以及用于通過第四輪處理該組合輸出的指令。
另外的各種實(shí)施例涉及通過帶密鑰的加密運(yùn)算將輸入消息映射到輸出消息的方法,其中,該帶密鑰的加密運(yùn)算包括多輪,該方法包括:拆分在第一輪中所處理的數(shù)據(jù)以產(chǎn)生第一輸出和第二輸出,其中,第一輸出等于第二輸出;通過第二輪處理第一輸入以產(chǎn)生第三輸出,其中,第一輸入基于第一輸出;通過第二輪處理第二輸入以產(chǎn)生第四輸出,其中,第二輸入基于第二輸出;通過第三輪處理第三輸入以使用第一權(quán)重產(chǎn)生第一共享,其中,第三輸入基于第三輸出;通過第三輪處理第四輸入以使用第二權(quán)重產(chǎn)生第二共享,其中,第一權(quán)重和第二權(quán)重互補(bǔ),其中,第四輸入基于第四輸出;組合第一共享和第二共享以產(chǎn)生組合輸出;以及通過第四輪處理該組合輸出。
描述了各種實(shí)施例,其中,多輪包括替換函數(shù)和仿射變換。
描述了各種實(shí)施例,其中:該加密運(yùn)算為高級(jí)加密標(biāo)準(zhǔn)(aes)運(yùn)算;一輪包括中間狀態(tài)乘以矩陣mr的矩陣乘法,其中,r指定該輪;通過第三輪處理第三輸入以使用第一權(quán)重產(chǎn)生第一共享包括將m3乘以
通過第三輪處理第四輸入以使用第二權(quán)重產(chǎn)生第二共享包括將m3乘以
描述了各種實(shí)施例,其中,組合第一共享和第二共享以產(chǎn)生組合輸出包括對(duì)該第一共享和第二共享進(jìn)行異或運(yùn)算。
描述了各種實(shí)施例,其中,加密運(yùn)算為數(shù)據(jù)加密標(biāo)準(zhǔn)(des)運(yùn)算。
描述了各種實(shí)施例,其中,第一權(quán)重通過隨機(jī)生成器隨機(jī)生成以用于第三輪的每次執(zhí)行。
描述了各種實(shí)施例,其中,第一權(quán)重通過硬件隨機(jī)生成器隨機(jī)生成以用于第三輪的每次執(zhí)行。
描述了各種實(shí)施例,其中,第一權(quán)重基于第一輪的輸出來選擇。
附圖說明
為了更好地理解各種示例性實(shí)施例,參考附圖,其中:
圖1示出aes的一輪的主要步驟;
圖2示出具有對(duì)一輪的輸入的固定編碼的白盒aes實(shí)施方案;
圖3示出借助于查找表網(wǎng)絡(luò)的一個(gè)輸出半字節(jié)的計(jì)算;
圖4示出通過編碼輸入和輸出來混淆的圖3的網(wǎng)絡(luò)表格的一部分;以及
圖5示出用于提供用戶裝置安全內(nèi)容以及處理該安全內(nèi)容的軟件應(yīng)用的系統(tǒng)。
為了便于理解,相同的附圖標(biāo)號(hào)已用于指代具有大體上相同或類似結(jié)構(gòu)和/或大體上相同或類似功能的要素。
具體實(shí)施方式
描述和附圖示出了本發(fā)明的原理。因此應(yīng)理解,本領(lǐng)域的技術(shù)人員應(yīng)能夠設(shè)計(jì)出各種布置,盡管本文中未明確地描述或示出該布置,但其體現(xiàn)了本發(fā)明的原理且包括在其范圍內(nèi)。此外,本文中所述的所有例子主要明確地意在用于教學(xué)目的以輔助讀者理解本發(fā)明的原理及由本發(fā)明人所提供的概念,從而深化所屬領(lǐng)域,且所有例子應(yīng)解釋為不限于此類特定所述例子及條件。另外,除非以其它方式指明(例如,“否則”或“或在可替換方案中”),否則本文所使用的術(shù)語“或”指代非排他性的“或”(即,“和/或”)。并且,本文所描述的各種實(shí)施例不一定相互排斥,因?yàn)橐恍?shí)施例可以與一個(gè)或多個(gè)其它實(shí)施例組合以形成新的實(shí)施例。
下面用于對(duì)抗差異性錯(cuò)誤分析(dfa)攻擊的方法和技術(shù)將在白盒攻擊模型的情形下描述,但是所述方法和技術(shù)也可應(yīng)用于適用灰盒模型的硬件加密解決方案,因?yàn)閐fa可對(duì)硬件加密解決方案執(zhí)行。
相對(duì)于硬件實(shí)施方案優(yōu)選加密算法的軟件實(shí)施方案存在若干原因。舉例來說,這可能是因?yàn)檐浖鉀Q方案在密鑰泄露的情況下可更新,因?yàn)槠渚哂休^低成本,或因?yàn)閼?yīng)用開發(fā)者對(duì)在其中實(shí)施白盒系統(tǒng)的硬件沒有影響。雖然下面的實(shí)施例的描述涉及在處理器上運(yùn)行的軟件實(shí)施方案,但應(yīng)指出這些實(shí)施例也可同樣部分或完全地在硬件中實(shí)施。所述的查找表和有限狀態(tài)機(jī)可在硬件中實(shí)施以執(zhí)行所述的各種函數(shù)。
下文所述的在白盒實(shí)施方案中使用拆分和合并方法的實(shí)施例也可應(yīng)用于攻擊者可能應(yīng)用差異性錯(cuò)誤分析(dfa)攻擊的灰盒加密實(shí)施方案。
下面的論文中提出了針對(duì)高級(jí)加密標(biāo)準(zhǔn)(aes)和數(shù)據(jù)加密標(biāo)準(zhǔn)(des)的白盒實(shí)施方案的基于表格的方法:由stanleychow、philipeisen、haroldjohnson和paulc.vanoorschot在2002年8月15-16日在加拿大紐芬蘭島圣約翰的sac2002第9屆“選定區(qū)域的加密術(shù)”國際研討會(huì)的“white-boxcrytographyandanaesimplementation(白盒加密術(shù)和aes實(shí)施方案)”,該論文在下文中被稱為“chow1”;以及由stanleychow、phileisen、haroldjohnson和paulc.vanoorschot在2002年11月18日在美國華盛頓特區(qū)的數(shù)字版權(quán)管理:drm2002acmccs-9研討會(huì)的“awhite-boxdesimplementationfordrmapplications(用于drm應(yīng)用的白盒des實(shí)施方案)”,該論文在下文中被稱為“chow2”。chow1和chow2公開了使用基于表格的方法,通過用隨機(jī)雙映射來編碼加密密鑰的表格和通過將加密邊界遠(yuǎn)推到包含的應(yīng)用中以延伸該加密邊界的組合來隱藏加密密鑰的方法。
如所提到,對(duì)于許多加密運(yùn)算而言,期望具有白盒實(shí)施方案。本發(fā)明可應(yīng)用于例如對(duì)稱和不對(duì)稱加密運(yùn)算。并且,本發(fā)明可應(yīng)用于塊加密、流加密、消息驗(yàn)證方案、簽名方案等。應(yīng)指出,本發(fā)明也可應(yīng)用于散列函數(shù)。后者在以下情況下尤其有用:如果散列函數(shù)被用作處理機(jī)密信息,例如秘密密鑰、秘密數(shù)據(jù)等的構(gòu)建塊。例如,本發(fā)明可應(yīng)用于用在帶密鑰的散列消息認(rèn)證碼(hmac或khmac)中的散列函數(shù)。熟知的塊加密包括:高級(jí)加密標(biāo)準(zhǔn)(aes)、安全并快速的加密例程(safer及其變體safer+和safer++)、blowfish加密法、數(shù)據(jù)加密標(biāo)準(zhǔn)(des)等。熟知的流加密為rc4。此外,任何塊加密可以用作使用適當(dāng)?shù)倪\(yùn)算模式,例如加密反饋(cfb)、計(jì)數(shù)器模式(ctr)等的流加密。
輸入消息可以表示例如已加密的內(nèi)容數(shù)據(jù),例如包括音頻和/或視頻數(shù)據(jù)的多媒體數(shù)據(jù)。已加密的內(nèi)容數(shù)據(jù)也可包括加密軟件,例如表示一些計(jì)算機(jī)應(yīng)用,例如計(jì)算機(jī)游戲或辦公室應(yīng)用的加密計(jì)算機(jī)代碼。輸入消息也可表示供在另外加密運(yùn)算中使用的密鑰。后者可被用在例如密鑰交換協(xié)議中,其中,根據(jù)本發(fā)明的白盒實(shí)施方案加密和/或解密表示新密鑰的數(shù)據(jù)。輸入數(shù)據(jù)也可為純數(shù)據(jù),例如純用戶數(shù)據(jù)。后者在消息驗(yàn)證方案中尤其有利。根據(jù)本發(fā)明的白盒實(shí)施方案可具有該實(shí)施方案僅可用于加密、僅可用于解密而非用于兩者的特性。例如,如果實(shí)施方案使用不是雙映射的查找表,例如具有比輸出位更多的輸入位的查找表,則可以實(shí)現(xiàn)此特性。因此,如果使用者僅具有白盒解密器,則他可能驗(yàn)證mac代碼而非產(chǎn)生新的mac。這強(qiáng)化了此消息認(rèn)證方案的抗抵賴特性。
白盒實(shí)施方案可使用多個(gè)基本塊來實(shí)施。多個(gè)基本塊為互連的,在這個(gè)意義上,塊中的一些塊針對(duì)先前塊中的一個(gè)或多個(gè)塊的輸出來構(gòu)建?;緣K可例如作為計(jì)算機(jī)芯片在硬件中實(shí)施?;緣K可使用開關(guān)板、狀態(tài)機(jī)或用于在計(jì)算機(jī)硬件中實(shí)施功能的任何其它合適的構(gòu)造?;緣K也可在運(yùn)行于通用計(jì)算機(jī)芯片,例如微處理器上的軟件中實(shí)施。例如,基本塊可使用包括算術(shù)指令的多個(gè)計(jì)算機(jī)指令,它們一起實(shí)施基本塊的功能。可在軟件和硬件兩者中使用的基本塊的廣泛使用的實(shí)施方案為查找表。例如,chow1和chow2采用此方法來實(shí)施aes和des塊加密。查找表實(shí)施方案包括列出可能的輸入值、輸出值的列表。在查找表中的輸入值可為明確的。在此情況下,通過在列表中搜索特定輸入的輸入值,查找表實(shí)施方案可以將特定輸入映射到特定輸出。在發(fā)現(xiàn)特定輸入時(shí),則也發(fā)現(xiàn)特定輸出。例如,特定輸出可與特定輸入在一起存儲(chǔ)。優(yōu)選地,輸入值未明確存儲(chǔ),而僅是暗含存儲(chǔ)。例如,如果可能的輸入為例如數(shù)值或位串的連續(xù)范圍,則查找表可被限制于存儲(chǔ)輸出值的列表。例如,特定輸入數(shù)值可被映射到存儲(chǔ)在由該數(shù)值所指示的位置的特定輸出。另外,有限狀態(tài)機(jī)或代碼混淆可被用于實(shí)施白盒實(shí)施方案。
例如,通過計(jì)算函數(shù)的可能輸入的函數(shù)輸出值并在列表中存儲(chǔ)該輸出,可產(chǎn)生用于函數(shù)的查找表。如果函數(shù)取決于多個(gè)輸入,則可計(jì)算并存儲(chǔ)用于該多個(gè)輸入的所有可能組合的輸出。查找表特別適合于實(shí)施非線性函數(shù),其以不規(guī)律的方式將輸入映射到輸出。通過向白盒實(shí)施方案的查找表中的一個(gè)或多個(gè)查找表應(yīng)用固定混淆輸入編碼和固定輸出編碼,該白盒實(shí)施方案可以另外被混淆,如下面所解釋。接著,應(yīng)用固定混淆輸入編碼和輸出編碼的結(jié)果被徹底預(yù)評(píng)估。通過使用此技術(shù),查找表將被具有相同維度的混淆查找表代替,其采用相同數(shù)量的輸入位并產(chǎn)生相同數(shù)量的輸出位。用在此類混淆中的輸入編碼和輸出編碼在最終的白盒實(shí)施方案中是不明確的。
基本塊的網(wǎng)絡(luò)被布置成在向它們呈現(xiàn)輸入消息時(shí)計(jì)算輸出消息。通常,輸入消息通過多個(gè)基本輸入塊來運(yùn)算。多個(gè)另外基本塊可從基本輸入塊中的一個(gè)或多個(gè)基本輸入塊和/或從該輸入取得輸入。另外基本塊可以在輸入消息、基本輸入塊的輸出和另外基本塊的輸出的任何組合中取得輸入。最后,基本出口塊的一些集合,即至少一個(gè)基本出口塊產(chǎn)生輸出消息的全部或部分作為輸出。以此方式顯現(xiàn)基本塊的網(wǎng)絡(luò),其共同計(jì)算從輸入消息到輸出消息的映射。
所使用的密鑰可為加密密鑰,且可包含足夠的熵以承受所預(yù)見的暴力攻擊。應(yīng)指出,在白盒實(shí)施方案中,密鑰通常未明確存在于該實(shí)施方案中。這將降低通過檢測(cè)該實(shí)施方案發(fā)現(xiàn)密鑰的風(fēng)險(xiǎn)。通常,該密鑰僅隱含存在。在加密系統(tǒng)中隱藏密鑰的各種方式是已知的。通常,至少使用部分評(píng)估的方法,其中,需要密鑰輸入的基本塊在其并不取決于輸入消息的情況下被評(píng)估。例如,其中并不取決于輸入消息的輸入值、掩蔽值,例如來自替換盒(s盒)的值和密鑰值需要進(jìn)行異或運(yùn)算的基本運(yùn)算可以通過將該密鑰值和該掩蔽值在一起預(yù)先進(jìn)行異或運(yùn)算來部分評(píng)估。運(yùn)算以此方式仍然取決于密鑰值,盡管該密鑰值不明確存在于實(shí)施方案中。實(shí)際上,僅在密鑰值和掩蔽值之間的異或運(yùn)算存在于實(shí)施方案中。應(yīng)注意,隱藏密鑰的更復(fù)雜的方式和/或另外的方式與本發(fā)明的實(shí)施例兼容。
現(xiàn)在,相關(guān)的問題是如何實(shí)施加密算法,使得其提供阻止灰盒或甚至白盒攻擊。在灰盒和白盒兩者環(huán)境中的強(qiáng)有力技術(shù)為差異性錯(cuò)誤分析(dfa)。在這里,錯(cuò)誤被注入一個(gè)或多個(gè)執(zhí)行中并且接下來密鑰從輸出的觀察到的變化導(dǎo)出。例子在d.mukhopadhyay在2009年的第2屆非洲密碼學(xué)國際會(huì)議:密碼學(xué)進(jìn)展(非洲密碼學(xué)會(huì)議′09)的會(huì)議記錄第421-434頁的“animprovedfaultbasedattackoftheadvancedencryptionstandard(高級(jí)加密標(biāo)準(zhǔn)的改進(jìn)的基于錯(cuò)誤的攻擊)”中提出。mukhopadhyay描述如何通過比較多個(gè)執(zhí)行的輸出來導(dǎo)出aes密鑰,其中,不同的執(zhí)行不同之處在于在輪8或9的開始處的s盒的單個(gè)輸入/輸出值被改變。此變化可為任意的和未知的。可僅對(duì)1對(duì)結(jié)果(良好的結(jié)果和改變的結(jié)果)執(zhí)行攻擊以獲得關(guān)于密鑰的信息。
阻止dfa攻擊的已知技術(shù)為兩次執(zhí)行該算法并且檢查結(jié)果是否相同。為禁用此對(duì)策,攻擊者可禁用該檢查。具體地,在白盒環(huán)境中,這并不難以執(zhí)行。在下面的實(shí)施例中描述可替換方法。該可替換方法也基于添加冗余計(jì)算,但是并不使用顯式檢查。
該可替換方法的第一方面在于秘密共享方法被應(yīng)用以阻止aes的輪10的輸出字節(jié)和/或這些輸出字節(jié)由此導(dǎo)出并且在輪9的s盒運(yùn)算之后被定位的中間值。
假設(shè)vi為此輸出字節(jié)或中間值。指數(shù)i指示該值所涉及的輸出字節(jié)的數(shù)值,其中,i=0,1,...,15。接著,對(duì)此值應(yīng)用秘密共享意味著不是vi,而是共享的數(shù)值,比方說s,寫為vi,0,vi,1,...,vi,s-1,使得對(duì)于一些函數(shù)f而言,vi=f(vi,0,vi,1,...,vi,s-1)被計(jì)算。優(yōu)選地,函數(shù)f使得vi與該共享的任何適當(dāng)子集無關(guān)。
該可替換方法的第二方面是計(jì)算vi的共享。vi的計(jì)算在輪8之前被拆分使得不同部分計(jì)算該共享的不同子集。為了將此形式化,引入了一些術(shù)語和注解。
假設(shè)ih為函數(shù)h的實(shí)施方案。接著,如果實(shí)施方案可被拆分成兩個(gè)部分,則一組σ值為ih的中間狀態(tài),其中,第一部分計(jì)算來自該輸入的σ,以及第二部分計(jì)算僅來自中間狀態(tài)σ的輸出。舉例來說,考慮定義具有密鑰k的aes加密的函數(shù)ek的簡(jiǎn)單實(shí)施方案。接著,任何aes運(yùn)算的結(jié)果為ek的中間狀態(tài)。如果
現(xiàn)在,如果兩個(gè)實(shí)施方案i0和i1并不具有相等的中間狀態(tài),則該兩個(gè)實(shí)施方案i0和i1被稱為交叉。
該可替換方法的第二部分現(xiàn)在可如下形式化。存在從(不完全)中間狀態(tài)
現(xiàn)在將示出此可替換方法如何對(duì)例如mukhopadhyay的錯(cuò)誤注入攻擊起作用。此攻擊使用如果我們?cè)谳?或9中改變單個(gè)s盒輸入或輸出,則此可替換方法具有輪9的輸出列的4個(gè)字節(jié)通過添加的術(shù)語來改變的效果的這一事實(shí)。此外,4個(gè)字節(jié)的添加的術(shù)語通過標(biāo)量乘而不同。此特性在完成算法,即,輪10的輸出中采用。此標(biāo)量的值遵循列混合運(yùn)算。
現(xiàn)在,假設(shè)該可替換方法被應(yīng)用,使得
上面,該可替換方法就aes而言進(jìn)行制訂。響應(yīng)于mukhopadhyay的攻擊,該可替換方法也可被應(yīng)用于包括多輪的其它加密(例如des),其中,該輪包括替換函數(shù)和仿射變換函數(shù)。在此情況下,在計(jì)算拆分的時(shí)刻和該計(jì)算再次合并的時(shí)刻之間(即,函數(shù)
也應(yīng)注意到,通過在輪9或后續(xù)輪中進(jìn)行改變,des可被攻擊(參見rivain的“differentialfaultanalysisondesmiddlerounds(對(duì)des中間輪的差異性錯(cuò)誤分析)”(在《計(jì)算機(jī)科學(xué)》的系列演講筆記第457-469頁的加密硬件和嵌入式系統(tǒng)-ches2009卷5747))。下文所述的實(shí)施例也可用于對(duì)抗此攻擊。
下面的白盒實(shí)施例使用aes(高級(jí)加密標(biāo)準(zhǔn))塊加密來描述,因?yàn)閍es已成為塊加密的廣泛使用的標(biāo)準(zhǔn)。aes為具有128位或16字節(jié)的塊大小的塊加密。純文本被劃分為16字節(jié)的塊,該塊形成加密算法的初始狀態(tài),并且加密算法的最終狀態(tài)為加密文本。在該加密算法中的任何給定點(diǎn),這些16字節(jié)為該加密算法的狀態(tài)。為了從概念上解釋aes,狀態(tài)的字節(jié)被組織為4×4字節(jié)的矩陣。aes包括輪的次數(shù),其取決于密鑰大小。每輪包括對(duì)狀態(tài)矩陣的字節(jié)、行或列運(yùn)算的類似處理步驟,在這些處理步驟中,每次輪使用不同的輪密鑰。應(yīng)指出,在使用aes作為例子的論述中,aes以特定方式定義輪。在下面的實(shí)施例中,輪為步驟的任何分組,其包括至少一個(gè)非線性映射函數(shù),例如在aes中的s盒。因此,如下所述的輪包括一個(gè)非線性映射函數(shù)和加密函數(shù)的其它步驟的任何組合。另外,輪的邊界可以以非線性映射函數(shù)例如s盒,或可與非線性映射函數(shù)例如密鑰添加合并的任何其它運(yùn)算開始。
圖1示出aes的一輪的一些主要處理步驟。所述處理步驟包括:
添加輪密鑰110-狀態(tài)的每個(gè)字節(jié)與輪密鑰的字節(jié)進(jìn)行異或運(yùn)算;
字節(jié)替換120-使用查找表的字節(jié)到字節(jié)排列;
行移位130-狀態(tài)的每行被旋轉(zhuǎn)固定字節(jié)數(shù);以及
列混合140-使用在gf(28)中的模乘來處理每列。
步驟字節(jié)替換120、行移位130和列混合140與所使用的特定密鑰無關(guān)。密鑰被應(yīng)用在步驟添加輪密鑰110中。除步驟行移位130以外,可以對(duì)4×4狀態(tài)矩陣的每列執(zhí)行所述處理步驟而無需了解其它列。因此,它們可以被看作是32位運(yùn)算,因?yàn)槊苛杏伤膫€(gè)8位值構(gòu)成。虛線150指示該過程被重復(fù)直到已執(zhí)行所需的輪次數(shù)。
這些步驟中的每者或步驟的組合可由查找表或由查找表的網(wǎng)絡(luò)表示。如果添加輪密鑰110步驟通過與輪密鑰進(jìn)行異或運(yùn)算來實(shí)施,則在白盒攻擊情形下,密鑰是攻擊者可見的。添加輪密鑰110步驟也可以被嵌入在查找表中,這使得不太容易找出密鑰。實(shí)際上,通過查找表的網(wǎng)絡(luò),有可能置換aes的完整輪。例如,字節(jié)替換120、行移位130和列混合140步驟可使用表查找來實(shí)施。足夠詳細(xì)的aes的可能白盒實(shí)施方案在下面論述以描述下面的本發(fā)明的實(shí)施例,但是此實(shí)施方案的另外詳細(xì)描述見于chow1。而且,可使用該查找表實(shí)施方案的其它變體,這在本發(fā)明的范圍內(nèi)。
基于表格的白盒實(shí)施方案和有限狀態(tài)機(jī)實(shí)施方案兩者均具有在實(shí)施方案中的所有中間值被編碼的特性(相比于標(biāo)準(zhǔn)實(shí)施方案)。使用有限狀態(tài)機(jī)的白盒實(shí)施方案的例子在題為“dataprocessingmethod(數(shù)據(jù)處理方法)”的美國專利公布2007/0014394以及由wulfharder和atisstraujums在2008年3月11日在信任第六季會(huì)議的題為“synchrosoftmcfacttmsecuredataprocessingtechnology(同步mcfacttm安全數(shù)據(jù)處理技術(shù))”的演示中公開,上述每個(gè)文獻(xiàn)通過引用并入本文以用于所有目的,如同在本文中完全闡述。圖2示出對(duì)一輪的輸入,即對(duì)s盒的輸入固定編碼的白盒aes實(shí)施方案。如圖所示,16個(gè)輸入字節(jié)中的每個(gè)輸入字節(jié)由fi編碼以及輸出字節(jié)中的每個(gè)輸出字節(jié)由gi編碼。
為了描述本發(fā)明的實(shí)施例,將描述基于表格的白盒aes實(shí)施方案的基本描述。用于實(shí)施基于表格的白盒aes的方法的更詳細(xì)描述參看chow1。chow1說明使用指定大小的表格突破某些函數(shù)的具體實(shí)施方案。很好理解,可對(duì)表格進(jìn)行各種其它劃分,從而產(chǎn)生查找表的不同函數(shù)和不同大小。另外,雖然下文所述的本發(fā)明的實(shí)施例使用aes的基于表格的白盒實(shí)施方案,但是根據(jù)所述實(shí)施例,可實(shí)施其它加密和加密函數(shù)。而且,可使用不是基于表格的實(shí)施方案的其它類型的白盒實(shí)施方案,例如有限狀態(tài)實(shí)施方案。
基于表格的白盒aes的描述被拆分成兩個(gè)步驟。在第一步驟中,aes的輪被描述為查找表的網(wǎng)絡(luò)。在第二步驟中,該表格通過對(duì)它們的輸入和輸出編碼被混淆。
步驟1:實(shí)施aes作為查找表的網(wǎng)絡(luò)。
對(duì)16字節(jié)的數(shù)據(jù)塊執(zhí)行aes運(yùn)算。這些數(shù)據(jù)塊通常被描述為4×4字節(jié)矩陣,其被稱為包括字節(jié)x1,1,x1,2,x1,3...x4,4的狀態(tài)。如上關(guān)于圖1所述的aes的輪包括以下運(yùn)算:添加輪密鑰110、字節(jié)替換120、行移位130和列混合140。首先的兩個(gè)運(yùn)算,即添加輪密鑰和字節(jié)替換可以被合并到單個(gè)t盒運(yùn)算中。也就是說,我們可以將輸入字節(jié)xi,j的字節(jié)到字節(jié)函數(shù)ti,j定義為
現(xiàn)在定義每個(gè)字節(jié)到字節(jié)函數(shù)qi,j,l(xi,j)=mcl,i·ti,j(xi,j)的查找表,其中,i,j,l=1,2,...,16。接著通過對(duì)這些查找表的結(jié)果進(jìn)行異或運(yùn)算,可計(jì)算任何輸出字節(jié)zl,j,即
圖3示出借助于查找表的網(wǎng)絡(luò)的一個(gè)輸出半字節(jié)的計(jì)算。在q盒中的下標(biāo)(1)指示所述表格僅提供該q盒的輸出的第一半字節(jié)。在輸入狀態(tài)310中的一組輸入字節(jié)x1,3、x2,3、x3,3、x4,3被輸入到q盒320、322、324、326中。查找表320和322的輸出u1、u2被饋送到異或330中,以及查找表324和異或330的輸出u3、u5被饋送到異或332中。表格326和異或332的輸出u4、u6被饋送到異或334中。異或334的輸出為輸出狀態(tài)340的輸出z2,3的第一半字節(jié)。輸出狀態(tài)340的輸出z2,3的第二半字節(jié)可以以相同方式使用另外的q盒連同類似的異或網(wǎng)絡(luò)來計(jì)算。另外,另外的表格組可被實(shí)施,以通過從輸入狀態(tài)310接收字節(jié)列并將它們轉(zhuǎn)換到輸出狀態(tài)的對(duì)應(yīng)列的輸出中,將該輸入狀態(tài)310完全轉(zhuǎn)換到輸出狀態(tài)340。
步驟2:混淆表格和中間值
在圖3中所示的實(shí)施方案中,密鑰可易于從q盒提取。僅對(duì)該輸出應(yīng)用逆列混合乘法和逆s盒揭示純添加輪密鑰運(yùn)算。為了防止此狀況,所有查找表的輸入和輸出用任意雙映射函數(shù)編碼。這在chow1中描述。這意味著查找表與編碼輸出的編碼函數(shù)并與解碼輸入的解碼函數(shù)合并。編碼被選擇使得一個(gè)表格的輸出編碼匹配在接下來的表格中假定的輸入編碼。圖3的實(shí)施方案的一部分在圖4中針對(duì)第一輪示出。在此例子中,到一輪的輸入未被編碼,以便符合aes,但是該輪輸出被編碼。輸出編碼在下一個(gè)輪中被處理。也就是說,不同于第一輪,第二輪(以及后續(xù)輪)假定其輸入被編碼??商鎿Q的是,第一輪可接收編碼輸入。接著此輸入編碼必須被應(yīng)用在包含白盒實(shí)施方案的軟件程序中的別處。類似地,最后輪可根據(jù)輸出是否符合aes而包括或不包括輸出編碼。應(yīng)注意,在所獲得的白盒實(shí)施方案中,查找表和中間值兩者被混淆。
圖4示出通過編碼輸入和輸出來混淆的圖3的表格網(wǎng)絡(luò)的一部分。查找表420、422、424、426對(duì)應(yīng)于圖3的查找表320、322、324、326。查找表420、422、424、426的輸入分別被函數(shù)e9、e10、e11、e12編碼。查找表420、422、424、426的輸出分別被函數(shù)f1、f2、f3、f4編碼。異或430對(duì)應(yīng)于異或330。異或430的輸入使用f1-1和f2-1解碼輸入。接著異或430的輸出由函數(shù)f5編碼。異或432、434以類似方式具有如圖所示的輸入解碼和輸出編碼。輸出z2,3使用f7來編碼。
下面描述aes實(shí)施方案的使用秘密拆分共享的實(shí)施例。此描述針對(duì)使用秘密拆分共享的aes實(shí)施方案,其可在白盒環(huán)境(例如,使用表格查找或有限狀態(tài)機(jī))中使用軟件來實(shí)施,或在灰盒環(huán)境中在硬件aes實(shí)施方案中實(shí)施。
如上所述,aes一輪的首先兩個(gè)運(yùn)算被實(shí)施以對(duì)狀態(tài)的個(gè)別字節(jié)進(jìn)行運(yùn)算。另外,最后兩個(gè)運(yùn)算可被合并到單個(gè)16×16字節(jié)矩陣乘法中。也就是說,對(duì)于16字節(jié)矩形矩陣mr,輪r的輸出可以作為mr(x)獲得,其中,x為在字節(jié)替換運(yùn)算之后的中間狀態(tài)。
現(xiàn)在將示出秘密拆分共享如何可被應(yīng)用于aes白盒實(shí)施方案。關(guān)于上述的秘密共享方法的第一方面,秘密共享可被應(yīng)用于輪9的輸出狀態(tài),即,應(yīng)用于m9的輸出。
假設(shè)bi為m9的輸出字節(jié)。接著,秘密共享可通過計(jì)算共享
在l·m9乘法之后,輪9的輸出字節(jié)bi從其兩個(gè)共享通過對(duì)其進(jìn)行異或運(yùn)算來計(jì)算。結(jié)果被輸入到輪10的添加輪密鑰運(yùn)算。這結(jié)束秘密共享方法的第一方面的實(shí)施方案。
該秘密共享方法的第二方面被制訂以在輪8之前計(jì)算共享,使得不同部分計(jì)算該共享的不同子集。這意味著該計(jì)算在輪8之前被拆分并且不同拆分分別計(jì)算bi,0和bi,1。現(xiàn)將更詳細(xì)解釋此拆分如何可被實(shí)施。
與輪9類似,在輪7中的矩陣乘法被l7·m7替換,其中
后乘以l7的結(jié)果為m7的每個(gè)輸出字節(jié)被加倍。因此,結(jié)果通過(x0,y0,x1,y1,...,x15,y15)給出,其中,(x0,x1,...,x15)=(y0,y1,...,y15)為m7的輸出?,F(xiàn)在輪8的實(shí)施方案被應(yīng)用于(x0,x1,...,x15)和(y0,y1,...,y15)兩者。觀察到此實(shí)施方案對(duì)應(yīng)于在該秘密共享方法的第二方面中提到的拆分。
現(xiàn)在,對(duì)(x0,x1,...,x15)的計(jì)算是計(jì)算輪9的輸出字節(jié)的第一組共享b0,0,b1,0,...,b15,0,并且對(duì)(y0,y1,...,y15)的計(jì)算是計(jì)算輪9的輸出字節(jié)的第二組共享b0,1,b1,1,...,b15,1。第一組共享和第二組共享通過應(yīng)用互補(bǔ)權(quán)重來計(jì)算,以便在該共享被組合時(shí)獲得正確結(jié)果。這可針對(duì)(x0,x1,...,x15)經(jīng)由矩陣l9,0·m9而不是l9·m9通過實(shí)施輪9來實(shí)現(xiàn),其中,矩陣l9,0為由下式給出的16x16字節(jié)矩陣:
以及針對(duì)(y0,y1,...,y15)經(jīng)由矩陣l9,1·m9通過實(shí)施輪9來實(shí)現(xiàn),其中,矩陣l9,1為由下式給出的16x16字節(jié)矩陣:
現(xiàn)在輪9的輸出字節(jié)的第一組共享b0,0,b1,0,...,b15,0和第二組共享b0,1,b1,1,...,b15,1可被組合并被輸入到輪10中。
上面提到變量以(偽)隨機(jī)方式被拆分成共享。盡管在上述實(shí)施例中,值αi可以被(偽)隨機(jī)選擇,但是它們?cè)趯?shí)施方案內(nèi)被固定??商鎿Q的是,拆分可針對(duì)不同執(zhí)行被偽隨機(jī)進(jìn)行。這可以例如在每次執(zhí)行之前或之后通過改變l9,0和lq,1來實(shí)施。例如,αi的值可基于對(duì)一輪的輸入的特定值來選擇。因此,αi的值將針對(duì)基于輸入的aes算法的每次執(zhí)行而改變。在硬件實(shí)施方案中,αi的值可基于硬件隨機(jī)數(shù)生成器來選擇。
上面的描述將拆分共享示出為連續(xù)輪中處理。另外,該輪可能不是連續(xù)的。例如,拆分共享可如上所述在輪7之前進(jìn)行,其中,中間輪在兩個(gè)拆分計(jì)算之前被再次合并。
上述的實(shí)施例可被應(yīng)用于白盒aes實(shí)施方案或硬件灰盒aes實(shí)施方案。另外,上述的實(shí)施例也可被應(yīng)用于具有包括替換函數(shù)(其跟隨有仿射變換)的一輪的其它加密方案。根據(jù)本發(fā)明的實(shí)施例的方法可在計(jì)算機(jī)上實(shí)施為計(jì)算機(jī)實(shí)施的方法。用于根據(jù)本發(fā)明的方法的可執(zhí)行碼可被存儲(chǔ)在計(jì)算機(jī)程序媒體上。計(jì)算機(jī)程序媒體的例子包括存儲(chǔ)器裝置、光學(xué)儲(chǔ)存裝置、集成電路、服務(wù)器、在線軟件等。因此,白盒系統(tǒng)可包括實(shí)施白盒計(jì)算機(jī)程序的計(jì)算機(jī)。此系統(tǒng)也可包括其它硬件元件,其包括存儲(chǔ)裝置、用于與外部系統(tǒng)以及在白盒系統(tǒng)的元件之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)接口。
在本發(fā)明的實(shí)施例中,計(jì)算機(jī)程序可包括適于當(dāng)計(jì)算機(jī)程序在計(jì)算機(jī)上運(yùn)行時(shí)執(zhí)行根據(jù)本發(fā)明的方法的所有步驟的計(jì)算機(jī)程序代碼。優(yōu)選地,計(jì)算機(jī)程序被實(shí)施在非暫時(shí)性計(jì)算機(jī)可讀媒體上。
另外,因?yàn)榘缀屑用苄g(shù)往往冗長(zhǎng)難以被人書寫,所以是非常復(fù)雜和/或混淆的。因此,具有以自動(dòng)化的方式產(chǎn)生根據(jù)本發(fā)明的實(shí)施例的加密系統(tǒng)的方法是有利的。
產(chǎn)生根據(jù)本發(fā)明的加密系統(tǒng)的方法可在計(jì)算機(jī)上實(shí)施為計(jì)算機(jī)實(shí)施的方法,或在專用硬件中或兩者的組合中實(shí)施。用于根據(jù)本發(fā)明的方法的可執(zhí)行碼可被存儲(chǔ)在計(jì)算機(jī)程序媒體上。在此方法中,計(jì)算機(jī)程序可包括適于當(dāng)計(jì)算機(jī)程序在計(jì)算機(jī)上運(yùn)行時(shí)執(zhí)行該方法的所有步驟的計(jì)算機(jī)程序代碼。計(jì)算機(jī)程序被實(shí)施在非暫時(shí)性計(jì)算機(jī)可讀媒體上。
本文所述的加密系統(tǒng)可在用戶裝置,例如移動(dòng)電話、平板計(jì)算機(jī)、計(jì)算機(jī)、機(jī)頂盒、智能電視等上實(shí)施。內(nèi)容提供商,例如電視網(wǎng)絡(luò)、視頻流服務(wù)、金融機(jī)構(gòu)、音樂流服務(wù)等可向用戶裝置提供軟件以用于從該內(nèi)容提供商接收已加密內(nèi)容。該軟件可具有如上所述被嵌入在其中的加密密鑰并且也可包括如上所述的綁定串。接著內(nèi)容提供商可向用戶裝置發(fā)送已加密內(nèi)容,該用戶裝置接著可使用所供應(yīng)的軟件解密并使用該內(nèi)容。
圖5示出用于提供用戶裝置安全內(nèi)容以及處理該安全內(nèi)容的軟件應(yīng)用的系統(tǒng)。該系統(tǒng)包括內(nèi)容服務(wù)器500、應(yīng)用服務(wù)器580、用戶裝置550、552以及數(shù)據(jù)網(wǎng)絡(luò)540。用戶裝置550、552可請(qǐng)求經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)540訪問由內(nèi)容服務(wù)器500所提供的安全內(nèi)容。數(shù)據(jù)網(wǎng)絡(luò)可以為在用戶裝置550、552和內(nèi)容服務(wù)器500以及應(yīng)用服務(wù)器580之間提供連通性的任何數(shù)據(jù)網(wǎng)絡(luò)。用戶裝置550、552可為多個(gè)裝置中的一個(gè)裝置,例如機(jī)頂盒、流媒體播放器、數(shù)字視頻記錄器、平板計(jì)算機(jī)、移動(dòng)電話、膝上型計(jì)算機(jī)、便攜式媒體裝置、智能手表、臺(tái)式計(jì)算機(jī)、媒體服務(wù)器等。
使用者訪問請(qǐng)求可首先需要下載可用于處理由內(nèi)容服務(wù)器500所提供的安全內(nèi)容的軟件應(yīng)用。該軟件應(yīng)用可從應(yīng)用服務(wù)器580下載。軟件應(yīng)用可使用上述的技術(shù)來遮蔽以及如上所述來操作。一旦用戶裝置550、552安裝軟件應(yīng)用,用戶裝置隨后就可從內(nèi)容服務(wù)器500下載安全內(nèi)容并且使用所下載的軟件應(yīng)用來訪問該安全內(nèi)容。例如,所下載的軟件應(yīng)用可對(duì)從內(nèi)容服務(wù)器接收的已加密內(nèi)容執(zhí)行解密。在其它實(shí)施例中,軟件應(yīng)用可執(zhí)行其它安全運(yùn)算,例如加密、數(shù)字簽名生成和驗(yàn)證等。
內(nèi)容服務(wù)器500可控制對(duì)提供給用戶裝置550、552的安全內(nèi)容的訪問。因此,在內(nèi)容服務(wù)器500接收安全內(nèi)容的請(qǐng)求時(shí),內(nèi)容服務(wù)器500可向正在請(qǐng)求的用戶裝置傳輸該安全內(nèi)容。同樣,應(yīng)用服務(wù)器520可控制對(duì)提供給用戶裝置550、552的軟件應(yīng)用的訪問。因此,在內(nèi)容服務(wù)器520接收軟件應(yīng)用的請(qǐng)求時(shí),應(yīng)用服務(wù)器520可向正在請(qǐng)求的用戶裝置傳輸該軟件應(yīng)用。在將軟件應(yīng)用或安全內(nèi)容提供給正在請(qǐng)求軟件應(yīng)用或安全內(nèi)容的用戶裝置之前,該用戶裝置也可通過相應(yīng)的服務(wù)器來驗(yàn)證。
內(nèi)容服務(wù)器500可包括經(jīng)由一個(gè)或多個(gè)系統(tǒng)總線508互連的處理器502、存儲(chǔ)器504、用戶接口506、網(wǎng)絡(luò)接口510和內(nèi)容存儲(chǔ)裝置512。應(yīng)理解,圖5在一些方面構(gòu)成抽象圖,且裝置500的部件的實(shí)際組織可比所示出的更復(fù)雜。
處理器502可為能夠執(zhí)行存儲(chǔ)在存儲(chǔ)器504或存儲(chǔ)裝置512中的指令的任何硬件裝置。因此,該處理器可包括微處理器、現(xiàn)場(chǎng)可編程門陣列(fpga)、專用集成電路(asic)或其它類似裝置。
存儲(chǔ)器504可包括各種存儲(chǔ)器,例如l1、l2或l3高速緩沖存儲(chǔ)器或系統(tǒng)存儲(chǔ)器。因此,存儲(chǔ)器502可包括靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)ram(dram)、閃存、只讀存儲(chǔ)器(rom)或其它類似存儲(chǔ)器裝置。
用戶接口506可包括用于使得能夠與使用者例如管理員交流的一個(gè)或多個(gè)裝置。例如,用戶接口506可包括用于接收用戶命令的顯示器、鼠標(biāo)和鍵盤。
網(wǎng)絡(luò)接口510可包括用于使得能夠與其它硬件裝置通信的一個(gè)或多個(gè)裝置。例如,網(wǎng)絡(luò)接口510可包括網(wǎng)絡(luò)接口卡(nic),該網(wǎng)絡(luò)接口卡被配置成根據(jù)以太網(wǎng)協(xié)議通信。另外,網(wǎng)絡(luò)接口510可根據(jù)tcp/ip協(xié)議實(shí)施tcp/ip棧以用于通信。用于網(wǎng)絡(luò)接口510的各種可替換的或另外的硬件或配置將是顯而易見的。
內(nèi)容存儲(chǔ)裝置512可包括一個(gè)或多個(gè)機(jī)器可讀內(nèi)容存儲(chǔ)媒體,例如只讀存儲(chǔ)器(rom)、隨機(jī)存取存儲(chǔ)器(ram)、磁盤存儲(chǔ)媒體、光學(xué)存儲(chǔ)媒體、閃存裝置或類似存儲(chǔ)媒體。在各種實(shí)施例中,內(nèi)容存儲(chǔ)裝置512可存儲(chǔ)待提供給使用者的內(nèi)容。
應(yīng)用服務(wù)器520包括與內(nèi)容服務(wù)器500中相似的那些元件,并且在內(nèi)容服務(wù)器500中的相似元件的描述應(yīng)用于應(yīng)用服務(wù)器520。而且,內(nèi)容存儲(chǔ)裝置512被應(yīng)用存儲(chǔ)裝置532代替。另外,應(yīng)指出,內(nèi)容服務(wù)器和應(yīng)用服務(wù)器可在單個(gè)服務(wù)器上實(shí)施。并且,此類服務(wù)器可以在分布式計(jì)算機(jī)系統(tǒng)上實(shí)施以及在云計(jì)算機(jī)系統(tǒng)上實(shí)施。
在處理器上運(yùn)行以實(shí)施本發(fā)明的實(shí)施例的特定軟件的任何組合構(gòu)成特定專用機(jī)器。
如本文所使用,術(shù)語“非暫時(shí)性機(jī)器可讀存儲(chǔ)媒體”應(yīng)理解為排除暫時(shí)傳播的信號(hào)但包括所有形式的易失性和非易失性存儲(chǔ)器。此外,如本文所使用,術(shù)語“處理器”應(yīng)理解為包括多種裝置,例如微處理器、現(xiàn)場(chǎng)可編程門陣列(fpga)、專用集成電路(asic)和其它類似處理裝置。當(dāng)軟件在處理器上實(shí)施時(shí),該組合變?yōu)閱我惶囟C(jī)器。
本領(lǐng)域的技術(shù)人員應(yīng)了解,本文中的任何框圖表示體現(xiàn)本發(fā)明的原理的例示性電路系統(tǒng)的概念視圖。
盡管已經(jīng)具體參考各種示例性實(shí)施例的特定示例性方面來詳細(xì)地描述各種示例性實(shí)施例,但應(yīng)理解,本發(fā)明能夠具有其它實(shí)施例且其細(xì)節(jié)能夠在各種顯而易見的方面進(jìn)行修改。如對(duì)本領(lǐng)域的技術(shù)人員顯而易見的,可以實(shí)現(xiàn)變化和修改,同時(shí)保持在本發(fā)明的精神和范圍內(nèi)。因此,上述的公開內(nèi)容、描述和附圖僅出于說明性目的并且并不以任何方式限制本發(fā)明,本發(fā)明僅由權(quán)利要求書限定。