欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)字?jǐn)?shù)據(jù)處理單元的防篡改的制作方法

文檔序號(hào):7677923閱讀:215來(lái)源:國(guó)知局
專利名稱:數(shù)字?jǐn)?shù)據(jù)處理單元的防篡改的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及提高數(shù)字?jǐn)?shù)據(jù)處理單元的防篡改。
背景技術(shù)
互聯(lián)網(wǎng)向用戶提供了方便而普遍存在的對(duì)數(shù)字內(nèi)容的訪問(wèn)。由于
互聯(lián)網(wǎng)作為有力分配渠道的潛在可能性,許多消費(fèi)電子(CE)產(chǎn)品努 力爭(zhēng)取直接接入互聯(lián)網(wǎng)或者與PC平臺(tái)(到互聯(lián)網(wǎng)的主導(dǎo)性入口 )互操 作。CE產(chǎn)品包括但不限于數(shù)字機(jī)頂盒、數(shù)字電視、游戲控制臺(tái)、PC以 及越來(lái)越多的手持設(shè)備,諸如PDA、移動(dòng)電話以及移動(dòng)存儲(chǔ)和呈現(xiàn)設(shè)備 (例如蘋果公司的iPod)。使用互聯(lián)網(wǎng)作為用于有版權(quán)內(nèi)容的分發(fā)媒
介形成了對(duì)保護(hù)內(nèi)容提供商利益的不得不接受的挑戰(zhàn)。特別地,要求 保證內(nèi)容提供商的版權(quán)和商業(yè)模式。越來(lái)越多地,通過(guò)使用加栽有適 當(dāng)軟件的處理器來(lái)操作CE平臺(tái)。這種軟件可以包括用于呈現(xiàn)(回放) 數(shù)字內(nèi)容(例如音頻和/或視頻)的主要功能部分?;胤跑浖目刂剖?實(shí)現(xiàn)內(nèi)容所有者的利益的一種方式,這些利益包括可以使用所述內(nèi)容 的條款和條件。在傳統(tǒng)上,許多CE平臺(tái)(除了 PC和PDA之外)常常 是封閉的,而如今越來(lái)越多的平臺(tái)是至少部分地開(kāi)放的。特別是對(duì)于 PC平臺(tái)而言,可以假設(shè)一些用戶對(duì)于提供對(duì)所述內(nèi)容的訪問(wèn)的硬件和 軟件具有完全的控制以及具有大量的時(shí)間和資源來(lái)攻擊和旁路繞過(guò)任 何內(nèi)容保護(hù)機(jī)制。結(jié)果,內(nèi)容提供商必須通過(guò)到其中不是所有的用戶 或設(shè)備都可以被信任的社區(qū)的不利網(wǎng)絡(luò)來(lái)遞交內(nèi)容給合法用戶,
一般而言,數(shù)字權(quán)利管理系統(tǒng)使用基于分塊密碼的加密技術(shù),其 使用一系列加密/解密步驟(稱為回合(round))來(lái)以塊為單位處理 數(shù)據(jù)流。在每個(gè)回合期間,執(zhí)行回合特定的功能。該回合特定的功能 可以基于在回合特定的子密鑰的控制下執(zhí)行的相同回合功能。對(duì)于許 多加密系統(tǒng)而言,可以使用映射表或者查找表來(lái)規(guī)定該回合功能。即 使沒(méi)有使用顯式的表格,然而經(jīng)常的是,為功能的不同部分使用表格 以便在加密/解密功能的軟件有效地執(zhí)行。計(jì)算機(jī)代碼訪問(wèn)表格值或者 將表格值結(jié)合到所述功能的范圍值中。代替分發(fā)可能是用戶特定的密鑰的是,分發(fā)用戶特定的算法而不是用于加密或解密算法的密鑰變得 日益令人感興趣。這些算法(在大多數(shù)情況下是函數(shù)(映射))必須
被混淆(obfuscate)(隱藏)以便防止重新設(shè)計(jì)或者禁止重新計(jì)算如 密鑰這樣的元素。在計(jì)算機(jī)上,伴隨某些計(jì)算機(jī)代碼的表格通常代表 了這些函數(shù)。
內(nèi)容提供商必須通過(guò)到其中不是所有的用戶或設(shè)備都可以被信任 的社區(qū)的不利網(wǎng)絡(luò)來(lái)遞交內(nèi)容給合法用戶。特別是對(duì)于PC平臺(tái)而言,
制以及具有無(wú)限數(shù)量的時(shí)間和資源以便攻擊和旁路繞過(guò)任何內(nèi)容保護(hù) 機(jī)制。強(qiáng)制可以依據(jù)其使用所述內(nèi)容的條款和條件的軟件代碼必須不 可以被篡改。在數(shù)字權(quán)利管理中用于分發(fā)到PC的受保護(hù)內(nèi)容的一般方 法是加密數(shù)字內(nèi)容,例如DES(數(shù)據(jù)加密標(biāo)準(zhǔn))、AES(高級(jí)加密標(biāo)準(zhǔn)), 或者使用W09967918中公開(kāi)的方法,并且使用解密密鑰。
依賴于加密的數(shù)字權(quán)利管理的弱點(diǎn)的兩個(gè)主要領(lǐng)域是強(qiáng)制使用內(nèi) 容的條款和條件的軟件插件以及密鑰分發(fā)和處理。
一般而言,插件強(qiáng)制要依據(jù)其使用內(nèi)容的條款和條件。意欲移除
序代碼來(lái)實(shí)現(xiàn)這一點(diǎn)。
關(guān)于密鑰處理,對(duì)于回放而言,媒體播放器必須從許可證數(shù)據(jù)庫(kù) 中獲取解密密鑰。然后,它必須將該解密密鑰存儲(chǔ)在存儲(chǔ)器中的某處 以用于解密經(jīng)加密的內(nèi)容。這給攻擊者留下了兩個(gè)攻擊密鑰的選項(xiàng)。 首先,許可證數(shù)據(jù)庫(kù)接入功能的逆向工程技術(shù)可能導(dǎo)致黑盒軟件(即 攻擊者不必理解軟件功能的內(nèi)部工作),從而允許攻擊者從所有許可 證數(shù)據(jù)庫(kù)中獲取資產(chǎn)密鑰。其次,通過(guò)在內(nèi)容解密期間觀察對(duì)存儲(chǔ)器 的訪問(wèn),有可能獲取所述資產(chǎn)密鑰。在這兩種情況下,都認(rèn)為密鑰受 到損害。
防篡改軟件之所以這樣被稱呼的原因在于,對(duì)于該軟件的目標(biāo)導(dǎo) 向篡改被復(fù)雜化了。存在各種用于提高軟件應(yīng)用的防篡改性的技術(shù)。
機(jī)性和復(fù)雜性掩飾(veil)來(lái)隱藏該應(yīng)用的嵌入知識(shí)。其背后的思想 在于,僅僅通過(guò)代碼檢查來(lái)提取信息變得更加困難。因此,發(fā)現(xiàn)例如 處理應(yīng)用的訪問(wèn)和許可控制的代碼并且從而改變它變得更加困難。
52002年8月15-16日,Stanley Chow, Philip Eisen, Harold
Johnson和Paul C. Van Oorschot在Selected Areas in Cryptography:
9th Annual International Workshop, SAC 2002, St. John's,
Newfoundland, Canada的論文"White-Box Cryptography and an AES
Implementation"(此后稱為"Chow 1")以及2002年11月18日,
Stanley Chow, PhilEisen, Harold Johnson和Paul C. van Oorschot
在Digital Rights Management: ACM CCS-9 Workshop, ■ 2002,
Washington, DC, USA的論文"A White-Box DBS Implementation for
DRM Applications"(此后稱為"Chow 2")中公開(kāi)了目的在于隱藏
密鑰的方法,該方法通過(guò)下列的組合來(lái)進(jìn)行,即利用代表組成
(composition)而不是單獨(dú)步驟的隨機(jī)雙射(bijection)編碼其表
格,以及通過(guò)將密碼邊界進(jìn)一步向外推向包含應(yīng)用來(lái)擴(kuò)展該密碼邊界。 W0 2006/046187公開(kāi)了在系統(tǒng)中服務(wù)器如何以混淆的形式向執(zhí)行 設(shè)備提供密碼函數(shù)F。該函數(shù)F使用阿貝爾群(Abelian group )算子》 組合多個(gè)映射表L (0《i《n; r^l)的輸出。處理器選擇表格0和C,
以使得('W⑧"W-o,v^",并且創(chuàng)建表格7"',0^^^"/^" + 1,,其中對(duì) 于o《"",,每個(gè)表格7',代表各自的相應(yīng)表格'A',并且至少一個(gè)表格 /'",'()s",通過(guò)'/;和o的阿貝爾組合來(lái)形成,至少一個(gè)表格 /;'()"、《w,e'"通過(guò)包括c的阿貝爾組合來(lái)形成。使用了裝置用于將
表格7',提供給執(zhí)行設(shè)備。該執(zhí)行設(shè)備包括用于接收所述表格的裝置以 及用于執(zhí)行函數(shù)F,的處理器,該函數(shù)F,通過(guò)表格卩的阿貝爾組合而在 功能上等效于密碼函數(shù)F。

發(fā)明內(nèi)容
有利的是擁有用于提高數(shù)字?jǐn)?shù)據(jù)處理單元的防篡改性的改進(jìn)系 統(tǒng)。為了更好地解決這一問(wèn)題,在本發(fā)明的笫一方面中,提供的系統(tǒng) 包括
第一單元(901),其包括
輸入端(904 ),用于接收數(shù)字?jǐn)?shù)據(jù),以及 處理裝置(906 ),用于根據(jù)基于所接收的數(shù)字?jǐn)?shù)據(jù)中的值而 在至少一個(gè)查找表(916)中查找的值來(lái)處理所接收的數(shù)字?jǐn)?shù)據(jù);以及 第二單元(902 ),其包括用于計(jì)算用于包含在所述數(shù)字?jǐn)?shù)據(jù)中的至少一個(gè)值的裝置(912), 所述至少一個(gè)值使得第一單元在處理所述數(shù)字?jǐn)?shù)據(jù)時(shí)在所述查找表中 查找至少一個(gè)預(yù)定值,
插入器(910),用于將所述至少一個(gè)值包含在所述數(shù)字?jǐn)?shù)據(jù)中,
以及
輸出端(908 ),用于將所述數(shù)字?jǐn)?shù)據(jù)發(fā)送到第一單元。 第一單元執(zhí)行的處理可以包括數(shù)據(jù)的呈現(xiàn)。該數(shù)據(jù)可以包括編碼 的音頻和/或視頻內(nèi)容。第一單元包括一個(gè)或多個(gè)查找表(916),并 且對(duì)數(shù)字?jǐn)?shù)據(jù)的處理通過(guò)執(zhí)行若干個(gè)表格查找來(lái)至少部分地執(zhí)行。在 許多系統(tǒng)中,所述數(shù)據(jù)和/或偽隨機(jī)處理確定哪個(gè)查找表?xiàng)l目用于解 碼。在這樣的系統(tǒng)上,可能發(fā)生特定查找表?xiàng)l目未被使用,或者僅在 已經(jīng)解碼了所述數(shù)據(jù)的相對(duì)較大部分后才被使用。本發(fā)明的這個(gè)方面 允許第二單元在查找表中指定將在處理所述數(shù)據(jù)時(shí)被訪問(wèn)的至少一個(gè)
預(yù)定值。第二單元可以通過(guò)將至少一個(gè)值包含在所述數(shù)據(jù)中來(lái)指定這 一點(diǎn),其中這樣選擇所述至少一個(gè)值以使得它將導(dǎo)致在所述處理中訪 問(wèn)和使用所述預(yù)定值。如果所述查找表中的預(yù)定值已經(jīng)被攻擊者改變 了,那么所述處理會(huì)失敗,這是因?yàn)槌晒Φ奶幚硪笫褂脹](méi)有被改變的值。
第一單元可以例如是用戶終端、計(jì)算機(jī)、機(jī)頂盒或者電視。第二 單元可以例如是內(nèi)容提供商或者服務(wù)器。第一和第二單元也可以是單 個(gè)物理設(shè)備的部分。
依照本發(fā)明的一個(gè)方面,第二單元包括用于將加密的內(nèi)容包含在 所述數(shù)字?jǐn)?shù)據(jù)中的加密裝置;所迷插入器被布置為用于將所述至少一 個(gè)值包含在所述加密的內(nèi)容中;并且所述處理裝置被布置為用于基于 查找操作來(lái)解密所述加密的內(nèi)容。
解密和加密可以通過(guò)使用查找表來(lái)有效地實(shí)現(xiàn)。通過(guò)將所述值插 入到加密的內(nèi)容中,解碼器將訪問(wèn)預(yù)定的查找表?xiàng)l目,而不必能夠?qū)?這樣插入的值與所述加密的數(shù)據(jù)中出現(xiàn)的任何其他值區(qū)分開(kāi)。在解密 之后,解密的數(shù)據(jù)可以包含標(biāo)識(shí)所插入值的解密結(jié)果的標(biāo)簽,其將允 許用于處理的裝置丟棄所插入值的解密結(jié)果。
依照本發(fā)明的一個(gè)方面,所述系統(tǒng)包括用于將處理裝置的輸出與 參考值進(jìn)行比較的驗(yàn)證裝置。
7該驗(yàn)證裝置可以包含于第一單元、第二單元或者第三單元中并且 接收處理的結(jié)果。該檢驗(yàn)裝置將處理的結(jié)果與被認(rèn)為是正確結(jié)果的值 進(jìn)行比較。如果查找表中的預(yù)定值不包含它應(yīng)當(dāng)包含的值,那么該比 較失敗并且該驗(yàn)證單元檢測(cè)到篡改。
依照本發(fā)明的一個(gè)方面,所述處理裝置被布置用于以預(yù)定的順序 處理所述數(shù)字?jǐn)?shù)據(jù),其中所查找的值影響其處理在查找操作之后開(kāi)始 的數(shù)據(jù)的處理結(jié)果。
這個(gè)方面具有的優(yōu)點(diǎn)在于,如果所述查找表值已經(jīng)被墓改,那么 所述數(shù)據(jù)的相對(duì)較大的部分將不會(huì)被正確地處理。在這種篡改情況下, 所述插入值之后的許多數(shù)據(jù)將被錯(cuò)誤地處理。
依照本發(fā)明的一個(gè)方面,所述插入器被布置用于將所述至少一個(gè) 值置于所述數(shù)字?jǐn)?shù)據(jù)中以便使得用于解碼的裝置在處理所述數(shù)字?jǐn)?shù)據(jù) 的預(yù)定分塊之前在查找表中查找所述至少一個(gè)預(yù)定值。
這將確保很好地保護(hù)數(shù)字內(nèi)容的預(yù)定分塊以防止在已經(jīng)受到篡改 的系統(tǒng)上被處理。
依照本發(fā)明的一個(gè)方面,第一單元包括存儲(chǔ)器,用于存儲(chǔ)要由該 第一單元執(zhí)行的軟件的比特表示,并且該軟件的比特表示的至少一部
分由所述處理裝置用作查找表的至少一部分;并且所述查找表中的至 少一個(gè)預(yù)定值出現(xiàn)在所述軟件的比特表示的至少一部分中。
存儲(chǔ)位置用于兩個(gè)獨(dú)立的目的這一事實(shí)使得篡改存儲(chǔ)位置更加困 難,這是因?yàn)槿珀阶龀龈淖円员銓?shí)現(xiàn)與存儲(chǔ)位置的第一用途有關(guān)的目 標(biāo),那么該改變也將以難以克服的方式影響存儲(chǔ)位置的第二用途。
應(yīng)當(dāng)指出的是,共同待決的專利申請(qǐng)EP06116693. 0 (代理人案巻 號(hào)PH005600 )公開(kāi)了一種提高軟件系統(tǒng)的防篡改性的方法,其包括步 驟
基于多個(gè)參數(shù)編制多個(gè)用于處理數(shù)字?jǐn)?shù)據(jù)的計(jì)算機(jī)可執(zhí)行指令;
在這些參數(shù)的比特表示中標(biāo)識(shí)與在所述處理期間可讀的計(jì)算機(jī)可 執(zhí)行代碼的比特表示相等的部分;
將這些指令布置用于在這些指令執(zhí)行期間,使用保持所述代碼的 比特表示的至少一個(gè)存儲(chǔ)地址以用于通過(guò)引用來(lái)讀取所述參數(shù)的比特 表示的相等部分。
依照本發(fā)明的一個(gè)方面,所述軟件的比特表示的至少一部分包含
8作為所述處理裝置的操作的一部分而執(zhí)行的指令。
查找表以及作為所述處理裝置的一部分而執(zhí)行的指令通過(guò)聯(lián)合它 們并且存儲(chǔ)單個(gè)副本到存儲(chǔ)器中而受到保護(hù)。所述處理裝置再次可以 包括解密裝置、加密裝置或者(解)壓縮裝置。


