两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

白盒實(shí)施方案內(nèi)中間值的寬編碼的制作方法

文檔序號(hào):12729824閱讀:371來源:國知局
白盒實(shí)施方案內(nèi)中間值的寬編碼的制作方法與工藝

本文所公開的各種示例性實(shí)施例大體上涉及密碼函數(shù)的白盒實(shí)施方案內(nèi)中間值的寬編碼。



背景技術(shù):

因特網(wǎng)向用戶提供對(duì)數(shù)字內(nèi)容的適宜和廣泛的訪問。因?yàn)橐蛱鼐W(wǎng)是強(qiáng)大的分布式通道,許多用戶裝置力求直接訪問因特網(wǎng)。用戶裝置可包括個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、機(jī)頂盒、支持因特網(wǎng)的媒體播放器、移動(dòng)電話、智能電話、平板計(jì)算機(jī)、移動(dòng)無線熱點(diǎn),或能夠訪問因特網(wǎng)的任何其它裝置。使用因特網(wǎng)作為用于有版權(quán)內(nèi)容的分布媒體對(duì)保護(hù)內(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)是部分開放的。可假設(shè)一些用戶具有對(duì)于提供對(duì)內(nèi)容的訪問的硬件和軟件的完全控制及訪問權(quán),并具有大量時(shí)間和資源來攻擊和繞過任何內(nèi)容保護(hù)機(jī)構(gòu)。其結(jié)果是,內(nèi)容提供商必須跨越對(duì)于其中并非所有用戶或用戶裝置可信任的團(tuán)體敵對(duì)的網(wǎng)絡(luò)將內(nèi)容遞送到合法用戶。

可調(diào)用安全軟件應(yīng)用來實(shí)行各種函數(shù),例如用于保護(hù)和驗(yàn)證數(shù)字內(nèi)容的密碼函數(shù)。為了對(duì)抗攻擊,這些算法必須被模糊(隱藏)以便防止算法的逆向工程和修改或禁止獲得特定用戶的安全信息。因此,安全軟件應(yīng)用的功能可通過由實(shí)施該安全軟件的處理器的指令集定義的各種函數(shù)來執(zhí)行。例如,模糊這些函數(shù)的一種方式是通過使用查找表。

內(nèi)容提供商必須跨越對(duì)于其中并非所有用戶或裝置可信任的團(tuán)體敵對(duì)的網(wǎng)絡(luò)將內(nèi)容遞送到合法用戶。這就引起了白盒密碼術(shù)的發(fā)展。在白盒密碼術(shù)情形中,假設(shè)用戶具有對(duì)于提供對(duì)內(nèi)容的訪問的硬件和軟件的完全控制以及攻擊和繞過任何內(nèi)容保護(hù)機(jī)構(gòu)的不受限制的時(shí)間量和資源。強(qiáng)制執(zhí)行可供使用的內(nèi)容所依據(jù)的條款的安全軟件代碼應(yīng)防止被篡改。數(shù)字權(quán)限管理為安全軟件應(yīng)用的共同應(yīng)用。用于分布到用戶裝置的受保護(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)。

關(guān)于密鑰分布,媒體播放器必須從許可證數(shù)據(jù)庫中檢索解密密鑰以便重放媒體。媒體播放器隨后必須將此解密密鑰存儲(chǔ)在存儲(chǔ)器中某處以用于已加密內(nèi)容的解密。這樣就讓攻擊者有兩種選擇來攻擊密鑰。首先,攻擊者可逆向編寫許可證數(shù)據(jù)庫訪問函數(shù),從而允許攻擊者從所有許可證數(shù)據(jù)庫中檢索資產(chǎn)密鑰。在此情況下,攻擊者不需要理解密碼函數(shù)的內(nèi)部工作。其次,攻擊者可以觀察內(nèi)容解密期間對(duì)存儲(chǔ)器的訪問,攻擊者可因此檢索解密密鑰。在這兩種情況下,密鑰都被視為被破解。

數(shù)字權(quán)限管理(DRM)和其它安全軟件的廣泛使用引起對(duì)安全的防篡改軟件的需要,該軟件力圖使軟件竄改變得復(fù)雜。存在各種用于提高軟件應(yīng)用的防篡改性能的技術(shù)。這些技術(shù)中的大多數(shù)是基于通過在軟件應(yīng)用的控制和數(shù)據(jù)路徑中添加隨機(jī)性和復(fù)雜度遮罩而隱藏對(duì)應(yīng)用的嵌入式了解。這背后的概念是僅僅通過代碼檢測來提取信息變得更加困難。因而更難找到(例如)處理對(duì)安全應(yīng)用的訪問和許可控制的代碼,并因此更難改變代碼。

如本文所使用,白盒密碼術(shù)包括一種安全軟件應(yīng)用,其在攻擊者具有對(duì)運(yùn)行白盒密碼術(shù)軟件的系統(tǒng)的完全控制的環(huán)境中執(zhí)行密碼函數(shù)。因此,攻擊者可修改輸入和輸出、追蹤軟件操作、取樣和監(jiān)視軟件在任何時(shí)間使用的存儲(chǔ)器,甚至可修改軟件。因此,需要通過防止揭露安全功能性中使用的機(jī)密信息的方式執(zhí)行安全功能。白盒密碼術(shù)功能可以各種方式實(shí)施。此類方法包括:模糊軟件代碼;使用模糊機(jī)密信息使用的復(fù)雜的數(shù)學(xué)函數(shù);使用查找表;使用有限狀態(tài)機(jī);或任何其它執(zhí)行密碼函數(shù)但是隱藏那些安全功能所需的機(jī)密信息的方法。白盒實(shí)施方案還可包括一些組件,所述組件包括防調(diào)試和防篡改屬性。

相對(duì)于硬件實(shí)施方案,優(yōu)選加密算法的軟件實(shí)施方案存在若干原因。如此(例如)可能是因?yàn)檐浖鉀Q方案在密鑰泄露的情況下可再生、因?yàn)槠渚哂休^低成本,或因?yàn)閼?yīng)用開發(fā)者對(duì)其中實(shí)施白箱系統(tǒng)的硬件沒有影響。



技術(shù)實(shí)現(xiàn)要素:

各種示例性實(shí)施例的簡要概述在下文呈現(xiàn)。在以下概述中可以做出一些簡化和省略,其意在突出并介紹各種示例性實(shí)施例的一些方面,但不限制本發(fā)明的范疇。足以允許本領(lǐng)域的普通技術(shù)人員產(chǎn)生并使用本發(fā)明概念的示例性實(shí)施例的詳細(xì)描述將在后續(xù)部分呈現(xiàn)。

