專利名稱:數(shù)字數(shù)據(jù)處理單元的防篡改的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及提高數(shù)字數(shù)據(jù)處理單元的防篡改。
背景技術(shù):
互聯(lián)網(wǎng)向用戶提供了方便而普遍存在的對數(shù)字內(nèi)容的訪問。由于
互聯(lián)網(wǎng)作為有力分配渠道的潛在可能性,許多消費電子(CE)產(chǎn)品努 力爭取直接接入互聯(lián)網(wǎng)或者與PC平臺(到互聯(lián)網(wǎng)的主導(dǎo)性入口 )互操 作。CE產(chǎn)品包括但不限于數(shù)字機頂盒、數(shù)字電視、游戲控制臺、PC以 及越來越多的手持設(shè)備,諸如PDA、移動電話以及移動存儲和呈現(xiàn)設(shè)備 (例如蘋果公司的iPod)。使用互聯(lián)網(wǎng)作為用于有版權(quán)內(nèi)容的分發(fā)媒
介形成了對保護內(nèi)容提供商利益的不得不接受的挑戰(zhàn)。特別地,要求 保證內(nèi)容提供商的版權(quán)和商業(yè)模式。越來越多地,通過使用加栽有適 當(dāng)軟件的處理器來操作CE平臺。這種軟件可以包括用于呈現(xiàn)(回放) 數(shù)字內(nèi)容(例如音頻和/或視頻)的主要功能部分。回放軟件的控制是 實現(xiàn)內(nèi)容所有者的利益的一種方式,這些利益包括可以使用所述內(nèi)容 的條款和條件。在傳統(tǒng)上,許多CE平臺(除了 PC和PDA之外)常常 是封閉的,而如今越來越多的平臺是至少部分地開放的。特別是對于 PC平臺而言,可以假設(shè)一些用戶對于提供對所述內(nèi)容的訪問的硬件和 軟件具有完全的控制以及具有大量的時間和資源來攻擊和旁路繞過任 何內(nèi)容保護機制。結(jié)果,內(nèi)容提供商必須通過到其中不是所有的用戶 或設(shè)備都可以被信任的社區(qū)的不利網(wǎng)絡(luò)來遞交內(nèi)容給合法用戶,
一般而言,數(shù)字權(quán)利管理系統(tǒng)使用基于分塊密碼的加密技術(shù),其 使用一系列加密/解密步驟(稱為回合(round))來以塊為單位處理 數(shù)據(jù)流。在每個回合期間,執(zhí)行回合特定的功能。該回合特定的功能 可以基于在回合特定的子密鑰的控制下執(zhí)行的相同回合功能。對于許 多加密系統(tǒng)而言,可以使用映射表或者查找表來規(guī)定該回合功能。即 使沒有使用顯式的表格,然而經(jīng)常的是,為功能的不同部分使用表格 以便在加密/解密功能的軟件有效地執(zhí)行。計算機代碼訪問表格值或者 將表格值結(jié)合到所述功能的范圍值中。代替分發(fā)可能是用戶特定的密鑰的是,分發(fā)用戶特定的算法而不是用于加密或解密算法的密鑰變得 日益令人感興趣。這些算法(在大多數(shù)情況下是函數(shù)(映射))必須
被混淆(obfuscate)(隱藏)以便防止重新設(shè)計或者禁止重新計算如 密鑰這樣的元素。在計算機上,伴隨某些計算機代碼的表格通常代表 了這些函數(shù)。
內(nèi)容提供商必須通過到其中不是所有的用戶或設(shè)備都可以被信任 的社區(qū)的不利網(wǎng)絡(luò)來遞交內(nèi)容給合法用戶。特別是對于PC平臺而言,
制以及具有無限數(shù)量的時間和資源以便攻擊和旁路繞過任何內(nèi)容保護 機制。強制可以依據(jù)其使用所述內(nèi)容的條款和條件的軟件代碼必須不 可以被篡改。在數(shù)字權(quán)利管理中用于分發(fā)到PC的受保護內(nèi)容的一般方 法是加密數(shù)字內(nèi)容,例如DES(數(shù)據(jù)加密標準)、AES(高級加密標準), 或者使用W09967918中公開的方法,并且使用解密密鑰。
依賴于加密的數(shù)字權(quán)利管理的弱點的兩個主要領(lǐng)域是強制使用內(nèi) 容的條款和條件的軟件插件以及密鑰分發(fā)和處理。
一般而言,插件強制要依據(jù)其使用內(nèi)容的條款和條件。意欲移除
序代碼來實現(xiàn)這一點。
關(guān)于密鑰處理,對于回放而言,媒體播放器必須從許可證數(shù)據(jù)庫 中獲取解密密鑰。然后,它必須將該解密密鑰存儲在存儲器中的某處 以用于解密經(jīng)加密的內(nèi)容。這給攻擊者留下了兩個攻擊密鑰的選項。 首先,許可證數(shù)據(jù)庫接入功能的逆向工程技術(shù)可能導(dǎo)致黑盒軟件(即 攻擊者不必理解軟件功能的內(nèi)部工作),從而允許攻擊者從所有許可 證數(shù)據(jù)庫中獲取資產(chǎn)密鑰。其次,通過在內(nèi)容解密期間觀察對存儲器 的訪問,有可能獲取所述資產(chǎn)密鑰。在這兩種情況下,都認為密鑰受 到損害。
防篡改軟件之所以這樣被稱呼的原因在于,對于該軟件的目標導(dǎo) 向篡改被復(fù)雜化了。存在各種用于提高軟件應(yīng)用的防篡改性的技術(shù)。
機性和復(fù)雜性掩飾(veil)來隱藏該應(yīng)用的嵌入知識。其背后的思想 在于,僅僅通過代碼檢查來提取信息變得更加困難。因此,發(fā)現(xiàn)例如 處理應(yīng)用的訪問和許可控制的代碼并且從而改變它變得更加困難。
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")中公開了目的在于隱藏
密鑰的方法,該方法通過下列的組合來進行,即利用代表組成
(composition)而不是單獨步驟的隨機雙射(bijection)編碼其表
格,以及通過將密碼邊界進一步向外推向包含應(yīng)用來擴展該密碼邊界。 W0 2006/046187公開了在系統(tǒng)中服務(wù)器如何以混淆的形式向執(zhí)行 設(shè)備提供密碼函數(shù)F。該函數(shù)F使用阿貝爾群(Abelian group )算子》 組合多個映射表L (0《i《n; r^l)的輸出。處理器選擇表格0和C,
以使得('W⑧"W-o,v^",并且創(chuàng)建表格7"',0^^^"/^" + 1,,其中對 于o《"",,每個表格7',代表各自的相應(yīng)表格'A',并且至少一個表格 /'",'()s",通過'/;和o的阿貝爾組合來形成,至少一個表格 /;'()"、《w,e'"通過包括c的阿貝爾組合來形成。使用了裝置用于將
表格7',提供給執(zhí)行設(shè)備。該執(zhí)行設(shè)備包括用于接收所述表格的裝置以 及用于執(zhí)行函數(shù)F,的處理器,該函數(shù)F,通過表格卩的阿貝爾組合而在 功能上等效于密碼函數(shù)F。
發(fā)明內(nèi)容
有利的是擁有用于提高數(shù)字數(shù)據(jù)處理單元的防篡改性的改進系 統(tǒng)。為了更好地解決這一問題,在本發(fā)明的笫一方面中,提供的系統(tǒng) 包括
第一單元(901),其包括
輸入端(904 ),用于接收數(shù)字數(shù)據(jù),以及 處理裝置(906 ),用于根據(jù)基于所接收的數(shù)字數(shù)據(jù)中的值而 在至少一個查找表(916)中查找的值來處理所接收的數(shù)字數(shù)據(jù);以及 第二單元(902 ),其包括用于計算用于包含在所述數(shù)字數(shù)據(jù)中的至少一個值的裝置(912), 所述至少一個值使得第一單元在處理所述數(shù)字數(shù)據(jù)時在所述查找表中 查找至少一個預(yù)定值,
插入器(910),用于將所述至少一個值包含在所述數(shù)字數(shù)據(jù)中,
以及
輸出端(908 ),用于將所述數(shù)字數(shù)據(jù)發(fā)送到第一單元。 第一單元執(zhí)行的處理可以包括數(shù)據(jù)的呈現(xiàn)。該數(shù)據(jù)可以包括編碼 的音頻和/或視頻內(nèi)容。第一單元包括一個或多個查找表(916),并 且對數(shù)字數(shù)據(jù)的處理通過執(zhí)行若干個表格查找來至少部分地執(zhí)行。在 許多系統(tǒng)中,所述數(shù)據(jù)和/或偽隨機處理確定哪個查找表條目用于解 碼。在這樣的系統(tǒng)上,可能發(fā)生特定查找表條目未被使用,或者僅在 已經(jīng)解碼了所述數(shù)據(jù)的相對較大部分后才被使用。本發(fā)明的這個方面 允許第二單元在查找表中指定將在處理所述數(shù)據(jù)時被訪問的至少一個
預(yù)定值。第二單元可以通過將至少一個值包含在所述數(shù)據(jù)中來指定這 一點,其中這樣選擇所述至少一個值以使得它將導(dǎo)致在所述處理中訪 問和使用所述預(yù)定值。如果所述查找表中的預(yù)定值已經(jīng)被攻擊者改變 了,那么所述處理會失敗,這是因為成功的處理要求使用沒有被改變的值。
第一單元可以例如是用戶終端、計算機、機頂盒或者電視。第二 單元可以例如是內(nèi)容提供商或者服務(wù)器。第一和第二單元也可以是單 個物理設(shè)備的部分。
依照本發(fā)明的一個方面,第二單元包括用于將加密的內(nèi)容包含在 所述數(shù)字數(shù)據(jù)中的加密裝置;所迷插入器被布置為用于將所述至少一 個值包含在所述加密的內(nèi)容中;并且所述處理裝置被布置為用于基于 查找操作來解密所述加密的內(nèi)容。
解密和加密可以通過使用查找表來有效地實現(xiàn)。通過將所述值插 入到加密的內(nèi)容中,解碼器將訪問預(yù)定的查找表條目,而不必能夠?qū)?這樣插入的值與所述加密的數(shù)據(jù)中出現(xiàn)的任何其他值區(qū)分開。在解密 之后,解密的數(shù)據(jù)可以包含標識所插入值的解密結(jié)果的標簽,其將允 許用于處理的裝置丟棄所插入值的解密結(jié)果。
依照本發(fā)明的一個方面,所述系統(tǒng)包括用于將處理裝置的輸出與 參考值進行比較的驗證裝置。
7該驗證裝置可以包含于第一單元、第二單元或者第三單元中并且 接收處理的結(jié)果。該檢驗裝置將處理的結(jié)果與被認為是正確結(jié)果的值 進行比較。如果查找表中的預(yù)定值不包含它應(yīng)當(dāng)包含的值,那么該比 較失敗并且該驗證單元檢測到篡改。
依照本發(fā)明的一個方面,所述處理裝置被布置用于以預(yù)定的順序 處理所述數(shù)字數(shù)據(jù),其中所查找的值影響其處理在查找操作之后開始 的數(shù)據(jù)的處理結(jié)果。
這個方面具有的優(yōu)點在于,如果所述查找表值已經(jīng)被墓改,那么 所述數(shù)據(jù)的相對較大的部分將不會被正確地處理。在這種篡改情況下, 所述插入值之后的許多數(shù)據(jù)將被錯誤地處理。
依照本發(fā)明的一個方面,所述插入器被布置用于將所述至少一個 值置于所述數(shù)字數(shù)據(jù)中以便使得用于解碼的裝置在處理所述數(shù)字數(shù)據(jù) 的預(yù)定分塊之前在查找表中查找所述至少一個預(yù)定值。
這將確保很好地保護數(shù)字內(nèi)容的預(yù)定分塊以防止在已經(jīng)受到篡改 的系統(tǒng)上被處理。
依照本發(fā)明的一個方面,第一單元包括存儲器,用于存儲要由該 第一單元執(zhí)行的軟件的比特表示,并且該軟件的比特表示的至少一部
分由所述處理裝置用作查找表的至少一部分;并且所述查找表中的至 少一個預(yù)定值出現(xiàn)在所述軟件的比特表示的至少一部分中。
存儲位置用于兩個獨立的目的這一事實使得篡改存儲位置更加困 難,這是因為如杲做出改變以便實現(xiàn)與存儲位置的第一用途有關(guān)的目 標,那么該改變也將以難以克服的方式影響存儲位置的第二用途。
應(yīng)當(dāng)指出的是,共同待決的專利申請EP06116693. 0 (代理人案巻 號PH005600 )公開了一種提高軟件系統(tǒng)的防篡改性的方法,其包括步 驟
基于多個參數(shù)編制多個用于處理數(shù)字數(shù)據(jù)的計算機可執(zhí)行指令;
在這些參數(shù)的比特表示中標識與在所述處理期間可讀的計算機可 執(zhí)行代碼的比特表示相等的部分;
將這些指令布置用于在這些指令執(zhí)行期間,使用保持所述代碼的 比特表示的至少一個存儲地址以用于通過引用來讀取所述參數(shù)的比特 表示的相等部分。
依照本發(fā)明的一個方面,所述軟件的比特表示的至少一部分包含
8作為所述處理裝置的操作的一部分而執(zhí)行的指令。
查找表以及作為所述處理裝置的一部分而執(zhí)行的指令通過聯(lián)合它 們并且存儲單個副本到存儲器中而受到保護。所述處理裝置再次可以 包括解密裝置、加密裝置或者(解)壓縮裝置。
此后,將參照附圖闡述本發(fā)明的這些和其他方面,其中
圖1為示出AES回合中的操作的示圖; 圖2為示出混淆表格的實例示圖; 圖3為示出一個實施例的示圖; 圖4為示出處理步驟的流程圖; 圖5為示出一個實施例的示圖。
具體實施例
圖3示出了本發(fā)明的一個實施例。該圖示出第一單元901和第二 單元902。第一單元901使用輸入端904來通過輸出端908從第二單元 902接收數(shù)據(jù)。輸入端904可以包括具有例如TCP/IP支持的網(wǎng)絡(luò)輸入 端或者用于從可移除存儲介質(zhì)(例如DVD、 CD、磁帶)讀取數(shù)據(jù)的單元。 輸出端908相應(yīng)地包括網(wǎng)絡(luò)輸出端或者例如盤片操縱設(shè)備。連接輸出 端908和輸入端904的箭頭代表用于將數(shù)據(jù)從輸出端908傳輸?shù)捷斎?端904的分發(fā)通道。第二單元902還包括數(shù)據(jù)存儲器或者數(shù)據(jù)發(fā)生器 914??梢砸灾T如ZIP、 MPEG、 MP3之類的任何特定格式編碼數(shù)據(jù)914, 也可以對該數(shù)據(jù)914進行加密。第二單元還包括用于將特定值插入到 數(shù)據(jù)流中的插入器910。插入器910可以具有某些嵌入的智能以便確保 包括插入值的數(shù)據(jù)遵循原始數(shù)據(jù)914的格式。如果該數(shù)據(jù)是動態(tài)地產(chǎn) 生的,那么插入器可以與數(shù)據(jù)發(fā)生器協(xié)作以便正確地以數(shù)據(jù)格式包容 插入值。此外,可以給插入值添加標簽以使得可以因此識別它們。這 將防止第一單元錯誤地處理這些插入值。然而,所述加標簽僅在已經(jīng) 進行了某種處理之后才變得明顯。
第一單元901還包括處理裝置906和一個或多個查找表916。該處 理裝置處理進入的數(shù)據(jù)。它可以解釋數(shù)據(jù)呈現(xiàn)的格式(ZIP、 MPEG、 MP3、 加密等等)。例如,ZIP格式意指所述處理包含解壓縮。處理裝置還被布置用于解碼MPEG、 MP3或者其他格式。作為最后的實例,所述處理裝置可以被布置用于解密或者加密進入的數(shù)椐。處理裝置906通過在查找表916之一中查找從數(shù)據(jù)導(dǎo)出的值來至少部分地執(zhí)行所迷處理。所查找的值可以用于進一步的處理,例如用于定義下一個表查找,或者它們可以代表輸出數(shù)據(jù)。這些查找表在所述數(shù)據(jù)的處理中起著重要的作用。如果攻擊者改變了查找表條目,并且該查找表條目的使用與數(shù)據(jù)有關(guān),那么所述處理裝置可能產(chǎn)生經(jīng)過錯誤處理的數(shù)據(jù)。這使得攻擊者進行成功的改變更加困難。
假設(shè)一方對于第一單元901的完整性感興趣。該方可以使用第二單元902來檢驗第一單元901的完整性。當(dāng)然,可以通過從輸入數(shù)據(jù)導(dǎo)出的查找來連續(xù)地檢查完整性。然而,第二單元902可以用來檢查特定預(yù)定義值的存在性。為此目的,插入器910將專門計算的值插入到數(shù)據(jù)流中。第二單元902還包括用于計算用于包含于所述數(shù)字數(shù)據(jù)中的值的裝置912。該值是以這樣的方式來計算,以便作為第一單元901的一部分的處理裝置906在其處理所述數(shù)據(jù)時將查找該特定的預(yù)定義值。為此目的,用于計算該值的裝置912具有有關(guān)處理裝置906和/或查找表916的一些知識。
在一些情況下,該插入值不應(yīng)當(dāng)在被處理的數(shù)據(jù)中使用,因為該插入值僅僅被包含來檢查查找表條目。為此目的,插入器910可以被布置成將標記(marker)包含到所述數(shù)據(jù)中以便標識插入值。優(yōu)選地,該標記僅在通過處理裝置906處理所述數(shù)據(jù)之后變得可見,這是因為不然的話,攻擊者可能篡改處理裝置906以便跳過該插入值。此外,所述編碼通常使得該插入值還影響該插入值周圍的一些數(shù)據(jù)。如果查找表條目已經(jīng)被改變了 ,那么這將使得該插入值周圍的數(shù)據(jù)不可用,這正是所希望的。此外還可能的是,第二單元902要求第一單元901將被處理的數(shù)據(jù)(的部分)返回給第二單元902。然后,第二單元902可以檢驗所述被處理的數(shù)據(jù),并且從而發(fā)現(xiàn)所述預(yù)定義查找表條目是否被改變了。
在下文中,解釋了如何可以通過使用混淆的查找表來使得算法的實現(xiàn)更加具有防篡改性。此外,解釋了代碼和表格值的聯(lián)合。給出了AES和DES的實例。然而,所述方法可以應(yīng)用到許多不同種類的算法,尤其是可以通過使用一個或多個查找表來實現(xiàn)的算法。
10混淆查找表
在軟件應(yīng)用的控制和數(shù)據(jù)路徑中添加隨機性和復(fù)雜性掩飾的方法沒有阻止該軟件遭受篡改,而只是使得確定需要做出什么改變以便達到篡改者的目的變得更加困難。防篡改背后的 一般原理可以概括如下。
程序P可以表示為訪問控制和/或許可X與功能Y的組合。攻擊者可能希望篡改該程序,使得在不影響所述功能的情況下移除訪問控制或許可。然后,可以運行被篡改的程序而不需要訪問控制或許可,或者至少可以運行而忽略這些控制。下面將主要針對Y包括處理功能的情況來解釋本發(fā)明。所述功能可以包括加密、解密、壓縮、解壓縮、呈現(xiàn)、驗證、認證。本發(fā)明適用于任何種類的功能Y。
理想情況下,對于防篡改程序而言,篡改X應(yīng)當(dāng)立即導(dǎo)致Y的損失,而不管該篡改如何小。換言之,X和Y應(yīng)當(dāng)是不可分離的,或者至少是在非常大難度的情況下才可分離。 一種實現(xiàn)不可分離性的方式是在X和Y之間建立一定關(guān)系,以使得對于X的任何故意的改變導(dǎo)致對于Y的非故意的改變,這將從Y中除去所述功能。為了恢復(fù)Y的功能,將需要進一步改變Y。由于已經(jīng)使得所述功能和程序的控制元素不可分離,因而攻擊變得困難得多。如果在程序的代碼上建立起這種不可分離性,那么在不需要一定遮蓋該程序代碼的情況下就可以使得該程序具有防篡改性。防墓改軟件是一種其中執(zhí)行目標導(dǎo)向的篡改是復(fù)雜的軟件。
AES是一種分塊尺寸為128比特或16字節(jié)的分塊密碼。明文被劃分成16字節(jié)的若干個分塊,其形成編碼算法的初始狀態(tài),并且編碼算法的最終狀態(tài)是密文。為了從概念上解釋AES,將所述狀態(tài)的字節(jié)組織成4x4字節(jié)的矩陣。AES包括若干個回合。每個回合包括在所述狀態(tài)矩陣的字節(jié)、行或列上進行操作的相似處理步驟,每個回合在這些處理
步驟中使用不同的回合密鑰。
圖1示出了 AES的基本回合的一些主要處理步驟。這些處理步驟包括
AddRoundKey 2——所述狀態(tài)的每個字節(jié)與回合密鑰的字節(jié)進行異或(X0R)。
SubBytes 4——使用查找表的字節(jié)到字節(jié)的置換。的每行按順序循環(huán)固定數(shù)量的字節(jié)。 MixColumns 8——使用在GF U8)中的模乘來處理每列。 步驟SubBytes 4、 ShiftRows 6和MixColumns 8獨立于所用的特 定密鑰。該密鑰在步驟AddRoundKey 2中應(yīng)用。除了步驟ShiftRows 6 之外,可以在所述4x4狀態(tài)矩陣的每列上執(zhí)行這些處理步驟而不需要 了解其他列的情況。因此,可以認為它們是32比特的操作,這是因為 每列包括4個8比特值。虛線10表示重復(fù)該過程,直到已經(jīng)執(zhí)行了所 要求數(shù)量的回合為止。
這些步驟中的每一個或者步驟的組合可以由查找表或者由查找表 網(wǎng)絡(luò)(S盒)來表示。也可以用查找表網(wǎng)絡(luò)替換AES的完整回合。例如, AddRoundKey步驟可以通過簡單地與回合密鑰進4亍異或來實現(xiàn),而 SubBytes、 ShiftRows和MixColumns步驟使用表查找來實現(xiàn)。然而,
這意味著所述密鑰在白盒攻擊環(huán)境下對于攻擊者仍然是可見的。 AddRoundKey步驟也可以嵌入到查找表中,這使得找出該密鑰不是那么 明顯。如圖所示的步驟2、 4、 6和8的順序通常用于加密。對于解密 而言,這些步驟以相反的順序來執(zhí)行。然而,可以重申該解密過程, 使得其使用如圖所示的步驟2、 4、 6和8的順序。
圖2示出了使得提取所述密鑰甚至更加困難的方式。令X和Y為 兩個函數(shù)??紤]如圖示12所述的搮作r〃"'^^^。),其中c為輸入 值,例如為4字節(jié)狀態(tài)列。然而,該方法適用于任何類型的輸入值c。 映射X和Y可以實現(xiàn)為可存儲在存儲器中的查找表,但是,當(dāng)它們存 儲在存儲器中時所述值可能被攻擊者所讀取。圖示14示出了所述查找 表的內(nèi)容可以如何通過使用輸入編碼F和輸出編碼H來混淆。如圖所
示,存儲對應(yīng)于義。廠'和〃。y的查找表而不是存儲x和Y,這使得提取
X和Y更加困難。圖示16示出了如何添加附加的、例如隨機的雙射函 數(shù)G,來使得這兩個表格的中間結(jié)果也被編碼。在這種情況下,兩個表 格存儲在存儲器中義^G。U,'和r-f/。y。G'。這再次示于示圖18
中
、' X' = (〃 o y 。 G ') 。 (G' 。
。 /廣')=f/〇(K 。義)。F.'
其中,。表示通常的函數(shù)組合(即按照定義,對于任何兩個函數(shù)f (x) 和g(x), = ) , X和Y為適合借助于查找表來實現(xiàn)的函數(shù)。
類似地,可以對包括多于兩個函數(shù)的網(wǎng)絡(luò)進行編碼。通過在單個查找
12表中組合〃 。r 。 G'—'以及在單個查找表中組合G 。義。'來混淆對X和Y進
行編碼的實際表格。只要F、 G和/或H保持未知,那么攻擊者就不能 從這些查找表中提取有關(guān)X和/或Y的信息,并且因此攻擊者不能提取 作為X和/或Y的基礎(chǔ)的密鑰。其他密碼算法,包括DES和Rijndael (AES是其特定實例)內(nèi),也可以被編碼成可以以與上面相似的方式混 淆的查找表(級聯(lián)或網(wǎng)絡(luò))。本發(fā)明不限于所述的示例性密碼算法。
Chow 1公開了一種目的在于通過利用代表組合而不是單獨步驟的 隨機雙射對表格進行編碼來隱藏密鑰的方法。阻止秘密密鑰提取的優(yōu) 點在于,阻止攻擊者提取允許在其他機器上旁路繞過軟件保護目標的 密鑰材料,或者阻止攻擊者公布有效地建立"全球破解,,的密鑰材料, 所述"全球破解"在所安裝軟件的大量用戶基礎(chǔ)上擊敗安全性措施。給 定純軟件解決方案以及不利主機現(xiàn)實的限制下,它提供了提高的保護 程度。在Chow 1的方法中,通過(1 )使用用于組合而不是單獨步驟 的表格;(2 )利用隨機雙射編碼這些表格;以及(3 )將密碼邊界擴 展到密碼算法本身之外以進一步向外擴展到包含應(yīng)用中來隱藏所述密
鑰,以迫使攻擊者(逆向工程師)理解大得多的代碼段來達到其目標。 Chow l討論了固定的密鑰方法通過關(guān)于密鑰(多個)的部分求值將 所述密鑰嵌入到實現(xiàn)方式中,從而不是必需需要密鑰輸入。部分求值 意味著盡可能合理地對涉及所述密鑰的表達式進行求值,并且將結(jié)果 放入所述代碼而不是完整的表達式中。攻擊者可以提取密鑰特定的實 現(xiàn)方式并且使用該實現(xiàn)方式而不是所述密鑰,然而,密碼系統(tǒng)通常是 更大的包含系統(tǒng)的部件,所述包含系統(tǒng)可以以為密碼部件設(shè)計的操縱 或編碼的形式向該密碼部件提供輸入,該部件是針對所述操縱或編碼 的形式而設(shè)計的,但是對手將發(fā)現(xiàn)難于移除所述形式。參考編碼表格 的步驟,由于編碼是任意的,因而結(jié)果僅在一個步驟的輸出編碼與下 一個步驟的輸入編碼相匹配的情況下才有意義。例如,如果步驟X之 后是步驟Y (導(dǎo)致y。義的計算),那么所述計算可以被編碼成
通過這種方式,盡管輸入需要利用F來編碼并且輸出需要利用H一1 來解碼,但是卻正確地計算了 r。X。這些步驟單獨地表示成與Y,和X, 相應(yīng)的表格,以便隱藏F、 G和H以及X和Y。
除了這種混淆步驟之外,Chow 1借助于線性(雙射)變換來使用
13擴散步驟,以便進一步掩蓋下面的操作。術(shù)語混合雙射用來描述這種
線性變換。Chow 1的實現(xiàn)方式以操縱的形式獲得輸入并且以不同操縱 的形式產(chǎn)生輸出,從而使得防白盒攻擊環(huán)境(WBAC)的AES難于與其 包含應(yīng)用相分離。
Chow 2討論了一種被設(shè)計成耐白盒攻擊環(huán)境的DES的密碼實現(xiàn), 其目的在于阻止從程序中提取秘密密鑰。這篇論文中討論的有關(guān)混淆 查找表網(wǎng)絡(luò)的技術(shù)大部分也適用于包括AES等在內(nèi)的其他密碼算法。 當(dāng)控制執(zhí)行環(huán)境的攻擊者可以明顯地使用軟件本身(例如用于解密) 而不必顯式提取所述密鑰時,迫使攻擊者使用手頭安裝的實例通常對 于數(shù)字權(quán)利管理(DRM)系統(tǒng)提供商是有價值的。大體而言,Chow2中 的方法致力于完全由替換盒組成的實現(xiàn)方式,其中沒有一個替換盒實 現(xiàn)仿射變換。Chow 2中描述了若干個支持所述一般方法所需的技術(shù)。 其中一些技術(shù)是I/O分塊編碼、組合函數(shù)編碼、旁路編碼、分裂路徑 編碼以及輸出分裂。
部分求值意味著對基于實現(xiàn)時(部分)已知的值的表達式進行預(yù) 先求值。在一個簡化的實例中,當(dāng)密鑰為"5"并且原始實現(xiàn)方式包含表 達式"2*密鑰"時,不是將"2*5"并入到所述實現(xiàn)方式中,相反將預(yù)先求 值的表達式"10"放入該實現(xiàn)中。通過這種方式,密鑰"5"不直接存在于 代碼中。在具有固定密鑰的DES的情況下,這涉及利用密鑰特定的預(yù) 先求值的S盒(在編譯時或之前根據(jù)所述密鑰計算)替換標準的S盒 (在運行時根據(jù)所述密鑰計算)。依照Chow 2的混合雙射為雙射仿射 變換,其被設(shè)計成使得每個輸出比特取決于大量的輸入比特。1/0分塊 編碼是一種用于處理大量輸入和輸出比特的編碼方法。在這種情況下, 所述編碼/解碼可以形成為一連串的編碼,其中每個編碼處理所述輸入 /輸出比特的子集。組合函數(shù)編碼意味著如果可以并行地處理兩個或更 多操作,那么將單個編碼函數(shù)應(yīng)用到這些并行操作的輸入(相應(yīng)輸出) 的串接。它或多或少與I/O分塊編碼相反。旁路編碼意味著所述編碼
并且重新設(shè)計要混淆的變換以便"旁路,,這些多余的比特,以;吏得它們 不影響這個過程的最終輸出。分裂路徑編碼意味著將函數(shù)修改成提供 附加的輸出比特以便混淆必要的信息比特。輸出分裂意味著將函數(shù)的 輸出分布在若干個部分函數(shù)上,其中必須以非明顯的方式組合所有部分函數(shù)的輸出以便獲得該函數(shù)的原始輸出。
Chow 2提出建立編碼的網(wǎng)絡(luò)以便構(gòu)造具有比如32比特或者甚至 96比特的寬輸入的S盒。將代表仿射變換的這種寬輸入S盒劃分成S 盒網(wǎng)絡(luò),每個S盒具有更窄的輸入和輸出;每個S盒通過在該S盒中 并入編碼函數(shù)而被編碼。在處理該S盒的輸出的S盒中并入編碼函數(shù)的逆。
聯(lián)合代碼與查找表值
在本發(fā)明的一個方面中,提供了用于允許實現(xiàn)數(shù)字數(shù)據(jù)的防篡改 分布的方法。所述數(shù)據(jù)需要通過計算機代碼來處理,該計算機代碼包 括該數(shù)字數(shù)據(jù)的接收器可用的指令。該處理的目的可以是呈現(xiàn)由所述 數(shù)據(jù)代表的音頻/視頻信號。該處理可以包括加密、解密、壓縮、解壓 縮或者其他處理。該方法包括編寫組成用于處理所述數(shù)字數(shù)據(jù)的處理 算法的實現(xiàn)的多個指令。所述多個指令構(gòu)成計算機程序,例如用戶終 端上成功地回放所分發(fā)的內(nèi)容所需的媒體播放器或者插件。該處理算 法基于參數(shù)。在解密的情況下,這些參數(shù)可以代表密鑰??梢允褂孟?應(yīng)的加密密鑰對所分發(fā)的數(shù)據(jù)進行(部分)加密。
標識出與處理器指令的一部分相等的所述參數(shù)的一部分。更特別 地,所述參數(shù)的比特表示的一部分等于所述指令的比特表示的一部分。 這些參數(shù)的其余部分可以與任何處理器指令不同。所標識出的參數(shù)可 以等于包含在所述處理算法的實現(xiàn)中的處理器指令。然而,這些標識 出的參數(shù)同樣可以等于出現(xiàn)在所述系統(tǒng)中別處的處理器指令的比特表 示。例如,它們可以等于出現(xiàn)在操作系統(tǒng)內(nèi)核中的某個特定比特串, 或者出現(xiàn)在諸如TCP/IP通信棧之類的系統(tǒng)的某個驅(qū)動器中的比特。
這樣布置所述處理器指令,以使得在執(zhí)行期間,通過引用所述處 理器指令的比特表示中的所述部分的存儲位置來讀取所述參數(shù)的相等 部分(以便例如在解密處理中使用)。所述參數(shù)的相等部分沒有被單 獨地存儲在存儲器中,這是因為所需要的比特表示已經(jīng)存在于保持相 一致處理器指令的存儲地址處。實際上,相同的存儲地址以兩種方式 使用作為解密算法的參數(shù)的存儲位置,以及同時作為要執(zhí)行的處理 器指令的存儲位置。 一般而言,讀取作為參數(shù)的存儲位置的指令本身
存儲在不同的存儲位置處,并且通過引用來訪問保持該參數(shù)的存儲位
15置。這些指令形成程序代碼。這些指令符合其中執(zhí)行該程序代碼的執(zhí)
行環(huán)境。例如,它們是處理器指令或者諸如虛擬機指令(例如java字 節(jié)碼)之類的偽代碼指令。
在本發(fā)明的另 一個方面中,這樣選擇所述參數(shù)以使得它們包含相 對較大的相等部分。單個存儲地址可以保持可以兩種似乎不相關(guān)的方 式使用的數(shù)據(jù)作為處理器指令以及作為參數(shù)值。其效果在于,如果 攻擊者改變了處理器指令,那么這些參數(shù)可能變得無效,反之,如果 攻擊者改變了這些參數(shù),那么所述處理器指令變得無效。因此,攻擊 者執(zhí)行目標導(dǎo)向的篡改就可能變得更加困難。
圖4示出了步驟編寫實現(xiàn)603,標識所述參數(shù)的相一致部分613, 以及布置所述實現(xiàn)615。這些參數(shù)可以包括例如形成查找表網(wǎng)絡(luò)的一個 或多個查找表??梢岳绺鶕?jù)密鑰來計算這種查找表網(wǎng)絡(luò)(步驟6 04 )。 選擇所述處理器指令的比特表示中的字(步驟606 )以用于包含于該網(wǎng) 絡(luò)的查找表的至少一個中。通過向查找表中的元素施加變換(步驟608 ) 來實現(xiàn)該字的包含。這個變換通過施加補償變換(步驟610)而得到補 償,其中補償變換對所述變換對于其他查找表中的至少一個元素的影 響進行反轉(zhuǎn)。通常,至少兩個經(jīng)變換的查找表通過所述查找表網(wǎng)絡(luò)而 連接起來。該經(jīng)變換的查找表網(wǎng)絡(luò)而不是原始的查找表網(wǎng)絡(luò)用作所述 密碼算法的參數(shù)。
一個實施例包括選擇所述指令的比特表示中的多個字并且創(chuàng)建包 含該指令的比特表示的查找表以便形成"包含代碼"的查找表。該包含 代碼的查找表包含于構(gòu)成數(shù)據(jù)處理程序的參數(shù)的查找表網(wǎng)絡(luò)中。通常, 通過將適當(dāng)選擇的查找表包含在查找表網(wǎng)絡(luò)中來補償該包含代碼的查 找表的效果。這樣布置構(gòu)成所述程序代碼的指令,以使得保持出現(xiàn)在 該包含代碼的查找表中的指令的存儲地址也用于讀取該包含代碼的查 找表的值。
強制表查找
在一個實施例中,返回到圖3,第二單元902包括用于將加密的內(nèi) 容包含在數(shù)字數(shù)據(jù)914中的加密裝置。插入器910將所計算的值包含 在經(jīng)過加密的數(shù)據(jù)流中以便由處理裝置906進行解密。處理裝置906 包括用于對包含插入值的加密內(nèi)容進行解密的解密裝置。該解密裝置以所述方式之一來使用查找表916。優(yōu)選地,使用解密算法的白盒實現(xiàn)。 這可以是類似于Chow 1和Chow 2的AES或DES實現(xiàn),但是,同樣可 以使用任何其他實現(xiàn)或解密方案。
在一個實施例中,所述處理裝置被布置用于以預(yù)定的順序解碼所 述數(shù)字數(shù)據(jù)。取決于更早先被處理的數(shù)據(jù)來處理數(shù)據(jù)。實現(xiàn)這點的可 能性之一是加密方法。它適用于例如流式密碼。它也適用于使用密碼 分塊鏈(CBC)模式的解碼方案,其中代替密文(或者除密文之外還) 利用明文來創(chuàng)建依賴關(guān)系。
所述插入器可以被布置成將測試所述預(yù)定義查找表條目的值放置 在重要的數(shù)據(jù)分塊之前,以使得正確地處理該重要的數(shù)據(jù)分塊需要所 述測試的肯定結(jié)果。例如,將每個值測試不同的預(yù)定查找表條目的一 系列值插入到數(shù)據(jù)流的開始處。通過這種方式,對于所測試條目中的 任何一個的改變使得整個數(shù)據(jù)流不可用。
在存儲器中進行聯(lián)合代碼和密鑰可以用于提高防篡改性。待處理 的數(shù)據(jù)通常決定在處理中將使用哪些查找表條目。因此,甚至在篡改 代碼之后,也可能發(fā)生所述處理的相對較大的部分被成功地執(zhí)行,這 是因為處理數(shù)據(jù)不需要被篡改的存儲值。例如,如果在8比特-k比特 查找表(對于任何k>0)中改變了一個字節(jié),并且處理代碼分塊僅需要 一個8比特值,以及256個8比特值中的每一個出現(xiàn)的概率相等,那 么被改變的字節(jié)用于所述處理中的概率是1/"6或者0. 4、將希望提 高這個概率,即提高在代碼的一個或多個字節(jié)發(fā)生改變之后所述處理 將失敗的概率和/或確保所述處理對于數(shù)據(jù)的較大部分會失敗??梢岳?解的是,同樣可能希望訪問沒有與代碼聯(lián)合但是可能具有某種其他特 殊意義的預(yù)定義查找表條目。此外,如果懷疑某個值可能已經(jīng)被改變 了,那么也希望檢查該值。
令X為必須由白盒實現(xiàn)來處理(例如來加密或解密)的(可能為 空的)數(shù)據(jù)分塊流??梢栽赬中插入若干個分塊B,, B2, .,., BB,這 些分塊以這樣的方式來選擇以便它們在白盒實現(xiàn)中訪問特定的查找表 條目(即密鑰的特定部分)。也可以讓分塊B,, B2, ..., B^居于X之
月'J 。
一種在所述代碼的一個或多個字節(jié)發(fā)生改變之后提高所述處理對 于所述數(shù)據(jù)的較大部分失敗的概率的方法如下??梢赃x擇分塊密碼模
17式,其中不正確的解密通過進一步的解密而傳播。相比較而言,在"電
子碼書"(ECB)模式中,其中可以與其他密文分塊無關(guān)地解密每個密 文分塊,每個分塊具有訪問被篡改的查找表條目的獨立概率(在上例 中為0.4%)??梢岳缤ㄟ^使得分塊的解密過程依賴于先前解密的分 塊的解密結(jié)果來使得不正確的解密進一步傳播到接下來的解密。在其 解密結(jié)果錯誤的第 一數(shù)據(jù)分塊之后,所有后續(xù)分塊也將被錯誤地解密。 這使得如果所述代碼的被測試部分已經(jīng)被墓改了的話,那么所述數(shù)據(jù) 的大得多的部分不能被正確地處理。
在一個實施例中,白盒實現(xiàn)用于某種傳播錯誤(出于上面討論的 原因)的模式中。例如,使用密碼分塊鏈接(CBC)模式的變體,其中 利用明文而不是密文創(chuàng)建依賴關(guān)系。例如,在"正常"CBC模式中,數(shù)據(jù) 分塊i在將其與加密的數(shù)據(jù)分塊i-1進行異或(X0R)之后被加密。在 "提出"的變體中,數(shù)據(jù)分塊i在將其與未加密的(明文)數(shù)據(jù)分塊i-l 進行異或之后被加密。"正常"CBC模式使得數(shù)據(jù)流更加隨機。所"提出" 的變體使得單個解密錯誤被傳播到所有后續(xù)的數(shù)據(jù)分塊。具有待加密 的內(nèi)容的流S之前有若干個目的在于訪問特定查找表條目、特別是包 含代碼的條目的分塊。如果所述聯(lián)合的代碼中的一個或多個比特被改 變了,那么S的任何分塊都不會被正確地解密。同樣可能的是,通過 利用明文和前面分塊的密文二者來創(chuàng)建依賴關(guān)系(例如進行異或)來 將"正常"CBC模式與所"提出,,的CBC模式相結(jié)合。通過這種方式,組合
了這兩種模式的可能優(yōu)點(隨機性和錯誤傳播)。
可以這樣計算數(shù)據(jù)分塊,以使得在解密處理期間(或者在可適用 的加密處理期間)訪問特定的查找表條目。考慮使用查找表的AES解 密(或加密)算法的標準(非白盒)實現(xiàn)。此外,考慮該實現(xiàn)的以下 問題給定回合r以及該回合的輸入I"找出所述解密算法的第一回 合的輸入I!,以使得到回合r的輸入為I"應(yīng)當(dāng)清楚的是,利用該問 題的解決方案,本領(lǐng)域技術(shù)人員能夠設(shè)計這樣的數(shù)據(jù)塊以使得解密算 法的預(yù)定義非白盒實現(xiàn)訪問特定的查找表條目。令fi為標準(非白盒) AES的回合i中計算的函數(shù),即如果其輸入由Ii給定,那么fi(Ii)為回 合i的輸出。容易計算回合fi的逆fi ',這是因為fi的計算中的所有步 驟(AddRoundKey、 SubBytes、 ShiftRows、 MixCol醒s )都是容易求
逆的。結(jié)果,可以將11計算為/1=〃'?!?。'''。/;:;(0??梢詫υ撍惴ㄟM行修改以導(dǎo)出強制白盒解密算法訪問例如II型表
格T中的特定行1的數(shù)據(jù)分塊。該修改的算法以導(dǎo)出到回合包含的表 格T的(編碼)輸入以便訪問行1而開始。從該輸入中移除編碼以便 獲得到AES (非白盒)實現(xiàn)的回合的輸入。前面段落中概括的算法現(xiàn)在 可以用來導(dǎo)出數(shù)據(jù)分塊,其中白盒實現(xiàn)為該數(shù)據(jù)分塊訪問行1。通常, 可以從到查找表網(wǎng)絡(luò)的特定查找表的編碼輸入中移除編碼,所述編碼 輸入引起對該特定查找表中的行1的訪問,并且可以通過使用沒有編 碼的處理算法的版本來反轉(zhuǎn)所述處理。這些沒有編碼的處理步驟比白 盒實現(xiàn)的編碼查找表更易于反轉(zhuǎn)。所述編碼只能由具有這些編碼的知 識的人員或系統(tǒng)移除,而不能由沒有該知識的攻擊者移除
應(yīng)當(dāng)指出的是,代替導(dǎo)出訪問所述網(wǎng)絡(luò)中的一個特定表格的一個 特定行1的數(shù)據(jù)分塊的是,可以導(dǎo)出使得所述程序訪問所述查找表網(wǎng) 絡(luò)中的多個對應(yīng)查找表的每一個中的預(yù)定條目的數(shù)據(jù)分塊。其原因在 于,在多個表格上分布分塊的輸入比特,因此可以選擇分布到每個表 格的多個比特以便訪問對應(yīng)的預(yù)定查找表條目。
還應(yīng)當(dāng)指出的是,被定義成訪問回合r中的特定行的數(shù)據(jù)分塊同 樣訪問其他回合中的行,因為這些回合是所述查找表網(wǎng)絡(luò)的一部分。 這些附加訪問的行中的一些也可以與代碼聯(lián)合。結(jié)果,需要包含較少 的分塊以便實現(xiàn) 一 定數(shù)量與代碼聯(lián)合的字節(jié)由所述算法來訪問。
除了所討論的CBC模式之外,也可以使用計數(shù)器(CTR)模式。在 這種模式中,可以對計數(shù)器(例如值的偽隨機序列)而不是所述數(shù)據(jù) 本身進行加密。數(shù)據(jù)與加密的計數(shù)器流進行異或(X0R)。對于這種模 式而言,選擇計數(shù)器值的自由度可以用來將希望的值(對應(yīng)于預(yù)定表 查找)包含在所述計數(shù)器流中。例如,可以使得一組計數(shù)器值出現(xiàn)在 所述數(shù)據(jù)流的開頭附近,這將使得聯(lián)合的表條目的大部分被訪問。如 果所述計數(shù)器流的加密再次在所"提出"的CBC模式中執(zhí)行,那么在聯(lián) 合代碼中的改變對于對所述數(shù)據(jù)流的大部分的處理將導(dǎo)致失敗。在這 里,使用CTR模式的優(yōu)點在于,不存在多余的解密/加密,因為所選擇 的計數(shù)器值的加密結(jié)果與加密的數(shù)據(jù)進行異或以便獲得有效的明文。
該方法也可以用于二值圖像的驗證。通過快速地訪問查找表中的 所有條目,快速地驗證這些查找表中的值是否正確。此外,無需另外 處理實際的數(shù)據(jù)。首先,導(dǎo)出強制訪問所有S盒條目的一組數(shù)據(jù)分塊。這可以利用所描述的算法來進行。接下來,對于該組中的所有數(shù)據(jù)分 塊,測試所述查找表是否給出正確的答案。如果是這樣的情況,則二 值圖像很可能是正確的。當(dāng)使用以上解釋的密碼分塊鏈接模式時,僅 需要驗證最后的結(jié)果,這是因為只有所有前面的操作都正確的情況下 它才是正確的。
圖5示出了本發(fā)明的一個實施例。該圖示出了通信端口95,例如 用于與數(shù)字內(nèi)容提供商相連接的到互聯(lián)網(wǎng)的連接。也可以從諸如DVD 或CD之類的介質(zhì)96中獲得所述內(nèi)容。PC上的數(shù)字內(nèi)容一般通過使用 媒體播放器來呈現(xiàn),所述媒體播放器由使用存儲器91的處理器92來 執(zhí)行。對于特定的內(nèi)容格式而言,這樣的播放器可以執(zhí)行相應(yīng)的插件, 以便執(zhí)行與經(jīng)由通信端口 95和/或介質(zhì)96獲得的內(nèi)容相對應(yīng)的格式特 定的解碼。這些內(nèi)容格式可以包括AVI、DV、運動JPEG、MPEG-l、MPEG-2、 MPEG-4、 WMV、音頻CD、 MP3、 WMA、 WAV、 AIFF/AIFC、 AU等等。對于 數(shù)字權(quán)利管理目的而言,可以使用不僅對所述內(nèi)容解碼而且對所述內(nèi) 容進行解密的安全插件。該插件包括存儲在存儲器91中的處理器指令 和參數(shù)(例如混淆的查找表)。這些處理器指令和參數(shù)可以像所述的 那樣重疊;在這種情況下,存儲器91中的一些存儲位置包含代表所述 插件執(zhí)行期間的處理器指令和參數(shù)值的值。在所述內(nèi)容中,插入了數(shù) 據(jù)分塊以便確保在數(shù)據(jù)分塊的解碼/解密期間一些預(yù)定義的存儲位置 用作查找表條目。例如,可以尋址代表處理器指令和參數(shù)值二者的存 儲位置??梢蕴峁┯脩糨斎攵?4來從用戶獲得指示要呈現(xiàn)的內(nèi)容的命 令,并且提供了顯示器93和/或揚聲器用于呈現(xiàn)解碼和/或解密的內(nèi)容。
應(yīng)當(dāng)理解,本發(fā)明還擴展到計算機程序,特別是載體上或載體中 的適于將本發(fā)明付諸實踐的計算機程序。該程序可以是源代碼、目標 代碼、介于源代碼和目標代碼之間的代碼(例如部分編譯的形式)的 形式,或者任何其他適合在依照本發(fā)明的方法實現(xiàn)中使用的形式。栽 體可以是能夠攜帶程序的任何實體或設(shè)備。例如,栽體可以包括存儲 介質(zhì),諸如R0M (例如CD ROM)或半導(dǎo)體存儲器,或者磁性記錄介質(zhì), 例如軟盤或硬盤。此外,栽體可以是可傳輸?shù)妮d體,例如電信號或光 學(xué)信號,其可以通過電纜或光纜或者通過無線電或其他方式來傳送。 當(dāng)程序包含于這種信號中時,所述載體可以由這種纜線或其他設(shè)備或 裝置來構(gòu)成。可替換地,所述栽體可以是其中嵌入了所述程序的集成
20電路,該集成電路適于執(zhí)行相關(guān)的方法或者在執(zhí)行相關(guān)的方法中使用。 應(yīng)當(dāng)指出的是,上述實施例說明而不是限制了本發(fā)明,并且本領(lǐng) 域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下應(yīng)當(dāng)能夠設(shè)計出許 多可替換的實施例。在權(quán)利要求中,置于括號中的任何附圖標記都不 應(yīng)當(dāng)被視為限制了該權(quán)利要求。動詞"包括,,及其變體的使用并沒有排 除權(quán)利要求中未列出的元件或步驟的存在。元件之前的冠詞"一"或者 "一個"并沒有排除多個這樣的元件的存在。本發(fā)明可以借助于包括 若千不同元件的硬件以及借助于經(jīng)過適當(dāng)編程的計算機來實現(xiàn)。在列 舉了若干裝置的設(shè)備權(quán)利要求中,這些裝置中的一些可以由同一硬件 項來實現(xiàn)。在相互不同的從屬權(quán)利要求中陳述某些技術(shù)措施這一事實 并不意味著這些技術(shù)措施的組合不可以加以利用.
權(quán)利要求
1. 一種用于提高數(shù)字數(shù)據(jù)處理單元的防篡改性的系統(tǒng),包括第一單元(901),包括輸入端(904),用于接收所述數(shù)字數(shù)據(jù),以及處理裝置(906),用于根據(jù)基于所接收的數(shù)字數(shù)據(jù)中的值在至少一個查找表(916)中查找的值來處理所接收的數(shù)字數(shù)據(jù);以及第二單元(902),包括用于計算用于包含在所述數(shù)字數(shù)據(jù)中的至少一個值的裝置(912),所述至少一個值導(dǎo)致第一單元(901)在處理所述數(shù)字數(shù)據(jù)時在所述查找表(916)中查找至少一個預(yù)定值,插入器(910),用于將所述至少一個值包含在所述數(shù)字數(shù)據(jù)中,以及輸出端(908),用于將所述數(shù)字數(shù)據(jù)發(fā)送到第一單元。
2. 依照權(quán)利要求l的系統(tǒng),其中第二單元包括用于將加密的內(nèi)容包含在所述數(shù)字數(shù)據(jù)中的加密裝置;所述插入器被布置用于將所述至少一個值包含在所迷加密的內(nèi)容中;以及所述處理裝置被布置用于基于查找操作對所述加密的內(nèi)容進行解密。
3. 依照權(quán)利要求l的系統(tǒng),還包括驗證裝置,用于將所述處理裝 置的輸出與參考值進行比較。
4. 依照權(quán)利要求l的系統(tǒng),其中所述處理裝置被布置用于以預(yù)定 的順序處理所述數(shù)字數(shù)據(jù),其中所查找的值影響其處理在所迷查找操 作之后開始的數(shù)據(jù)的處理結(jié)果。
5. 依照權(quán)利要求l的系統(tǒng),其中所迷插入器被布置用于將所迷至 少一個值置于所述數(shù)字數(shù)據(jù)中以便導(dǎo)致所述處理裝置在處理所述數(shù)字 數(shù)據(jù)的預(yù)定分塊之前在所述查找表中查找所述至少一個預(yù)定值。
6. 依照權(quán)利要求l的系統(tǒng),其中第一單元包括用于存儲要由該第一單元執(zhí)行的軟件的比特表示的 存儲器,并且該軟件的比特表示的至少一部分由所述處理裝置用作所 述查找表的至少一部分;以及所述查找表中的至少一個預(yù)定值出現(xiàn)在該軟件的比特表示的至少 一部分中。
7. 依照權(quán)利要求6的系統(tǒng),其中所述軟件的比特表示的至少一部 分包含作為所述處理裝置的操作的一部分而執(zhí)行的指令。
8. —種用于提高數(shù)字數(shù)據(jù)處理單元的防篡改性的系統(tǒng)(902 ),包括用于計算用于包含在所述數(shù)字數(shù)據(jù)中的至少一個值的裝置(912), 所述至少一個值使得所述處理單元在處理所述數(shù)字數(shù)據(jù)時在查找表中 查找至少一個預(yù)定值,插入器(910),用于將所述至少一個值包含在所述數(shù)字數(shù)據(jù)中,以及輸出端(908 ),其用于將所述數(shù)字數(shù)據(jù)分發(fā)到所述處理單元。
9. 一種用于提高數(shù)字數(shù)據(jù)處理單元的防篡改性的系統(tǒng)(901),包括輸入端(904 ),用于接收所述數(shù)字數(shù)據(jù);以及處理裝置(906 ),用于根據(jù)基于所接收的數(shù)字數(shù)據(jù)中的值而在至 少一個查找表(916)中查找的值來處理所接收的數(shù)字數(shù)據(jù);其中所述數(shù)字數(shù)據(jù)包含至少一個值,所述至少一個值導(dǎo)致所述處 理單元在處理所述數(shù)字數(shù)據(jù)時在所述查找表中查找至少一個預(yù)定值。
10. —種提高數(shù)字數(shù)據(jù)處理單元的防篡改性的方法,包括 在第一單元(901)中接收(904 )所述數(shù)字數(shù)據(jù),以及根據(jù)基于所接收的數(shù)字數(shù)據(jù)中的值而在至少一個查找表 (916)中查找的值來處理(906 )所接收的數(shù)字數(shù)據(jù);以及 在第二單元(902 )中計算(912)用于包含在所述數(shù)字數(shù)據(jù)中的至少一個值,所述 至少一個值使得第一單元在解碼所述數(shù)字數(shù)據(jù)時在所述查找表中查找 至少一個預(yù)定值,將所述至少一個值包舍(910)在所述數(shù)字數(shù)據(jù)中,以及 將所述數(shù)字數(shù)據(jù)發(fā)送(908 )到第一單元。
11. 一種用于使得處理器執(zhí)行依照權(quán)利要求IO的方法的計算機程 序產(chǎn)品。
全文摘要
一種用于提高數(shù)字數(shù)據(jù)處理單元的防篡改性的系統(tǒng),包括第一單元(901),該第一單元包括處理裝置(906),所述處理裝置用于根據(jù)基于所接收的數(shù)字數(shù)據(jù)中的值而在至少一個查找表(916)中查找的值來處理所接收的數(shù)字數(shù)據(jù)。所述系統(tǒng)還包括第二單元(902),該第二單元包括用于計算用于包含在所述數(shù)字數(shù)據(jù)中的至少一個值的裝置(912),所述至少一個值導(dǎo)致第一單元(901)在處理所述數(shù)字數(shù)據(jù)時在所述查找表(916)中查找至少一個預(yù)定值。該系統(tǒng)包括插入器(910),用于將所述至少一個值包含在所述數(shù)字數(shù)據(jù)中;以及輸出端(908),用于將所述數(shù)字數(shù)據(jù)發(fā)送到第一單元。
文檔編號H04L9/06GK101491001SQ200780026267
公開日2009年7月22日 申請日期2007年6月27日 優(yōu)先權(quán)日2006年7月12日
發(fā)明者P·M·H·M·A·戈里森, W·P·A·J·米基爾斯 申請人:皇家飛利浦電子股份有限公司