国产精品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):7675674閱讀:149來源:國(guó)知局
      專利名稱:用于使密碼函數(shù)模糊的方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及保護(hù)數(shù)據(jù)處理系統(tǒng)的完整性。
      技術(shù)背景因特網(wǎng)使用戶可以方便和隨時(shí)隨地地接入數(shù)字內(nèi)容。由于因特網(wǎng)作為強(qiáng)大的發(fā)布通道的潛力,許多消費(fèi)者電子(CE)產(chǎn)品爭(zhēng)取直接接 入因特網(wǎng)或與PC平臺(tái)(因特網(wǎng)的主要入口 )互操作。CE產(chǎn)品包括但 不局限于數(shù)字機(jī)頂盒、數(shù)字電視機(jī)、游戲控制臺(tái)、PC并且日益增加 地,包括諸如PDA、移動(dòng)電話機(jī)、移動(dòng)存儲(chǔ)器和諸如Apple的iPod 的再現(xiàn)設(shè)備之類的手持設(shè)備。使用因特網(wǎng)作為受版權(quán)保護(hù)的內(nèi)容的發(fā) 布媒介產(chǎn)生了保護(hù)內(nèi)容提供者利益的強(qiáng)制性的挑戰(zhàn)。特別是需要保證 內(nèi)容提供者的版權(quán)和商業(yè)模式。日益增加地,使用加載適當(dāng)?shù)能浖?處理器操作CE平臺(tái)。這種軟件可以包括用于再現(xiàn)(重放)諸如音頻 和/或視頻的數(shù)字內(nèi)容的功能的主要部分。重放軟件的控制是實(shí)施內(nèi)容 所有者的利益的一種方式,包括內(nèi)容可以被使用的條款以及條件。在 傳統(tǒng)上許多CE平臺(tái)(PC和PDA除外)過去常常是封閉的情況下, 現(xiàn)在越來越多的平臺(tái)至少部分地開放。特別是對(duì)于PC平臺(tái),部分用 戶可以被假設(shè)對(duì)提供內(nèi)容接入的硬件和軟件具有完全的控制并且具 有大量的時(shí)間和資源攻擊和繞過任何內(nèi)容保護(hù)機(jī)制。結(jié)果,內(nèi)容提供 者必須在對(duì)社團(tuán)敵意的網(wǎng)絡(luò)上傳送內(nèi)容給合法的用戶,在社團(tuán)中不是 所有的用戶和設(shè)備能夠被信任。典型地,數(shù)字權(quán)利管理系統(tǒng)使用基于塊密碼的加密技術(shù),該技術(shù) 使用一系列加密/解密步驟(^皮稱為回合(round))按照塊來處理數(shù) 據(jù)流。在每一回合期間,執(zhí)行回合特定的函數(shù)。該回合特定的函數(shù)可 以基于在回合特定的子密鑰控制下執(zhí)行的相同的回合函數(shù)。對(duì)于許多 加密系統(tǒng),能夠使用映射表或查詢表來指定回合函數(shù)。即使不使用明 確的表,無論如何為了在加密/解密函數(shù)的軟件中有效的執(zhí)行,表被頻 繁地使用用于函數(shù)的不同部分。計(jì)算機(jī)代碼存取或組合表值到函數(shù)的 范圍值中。取代發(fā)布密鑰,它可以是用戶特定的,發(fā)布用戶特定的算
      法而不是用于加密或解密算法的密鑰變得更加有興趣。這些算法,絕大多數(shù)經(jīng)常是函數(shù)(映射),必須是模糊的(obfuscate)(隱藏的)以便防止重新設(shè)計(jì)或禁止重新計(jì)算類似密鑰的元素。在計(jì)算機(jī)上,被伴 隨某種計(jì)算機(jī)代碼的表通常表示這些函數(shù)。內(nèi)容提供者必須在對(duì)社團(tuán)敵意的網(wǎng)絡(luò)上傳送內(nèi)容到合法用戶,在社團(tuán)中不是所有的用戶或設(shè)備能夠被信任。特別是對(duì)于PC平臺(tái),用戶必須被假設(shè)為對(duì)提供內(nèi)容接入的硬件和軟件具有完全的控制并且 具有不受限制的時(shí)間和資源攻擊和繞過任何內(nèi)容保護(hù)機(jī)制。實(shí)施內(nèi)容可以被使用的條款和條件的軟件代碼必須不被篡改。用于被發(fā)布到P c 的受保護(hù)內(nèi)容的數(shù)字權(quán)利管理的 一 般方法是加密數(shù)字內(nèi)容,例如DE S (數(shù)據(jù)加密標(biāo)準(zhǔn))、AES (高級(jí)加密標(biāo)準(zhǔn))、或使用在W09967918 中公開的方法,以及使用解密密鑰。依賴于加密的數(shù)字權(quán)利管理的脆弱性的兩個(gè)主要方面是實(shí)施內(nèi) 容可以被使用的條款和條件的軟件插件,以及密鑰發(fā)布和處理。典型地,插件實(shí)施內(nèi)容將被使用的條款和條件。意圖刪除這些條 款和條件的攻擊者可以試圖通過篡改包括在軟件插件中的程序代碼 實(shí)現(xiàn)它。在涉及密鑰處理時(shí),為了重放媒體播放器必須從許可數(shù)據(jù)庫(kù)檢索 解密密鑰。然后它必須在存儲(chǔ)器中的某個(gè)地方存儲(chǔ)該解密密鑰用于加 密內(nèi)容的解密。這留給攻擊者對(duì)密鑰進(jìn)行攻擊的兩個(gè)選擇。首先,許 可數(shù)據(jù)庫(kù)訪問函數(shù)的反向工程能夠產(chǎn)生黑盒子軟件(即攻擊者不必明白軟件函數(shù)的內(nèi)部工作方式),這允許攻擊者從所有許可數(shù)據(jù)庫(kù)檢索 有用的密鑰。其次,通過在內(nèi)容解密期間觀測(cè)存儲(chǔ)器的存取,有可能 檢索有用的密鑰。在兩種情況下密鑰被認(rèn)為是將被泄漏。在下文中, 描述通常如何可以防止軟件被篡改。防篡改軟件之所以這樣稱謂是因?yàn)橛心康牡拇鄹能浖菑?fù)雜的。 存在增強(qiáng)軟件應(yīng)用的防篡改的各種技術(shù)。絕大多數(shù)這些技術(shù)基于通過 在軟件應(yīng)用的控制和數(shù)據(jù)通道中增加隨機(jī)性和復(fù)雜性的遮蔽來隱藏 應(yīng)用的嵌入知識(shí)。其后面的構(gòu)思是它變得更加難以僅僅通過代碼檢查 提取信息。所以更加難以找到代碼,例如,處理應(yīng)用的訪問和許可控 制的代碼,并因此將難以改變它。Stanley Chow , Philip Eisen , Harold Johnson , 和 Paul C.VanOorschot的 "White-Box Cryptography and an AES Implementation", Selected Areas in Cryptography: 9th Annual International Workshop, SAC 2002, St. John's, Newfoundland, Canada, August 15-16, 2002 年,下稱為"Chow 1",以及Stanley Chow, Phil Eisen, Harold Johnson, 和Paul C. van Oorschot的"A White-Box DES Implementation for DRM Applications" , Digital Rights Management: ACM CCS-9 Workshop, DRM 2002, Washington, DC, USA, November 18, 2002年,下稱為 "Chow 2",它們公開了這樣的方法,其目的是通過利用表示組成而不 是個(gè)別步驟的隨機(jī)雙射(bijection)編碼它的表格,以及通過將它推出進(jìn) 一步到包含的應(yīng)用擴(kuò)展密碼邊界的組合來隱藏密鑰。發(fā)明內(nèi)容將會(huì)有利的是具有保護(hù)數(shù)據(jù)處理系統(tǒng)完整性的改進(jìn)的方法。為了 更好解決這個(gè)問題,在本發(fā)明的第一方面中提出了一種方法,包括-確定將被保護(hù)的數(shù)據(jù)串,數(shù)據(jù)串的完整性是數(shù)據(jù)處理系統(tǒng)的完 整性的指示;-計(jì)算至少部分表示預(yù)定數(shù)據(jù)處理函數(shù)的一組參數(shù),使用該組參 數(shù)中的冗余將數(shù)據(jù)串并入所述組參數(shù)的比特表示中;-使得系統(tǒng)能夠根據(jù)所述組參數(shù)處理數(shù)據(jù),其中在所述組參數(shù)的 比特表示中數(shù)據(jù)串的改變使得系統(tǒng)失去根據(jù)數(shù)據(jù)處理函數(shù)處理數(shù)據(jù) 的能力。由于數(shù)據(jù)串被并入計(jì)算的所述組參數(shù)的比特表示中,對(duì)于數(shù)據(jù)串 的改變意味著對(duì)于所述組參數(shù)的改變。當(dāng)所述組參數(shù)表示數(shù)據(jù)處理函 數(shù)時(shí),改變所述組參數(shù)意味著改變數(shù)據(jù)處理函數(shù)。所以,改變數(shù)據(jù)串 導(dǎo)致改變通過所述組參數(shù)定義的數(shù)據(jù)處理函數(shù)。當(dāng)相對(duì)難以在不改變 數(shù)據(jù)處理函數(shù)的條件下改變數(shù)據(jù)串時(shí),數(shù)據(jù)處理系統(tǒng)的完整性被保 護(hù)。因此如果數(shù)據(jù)串已經(jīng)改變,則避免數(shù)據(jù)處理根據(jù)預(yù)定的算法發(fā)生。所述數(shù)據(jù)串能夠是系統(tǒng)的 一部分或者能夠被單獨(dú)地提供給系統(tǒng)。 所述數(shù)據(jù)串和預(yù)定的數(shù)據(jù)處理函數(shù)優(yōu)選是相互獨(dú)立的。數(shù)據(jù)處理函數(shù) 例如通過具有特定密鑰的密碼算法定義。數(shù)據(jù)處理函數(shù)的標(biāo)識(shí)能夠通 過偽隨機(jī)過程的方式。數(shù)據(jù)處理函數(shù)可以是完全定義的密碼算法,例 如具有特定密鑰的解密算法。但是,數(shù)據(jù)處理函數(shù)可以是任何數(shù)據(jù)處理函數(shù),例如圖像增強(qiáng)函數(shù)。在一個(gè)實(shí)施例中,所述組參數(shù)表示至少部分包括密鑰的密碼算 法。該組參數(shù)定義密鑰。密碼算法的實(shí)例包括解密算法、加密算法、 和加水印算法。在一個(gè)實(shí)施例中,所述組參數(shù)表示查詢表的網(wǎng)絡(luò)。這樣一組參數(shù) 本質(zhì)上包括許多冗余,并且有可能通過增加查詢表到網(wǎng)絡(luò)來增加冗 余。因此相對(duì)容易計(jì)算一組參數(shù),其中所述計(jì)算的該組參數(shù)的比特表 示包括將被保護(hù)的數(shù)據(jù)串。在一個(gè)實(shí)施例中,查詢表的網(wǎng)絡(luò)包括數(shù)據(jù)處理算法的白盒子實(shí)現(xiàn) 的多個(gè)查詢表。數(shù)據(jù)處理算法的白盒子實(shí)現(xiàn)所具有的特性是它們隱藏 數(shù)據(jù)處理算法的部分內(nèi)部工作,這使得更加難以修復(fù)由于改變被保護(hù) 串所引起的任何缺陷。在一個(gè)實(shí)施例中,所述數(shù)據(jù)處理算法是密碼算法。密碼算法是希 望改變軟件和硬件系統(tǒng)以便處理(通常解密)攻擊者不被授權(quán)的數(shù)據(jù) 的攻擊者的共同目標(biāo)。通過使得更加難以篡改數(shù)據(jù)串能夠保護(hù)這些算 法。一個(gè)實(shí)施例包括-給系統(tǒng)提供除了要被保護(hù)的數(shù)據(jù)串之外的所述組參數(shù);和 -使得系統(tǒng)能夠從系統(tǒng)的執(zhí)行環(huán)境獲得該數(shù)據(jù)串。 該實(shí)施例允許保護(hù)系統(tǒng)的執(zhí)行環(huán)境,因?yàn)槿绻麍?zhí)行環(huán)境中的數(shù)據(jù) 串沒有被篡改,那么所述數(shù)據(jù)處理才將是成功的。 一個(gè)實(shí)施例包括-給系統(tǒng)提供除了要被保護(hù)的數(shù)據(jù)串之外的所述組參數(shù);和 -使得系統(tǒng)能夠通過質(zhì)詢/響應(yīng)協(xié)議獲得數(shù)據(jù)串。 該實(shí)施例允許經(jīng)由質(zhì)詢/響應(yīng)協(xié)議保護(hù)系統(tǒng)。在這種協(xié)議中,系統(tǒng)對(duì)另一個(gè)單元提出質(zhì)詢,以及接收響應(yīng)作為回答。該實(shí)施例允許響應(yīng)是預(yù)定的串。一個(gè)實(shí)施例包括使得所述系統(tǒng)能夠從成為系統(tǒng)一部分的計(jì)算機(jī) 可執(zhí)行代碼中推導(dǎo)數(shù)據(jù)串。這是使得篡改計(jì)算機(jī)可執(zhí)行代碼更加困難 的一種方式代碼的改變意味著所述組參數(shù)的改變,反之亦然。在一個(gè)實(shí)施例中,計(jì)算機(jī)可執(zhí)行代碼包括用于確立系統(tǒng)的可靠性 或?qū)嵤┰S可控制的指令集的至少一部分。指令集的這些部分在數(shù)字權(quán)
      利管理中特別地重要。例如,將被保護(hù)的數(shù)據(jù)串包括至少以下之一的表示 -硬件標(biāo)識(shí)符, _將被處理的內(nèi)容的一部分, -計(jì)算機(jī)可執(zhí)行代碼,-處理器指令, _ 口令,或_系統(tǒng)被安排用于通過質(zhì)詢/響應(yīng)協(xié)議獲得的響應(yīng)。 一個(gè)實(shí)施例包括-計(jì)算表示密鑰的查詢表的網(wǎng)絡(luò);-選擇將被保護(hù)數(shù)據(jù)串的至少一個(gè)字用于包括在至少一個(gè)查詢表中;-通過應(yīng)用到查詢表的元素的變換在至少一個(gè)查詢表中包括所述字;-通過應(yīng)用反轉(zhuǎn)變換效果的補(bǔ)償變換來補(bǔ)償所述變換;以及 -使用變換的查詢表的網(wǎng)絡(luò)作為參數(shù)。在這種情況下,所述數(shù)字處理可以包括根據(jù)密鑰進(jìn)行加密和解 密。該數(shù)字處理還可以包括基于密鑰的認(rèn)證。二者都能夠通過在查詢 表的網(wǎng)絡(luò)中執(zhí)行一 系列的表格查詢來實(shí)現(xiàn),該網(wǎng)絡(luò)被建立用于實(shí)現(xiàn)一 部分密碼算法。所述指令可以被設(shè)計(jì)用于根據(jù)在參數(shù)中提供的表格執(zhí) 行表格查詢??梢詫⒎崔D(zhuǎn)變換效果的補(bǔ)償變換應(yīng)用于經(jīng)由網(wǎng)絡(luò)被連接 到至少一個(gè)查詢表的至少一個(gè)其他查詢表的元素。該補(bǔ)償變換還可以 通過內(nèi)容提供者,或程序被應(yīng)用于數(shù)字?jǐn)?shù)據(jù)。查詢表的網(wǎng)絡(luò)可以例如表示諸如AES或DES的密碼算法的回合。 優(yōu)選地,通過將編碼應(yīng)用于每個(gè)表的輸入和輸出使得查詢表的網(wǎng)絡(luò)模 糊。這些編碼對(duì)查詢表的內(nèi)容具有影響;改變編碼會(huì)以可預(yù)測(cè)的方式 改變表的內(nèi)容。但是,當(dāng)攻擊者僅僅具有指示其輸入和輸出已經(jīng)以相 對(duì)復(fù)雜的方式被編碼的映射的最終查詢表的知識(shí)時(shí),他可能難以解開 編碼。應(yīng)用于查詢表元素的變換能夠通過適當(dāng)?shù)馗淖兙幋a實(shí)現(xiàn)。通過 改變輸出編碼,特定值可以包含在表格中。通過改變輸入編碼,可以 改變例如值在表格中出現(xiàn)的順序。在下文中,輸入編碼還被稱為輸入 解碼,因?yàn)樗梢越獯a前面查詢表的輸出編碼所產(chǎn)生的數(shù)據(jù)的編碼,。
      一個(gè)實(shí)施例包括安排查詢表網(wǎng)絡(luò)中的第 一 查詢表(例如f ( t, ( X))) 的輸出編碼(例如f)和查詢表網(wǎng)絡(luò)中的第二查詢表(例如t2(f乂X))) 的輸入解碼(例如f1 ),輸入解碼反轉(zhuǎn)輸出編碼的效果(例如 t2(f、f(t(X)))) -t^t^X))),從而所選擇的字被包括在以下至少之一 中第一查詢表(例如f(t"X)))和第二查詢表(例如t2(f乂X)))。這 里,括號(hào)中的實(shí)例僅僅指示一個(gè)例子。在詳細(xì)的描述中將提供其他的 實(shí)例。當(dāng)不同表格的編碼被設(shè)計(jì)用于反轉(zhuǎn)相互的效果時(shí),有利地是當(dāng)作 出改變時(shí)考慮相應(yīng)對(duì)中的表格,因此保證查詢表網(wǎng)絡(luò)的輸出保持相同。其中所選擇的字被包括在第一查詢表(例如f(t"h-'(x))))中的實(shí) 施例包括安排查詢表網(wǎng)絡(luò)中的第三查詢表(例如h(t3(x)))的輸出編碼 (例如h )以及第 一查詢表(例如f(t(h-'(x))))的輸入解碼(例如h"), 第一查詢表的輸入解碼反轉(zhuǎn)第三查詢表的輸出編碼的效果(例如f(t,(h-'(h(t3(X)))))二f(t,(t3(X)))),以用于在第一查詢表中定位所述選擇的字。通過改變輸入和輸出編碼能夠以最大自由度來操作查詢表。當(dāng)改 變時(shí)考慮至少三個(gè)查詢表允許改變至少一個(gè)表格的輸入和輸出編碼。 通過改變至少兩個(gè)其他表格的編碼可以補(bǔ)償這些改變。一個(gè)實(shí)施例包括使得所述系統(tǒng)能夠-應(yīng)用網(wǎng)絡(luò)的第一組查詢表于數(shù)字?jǐn)?shù)據(jù)的比特串以獲得第一組 中間結(jié)果;-應(yīng)用網(wǎng)絡(luò)的第二組查詢表于數(shù)字?jǐn)?shù)據(jù)的比特串以獲得第二組 中間結(jié)果,第二組查詢表的比特表示包括將被保護(hù)的數(shù)據(jù)串; -組合第一和第二中間結(jié)果以獲得第三中間結(jié)果;和 -根據(jù)第三中間結(jié)果計(jì)算處理的數(shù)字?jǐn)?shù)據(jù)。例如,組合的步驟可以包括應(yīng)用其它一些查詢表或執(zhí)行XOR運(yùn)^ 一個(gè)實(shí)施例包括用于保護(hù)第二系統(tǒng)的完整性的第一系統(tǒng),第一系 統(tǒng)包括-用于確定將被保護(hù)的數(shù)據(jù)串的串確定器,數(shù)據(jù)串的完整性是第 二系統(tǒng)的完整性的指示;-用于計(jì)算至少部分表示預(yù)定的數(shù)據(jù)處理函數(shù)的一組參數(shù),使用 該組參數(shù)中的冗余將數(shù)據(jù)串并入到該組參數(shù)的比特表示中的參數(shù)確定器;和-用于使得第二系統(tǒng)能夠根據(jù)所述組參數(shù)處理數(shù)據(jù)的裝置,其中 改變所述組參數(shù)的比特表示中的數(shù)據(jù)串使得所述系統(tǒng)失去其根據(jù)數(shù) 據(jù)處理函數(shù)處理數(shù)據(jù)的能力。一個(gè)實(shí)施例包括計(jì)算機(jī)程序產(chǎn)品,該產(chǎn)品包括使得處理器執(zhí)行所 闡述方法的指令。一個(gè)實(shí)施例包括數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括-用于存儲(chǔ)要被保護(hù)數(shù)據(jù)串的存儲(chǔ)器,數(shù)據(jù)串的完整性是數(shù)據(jù)處 理系統(tǒng)的完整性的指示;儲(chǔ)器,使用該組參數(shù)中的冗余所述數(shù)據(jù)串被并入;J該組參數(shù)^比特表 示中;以及-根據(jù)所述組參數(shù)處理數(shù)據(jù)的處理模塊,其中改變?cè)摻M參數(shù)的比 特表示中的數(shù)據(jù)串使得所述系統(tǒng)失去其根據(jù)數(shù)據(jù)處理函數(shù)處理數(shù)據(jù)的能力。一個(gè)實(shí)施例包括計(jì)算機(jī)程序產(chǎn)品,該產(chǎn)品包括使得處理器根據(jù)至 少部分表示數(shù)據(jù)處理函數(shù)的 一 組參數(shù)處理數(shù)據(jù)的指令,將被保護(hù)的數(shù) 據(jù)串的完整性是計(jì)算機(jī)程序產(chǎn)品的完整性的指示,使用所述組參數(shù)中 的冗余所述數(shù)據(jù)串被并入到該組參數(shù)的比特表示中,其中改變?cè)摻M參 數(shù)的比特表示中的數(shù)據(jù)串使得所述系統(tǒng)失去其根據(jù)數(shù)據(jù)處理函數(shù)處 理數(shù)據(jù)的能力。


      以下通過參考附圖將闡述本發(fā)明的這些和其他方面,其中 圖1是圖示在AES的一個(gè)回合中的操作的圖; 圖2是圖示模糊表格的實(shí)例的圖;圖3是圖示在白盒子AES實(shí)現(xiàn)中一列的一個(gè)回合的圖; 圖4是圖示包含在類型Ia表格中的映射的圖; 圖5是圖示包含在類型II表格中的映射的圖; 圖6是圖示包含在類型III表格中的映射的圖;圖7是圖示包含在類型IV表格中的映射的圖;圖8是圖示包含在類型Ib表格中的映射的圖;圖9是圖示處理步驟的流程圖;圖IO是圖示更多處理步驟的流程圖;圖11是圖示查詢表的網(wǎng)絡(luò)的圖;圖12是圖示一個(gè)實(shí)施例的圖;圖13示意性圖示了作為塊密碼加密或解密處理的一部分的回合 函數(shù);圖14描述了程序代碼的序列;圖15顯示了在計(jì)算中使用的表格的實(shí)例;圖16顯示了圖14程序代碼使用的表格,其中表格包含程序代碼;圖17顯示了圖16表格的替換形式;圖18顯示了在計(jì)算機(jī)存儲(chǔ)器中表格的映射;圖19圖示了合并可執(zhí)行程序和給用于提供用戶對(duì)已加密數(shù)據(jù)的 條件訪問的密鑰的示意圖;圖20圖示了用于提供對(duì)已加密內(nèi)容的條件訪問的統(tǒng)一密鑰的使 用的示意圖;圖21圖示了處理步驟;以及圖22描述了本發(fā)明的實(shí)施例的圖。
      具體實(shí)施方式
      在軟件應(yīng)用的控制和數(shù)據(jù)通道中增加隨機(jī)性和復(fù)雜性的遮蔽的 方法并沒有阻止軟件經(jīng)常遭篡改,而是僅僅使其更加難以確定需要作 出哪些改變以便達(dá)到篡改者的目的。防篡改背后的一般原理能夠被如 下概述。程序P能夠被表示為訪問控制和/或許可X與功能Y的合成 物。攻擊者可能希望篡改程序以便刪除訪問控制或許可而不影響功 能。被篡改的程序然后能夠在完全沒有訪問控制或許可的條件下運(yùn) 行,或至少被運(yùn)行從而忽略這些控制。本發(fā)明將主要說明Y包括解密 功能的情況。但是,將會(huì)理解本發(fā)明可以被應(yīng)用于包括例如加密或解 密或二者組合的任何功能Y。理想情況下,對(duì)于防篡改程序,篡改X應(yīng)該立即導(dǎo)致Y的丟失, 而不管篡改如何小。換言之,X和Y應(yīng)該是不可分離的,或至少利用 相當(dāng)?shù)碾y度才可分離。
      一種實(shí)現(xiàn)不可分離的方式將是創(chuàng)建X和Y之間的關(guān)系從而對(duì)X的任何有意修改導(dǎo)致對(duì)Y的無意圖修改,這將會(huì) 從Y刪除所述功能。為了恢復(fù)Y的功能,將需要對(duì)Y的進(jìn)一步修改。 當(dāng)程序的功能和控制元素已經(jīng)不可分離時(shí),攻擊變得困難得多。如果 在程序的代碼上創(chuàng)建這種不可分離性,該程序可以是防篡改的而不需 要程序代碼必須被遮蔽。防篡改軟件是其中難以執(zhí)行有意圖的篡改的 軟件。AES是塊大小128比特或16字節(jié)的塊密碼。明文被分割成16字 節(jié)的塊,這形成了編碼算法的初始狀態(tài),以及編碼算法的最終狀態(tài)是 密文。為了在概念上說明AES,狀態(tài)的字節(jié)被組織為4 x 4字節(jié)的矩 陣。AES包括大量的回合。每個(gè)回合包括在狀態(tài)矩陣的字節(jié)、行、或 列上操作的類似的處理步驟,在這些處理步驟中每個(gè)回合使用不同的 回合密鑰。圖1圖示了 AES的一個(gè)回合的一些主要處理步驟。該處理步驟包括-添加回合密鑰802 -將狀態(tài)的每個(gè)字節(jié)與回合密鑰的字節(jié)進(jìn)行 異或(XOR)。-替換字節(jié)(SubBytes)804 -使用查詢表的字節(jié)到字節(jié)置換。 -移位行806 -將狀態(tài)的每一行旋轉(zhuǎn)固定數(shù)量的字節(jié)。 -混合列808 -在GF(28)中使用模乘法處理每一列。 步驟替換字節(jié)804、移位行806、和混合列808與使用的特定密 鑰不相關(guān)。在步驟添加回合密鑰80中應(yīng)用所述密鑰。除步驟移位行 806之外,在4 x 4狀態(tài)矩陣的每一列上能夠執(zhí)行處理步驟而不用獲知 其他的列。所以,當(dāng)每一列包括4個(gè)8比特值時(shí)它們能夠被認(rèn)為是32 比特運(yùn)算。虛線810指示處理被重復(fù)直到已經(jīng)執(zhí)行所需數(shù)量的回合。這些步驟的每個(gè)步驟或步驟的組合可以通過查詢表或查詢表的 網(wǎng)絡(luò)(S-box)表示。還有可能通過查詢表的網(wǎng)絡(luò)替換AES的一個(gè)完 整回合。例如,通過簡(jiǎn)單地與回合密鑰進(jìn)行異或能夠?qū)崿F(xiàn)添加回合密 鑰步驟,而使用表查詢實(shí)現(xiàn)替換字節(jié)、移位行、和混合列步驟。但是, 這意味著在白盒子攻擊的上下文中所述密鑰對(duì)于攻擊者仍然是可見 的。添加回合密鑰還能夠被嵌入在查詢表中,這使其較不明顯發(fā)現(xiàn)密鑰。
      圖2圖示了使得甚至更加難以提取密鑰的方式。設(shè)X和Y是兩個(gè) 函數(shù)??紤]運(yùn)算Y。X =Y(X(c)),圖示為圖812,其中c是輸入值,例 如4字節(jié)狀態(tài)列。但是,該方法適用于任何類型的輸入值c。映射X 和Y能夠被實(shí)現(xiàn)為可以被存儲(chǔ)在存儲(chǔ)器中的查詢表,但是,當(dāng)它們被 存儲(chǔ)在存儲(chǔ)器中時(shí),攻擊者能夠讀取這些值。圖14圖示了通過使用 輸入編碼F和輸出編碼H如何使查詢表的內(nèi)容才莫糊。對(duì)應(yīng)于X。F"和 H。Y的查詢表取代X和Y被存儲(chǔ)為圖示的,這使其更加難以提取X 和Y。圖816顯示如何添加其他的,例如隨才幾的、雙射函凄丈G,從而 兩個(gè)表的中間結(jié)果也被編碼。在這種情況下,兩個(gè)表被存儲(chǔ)在存儲(chǔ)器 中X,=G。X。F-1和Y, =H。Y。G"。這在圖818中又一次圖示了 這里。表示通常函數(shù)組成(即,對(duì)于任何兩個(gè)函數(shù)f (x)和g (x), 定義f。g(x)=f(g(x)), X和Y是適于通過查詢表方式實(shí)現(xiàn)的函數(shù)。同樣 能夠編碼包括多于兩個(gè)函數(shù)的網(wǎng)絡(luò)。實(shí)際表格編碼X和Y通過在單 個(gè)查詢表中組合H。Y。G"以及在單個(gè)查詢表中組合G。X。F"被模糊。 只要F、 G、和/或H保持未知,攻擊者就不能從查詢表提取有關(guān)X和 /或Y信息,然后攻擊者不能提取成為X和/或Y基礎(chǔ)的密鑰。包括 DES和Rijndael的(AES是特定的實(shí)例)其他密碼算法,還可以被編 碼為可以以類似于上述的方式模糊的查詢表(的級(jí)聯(lián)或網(wǎng)絡(luò))。本發(fā) 明并不局限于上述的示意性密碼算法。碼它的表格以便有意隱藏密鑰的方法:防止密鑰提取:二有的優(yōu)點(diǎn)是防止攻擊者提取密鑰資料,這將允許在其他機(jī)器上繞過軟件保護(hù)目標(biāo), 或防止公布有效地創(chuàng)建'全局解密,的密鑰資料,這種全局解密擊敗 已安裝軟件的大量用戶基礎(chǔ)之上的安全措施。它提供了增強(qiáng)的保護(hù)程度,其給定了僅軟件解決方案和敵意主機(jī)現(xiàn)實(shí)性的約束。在Chowl 的方法中,通過(1 )使用用于組成而不是各個(gè)步驟的表格;(2)利 用隨機(jī)雙射編碼這些表格;(3 )擴(kuò)展密碼邊界進(jìn)一步超出密碼算法 本身到包含應(yīng)用中,強(qiáng)迫攻擊者(反向工程師)明白相當(dāng)大量的代碼 段實(shí)現(xiàn)其目標(biāo),從而隱藏密鑰。Chow 1討論固定密鑰方法通過關(guān)于 密鑰的部分評(píng)估在實(shí)現(xiàn)中嵌入密鑰,以便密鑰輸入不是必須的。部分 評(píng)估意味著包含密鑰的表示被盡可能更合理地評(píng)估,結(jié)果被置入代碼 而不是全部表示。攻擊者能夠提取密鑰特定的實(shí)現(xiàn)并且使用它而不是 密鑰,但是密碼典型是能夠以操作或編碼的形式給密碼組件提供輸入 的較大包含系統(tǒng)的組件,組件為密碼設(shè)計(jì),但是對(duì)手將會(huì)發(fā)現(xiàn)難以刪 除。參考編碼表格的步驟,由于編碼是任意的,結(jié)果僅當(dāng)一個(gè)步驟的 輸出編碼匹配下一個(gè)步驟的輸入編碼時(shí)才是有意義的。例如,如果步驟X后跟隨著步驟Y (導(dǎo)致計(jì)算Y。X),所述計(jì)算能夠被編碼為Y,。X, = (H。Y。G-' )。(G。XoF-'):H。(Y。X)。F-' 因此,雖然需要利用F編碼輸入以及利用H"解碼輸出,但是Y。X被 正確地計(jì)算。所述步驟單獨(dú)地表示為對(duì)應(yīng)于Y,和X,的表格,從而F、 G和H以及X和Y被隱藏。除這些混亂步驟之外,Chow 1通過線性變換的方式使用擴(kuò)散步驟 以進(jìn)一步偽裝潛在的操作。術(shù)語(yǔ)混合雙射用于描述在以上意義中使用 的線性雙射。Chowl的實(shí)現(xiàn)采取一種操作形式的輸入,以不同的操作 形式產(chǎn)生輸出,從而使得白盒子攻擊上下文(WBAC)防止AES難以 從其包含應(yīng)用程序中分離。Chow 2討論設(shè)計(jì)用于抵抗白盒子攻擊上下文的DES的密碼實(shí)現(xiàn), 其目的是防止從程序中提取密鑰。在本文中討論的有關(guān)模糊查詢表網(wǎng) 絡(luò)的技術(shù)也大部分適用于包括AES等等算法的其他密碼算法。盡管控 制執(zhí)行環(huán)境的攻擊者能夠清楚地使用軟件本身(例如,為了解密)而 不明確地提取密鑰,但是強(qiáng)迫攻擊者使用在手邊安裝的例子對(duì)于數(shù)字 權(quán)利管理(DRM)系統(tǒng)提供者來說是有價(jià)值的。通常,Chow 2的方 法是面向完全由替換盒子構(gòu)成的實(shí)現(xiàn)工作的,沒有一個(gè)實(shí)現(xiàn)仿射變 換。需要支持該一般方法的大量技術(shù)在Chow 2中描述。部分的這些 技術(shù)是I/0分塊編碼、組合函數(shù)編碼、旁路編碼、分離通道編碼、和 輸出分離。部分評(píng)估意味著預(yù)先評(píng)估基于在實(shí)現(xiàn)時(shí)(部分)已知的值的表示。 在簡(jiǎn)化的實(shí)例中,當(dāng)密鑰是'5,時(shí),原始實(shí)現(xiàn)包含表示'2*密鑰,, 那么不是在該實(shí)現(xiàn)中并入'2*5,,預(yù)先評(píng)估的表示'10,被置于該 實(shí)現(xiàn)中。因此,密鑰'5,在代碼中并不是直接地存在。在具有固定 密鑰的DES的情況下,這涉及到利用密鑰特定的預(yù)先評(píng)估的S-盒子 (在編譯時(shí)或在編譯時(shí)間之前根據(jù)密鑰計(jì)算)替換標(biāo)準(zhǔn)S-盒子(在運(yùn) 行時(shí)根據(jù)密鑰計(jì)算)。根據(jù)Chow 2的混合雙射是這樣被設(shè)計(jì)以便每
      個(gè)輸出比特取決于大量的輸入比特的雙射仿射變換。I/O分塊編碼是 一種處理大量輸入和輸出比特的編碼方法。在這種情況下,編碼/解碼 能夠被形成為編碼的級(jí)聯(lián),每個(gè)編碼處理輸入/輸出比特的子集。組合 函數(shù)編碼意味著如果能夠并行地處理兩個(gè)或更多操作,單個(gè)編碼函數(shù)被應(yīng)用于并行操作的輸入(分別輸出)的級(jí)聯(lián)。它或多或少是i/o阻擋編碼的相反。旁路編碼意味著編碼變換增加熵的大量的冗余比特到 將被模糊的變換的輸入和/或輸出,以及重新設(shè)計(jì)將被模糊的變換以 "繞過"冗余比特從而它們不影響過程的最終輸出。分離通道編碼意 味著修改函數(shù)以提供附加輸出比特用于模糊實(shí)質(zhì)的信息比特。輸出分 離意味著在若千部分函數(shù)上分布函數(shù)的輸出,這里所有部分函數(shù)的輸 出必須以非明顯的方式組合以便獲得函數(shù)的原始輸出。Chow2提出構(gòu)建編碼網(wǎng)絡(luò)以利用寬的輸入,32比特或甚至96比 特構(gòu)造S盒子。這種表示仿射變換的寬輸入S盒子被分割成S盒子的 網(wǎng)絡(luò),每個(gè)盒子具有更窄的輸入和輸出;通過在S盒子中并入編碼函 數(shù)來編碼每個(gè)S盒子。編碼函數(shù)的反演被合并在處理S盒子輸出的S 盒子中。白盒子AES實(shí)現(xiàn)能夠如下概述。AES加密和解密算法的輸入是 單個(gè)128-比特塊。這個(gè)塊通過由16字節(jié)構(gòu)成的4 x 4矩陣表示。AES 通常包括用于AES-128的10個(gè)回合。每個(gè)回合更新形成AES狀態(tài)的 一組16字節(jié),因此每個(gè)AES回合處理128個(gè)比特。AES-128使用128 比特的密鑰。該密鑰用作將密鑰轉(zhuǎn)換成128比特的不同回合密鑰的算 法的輸入?;净睾习ㄒ韵滤膫€(gè)部分.替換字節(jié).移位行.混合列.添加回合密鑰。操作的這個(gè)順序適用于AES加密。盡管在AES解密中操作的標(biāo) 準(zhǔn)順序是不同的,但是有可能重寫AES解密算法以具有與AES力口密 相同順序的操作。在第一回合之前,額外的添加回合密鑰4乘作發(fā)生,從回合十混合 列操作被省略。使用所述密鑰的唯一部分是添加回合密鑰,其他三個(gè) 部分與密鑰無關(guān)。在所述實(shí)現(xiàn)中回合的邊界被改變以將下一回合的添 加回合密鑰步驟和替換字節(jié)步驟集成到一個(gè)步驟中。回合利用添加回合密鑰和替換字節(jié)開始,其后跟隨的是移位行以及最后是混合列。首先,通過組合替換字節(jié)步驟和添加回合密鑰一起到一個(gè)步驟中 隱藏密鑰。這使得密鑰不再獨(dú)自地可見。由于密鑰是提前已知的,能 夠預(yù)先評(píng)估涉及密鑰的操作。這意味著在步驟替換字節(jié)中使用的標(biāo)準(zhǔn)S盒子能夠被密鑰特定的S盒子所替換。為了產(chǎn)生AES-128的密鑰特 定的例子,通過創(chuàng)建如下定義的十六個(gè)8 x 8 (即8比特輸入,8比特 輸出)查詢表z;:該密鑰被集成到替換字節(jié)變換中r。 (jc) = 5(x ), / = 0,…,3; 乂 = 0,…,3; r = 1,…,9 ,這里S是AES S盒子(可逆的8比特映射),以及/t,:,是在4x4矩陣 的位置i,j的AES子密鑰字節(jié),該矩陣表示回合r的回合密鑰。這些T 盒子利用前一回合的添加回合密鑰步驟組成替換字節(jié)步驟。回合10 T 盒子如下吸收后變白密鑰《W =《) = 0"."3; 7 = 0'…,3 ,這里sr (i,j)表示在移位行步驟之后單元i, j的新位置。T盒子的總 數(shù)是10x 16= 160。但是,由于S"公開地被已知,從T盒子能夠容易 地恢復(fù)所述密鑰。這使得附加編碼是必須的。使用線性變換用于擴(kuò)散 T盒子的輸入。這些線性變換被稱為混合雙射并且能夠在GF (2)上 被表示為8x8矩陣。通過之前計(jì)算反轉(zhuǎn)混合雙射以取消其影響。圖3圖示包括在白盒子ASE的回合中用于狀態(tài)的一個(gè)32比特列 (在應(yīng)用移位行之后)的表格。這里介紹不同類型表格的名稱。在下 文中更詳細(xì)地討論它們。在回合之前,應(yīng)用128比特狀態(tài)的每個(gè)字節(jié) 于相應(yīng)類型Ia表格。這產(chǎn)生了相應(yīng)的128比特值,這些值使用類型IV 表格的網(wǎng)絡(luò)被異或以提供被分割成四個(gè)32比特值的128比特輸出。 在這里闡述了每個(gè)32比特值的處理步驟。輸入32比特值的四個(gè)字節(jié) 到四個(gè)相應(yīng)的類型II表格20。四個(gè)類型II表格20的每個(gè)表格產(chǎn)生32 比特輸出。這些輸出使用類型IV表格22被逐位異或。每個(gè)類型IV 表格22執(zhí)行4比特逐位異或。通過正確地連接類型IV表格的輸入和 輸出,正如本領(lǐng)域普通技術(shù)人員將會(huì)明白的,能夠?qū)崿F(xiàn)四個(gè)32比特
      輸出的逐位異或。該步驟的結(jié)果是32比特值。該值的四個(gè)字節(jié)中的每個(gè)字節(jié)被應(yīng)用于相應(yīng)的類型111表格24。每個(gè)類型11I表格提供32 比特輸出。這些輸出使用類似于類型IV表格22的網(wǎng)絡(luò)的類型IV表 格26的網(wǎng)絡(luò)被再次逐位異或。所述輸出是指示狀態(tài)的列的32比特值。 對(duì)于每個(gè)回合重復(fù)這個(gè)過程。在對(duì)于四個(gè)32比特值的每個(gè)值已經(jīng)執(zhí)行回合之后,將所述輸出 組合到128比特值中。128比特值的每個(gè)字節(jié)被應(yīng)用于類似lb表格; 使用類型IV表格的網(wǎng)絡(luò)異或結(jié)果。圖4圖示類型Ia表格100。圖5圖示類型11表格200。圖6圖示 類型III表格300。圖7圖示類型IV表格400。圖8圖示類型Ib表格 500。如下使用混合雙射。AES狀態(tài)通過由字節(jié)構(gòu)成的4x4矩陣表示。 混合列步驟一次在一列上(四個(gè)8比特單元)操作??紤]32 x 32矩 陣MC。如果通過表格表示該矩陣,該表格將花費(fèi)232 x 32 = 137438953472比特=16GB。為了避免這些巨大的表格,所述矩陣被 分塊成四個(gè)部分。MC ^皮分塊成四個(gè)32 x 8個(gè)部分,MCo,Md, MC2, MC3(塊208 )。 通過將x的比特劃分到四個(gè)字節(jié)中并且將MC的每個(gè)部分乘以 一個(gè)字 節(jié),產(chǎn)生四個(gè)32比特向量(zQ, ..., z3),從而完成32比特向量x =(x。, ... , X3,)與MC的相乘。這之后跟隨三個(gè)32比特異或, 給出最終的32比特結(jié)果z。四個(gè)表格一起僅僅花費(fèi)4 x 28 x 32 = 32768 比特=4KB。三個(gè)異或?qū)⒈粍澐殖?4個(gè)4比特異或,每個(gè)異或通過利用適當(dāng) 的級(jí)聯(lián)(例如((z[O, O], z[O, l], z[O, 2], z[O, 3])+(z卩,0], z[l, l], z[l, 2], z[l, 3])腿0, 4], z[O, 5], z[O, 6], z[O, 7])+(z卩,4], z[l, 5], z[l, 6], z[l, 7])川...),可能編碼的查詢表表示,這里ll表示級(jí)聯(lián)以 及+表示異或。通過使用這些條帶(stdp)和細(xì)分的異或,每個(gè)步驟 通過小的查詢表表示。特別是,對(duì)于i-O, ..., 3使用8x32表格計(jì) 算Zi,而4比特異或變?yōu)?4個(gè)8x4比特表格。圖7圖示如何在異或 404周圍放置輸入解碼402和輸出編碼406。這些編碼通常是隨4幾選 擇的非線性4x4雙射。異或表格被稱為類型IV表格400。類型IV表 格從兩個(gè)之前計(jì)算的每個(gè)計(jì)算取4比特作為輸入。這些計(jì)算的輸出編 碼212與類型IV表格的輸入解碼402相匹配以相互取消。4x4非線 性雙射的選擇取決于表格的大小。在這種情況下類型IV表格僅僅是 28x4比特=128字節(jié)。需要總共花費(fèi)3KB的24個(gè)表格。如果異或不 被劃分,將需要計(jì)算32比特異或的三個(gè)異或表格。 一個(gè)這種表格將 花費(fèi)224KB。 T盒子206和8 x 32表格208能夠被表示為單獨(dú)的查詢 表。相反,它們能夠被組成創(chuàng)建新的8 x 32表格200,這些表格計(jì)算 替換字節(jié)和添加回合密鑰變換以及部分的混合列。這節(jié)省了 (用于存 儲(chǔ)T盒子的)空間和(用于執(zhí)行表格查詢的)時(shí)間。在如上分離MC成MCi之前,MC將被左乘以32 x 32混合雙射 MB,如在圖5中以附圖標(biāo)記210所指示,其被選擇作為具有滿秩的4 x4子矩陣的非奇異矩陣。使用混合雙射增加了特定表格的可能結(jié)構(gòu) 的數(shù)量。圖5圖示包括4x4輸入解碼202和4 x 4輸出編碼212的8 x 32 類型II表格200。這些輸出編碼和輸入解碼是必須匹配類型IV表格 400的輸入解碼和輸出編碼的非線性4x4雙射。類型IV表格400跟 隨類型11表格200。為了反轉(zhuǎn)MB,使用額外的一組表格來計(jì)算MB—1。 令(x,o,…,x,31 )是混合列的輸入,以及令(Zo,…,Z3,)是在混合 列之后的輸出。令(z,。,…,z,3,)t是在與MB相乘之后的結(jié)果。(z,。,…, z,3,)t用作類型11I表格300的輸入。應(yīng)該注意到由于通過下一表格的 輸入解碼取消表格的輸出編碼,在這里并不需要考慮輸入解碼和輸出 編碼。在類型III表格300中,MB"被應(yīng)用以及下一回合的四個(gè)類型 II表格200的四個(gè)輸入混合雙射204的反轉(zhuǎn)308。圖6圖示包括4x4非線性輸入解碼和4x4非線性輸出編碼的8 x32類型III表格300。這些表格后跟隨著相應(yīng)的類型IV表格400。數(shù)據(jù)操作的一個(gè)回合包含在128比特狀態(tài)矩陣上的操作。在128-比特狀態(tài)矩陣的32比特的四個(gè)條帶的每個(gè)條帶上執(zhí)行的數(shù)據(jù)操作如 下。32-比特條帶被劃分成四個(gè)8比特字節(jié)。四個(gè)字節(jié)的每個(gè)字節(jié)被饋 送到不同的類型II表格200中,產(chǎn)生四個(gè)32比特輸出值。必須使用 被模糊的類型IV表格400異或這些值。為此,每個(gè)32比特輸出值被 劃分成八個(gè)4比特的四位字節(jié),適當(dāng)四位字節(jié)對(duì)被輸入到相應(yīng)的類型 IV表格中,從而以編碼的格式獲得四個(gè)32-比特輸出值的異或。這32比特的作為結(jié)果產(chǎn)生的編碼異或的結(jié)果再次被劃分成字節(jié),
      以及每個(gè)字節(jié)被輸入到不同的類型III表格300中。類型III表格的每個(gè)四位字節(jié)的輸入解碼對(duì)應(yīng)于最后應(yīng)用的類型IV表格的輸出編碼。類型m表格再次產(chǎn)生被使用被模糊類型iv表格4oo再次異或的四個(gè)32比特輸出值??傊?,通過查詢表實(shí)現(xiàn)回合。單個(gè)回合的查詢表被如下網(wǎng)絡(luò)化。饋送數(shù)據(jù)到類型n表格中。饋送這些表格的輸出到表示被編碼異或的 類型iv表格的網(wǎng)絡(luò)。該網(wǎng)絡(luò)的輸出被饋送到取消通過類型II表格插 入的混合雙射編碼的類型iii表格。最終通過將類型ni表格的輸出再 次饋送到表示被編碼異或的類型iv表格的網(wǎng)絡(luò)中推導(dǎo)該回合的編碼輸出。進(jìn)一步,白盒子實(shí)現(xiàn)在開始(類Ia表格100)和結(jié)束(類型Ib 表格500 )包含分別用于消除和插入外部編碼的類型I表格。類型Ia 表格100能夠被用于通過應(yīng)用單個(gè)表格查詢應(yīng)用如在圖4中圖示的映 射的級(jí)聯(lián)。在所述級(jí)聯(lián)中,4-比特的四位字節(jié)輸入解碼102首先出現(xiàn)。 然后,8-比特到128-比特雙射104出現(xiàn);這種雙射完成網(wǎng)絡(luò)的輸出和 輸入的編碼;這種映射能夠在程序的其它地方被取消。雙射104的結(jié) 果被分離成相應(yīng)的8-比特雙射106被應(yīng)用于其的16個(gè)8-比特塊。最 后,應(yīng)用輸出四位字節(jié)編碼108。如上所述,預(yù)先評(píng)估映射102、 104、 106和108的級(jí)聯(lián)以及在查詢表中將最后的結(jié)杲制成表。這產(chǎn)生了具 有每個(gè)項(xiàng)128比特的至多256個(gè)項(xiàng)的表格。在圖8中示意性顯示在類 型Ib表格500中所包含的映射的級(jí)聯(lián)。第一映射是輸入四位字節(jié)解碼 502,其后跟隨著8比特雙射504, T-box 1/506,這里r對(duì)應(yīng)于最后 的回合,用于提供輸出編碼的8比特到128比特映射,以及輸出四位 字節(jié)編碼510。再次使用四位字節(jié)輸入和輸出編碼的類型IV表格400, 異或這種類型表格的128比特輸出與其他類型Ib表格的輸出。輸出編 碼508在程序的其它地方,即在程序的密碼部分之外被取消。這使得 攻擊者更佳難以通過僅僅分析程序的密碼部分的輸入和輸出破解表 格的編碼。在本發(fā)明的 一個(gè)方面中,提供能夠防篡改數(shù)字?jǐn)?shù)據(jù)發(fā)布的方法。 需要通過包括數(shù)字?jǐn)?shù)據(jù)接收者可獲得的指令的計(jì)算機(jī)代碼處理數(shù)據(jù)。 處理的目的可以是再現(xiàn)通過所述數(shù)據(jù)表示的音頻/視頻信號(hào)。處理可以 包括加密、解密、壓縮、解壓縮、或其他處理。所述方法包括編寫多
      個(gè)指令,包括用于處理數(shù)字?jǐn)?shù)據(jù)的處理算法的實(shí)現(xiàn)。所述多個(gè)指令形 成計(jì)算機(jī)程序,例如在用戶終端上需要的用于成功重放發(fā)布的內(nèi)容的 插件程序或媒體播放器。所述處理算法基于參數(shù)。在解密的情況下, 該參數(shù)可以表示密鑰。發(fā)布的數(shù)據(jù)可以使用相應(yīng)的加密密鑰(部分地)被力口密。等效于處理器指令的一部分的部分參數(shù)被識(shí)別。更具體而言,參 數(shù)的比特表示的一部分等于指令的比特表示的一部分。參數(shù)的剩余部 分可以不同于任何處理器指令。處理器指令被如此安排,從而在執(zhí)行期間參數(shù)的相同部分通過參 考處理器指令的比特表示的所述部分的存儲(chǔ)器位置被讀取(例如在解 密處理中使用)。參數(shù)的相同部分并不單獨(dú)地存儲(chǔ)在存儲(chǔ)器中,因?yàn)?所需的比特表示已經(jīng)存在于保持相同的處理器指令的存儲(chǔ)器地址。以兩種方式有效地使用相同的存儲(chǔ)器地址解密算法的參數(shù)的存儲(chǔ)位 置,以及同時(shí)作為將要執(zhí)行的處理器指令的存儲(chǔ)位置。典型地,讀取 存儲(chǔ)器位置作為參數(shù)的指令本身被存儲(chǔ)在不同的存儲(chǔ)器位置,以及通 過參考存取保持所述參數(shù)的存儲(chǔ)器位置。所述指令形成程序代碼。該指令遵循執(zhí)行程序代碼的執(zhí)行環(huán)境。例如,它們是處理器指令或諸如 虛擬機(jī)器指令(例如,java字節(jié)碼)的偽代碼指令。在本發(fā)明的另 一 個(gè)方面中,選擇所述參數(shù)以便它們包含相對(duì)大的 相同部分。單個(gè)存儲(chǔ)器地址可以保持能夠以兩種看上去不相關(guān)的方式 使用的數(shù)據(jù)作為處理器指令合作為參數(shù)值。這具有的效果是如果攻 擊者改變處理器指令,參數(shù)可以變得無效,以及反之亦然,如果攻擊 者改變參數(shù),處理器指令則變得無效。因此對(duì)于攻擊者可以變得更加 難以執(zhí)行有目的的篡改。有可能在首先,用于基于參數(shù)處理數(shù)字?jǐn)?shù)據(jù)的計(jì)算機(jī)可執(zhí)行指 令,和其次,其比特表示等于參數(shù)比特表示的一部分的計(jì)算機(jī)可執(zhí)行指令之間作出區(qū)別。第二指令被與第一指令使用的參數(shù)合并。當(dāng)然, 第一和第二指令可以是相同的。但是,還有可能第二指令是軟件程序 的另一個(gè)模塊的一部分,或完全不同的程序的一部分。例如,第一指 令可以是用于解密視頻內(nèi)容或認(rèn)證銀行交易的插件程序的一部分,而 第二指令可以是諸如操作系統(tǒng)內(nèi)核程序或TCP/IP驅(qū)動(dòng)器的至關(guān)重要 的操作系統(tǒng)組件的 一 部分。由于第 一 指令使用第二指令的比特表示獲 得參數(shù)值,解密或認(rèn)證將僅在如果內(nèi)核程序或驅(qū)動(dòng)器還沒有被篡改的 條件下是成功的。因此,數(shù)字權(quán)利實(shí)施或銀行交易安全的防篡改被改善。編碼的選擇圖10圖示本發(fā)明的另一個(gè)方面。該圖所示為編寫實(shí)現(xiàn)603,標(biāo)識(shí) 參數(shù)613的相同部分,以及安排實(shí)現(xiàn)615的步驟。所述參數(shù)可以包括 一個(gè)或更多查詢表,例如形成查詢表的網(wǎng)絡(luò)。例如根據(jù)密鑰能夠計(jì)算 (步驟604 )這種查詢表的網(wǎng)絡(luò)。處理器指令的比特表示的字被選擇 (在步驟606中)用于包括在網(wǎng)絡(luò)的至少一個(gè)查詢表中。字的包括通 過應(yīng)用(在步驟608中)到查詢表的元素的變換來實(shí)現(xiàn)。通過應(yīng)用(在 步驟610中)反轉(zhuǎn)到至少一個(gè)其他查詢表的元素的變換的效果的補(bǔ)償 變換來補(bǔ)償這種變換。通常至少兩個(gè)變換的查詢表經(jīng)由查詢表的網(wǎng)絡(luò) 連接。變換的查詢表網(wǎng)絡(luò)用作密碼算法的參數(shù)而不是查詢表的原始網(wǎng) 絡(luò)。在一個(gè)實(shí)施例中,可以使用輸出和/或輸入編碼模糊所述查詢表。 例如查詢表網(wǎng)絡(luò)中的第一查詢表f(t!(x))具有輸出編碼f。查詢表網(wǎng)絡(luò)中的第二查詢表t2(f乂X))具有輸入解碼f1。輸入解碼f反轉(zhuǎn)輸出編碼 的效果,例如t2(f乂f(t,(X))))-t2(t"X))??梢赃x擇解碼f和f1以便預(yù)定 的字被包括在第 一 查詢表f(t' (X))或第二查詢表t2(f1 (X))中。例如令t, (Xo)=yo。為了在查詢表中包括字w,能夠如此選擇f從而f(yo) = w,由 于在這種情況下f(t!(x))- f(yQ) = w。這將w放置在查詢表中的位置x0。 為了補(bǔ)償,如此選擇f"人而f、w)-yo。通過自適應(yīng)查詢表的輸入解碼能夠重新定位選擇的字。例如,考 慮以上闡述的實(shí)例利用查詢表實(shí)現(xiàn)f(t,(x)),這里選擇f從而f(ti(Xo))=w。如果期望將W放置在位置X,而不是Xo,那么這能夠通過安排輸 入解碼h-'獲得查詢表實(shí)現(xiàn)f(t,(X'(x)))來實(shí)現(xiàn)。這里,選擇h"從而h-'(x,)=x0。這給出了 f(t"h"(xO))-f(t"Xo))-w。這將w放置在查詢表中的位置X"為了補(bǔ)償,選擇h從而h(X。) = Xl以及在第三查詢表h(t3(X)) 中應(yīng)用它作為輸出編碼。三個(gè)查詢表的組成能夠是<formula>formula see original document page 23</formula>
      這里括號(hào)()指示不同的查詢表以及。通常表示函數(shù)組成。當(dāng)推導(dǎo)白盒子實(shí)現(xiàn)時(shí),有選擇編碼的自由度。以下能夠被任意地選擇-在內(nèi)部和外部編碼中128 x 128線性雙射。 -散布T盒子的輸入的8x8混合雙射。 -散布混合列的輸出的32 x 32混合雙射。 -施加于表格上的四位字節(jié)編碼雙射。在本發(fā)明的一個(gè)方面中,這種自由度能夠用于以這種方式修改給 定的查詢表即它包含一組預(yù)定義的比特或字節(jié)。這些預(yù)定義的比特或 字節(jié)能夠包括將要執(zhí)行的處理器指令。篡改這些處理器指令將使得表 格無效,以及篡改表格將使得處理器指令無效。通過適當(dāng)?shù)剡x擇以上 所述的編碼,預(yù)定義的字節(jié)被包括在表格中。正如以上所說明的,通 過反轉(zhuǎn)包含在其他表格中的雙射來取消這些線性混合雙射和四位字 節(jié)編碼雙射的效果。在一個(gè)實(shí)施例中,改變類型II表格的輸出編碼以便將代碼置于表 格中。類型II表格的輸出編碼包括四位字節(jié)編碼和32 x 32混合雙射。 這里描述的這些和其他實(shí)施例并無意圖限制本發(fā)明而不是示例本發(fā) 明的若干方面。以類似的方式還能夠?qū)⒋a置于其他類型的表格中, 并且更普遍地,置于能夠被應(yīng)用變換的任何表格中,這種變換能夠通 過表格查詢接下來的或之前的操作所取消。通過本領(lǐng)域的普通技術(shù)人 員這里公開的方法能夠適應(yīng)于這種情況。在本實(shí)例中,使用輸出編碼 強(qiáng)制預(yù)定義的代碼段在表格中出現(xiàn)。除了以表格項(xiàng)的預(yù)定義序列正確自適應(yīng)必須通過自適應(yīng)之前表格的輸出編碼進(jìn)行補(bǔ)償,因?yàn)榘ū砀? 能夠自由地選擇每種類型II表格的四位字節(jié)編碼。但是,對(duì)于回 合的每個(gè)列僅僅能夠選擇一次32 x 32混合雙射。所以,四個(gè)類型II 表格共享相同的32 x 32混合雙射MB。四位字節(jié)編碼或32 x 32混合 雙射的任何一個(gè)或二者能夠以一種方式被修改,即期望的代碼分段出 現(xiàn)的表格中的某個(gè)地方。通過正確地修改網(wǎng)絡(luò)中的下一個(gè)查詢表或一 些查詢表的輸入解碼補(bǔ)償這種修改。首先,描述一種方法用于選擇MB從而某些預(yù)定義的代碼出現(xiàn)在 表格中。這種方法將被稱為"修改MB的算法,,。輸入四位字節(jié)解碼、8x8混合雙射、以及四位字節(jié)輸出編碼F原則上被保持固定,但是可以在某些情況下被修改以在表格中容納更多的碼字。由于每個(gè)四位字節(jié)編碼32比特表格II輸出的4個(gè)比特,因此輸出四位字節(jié)編碼F能 夠被寫為(Fo,F(xiàn),,.,.,F7),這里Fj是第i個(gè)輸出)字節(jié)的編碼。令X為編碼之前的類型II表格,包含混合列和T盒子的AES步 驟。由32比特的256行構(gòu)成的查詢表X能夠被認(rèn)為是256 x 32矩陣。 該矩陣的行1通過以下給出這里b(l)是對(duì)于值1, T盒子輸出的二進(jìn)制表示以及bi(l)是該表示中的 第i個(gè)比特。矩陣X的秩是8。所以,正如本領(lǐng)域普通技術(shù)人員將會(huì) 明白,如果需要,在例如通過適當(dāng)?shù)剡x擇輸入四位字節(jié)解碼和/或8 x8混合雙射重新安排X的行之后,能夠計(jì)算滿秩的32 x 32矩陣A和 24 x 8矩陣a, 乂人而<formula>formula see original document page 25</formula>(方程 1)這里In表示nxn單位矩陣,On x m是所有項(xiàng)為零的n x m零矩陣。令 C-((c(O), c(l), c(7))是表示指令的預(yù)定義序列的八個(gè)32比特字, 以及令C ^人而'(C)-(/^(c(0)),—'(c(l)),…,廠'(c(7))) (方程2)是8個(gè)不相關(guān)的32比特行向量。如果方程2的行向量不是不相關(guān)的, 那么通過適當(dāng)?shù)匦薷腇可以使其不相關(guān)。如果不希望修改F或如果并 不是所有八個(gè)c(O), c(l), ..., c(7)是不同的,所述方法仍然能夠被應(yīng) 用。例如,能夠建立和使用c(O), c(l), ..., c(7)的子集,對(duì)于該子集 方程2的相應(yīng)子集由不相關(guān)向量構(gòu)成。本領(lǐng)域普通技術(shù)人員能夠計(jì)算 由附加不相關(guān)32-比特行向量構(gòu)成的24 x 32矩陣卩從而通過下式定義 滿秩的32 x 32矩陣B5 =然后獲得X的編碼版本,通過應(yīng)用由MB-(AB)T給出的混合雙射和(預(yù) 定的)四位字節(jié)輸入編碼和四位字節(jié)輸出編碼F,它的首先8行等于 C。令Y表示代表X的因此編碼版本的查詢表。它是單個(gè)查詢表,在 單個(gè)查詢步驟中包含(預(yù)定的)輸入四位字節(jié)解碼、(預(yù)定的)8x8 混合雙射、T盒子、混合列、MB、以及(預(yù)定的)輸出四位字節(jié)編碼 F的組成。比較起來,查詢表X僅僅包含T盒子和混合列的組成。通過C給出查詢表Y的首先8行,正如將會(huì)理解通過考慮通過以 下給出的Y的第一行<formula>formula see original document page 26</formula>、是X的第一行以及XA的第一行通過(l, 0, 0,…,O)給出,Y的第一行等于F((l, 0, 0,…,O)B)。通過B的定義這是 F(F"(c。)),其等于cQ。類似地,Y的第二到第八行通過c,, c2,…, W纟會(huì)出也成立。應(yīng)該注意到,計(jì)算滿足方程1的A可能需要重新安排X的行。這 可以通過修改輸入編碼實(shí)現(xiàn)。對(duì)于類型II表才各,輸入編碼包括輸入四 位字節(jié)解碼和8 x 8(線性)混合雙射。例如,通過交換對(duì)應(yīng)于兩行的四 位字節(jié)解碼的輸出值可以交換兩行。不需要代碼被放置在X的開始。 該代碼還可以通過正確地+務(wù)改輸入編碼和/或A和/或B 一皮放置在另一 望在表格中定位代碼之后,在選擇輸入編碼 中可能仍然留下自由度。這種自由度可以被任意地使用例如用于進(jìn)一 步模糊表格。這結(jié)束了通過在其輸出編碼中選擇混合雙射將代碼放到 類型II表格中的實(shí)例算法的討論。對(duì)于給定的輸入四位字節(jié)解碼,給定的8x8混合雙射,以及給定的32 x 32混合雙射MB,有可能以這樣一種方式修改輸出四位字節(jié) 編碼F,即代碼出現(xiàn)在類型II表格中。例如通過首先修改MB以便代 碼的八個(gè)32-比特字出現(xiàn)在表格中,然后修改輸出四位字節(jié)編碼以添 加代碼的更多的32-比特字,這種可能性能夠組合以上闡述的算法被 使用。在下文中將對(duì)此說明。如上所述,令X表示編碼之前的類型II 表格。因此查詢表X僅僅包含T盒子和混合列的組成。而且,定義 MB(X)為通過在X上應(yīng)用混合雙射MB獲得的查詢表。MB(X)的行1 通過下式給出MB MC,.令C是表示將被置于表格中的代碼的32比特字的集合。令Z表示具 有正在創(chuàng)建的輸出四位字節(jié)編碼的MB(X)的版本。包含C的32-比特 字到Z中的方法是通過修改輸出四位字節(jié)編碼F-(Fo, F,,…,F(xiàn)7), 通過貪婪地從C添加字到Z中直到由于以下闡述的約束不再有可能為 止。所述修改應(yīng)該如此執(zhí)行從而例如通過交換函數(shù)值F保持雙射。在 下文中,將使用注腳指示32-比特字的順序的4-比特四位字節(jié),例如 w0, w。
      ..., \¥7表示32-比特字w的8個(gè)四位字節(jié)??紤]來自C的任何32-比特字c以及MB(X)的任何行保持32-比特 字r。初始,能夠選擇來自C的隨機(jī)字c,或可以以例如順序的排序 從C選擇字c。通過定義fi(ri) = Cj, i = 0, 1,…7,字c能夠被置于Z 的行r中。因此,對(duì)于F的八個(gè)四位字節(jié)編碼的每個(gè)編碼, 一個(gè)值的 映射已經(jīng)是固定的。接下來,從C選4奪另一個(gè)字c。優(yōu)選地如此選4奪字c從而它已經(jīng) 未被包含在Z中,為此行r存在于Z中從而有可能通過使用在規(guī)定F
      中剩余的自由度,即不改變已經(jīng)包含代碼的查詢表Z的字實(shí)現(xiàn)fi(ri) =Ci, i = 0, 1, ...7。如果例如fi(rj)已經(jīng)未^皮分配和如果Ci已經(jīng)未被 分配給不同的四位字節(jié)值,即對(duì)于fj(x) = Cj沒有四位字節(jié)值x弁ri存在, 這種實(shí)現(xiàn)是有可能的。重復(fù)該處理直到不再有字能夠被置于Z中。再 次,輸入四位字節(jié)解碼和8x8混合雙射能夠用于在正確的位置將包 括的指令置于表格中。能夠任意地使用輸入四位字節(jié)編碼、8x8混合 雙射、和輸出四位字節(jié)編碼的剩余自由度以進(jìn)一步模糊表格Z。修改MB的算法和修改輸出四位字節(jié)編碼的算法能夠被組合例如 以與通過僅使用其中 一種算法的可能情況相比能夠在表格中包括代 碼的更多字,或者能夠較佳的模糊表格。實(shí)現(xiàn)這的一種方法包括以下 步驟。正如所述應(yīng)用固定的輸出四位字節(jié)編碼F執(zhí)行選擇MB的算法。 這經(jīng)由MB的選擇將表示代碼的字的第一集合d置于查詢表Y中。 接下來,繼續(xù)利用Y,應(yīng)用選擇輸出四位字節(jié)編碼的算法以將表示代 碼的字的第二集合C2置于查詢表Z中,這里如果并且僅僅如果F"x) 與已經(jīng)表示代碼的查詢表Y中字的集合d中的一個(gè)碼字不一致,值 Fi(x)被初始化為"已經(jīng)未分配,,。這種初始化保證碼字C,和C2的集 合將出現(xiàn)在表格Z中。假設(shè)選擇代碼分段C被置于到表格中。在某些情況下,例如如果 C的32-比特字并不是完全相關(guān)的,可能需要其他步驟獲得包括代碼 分段的表格。能夠應(yīng)用某些技術(shù)以在該表格中包含C的至少一部分。 這些技術(shù)的部分實(shí)例是a. 表格不必存儲(chǔ)在存儲(chǔ)器的連續(xù)塊中。例如,能夠以交織的順序 在存儲(chǔ)器中存儲(chǔ)多個(gè)表格。合并存儲(chǔ)器中表格的其他方式是有可能 的。例如,表格Tl的第一行后不需要跟隨表格Tl的第二行。它后面 還能夠跟隨不同表格T2的第一行。結(jié)果,不能被包括在T1中的碼字 能夠包括在T2中,以及Tl和T2的字能夠以這種順序被存儲(chǔ)在存儲(chǔ) 器中,使得代碼分段C出現(xiàn)在連續(xù)存儲(chǔ)器分段中。b. 能夠?qū)變換成不同的但是功能等同的代碼分段。這已經(jīng)能 夠通過諸如改變寄存器分配的非常簡(jiǎn)單的技術(shù)實(shí)現(xiàn)。c. 通過例如插入NOP指令(即處理器跳過的指令)。可替換地, 一起具有合乎要求的效果的其他指令可以被插入。如果NOP指令是 例如8-比特和碼字是32-比特,跟隨NOP指令的指令被移位8比特。
      這導(dǎo)致產(chǎn)生了要包括在表格中的32-比特字的不同集合C。如果NOP 在y之前被插入那么等同的兩個(gè)32-比特字x和y不再等同。注意到 通過在y之前插入NOP, y的最后字節(jié)移位到下一個(gè)32 -比特字。d.通過代碼重新分配,能夠?qū)的問題部分移動(dòng)到程序的不同 部分。作為其新的位置,問題部分不再需要是問題的。在已經(jīng)明白這種描述之后,對(duì)于普通技術(shù)人員而言在模糊的表格 或表格網(wǎng)絡(luò)中包含代碼或其他預(yù)定義數(shù)據(jù)的其他方式將會(huì)變得明顯。 能夠使用的表格的其他實(shí)例是類型Ia表格100和類型Ib表格500。所 述方法能夠被成功地應(yīng)用于能夠被模糊的查詢表的所有網(wǎng)絡(luò)。所述方 法能夠一皮成功地應(yīng)用于諸如DES、 AES或Serpent之類的任何類型的 密碼算法,尤其是如果至少部分地通過查詢表方式實(shí)現(xiàn)的話。所述方 法同樣可應(yīng)用于涉及多個(gè)查詢表的任何方法,其中查詢表的輸出是下 一個(gè)查詢表的輸入。所述方法還應(yīng)用于其中以查詢表實(shí)施的操作能夠 至少部分地通過在應(yīng)用查詢表之前或之后所執(zhí)行的適當(dāng)選擇的操作 進(jìn)行反轉(zhuǎn)的任何情況。所述方法還能夠被應(yīng)用于例如在用于應(yīng)用線性 操作的矩陣中包含代碼,或通過諸如加法、乘法、或XOR的二進(jìn)制 操作的方式被應(yīng)用于數(shù)據(jù)的固定操作數(shù)。在矩陣的情況下,可以通過 修改或包括應(yīng)用于數(shù)據(jù)的隨后的(線性)操作補(bǔ)償需要用于包含代碼 的矩陣修改。在二進(jìn)制操作的情況下,可以通過修改隨后的(二進(jìn)制) 操作的操作數(shù)補(bǔ)償操作數(shù)的修改。這里提出的方法同樣適用于包含合 并代碼與在方法或算法中出現(xiàn)的數(shù)字常量的其他情況。在可替換的實(shí) 施例中,多個(gè)查詢表表示密鑰,通過在查詢表格中包括預(yù)先定義的值 改變?cè)撁荑€。圖9所示為創(chuàng)建能夠?qū)嵤?shù)字權(quán)利管理策略的防篡改程序所需操 作的可能流程的示意圖。在步驟602中,例如使用軟件開發(fā)環(huán)境 (SDE),也被稱為編程環(huán)境,程序由處理器指令構(gòu)成。例如,能夠 提供編輯器或編譯器用于執(zhí)行該步驟。所述程序應(yīng)用 一定的參數(shù)解密 數(shù)字內(nèi)容。該參數(shù)可以涉及在程序下面解密算法的密鑰。例如,密鑰 本身是參數(shù),或表示在程序內(nèi)發(fā)生的線性操作的矩陣,或例如表示在 程序內(nèi)發(fā)生的(可能非線性)操作的查詢表。步驟612包含識(shí)別等于 程序的比特的一部分參數(shù)。例如,參數(shù)的比特表示還能夠作為程序的 處理器指令的比特表示出現(xiàn)。在步驟614中安排所述實(shí)現(xiàn)參考在處理
      器指令的位置的參數(shù)值。這保證了通過攻擊者的處理器指令改變將產(chǎn) 生不想要的參數(shù)改變。這樣可以使得解密處理的結(jié)果是不可使用的, 從內(nèi)容提供者的角度出發(fā)希望這樣的結(jié)果,因?yàn)閮?nèi)容提供者不想要他 的程序被篡改。當(dāng)然,還有可能首先識(shí)別612參數(shù)的相同部分(具有等于某些指令的比特表示的比特表示的參數(shù)),然后編輯602所述程 序,以及同時(shí)如此安排614程序從而它參考在相應(yīng)處理器指令的位置 的參數(shù)的相合部分。動(dòng)作的其他順序同樣是有可能的。在步驟604中,計(jì)算一組查詢表以用作所述程序的參數(shù)。該程序 使用查詢表實(shí)現(xiàn)從輸入值到輸出值的映射。通過使用第 一 查詢表的輸 出作為第二查詢表的輸入可以采用有可能被模糊的查詢表的網(wǎng)絡(luò)。通過多個(gè)比特表示的輸入值可以被劃分成多個(gè)值,每個(gè)值通過多個(gè)比特 的部分比特表示,以及每個(gè)值可以被饋送到其中一個(gè)查詢表中。查詢 表的結(jié)果可以通過例如使用被模糊的異或查詢表,例如異或輸出被合 并在單個(gè)輸出值中。同樣可以例如通過同屬(generic)查詢表(即不實(shí) 現(xiàn)異或的查詢表)或通過級(jí)聯(lián)輸出的其他方式合并該輸出。在步驟606中,從程序代碼選擇字以包括在參數(shù),例如查詢表中。 該字可以基于特定處理器指令關(guān)于防篡改如何關(guān)鍵進(jìn)行選擇。該字還 可以基于已經(jīng)存在于參數(shù)中或因?yàn)樘貏e容易將它包含在參數(shù)/查詢表 中的事實(shí)進(jìn)行選擇。在步驟608中,如果所述選擇的字沒有已經(jīng)存在于參數(shù)中,則通 過應(yīng)用適當(dāng)?shù)淖儞Q將它包括在參數(shù)中。例如,這樣改變輸入和/或輸出 編碼從而所述字在查詢表中的預(yù)定位置出現(xiàn)。在步驟610中,例如通 過改變分別是查詢表網(wǎng)絡(luò)中的之前和/或相繼查詢表的相應(yīng)輸出和/或 輸入編碼,執(zhí)行補(bǔ)償變換。識(shí)別與程序代碼的比特表示相一致的一部 分參數(shù)的步驟612可以包括檢查在參數(shù)中包括想要的字是否是成功 的。它還可以簡(jiǎn)單地為步驟604-610的結(jié)果。有可能將步驟614與步 驟602合并;例如能夠安排所述實(shí)現(xiàn)尋址在特定的程序代碼地址的特 定參數(shù);此后,在步驟604-610中創(chuàng)建和適配所述查詢表用于保證按 照程序的期望所述值出現(xiàn)在參數(shù)中。代碼作為密鑰的對(duì)應(yīng)部分一個(gè)實(shí)施例包括選擇指令的比特表示的多個(gè)字和創(chuàng)建包含指令
      的該比特表示的查詢表以形成'包含代碼,的查詢表。包含代碼的查 詢表包括在查詢表的網(wǎng)絡(luò)中,形成數(shù)據(jù)處理程序的參數(shù)。通常通過在 查詢表的網(wǎng)絡(luò)中包括正確適配的查詢表來補(bǔ)償包含代碼的查詢表的 效果。如此安排形成程序代碼的指令從而保存在包含代碼查詢表中所 出現(xiàn)指令的存儲(chǔ)器地址還被用于讀取包含代碼查詢表的值。一個(gè)實(shí)施例還包括應(yīng)用網(wǎng)絡(luò)的第一組查詢表于數(shù)字?jǐn)?shù)據(jù)的比特 串以獲得第 一組中間結(jié)果。相同的比特串還被應(yīng)用于包括包含代碼查 詢表的第二組查詢表以獲得第二組中間結(jié)果。合并第 一 和第二中間結(jié) 果以計(jì)算處理的數(shù)字內(nèi)容。由于指令的內(nèi)容對(duì)正確的處理數(shù)據(jù)沒有貢 獻(xiàn),第二組查詢表可能具有不想要的效果。通過調(diào)整第一組查詢表中 的值和通過正確地合并第一和第二中間結(jié)果取消該不想要的效果。在本發(fā)明的實(shí)施例中代碼一皮包含在查詢表網(wǎng)絡(luò)中的一個(gè)或多個(gè) '包含代碼,的查詢表中,通過補(bǔ)償其他表格中包含代碼查詢表的效 果取消它們的效果。查詢表網(wǎng)絡(luò)的結(jié)構(gòu)可以被特別地適配用于此。例 如,能夠添加一個(gè)或多個(gè)查詢表到網(wǎng)絡(luò),與沒有包含代碼查詢表的網(wǎng) 絡(luò)相比能夠改變存在的連接。計(jì)算查詢表的網(wǎng)絡(luò)從而包含代碼查詢表 被包括在網(wǎng)絡(luò)中,以及所述網(wǎng)絡(luò)實(shí)現(xiàn)至少部分?jǐn)?shù)據(jù)處理算法。通過這 樣,能夠在參數(shù)中存儲(chǔ)相當(dāng)大部分的代碼,以及可以實(shí)現(xiàn)高的防篡改 程度。在 一 個(gè)實(shí)施例中,通過使用代碼作為密鑰的相對(duì)應(yīng)部分實(shí)現(xiàn)防篡改。令T是包含k-比特字的查詢表。而且,令C是包含表示將被防篡 改的代碼的相同數(shù)量k-比特字的集合。通過r^rec定義新的查詢表, 這里④表示異或操作。由于2^r'④c,表格T中的查詢操作能夠被表 格T,中的查詢、表格C中的查詢、以及異或所述結(jié)果替換。想要改變 C中代碼的攻擊者將必須相應(yīng)地改變T,,因?yàn)榉駝t查詢表將不會(huì)正確 地工作。圖11圖示例如32-比特字的輸入字700,它^皮應(yīng)用于通過實(shí)例方 式概述的類型II、 III、和IV表格實(shí)現(xiàn)與AES狀態(tài)的列和AES的回合 相關(guān)聯(lián)的計(jì)算的網(wǎng)絡(luò)702。通過如上所述的混合雙射和四位字節(jié)編碼 的方式模糊所述網(wǎng)絡(luò)。取代圖示的網(wǎng)絡(luò),可以使用表示任何類型算法 的任何部分的查詢表的網(wǎng)絡(luò)。查詢表的網(wǎng)絡(luò)702與輸入700組合產(chǎn)生 字706。相同的輸入字700還被應(yīng)用于包含一個(gè)或更多包含代碼表CC
      的查詢表的網(wǎng)絡(luò)704。例如,在32-比特輸入的情況下,能夠提供四個(gè) 8-比特到32-比特查詢表CC以便給4 x 256 x 4 = 4096字節(jié)代碼提供存 儲(chǔ)。為了使用這四個(gè)8-比特到32-比特查詢表,所述輸入被分離成4 字節(jié),每個(gè)字節(jié)被應(yīng)用于其中一個(gè)查詢表,以及使用類型IV表格合 并所述結(jié)果形成輸出字708。當(dāng)查詢表的網(wǎng)絡(luò)72可以表示僅僅部分處 理算法(在本實(shí)例中,網(wǎng)絡(luò)702表示狀態(tài)一列的AES的一回合)時(shí), 通過在處理算法中創(chuàng)建包含代碼表格704作為每個(gè)網(wǎng)絡(luò)702的相對(duì)應(yīng) 部分(在本實(shí)例中,對(duì)于AES的每個(gè)回合和對(duì)于狀態(tài)的每列包括一組 包含代碼表格704 )更多的代碼能夠被包括在參數(shù)中。所述表格還能夠被不同地組織。在本實(shí)例中,網(wǎng)絡(luò)702是類似于 圖3的被模糊的查詢表網(wǎng)絡(luò)。通過給類型III網(wǎng)絡(luò)的層添加相應(yīng)類型 IV表格可以擴(kuò)展包含代碼網(wǎng)絡(luò)704。還有可能替換四個(gè)8-比特到32-比特包含代碼表CC。例如,可以使用8-比特到8-比特表格,8-比特 輸出可以被級(jí)聯(lián)以獲得32-比特輸出字708。對(duì)于普通技術(shù)人員來說組 織表格的其他方式將是顯而易見的并且可能需要適當(dāng)?shù)刂匦陆M織網(wǎng) 絡(luò)702。只要網(wǎng)絡(luò)702被適當(dāng)?shù)馗淖儊砣∠湫Ч?,就能夠利用較大 數(shù)量的自由度設(shè)計(jì)查詢表的網(wǎng)絡(luò)704。查詢表網(wǎng)絡(luò)704的結(jié)果是輸出 字708。例如4吏用類型IV查詢表710合并輸出字706和708以獲得解 密的字712。取代類型IV網(wǎng)絡(luò)710,能夠使用簡(jiǎn)單的異或操作或其他 適當(dāng)選擇的算子。由于攻擊者相對(duì)難以對(duì)于對(duì)包含代碼表704作出的改變(即,對(duì) 程序代碼的指令作出的改變)補(bǔ)償查詢表702,所述防篡改被增強(qiáng)。有可能添加類似于包含代碼網(wǎng)絡(luò)704的多個(gè)包含代碼網(wǎng)絡(luò)作為表 的單個(gè)網(wǎng)絡(luò)702的相對(duì)應(yīng)部分。通過擴(kuò)展類型IV表格的網(wǎng)絡(luò)710這 些包含代碼網(wǎng)絡(luò)704的輸出字708全部被與字706合并。為了保持高 的防篡改程度,利用類型III和類型IV表格的層(例如實(shí)現(xiàn)混合雙射) 可以擴(kuò)展包含代碼網(wǎng)絡(luò)704以加擾包含代碼查詢表的輸出。在至多一 個(gè)包含代碼網(wǎng)絡(luò)704中這種擴(kuò)展可以被省略而不危及防篡改。圖12圖示本發(fā)明的實(shí)施例。該圖顯示諸如用于與數(shù)字內(nèi)容提供 者進(jìn)行連接的到因特網(wǎng)的連接的通信端口 895。還能夠從諸如DVD或 CD的介質(zhì)896獲得該內(nèi)容。典型使用通過處理器892使用存儲(chǔ)器891 執(zhí)行的媒體播放器再現(xiàn)PC上的數(shù)字內(nèi)容。對(duì)于特定內(nèi)容格式,這些
      播放器能夠執(zhí)行各自的插件程序,這些插件程序用于執(zhí)行對(duì)應(yīng)于經(jīng)由通信端口 895和/或介質(zhì)896所獲得內(nèi)容的特定格式解碼。這些內(nèi)容格 式可以包括AVI、 DV、運(yùn)動(dòng)JPEG、 MPEG-1、 MPEG-2、 MPEG —4、 WMV、音頻CD、 MP3、 WMA、 WAV、 AIFF/AIFC、 AU等等。為了 數(shù)字權(quán)利管理,可以使用安全的插件,該插件不僅解碼內(nèi)容而且解密 該內(nèi)容。這種插件包括存儲(chǔ)在存儲(chǔ)器891中的處理器指令和參數(shù)(諸 如被模糊的查詢表)。處理器指令和參數(shù)可以如上所述相互重疊;在 這種情況下,在插件的執(zhí)行期間存儲(chǔ)器891中的某些存儲(chǔ)位置包含表 示處理器指令的值和參數(shù)值??梢蕴峁┯脩糨斎?94來從用戶獲得指 示將被再現(xiàn)內(nèi)容的命令,以及提供顯示器893和/或揚(yáng)聲器用于再現(xiàn)解 碼和/或解密的內(nèi)容。防篡改軟件正如這里所述,查詢表至少部分以程序代碼的形式,可以形成在 解密處理中使用的用戶密鑰的部分評(píng)估,例如以密碼的回合密鑰的形 式。該密碼優(yōu)選是塊密碼,更優(yōu)選是如AES或Lombok的已知類型密碼。本發(fā)明可以應(yīng)用于實(shí)現(xiàn)大量的回合的加密或解密算法。諸如AES或Lombok的示意加密或解密處理的每個(gè)回合函數(shù)將前一回合(或初始輸入)的輸出比特映射到下一回合(或最后輸出)的輸入比特?;睾系臄?shù)量可以隨每個(gè)特定的實(shí)現(xiàn)發(fā)生變化。例如,AES使用10、 12或14次回合,而Lombok可以卩吏用16次回合。密鑰的大小可以隨每個(gè)特定的實(shí)現(xiàn)發(fā)生變化。例如,AES可以使 用128、 192或256-比特用戶密鑰,而Lombok可以使用128比特密 鑰。在特定實(shí)現(xiàn)中使用的密鑰次序表可以是從用戶密鑰推導(dǎo)的擴(kuò)展密 鑰的形式。以下通過實(shí)例的方式描述如應(yīng)用于Lombok密碼的特定實(shí)現(xiàn)。 Lombok是由16回合構(gòu)成的Feistel結(jié)構(gòu)密碼。除使用的回合密鑰 值以及在最后回合中缺少交換之外每個(gè)回合是相同的。Lombok的操 作類似于AES,在操作中實(shí)現(xiàn)大量的加密/解密回合,在回合之間執(zhí)行 字節(jié)替換、字節(jié)旋轉(zhuǎn)和列混合函數(shù)。 Lombok中的回合函數(shù)將32-比特輸入映射到32-比特輸出。在圖 13中顯示這種實(shí)現(xiàn)的示意性表示。32-比特輸入11被分成8個(gè)4-比特 四位字節(jié),每個(gè)四位字節(jié)一皮輸入到8個(gè)查詢表12中。表格TVTo中每 個(gè)表格包括16 ( =24)行和32列比特并且映射輸入4-比特四位字節(jié) 到相應(yīng)的32-比特輸出字x7-x0。每個(gè)4-比特四位字節(jié)提供定義表格 Tj的32-比特輸出的地址行。在步驟13逐位(通過符號(hào)①表示)異或 32-比特輸出字x7到x0,產(chǎn)生單個(gè)32-比特輸出字。對(duì)于任意32-比特字ai,這里0《i《6,由于aj④arO,<formula>formula see original document page 34</formula>(方程3 )所以,如果如上所述每個(gè)表格Ti的所有行與相應(yīng)的值ai被逐位異或,出最后異或操作13產(chǎn)生的輸出將與使用不包含aj值的表格產(chǎn)生的輸出相同。每個(gè)查詢表Ti可以通過32列和16行的矩陣表示,表中的每個(gè)元 素(比特)通過ti,j,k表示,這里i表示表格編號(hào)以及j, k分別是行和列索引。對(duì)于每個(gè)表格Tj, 0《i < 6,如通過值ai變換的變換后表格Tj,的每 個(gè)元素現(xiàn)在變?yōu)镃/^、k aw(方程 4)這里L(fēng)p是表格Ti,的變換后元素以及ai,p是32比特字aj的第p個(gè)比特。由于值aj能夠是任意的,即它們的值對(duì)回合函數(shù)的輸出14沒有 影響,這些值可以被如此選擇,從而值C這里0《i《6,即表格To, 到T6,中每個(gè)表格的第一行的元素,對(duì)應(yīng)于比特表示加密/解密程序代碼本身的比特。如果程序代碼通過一系列比特Co-Cq表示,這里q足夠的大以提供足夠的比特與每個(gè)表格的第一行進(jìn)行合并,然后表格TV 的元素通過以下給出 <formula>formula see original document page 35</formula> (方程 5)對(duì)于所有j,這里<formula>formula see original document page 35</formula> (方程 6) 因此,程序的順序比特Cp+32i形成每個(gè)表格Tj,第一行中的比特。為了編碼所述表格,給定任意系列比特和一組表格T(rT7,需要簡(jiǎn)單 地根據(jù)每個(gè)表格第一行中的字節(jié)計(jì)算字節(jié)ai, 0《i《6。然后根據(jù)ao-a6 的結(jié)果計(jì)算表格TV即<formula>formula see original document page 35</formula> (方程7) (Kj< 15和CKp<31。采用以上描述的方式,單個(gè)回合的8個(gè)表格能夠包含程序代碼的 7乂 32 = 224個(gè)比特。由于總共有16個(gè)回合,所以有可能合并程序代 碼的3584個(gè)比特與一個(gè)Lombok實(shí)現(xiàn)的完整密鑰。在總的方面,利用由n個(gè)表格構(gòu)成的單個(gè)回合,每個(gè)回合具有b-比特輸入字節(jié),在每個(gè)回合密鑰中能夠包含高達(dá)程序代碼的(n-l) b 個(gè)比特。對(duì)于總共r個(gè)回合,總共能夠包含程序代碼的r (n-l ) b個(gè) 比特。全文中使用的術(shù)語(yǔ)'字節(jié),意圖用于指代被作為一個(gè)數(shù)據(jù)單元處 理的一組比特,除非特別聲明,其意義并不局限于由任何特定數(shù)量的 比特構(gòu)成的字節(jié)。應(yīng)該明白在程序代碼中包括的比特并不需要以如上所述的順序 的次序被包含,而是可以例如根據(jù)程序代碼的任何特定部分或該代碼 的選擇部分推導(dǎo),以及以任何預(yù)定的次序。程序代碼的這樣一個(gè)部分 可以方便地被稱為c,,以及上述的處理同樣適用于這個(gè)部分。優(yōu)選地, 包含在表格中的程序代碼的部分是加密或解密處理、或以其它方式控 制訪問和/或許可、處理驗(yàn)證、或限制執(zhí)行或處理構(gòu)成查詢表所提供功 能的計(jì)算的操作所必須的部分。通過簡(jiǎn)化實(shí)例的方式圖示,圖14到17顯示上述處理實(shí)現(xiàn)的各種 組成,取代僅使用5個(gè)表格,每個(gè)表格由5行8-比特字節(jié)構(gòu)成。在圖 14中以四個(gè)8-比特字節(jié)的形式顯示程序代碼21的部分,其表示如上 所述程序代碼c的部分c,。圖15顯示實(shí)現(xiàn)正在討論中的程序的函數(shù) 的一系列5個(gè)表格T。到T4 31-35。這種函數(shù)可以是密碼的,在這種情 況下表格可以執(zhí)行塊密碼的回合密鑰的函數(shù),盡管取決于查詢表的其 他函數(shù)同樣是有可能的。圖16顯示程序代碼21的各個(gè)字節(jié)如何被包 含在修改的表格TV到T4, 41-45中,其中程序代碼21中的各個(gè)字節(jié)形 成表格To,到TV中每個(gè)表格的第一行。根據(jù)以上方程6,給定程序代碼21和原始表格31-34,能夠確定 字節(jié)aj的值。a0 =011101110 00001010 = 01111101 =01010101額111110 = 10101011(方程 8)a2 =iiuiin oiiooioi = ioonoioa3 =10011001 0101111 = 11110110通過將每一行和適當(dāng)?shù)腶j值進(jìn)行合并,表格To,到T3,41-44的剩 余值根據(jù)方程5隨后產(chǎn)生。例如,在表格T。,中,通過如下將所述行 和ao進(jìn)行合并給出這些值ru[i〗=oioiiioi onnoi=ooiooooo r。[2]=iiiooioo oiiiiioi=iooiiooi 、(方程 9)r0[3〗=oooooi oiii01=oooiioo r0[4] = oi ioooio oi ii noi = 00011 ill而在以上方程8之后,通過下式給出最后表格T4, <formula>formula see original document page 37</formula>(方程 io)在圖17中顯示完整的一組表格To,到T4, 41-45。能夠看出,當(dāng)比較圖15和圖n中的表格時(shí),根據(jù)方程3,涉及來自每個(gè)表格的一個(gè) 字節(jié)的任何異或搡作的結(jié)果對(duì)于任何一組表格產(chǎn)生相同的輸出,盡管表格41-45中的所有各個(gè)字節(jié)不同于表格31-35中的字節(jié)。表格31-35 中a。到a3的值和原始值并不立即從表格41-45可恢復(fù)。不改變查詢表 41-45的至少部分輸出就不能夠改變程序代碼21。圖18顯示合并的程序代碼和表格41-45的字節(jié)51被映射到計(jì)算 機(jī)存儲(chǔ)器中的字節(jié)52的優(yōu)選次序的示意圖。箭頭53指示程序代碼的 字節(jié)的映射操作。包含在表格41 -45中的程序代碼21部分可以是檢驗(yàn)被許可操作或 對(duì)于處理執(zhí)行實(shí)現(xiàn)限制的部分。可能的實(shí)例是程序代碼中的時(shí)間檢驗(yàn) 例程從而根據(jù)項(xiàng)上的時(shí)間標(biāo)記,密鑰對(duì)于有限的時(shí)間是有效的。然后 能夠例如對(duì)出租的視頻授予有限的時(shí)間周期的訪問權(quán),該視頻通過密 鑰加密以及當(dāng)利用視頻和智能卡或其他解密密鑰載體操作時(shí)在播放 器中被解密。另 一個(gè)實(shí)例可以是驗(yàn)證是否呼叫的號(hào)碼被許可的電話機(jī) 中的密鑰。應(yīng)該明白,不必將程序代碼包含在所有回合密鑰和/或密碼鏈的單 個(gè)回合的所有表格中,因?yàn)槊艽a鏈中的每個(gè)塊基本上是不相關(guān)的。不 是所有的查詢表包含程序代碼的比特時(shí),本發(fā)明的目的仍然被實(shí)現(xiàn), 盡管在較低優(yōu)選的程度。根據(jù)以上給出的原理,特定實(shí)施例將位于本 發(fā)明的范圍中,如果來自每個(gè)表格Tj,的輸出的最后異或操作使得字節(jié) ai從操作中被刪除,導(dǎo)致輸出字節(jié)對(duì)于任何給定的輸入字節(jié)都與使用 初始表格Tj所得到的相同。前面的特定實(shí)例針對(duì)在Lombok密碼中本發(fā)明的實(shí)現(xiàn)。但是,通 過適當(dāng)?shù)母淖?,本發(fā)明能夠同樣應(yīng)用于可以在計(jì)算中使用類似表格的 其他程序,而并不局限于涉及塊密碼操作的應(yīng)用。例如,在其他數(shù)據(jù) 處理應(yīng)用中使用的表格可以使用由各種數(shù)量的比特構(gòu)成的輸出。除了 2的冪,諸如在Lombok或AES的情況下25或27,根據(jù)本發(fā)明還可以 使用諸如包括18比特輸出的IDCT (逆離散余弦變換)的格式。包括上述特征的可執(zhí)行程序代碼將防止篡改,原因在于對(duì)于形成 查詢表的程序代碼部分的任何修改將必然地修改由查詢表構(gòu)成的函 數(shù)。在所述查詢表是被部分評(píng)估密鑰的情況下,用于執(zhí)行加密或解密 函數(shù)的程序的修改將會(huì)使得密鑰無效。因此被修改成統(tǒng)一 的密鑰和程序形式的程序代碼能夠提供能夠 給用戶提供條件性訪問的可執(zhí)行程序或插件組件加密數(shù)據(jù)的基礎(chǔ)。在 圖19中顯示產(chǎn)生這種統(tǒng)一密鑰的操作的示意圖,以及在圖20中顯示 這種密鑰/程序的操作。在步驟62中將程序代碼61編譯成一 系列比特。 在步驟65中將用戶密鑰變換成一系列表格。在步驟63中合并這些兩 個(gè)輸出以形成統(tǒng)一密鑰66。取代用戶密鑰64,作為例如支付^t據(jù)4吏 用費(fèi)用的結(jié)果,統(tǒng)一密鑰66被提供給用戶。在圖20中,程序和密鑰都使用統(tǒng)一密鑰66,合并密鑰與加密的 內(nèi)容71以給用戶產(chǎn)生解密的內(nèi)容73。由于通過如上所述的處理保護(hù)程序代碼防止篡改,因此用戶非常 難以克服用戶密鑰提供的保護(hù)措施,因?yàn)槌绦虼a61的任何修改將 導(dǎo)致統(tǒng)一密鑰66變得無效。在總的方面,密鑰和解密代碼的部分評(píng)估導(dǎo)致不丟失密鑰地解密 內(nèi)容的代碼和數(shù)據(jù)。令人驚訝地,如果它是利用像Lombok或AES的 解密算法的密鑰的部分評(píng)估,然后評(píng)估的結(jié)果是遵循要求的原則并且 所以能夠被變換成統(tǒng)一的代碼和數(shù)據(jù)(密鑰)形式的數(shù)據(jù)和代碼。
      程序可以使用通過合并操作(通過 指示)鏈接的查詢表(如在DES、 Lombok和AES的情況中)編輯結(jié)果,像這里n是足夠大的自然數(shù)以及運(yùn)算符①和Tj的值的類型符合V;c,;^:(;c十;0①2n④(盧z) Va3jc一1 : ;c十義_1 =6然后這些表格具有包含長(zhǎng)度至多k的程序代碼的能力,co; ck,這里k<n,結(jié)果是修改代碼的任何部分導(dǎo)致鏈接表(在加密或解 密情況下它是密鑰)的功能丟失。應(yīng)該明白,除異或操作之外,諸如加法、減法或乘法的其他合并 操作(如果T中沒有值是O)也符合上述的先決條件。記號(hào)r v: V!' e ^m(r): :Tv [z] = r[/]十v令m在dom (T)中是固定的 然后ro[x?!舰堋璭rUr。W十…d]群、W這里現(xiàn)在應(yīng)該注意到程序總是c。; ...; Cn-,的序列。對(duì)于一定的m我們現(xiàn)在有<formula>formula see original document page 40</formula>但是它們?nèi)圆皇且韵嗬^的次序。通過創(chuàng)建新的<formula>formula see original document page 40</formula>我們發(fā)現(xiàn)值co;cn.,以我們希望的次序被映射。 在程序中通過T"替換T能夠就代碼大小而言影響程序長(zhǎng)度。但 是在這種情況下它不會(huì),因?yàn)橛?jì)算Tj[Xi](被計(jì)算為地址(TQ) +>大 小(T) + Xi)顯示指令方法與T,,[ (Xi'n) +i](被計(jì)算為地址(T,,) + Xi*n+i)沒有任何不同。應(yīng)該明白以上僅僅是合并程序代碼與表格的許多方式的其中一 種。變型能夠例如包含在每個(gè)表格的更多行上擴(kuò)展代碼,或?qū),n使 用不同的表格消除其他表格輸出的結(jié)果。代碼的模塊還能夠非連續(xù)地 分布在密鑰上。為了避免疑問,應(yīng)該明白術(shù)語(yǔ)在全文中所稱的"表格"意圖用于 包含以任何適當(dāng)?shù)慕Y(jié)構(gòu)化形式的數(shù)據(jù)或代碼的表示,無論是在計(jì)算機(jī) 存儲(chǔ)器中還是存儲(chǔ)在諸如盤的可尋址的物理介質(zhì)中,而不僅僅是當(dāng)呈 現(xiàn)時(shí)以諸如為了清楚起見在全文中示出的二維格式。其他實(shí)施例意圖位于附屬權(quán)利要求書的范圍內(nèi)。在以上的描述中,參考附圖,描述了一種將程序代碼包含在查詢 表中的方法,包括以下步驟提供包括多個(gè)程序比特的程序代碼21; 提供第一多個(gè)查詢表Ti 31-35,每個(gè)查詢表用于將輸入字節(jié)的一部分 映射到輸出字節(jié);以及合并一個(gè)或更多查詢表Ti的多個(gè)元素與一系列 字節(jié)ai以產(chǎn)生第二多個(gè)查詢表T,I 41-45,該系列字節(jié)被如此選擇從而 第二查詢表的預(yù)定部分包含至少程序代碼的一部分,因此來自第二多個(gè)i;表獲得的2相同的。"' ° 、 — 一 ^保護(hù)數(shù)據(jù)處理系統(tǒng)的完整性在上文中,已經(jīng)強(qiáng)調(diào)了在查詢表的網(wǎng)絡(luò)中包含代碼。但是,使用 相同的方法,有可能將任何預(yù)先定義的數(shù)據(jù)串包含在查詢表的網(wǎng)絡(luò)
      中。而且,查詢表的網(wǎng)絡(luò)僅僅是表示數(shù)據(jù)處理函數(shù)的一組參數(shù)的實(shí)例。 代碼或任何預(yù)先定義的數(shù)據(jù)串,可以被包含在所述組參數(shù)的比特表示 中,特別是如果該組參數(shù)是足夠冗余的。這意味著通過多個(gè)不同組參 數(shù)的任何一組參數(shù)能夠表示單個(gè)數(shù)據(jù)處理函數(shù),所述組參數(shù)包括其比 特表示包括數(shù)據(jù)串的至少一組參數(shù)。圖21圖示保護(hù)數(shù)據(jù)處理系統(tǒng)完整性的方法的處理步驟。該數(shù)據(jù) 處理系統(tǒng)包括例如軟件應(yīng)用程序或機(jī)頂盒或智能卡。所述數(shù)據(jù)處理系 統(tǒng)執(zhí)行的數(shù)據(jù)處理包括例如數(shù)據(jù)的加密、解密、或認(rèn)證。該數(shù)據(jù)能夠 是任何類型的數(shù)據(jù)。例如,該數(shù)據(jù)包括音頻或視頻流。如在方塊902中圖示,所述方法包括確定將被保護(hù)的數(shù)據(jù)串。該 數(shù)據(jù)串例如是需要保護(hù)的任何數(shù)據(jù)的字符串或字節(jié)串表示。數(shù)據(jù)串包 括例如在系統(tǒng)的軟件中出現(xiàn)的處理器指令的序列。特別是在數(shù)字權(quán)利 管理中涉及的處理器指令常常遭受篡改,并且是保護(hù)的適當(dāng)對(duì)象。其 他數(shù)據(jù)串包括例如系統(tǒng)的硬件標(biāo)識(shí)符。這種硬件標(biāo)識(shí)符包括例如硬盤 標(biāo)識(shí)符、網(wǎng)絡(luò)接口的MAC地址、或CPU標(biāo)識(shí)符。優(yōu)選地,所述數(shù)據(jù) 串包括硬件標(biāo)識(shí)符本身和在檢索硬件標(biāo)識(shí)符中涉及的處理器指令。所 述數(shù)據(jù)串可以例如包括在質(zhì)詢/響應(yīng)協(xié)議中使用的數(shù)據(jù)。例如,通過系 統(tǒng)發(fā)送質(zhì)詢消息到返回響應(yīng)消息的服務(wù)器。質(zhì)詢消息和/或響應(yīng)消息之 一或二者可以包含在將被保護(hù)的數(shù)據(jù)串中。而且,可以確定多個(gè)數(shù)據(jù) 串用于保護(hù)。例如,多個(gè)處理器代碼段可以被包括獨(dú)立的串中。而且, 經(jīng)由不同的數(shù)據(jù)串可以保護(hù)不同類型的數(shù)據(jù)。數(shù)據(jù)串的完整性應(yīng)該是 數(shù)據(jù)處理系統(tǒng)的完整性的指示。優(yōu)選地,從系統(tǒng)中可獲得的數(shù)據(jù)選擇 數(shù)據(jù)串。如果所述串被改變,系統(tǒng)本身也被改變。將被保護(hù)的數(shù)據(jù)串 還可以從系統(tǒng)有關(guān)的信息,諸如硬件標(biāo)識(shí)符或處理器指令或質(zhì)詢/響應(yīng) 協(xié)議中的消息中推導(dǎo)。如在方塊904中圖示,所述方法包括計(jì)算表示預(yù)定的數(shù)據(jù)處理函 數(shù)的一組參數(shù)。數(shù)據(jù)處理函數(shù)優(yōu)選被完全地確定,即數(shù)據(jù)處理函數(shù)能 夠用于處理數(shù)據(jù)而不需要任何其他的信息。例如,數(shù)據(jù)處理函數(shù)是具 有特定密鑰的解密算法。具有另一個(gè)密鑰的相同的解密算法將導(dǎo)致不 同的數(shù)據(jù)處理函數(shù)。確定數(shù)據(jù)處理函數(shù)包括確定解密算法(例如DES 或AES)和確定算法的密鑰??商鎿Q地,數(shù)據(jù)處理函數(shù)還提供處理數(shù) 據(jù)的增強(qiáng),諸如增強(qiáng)的對(duì)比度和增強(qiáng)的白平衡。所述組參數(shù)具有冗余。 多個(gè)不同組參數(shù)用于表示相同的數(shù)據(jù)處理函數(shù)(例如不同組參數(shù)能 夠用于表示相同的密鑰)。這些不同組參數(shù)與系統(tǒng)相兼容,這意味著 當(dāng)系統(tǒng)被提供所述組參數(shù)的任何一組時(shí),其被安排用于根據(jù)數(shù)據(jù)處理 函數(shù)處理數(shù)據(jù)。當(dāng)計(jì)算所述組參數(shù)時(shí),根據(jù)系統(tǒng)的特性計(jì)算它們,從 而當(dāng)系統(tǒng)被提供該組參數(shù)時(shí),其因此被安排用于根據(jù)數(shù)據(jù)處理函數(shù)處 理數(shù)據(jù),從而該組參數(shù)的比特表示包括將被保護(hù)的數(shù)據(jù)串。對(duì)于所述 組參數(shù)包括查詢表網(wǎng)絡(luò)的至少一部分的情況,在以上已經(jīng)描述了將數(shù) 據(jù)串包含在所述組參數(shù)的比特表示中的若干方式。盡管查詢表的網(wǎng)絡(luò) 非常適于用作一組參數(shù),但是它不是唯一的可能性。能夠以許多其他 的方式引入冗余。例如,數(shù)據(jù)處理函數(shù)可以包含計(jì)算所述組參數(shù)的散 列函數(shù)。具有散列函數(shù)的正確知識(shí)和控制,考慮到這種描述的本領(lǐng)域所述組參數(shù)中,而不改變散列函數(shù)結(jié)果并且所以不改變數(shù)據(jù)處理函數(shù) 的結(jié)果。如在方塊906中圖示,所述方法包括使得所述系統(tǒng)能夠根據(jù)所述 組參數(shù)處理數(shù)據(jù)。該步驟能夠以許多不同的方式實(shí)現(xiàn)。該系統(tǒng)需要處 理硬件和/或軟件來輸入數(shù)據(jù),根據(jù)所述組參數(shù)處理數(shù)據(jù),和輸出數(shù)據(jù)。 這已經(jīng)參考圖12進(jìn)行說明。該方法還包含給系統(tǒng)提供對(duì)所述組參數(shù) 的訪問。在一個(gè)實(shí)例中,在系統(tǒng)中硬編碼完整的所述組參數(shù)。例如, 在存儲(chǔ)器或存儲(chǔ)介質(zhì)中存儲(chǔ)該參數(shù)。要被保護(hù)的數(shù)據(jù)串存儲(chǔ)在存儲(chǔ)介 質(zhì)中,并優(yōu)選具有雙重功能,例如相同的存儲(chǔ)器位置用作存儲(chǔ)一個(gè)或 更多處理器指令的位置和用作存儲(chǔ)所述組參數(shù)的一部分的位置,處理 器指令的比特表示等于所述組參數(shù)的該部分的比特表示。如果要被保 護(hù)的數(shù)據(jù)串包括硬件標(biāo)識(shí)符,通常數(shù)據(jù)串不被永久地存儲(chǔ)在存儲(chǔ)器和 存儲(chǔ)介質(zhì)中。而是,系統(tǒng)包括從硬件的特定片斷獲得標(biāo)識(shí)符的代碼。 有利地代碼的這個(gè)片斷也是受保護(hù)的數(shù)據(jù)串。在另一個(gè)實(shí)例中,從諸如廣播介質(zhì)或經(jīng)由電話網(wǎng)絡(luò)、因特網(wǎng)、或 可移除存儲(chǔ)介質(zhì)的外部來源提供所述組參數(shù)的一部分。在某些情況下 從外部來源,例如智能卡或服務(wù)器,經(jīng)由質(zhì)詢/響應(yīng)協(xié)議提供所述組參 數(shù)的一部分。如上所述所述組參數(shù)的另一個(gè)部分被存儲(chǔ)在系統(tǒng)中。在 絕大多數(shù)實(shí)施例中,系統(tǒng)僅當(dāng)它訪問完整的所述組參數(shù)時(shí)才能夠處理 數(shù)據(jù)。在另一個(gè)實(shí)例中,從外部來源提供完整的該組參數(shù)。
      圖22圖示本發(fā)明的實(shí)施例。該圖顯示用于保護(hù)第二系統(tǒng)922的 完整性的第一系統(tǒng)920。第一系統(tǒng)包括確定以上述方式將被保護(hù)的數(shù) 據(jù)串930的串確定器924。數(shù)據(jù)串的完整性形成第二系統(tǒng)完整性的指 示。第一系統(tǒng)920包括用于使用該組參數(shù)中的冗余計(jì)算表示預(yù)定數(shù)據(jù) 處理函數(shù)的一組參數(shù)932以將數(shù)據(jù)串包含在該組參數(shù)的比特表示中的 參數(shù)確定器926。第一系統(tǒng)920還包括使得第二系統(tǒng)能夠根據(jù)該組參 數(shù)處理數(shù)據(jù)的裝置928。在某些實(shí)施例中,裝置928對(duì)于第二系統(tǒng)922 的實(shí)現(xiàn)具有影響。在某些實(shí)施例中,裝置928與第二系統(tǒng)922進(jìn)行通 信以給第二系統(tǒng)922提供使它能夠執(zhí)行所述處理的信息。例如,裝置 928發(fā)送或?qū)е掳l(fā)送數(shù)據(jù)串930的至少一部分和/或所述組參數(shù)932的 至少一部分。系統(tǒng)920能夠以硬件和/或軟件實(shí)現(xiàn)。第二系統(tǒng)922是數(shù)據(jù)處理系統(tǒng)。它包括存儲(chǔ)將被保護(hù)的數(shù)據(jù)串的 存儲(chǔ)器930。數(shù)據(jù)串的完整性形成數(shù)據(jù)處理系統(tǒng)的完整性的指示。第 二系統(tǒng)922還包括存儲(chǔ)表示預(yù)定數(shù)據(jù)處理函數(shù)的一組參數(shù)的存儲(chǔ)器 932。兩個(gè)存儲(chǔ)器930和932可以部分或全部地重疊。系統(tǒng)922可以 從內(nèi)部或外部來源拷貝數(shù)據(jù)串和/或所述組參數(shù)到存儲(chǔ)器930和932 中。使用所述組參數(shù)中的冗余,該數(shù)據(jù)串被包含在該組參數(shù)的比特表 示中。第二系統(tǒng)還包括經(jīng)由數(shù)據(jù)輸入936根據(jù)所述組參數(shù)932處理數(shù) 據(jù),以經(jīng)由數(shù)據(jù)輸出938提供已處理數(shù)據(jù)的處理模塊934。例如,輸 入936被連接到廣播網(wǎng)絡(luò),以及輸出938被連接到電視的視頻輸入。 第二系統(tǒng)922能夠以硬件和/或軟件實(shí)現(xiàn)。將會(huì)理解本發(fā)明還擴(kuò)展到計(jì)算機(jī)程序,特別是位于載體上或載體 中適于實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)程序。該程序可以是源代碼、目標(biāo)代碼的 形式、諸如部分編譯形式的代碼中間源和目標(biāo)代碼,或適于實(shí)現(xiàn)根據(jù) 本發(fā)明所述方法的任何其他形式。所述載體可以是能夠承栽所述程序 的任何實(shí)體或裝置。例如,該載體可以包括諸如ROM,例如CD ROM 或半導(dǎo)體ROM的存儲(chǔ)介質(zhì),或例如軟盤或硬盤的磁記錄介質(zhì)。進(jìn)一 步,所述載體可以是諸如電或光信號(hào)的可傳輸?shù)妮d體,所述信號(hào)可以 經(jīng)由電纜或光纜或通過無線電或其他方式被傳送。當(dāng)程序在這種信號(hào) 中被實(shí)施時(shí),所述載體可以通過這種電纜或其他裝置或方式構(gòu)成???替換地,所述載體可以是嵌入所述程序的集成電路,該集成電路被適 配用于執(zhí)行有關(guān)的方法或在有關(guān)方法的執(zhí)行中使用。
      應(yīng)該注意到上述實(shí)施例圖示而不是限制本發(fā)明,本領(lǐng)域的普通技 術(shù)人員將會(huì)能夠設(shè)計(jì)許多替換的實(shí)施例而不背離所附權(quán)利要求書的 范圍。在權(quán)利要求書中,放置在括號(hào)之間的任何附圖標(biāo)記不應(yīng)該解釋 為限制本發(fā)明。使用動(dòng)詞"包括"及其變形并不排除除權(quán)利要求中所 闡述單元或步驟之外的其他單元或步驟的存在。單元之前的冠詞"一 個(gè),,并不排除多個(gè)這些單元的存在。本發(fā)明可以通過包括若干分立元 件的硬件,或通過適當(dāng)編程的計(jì)算機(jī)實(shí)現(xiàn)。在裝置權(quán)利要求中列舉了 若干的裝置,這些裝置的若干可以通過一個(gè)并且相同的硬件項(xiàng)實(shí)施。 僅僅在相互不同的從屬權(quán)利要求中闡述一定措施的事實(shí)并不表明這 些措施的組合不能夠被有利地使用。
      權(quán)利要求
      1. 一種保護(hù)數(shù)據(jù)處理系統(tǒng)的完整性的方法,該方法包括-確定(902)要被保護(hù)的數(shù)據(jù)串,該數(shù)據(jù)串的完整性是數(shù)據(jù)處理系統(tǒng)的完整性的指示;-計(jì)算(904)至少部分表示預(yù)定數(shù)據(jù)處理函數(shù)的一組參數(shù),使用該組參數(shù)中的冗余將數(shù)據(jù)串并入到所述組參數(shù)的比特表示中;-使得(906)系統(tǒng)能夠根據(jù)數(shù)據(jù)處理函數(shù)使用所述組參數(shù)處理數(shù)據(jù),其中在所述組參數(shù)的比特表示中數(shù)據(jù)串的改變使得系統(tǒng)失去根據(jù)數(shù)據(jù)處理函數(shù)處理數(shù)據(jù)的能力。
      2. 根據(jù)權(quán)利要求1所述的方法,其中所述組參數(shù)表示包括密鑰 的至少部分密碼算法。
      3. 根據(jù)權(quán)利要求1所述的方法,其中所述組參數(shù)表示查詢表的 網(wǎng)絡(luò)。
      4. 根據(jù)權(quán)利要求3所述的方法,其中所述查詢表的網(wǎng)絡(luò)包括數(shù) 據(jù)處理算法的白盒子實(shí)現(xiàn)的多個(gè)查詢表。
      5. 根據(jù)權(quán)利要求4所述的方法,其中所述數(shù)據(jù)處理算法包括密碼算法。
      6. 根據(jù)權(quán)利要求1所述的方法,還包括 -給所述系統(tǒng)提供所述組參數(shù),要被保護(hù)的數(shù)據(jù)串除外;和-使得該系統(tǒng)能夠從系統(tǒng)的執(zhí)行環(huán)境獲得所述數(shù)據(jù)串。
      7. 根據(jù)權(quán)利要求1所述的方法,還包括-給所述系統(tǒng)提供所述組參數(shù),除要被保護(hù)的數(shù)據(jù)串之外;和 -使得該系統(tǒng)能夠通過質(zhì)詢/響應(yīng)協(xié)議獲得數(shù)據(jù)串。
      8. 根據(jù)權(quán)利要求1所述的方法,還包括-使得所述系統(tǒng)能夠從成為該系統(tǒng) 一 部分的計(jì)算機(jī)可執(zhí)行的代 碼推導(dǎo)所述數(shù)據(jù)串。
      9. 根據(jù)權(quán)利要求8所述的方法,其中所述計(jì)算機(jī)可執(zhí)行代碼包 括一組指令的至少一部分,該指令用于確立系統(tǒng)的可靠性或用于實(shí)施許可控制。
      10. 根據(jù)權(quán)利要求1所述的方法,其中所述要被保護(hù)的數(shù)據(jù)串包 括至少以下之一的表示-石更件標(biāo)識(shí)符, _要被處理的內(nèi)容的 一 部分, -計(jì)算機(jī)可執(zhí)行代碼, _處理器指令, - 口令,或-系統(tǒng)被安排用于通過質(zhì)詢/響應(yīng)協(xié)議獲得的響應(yīng)。
      11. 根據(jù)權(quán)利要求1所述的方法,其中所述組參數(shù)包括多個(gè)查詢 表以及選擇該組參數(shù)的步驟包括提供第一多個(gè)查詢表Ti( 31-35),每個(gè)查詢表用于將輸入字節(jié)的 一部分映射到輸出字節(jié);和組合一個(gè)或更多查詢表Tj的多個(gè)元素和一系列字節(jié)ai以產(chǎn)生第二 多個(gè)查詢表T,i (41-45),所述系列字節(jié)被如此選擇從而使得第二查 詢表的預(yù)定部分包含要被保護(hù)的數(shù)據(jù)串,以及使得來自第二多個(gè)查詢一多:查詢表獲得的是 相同的。' ° '—— ^
      12. 根據(jù)權(quán)利要求11所述的方法, -還包括提供包括多個(gè)程序比特的程序代碼;和-其中要被保護(hù)的數(shù)據(jù)串是所述程序代碼的至少 一部分。
      13. 根據(jù)權(quán)利要求1所述的方法,其中計(jì)算所述組參數(shù)的步驟包括-計(jì)算(604 )表示密鑰的查詢表的網(wǎng)絡(luò);-選擇(606 )要被保護(hù)的數(shù)據(jù)串的至少一個(gè)字用于包括在至少一個(gè)查詢表中;-通過應(yīng)用變換(608 )到查詢表的元素在至少一個(gè)查詢表中包 括所述字;-通過應(yīng)用反轉(zhuǎn)所述變換(608 )的效果的補(bǔ)償變換(610)來補(bǔ) 償所述變換;以及-使用變換的查詢表的網(wǎng)絡(luò)作為參數(shù)。
      14. 根據(jù)權(quán)利要求13所述的方法,其中要被保護(hù)的數(shù)據(jù)串是計(jì) 算機(jī)可執(zhí)行代碼的比特表示。
      15. 根據(jù)權(quán)利要求13所述的方法,還包括-安排查詢表網(wǎng)絡(luò)中的第一查詢表例如f(t,(x))的輸出編碼例如f 和查詢表網(wǎng)絡(luò)中的第二查詢表例如t2(廣(x))的輸入解碼例如f1,該輸入解碼反轉(zhuǎn)輸出編碼的效果例如t2(f、f(t,(X))))-t2(t,(X)),從而所選擇的字被包括在以下至少之一中第一查詢表例如f(t"x))和第二查詢表例如t2(f乂X))。
      16. 根據(jù)權(quán)利要求15所述的方法,其中所選擇的字被包括在第 一查詢表例如f(t"h"(x)))中,該方法還包括-安排查詢表網(wǎng)絡(luò)中的第三查詢表例如h(t3(x))的輸出編碼例如h 以及第一查詢表例如f(t"h"(x)))的輸入解碼例如h人第一查詢表的輸 入解碼反轉(zhuǎn)第三查詢表的輸出編碼的效果,例如f(t"h"(h(t3(x)))))= f(t,(t3(x))),以用于在所述第 一 查詢表中定位所述選擇的字。
      17. 根據(jù)權(quán)利要求3所述的方法,還包括使得所述系統(tǒng)能夠-應(yīng)用網(wǎng)絡(luò)的第一組查詢表到數(shù)字?jǐn)?shù)據(jù)的比特串以獲得第一組 中間結(jié)果;-應(yīng)用網(wǎng)絡(luò)的第二組查詢表到數(shù)字?jǐn)?shù)據(jù)的比特串以獲得第二組 中間結(jié)果,第二組查詢表的比特表示包括要被保護(hù)的數(shù)據(jù)串; -組合第一和第二中間結(jié)果以獲得第三中間結(jié)果;和 -根據(jù)第三中間結(jié)果計(jì)算處理的數(shù)字?jǐn)?shù)據(jù)。
      18. 用于保護(hù)第二系統(tǒng)(922 )的完整性的第一系統(tǒng)(920 ),第 一系統(tǒng)包括-用于確定要被保護(hù)的數(shù)據(jù)串(930 )的串確定器(924 ),數(shù)據(jù)串的完整性是第二系統(tǒng)的完整性的指示;-計(jì)算至少部分表示預(yù)定的數(shù)據(jù)處理函數(shù)的一組參數(shù)(932 ), 使用該組參數(shù)中的冗余將數(shù)據(jù)串并入該組參數(shù)的比特表示中的參數(shù) 確定器(926 );和-使得第二系統(tǒng)能夠根據(jù)所述組參數(shù)處理數(shù)據(jù)的裝置(928 ),據(jù)數(shù)據(jù)處理函數(shù)^理數(shù)據(jù)的能力。' " 、、 、
      19. 一種計(jì)算機(jī)程序產(chǎn)品,包括使得處理器執(zhí)行根據(jù)權(quán)利要求1 所述方法的指令。
      20. —種數(shù)據(jù)處理系統(tǒng)(922 ),包括-用于存儲(chǔ)要被保護(hù)數(shù)據(jù)串的存儲(chǔ)器(930 ),數(shù)據(jù)串的完整性 是數(shù)據(jù)處理系統(tǒng)的完整性的指示;儲(chǔ)器(932 ),使用該組參數(shù)中的冗余,所述數(shù)據(jù)串被并入該組參數(shù) 的比特表示中;以及-根據(jù)所述組參數(shù)處理數(shù)據(jù)(936)的處理模塊(934 ),其中改 變?cè)摻M參數(shù)的比特表示中的數(shù)據(jù)串使得所述系統(tǒng)失去其根據(jù)數(shù)據(jù)處 理函數(shù)處理數(shù)據(jù)的能力。
      21. —種計(jì)算機(jī)程序產(chǎn)品,其包括使得處理器根據(jù)至少部分表示 數(shù)據(jù)處理函數(shù)的 一組參數(shù)處理數(shù)據(jù)的指令,要被保護(hù)的數(shù)據(jù)串的完整 性是計(jì)算機(jī)程序產(chǎn)品的完整性的指示,使用所述組參數(shù)中的冗余,所 述數(shù)據(jù)串被并入該組參數(shù)的比特表示中,其中改變?cè)摻M參數(shù)的比特表 示中的數(shù)據(jù)串使得所述系統(tǒng)失去其根據(jù)數(shù)據(jù)處理函數(shù)處理數(shù)據(jù)的能 力。
      全文摘要
      一種保護(hù)數(shù)據(jù)處理系統(tǒng)的完整性的方法。該方法包括確定(902)將被保護(hù)的數(shù)據(jù)串,該數(shù)據(jù)串的完整性是數(shù)據(jù)處理系統(tǒng)的完整性的指示。計(jì)算(904)表示預(yù)定數(shù)據(jù)處理函數(shù)的一組參數(shù),使用該組參數(shù)中的冗余將數(shù)據(jù)串并入到所述組參數(shù)的比特表示中。使得(906)系統(tǒng)能夠根據(jù)數(shù)據(jù)處理函數(shù)處理數(shù)據(jù)。該組參數(shù)表示包括密鑰的密碼算法的至少一部分。該組參數(shù)表示查詢表的網(wǎng)絡(luò)。查詢表的網(wǎng)絡(luò)包括數(shù)據(jù)處理算法的白盒子實(shí)現(xiàn)的多個(gè)查詢表。數(shù)據(jù)處理算法包括密碼算法。
      文檔編號(hào)H04L9/06GK101401348SQ200780008551
      公開日2009年4月1日 申請(qǐng)日期2007年2月28日 優(yōu)先權(quán)日2006年3月10日
      發(fā)明者P·M·H·M·A·戈里森, W·P·A·J·米基爾斯 申請(qǐng)人:皇家飛利浦電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1