各種實(shí)施例涉及用于通過密碼系統(tǒng)中帶密鑰的密碼運(yùn)算將輸入消息映射到輸出消息,所述帶密鑰的密碼運(yùn)算包括多個(gè)替代層和狀態(tài)數(shù)據(jù),包括:在帶密鑰的密碼運(yùn)算的第一替代層中將輸入消息映射到第一狀態(tài)數(shù)據(jù),其中所述第一替代層包括實(shí)施所述第一替代層的N個(gè)基本塊,并且其中將具有第一大小的非線性編碼放置在所述第一替代層的N個(gè)基本塊的輸入和輸出上,其中N是整數(shù);在帶密鑰的密碼運(yùn)算的多個(gè)中間替代層中將第一狀態(tài)數(shù)據(jù)映射到第二狀態(tài)數(shù)據(jù),其中所述中間替代層包括實(shí)施所述中間替代層的M個(gè)塊,并且其中將具有第二大小的多個(gè)非線性編碼放置在所述中間替代層的M個(gè)基本塊的輸入和輸出上,其中M是整數(shù);以及在帶密鑰的密碼運(yùn)算的最終替代層中將第二狀態(tài)數(shù)據(jù)映射到輸出消息,其中所述最終替代層包括實(shí)施所述最終替代層的K個(gè)基本塊,并且其中將具有第三大小的非線性編碼放置在所述最終替代層的K個(gè)基本塊的輸入和輸出上,其中K是整數(shù),其中第一大小和第三大小大于第二大小,其中N>M,并且其中K>M。

描述了各種實(shí)施例,其中第一大小和第三大小大于或等于第二大小的兩倍。

描述了各種實(shí)施例,其中密碼運(yùn)算為高級(jí)加密標(biāo)準(zhǔn)(AES)。

描述了各種實(shí)施例,其中密碼運(yùn)算為數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)。

描述了各種實(shí)施例,其中第一大小為8位,第二大小為4位,并且第三大小為8位。

描述了各種實(shí)施例,其中:在中間替代層中實(shí)施異或函數(shù)的基本塊對(duì)4位輸入進(jìn)行運(yùn)算以產(chǎn)生4位輸出,并且在第一和最后替代層中實(shí)施異或函數(shù)的基本塊對(duì)8位輸入進(jìn)行運(yùn)算以產(chǎn)生8位輸出。

描述了各種實(shí)施例,其中:在中間替代層中實(shí)施異或函數(shù)的基本塊對(duì)具有第二大小的輸入進(jìn)行運(yùn)算以產(chǎn)生具有第二大小的輸出;在第一替代層中實(shí)施異或函數(shù)的基本塊對(duì)具有第一大小的輸入進(jìn)行運(yùn)算以產(chǎn)生具有第一大小的輸出;以及在最后替代層中實(shí)施異或函數(shù)的基本塊對(duì)具有第三大小的輸入進(jìn)行運(yùn)算以產(chǎn)生具有第三大小的輸出。

描述了各種實(shí)施例,其中還將線性編碼放置在中間替代層中的M個(gè)基本塊的輸入和輸出上。

其它各種實(shí)施例涉及非暫時(shí)性機(jī)器可讀存儲(chǔ)媒體,其經(jīng)指令編碼以實(shí)施通過密碼系統(tǒng)中的帶密鑰的密碼運(yùn)算將輸入消息映射到輸出消息,所述帶密鑰的密碼運(yùn)算包括多個(gè)替代層和狀態(tài)數(shù)據(jù),包括:用于在帶密鑰的密碼運(yùn)算的第一替代層中將輸入消息映射到第一狀態(tài)數(shù)據(jù)的指令,其中所述第一替代層包括實(shí)施所述第一替代層的N個(gè)基本塊,并且其中將具有第一大小的非線性編碼放置在所述第一替代層的N個(gè)基本塊的輸入和輸出上,其中N是整數(shù);用于在帶密鑰的密碼運(yùn)算的多個(gè)中間替代層中將第一狀態(tài)數(shù)據(jù)映射到第二狀態(tài)數(shù)據(jù)的指令,其中所述中間替代層包括實(shí)施所述中間替代層的M個(gè)塊,并且其中將具有第二大小的多個(gè)非線性編碼放置在所述中間替代層的M個(gè)基本塊的輸入和輸出上,其中M是整數(shù);以及用于在帶密鑰的密碼運(yùn)算的最終替代層中將第二狀態(tài)數(shù)據(jù)映射到輸出消息的指令,其中所述最終替代層包括實(shí)施所述最終替代層的K個(gè)基本塊,并且其中將具有第三大小的非線性編碼放置在所述最終替代層的K個(gè)基本塊的輸入和輸出上,其中K是整數(shù),其中第一大小和第三大小大于第二大小,其中N>M,并且其中K>M。

描述了各種實(shí)施例,其中第一大小和第三大小大于或等于第二大小的兩倍。

描述了各種實(shí)施例,其中密碼運(yùn)算為高級(jí)加密標(biāo)準(zhǔn)(AES)。

描述了各種實(shí)施例,其中密碼運(yùn)算為數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)。

描述了各種實(shí)施例,其中第一大小為8位,第二大小為4位,并且第三大小為8位。

描述了各種實(shí)施例,其中:在中間替代層中實(shí)施異或函數(shù)的基本塊對(duì)4位輸入進(jìn)行運(yùn)算以產(chǎn)生4位輸出,并且在第一和最后替代層中實(shí)施異或函數(shù)的基本塊對(duì)8位輸入進(jìn)行運(yùn)算以產(chǎn)生8位輸出。

描述了各種實(shí)施例,其中:在中間替代層中實(shí)施異或函數(shù)的基本塊對(duì)具有第二大小的輸入進(jìn)行運(yùn)算以產(chǎn)生具有第二大小的輸出;在第一替代層中實(shí)施異或函數(shù)的基本塊對(duì)具有第一大小的輸入進(jìn)行運(yùn)算以產(chǎn)生具有第一大小的輸出;以及在最后替代層中實(shí)施異或函數(shù)的基本塊對(duì)具有第三大小的輸入進(jìn)行運(yùn)算以產(chǎn)生具有第三大小的輸出。

描述了各種實(shí)施例,其中還將線性編碼放置在中間替代層中的M個(gè)基本塊的輸入和輸出上。

附圖說明

為了更好地理解各種示例性實(shí)施例,參看附圖,其中:

圖1示出AES的輪回的主要步驟;