此后,將參照附圖闡述本發(fā)明的這些和其他方面,其中
圖1為示出AES回合中的操作的示圖; 圖2為示出混淆表格的實(shí)例示圖; 圖3為示出一個(gè)實(shí)施例的示圖; 圖4為示出處理步驟的流程圖; 圖5為示出一個(gè)實(shí)施例的示圖。
具體實(shí)施例
圖3示出了本發(fā)明的一個(gè)實(shí)施例。該圖示出第一單元901和第二 單元902。第一單元901使用輸入端904來(lái)通過(guò)輸出端908從第二單元 902接收數(shù)據(jù)。輸入端904可以包括具有例如TCP/IP支持的網(wǎng)絡(luò)輸入 端或者用于從可移除存儲(chǔ)介質(zhì)(例如DVD、 CD、磁帶)讀取數(shù)據(jù)的單元。 輸出端908相應(yīng)地包括網(wǎng)絡(luò)輸出端或者例如盤片操縱設(shè)備。連接輸出 端908和輸入端904的箭頭代表用于將數(shù)據(jù)從輸出端908傳輸?shù)捷斎?端904的分發(fā)通道。第二單元902還包括數(shù)據(jù)存儲(chǔ)器或者數(shù)據(jù)發(fā)生器 914??梢砸灾T如ZIP、 MPEG、 MP3之類的任何特定格式編碼數(shù)據(jù)914, 也可以對(duì)該數(shù)據(jù)914進(jìn)行加密。第二單元還包括用于將特定值插入到 數(shù)據(jù)流中的插入器910。插入器910可以具有某些嵌入的智能以便確保 包括插入值的數(shù)據(jù)遵循原始數(shù)據(jù)914的格式。如果該數(shù)據(jù)是動(dòng)態(tài)地產(chǎn) 生的,那么插入器可以與數(shù)據(jù)發(fā)生器協(xié)作以便正確地以數(shù)據(jù)格式包容 插入值。此外,可以給插入值添加標(biāo)簽以使得可以因此識(shí)別它們。這 將防止第一單元錯(cuò)誤地處理這些插入值。然而,所述加標(biāo)簽僅在已經(jīng) 進(jìn)行了某種處理之后才變得明顯。
第一單元901還包括處理裝置906和一個(gè)或多個(gè)查找表916。該處 理裝置處理進(jìn)入的數(shù)據(jù)。它可以解釋數(shù)據(jù)呈現(xiàn)的格式(ZIP、 MPEG、 MP3、 加密等等)。例如,ZIP格式意指所述處理包含解壓縮。處理裝置還被布置用于解碼MPEG、 MP3或者其他格式。作為最后的實(shí)例,所述處理裝置可以被布置用于解密或者加密進(jìn)入的數(shù)椐。處理裝置906通過(guò)在查找表916之一中查找從數(shù)據(jù)導(dǎo)出的值來(lái)至少部分地執(zhí)行所迷處理。所查找的值可以用于進(jìn)一步的處理,例如用于定義下一個(gè)表查找,或者它們可以代表輸出數(shù)據(jù)。這些查找表在所述數(shù)據(jù)的處理中起著重要的作用。如果攻擊者改變了查找表?xiàng)l目,并且該查找表?xiàng)l目的使用與數(shù)據(jù)有關(guān),那么所述處理裝置可能產(chǎn)生經(jīng)過(guò)錯(cuò)誤處理的數(shù)據(jù)。這使得攻擊者進(jìn)行成功的改變更加困難。
假設(shè)一方對(duì)于第一單元901的完整性感興趣。該方可以使用第二單元902來(lái)檢驗(yàn)第一單元901的完整性。當(dāng)然,可以通過(guò)從輸入數(shù)據(jù)導(dǎo)出的查找來(lái)連續(xù)地檢查完整性。然而,第二單元902可以用來(lái)檢查特定預(yù)定義值的存在性。為此目的,插入器910將專門計(jì)算的值插入到數(shù)據(jù)流中。第二單元902還包括用于計(jì)算用于包含于所述數(shù)字?jǐn)?shù)據(jù)中的值的裝置912。該值是以這樣的方式來(lái)計(jì)算,以便作為第一單元901的一部分的處理裝置906在其處理所述數(shù)據(jù)時(shí)將查找該特定的預(yù)定義值。為此目的,用于計(jì)算該值的裝置912具有有關(guān)處理裝置906和/或查找表916的一些知識(shí)。
在一些情況下,該插入值不應(yīng)當(dāng)在被處理的數(shù)據(jù)中使用,因?yàn)樵摬迦胫祪H僅被包含來(lái)檢查查找表?xiàng)l目。為此目的,插入器910可以被布置成將標(biāo)記(marker)包含到所述數(shù)據(jù)中以便標(biāo)識(shí)插入值。優(yōu)選地,該標(biāo)記僅在通過(guò)處理裝置906處理所述數(shù)據(jù)之后變得可見(jiàn),這是因?yàn)椴蝗坏脑挘粽呖赡艽鄹奶幚硌b置906以便跳過(guò)該插入值。此外,所述編碼通常使得該插入值還影響該插入值周圍的一些數(shù)據(jù)。如果查找表?xiàng)l目已經(jīng)被改變了 ,那么這將使得該插入值周圍的數(shù)據(jù)不可用,這正是所希望的。此外還可能的是,第二單元902要求第一單元901將被處理的數(shù)據(jù)(的部分)返回給第二單元902。然后,第二單元902可以檢驗(yàn)所述被處理的數(shù)據(jù),并且從而發(fā)現(xiàn)所述預(yù)定義查找表?xiàng)l目是否被改變了。
在下文中,解釋了如何可以通過(guò)使用混淆的查找表來(lái)使得算法的實(shí)現(xiàn)更加具有防篡改性。此外,解釋了代碼和表格值的聯(lián)合。給出了AES和DES的實(shí)例。然而,所述方法可以應(yīng)用到許多不同種類的算法,尤其是可以通過(guò)使用一個(gè)或多個(gè)查找表來(lái)實(shí)現(xiàn)的算法。
10混淆查找表
在軟件應(yīng)用的控制和數(shù)據(jù)路徑中添加隨機(jī)性和復(fù)雜性掩飾的方法沒(méi)有阻止該軟件遭受篡改,而只是使得確定需要做出什么改變以便達(dá)到篡改者的目的變得更加困難。防篡改背后的 一般原理可以概括如下。
程序P可以表示為訪問(wèn)控制和/或許可X與功能Y的組合。攻擊者可能希望篡改該程序,使得在不影響所述功能的情況下移除訪問(wèn)控制或許可。然后,可以運(yùn)行被篡改的程序而不需要訪問(wèn)控制或許可,或者至少可以運(yùn)行而忽略這些控制。下面將主要針對(duì)Y包括處理功能的情況來(lái)解釋本發(fā)明。所述功能可以包括加密、解密、壓縮、解壓縮、呈現(xiàn)、驗(yàn)證、認(rèn)證。本發(fā)明適用于任何種類的功能Y。
理想情況下,對(duì)于防篡改程序而言,篡改X應(yīng)當(dāng)立即導(dǎo)致Y的損失,而不管該篡改如何小。換言之,X和Y應(yīng)當(dāng)是不可分離的,或者至少是在非常大難度的情況下才可分離。 一種實(shí)現(xiàn)不可分離性的方式是在X和Y之間建立一定關(guān)系,以使得對(duì)于X的任何故意的改變導(dǎo)致對(duì)于Y的非故意的改變,這將從Y中除去所述功能。為了恢復(fù)Y的功能,將需要進(jìn)一步改變Y。由于已經(jīng)使得所述功能和程序的控制元素不可分離,因而攻擊變得困難得多。如果在程序的代碼上建立起這種不可分離性,那么在不需要一定遮蓋該程序代碼的情況下就可以使得該程序具有防篡改性。防墓改軟件是一種其中執(zhí)行目標(biāo)導(dǎo)向的篡改是復(fù)雜的軟件。
AES是一種分塊尺寸為128比特或16字節(jié)的分塊密碼。明文被劃分成16字節(jié)的若干個(gè)分塊,其形成編碼算法的初始狀態(tài),并且編碼算法的最終狀態(tài)是密文。為了從概念上解釋AES,將所述狀態(tài)的字節(jié)組織成4x4字節(jié)的矩陣。AES包括若干個(gè)回合。每個(gè)回合包括在所述狀態(tài)矩陣的字節(jié)、行或列上進(jìn)行操作的相似處理步驟,每個(gè)回合在這些處理
步驟中使用不同的回合密鑰。
圖1示出了 AES的基本回合的一些主要處理步驟。這些處理步驟包括
AddRoundKey 2——所述狀態(tài)的每個(gè)字節(jié)與回合密鑰的字節(jié)進(jìn)行異或(X0R)。
SubBytes 4——使用查找表的字節(jié)到字節(jié)的置換。的每行按順序循環(huán)固定數(shù)量的字節(jié)。 MixColumns 8——使用在GF U8)中的模乘來(lái)處理每列。 步驟SubBytes 4、 ShiftRows 6和MixColumns 8獨(dú)立于所用的特 定密鑰。該密鑰在步驟AddRoundKey 2中應(yīng)用。除了步驟ShiftRows 6 之外,可以在所述4x4狀態(tài)矩陣的每列上執(zhí)行這些處理步驟而不需要 了解其他列的情況。因此,可以認(rèn)為它們是32比特的操作,這是因?yàn)?每列包括4個(gè)8比特值。虛線10表示重復(fù)該過(guò)程,直到已經(jīng)執(zhí)行了所 要求數(shù)量的回合為止。
這些步驟中的每一個(gè)或者步驟的組合可以由查找表或者由查找表 網(wǎng)絡(luò)(S盒)來(lái)表示。也可以用查找表網(wǎng)絡(luò)替換AES的完整回合。例如, AddRoundKey步驟可以通過(guò)簡(jiǎn)單地與回合密鑰進(jìn)4亍異或來(lái)實(shí)現(xiàn),而 SubBytes、 ShiftRows和MixColumns步驟使用表查找來(lái)實(shí)現(xiàn)。然而,
這意味著所述密鑰在白盒攻擊環(huán)境下對(duì)于攻擊者仍然是可見(jiàn)的。 AddRoundKey步驟也可以嵌入到查找表中,這使得找出該密鑰不是那么 明顯。如圖所示的步驟2、 4、 6和8的順序通常用于加密。對(duì)于解密 而言,這些步驟以相反的順序來(lái)執(zhí)行。然而,可以重申該解密過(guò)程, 使得其使用如圖所示的步驟2、 4、 6和8的順序。
圖2示出了使得提取所述密鑰甚至更加困難的方式。令X和Y為 兩個(gè)函數(shù)??紤]如圖示12所述的搮作r〃"'^^^。),其中c為輸入 值,例如為4字節(jié)狀態(tài)列。然而,該方法適用于任何類型的輸入值c。 映射X和Y可以實(shí)現(xiàn)為可存儲(chǔ)在存儲(chǔ)器中的查找表,但是,當(dāng)它們存 儲(chǔ)在存儲(chǔ)器中時(shí)所述值可能被攻擊者所讀取。圖示14示出了所述查找 表的內(nèi)容可以如何通過(guò)使用輸入編碼F和輸出編碼H來(lái)混淆。如圖所
示,存儲(chǔ)對(duì)應(yīng)于義。廠'和〃。y的查找表而不是存儲(chǔ)x和Y,這使得提取
X和Y更加困難。圖示16示出了如何添加附加的、例如隨機(jī)的雙射函 數(shù)G,來(lái)使得這兩個(gè)表格的中間結(jié)果也被編碼。在這種情況下,兩個(gè)表 格存儲(chǔ)在存儲(chǔ)器中義^G。U,'和r-f/。y。G'。這再次示于示圖18

