国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于混淆密碼函數(shù)的方法和系統(tǒng)的制作方法

      文檔序號(hào):6455454閱讀:390來源:國知局
      專利名稱:用于混淆密碼函數(shù)的方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及檢驗(yàn)用于執(zhí)行計(jì)算機(jī)程序模塊的執(zhí)行環(huán)境的至少 一部分的真實(shí)性的方法和系統(tǒng)。
      背景技術(shù)
      互聯(lián)網(wǎng)向用戶提供了方便而普遍存在的對(duì)數(shù)字內(nèi)容的訪問。由于
      互聯(lián)網(wǎng)作為有力分配渠道的潛在可能性,許多消費(fèi)電子(CE)產(chǎn)品努力爭取直接接入互聯(lián)網(wǎng)或者與PC平臺(tái)(到互聯(lián)網(wǎng)的主導(dǎo)性入口 )互操作。CE產(chǎn)品包括但不限于數(shù)字機(jī)頂盒、數(shù)字電視、游戲控制臺(tái)、PC以及越來越多的手持設(shè)備,諸如PDA、移動(dòng)電話以及移動(dòng)存儲(chǔ)和呈現(xiàn)設(shè)備(例如蘋果公司的iPod)。使用互聯(lián)網(wǎng)作為用于有版權(quán)內(nèi)容的分發(fā)媒介形成了對(duì)確保內(nèi)容提供商利益的不得不接受的挑戰(zhàn)。特別地,要求保證內(nèi)容提供商的版權(quán)和商業(yè)模式。越來越多地,通過使用加載有適當(dāng)軟件的處理器來操作CE平臺(tái)。這種軟件可以包括用于呈現(xiàn)(回放)數(shù)字內(nèi)容(例如音頻和/或視頻)的主要功能部分?;胤跑浖目刂剖菍?shí)現(xiàn)內(nèi)容所有者的利益的一種方式,這些利益包括可以使用所述內(nèi)容的條款和條件。在傳統(tǒng)上,許多CE平臺(tái)(除了 PC和PDA之外)常常是封閉的,而如今越來越多的平臺(tái)是至少部分地開放的。特別是對(duì)于PC平臺(tái)而言,可以假設(shè)一些用戶對(duì)于提供對(duì)所述內(nèi)容的訪問的硬件和軟件具有完全的控制以及具有大量的時(shí)間和資源來攻擊和旁路繞過任何內(nèi)容保護(hù)機(jī)制。結(jié)果,內(nèi)容提供商必須通過到其中不是所有的用戶或設(shè)備都可以被信任的社區(qū)的不利網(wǎng)絡(luò)來遞交內(nèi)容給合法用戶。
      一般而言,數(shù)字權(quán)利管理系統(tǒng)使用基于分塊密碼的加密技術(shù),其使用一系列加密/解密步驟(稱為回合(round))來以塊為單位處理數(shù)據(jù)流。在每個(gè)回合期間,執(zhí)行回合特定的功能。該回合特定的功能可以基于在回合特定的子密鑰的控制下執(zhí)行的相同回合功能。對(duì)于許多加密系統(tǒng)而言,可以使用映射表或者查找表來規(guī)定該回合功能。即使沒有使用顯式的表格,然而經(jīng)常的是,為功能的不同部分使用表格以便在加密/解密功能的軟件中有效地執(zhí)行。計(jì)算機(jī)代碼訪問表格值或者將表格值結(jié)合到所述功能的范圍值中。代替分發(fā)可能是用戶特定的 密鑰的是,分發(fā)用戶特定的算法而不是用于加密或解密算法的密鑰變 得日益令人感興趣。這些算法(在大多數(shù)情況下是函數(shù)(映射))必
      須被混淆(obfuscate)(隱藏)以便防止重新設(shè)計(jì)或者禁止重新計(jì)算 如密鑰這樣的元素。在計(jì)算機(jī)上,伴隨某些計(jì)算機(jī)代碼的表格通常代 表了這些函數(shù)。
      內(nèi)容提供商必須通過到其中不是所有的用戶或設(shè)備都可以被信任 的社區(qū)的不利網(wǎng)絡(luò)來遞交內(nèi)容給合法用戶。特別是對(duì)于PC平臺(tái)而言,
      制以及具有無限數(shù)量的時(shí)間和資源以便攻擊和旁路繞過任何內(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中公開的方法,并且使用解密密鑰。
      依賴于加密的數(shù)字權(quán)利管理的弱點(diǎn)的主要領(lǐng)域是強(qiáng)制使用內(nèi)容的 條款和條件的軟件插件、密鑰分發(fā)和處理以及其中執(zhí)行所述D詣模塊 的執(zhí)行環(huán)境。
      一般而言,插件強(qiáng)制要依據(jù)其使用內(nèi)容的條款和條件。意欲移除 這些條款和條件的攻擊者可嘗試通過篡改包含在所述軟件插件中的程
      序代碼來實(shí)現(xiàn)這一點(diǎn)。
      關(guān)于密鑰處理,對(duì)于回放而言,媒體播放器必須從許可證數(shù)據(jù)庫中獲 取解密密鑰。然后,它必須將該解密密鑰存儲(chǔ)在存儲(chǔ)器中的某處以用于解 密經(jīng)加密的內(nèi)容。這給攻擊者留下了兩個(gè)攻擊密鑰的選項(xiàng)。首先,許可證 數(shù)據(jù)庫接入功能的逆向工程技術(shù)可能導(dǎo)致黑盒軟件(即攻擊者不必理解軟 件功能的內(nèi)部工作),從而允許攻擊者從所有許可證數(shù)據(jù)庫中獲取資產(chǎn)密 鑰。其次,通過在內(nèi)容解密期間觀察對(duì)存儲(chǔ)器的訪問,有可能獲取所述資 產(chǎn)密鑰。在這兩種情況下,都認(rèn)為密鑰受到損害。越來越多地,將解密算 法的密鑰和部分表示成形成軟件實(shí)現(xiàn)的部分的查找(映射)表。使得軟件 防篡改已經(jīng)獲得了越來越多的關(guān)注。
      防篡改軟件之所以這樣被稱呼的原因在于,對(duì)于該軟件的目標(biāo)導(dǎo) 向篡改被復(fù)雜化了 。存在各種用于提高軟件應(yīng)用的防篡改性的技術(shù)。機(jī)性和復(fù)雜性掩飾(veil)來隱藏該應(yīng)用的嵌入知識(shí)。其背后的思想 在于,僅僅通過代碼檢查來提取信息變得更加困難。因此,發(fā)現(xiàn)例如 處理應(yīng)用的訪問和許可控制的代碼并且從而改變它變得更加困難。
      2002年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")中公開了目的在于隱藏 密鑰的方法,該方法通過下列的組合來進(jìn)行,即利用代表組成
      (composition)而不是單獨(dú)步驟的隨機(jī)雙射(bijection)編碼其表 格,以及通過將密碼邊界進(jìn)一步向外推向包含應(yīng)用來擴(kuò)展該密碼邊界。 盡管到目前為止關(guān)注集中于保護(hù)密鑰和DRM模塊,不過已經(jīng)變得 清楚的是,執(zhí)行環(huán)境值得信任也是重要的。當(dāng)作為PC上索尼DRM安裝
      (延長拷貝保護(hù)XCP軟件)的一部分,Windows XP的一些文件同樣以 替換不容易被檢測(隱藏在Windows XP的所謂的根工具包中)的方式 來替換時(shí),許多關(guān)注投向這個(gè)主題。所述替換無意地將PC暴露于某些 類病毒攻擊。藍(lán)光(BD)光盤使得分發(fā)盤上的受保護(hù)內(nèi)容以及要在BD 播放器的虛擬機(jī)上運(yùn)行的DRM軟件模塊成為可能。該DRM軟件模塊可 以是內(nèi)容特定的并且包括用于以任何適當(dāng)?shù)男问浇饷芩鰞?nèi)容的類密 鑰信息。盡管存在用于檢驗(yàn)軟件的真實(shí)性的某些方法(例如使用簽名 方案和受信任方),但是到目前為止軟件模塊通常必須依賴于所述執(zhí) 行環(huán)境本身值得信任這一事實(shí)。

      發(fā)明內(nèi)容
      有利的是具有一種檢驗(yàn)用于執(zhí)行計(jì)算機(jī)程序模塊的執(zhí)行環(huán)境的至 少一部分的真實(shí)性的改進(jìn)的方法。
      為了更好地解決這一問題,在本發(fā)明的第一方面中,提供的方法 包括檢驗(yàn)用于執(zhí)行計(jì)算機(jī)程序模塊的執(zhí)行環(huán)境的至少一部分的真實(shí)性,其中計(jì)算機(jī)程序模塊可操作來導(dǎo)致根據(jù)多個(gè)預(yù)定數(shù)字參數(shù)來處理
      數(shù)字輸入數(shù)據(jù);并且該方法包括使用預(yù)定算法從所述執(zhí)行環(huán)境的至少 一部分導(dǎo)出所述多個(gè)預(yù)定數(shù)字參數(shù)之一的至少一部分。
      依照本發(fā)明,所述計(jì)算機(jī)程序模塊在其執(zhí)行中依賴于執(zhí)行環(huán)境。 其參數(shù)至少部分地從所述執(zhí)行環(huán)境導(dǎo)出。預(yù)定算法用來從所述執(zhí)行環(huán) 境導(dǎo)出這樣的參數(shù)。通過這種方式,可以確保如果執(zhí)行環(huán)境的被檢驗(yàn) 部分沒有被篡改的話,那么在合理程度的概率下,該程序模塊將僅以 希望的方式處理其輸入數(shù)據(jù)。這至少給出了對(duì)所述執(zhí)行環(huán)境的隱含檢 驗(yàn)。由于所述程序模塊的執(zhí)行輸出固有地依賴于該執(zhí)行環(huán)境,因而難 以篡改該執(zhí)行環(huán)境的所述部分。該執(zhí)行環(huán)境可以包括操作系統(tǒng)的部分 (例如內(nèi)核和/或重要庫),但是也可以包括工作于操作系統(tǒng)之上的虛 擬機(jī),例如Java虛擬才幾。通過以這種方式檢驗(yàn)所述執(zhí)行環(huán)境,可以更 好地避免例如數(shù)字內(nèi)容(例如音頻和/或視頻)那樣的有價(jià)值數(shù)字?jǐn)?shù)據(jù) 通過篡改的執(zhí)行環(huán)境而泄漏。應(yīng)當(dāng)指出的是,已知例如以校驗(yàn)和的形 式對(duì)軟件模塊執(zhí)行某種形式的檢驗(yàn)并且檢驗(yàn)結(jié)果。這樣的技術(shù)易受到 包括設(shè)法跳過測試在內(nèi)的各種攻擊。依照本發(fā)明,所述執(zhí)行環(huán)境的被 檢驗(yàn)部分中的改變可能意味著所述參數(shù)的改變并且因而導(dǎo)致程序模塊 的輸出的改變。例如,可能錯(cuò)誤地解密內(nèi)容。如果攻擊者不清楚這些 參數(shù)之間的關(guān)系,那么篡改所述執(zhí)行環(huán)境的被檢驗(yàn)部分變得越來越困 難。
      依照本發(fā)明的一個(gè)方面,只有在所述多個(gè)參數(shù)滿足預(yù)定準(zhǔn)則的情 況下,才執(zhí)行所述計(jì)算機(jī)程序模塊。因此,顯式的測試可以例如通過 對(duì)這些參數(shù)執(zhí)行校驗(yàn)和而發(fā)生。其優(yōu)點(diǎn)在于,可以警告用戶所述執(zhí)行 環(huán)境已經(jīng)被篡改了。沒有這種警告,用戶可能認(rèn)為所述計(jì)算機(jī)程序模 塊有缺陷,這是因?yàn)槿绻撃K的參數(shù)錯(cuò)誤的話,那么該模塊就可能 不產(chǎn)生期望的輸出。在一個(gè)實(shí)施例中,可以對(duì)于所述執(zhí)行環(huán)境的不同 部分設(shè)計(jì)對(duì)應(yīng)的測試,從而可以告知用戶該環(huán)境的哪個(gè)部分不值得信 任和/或應(yīng)當(dāng)被替換。即使所述測試本身可能是簡單的(例如基于 IF...THEN...ELSE或者類似的語句)并且可以由篡改領(lǐng)域的技術(shù)人員避 免,在其中所述測試未被墓改的系統(tǒng)中,可以將充分的信息提供給用 戶。如果希望這樣的話,已知的技術(shù)也可以用于使得所述測試更加具 有防篡改性。
      7依照本發(fā)明的一個(gè)方面,所述檢驗(yàn)通過使用所述多個(gè)參數(shù)在預(yù)定 數(shù)字輸入數(shù)據(jù)上執(zhí)行所述計(jì)算機(jī)程序模塊的至少一部分的運(yùn)行來進(jìn) 行。然后,檢驗(yàn)該試驗(yàn)運(yùn)行的輸出是否滿足預(yù)定的準(zhǔn)則。在這種情況 下,不檢驗(yàn)這些參數(shù)本身,而是檢驗(yàn)利用這些參數(shù)產(chǎn)生的輸出。該輸 出可能依賴于整套參數(shù)和選擇的輸入數(shù)據(jù),這使得黑客更加難于確定 正確的參數(shù)。
      在一個(gè)實(shí)施例中,從服務(wù)器處接收作為挑戰(zhàn)(challenge)的預(yù)定 數(shù)字輸入數(shù)據(jù);并且將運(yùn)行的輸出提供給服務(wù)器,使得該服務(wù)器能夠 執(zhí)行所述檢驗(yàn)。例如,銀行可以在例如通過提供更多的數(shù)據(jù)和/或軟件 繼續(xù)之前按照這種方式首先來檢查系統(tǒng)是否仍然安全。
      依照本發(fā)明的另一個(gè)方面,所述預(yù)定算法通過使用用于將所述執(zhí) 行環(huán)境的表示轉(zhuǎn)換成至少一個(gè)參數(shù)的計(jì)算機(jī)可執(zhí)行指令來實(shí)現(xiàn)。通過 使用程序來進(jìn)行該表示,可以實(shí)現(xiàn)完全的靈活性。例如,可以自由地 確定檢查所述執(zhí)行環(huán)境的哪個(gè)部分(例如該環(huán)境中的哪些數(shù)據(jù)元素、 哪些計(jì)算機(jī)可執(zhí)行指令等等)以及如何表示該部分(例如簡單地拷貝、 散列等)。如果這樣希望的話,可以使用任何適當(dāng)?shù)募夹g(shù)來混淆該算 法的軟件實(shí)現(xiàn)。
      依照本發(fā)明的一個(gè)方面,將所述執(zhí)行環(huán)境的(部分)可執(zhí)行指令 與所述計(jì)算機(jī)軟件模塊的參數(shù)組(的部分)相聯(lián)合。更詳細(xì)地說,所 述多個(gè)參數(shù)的比特表示的一部分等于所述執(zhí)行環(huán)境的計(jì)算機(jī)可執(zhí)行指 令的比特表示的至少一部分;并且所述計(jì)算機(jī)程序模塊的指令被布置 用于在執(zhí)行期間使用保持所述執(zhí)行環(huán)境的指令的比特表示的所述部分 的至少一個(gè)存儲(chǔ)地址以便也用于通過引用讀取所述參數(shù)的比特表示的 相等部分。因此,至少一個(gè)存儲(chǔ)地址具有"雙重功能";它用于存儲(chǔ) 用于所述軟件程序模塊(部分)參數(shù)以及用于存儲(chǔ)所述執(zhí)行環(huán)境的指 令。因此,篡改該指令將自動(dòng)地導(dǎo)致篡改這些參數(shù),其風(fēng)險(xiǎn)是導(dǎo)致所 述程序模塊不再執(zhí)行所希望的處理。這些可執(zhí)行指令可以是處理器指 令,但是同樣可以是其他適當(dāng)?shù)闹噶?,例如虛擬機(jī)指令或者翻譯的偽 代碼指令。這些虛擬機(jī)指令可以例如是兼容Java或SPDC (自保護(hù)數(shù)字
      內(nèi)容)的。
      依照本發(fā)明的另一個(gè)方面,將所述計(jì)算機(jī)程序模塊的(部分)可 執(zhí)行指令與該計(jì)算機(jī)程序模塊的參數(shù)組(的部分)相聯(lián)合。更詳細(xì)地說,所述多個(gè)參數(shù)的比特表示的一部分等于所述計(jì)算機(jī)程序模塊的計(jì)
      算機(jī)可執(zhí)行指令的比特表示的至少一部分;并且其中這些指令被布置 用于在這些指令的執(zhí)行期間使用保持這些指令的比特表示的所述部分 的至少一個(gè)存儲(chǔ)地址,以便也用于通過引用讀取所述參數(shù)的比特表示 的相等部分。通過這種方式,同樣使得所述計(jì)算機(jī)程序模塊更加具有 防篡改性。因此,對(duì)也用作參數(shù)的所述模塊的指令進(jìn)行篡改將自動(dòng)地 導(dǎo)致篡改這些參數(shù),其風(fēng)險(xiǎn)是使得所述程序模塊不再執(zhí)行所希望的處 理。
      依照本發(fā)明的一個(gè)方面,附加于或者替換表示所述執(zhí)行環(huán)境的指 令的是,所述預(yù)定算法使得所述執(zhí)行環(huán)境的至少一個(gè)數(shù)據(jù)元素用作所 述多個(gè)參數(shù)的一個(gè)或多個(gè)或部分。通過這種方式,同樣也可以檢查所 述執(zhí)行環(huán)境的相關(guān)參數(shù)(例如常數(shù))。例如,可以檢驗(yàn)諸如從DVD獲 知的區(qū)域代碼是否未被篡改。
      依照本發(fā)明的一個(gè)方面,所述方法在與處理有價(jià)值內(nèi)容的計(jì)算機(jī) 程序模塊相結(jié)合使用的情況下是特別有用的。這樣的有價(jià)值內(nèi)容可以 例如是金融數(shù)據(jù)(例如電子銀行)或者數(shù)字內(nèi)容(例如音頻和/或視頻)。 有價(jià)值內(nèi)容通常不以黑客可以容易讀取/使用的"明文"格式來分發(fā)。 一般而言,在至少一些所述輸入?yún)?shù)上至少執(zhí)行密碼操作(例如加密、 認(rèn)證)、編碼操作(例如壓縮)和/或加擾(scrambling)操作。為此 目的,所述多個(gè)數(shù)字參數(shù)包括以下至少之一的表示 -密碼數(shù)據(jù),例如密碼密鑰和/或密碼算法; -數(shù)字內(nèi)容編碼/解碼數(shù)據(jù),例如編碼表和/或編碼算法; -數(shù)字內(nèi)容加擾/解擾數(shù)據(jù),例如加擾表和/或加擾算法。 在一個(gè)實(shí)施例中,所述數(shù)字輸入數(shù)據(jù)為已經(jīng)在內(nèi)容特定的密鑰的 控制下經(jīng)過加密、編碼和/或加擾的數(shù)字內(nèi)容;所述方法包括接收分別 用于控制解密、解碼和/或解擾的內(nèi)容特定的密鑰的表示,并且從所接 收的內(nèi)容特定的密鑰的表示中導(dǎo)出所述多個(gè)預(yù)定數(shù)字參數(shù)之一的至少 一部分。因此,在該實(shí)施例中,所述計(jì)算機(jī)程序模塊的參數(shù)依賴于內(nèi) 容特定的密鑰以及所述執(zhí)行環(huán)境,其中所述執(zhí)行環(huán)境一般而言改變得 不及所述內(nèi)容密鑰頻繁。如上所述,這些參數(shù)也可以依賴于所述計(jì)算 機(jī)程序模塊的指令。通過這種方式,可以實(shí)現(xiàn)高級(jí)別的安全性,同時(shí) 仍然維持使用不同的內(nèi)容特定的密鑰的靈活性并且不必在每次所述內(nèi)容密鑰發(fā)生改變時(shí)更新所述計(jì)算機(jī)程序模塊和/或執(zhí)行環(huán)境。
      在一個(gè)實(shí)施例中,所述數(shù)字參數(shù)的導(dǎo)出部分包括經(jīng)混淆查找表的 網(wǎng)絡(luò),其中已經(jīng)根據(jù)所述執(zhí)行環(huán)境的所述至少一部分混淆了至少一個(gè) 表格并且所述算法被布置成從所述執(zhí)行環(huán)境的至少一部分導(dǎo)出至少一 個(gè)補(bǔ)償元素并且將所述至少一個(gè)補(bǔ)償元素插入經(jīng)混淆查找表的另一個(gè) 中,以使得所述經(jīng)混淆查找表的網(wǎng)絡(luò)在功能上等價(jià)于查找表網(wǎng)絡(luò)。通 過這種方式,可以實(shí)現(xiàn)內(nèi)容特定的解密的白盒實(shí)現(xiàn)方式,其中選擇混 淆的自由度用來檢驗(yàn)所述執(zhí)行環(huán)境是正確與否。該執(zhí)行環(huán)境至少部分 地表示于所述經(jīng)混淆的表格中。只有利用所述執(zhí)行環(huán)境正存在的那部 分才能在執(zhí)行期間實(shí)現(xiàn)原始表格網(wǎng)絡(luò)的功能。對(duì)于每個(gè)內(nèi)容項(xiàng),可以 構(gòu)造內(nèi)容特定的密鑰(以及可選的內(nèi)容特定的解密算法)。只有這個(gè) 需要為每個(gè)內(nèi)容項(xiàng)進(jìn)行分發(fā)。可以檢查所述執(zhí)行環(huán)境,并且如果希望 的話,同樣可以檢查所述計(jì)算機(jī)程序模塊。所述執(zhí)行環(huán)境和計(jì)算機(jī)程 序模塊只需要被分發(fā)一 次,而通過經(jīng)由混淆將它們連接在 一起仍然可 以檢驗(yàn)它們。
      在一個(gè)優(yōu)選實(shí)施例中,所述參數(shù)包括它們之中具有一定冗余的常 數(shù)值,即可能通過對(duì)一個(gè)參數(shù)做出適當(dāng)改變來補(bǔ)償另一個(gè)參數(shù)的改變。 例如,如果所述執(zhí)行環(huán)境的某些可執(zhí)行指令高度相關(guān)并且需要加以檢 驗(yàn),那么這些指令可以以參數(shù)表示(例如簡單地加以聯(lián)合)。然后, 選擇其他參數(shù)以便這樣補(bǔ)償這些給定參數(shù),以使得所述實(shí)現(xiàn)方式提供
      等效的功能,而不管是使用原始參數(shù)(改變之前)還是使用經(jīng)改變的參數(shù)。


      此后,將參照附圖來闡述本發(fā)明的這些和其他方面,其中
      圖1示出了其中可以使用所述方法的系統(tǒng)的框圖; 圖2示出了所述系統(tǒng)的結(jié)構(gòu)的細(xì)節(jié);以及 圖3示出了混淆查找表網(wǎng)絡(luò)的實(shí)例。
      具體實(shí)施例
      圖1示出了其中可以使用本發(fā)明的裝置110的框圖。裝置110可 以是更大的系統(tǒng)100的一部分。裝置110在軟件的控制下操作。其功能的部分包含于一個(gè)或多個(gè)軟件程序模塊中。為此目的,該裝置包括
      處理器120。該裝置本身可以是任何適當(dāng)?shù)脑O(shè)備,例如個(gè)人計(jì)算機(jī)、專
      rtl L廿_1並A幼 ,'i".' L一 r 、rr 卄、1d ,k血Jj6 二t幼 "rrvvr* Jjfe 3S 、、'J& 一l
      乂卞j沐t)M銀氛命、'n, l/yl;、 ja7U7Ujat憤々人命、niy一i7YU慣力人份7 、 ^ta^
      機(jī)(例如X-Box、 Playstation)。它也可以是便攜式設(shè)備,例如PDA 或智能電話。處理器120可以是任何適當(dāng)?shù)奶幚砥鳎鏟C型的處理 器或者包括數(shù)字信號(hào)處理器(DSP)在內(nèi)的嵌入式處理器。所述裝置可 以包括工作存儲(chǔ)器130 (例如RAM)以及非易失性存儲(chǔ)器140 (例如硬 盤、光學(xué)存儲(chǔ)器或者閃存)。該裝置包括計(jì)算機(jī)程序模塊150。當(dāng)加栽 到處理器120中時(shí),計(jì)算機(jī)程序模塊150可操作來導(dǎo)致根據(jù)多個(gè)預(yù)定 數(shù)字參數(shù)154來處理數(shù)字輸入數(shù)據(jù)152。該處理的輸出是數(shù)字輸出數(shù)據(jù) 156。為了能夠執(zhí)行這種處理,在執(zhí)行環(huán)境158中加栽計(jì)算機(jī)程序模塊 150。這種環(huán)境158可以包括操作系統(tǒng)內(nèi)核、庫(例如諸如MP3或MPEG 4解碼器之類的媒體解碼器、互聯(lián)網(wǎng)協(xié)議等等)。執(zhí)行環(huán)境158本身(或 者至少有效部分)也由處理器120執(zhí)行。如果例如模塊150是DRM模 塊,那么模塊150可以包括媒體播放器以及用于管理數(shù)字權(quán)利并且控 制解密/解擾和/或解碼的DRM特定的插件。這樣的媒體播放器可能能
      格式特定的解碼?!┻@^內(nèi)容格式可以包括AVI、 D、一運(yùn)^JPe1 MPEG1-1: MPEG-2、 MPEG-4、 WMV、音頻CD、 MP3、 WMA、 WAV、 AIFF/AIFC、 AU等 等。為了數(shù)字權(quán)利管理的目的,可以使用安全的插件,其不僅解碼所 述內(nèi)容,而且還解密和/或解擾所述內(nèi)容。這種功能的部分是否被重新 使用并且為此目的被集成到執(zhí)行環(huán)境158中是技術(shù)人員的選擇。例如, 模塊150可以使用來自所述執(zhí)行環(huán)境的媒體播放器并且僅作為這種媒 體播放器中的插件來操作,例如以便實(shí)現(xiàn)特定的操作,例如解密或解 碼。還應(yīng)當(dāng)理解,執(zhí)行環(huán)境158可以提供例如Java之類的虛擬機(jī),其 中模塊150是由該虛擬機(jī)解釋的代碼。在圖1中,示出了程序模塊150、 其參數(shù)154以及執(zhí)行環(huán)境158存儲(chǔ)于存儲(chǔ)器140中。程序模塊150和/ 或其參數(shù)154也可以存儲(chǔ)在別處(例如存儲(chǔ)在可移除光學(xué)存儲(chǔ)器160 上)或者根據(jù)要求通過通信接口 170從裝置110之外獲取。例如,接 口 170可以給出對(duì)互聯(lián)網(wǎng)172的訪問。例如,可以從互聯(lián)網(wǎng)中的月l務(wù) 器174處下栽諸如音頻和/或視頻之類的數(shù)字內(nèi)容(作為輸入數(shù)據(jù)152 )。 該內(nèi)容可以通過諸如加密、加擾、編碼(例如壓縮)之類的任何適當(dāng)
      ii可以可由惡意方直接使用的"明文,,形 式來獲得。該數(shù)字內(nèi)容也可以是其他的數(shù)字?jǐn)?shù)據(jù),特別是值得保護(hù)的 數(shù)據(jù),例如金融交易(網(wǎng)上4艮行),其中輸入通過如互聯(lián)網(wǎng)那樣的通 信網(wǎng)絡(luò)來接收、經(jīng)過安全處理并且通過該通信網(wǎng)絡(luò)輸出。這樣,所述
      輸出也可以通過如接口 170那樣的通信接口提供給裝置110的外部, 例如提供給如服務(wù)器174那樣的銀行服務(wù)器。如上所述,也可以從裝 置110外部獲取所述計(jì)算機(jī)程序模塊。在一個(gè)實(shí)施例中,所述計(jì)算機(jī) 程序模塊的至少一部分特別地被設(shè)計(jì)用于處理所述內(nèi)容。例如,可能 已經(jīng)優(yōu)選地通過使用唯一密鑰或者內(nèi)容特定的密鑰加密了所述內(nèi)容 (例如利用電影特定的密鑰加密每部電影)。所述計(jì)算機(jī)程序模塊然 后可能已經(jīng)設(shè)計(jì)成使得它能夠解密該內(nèi)容。類似地,例如,對(duì)于金融 交易而言,可以由銀行負(fù)責(zé)提供特定于該交易的計(jì)算機(jī)程序模塊。然 后,該模塊可以以特定的(優(yōu)選為唯一的)方式處理所述金融數(shù)據(jù)并 且可以作為輸出的一部分也提供其身份。存在各種適當(dāng)?shù)乃〖夹g(shù)并 且這些技術(shù)可以用于將這種身份與輸出結(jié)合。然后,銀行可以檢驗(yàn)已 經(jīng)使用了具有該身份的模塊。在執(zhí)行期間,可以在工作存儲(chǔ)器130中 加載程序模塊150、執(zhí)行環(huán)境158的有效部分以及參數(shù)154。裝置110 還可以包括用戶輸入裝置(未示出),諸如遙控器、鍵盤、鼠標(biāo)、用 于音頻輸入的麥克風(fēng)等等,以便從用戶處獲得用來指示要呈現(xiàn)的內(nèi)容 的命令。裝置110還可以包括用于向用戶提供信息和/或用于表示呈現(xiàn) 的內(nèi)容的用戶輸出裝置(未示出),例如顯示器93和/或揚(yáng)聲器。
      依照本發(fā)明,使用了預(yù)定的算法來從執(zhí)行環(huán)境158的至少一部分 中導(dǎo)出所述多個(gè)預(yù)定數(shù)字參數(shù)154之一的至少一部分。如下面將要更 加詳細(xì)地描述的那樣,這些參數(shù)附加地或者可替換地也可以從其他部 分(例如程序模塊150本身)導(dǎo)出。應(yīng)當(dāng)理解,為了提高安全性,可 能希望從所述執(zhí)行環(huán)境導(dǎo)出更高數(shù)量比特的參數(shù)。還應(yīng)當(dāng)理解,所述 算法的復(fù)雜度決定了獲得希望安全水平的比特?cái)?shù)量。例如,如果該算 法基于在所述執(zhí)行環(huán)境的主要部分上確定的加密性強(qiáng)的散列,那么使 用1024比特的參數(shù)可能已經(jīng)給出非常強(qiáng)的安全性。因此,可以使用僅 僅一個(gè)參數(shù)的一部分、若干參數(shù)的一部分(例如若干參數(shù)的最高有效 位)、 一個(gè)完整的參數(shù)或若干個(gè)完整的參數(shù)或者其組合。類似地,可 以只檢查所述執(zhí)行環(huán)境的小部分(例如一個(gè)或一些高度相關(guān)的指令或常數(shù)),或者可以檢查重要部分(例如一些相關(guān)庫)。本領(lǐng)域技術(shù)人 員可以確定需要檢查所述執(zhí)行環(huán)境的哪個(gè)部分(例如具有泄漏相關(guān)數(shù)
      丄F 丄厶旦古*匕.UL丄A Sir >V 、
      tfV取同"J B匕H ff'J節(jié)|">刀—。
      圖2進(jìn)一步示出了該原理。在附圖中使用了相同附圖標(biāo)記的地方, 這些附圖標(biāo)記指的是可能具有添加的更多細(xì)節(jié)的相同項(xiàng)。依照本發(fā)明, 使用了預(yù)定算法200用于從執(zhí)行環(huán)境158的至少一部分中導(dǎo)出所述多 個(gè)預(yù)定數(shù)字參數(shù)154之一的至少一部分。在圖2中,示出了這些參數(shù) 的部分210從執(zhí)行環(huán)境158導(dǎo)出。如下面將要更加詳細(xì)地描述的,在 本發(fā)明的實(shí)施例中,這些參數(shù)的部分212也可以從程序模塊150本身 導(dǎo)出,并且部分214可以從單獨(dú)提供的參數(shù)(例如內(nèi)容特定的解密密 鑰220 )導(dǎo)出。實(shí)際上,這些參數(shù)可以是任何類型的參數(shù)。例如,對(duì)于 音頻/語音/視頻信號(hào)的信號(hào)處理而言,這些參數(shù)可以是濾波器設(shè)置。 對(duì)于類似于密碼學(xué)的操作(例如解密或認(rèn)證)或者解擾而言,這些參 數(shù)可以代表密鑰或類似于密鑰的信息。對(duì)于解碼而言,這些參數(shù)可以 代表解碼表。 一般而言,這些參數(shù)為模塊150或者執(zhí)行環(huán)境158使用 的常數(shù)。
      應(yīng)當(dāng)指出的是,已知如何將密碼學(xué)算法和類似的算法表示成要由 軟件執(zhí)行的一個(gè)或多個(gè)映射表(通常為映射表網(wǎng)絡(luò))。例如,Chow 1 和Chow 2分別描述了用于AES和DES的這種方法。這些表格表示類似 于密鑰的信息以及所述算法的部分。使用這樣的表格的優(yōu)點(diǎn)在于,耗 時(shí)的算法步驟現(xiàn)在由快得多的映射操作代替了(代價(jià)是使用更多的存 儲(chǔ)空間來存儲(chǔ)這些表格)。共同待決的專利申請(qǐng)No. 061166930 (代理 人案巻號(hào)PH005600 )中也給出了這種方法的詳細(xì)描述。在這些所謂的 算法的白盒軟件實(shí)現(xiàn)中,假設(shè)黑客例如在表格加載到存儲(chǔ)器130中時(shí) 有權(quán)訪問這樣的表格。即使這些表格以加密的形式存儲(chǔ)在存儲(chǔ)器140 中,在某個(gè)時(shí)刻,模塊150將不得不使用實(shí)際解密的表格。在所述白 盒方法中,原則上惡意方可以拷貝整個(gè)軟件模塊并且這在另一個(gè)裝置 中同樣也可起作用。有若干方法可以用來阻止這點(diǎn)。例如,這些表格 可以很大,以至于拷貝它們變得不合適。另一種方法是令這些表格代 表原始用戶可追蹤的信息。于是,任何非法拷貝都可以被追溯回到原 始用戶。Chow 1和Chow 2描述了確保原始表格不以明文形式可用的若 干方法。相反,這些原始表格被混淆。優(yōu)選地,通過對(duì)所述表格中的至少一些的輸入和輸出施加編碼來混淆所述查找表網(wǎng)絡(luò)。這些編碼對(duì)
      查找表的內(nèi)容具有影響;改變該編碼以可預(yù)測的方式改變該表格的內(nèi) 容。然而,攻擊者可能難于解開這些編石馬,這是因?yàn)樗挥凶罱K的查 找表的知識(shí),該知識(shí)表示其輸入和輸出已經(jīng)以相對(duì)較復(fù)雜的方式進(jìn)行 編碼的映射。施加到查找表中的元素的變換可以通過適當(dāng)?shù)馗淖冞@些 編碼來實(shí)現(xiàn)。通過改變輸出編碼,可以將特定的值并入到所述表格中。 通過改變輸入編碼,例如可以改變值出現(xiàn)于所述表格中的順序。此后, 輸入編碼也稱為輸入解碼,這是因?yàn)樗梢越獯a由前面的查找表的輸 出編碼導(dǎo)致的數(shù)據(jù)編碼。
      通過改變輸入和輸出編碼二者可以以最大的自由度操縱查找表。 當(dāng)改變允許改變至少一個(gè)表格的輸入和輸出編碼時(shí),考慮至少三個(gè)查
      圖3示出了使得提e取密鑰更加困難的方式。、令X和Y為兩個(gè):數(shù)。考 慮示作圖示310的操作y。義-"義(c))(其也可以表示為Y*X(c)= Y(X(c)),其中c為輸入值,例如為4字節(jié)狀態(tài)列。然而,該方法適 用于任何類型的輸入值c。映射X和Y可以實(shí)現(xiàn)為可存儲(chǔ)在存儲(chǔ)器中的 查找表,但是,當(dāng)它們存儲(chǔ)在存儲(chǔ)器中時(shí),所述值可能被攻擊者讀取。 示圖320示出了所述查找表的內(nèi)容可以如何通過使用輸入編碼F和輸 出編碼H來混淆。如圖所示,存儲(chǔ)了對(duì)應(yīng)于I。廣'和/Z。r的查找表而不 是X和Y,這使得提取X和Y更加困難。圖示330示出了如何添加附加 的、例如隨機(jī)雙射函數(shù)G,使得這兩個(gè)表格的中間結(jié)果也被編碼。在這 種情況下,將兩個(gè)表格存儲(chǔ)在存儲(chǔ)器中Z' = G。x。F-+r = //。y。G'。
      這再次示于圖示340中
      r '。 x' = (〃 。 r 。 g-') 。 (g 。 ;r 。廠')=// 。 (r 。義)。F-1
      其中,。表示通常的函數(shù)組合(即按照定義,對(duì)于任何兩個(gè)函數(shù)f (X) 和g(x), /°gW = /(g"))), X和Y為適合借助于查找表實(shí)現(xiàn)的函數(shù)。
      類似地,可以對(duì)包括多于兩個(gè)函數(shù)的網(wǎng)絡(luò)進(jìn)行編碼。編碼X和Y的實(shí) 際表格通過在單個(gè)查找表中結(jié)合^。r。G-'以及在單個(gè)查找表中結(jié)合
      g。u'來混淆。只要F、 G和/或H保持未知,那么攻擊者就不能從這 些查找表中提取有關(guān)X和/或Y的信息,并且因此攻擊者不能提取作為 X和/或Y的基礎(chǔ)的密鑰。其他密碼算法也可以實(shí)現(xiàn)為可以以與上面相 似的方式混淆的查找表(級(jí)聯(lián)或網(wǎng)絡(luò))。本發(fā)明不限于所述的示例性密碼算法。
      使用這樣的表格的優(yōu)點(diǎn)在于,模塊150執(zhí)行的函數(shù)的重要部分實(shí)
      W、工7皮衣不風(fēng)雙誠;伴15^T'l百ZAi 「衣TTT風(fēng),、雙。叫jFCi,,"什仁/<^吵
      數(shù)量的參數(shù),從而允許徹底地檢查執(zhí)行環(huán)境158。應(yīng)當(dāng)理解,如果使用
      更少的參數(shù),該方法仍然起作用。因此,使用這樣的映射表不是需要 的,但是如果使用了這些映射表,則是一個(gè)優(yōu)勢。
      通常情況下,程序模塊150將被設(shè)計(jì)成使用特定的預(yù)定參數(shù)值。 依照本發(fā)明,這些參數(shù)至少部分地從執(zhí)行環(huán)境158導(dǎo)出。如果沒有預(yù) 防措施,那么所述模塊使用這樣的導(dǎo)出參數(shù)可能不會(huì)正確操作。該模 塊可以容易地被設(shè)計(jì)成使得它仍然產(chǎn)生希望的輸出。例如,如果該模 塊被設(shè)計(jì)成使用參數(shù)(例如常數(shù))z1}并且算法200基于執(zhí)行環(huán)境158 的正確版本產(chǎn)生值z2,那么模塊150可以被設(shè)計(jì)成使得它使用參數(shù)z3 XOR z2 (式中XOR為逐比特異或),其中Z3作為常數(shù)加載到參數(shù)154 中并且已經(jīng)被預(yù)先計(jì)算為z! XOR z2。然后,該模塊將計(jì)算z3 XOR z2 并且如果所述執(zhí)行環(huán)境未被篡改,那么算法200將產(chǎn)生Z2的原始值。 由于Z3被預(yù)先計(jì)算為z! XOR z2,因而該模塊計(jì)算z3 XOR z2=( z!XOR z2) XOR z2=zl。通過這種方式,實(shí)現(xiàn)了某種形式的補(bǔ)償,從而一方面模塊 150在執(zhí)行期間有效地使用了原始參數(shù)(例如zJ ,另一方面可以在表
      示成參數(shù)(例如Z2)的同時(shí)檢驗(yàn)其他部分。在這個(gè)實(shí)例中,參數(shù)Z3純
      粹用作補(bǔ)償。
      特別地,如果使用了經(jīng)混淆表網(wǎng)絡(luò)的更高級(jí)技術(shù),那么在仍然使 用正確的參數(shù)組的同時(shí)必須檢查從例如執(zhí)行環(huán)境158導(dǎo)出的參數(shù)進(jìn)行 補(bǔ)償方面實(shí)現(xiàn)了更大的自由度。例如,在一個(gè)實(shí)施例中,模塊150和/ 或執(zhí)行環(huán)境158的部分可以通過使用映射表、特別是查找表網(wǎng)絡(luò)來部 分地實(shí)現(xiàn)。
      在一個(gè)實(shí)施例中,可以通過使用輸出和/或輸入編碼來混淆這些查 找表。例如,所述查找表網(wǎng)絡(luò)中的第一查找表f (L(x))具有輸出編碼f。 所述查找表網(wǎng)絡(luò)中的第二查找表t2(f—、x))具有輸入解碼f—\該輸入 解碼f具有反轉(zhuǎn)所述輸出編碼的效果,例如t2( f —、f (ti(X))))= "(tjx))。其特殊特征在于,可以選擇這些解碼f和廠1,以使得預(yù)定 字包含在第一查找表f (L(x))或者第二查找表t2( f—、x))中。令例如 L(x。)-y。。為了將字w包含在查找表中,可以將f選擇為使得f (y。)=
      15w,這是因?yàn)樵谶@種情況下f (t:(x)) = f (y。) == w。這將w置于第一查 找表中的位置x。處。為了進(jìn)行補(bǔ)償,這樣選擇廠'以使得"(w) = y。。 這個(gè)特征可以用來檢驗(yàn)所述執(zhí)行環(huán)境。例如,令表格t!和"代表 模塊150的原始(未公開的)表格。令算法200對(duì)執(zhí)行環(huán)境158的處 理給出值w。于是,可用確定混淆的第一和第二表格f(L(x)和 t2(f'(x))。代替完全地提供這樣的表格作為參數(shù)154的是,可以在第 一表格中省略字w。算法200必須基于實(shí)際的執(zhí)行環(huán)境158來產(chǎn)生字w 并且將它插入到第一查找表中的適當(dāng)位置處。只有在正確的字w插入 到該表格中的正確位置處的情況下,經(jīng)混淆表格的組合才會(huì)產(chǎn)生與原 始表格t,和t2的組合相同的輸出。在這個(gè)實(shí)例中,通過使用所述執(zhí)行 環(huán)境的知識(shí)來混淆模塊150的表格(更一般地,參數(shù))。這樣,檢驗(yàn) 了所述執(zhí)行環(huán)境。如果所述執(zhí)行環(huán)境正確,那么該混淆的模塊將正確
      地執(zhí)行。與上面給出的Zh Z2和Z3的實(shí)例相比,Z2可以被視為字W。通
      過使用表格網(wǎng)絡(luò),補(bǔ)償Z3不需要附加的參數(shù),而是可以被并入到其他 表格之一中。
      皇家飛利浦電子乂^司的W0 2006/046187和WO 2005/060147 ^>開 了若干種混淆表格網(wǎng)絡(luò)的方法。在WO 2006/046187中,使用了混淆表 格O和補(bǔ)償表格C。利用表格O混淆至少一個(gè)原始表格,并且利用表格 C混淆其他原始表格中的至少一個(gè)。選擇這種表格O的自由度可以用來 在表格0中表示所述執(zhí)行環(huán)境,并且使用表格0來混淆所述程序模塊 的至少一個(gè)原始表格。接著,所述執(zhí)行環(huán)境也將自動(dòng)地在補(bǔ)償表格C 中被表示。代替完全利用0來完全混淆原始表格以及完全利用C混淆 另一個(gè)的是,這些表格中的一個(gè)或多個(gè)元素可以保持不被修改。例如, 某個(gè)元素可以通過使用O來混淆,而另外的表格中的補(bǔ)償元素不利用C 來得到補(bǔ)償。然后,算法200可以基于實(shí)際的執(zhí)行環(huán)境構(gòu)造表格C的 丟失的補(bǔ)償元素并且在涉及的表格上對(duì)其進(jìn)行X0R,從而在執(zhí)行期間實(shí) 現(xiàn)補(bǔ)償。
      在W0 2005/060147中,置換Pi用于所述混淆。在這里,同樣地 Pi可以從執(zhí)行環(huán)境導(dǎo)出。就沒有實(shí)現(xiàn)混淆表格的整個(gè)網(wǎng)絡(luò)的補(bǔ)償效果 的意義而言,利用P2i和Pmr混淆的表格同樣可以是僅僅"半,,混淆的, (Ph或P2w中的的至少一個(gè)元素)未被使用。然后,所述算法用來基 于實(shí)際執(zhí)行環(huán)境來產(chǎn)生該丟失的補(bǔ)償元素。應(yīng)當(dāng)理解,原則上可以檢驗(yàn)所述執(zhí)行環(huán)境的任何部分。例如,可 以通過直接用作參數(shù)(例如上面提到的字W)來檢驗(yàn)一個(gè)或多個(gè)計(jì)算機(jī) 指令或者部分這些指令。對(duì)于所述執(zhí)行環(huán)境中的數(shù)據(jù)(例如常數(shù),比
      如DVD播放器中使用的區(qū)域代碼)而言同樣如此。算法200可以使用 所述指令/數(shù)據(jù)作為文字拷貝,但是也可以計(jì)算表示。在一個(gè)實(shí)施例中,
      v二砧、L 、, A^" , L' 1L > - ld_ ,i ,\ 、 et nn f,l 、丄血
      l及異汰TT并尸/[ 3^^K^丁^I、,兄BV 、 "^1、力-乂取7曙J , rrn疋/tg》及ixy'j tf 77々、雙
      的基礎(chǔ)。例如,該散列可以形成字W。任何適當(dāng)?shù)纳⒘卸伎梢约右允褂谩?在依照本發(fā)明的一個(gè)實(shí)施例中,只有在所述多個(gè)參數(shù)滿足預(yù)定準(zhǔn) 則的情況下才執(zhí)行所述計(jì)算機(jī)程序模塊??梢赃M(jìn)行簡單的測試,例如
      在參數(shù)154上計(jì)算散列并且檢查這是否給出曾經(jīng)基于正確的參數(shù)組預(yù) 先計(jì)算的希望值。如果測試表明該參數(shù)組不正確,那么可以警告用戶。 也可以單獨(dú)地測試所述參數(shù)的單獨(dú)部分,例如部分210、 212和214。 通過這種方式,可以向用戶給出有關(guān)哪個(gè)部分不再正確的詳細(xì)信息。 這種預(yù)測試主要用作向用戶警告模塊150的輸出將很可能不正確。這 樣,仍然可以執(zhí)行所述模塊。實(shí)際上,如果惡意方移除該測試的話, 則這不是問題,這是因?yàn)閷?shí)際的檢驗(yàn)作為模塊150的正確輸出156而 獲得。標(biāo)準(zhǔn)的混淆技術(shù)可以用來使得黑客發(fā)現(xiàn)并且移除所述測試更加 困難。
      在一個(gè)實(shí)施例中,替換或者附加于顯式地檢驗(yàn)所述參數(shù)組的是, 使用所述多個(gè)參數(shù)154在預(yù)定數(shù)字輸入數(shù)據(jù)152上執(zhí)行計(jì)算機(jī)程序模 塊150的至少一部分的試運(yùn)行,并且檢驗(yàn)該試運(yùn)行的輸出156是否滿 足預(yù)定的準(zhǔn)則。該準(zhǔn)則可以僅僅是該試運(yùn)行給出了已經(jīng)通過使用在原 始執(zhí)行環(huán)境158中利用原始算法200執(zhí)行的原始模塊150實(shí)現(xiàn)的輸出, 并且以后在測試期間將使用相同的預(yù)定數(shù)字輸入數(shù)據(jù)。此外,所述測 試本身可以通過使用常規(guī)的技術(shù)來混淆。在一個(gè)實(shí)施例中,從諸如服 務(wù)器174之類的服務(wù)器處接收作為挑戰(zhàn)的預(yù)定數(shù)字輸入數(shù)據(jù)。將所述 運(yùn)行的輸出提供給該服務(wù)器,以使得該服務(wù)器能夠執(zhí)行所述檢驗(yàn)。例 如,銀行可能在例如通過提供更多的數(shù)據(jù)和/或軟件來繼續(xù)之前按照這 種方式首先來檢查系統(tǒng)是否仍然安全。于是,不必(但是也可以附加 地)在裝置110中進(jìn)行該檢驗(yàn)。
      在一個(gè)實(shí)施例中,所述預(yù)定算法200通過使用用于將所述執(zhí)行環(huán)境 158的表示轉(zhuǎn)換成至少一個(gè)參數(shù)154的計(jì)算機(jī)可執(zhí)行指令來實(shí)現(xiàn)。通過
      17這種方式,算法200可以實(shí)現(xiàn)復(fù)雜的操作以便混淆執(zhí)行環(huán)境158如何以 參數(shù)154表示。例如,算法200可以包括加擾、加密、壓縮和/或散列操 作。該算法本身可以通過使用任何適當(dāng)?shù)募夹g(shù)(如Chow l和/或Chow 2 中公開的白盒技術(shù))而被混淆。在一個(gè)實(shí)施例中,該算法結(jié)合模塊150 一起提供。因此,該算法也可以是模塊150的一部分。例如,它可以形 成模塊150的初始化例程的一部分,該部分建立模塊150的至少一些參 數(shù)。應(yīng)當(dāng)理解,算法200也可以非常簡單。例如,該算法可以是模塊l50 中提供的一組指針,其指向執(zhí)行模塊158中要用作(例如被拷貝為)模 塊150的參數(shù)的數(shù)據(jù)或指令。可以使用任何適當(dāng)形式的指針,例如絕對(duì) 值或相對(duì)值。這種選擇應(yīng)當(dāng)落入本領(lǐng)域技術(shù)人員的能力之內(nèi)。因此, 在一個(gè)實(shí)施例中,預(yù)定算法200使得所述執(zhí)行環(huán)境的至少一個(gè)數(shù)據(jù)元素 用作所述多個(gè)參數(shù)的一個(gè)或多個(gè)或部分。應(yīng)當(dāng)理解,算法200可以以硬 件而不是軟件來實(shí)現(xiàn)。
      在本發(fā)明的一個(gè)方面中,執(zhí)行模塊158和/或模塊150的計(jì)算機(jī)可讀 指令與參數(shù)154相聯(lián)合。這意味著存儲(chǔ)器130中的某些比特位置充當(dāng)用 于模塊150的參數(shù)以及由處理器120執(zhí)行的(執(zhí)行環(huán)境158或模塊150的) 指令。
      在一個(gè)實(shí)施例中,已經(jīng)出現(xiàn)了參數(shù)210和執(zhí)行環(huán)境158之間的聯(lián)合。 所述多個(gè)參數(shù)210的比特表示的一部分等于執(zhí)行環(huán)境158的計(jì)算機(jī)可執(zhí)
      行指令的比特表示的至少一部分。這意味著所述執(zhí)行環(huán)境的這些指令 從存儲(chǔ)器130中的存儲(chǔ)位置處加載以用于執(zhí)行,該存儲(chǔ)位置與由模塊 150的指令使用來從中獲取參數(shù)的存儲(chǔ)位置相同。應(yīng)當(dāng)理解,所述執(zhí)行 環(huán)境的一個(gè)或多個(gè)完整的指令通過這種方式也可以用作參數(shù)。如果這 樣希望的話,那么同樣只有所述執(zhí)行指令的部分(例如操作碼字段、 最重要字節(jié)等等)可以與這些參數(shù)相聯(lián)合。
      在一個(gè)實(shí)施例中,已經(jīng)出現(xiàn)了參數(shù)212與模塊150之間的聯(lián)合。所 述多個(gè)參數(shù)212的比特表示的一部分等于計(jì)算機(jī)程序模塊150的計(jì)算機(jī) 可執(zhí)行指令的比特表示的至少一部分。這些指令被布置用于在這些指
      令的執(zhí)行期間使用保持這些指令的比特表示的所述部分的至少一個(gè)存 儲(chǔ)地址,以便也用于通過引用讀取所述參數(shù)的比特表示的相等部分。 因此,存在從某個(gè)存儲(chǔ)位置加載的模塊150的至少一個(gè)指令,模塊150 中另一個(gè)指令從該特定存儲(chǔ)位置獲取參數(shù)。當(dāng)然,代替加載整個(gè)指令或參數(shù)的是,相同的原理也適用于其部分。
      在一個(gè)實(shí)施例中,所述多個(gè)數(shù)字參數(shù)包括以下至少之一的表示 -密碼數(shù)據(jù),例如密碼密鑰和/或密碼算法; -數(shù)字內(nèi)容編碼/解碼數(shù)據(jù),例如編碼表和/或編碼算法; -數(shù)字內(nèi)容加擾/解擾數(shù)據(jù),例如加擾表和/或加擾算法。 在另一個(gè)實(shí)施例中,數(shù)字輸入數(shù)據(jù)152為在內(nèi)容特定的密鑰的控制 下經(jīng)過加密、編碼和/或加擾的數(shù)字內(nèi)容,例如音頻/視頻。于是,模 塊150使得處理器120將該數(shù)字輸入數(shù)據(jù)轉(zhuǎn)換成其中該數(shù)據(jù)可以呈現(xiàn)給 用戶或者可以進(jìn)一步加以處理的明文形式(或者至少部分轉(zhuǎn)換的形 式)。為此目的,所述方法包括接收分別用于控制解密、解碼和/或解 擾的內(nèi)容特定密鑰的表示。例如,如果所述內(nèi)容經(jīng)過了加密,那么裝
      置110接收解密密鑰。它可以以任何方式來接收,例如從存儲(chǔ)器160讀 取或者通過互聯(lián)網(wǎng)172從服務(wù)器174處接收該密鑰。然后,算法200用來
      之一的至少一部分。例如,該內(nèi)容特定的密鑰可以僅僅用作參數(shù)部分 214。
      在一個(gè)實(shí)施例中,例如以如上所述的方式,以包括混淆查找表網(wǎng) 絡(luò)的形式提供內(nèi)容特定的密鑰和/或內(nèi)容特定的解密算法。如那里所表 示的,所述混淆給出了選擇表格中的常數(shù)的一定自由度。在上面給出 了一個(gè)實(shí)例,其中從執(zhí)行環(huán)境158導(dǎo)出的字w可以在另一個(gè)混淆的表格 中(以及因而在模塊150的另一個(gè)參數(shù)中)得到補(bǔ)償。在一個(gè)實(shí)施例中, 從執(zhí)行環(huán)境158導(dǎo)出的參數(shù)(例如字w)在內(nèi)容特定的解密密鑰/算法220 的混淆實(shí)現(xiàn)中得到補(bǔ)償。然后,算法200被布置成將從執(zhí)行環(huán)境158導(dǎo) 出的參數(shù)(例如字w)加栽到正確混淆表中的正確位置。于是,用作參 數(shù)154的經(jīng)混淆表網(wǎng)絡(luò)彼此補(bǔ)償并且執(zhí)行原始預(yù)定的映射。這樣,利用 從所述執(zhí)行環(huán)境導(dǎo)出的信息混淆了所述內(nèi)容特定的解密。只有所述部 分以未修改的形式存在,才能保證所述解密正確地執(zhí)行。應(yīng)當(dāng)理解, 相同的原理會(huì)同樣適用于內(nèi)容特定的編碼和/或加擾。還應(yīng)當(dāng)理解,可 以按照相同的方式利用從模塊150導(dǎo)出的信息(例如從中導(dǎo)出的字w) 混淆內(nèi)容特定的參數(shù)/算法。
      應(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ù)脑泽w,例如電信號(hào)或光學(xué)信號(hào), 其可以通過電纜或光纜或者通過無線電或其他方式來傳送。當(dāng)程序包 含于這種信號(hào)中時(shí),所述載體可以由這種纜線或其他設(shè)備或裝置來構(gòu) 成??商鎿Q地,所述載體可以是其中嵌入了所述程序的集成電路,該 集成電路適于執(zhí)行相關(guān)的方法或者在執(zhí)行相關(guān)的方法中使用。
      應(yīng)當(dāng)指出的是,上述實(shí)施例說明而不是限制了本發(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)詞"包括"及其變體的使用并沒有排 除權(quán)利要求中未列出的元件或步驟的存在。元件之前的冠詞"一"或者 "一個(gè),,并沒有排除多個(gè)這樣的元件的存在。本發(fā)明可以借助于包括 若干不同元件的硬件以及借助于經(jīng)過適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列 舉了若干裝置的設(shè)備權(quán)利要求中,這些裝置中的一些可以由同 一硬件 項(xiàng)來實(shí)現(xiàn)。在相互不同的從屬權(quán)利要求中陳述某些技術(shù)措施這一事實(shí) 并不意味著這些技術(shù)措施的組合不可以加以利用。
      20
      權(quán)利要求
      1. 一種檢驗(yàn)用于執(zhí)行計(jì)算機(jī)程序模塊(150)的執(zhí)行環(huán)境(158)的至少一部分的真實(shí)性的方法,其中所述計(jì)算機(jī)程序模塊可操作來導(dǎo)致根據(jù)多個(gè)預(yù)定數(shù)字參數(shù)(154)來處理數(shù)字輸入數(shù)據(jù)(152);該方法包括使用預(yù)定算法(200)從所述執(zhí)行環(huán)境的所述至少一部分中導(dǎo)出所述多個(gè)預(yù)定數(shù)字參數(shù)之一的至少一部分。
      2. 如權(quán)利要求l所述的方法,包括只有在所述多個(gè)參數(shù)滿足預(yù)定 準(zhǔn)則的情況下,才執(zhí)行所述計(jì)算機(jī)程序模塊。
      3. 如權(quán)利要求2所述的方法,包括通過使用所述多個(gè)參數(shù)在預(yù)定 數(shù)字輸入數(shù)據(jù)上執(zhí)行所述計(jì)算機(jī)程序模塊的至少一部分的至少一次運(yùn) 行、并且檢驗(yàn)該運(yùn)行的輸出是否滿足某個(gè)預(yù)定的準(zhǔn)則,來檢驗(yàn)所述多 個(gè)參數(shù)是否滿足所述預(yù)定準(zhǔn)則
      4. 如權(quán)利要求3所述的方法,包括從服務(wù)器處接收作為挑戰(zhàn)的所 述預(yù)定數(shù)字輸入數(shù)據(jù);并且將所述運(yùn)行的輸出提供給該服務(wù)器,使得 該服務(wù)器能夠執(zhí)行所述檢驗(yàn)。
      5. 如權(quán)利要求l所述的方法,其中所述預(yù)定算法通過使用用于將 所述執(zhí)行環(huán)境的表示轉(zhuǎn)換成所述至少一個(gè)參數(shù)的計(jì)算機(jī)可執(zhí)行指令來 實(shí)現(xiàn)。
      6. 如權(quán)利要求l所述的方法,其中所述多個(gè)參數(shù)的比特表示的一 部分等于所述執(zhí)行環(huán)境的計(jì)算機(jī)可執(zhí)行指令的比特表示的至少一部 分;并且其中所述計(jì)算機(jī)程序模塊的指令被布置用于,在執(zhí)行期間使 用保持所述執(zhí)行環(huán)境的指令的比特表示的所述部分的至少一個(gè)存儲(chǔ)地 址以便也用于通過引用讀取所述參數(shù)的比特表示的相等部分。
      7. 如權(quán)利要求l所述的方法,其中所述多個(gè)參數(shù)的比特表示的一 部分等于所述計(jì)算機(jī)程序模塊的計(jì)算機(jī)可執(zhí)行指令的比特表示的至少 一部分;并且其中這些指令被布置用于,在這些指令的執(zhí)行期間使用 保持這些指令的比特表示的所述部分的至少一個(gè)存儲(chǔ)地址以便也用于 通過引用讀取所述參數(shù)的比特表示的相等部分。
      8. 如權(quán)利要求l所述的方法,其中所述預(yù)定算法導(dǎo)致所述執(zhí)行環(huán) 境的至少一個(gè)數(shù)據(jù)元素用作所述多個(gè)參數(shù)的一個(gè)或多個(gè)或部分。
      9. 如權(quán)利要求l所述的方法,其中所述多個(gè)數(shù)字參數(shù)包括以下至少之一的表示-密碼數(shù)據(jù),例如密碼密鑰和/或密碼算法;-數(shù)字內(nèi)容編碼/解碼數(shù)據(jù),例如編碼表和/或編碼算法;-數(shù)字內(nèi)容加擾/解擾數(shù)據(jù),例如加擾表和/或加擾算法。
      10. 如權(quán)利要求8所述的方法,其中所述數(shù)字輸入數(shù)據(jù)為在內(nèi)容特 定的密鑰的控制下經(jīng)過加密、編碼和/或加擾的數(shù)字內(nèi)容;所述方法包 括接收分別用于控制解密、解碼和/或解擾的內(nèi)容特定的密鑰的表示, 并且從所接收的內(nèi)容特定的密鑰的表示導(dǎo)出所述多個(gè)預(yù)定數(shù)字參數(shù)之 一的至少一部分。
      11. 如權(quán)利要求8所述的方法,其中所述數(shù)字參數(shù)的導(dǎo)出部分包括 經(jīng)混淆的查找表的網(wǎng)絡(luò),其中已經(jīng)根據(jù)所述執(zhí)行環(huán)境的所述至少一部 分混淆了至少一個(gè)表格,并且所述算法被布置成從所述執(zhí)行環(huán)境的所 述至少一部分中導(dǎo)出至少一個(gè)補(bǔ)償元素并且將所述至少一個(gè)補(bǔ)償元素 插入到經(jīng)混淆的查找表的另一個(gè)中,以使得所述經(jīng)混淆的查找表網(wǎng)絡(luò) 在功能上等價(jià)于所述查找表網(wǎng)絡(luò)。
      12. —種檢驗(yàn)用于執(zhí)行計(jì)算機(jī)程序模塊(150)的執(zhí)行環(huán)境(158) 的至少一部分的真實(shí)性的系統(tǒng)(100);該系統(tǒng)包括處理器(120)和 用于存儲(chǔ)所述計(jì)算機(jī)程序模塊以及所述執(zhí)行環(huán)境的存儲(chǔ)器U40),其 中所述計(jì)算機(jī)程序模塊可操作來導(dǎo)致所述處理器根據(jù)多個(gè)預(yù)定數(shù)字參 數(shù)(154)來處理數(shù)字輸入數(shù)據(jù)(152);并且其中該系統(tǒng)包括裝置(200 ), 該裝置用于從所述執(zhí)行環(huán)境的所述至少一部分中導(dǎo)出所述多個(gè)預(yù)定數(shù) 字參數(shù)之一的至少一部分。
      13. —種計(jì)算機(jī)程序產(chǎn)品,用于導(dǎo)致處理器執(zhí)行依照權(quán)利要求l的 方法。
      全文摘要
      一種保護(hù)數(shù)字處理系統(tǒng)的完整性的方法。該方法包括確定待保護(hù)的數(shù)據(jù)串,該數(shù)據(jù)串的完整性指示所述數(shù)據(jù)處理系統(tǒng)的完整性。計(jì)算代表預(yù)定數(shù)據(jù)處理功能的一組參數(shù),使用該組參數(shù)中的冗余性來將所述數(shù)據(jù)串并入到該組參數(shù)的比特表示中。允許所述系統(tǒng)依照該組參數(shù)來處理數(shù)據(jù)。該組參數(shù)代表包括密碼密鑰的密碼算法的至少一部分。該組參數(shù)代表查找表網(wǎng)絡(luò)。該查找表網(wǎng)絡(luò)包括數(shù)據(jù)處理算法的白盒實(shí)現(xiàn)方式的多個(gè)查找表。所述數(shù)據(jù)處理算法包括密碼算法。
      文檔編號(hào)G06F21/57GK101491000SQ200780026216
      公開日2009年7月22日 申請(qǐng)日期2007年7月4日 優(yōu)先權(quán)日2006年7月12日
      發(fā)明者P·M·H·M·A·戈里森, W·P·A·J·米奇爾斯 申請(qǐng)人:皇家飛利浦電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1