圖2示出具有對(duì)輪回的輸入的固定編碼的白盒AES實(shí)施方案;

圖3示出借助于查找表的網(wǎng)絡(luò)的一個(gè)輸出半字節(jié)的計(jì)算;

圖4示出通過對(duì)輸入和輸出進(jìn)行編碼來模糊的圖3的網(wǎng)絡(luò)表格的部分;

圖5示出后面跟著Q盒的輸出的兩個(gè)4位非線性編碼的8位線性編碼的應(yīng)用;以及

圖6示出用于為用戶裝置提供安全內(nèi)容以及處理該安全內(nèi)容的軟件應(yīng)用的系統(tǒng)。

為了便于理解,相同的附圖標(biāo)號(hào)已用于指代具有大體上相同或類似結(jié)構(gòu)和/或大體上相同或類似功能的元件。

具體實(shí)施方式

描述和附圖示出了本發(fā)明的原理。因此將了解,本領(lǐng)域的技術(shù)人員將能夠設(shè)計(jì)各種布置,盡管本文中未明確地描述或示出所述布置,但所述布置體現(xiàn)本發(fā)明的原理且包括在其范疇內(nèi)。此外,本文中所述的所有例子主要明確地意在用于教學(xué)目的以輔助讀者理解本發(fā)明的原理以及由本發(fā)明人所提供的概念,從而深化本領(lǐng)域,且所有例子應(yīng)解釋為不限于此類特定所述例子及條件。另外,除非另外指明(例如,“或另外”或“或在替代方案中”),否則如本文所使用的術(shù)語“或”指代非排他性的“或”(即,“和/或”)。并且,本文所描述的各種實(shí)施例不一定相互排斥,因?yàn)橐恍?shí)施例可以與一個(gè)或多個(gè)其它實(shí)施例組合以形成新的實(shí)施例。

相對(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í)行所描述的各種功能。

下面的論文提出了針對(duì)高級(jí)加密標(biāo)準(zhǔn)(AES)和數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)的白盒實(shí)施方案的基于表格的方法:由Stanley Chow、Philip Eisen、Harold Johnson和Paul C.Van Oorschot在2002年8月15到16日在加拿大紐芬蘭島圣約翰SAC2002第9屆“選定區(qū)域的密碼術(shù)”國際研討會(huì)中提出的“白盒加密術(shù)和AES實(shí)施方案(White-Box Crytography and an AES Implementation)”,該論文在下文中被稱為“Chow 1”;以及由Stanley Chow、Phil Eisen、Harold Johnson和Paul C.Van Oorschot在2002年11月18日在美國華盛頓特區(qū)數(shù)字權(quán)限管理:DRM 2002ACM CCS-9研討會(huì)中提出的“用于DRM應(yīng)用的白盒DES實(shí)施方案(A White-Box DES Implementation for DRM Applications)”,該論文在下文中被稱為“Chow2”。Chow 1和Chow 2公開了使用基于表格的方法,通過隨機(jī)雙映射對(duì)其表格進(jìn)行編碼并通過將密碼邊界推送到包含應(yīng)用中而延伸該密碼邊界的組合來隱藏密碼密鑰的方法。