、' X' = (〃 o y 。 G ') 。 (G' 。
。 /廣')=f/〇(K 。義)。F.'
其中,。表示通常的函數(shù)組合(即按照定義,對(duì)于任何兩個(gè)函數(shù)f (x) 和g(x), = ) , X和Y為適合借助于查找表來(lái)實(shí)現(xiàn)的函數(shù)。
類似地,可以對(duì)包括多于兩個(gè)函數(shù)的網(wǎng)絡(luò)進(jìn)行編碼。通過(guò)在單個(gè)查找
12表中組合〃 。r 。 G'—'以及在單個(gè)查找表中組合G 。義。'來(lái)混淆對(duì)X和Y進(jìn)
行編碼的實(shí)際表格。只要F、 G和/或H保持未知,那么攻擊者就不能 從這些查找表中提取有關(guān)X和/或Y的信息,并且因此攻擊者不能提取 作為X和/或Y的基礎(chǔ)的密鑰。其他密碼算法,包括DES和Rijndael (AES是其特定實(shí)例)內(nèi),也可以被編碼成可以以與上面相似的方式混 淆的查找表(級(jí)聯(lián)或網(wǎng)絡(luò))。本發(fā)明不限于所述的示例性密碼算法。
Chow 1公開(kāi)了一種目的在于通過(guò)利用代表組合而不是單獨(dú)步驟的 隨機(jī)雙射對(duì)表格進(jìn)行編碼來(lái)隱藏密鑰的方法。阻止秘密密鑰提取的優(yōu) 點(diǎn)在于,阻止攻擊者提取允許在其他機(jī)器上旁路繞過(guò)軟件保護(hù)目標(biāo)的 密鑰材料,或者阻止攻擊者公布有效地建立"全球破解,,的密鑰材料, 所述"全球破解"在所安裝軟件的大量用戶基礎(chǔ)上擊敗安全性措施。給 定純軟件解決方案以及不利主機(jī)現(xiàn)實(shí)的限制下,它提供了提高的保護(hù) 程度。在Chow 1的方法中,通過(guò)(1 )使用用于組合而不是單獨(dú)步驟 的表格;(2 )利用隨機(jī)雙射編碼這些表格;以及(3 )將密碼邊界擴(kuò) 展到密碼算法本身之外以進(jìn)一步向外擴(kuò)展到包含應(yīng)用中來(lái)隱藏所述密
鑰,以迫使攻擊者(逆向工程師)理解大得多的代碼段來(lái)達(dá)到其目標(biāo)。 Chow l討論了固定的密鑰方法通過(guò)關(guān)于密鑰(多個(gè))的部分求值將 所述密鑰嵌入到實(shí)現(xiàn)方式中,從而不是必需需要密鑰輸入。部分求值 意味著盡可能合理地對(duì)涉及所述密鑰的表達(dá)式進(jìn)行求值,并且將結(jié)果 放入所述代碼而不是完整的表達(dá)式中。攻擊者可以提取密鑰特定的實(shí) 現(xiàn)方式并且使用該實(shí)現(xiàn)方式而不是所述密鑰,然而,密碼系統(tǒng)通常是 更大的包含系統(tǒng)的部件,所述包含系統(tǒng)可以以為密碼部件設(shè)計(jì)的操縱 或編碼的形式向該密碼部件提供輸入,該部件是針對(duì)所述操縱或編碼 的形式而設(shè)計(jì)的,但是對(duì)手將發(fā)現(xiàn)難于移除所述形式。參考編碼表格 的步驟,由于編碼是任意的,因而結(jié)果僅在一個(gè)步驟的輸出編碼與下 一個(gè)步驟的輸入編碼相匹配的情況下才有意義。例如,如果步驟X之 后是步驟Y (導(dǎo)致y。義的計(jì)算),那么所述計(jì)算可以被編碼成
通過(guò)這種方式,盡管輸入需要利用F來(lái)編碼并且輸出需要利用H一1 來(lái)解碼,但是卻正確地計(jì)算了 r。X。這些步驟單獨(dú)地表示成與Y,和X, 相應(yīng)的表格,以便隱藏F、 G和H以及X和Y。
除了這種混淆步驟之外,Chow 1借助于線性(雙射)變換來(lái)使用
13擴(kuò)散步驟,以便進(jìn)一步掩蓋下面的操作。術(shù)語(yǔ)混合雙射用來(lái)描述這種
線性變換。Chow 1的實(shí)現(xiàn)方式以操縱的形式獲得輸入并且以不同操縱 的形式產(chǎn)生輸出,從而使得防白盒攻擊環(huán)境(WBAC)的AES難于與其 包含應(yīng)用相分離。
Chow 2討論了一種被設(shè)計(jì)成耐白盒攻擊環(huán)境的DES的密碼實(shí)現(xiàn), 其目的在于阻止從程序中提取秘密密鑰。這篇論文中討論的有關(guān)混淆 查找表網(wǎng)絡(luò)的技術(shù)大部分也適用于包括AES等在內(nèi)的其他密碼算法。 當(dāng)控制執(zhí)行環(huán)境的攻擊者可以明顯地使用軟件本身(例如用于解密) 而不必顯式提取所述密鑰時(shí),迫使攻擊者使用手頭安裝的實(shí)例通常對(duì) 于數(shù)字權(quán)利管理(DRM)系統(tǒng)提供商是有價(jià)值的。大體而言,Chow2中 的方法致力于完全由替換盒組成的實(shí)現(xiàn)方式,其中沒(méi)有一個(gè)替換盒實(shí) 現(xiàn)仿射變換。Chow 2中描述了若干個(gè)支持所述一般方法所需的技術(shù)。 其中一些技術(shù)是I/O分塊編碼、組合函數(shù)編碼、旁路編碼、分裂路徑 編碼以及輸出分裂。
部分求值意味著對(duì)基于實(shí)現(xiàn)時(shí)(部分)已知的值的表達(dá)式進(jìn)行預(yù) 先求值。在一個(gè)簡(jiǎn)化的實(shí)例中,當(dāng)密鑰為"5"并且原始實(shí)現(xiàn)方式包含表 達(dá)式"2*密鑰"時(shí),不是將"2*5"并入到所述實(shí)現(xiàn)方式中,相反將預(yù)先求 值的表達(dá)式"10"放入該實(shí)現(xiàn)中。通過(guò)這種方式,密鑰"5"不直接存在于 代碼中。在具有固定密鑰的DES的情況下,這涉及利用密鑰特定的預(yù) 先求值的S盒(在編譯時(shí)或之前根據(jù)所述密鑰計(jì)算)替換標(biāo)準(zhǔn)的S盒 (在運(yùn)行時(shí)根據(jù)所述密鑰計(jì)算)。依照Chow 2的混合雙射為雙射仿射 變換,其被設(shè)計(jì)成使得每個(gè)輸出比特取決于大量的輸入比特。1/0分塊 編碼是一種用于處理大量輸入和輸出比特的編碼方法。在這種情況下, 所述編碼/解碼可以形成為一連串的編碼,其中每個(gè)編碼處理所述輸入 /輸出比特的子集。組合函數(shù)編碼意味著如果可以并行地處理兩個(gè)或更 多操作,那么將單個(gè)編碼函數(shù)應(yīng)用到這些并行操作的輸入(相應(yīng)輸出) 的串接。它或多或少與I/O分塊編碼相反。旁路編碼意味著所述編碼
并且重新設(shè)計(jì)要混淆的變換以便"旁路,,這些多余的比特,以;吏得它們 不影響這個(gè)過(guò)程的最終輸出。分裂路徑編碼意味著將函數(shù)修改成提供 附加的輸出比特以便混淆必要的信息比特。輸出分裂意味著將函數(shù)的 輸出分布在若干個(gè)部分函數(shù)上,其中必須以非明顯的方式組合所有部分函數(shù)的輸出以便獲得該函數(shù)的原始輸出。
Chow 2提出建立編碼的網(wǎng)絡(luò)以便構(gòu)造具有比如32比特或者甚至 96比特的寬輸入的S盒。將代表仿射變換的這種寬輸入S盒劃分成S 盒網(wǎng)絡(luò),每個(gè)S盒具有更窄的輸入和輸出;每個(gè)S盒通過(guò)在該S盒中 并入編碼函數(shù)而被編碼。在處理該S盒的輸出的S盒中并入編碼函數(shù)的逆。
聯(lián)合代碼與查找表值
在本發(fā)明的一個(gè)方面中,提供了用于允許實(shí)現(xiàn)數(shù)字?jǐn)?shù)據(jù)的防篡改 分布的方法。所述數(shù)據(jù)需要通過(guò)計(jì)算機(jī)代碼來(lái)處理,該計(jì)算機(jī)代碼包 括該數(shù)字?jǐn)?shù)據(jù)的接收器可用的指令。該處理的目的可以是呈現(xiàn)由所述 數(shù)據(jù)代表的音頻/視頻信號(hào)。該處理可以包括加密、解密、壓縮、解壓 縮或者其他處理。該方法包括編寫(xiě)組成用于處理所述數(shù)字?jǐn)?shù)據(jù)的處理 算法的實(shí)現(xiàn)的多個(gè)指令。所述多個(gè)指令構(gòu)成計(jì)算機(jī)程序,例如用戶終 端上成功地回放所分發(fā)的內(nèi)容所需的媒體播放器或者插件。該處理算 法基于參數(shù)。在解密的情況下,這些參數(shù)可以代表密鑰??梢允褂孟?應(yīng)的加密密鑰對(duì)所分發(fā)的數(shù)據(jù)進(jìn)行(部分)加密。
標(biāo)識(shí)出與處理器指令的一部分相等的所述參數(shù)的一部分。更特別 地,所述參數(shù)的比特表示的一部分等于所述指令的比特表示的一部分。 這些參數(shù)的其余部分可以與任何處理器指令不同。所標(biāo)識(shí)出的參數(shù)可 以等于包含在所述處理算法的實(shí)現(xiàn)中的處理器指令。然而,這些標(biāo)識(shí) 出的參數(shù)同樣可以等于出現(xiàn)在所述系統(tǒng)中別處的處理器指令的比特表 示。例如,它們可以等于出現(xiàn)在操作系統(tǒng)內(nèi)核中的某個(gè)特定比特串, 或者出現(xiàn)在諸如TCP/IP通信棧之類的系統(tǒng)的某個(gè)驅(qū)動(dòng)器中的比特。
這樣布置所述處理器指令,以使得在執(zhí)行期間,通過(guò)引用所述處 理器指令的比特表示中的所述部分的存儲(chǔ)位置來(lái)讀取所述參數(shù)的相等 部分(以便例如在解密處理中使用)。所述參數(shù)的相等部分沒(méi)有被單 獨(dú)地存儲(chǔ)在存儲(chǔ)器中,這是因?yàn)樗枰谋忍乇硎疽呀?jīng)存在于保持相 一致處理器指令的存儲(chǔ)地址處。實(shí)際上,相同的存儲(chǔ)地址以兩種方式 使用作為解密算法的參數(shù)的存儲(chǔ)位置,以及同時(shí)作為要執(zhí)行的處理 器指令的存儲(chǔ)位置。 一般而言,讀取作為參數(shù)的存儲(chǔ)位置的指令本身
存儲(chǔ)在不同的存儲(chǔ)位置處,并且通過(guò)引用來(lái)訪問(wèn)保持該參數(shù)的存儲(chǔ)位
15置。這些指令形成程序代碼。這些指令符合其中執(zhí)行該程序代碼的執(zhí)
行環(huán)境。例如,它們是處理器指令或者諸如虛擬機(jī)指令(例如java字 節(jié)碼)之類的偽代碼指令。
在本發(fā)明的另 一個(gè)方面中,這樣選擇所述參數(shù)以使得它們包含相 對(duì)較大的相等部分。單個(gè)存儲(chǔ)地址可以保持可以兩種似乎不相關(guān)的方 式使用的數(shù)據(jù)作為處理器指令以及作為參數(shù)值。其效果在于,如果 攻擊者改變了處理器指令,那么這些參數(shù)可能變得無(wú)效,反之,如果 攻擊者改變了這些參數(shù),那么所述處理器指令變得無(wú)效。因此,攻擊 者執(zhí)行目標(biāo)導(dǎo)向的篡改就可能變得更加困難。
圖4示出了步驟編寫(xiě)實(shí)現(xiàn)603,標(biāo)識(shí)所述參數(shù)的相一致部分613, 以及布置所述實(shí)現(xiàn)615。這些參數(shù)可以包括例如形成查找表網(wǎng)絡(luò)的一個(gè) 或多個(gè)查找表??梢岳绺鶕?jù)密鑰來(lái)計(jì)算這種查找表網(wǎng)絡(luò)(步驟6 04 )。 選擇所述處理器指令的比特表示中的字(步驟606 )以用于包含于該網(wǎng) 絡(luò)的查找表的至少一個(gè)中。通過(guò)向查找表中的元素施加變換(步驟608 ) 來(lái)實(shí)現(xiàn)該字的包含。這個(gè)變換通過(guò)施加補(bǔ)償變換(步驟610)而得到補(bǔ) 償,其中補(bǔ)償變換對(duì)所述變換對(duì)于其他查找表中的至少一個(gè)元素的影 響進(jìn)行反轉(zhuǎn)。通常,至少兩個(gè)經(jīng)變換的查找表通過(guò)所述查找表網(wǎng)絡(luò)而 連接起來(lái)。該經(jīng)變換的查找表網(wǎng)絡(luò)而不是原始的查找表網(wǎng)絡(luò)用作所述 密碼算法的參數(shù)。
一個(gè)實(shí)施例包括選擇所述指令的比特表示中的多個(gè)字并且創(chuàng)建包 含該指令的比特表示的查找表以便形成"包含代碼"的查找表。該包含 代碼的查找表包含于構(gòu)成數(shù)據(jù)處理程序的參數(shù)的查找表網(wǎng)絡(luò)中。通常, 通過(guò)將適當(dāng)選擇的查找表包含在查找表網(wǎng)絡(luò)中來(lái)補(bǔ)償該包含代碼的查 找表的效果。這樣布置構(gòu)成所述程序代碼的指令,以使得保持出現(xiàn)在 該包含代碼的查找表中的指令的存儲(chǔ)地址也用于讀取該包含代碼的查 找表的值。
強(qiáng)制表查找
在一個(gè)實(shí)施例中,返回到圖3,第二單元902包括用于將加密的內(nèi) 容包含在數(shù)字?jǐn)?shù)據(jù)914中的加密裝置。插入器910將所計(jì)算的值包含 在經(jīng)過(guò)加密的數(shù)據(jù)流中以便由處理裝置906進(jìn)行解密。處理裝置906 包括用于對(duì)包含插入值的加密內(nèi)容進(jìn)行解密的解密裝置。該解密裝置以所述方式之一來(lái)使用查找表916。優(yōu)選地,使用解密算法的白盒實(shí)現(xiàn)。 這可以是類似于Chow 1和Chow 2的AES或DES實(shí)現(xiàn),但是,同樣可 以使用任何其他實(shí)現(xiàn)或解密方案。
在一個(gè)實(shí)施例中,所述處理裝置被布置用于以預(yù)定的順序解碼所 述數(shù)字?jǐn)?shù)據(jù)。取決于更早先被處理的數(shù)據(jù)來(lái)處理數(shù)據(jù)。實(shí)現(xiàn)這點(diǎn)的可 能性之一是加密方法。它適用于例如流式密碼。它也適用于使用密碼 分塊鏈(CBC)模式的解碼方案,其中代替密文(或者除密文之外還) 利用明文來(lái)創(chuàng)建依賴關(guān)系。
所述插入器可以被布置成將測(cè)試所述預(yù)定義查找表?xiàng)l目的值放置 在重要的數(shù)據(jù)分塊之前,以使得正確地處理該重要的數(shù)據(jù)分塊需要所 述測(cè)試的肯定結(jié)果。例如,將每個(gè)值測(cè)試不同的預(yù)定查找表?xiàng)l目的一 系列值插入到數(shù)據(jù)流的開(kāi)始處。通過(guò)這種方式,對(duì)于所測(cè)試條目中的 任何一個(gè)的改變使得整個(gè)數(shù)據(jù)流不可用。
在存儲(chǔ)器中進(jìn)行聯(lián)合代碼和密鑰可以用于提高防篡改性。待處理 的數(shù)據(jù)通常決定在處理中將使用哪些查找表?xiàng)l目。因此,甚至在篡改 代碼之后,也可能發(fā)生所述處理的相對(duì)較大的部分被成功地執(zhí)行,這 是因?yàn)樘幚頂?shù)據(jù)不需要被篡改的存儲(chǔ)值。例如,如果在8比特-k比特 查找表(對(duì)于任何k>0)中改變了一個(gè)字節(jié),并且處理代碼分塊僅需要 一個(gè)8比特值,以及256個(gè)8比特值中的每一個(gè)出現(xiàn)的概率相等,那 么被改變的字節(jié)用于所述處理中的概率是1/"6或者0. 4、將希望提 高這個(gè)概率,即提高在代碼的一個(gè)或多個(gè)字節(jié)發(fā)生改變之后所述處理 將失敗的概率和/或確保所述處理對(duì)于數(shù)據(jù)的較大部分會(huì)失敗??梢岳?解的是,同樣可能希望訪問(wèn)沒(méi)有與代碼聯(lián)合但是可能具有某種其他特 殊意義的預(yù)定義查找表?xiàng)l目。此外,如果懷疑某個(gè)值可能已經(jīng)被改變 了,那么也希望檢查該值。
令X為必須由白盒實(shí)現(xiàn)來(lái)處理(例如來(lái)加密或解密)的(可能為 空的)數(shù)據(jù)分塊流??梢栽赬中插入若干個(gè)分塊B,, B2, .,., BB,這 些分塊以這樣的方式來(lái)選擇以便它們?cè)诎缀袑?shí)現(xiàn)中訪問(wèn)特定的查找表 條目(即密鑰的特定部分)。也可以讓分塊B,, B2, ..., B^居于X之
月'J 。
一種在所述代碼的一個(gè)或多個(gè)字節(jié)發(fā)生改變之后提高所述處理對(duì) 于所述數(shù)據(jù)的較大部分失敗的概率的方法如下??梢赃x擇分塊密碼模
17式,其中不正確的解密通過(guò)進(jìn)一步的解密而傳播。相比較而言,在"電
子碼書(shū)"(ECB)模式中,其中可以與其他密文分塊無(wú)關(guān)地解密每個(gè)密 文分塊,每個(gè)分塊具有訪問(wèn)被篡改的查找表?xiàng)l目的獨(dú)立概率(在上例 中為0.4%)??梢岳缤ㄟ^(guò)使得分塊的解密過(guò)程依賴于先前解密的分 塊的解密結(jié)果來(lái)使得不正確的解密進(jìn)一步傳播到接下來(lái)的解密。在其 解密結(jié)果錯(cuò)誤的第 一數(shù)據(jù)分塊之后,所有后續(xù)分塊也將被錯(cuò)誤地解密。 這使得如果所述代碼的被測(cè)試部分已經(jīng)被墓改了的話,那么所述數(shù)據(jù) 的大得多的部分不能被正確地處理。
在一個(gè)實(shí)施例中,白盒實(shí)現(xiàn)用于某種傳播錯(cuò)誤(出于上面討論的 原因)的模式中。例如,使用密碼分塊鏈接(CBC)模式的變體,其中 利用明文而不是密文創(chuàng)建依賴關(guān)系。例如,在"正常"CBC模式中,數(shù)據(jù) 分塊i在將其與加密的數(shù)據(jù)分塊i-1進(jìn)行異或(X0R)之后被加密。在 "提出"的變體中,數(shù)據(jù)分塊i在將其與未加密的(明文)數(shù)據(jù)分塊i-l 進(jìn)行異或之后被加密。"正常"CBC模式使得數(shù)據(jù)流更加隨機(jī)。所"提出" 的變體使得單個(gè)解密錯(cuò)誤被傳播到所有后續(xù)的數(shù)據(jù)分塊。具有待加密 的內(nèi)容的流S之前有若干個(gè)目的在于訪問(wèn)特定查找表?xiàng)l目、特別是包 含代碼的條目的分塊。如果所述聯(lián)合的代碼中的一個(gè)或多個(gè)比特被改 變了,那么S的任何分塊都不會(huì)被正確地解密。同樣可能的是,通過(guò) 利用明文和前面分塊的密文二者來(lái)創(chuàng)建依賴關(guān)系(例如進(jìn)行異或)來(lái) 將"正常"CBC模式與所"提出,,的CBC模式相結(jié)合。通過(guò)這種方式,組合
了這兩種模式的可能優(yōu)點(diǎn)(隨機(jī)性和錯(cuò)誤傳播)。
可以這樣計(jì)算數(shù)據(jù)分塊,以使得在解密處理期間(或者在可適用 的加密處理期間)訪問(wèn)特定的查找表?xiàng)l目??紤]使用查找表的AES解 密(或加密)算法的標(biāo)準(zhǔn)(非白盒)實(shí)現(xiàn)。此外,考慮該實(shí)現(xiàn)的以下 問(wèn)題給定回合r以及該回合的輸入I"找出所述解密算法的第一回 合的輸入I!,以使得到回合r的輸入為I"應(yīng)當(dāng)清楚的是,利用該問(wèn) 題的解決方案,本領(lǐng)域技術(shù)人員能夠設(shè)計(jì)這樣的數(shù)據(jù)塊以使得解密算 法的預(yù)定義非白盒實(shí)現(xiàn)訪問(wèn)特定的查找表?xiàng)l目。令fi為標(biāo)準(zhǔn)(非白盒) AES的回合i中計(jì)算的函數(shù),即如果其輸入由Ii給定,那么fi(Ii)為回 合i的輸出。容易計(jì)算回合fi的逆fi ',這是因?yàn)閒i的計(jì)算中的所有步 驟(AddRoundKey、 SubBytes、 ShiftRows、 MixCol醒s )都是容易求
逆的。結(jié)果,可以將11計(jì)算為/1=〃'。《'。'''。/;:;(0??梢詫?duì)該算法進(jìn)行修改以導(dǎo)出強(qiáng)制白盒解密算法訪問(wèn)例如II型表
格T中的特定行1的數(shù)據(jù)分塊。該修改的算法以導(dǎo)出到回合包含的表 格T的(編碼)輸入以便訪問(wèn)行1而開(kāi)始。從該輸入中移除編碼以便 獲得到AES (非白盒)實(shí)現(xiàn)的回合的輸入。前面段落中概括的算法現(xiàn)在 可以用來(lái)導(dǎo)出數(shù)據(jù)分塊,其中白盒實(shí)現(xiàn)為該數(shù)據(jù)分塊訪問(wèn)行1。通常, 可以從到查找表網(wǎng)絡(luò)的特定查找表的編碼輸入中移除編碼,所述編碼 輸入引起對(duì)該特定查找表中的行1的訪問(wèn),并且可以通過(guò)使用沒(méi)有編 碼的處理算法的版本來(lái)反轉(zhuǎn)所述處理。這些沒(méi)有編碼的處理步驟比白 盒實(shí)現(xiàn)的編碼查找表更易于反轉(zhuǎn)。所述編碼只能由具有這些編碼的知 識(shí)的人員或系統(tǒng)移除,而不能由沒(méi)有該知識(shí)的攻擊者移除
應(yīng)當(dāng)指出的是,代替導(dǎo)出訪問(wèn)所述網(wǎng)絡(luò)中的一個(gè)特定表格的一個(gè) 特定行1的數(shù)據(jù)分塊的是,可以導(dǎo)出使得所述程序訪問(wèn)所述查找表網(wǎng) 絡(luò)中的多個(gè)對(duì)應(yīng)查找表的每一個(gè)中的預(yù)定條目的數(shù)據(jù)分塊。其原因在 于,在多個(gè)表格上分布分塊的輸入比特,因此可以選擇分布到每個(gè)表 格的多個(gè)比特以便訪問(wèn)對(duì)應(yīng)的預(yù)定查找表?xiàng)l目。
還應(yīng)當(dāng)指出的是,被定義成訪問(wèn)回合r中的特定行的數(shù)據(jù)分塊同 樣訪問(wèn)其他回合中的行,因?yàn)檫@些回合是所述查找表網(wǎng)絡(luò)的一部分。 這些附加訪問(wèn)的行中的一些也可以與代碼聯(lián)合。結(jié)果,需要包含較少 的分塊以便實(shí)現(xiàn) 一 定數(shù)量與代碼聯(lián)合的字節(jié)由所述算法來(lái)訪問(wèn)。
除了所討論的CBC模式之外,也可以使用計(jì)數(shù)器(CTR)模式。在 這種模式中,可以對(duì)計(jì)數(shù)器(例如值的偽隨機(jī)序列)而不是所述數(shù)據(jù) 本身進(jìn)行加密。數(shù)據(jù)與加密的計(jì)數(shù)器流進(jìn)行異或(X0R)。對(duì)于這種模 式而言,選擇計(jì)數(shù)器值的自由度可以用來(lái)將希望的值(對(duì)應(yīng)于預(yù)定表 查找)包含在所述計(jì)數(shù)器流中。例如,可以使得一組計(jì)數(shù)器值出現(xiàn)在 所述數(shù)據(jù)流的開(kāi)頭附近,這將使得聯(lián)合的表?xiàng)l目的大部分被訪問(wèn)。如 果所述計(jì)數(shù)器流的加密再次在所"提出"的CBC模式中執(zhí)行,那么在聯(lián) 合代碼中的改變對(duì)于對(duì)所述數(shù)據(jù)流的大部分的處理將導(dǎo)致失敗。在這 里,使用CTR模式的優(yōu)點(diǎn)在于,不存在多余的解密/加密,因?yàn)樗x擇 的計(jì)數(shù)器值的加密結(jié)果與加密的數(shù)據(jù)進(jìn)行異或以便獲得有效的明文。
該方法也可以用于二值圖像的驗(yàn)證。通過(guò)快速地訪問(wèn)查找表中的 所有條目,快速地驗(yàn)證這些查找表中的值是否正確。此外,無(wú)需另外 處理實(shí)際的數(shù)據(jù)。首先,導(dǎo)出強(qiáng)制訪問(wèn)所有S盒條目的一組數(shù)據(jù)分塊。這可以利用所描述的算法來(lái)進(jìn)行。接下來(lái),對(duì)于該組中的所有數(shù)據(jù)分 塊,測(cè)試所述查找表是否給出正確的答案。如果是這樣的情況,則二 值圖像很可能是正確的。當(dāng)使用以上解釋的密碼分塊鏈接模式時(shí),僅 需要驗(yàn)證最后的結(jié)果,這是因?yàn)橹挥兴星懊娴牟僮鞫颊_的情況下 它才是正確的。
圖5示出了本發(fā)明的一個(gè)實(shí)施例。該圖示出了通信端口95,例如 用于與數(shù)字內(nèi)容提供商相連接的到互聯(lián)網(wǎng)的連接。也可以從諸如DVD 或CD之類的介質(zhì)96中獲得所述內(nèi)容。PC上的數(shù)字內(nèi)容一般通過(guò)使用 媒體播放器來(lái)呈現(xiàn),所述媒體播放器由使用存儲(chǔ)器91的處理器92來(lái) 執(zhí)行。對(duì)于特定的內(nèi)容格式而言,這樣的播放器可以執(zhí)行相應(yīng)的插件, 以便執(zhí)行與經(jīng)由通信端口 95和/或介質(zhì)96獲得的內(nèi)容相對(duì)應(yīng)的格式特 定的解碼。這些內(nèi)容格式可以包括AVI、DV、運(yùn)動(dòng)JPEG、MPEG-l、MPEG-2、 MPEG-4、 WMV、音頻CD、 MP3、 WMA、 WAV、 AIFF/AIFC、 AU等等。對(duì)于 數(shù)字權(quán)利管理目的而言,可以使用不僅對(duì)所述內(nèi)容解碼而且對(duì)所述內(nèi) 容進(jìn)行解密的安全插件。該插件包括存儲(chǔ)在存儲(chǔ)器91中的處理器指令 和參數(shù)(例如混淆的查找表)。這些處理器指令和參數(shù)可以像所述的 那樣重疊;在這種情況下,存儲(chǔ)器91中的一些存儲(chǔ)位置包含代表所述 插件執(zhí)行期間的處理器指令和參數(shù)值的值。在所述內(nèi)容中,插入了數(shù) 據(jù)分塊以便確保在數(shù)據(jù)分塊的解碼/解密期間一些預(yù)定義的存儲(chǔ)位置 用作查找表?xiàng)l目。例如,可以尋址代表處理器指令和參數(shù)值二者的存 儲(chǔ)位置??梢蕴峁┯脩糨斎攵?4來(lái)從用戶獲得指示要呈現(xiàn)的內(nèi)容的命 令,并且提供了顯示器93和/或揚(yáng)聲器用于呈現(xiàn)解碼和/或解密的內(nèi)容。
應(yīng)當(dāng)理解,本發(fā)明還擴(kuò)展到計(jì)算機(jī)程序,特別是載體上或載體中 的適于將本發(fā)明付諸實(shí)踐的計(jì)算機(jī)程序。該程序可以是源代碼、目標(biāo) 代碼、介于源代碼和目標(biāo)代碼之間的代碼(例如部分編譯的形式)的 形式,或者任何其他適合在依照本發(fā)明的方法實(shí)現(xiàn)中使用的形式。栽 體可以是能夠攜帶程序的任何實(shí)體或設(shè)備。例如,栽體可以包括存儲(chǔ) 介質(zhì),諸如R0M (例如CD ROM)或半導(dǎo)體存儲(chǔ)器,或者磁性記錄介質(zhì), 例如軟盤或硬盤。此外,栽體可以是可傳輸?shù)妮d體,例如電信號(hào)或光 學(xué)信號(hào),其可以通過(guò)電纜或光纜或者通過(guò)無(wú)線電或其他方式來(lái)傳送。 當(dāng)程序包含于這種信號(hào)中時(shí),所述載體可以由這種纜線或其他設(shè)備或 裝置來(lái)構(gòu)成。可替換地,所述栽體可以是其中嵌入了所述程序的集成
20電路,該集成電路適于執(zhí)行相關(guān)的方法或者在執(zhí)行相關(guān)的方法中使用。 應(yīng)當(dāng)指出的是,上述實(shí)施例說(shuō)明而不是限制了本發(fā)明,并且本領(lǐng) 域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下應(yīng)當(dāng)能夠設(shè)計(jì)出許 多可替換的實(shí)施例。在權(quán)利要求中,置于括號(hào)中的任何附圖標(biāo)記都不 應(yīng)當(dāng)被視為限制了該權(quán)利要求。動(dòng)詞"包括,,及其變體的使用并沒(méi)有排 除權(quán)利要求中未列出的元件或步驟的存在。元件之前的冠詞"一"或者 "一個(gè)"并沒(méi)有排除多個(gè)這樣的元件的存在。本發(fā)明可以借助于包括 若千不同元件的硬件以及借助于經(jīng)過(guò)適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列 舉了若干裝置的設(shè)備權(quán)利要求中,這些裝置中的一些可以由同一硬件 項(xiàng)來(lái)實(shí)現(xiàn)。在相互不同的從屬權(quán)利要求中陳述某些技術(shù)措施這一事實(shí) 并不意味著這些技術(shù)措施的組合不可以加以利用.
權(quán)利要求
1. 一種用于提高數(shù)字?jǐn)?shù)據(jù)處理單元的防篡改性的系統(tǒng),包括第一單元(901),包括輸入端(904),用于接收所述數(shù)字?jǐn)?shù)據(jù),以及處理裝置(906),用于根據(jù)基于所接收的數(shù)字?jǐn)?shù)據(jù)中的值在至少一個(gè)查找表(916)中查找的值來(lái)處理所接收的數(shù)字?jǐn)?shù)據(jù);以及第二單元(902),包括用于計(jì)算用于包含在所述數(shù)字?jǐn)?shù)據(jù)中的至少一個(gè)值的裝置(912),所述至少一個(gè)值導(dǎo)致第一單元(901)在處理所述數(shù)字?jǐn)?shù)據(jù)時(shí)在所述查找表(916)中查找至少一個(gè)預(yù)定值,插入器(910),用于將所述至少一個(gè)值包含在所述數(shù)字?jǐn)?shù)據(jù)中,以及輸出端(908),用于將所述數(shù)字?jǐn)?shù)據(jù)發(fā)送到第一單元。
2. 依照權(quán)利要求l的系統(tǒng),其中第二單元包括用于將加密的內(nèi)容包含在所述數(shù)字?jǐn)?shù)據(jù)中的加密裝置;所述插入器被布置用于將所述至少一個(gè)值包含在所迷加密的內(nèi)容中;以及所述處理裝置被布置用于基于查找操作對(duì)所述加密的內(nèi)容進(jìn)行解密。
3. 依照權(quán)利要求l的系統(tǒng),還包括驗(yàn)證裝置,用于將所述處理裝 置的輸出與參考值進(jìn)行比較。
4. 依照權(quán)利要求l的系統(tǒng),其中所述處理裝置被布置用于以預(yù)定 的順序處理所述數(shù)字?jǐn)?shù)據(jù),其中所查找的值影響其處理在所迷查找操 作之后開(kāi)始的數(shù)據(jù)的處理結(jié)果。
5. 依照權(quán)利要求l的系統(tǒng),其中所迷插入器被布置用于將所迷至 少一個(gè)值置于所述數(shù)字?jǐn)?shù)據(jù)中以便導(dǎo)致所述處理裝置在處理所述數(shù)字 數(shù)據(jù)的預(yù)定分塊之前在所述查找表中查找所述至少一個(gè)預(yù)定值。
6. 依照權(quán)利要求l的系統(tǒng),其中第一單元包括用于存儲(chǔ)要由該第一單元執(zhí)行的軟件的比特表示的 存儲(chǔ)器,并且該軟件的比特表示的至少一部分由所述處理裝置用作所 述查找表的至少一部分;以及所述查找表中的至少一個(gè)預(yù)定值出現(xiàn)在該軟件的比特表示的至少 一部分中。
7. 依照權(quán)利要求6的系統(tǒng),其中所述軟件的比特表示的至少一部 分包含作為所述處理裝置的操作的一部分而執(zhí)行的指令。
8. —種用于提高數(shù)字?jǐn)?shù)據(jù)處理單元的防篡改性的系統(tǒng)(902 ),包括用于計(jì)算用于包含在所述數(shù)字?jǐn)?shù)據(jù)中的至少一個(gè)值的裝置(912), 所述至少一個(gè)值使得所述處理單元在處理所述數(shù)字?jǐn)?shù)據(jù)時(shí)在查找表中 查找至少一個(gè)預(yù)定值,插入器(910),用于將所述至少一個(gè)值包含在所述數(shù)字?jǐn)?shù)據(jù)中,以及輸出端(908 ),其用于將所述數(shù)字?jǐn)?shù)據(jù)分發(fā)到所述處理單元。
9. 一種用于提高數(shù)字?jǐn)?shù)據(jù)處理單元的防篡改性的系統(tǒng)(901),包括輸入端(904 ),用于接收所述數(shù)字?jǐn)?shù)據(jù);以及處理裝置(906 ),用于根據(jù)基于所接收的數(shù)字?jǐn)?shù)據(jù)中的值而在至 少一個(gè)查找表(916)中查找的值來(lái)處理所接收的數(shù)字?jǐn)?shù)據(jù);其中所述數(shù)字?jǐn)?shù)據(jù)包含至少一個(gè)值,所述至少一個(gè)值導(dǎo)致所述處 理單元在處理所述數(shù)字?jǐn)?shù)據(jù)時(shí)在所述查找表中查找至少一個(gè)預(yù)定值。
10. —種提高數(shù)字?jǐn)?shù)據(jù)處理單元的防篡改性的方法,包括 在第一單元(901)中接收(904 )所述數(shù)字?jǐn)?shù)據(jù),以及根據(jù)基于所接收的數(shù)字?jǐn)?shù)據(jù)中的值而在至少一個(gè)查找表 (916)中查找的值來(lái)處理(906 )所接收的數(shù)字?jǐn)?shù)據(jù);以及 在第二單元(902 )中計(jì)算(912)用于包含在所述數(shù)字?jǐn)?shù)據(jù)中的至少一個(gè)值,所述 至少一個(gè)值使得第一單元在解碼所述數(shù)字?jǐn)?shù)據(jù)時(shí)在所述查找表中查找 至少一個(gè)預(yù)定值,將所述至少一個(gè)值包舍(910)在所述數(shù)字?jǐn)?shù)據(jù)中,以及 將所述數(shù)字?jǐn)?shù)據(jù)發(fā)送(908 )到第一單元。
11. 一種用于使得處理器執(zhí)行依照權(quán)利要求IO的方法的計(jì)算機(jī)程 序產(chǎn)品。
全文摘要
一種用于提高數(shù)字?jǐn)?shù)據(jù)處理單元的防篡改性的系統(tǒng),包括第一單元(901),該第一單元包括處理裝置(906),所述處理裝置用于根據(jù)基于所接收的數(shù)字?jǐn)?shù)據(jù)中的值而在至少一個(gè)查找表(916)中查找的值來(lái)處理所接收的數(shù)字?jǐn)?shù)據(jù)。所述系統(tǒng)還包括第二單元(902),該第二單元包括用于計(jì)算用于包含在所述數(shù)字?jǐn)?shù)據(jù)中的至少一個(gè)值的裝置(912),所述至少一個(gè)值導(dǎo)致第一單元(901)在處理所述數(shù)字?jǐn)?shù)據(jù)時(shí)在所述查找表(916)中查找至少一個(gè)預(yù)定值。該系統(tǒng)包括插入器(910),用于將所述至少一個(gè)值包含在所述數(shù)字?jǐn)?shù)據(jù)中;以及輸出端(908),用于將所述數(shù)字?jǐn)?shù)據(jù)發(fā)送到第一單元。
文檔編號(hào)H04L9/06GK101491001SQ200780026267
公開(kāi)日2009年7月22日 申請(qǐng)日期2007年6月27日 優(yōu)先權(quán)日2006年7月12日
發(fā)明者P·M·H·M·A·戈里森, W·P·A·J·米基爾斯 申請(qǐng)人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
通许县| 抚州市| 峨眉山市| 抚松县| 叙永县| 社旗县| 株洲市| 文昌市| 乌拉特前旗| 龙州县| 合山市| 乌审旗| 凤城市| 黄冈市| 郧西县| 嘉定区| 白银市| 佛山市| 合阳县| 长汀县| 亳州市| 永春县| 泰安市| 体育| 汕头市| 洛宁县| 遂平县| 秦安县| 田阳县| 县级市| 洮南市| 灵台县| 久治县| 宁海县| 安平县| 保康县| 正镶白旗| 贞丰县| 抚松县| 黑河市| 城口县|