如所提到,對(duì)于許多密碼運(yùn)算來說,期望具有白盒實(shí)施方案。本發(fā)明可應(yīng)用(例如)于對(duì)稱和不對(duì)稱密碼運(yùn)算。并且,本發(fā)明可應(yīng)用于塊密碼、流密碼、消息認(rèn)證方案、簽名方案等。應(yīng)注意,本發(fā)明還可應(yīng)用于散列函數(shù)。如果散列函數(shù)被用作處理機(jī)密信息(例如,機(jī)密密鑰、機(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í)施方案對(duì)表示新密鑰的數(shù)據(jù)進(jìn)行加密和/或解密。輸入數(shù)據(jù)還可為純數(shù)據(jù),例如,純用戶數(shù)據(jù)。后者在消息認(rèn)證方案中尤其有利。根據(jù)本發(fā)明的白盒實(shí)施方案可具有該實(shí)施方案僅可用于加密、僅可用于解密而非同時(shí)用于這兩者的屬性。例如,如果實(shí)施方案使用不是雙映射的查找表,例如輸入位比輸出位更多的查找表,那么可以實(shí)現(xiàn)此屬性。因此,如果用戶僅具有白盒解密器,那么該用戶可驗(yàn)證MAC代碼,而不是創(chuàng)建新的MAC。這強(qiáng)化了此類消息認(rèn)證方案的抗抵賴屬性。

白盒實(shí)施方案可使用多個(gè)基本塊來實(shí)施。多個(gè)基本塊為互連的,在這個(gè)意義上,一些塊基于先前塊中的一個(gè)或多個(gè)塊的輸出而構(gòu)建?;緣K可(例如)作為計(jì)算機(jī)芯片在硬件中實(shí)施?;緣K可使用開關(guān)板、狀態(tài)機(jī)或用于在計(jì)算機(jī)硬件中實(shí)施功能的任何其它合適的構(gòu)造?;緣K也可實(shí)施在運(yùn)行于通用計(jì)算機(jī)芯片(例如,微處理器)上的軟件中。例如,基本塊可使用多個(gè)計(jì)算機(jī)指令,包括算術(shù)指令,它們一起實(shí)施基本塊的功能性??稍谲浻布惺褂玫幕緣K的廣泛使用的實(shí)施方案為查找表。例如,Chow 1和Chow 2采用此方法來實(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ù)的輸出值并在列表中存儲(chǔ)該輸出,可產(chǎn)生用于該函數(shù)的查找表。如果函數(shù)取決于多個(gè)輸入,那么可計(jì)算并存儲(chǔ)用于該多個(gè)輸入的所有可能組合的輸出。查找表特別適合于實(shí)施非線性函數(shù),其以不規(guī)律的方式將輸入映射到輸出。通過向白盒實(shí)施方案查找表的一個(gè)或多個(gè)應(yīng)用固定的模糊輸入編碼和固定輸出編碼,該白盒實(shí)施方案可以另外被模糊,如下面所解釋。接著,徹底預(yù)評(píng)估應(yīng)用固定模糊輸入編碼和輸出編碼的結(jié)果。通過使用此技術(shù),查找表將被具有相同尺寸的模糊查找表代替,其采用相同數(shù)量的輸入位并產(chǎn)生相同數(shù)量的輸出位。用于此類模糊處理中的輸入編碼和輸出編碼在最終的白盒實(shí)施方案中不是顯式的。

基本塊的網(wǎng)絡(luò)被布置成在向它們呈現(xiàn)輸入消息時(shí)計(jì)算輸出消息。通常,通過數(shù)個(gè)基本輸入塊對(duì)輸入消息進(jìn)行運(yùn)算。數(shù)個(gè)其它基本塊可采用來自基本輸入塊中的一個(gè)或多個(gè)和/或輸入的輸入。又其它的基本塊可以采用輸入消息、基本輸入塊的輸出和另外基本塊的輸出的任何組合的輸入。最后,基本出口塊的某個(gè)集合,即至少一個(gè)基本出口塊,作為輸出產(chǎn)生全部或部分輸出消息。以此方式顯現(xiàn)基本塊的網(wǎng)絡(luò),其共同計(jì)算從輸入消息到輸出消息的映射。

所使用的密鑰可為密碼密鑰,且可含有足夠的熵來承受預(yù)見的強(qiáng)行攻擊。應(yīng)注意,在白盒實(shí)施方案中,密鑰通常不是明確存在于該實(shí)施方案中。這樣會(huì)有通過檢測該實(shí)施方案發(fā)現(xiàn)密鑰的風(fēng)險(xiǎn)。通常,該密鑰僅隱含地存在。在密碼系統(tǒng)中隱藏密鑰的各種方式是已知的。通常,至少使用部分評(píng)估的方法,其中需要密鑰輸入的基本塊到目前為止被評(píng)估為其并不取決于輸入消息。例如,其中輸入值、不取決于輸入消息的掩蔽值(例如,來自替代盒(S盒)的值),以及密鑰值需要進(jìn)行異或運(yùn)算的基本運(yùn)算可以通過對(duì)該密鑰值和該掩蔽值一起預(yù)先進(jìn)行異或運(yùn)算來進(jìn)行部分評(píng)估。以此方式,運(yùn)算仍然取決于密鑰值,盡管該密鑰值不是明確存在于該實(shí)施方案中。實(shí)際上,僅有在密鑰值和掩蔽值之間的異或存在于實(shí)施方案中。應(yīng)注意,隱藏密鑰的更復(fù)雜的方式和/或另外的方式與本發(fā)明的實(shí)施例兼容。

引起關(guān)注的一類對(duì)白盒實(shí)施方案的攻擊是通過密碼硬件團(tuán)體應(yīng)用的硬件差分功率分析(DPA)攻擊的軟件對(duì)應(yīng)部分。從20世紀(jì)90年代末開始,眾所周知的是,在執(zhí)行密碼原語時(shí)獲得的功率軌跡的統(tǒng)計(jì)分析可與所使用的機(jī)密密鑰材料相關(guān),并因此揭露了關(guān)于該機(jī)密密鑰材料的信息。通常,在這種攻擊中,假設(shè)一個(gè)人訪問具有已知密碼算法的硬件實(shí)施方案。I(pi,k)表示具有輸入pi的算法的目標(biāo)中間狀態(tài),且其中僅使用機(jī)密密鑰的小部分,由k表示。假設(shè)在狀態(tài)I(pi,k)下裝置的功率消耗是數(shù)據(jù)依賴分量和某一隨機(jī)噪聲的總和,即,其中在狀態(tài)s期間,函數(shù)返回裝置的功率消耗,并且δ表示某一泄露噪聲。常見的假設(shè)是,噪聲是隨機(jī)的且獨(dú)立于中間狀態(tài),并且正態(tài)分布有零均值。因?yàn)閷?duì)手可以訪問硬件實(shí)施方案,所以該對(duì)手可獲得三元組(ti,pi,ci)。此處pi是對(duì)手任意選擇的一個(gè)明文輸入,ci是硬件實(shí)施方案使用固定的未知密鑰計(jì)算出的密文輸出,且值ti示出在整個(gè)硬件實(shí)施方案的時(shí)間內(nèi)計(jì)算輸出密文ci的功率消耗。泄露只是這整個(gè)功率軌跡ti的小部分。

攻擊者的目標(biāo)是在k的全部可能的假設(shè)下,通過比較裝置的真實(shí)功率測量值ti與功率消耗的估計(jì)值來恢復(fù)密鑰k的部分。差分功率分析(DPA)攻擊背后的概念是根據(jù)某一屬性將測量跡線劃分成兩個(gè)不同的集合。舉例來說,這個(gè)屬性可為中間狀態(tài)I(pi,k)的最低位的值。假設(shè)——并且這個(gè)假設(shè)實(shí)際上通過對(duì)未受保護(hù)的硬件進(jìn)行測量而被確認(rèn)——針對(duì)這兩個(gè)集合的功率消耗的分布不同,即,它們具有不同的均值和標(biāo)準(zhǔn)差。

為了獲得關(guān)于機(jī)密密鑰k的部分的信息,針對(duì)每一跡線和輸入pi,可列舉全部可能的k的值(在攻擊密鑰字節(jié)時(shí),值通常為28=256)、針對(duì)此密鑰猜測計(jì)算中間值gi=I(pi,k),以及根據(jù)在gi處測量的這個(gè)屬性將跡線ti劃分成兩個(gè)集合。如果密鑰猜測k是正確的,那么子集平均值的差值將聚合成分布的均值的差值。然而,如果密鑰猜測是錯(cuò)誤的,那么集合中的數(shù)據(jù)可被視為測量值的隨機(jī)取樣和均值的差值應(yīng)該聚合成零。如果可獲得足夠的跡線,那么這允許觀測到正確的密鑰猜測。此外,所需要的跡線的數(shù)目取決于測量噪聲和分布均值(并且因此是平臺(tái)特有的)。

雖然訪問輸出密文有助于驗(yàn)證經(jīng)恢復(fù)密鑰,但它不是絕對(duì)需要的。相反地,通過在最后輪回中瞄準(zhǔn)中間值,一個(gè)人可攻擊其中僅可訪問輸出密文的實(shí)施方案。相同的攻擊可應(yīng)用到解密運(yùn)算。

為了評(píng)定可執(zhí)行實(shí)施密碼原語的二進(jìn)制的安全性,可在對(duì)應(yīng)的架構(gòu)的CPU上執(zhí)行二進(jìn)制,并觀測其安裝差分功率分析攻擊的功率消耗,所述二進(jìn)制在白盒攻擊模型中被設(shè)計(jì)成是安全的。然而,在白盒模型中,這可表現(xiàn)得好得多,因?yàn)槟P鸵馕吨粽呖捎^測到所有事物,而沒有任何測量噪聲。實(shí)際上,此類水平的觀測可通過裝備二進(jìn)制來實(shí)現(xiàn)。從高水平來看,差分計(jì)算分析背后的概念是獲得軟件軌跡,例如,在執(zhí)行白盒實(shí)施方案期間記錄存儲(chǔ)地址的軌跡。這些跡線用作到DPA攻擊的輸入。

本文中所描述的實(shí)施例示出了用于限制白盒實(shí)施方案中沖突的方法,因?yàn)檫@些實(shí)施例可被差分攻擊利用。假設(shè)函數(shù)g返回算法的中間值,所述中間值可使用輸入(由xi表示)的部分信息和機(jī)密密鑰(由ki表示)的部分信息計(jì)算出。假設(shè)v=g(xi,ki)表示算法的這個(gè)中間值。AES的典型例子是g瞄準(zhǔn)僅使用單個(gè)輸入和密鑰字節(jié)的S盒計(jì)算。假設(shè)v的大小小于xi:這意味著沖突發(fā)生。換句話說,多個(gè)值xi映射到同一v?,F(xiàn)在,可應(yīng)用差分攻擊,其中均值差值作為v的任何位上的區(qū)別符號(hào)。假設(shè)f(v,j)返回v的第j位。在下文中,假設(shè)對(duì)手具有固定的j值。接著,每一個(gè)都與xi的值相關(guān)聯(lián)的跡線被分成分別對(duì)應(yīng)于f(v,j)=0和f(v,j)=1的兩個(gè)集合V0和V1。假設(shè)p為跡線中的位置,在所述跡線中,白盒實(shí)施方案計(jì)算或使用值v,并假設(shè)這個(gè)值通過固定編碼h進(jìn)行編碼?,F(xiàn)在,首先猜想密鑰已被正確地猜測出。接著,這兩個(gè)集合V0和V1不相交;應(yīng)注意,集合V0和V1是基于未編碼的值。這意味著在位置p處處理的已編碼的值(對(duì)應(yīng)于V0和V1中的這些跡線)也不相交。

接著,猜想密鑰未被正確地猜測出。這意味著V0和V1產(chǎn)生可能的xi值的任意分割(對(duì)于正確的密鑰猜測,并不基于中間值v在給定位置是具有1還是具有0)。由于所發(fā)生的沖突,這意味著在位置p處處理的已編碼的值的集合很有可能對(duì)于V0和V1兩者來說是一樣的,即全部可能的值h(v)很可能是一樣的。這種不同行為的結(jié)果是,相比于針對(duì)不正確密鑰猜測的,針對(duì)正確密鑰猜測的在位置p處的用于V0和V1的跡線的平均值將極有可能更為不同。

其中發(fā)生上述問題的例子是在Chow的白盒AES實(shí)施方案中。那里,S盒的輸出通過線性映射并接著通過非線性半字節(jié)編碼進(jìn)行編碼??紤]一個(gè)輸出半字節(jié),并且出于簡單解釋的目的,不考慮線性映射。對(duì)于S盒,24輸入與相同4位半字節(jié)v沖突。因此,可應(yīng)用上述攻擊。如果還考慮線性映射,那么情形稍微更加復(fù)雜,因?yàn)殡S后存在S盒-輸出位的混合物的已編碼的半字節(jié)。在那種情況下,針對(duì)線性映射的不同選擇,攻擊者可多次應(yīng)用攻擊(以便更加精確:通過此映射的單個(gè)列的不同選擇來滿足環(huán)路)。

如上文所描述,如果攻擊者可分離由固定編碼進(jìn)行編碼的中間值v,那么攻擊者可應(yīng)用差分攻擊,所述中間值具有作為得到其的輸入(輸出)的部分的較小的熵。本文中所描述的實(shí)施例的特征包括以下兩個(gè)方面。

首先,假設(shè)w為位串,并且由h(w)表示w的已編碼版本,h(w)是白盒實(shí)施方案的中間結(jié)果。此外,假設(shè)w=u;r(即,u與r級(jí)聯(lián),其中u限定如下,并且r是具有任意長度的任意位串)。值u完全通過以下各者確定:(1)單個(gè)第一輪回的S盒輸入和相關(guān)聯(lián)的密鑰字,或(2)單個(gè)最后輪回的S盒輸出和相關(guān)聯(lián)的密鑰字。更確切地說,在情形(1)中,在情形(2)中,(其中,yi是最后輪回的輸出)。那么,實(shí)施例的第一方面如下:已編碼值h(w)的位長度是至少情形(1)中的S盒輸入的位長度和至少情形(2)中的S盒輸出的位長度。

應(yīng)注意,在中間結(jié)果u不僅取決于xi(yi),還取決于輸入(輸出)的其它部分的情況下,攻擊仍然有效,如果這些量值(contribution)滿足以下屬性:輸入(輸出)的這些部分保持恒定,那么它們在u中的比重(contribution)由常量δ經(jīng)由來給出。因此,在對(duì)本發(fā)明的第一方面的上述描述中,應(yīng)該包括u中其它S盒輸入(輸出)的這種可能的附加的依賴性。

這個(gè)方法的缺點(diǎn)是白盒實(shí)施方案的大小大大增加,因?yàn)镾盒輸出不再被拆分成半字節(jié)。因此,實(shí)施例的第二方面如下。寬編碼僅僅應(yīng)用于需要它們的輪回,即,第一個(gè)和最后一個(gè)輪回。在下文的實(shí)施例中,寬編碼是對(duì)基本塊的完整輸出(例如,S盒的1字節(jié)輸出)進(jìn)行編碼的編碼。在密碼函數(shù)的許多白盒實(shí)施方案中,各種基本塊的實(shí)施方案可被拆分成半字節(jié)的運(yùn)算(即,4位運(yùn)算),以允許較小的圖表。在其它輪回中,實(shí)施例的部分不滿足實(shí)施例的第一方面的屬性(出于性能原因)。應(yīng)注意,這個(gè)實(shí)施例與AES尤其相關(guān),但可使用其它密碼函數(shù)的白盒實(shí)施方案來實(shí)施。

下面的白盒實(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é)被組織為4x4字節(jié)的矩陣。AES包括輪回的次數(shù),其取決于密鑰大小。每次輪回包括在狀態(tài)矩陣的字節(jié)、行或列上操作的類似處理步驟,在這些處理步驟中,每次輪回使用不同的輪回密鑰。應(yīng)注意,在使用AES作為例子的論述中,AES以特定方式限定輪回。在下面的實(shí)施例中,輪回為步驟的任何分組,其包括至少一個(gè)非線性映射函數(shù),例如在AES中的S盒。因此,如下所述的輪回包括一個(gè)非線性映射函數(shù)和密碼函數(shù)的其它步驟的任何組合。另外,輪回的邊界可開始于非線性映射函數(shù)(例如,S盒)或開始于可與非線性映射函數(shù)(例如,密鑰加法)合并的任何其它運(yùn)算。

圖1示出AES的輪回的一些主要處理步驟。處理步驟包括:

AddRoundKey 110-狀態(tài)的每個(gè)字節(jié)利用輪回密鑰的字節(jié)進(jìn)行異或運(yùn)算;

SubBytes 120-使用查找表的字節(jié)到字節(jié)排列;

ShiftRows140-狀態(tài)的每行被旋轉(zhuǎn)固定字節(jié)數(shù);以及

MixColumns 150-使用GF(28)中的模乘來處理每一列。

步驟SubBytes 120、ShiftRows 130和MixColumns 150與所使用的特定密鑰無關(guān)。密鑰被應(yīng)用在步驟AddRoundKey 110中。除步驟ShiftRows 140以外,可以對(duì)4x4狀態(tài)矩陣的每一列執(zhí)行處理步驟而無需了解其它列。因此,在每一列由四個(gè)8位值構(gòu)成時(shí),它們可以被看作是32位運(yùn)算。虛線150指示該過程被重復(fù)直到已執(zhí)行所需次數(shù)的輪回。

這些步驟中的每一個(gè)或步驟的組合可由查找表或由查找表的網(wǎng)絡(luò)表示。如果AddRoundKey 110步驟通過利用輪回密鑰進(jìn)行異或運(yùn)算來實(shí)施,那么在白盒攻擊情形下,密鑰是攻擊者可見的。AddRoundKey 110步驟也可嵌入在查找表中,這使得找出密鑰不太容易。實(shí)際上,通過查找表的網(wǎng)絡(luò),有可能替換AES的完整輪回。例如,SubBytes 120、ShiftRows130和MixColumns 150步驟可使用表查找來實(shí)施。下文詳細(xì)論述AES的可能白盒實(shí)施方案以在下文中描述本發(fā)明的實(shí)施例,但是此實(shí)施方案的另外詳細(xì)描述可見于Chow 1。而且,可使用查找表實(shí)施方案的其它變體,它們在本發(fā)明的范疇內(nèi)。

基于表格的白盒實(shí)施方案和有限狀態(tài)機(jī)實(shí)施方案兩者均具有在實(shí)施方案中的所有中間值被編碼的特性(相比于標(biāo)準(zhǔn)實(shí)施方案)。使用有限狀態(tài)機(jī)的白盒實(shí)施方案的例子在名稱為“數(shù)據(jù)處理方法(Data Processing Method)”的美國專利公布2007/0014394以及由Wulf Harder和Atis Straujums在2008年3月11日的名稱為“同步MCFACTTM安全數(shù)據(jù)處理技術(shù)(Synchrosoft MCFACTTM Secure Data Processing Technology)”的再信任第六季會(huì)議的演示中公開,上述各者以引用的方式并入本文中以用于所有目的,如同在本文中完全闡述。圖2示出在輪回的輸入,即在S盒的輸入上具有固定編碼的白盒AES實(shí)施方案。如圖所示,16個(gè)輸入字節(jié)中的每一個(gè)由fi編碼,以及輸出字節(jié)中的每一個(gè)由gi編碼。

為了描述本發(fā)明的實(shí)施例,將描述基于表格的白盒AES實(shí)施方案的基本描述。用于實(shí)施基于表格的白盒AES的方法的更詳細(xì)描述參看Chow 1。Chow 1示出了使用具有指定大小的表格來突破特定函數(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ì)它們的輸入和輸出進(jìn)行編碼而被模糊。

步驟1:將AES實(shí)施為查找表的網(wǎng)絡(luò)。

AES對(duì)16字節(jié)的數(shù)據(jù)塊進(jìn)行運(yùn)算。這些數(shù)據(jù)塊通常被描述為4x4字節(jié)矩陣,其被稱為包括字節(jié)X1,1、x1,2、X1,3、……、x4,4的狀態(tài)。如上文關(guān)于圖1所描述的AES輪回包括以下運(yùn)算:AddRoundKey 110、SubBytes 120、ShiftRows 130和MixColumns 140。前兩個(gè)運(yùn)算AddRoundKey和SubBytes可以被合并到單個(gè)T盒運(yùn)算中。也就是說,我們可以將輸入字節(jié)xi,j的字節(jié)到字節(jié)函數(shù)Ti,j限定為其中ki,j是基于AES密鑰的16字節(jié)輪回密鑰的單個(gè)字節(jié)。假設(shè)yi,j為Ti,j的輸出。ShiftRows運(yùn)算僅為輸出字節(jié)yi,j的下標(biāo)重新編號(hào)。為了易于陳述,此運(yùn)算在本說明書中省略,但是其可并入到實(shí)施Ti,j的查找表中或可實(shí)施為狀態(tài)矩陣的單獨(dú)操控。在MixColumns步驟中,該輪回的輸出字節(jié)zi,j根據(jù)4個(gè)輸出字節(jié)y1,j、y2,j、y3,j和y4,j經(jīng)由針對(duì)一些常量MCl,r的GF(28)中的代數(shù)表達(dá)式來計(jì)算。

現(xiàn)在使用i,j,l=1,2,...,16限定每個(gè)字節(jié)到字節(jié)函數(shù)Qi,j,l(xi,j)=MCl,i·Ti,j(xi,j)的查找表。接著通過對(duì)這些查找表的結(jié)果進(jìn)行異或運(yùn)算,可計(jì)算任何輸出字節(jié)zl,j,即應(yīng)注意,Q盒的下標(biāo)i、j、l可以被解釋為“輪回的輸入字節(jié)i、j在該輪回的輸出字節(jié)l、j中的比重”。

異或運(yùn)算可替換地被實(shí)施以對(duì)作為查找表的兩個(gè)半字節(jié)(即,4位值)中的每一個(gè)進(jìn)行運(yùn)算以減小異或表格的大小。因此,Q盒可被實(shí)施以產(chǎn)生輸出半字節(jié),從而減小該表格的大小。因此,AES輪回的每個(gè)輸出字節(jié)zl,j的計(jì)算已被描述為查找表的網(wǎng)絡(luò)。計(jì)算字節(jié)z2,3的單個(gè)輸出半字節(jié)的查找表的網(wǎng)絡(luò)在圖3中示出。

圖3示出借助于查找表的網(wǎng)絡(luò)的一個(gè)輸出字節(jié)的計(jì)算。在輸入狀態(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é)。Q盒還可被拆分成對(duì)兩個(gè)半字節(jié)而不是整個(gè)字節(jié)進(jìn)行運(yùn)算的兩個(gè)Q盒。這可通過使用額外Q盒以及相似的異或網(wǎng)絡(luò)來完成。

另外,通過從輸入狀態(tài)接收字節(jié)列并將它們轉(zhuǎn)換成輸出狀態(tài)的對(duì)應(yīng)列的輸出,可實(shí)施額外的表格集合,以將該輸入狀態(tài)310完全轉(zhuǎn)換成該輸出狀態(tài)340。

步驟2:模糊表格和中間值

在圖3中所描繪的實(shí)施方案中,密鑰可易于從Q盒提取。僅對(duì)該輸出應(yīng)用逆MixColumns乘積和逆S盒,以揭露純AddRoundKey運(yùn)算。為了防止這點(diǎn),所有查找表的輸入和輸出利用任意雙映射函數(shù)進(jìn)行編碼。這在Chow 1中描述。這意味著查找表與對(duì)該輸出進(jìn)行編碼的編碼函數(shù)和與對(duì)該輸入進(jìn)行解碼的解碼函數(shù)合并。選擇編碼以使得一個(gè)表格的輸出編碼匹配在下一個(gè)表格中假設(shè)的輸入編碼。用于第一輪回的圖3的實(shí)施方案的一部分在圖4中示出。在此例子中,到輪回的輸入未進(jìn)行編碼,以便與AES兼容,但是對(duì)該輪回的輸出進(jìn)行編碼。輸出編碼在下一輪回中進(jìn)行處理。也就是說,不同于第一輪回,第二輪回(以及后續(xù)輪回)假設(shè)其輸入被編碼??商鎿Q的是,第一輪回可接收已編碼的輸入。接著,此輸入編碼必須被應(yīng)用在包含白盒實(shí)施方案的軟件程序中的其它地方。類似地,最后輪回可根據(jù)輸出是否與AES兼容而包括或不包括輸出編碼。應(yīng)注意,在所獲得的白盒實(shí)施方案中,查找表和中間值兩者被模糊。

圖4示出通過對(duì)輸入和輸出進(jìn)行編碼來模糊的圖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對(duì)輸入進(jìn)行解碼。接著,異或430的輸出由函數(shù)f5編碼。異或432、434以類似方式具有如圖所示的輸入解碼和輸出編碼。輸出z2,3使用f7進(jìn)行編碼。這個(gè)模糊可應(yīng)用在字節(jié)或半字節(jié)與Q盒配合使用的任一情形中。

與所呈現(xiàn)的白盒實(shí)施方案相關(guān)的問題是異或表格相當(dāng)大:兩個(gè)8位值異或運(yùn)算成8位值。因此,Chow等人提出將編碼拆分成8位線性部分和兩個(gè)4位非線性部分。結(jié)果,異或可通過4位異或運(yùn)算來實(shí)施。圖5示出后面跟著Q盒的輸出的兩個(gè)4位非線性編碼的8位線性編碼的應(yīng)用。例如,Q盒420和422包括后面跟著4位非線性編碼542、544、552、554的8位線性編碼540、542。隨后,Q盒420和422的輸出被輸入到異或560、562,其將編碼逆向。

然而,這種解決方案的問題是它容易受到DCA攻擊的影響?,F(xiàn)在描述其中僅應(yīng)用有可能的圖5的策略的實(shí)施例。這意味著如果針對(duì)某一函數(shù)g和值δ,所述值δ在除了以外的某一其它輸入是固定的情況下是固定的,那么8位值u由8位非線性編碼進(jìn)行編碼。否則的話,編碼被拆分成后面跟著多個(gè)較小非線性編碼的線性編碼。針對(duì)所描述的白盒AES,這意味著如圖4所描述的那樣實(shí)施第一和最后輪回(因此,全部異或表格是16到8位異或表格),并且如圖5所描述的那樣實(shí)施其它輪回(因此,全部異或表格是8到4位異或表格)。

圖4和5的各個(gè)元件,例如,Q盒和異或,是可用于形成密碼運(yùn)算的白盒實(shí)施方案的基本塊。Q盒和異或可形成實(shí)施替代運(yùn)算(例如,AES S盒)的替代層。應(yīng)注意,上述實(shí)施例意圖保護(hù)密碼函數(shù)的前兩個(gè)替代層和最后兩個(gè)替代層之間的攻擊。

根據(jù)本發(fā)明的實(shí)施例的方法可在計(jì)算機(jī)系統(tǒng)上實(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ī)程序?qū)嵤┰诜菚簳r(shí)性計(jì)算機(jī)可讀媒體上。

另外,因?yàn)榘缀忻艽a術(shù)往往冗長難以被人書寫,所以是非常復(fù)雜和/或模糊的。因此,具有以自動(dòng)化的方式形成根據(jù)本發(fā)明的實(shí)施例的密碼系統(tǒng)的方法是有利的。

形成根據(jù)本發(fā)明的密碼系統(tǒng)的方法可在計(jì)算機(jī)上或在專用硬件中或兩者的組合中實(shí)施為計(jì)算機(jī)實(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)、音樂流業(yè)務(wù)等)可向用戶裝置提供軟件以從該內(nèi)容提供商接收已加密內(nèi)容。軟件可具有如上所述被嵌入其中的加密密鑰,并且還可包括如上所述的綁定串。接著內(nèi)容提供商可向用戶裝置發(fā)送加密內(nèi)容,該用戶裝置接著可使用所供應(yīng)的軟件進(jìn)行解密并使用該內(nèi)容。

圖6示出用于為用戶裝置提供安全內(nèi)容以及處理該安全內(nèi)容的軟件應(yīng)用的系統(tǒng)。該系統(tǒng)包括內(nèi)容服務(wù)器600、應(yīng)用服務(wù)器680、用戶裝置650、652以及數(shù)據(jù)網(wǎng)絡(luò)640。用戶裝置650、652可經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)640請求訪問由內(nèi)容服務(wù)器600提供的安全內(nèi)容。數(shù)據(jù)網(wǎng)絡(luò)可為用戶裝置650、652和內(nèi)容服務(wù)器600以及應(yīng)用服務(wù)器680之間提供連接的任何數(shù)據(jù)網(wǎng)絡(luò)。用戶裝置650、652可為多個(gè)裝置中的一個(gè),例如機(jī)頂盒、媒體等浮電纜、數(shù)字視頻記錄器、平板計(jì)算機(jī)、移動(dòng)電話、膝上型計(jì)算機(jī)、便攜式媒體裝置、智能手表、臺(tái)式計(jì)算機(jī)、媒體服務(wù)器等、

用戶的請求訪問可首先需要下載可用于處理由內(nèi)容服務(wù)器600提供的安全內(nèi)容的軟件應(yīng)用。所述軟件應(yīng)用可從應(yīng)用服務(wù)器680下載。軟件應(yīng)用可使用上文描述的技術(shù)進(jìn)行模糊處理以及如上文描述進(jìn)行操作。一旦用戶裝置650、652安裝軟件應(yīng)用,用戶裝置隨后就可從內(nèi)容服務(wù)器600下載安全內(nèi)容并且使用所下載的軟件應(yīng)用來訪問該安全內(nèi)容。例如,所下載的軟件應(yīng)用程序可執(zhí)行對(duì)從內(nèi)容服務(wù)器接收的已加密內(nèi)容的解密。在其它實(shí)施例中,軟件應(yīng)用可執(zhí)行其它安全運(yùn)算,例如加密、數(shù)字簽名產(chǎn)生和驗(yàn)證等。

內(nèi)容服務(wù)器600可控制對(duì)提供給用戶裝置650、652的安全內(nèi)容的訪問。因此,在內(nèi)容服務(wù)器600接收安全內(nèi)容的請求時(shí),內(nèi)容服務(wù)器600可向所請求的用戶裝置傳輸該安全內(nèi)容。同樣,應(yīng)用服務(wù)器620可控制對(duì)提供給用戶裝置650、652的軟件應(yīng)用的訪問。因此,在內(nèi)容服務(wù)器620接收軟件應(yīng)用的請求時(shí),應(yīng)用服務(wù)器620可向所請求的用戶裝置傳輸該軟件應(yīng)用。在將軟件應(yīng)用或安全內(nèi)容提供給用戶裝置之前,請求軟件應(yīng)用或安全內(nèi)容的用戶裝置還可通過相應(yīng)的服務(wù)器來認(rèn)證。

內(nèi)容服務(wù)器600可包含經(jīng)由一個(gè)或多個(gè)系統(tǒng)總線680互連的處理器602、存儲(chǔ)器604、用戶接口606、網(wǎng)絡(luò)接口610和內(nèi)容存儲(chǔ)裝置612。將理解,圖6在一些方面中構(gòu)成抽象圖,且裝置600的組件的實(shí)際組織可比所示出的更加復(fù)雜。

處理器602可為能夠執(zhí)行存儲(chǔ)在存儲(chǔ)器604或存儲(chǔ)裝置612中的指令的任何硬件裝置。因此,該處理器可包含微處理器、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)或其它類似裝置。

存儲(chǔ)器604可包括各種存儲(chǔ)器,例如,L1、L2或L3高速緩沖存儲(chǔ)器或系統(tǒng)存儲(chǔ)器。因而,存儲(chǔ)器602可包括靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)RAM(DRAM)、快閃存儲(chǔ)器、只讀存儲(chǔ)器(ROM),或其它類似存儲(chǔ)器裝置。

用戶接口606可包括用于實(shí)現(xiàn)與用戶(例如,管理員)通信的一個(gè)或多個(gè)裝置。例如,用戶接口606可包括用于接收用戶命令的顯示器、鼠標(biāo)和鍵盤。

網(wǎng)絡(luò)接口610可包括用于實(shí)現(xiàn)與其它硬件裝置的通信的一個(gè)或多個(gè)裝置。例如,網(wǎng)絡(luò)接口610可包括網(wǎng)絡(luò)接口卡(NIC),其被配置成根據(jù)以太網(wǎng)協(xié)議通信。另外,網(wǎng)絡(luò)接口610可實(shí)施TCP/IP堆棧以根據(jù)TCP/IP協(xié)議通信。用于網(wǎng)絡(luò)接口610的各種替代的或另外的硬件或配置將是顯而易見的。

內(nèi)容存儲(chǔ)裝置612可包括一個(gè)或多個(gè)機(jī)器可讀內(nèi)容存儲(chǔ)媒體,例如只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁盤存儲(chǔ)媒體、光學(xué)存儲(chǔ)媒體、快閃存儲(chǔ)器裝置或類似存儲(chǔ)媒體。在各種實(shí)施例中,內(nèi)容存儲(chǔ)裝置612可存儲(chǔ)將提供給用戶的內(nèi)容。

應(yīng)用服務(wù)器620包括與內(nèi)容服務(wù)器600的元件相同的元件,并且對(duì)內(nèi)容服務(wù)器600中的相同元件的描述適用于應(yīng)用服務(wù)器620。而且,內(nèi)容存儲(chǔ)裝置612被應(yīng)用存儲(chǔ)裝置632代替。另外,應(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)場可編程門陣列(FPGA)、專用集成電路(ASIC)和其它類似處理裝置。當(dāng)軟件在處理器上實(shí)施時(shí),所述組合變?yōu)閱蝹€(gè)特定機(jī)器。

本領(lǐng)域的技術(shù)人員應(yīng)了解,本文中的任何框圖表示體現(xiàn)本發(fā)明的原理的說明性電路的概念視圖。

盡管已經(jīng)具體參考各種示例性實(shí)施例的特定示例性方面來詳細(xì)地描述各種示例性實(shí)施例,但應(yīng)理解,本發(fā)明能夠容許其它實(shí)施例且其細(xì)節(jié)能夠容許在各種顯而易見的方面的修改。如對(duì)本領(lǐng)域的技術(shù)人員顯而易見的,可以實(shí)現(xiàn)變化和修改,同時(shí)保持在本發(fā)明的精神和范疇內(nèi)。因此,前述公開內(nèi)容、描述和圖式僅出于說明性目的且不以任何方式限制本發(fā)明,本發(fā)明僅由權(quán)利要求書限定。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
扬中市| 吴川市| 东明县| 齐齐哈尔市| 正安县| 平阳县| 水城县| 荔波县| 文化| 开远市| 防城港市| 本溪市| 明光市| 浮山县| 佛学| 宜兴市| 福州市| 沐川县| 卢氏县| 民勤县| 大姚县| 时尚| 虎林市| 泽普县| 桂阳县| 琼结县| 锦州市| 山丹县| 南汇区| 武汉市| 敦煌市| 华容县| 赫章县| 苍山县| 灌云县| 信丰县| 揭西县| 吉首市| 筠连县| 崇阳县| 新营市|