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

跟蹤實(shí)現(xiàn)的拷貝的制作方法

文檔序號:7936296閱讀:176來源:國知局
專利名稱:跟蹤實(shí)現(xiàn)的拷貝的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于方便跟蹤計算方法的實(shí)現(xiàn)的拷貝的系統(tǒng)。
背景技術(shù)
因特網(wǎng)給用戶提供了對數(shù)字內(nèi)容的方便和隨處進(jìn)行的訪問。因特
戰(zhàn)。特別是,需要給內(nèi)容提供者授予版權(quán)和經(jīng)營模式。逐漸地,使用
裝載有合適的軟件的處理器來運(yùn)行消費(fèi)電子(CE)平臺。這種軟件包 括用于呈現(xiàn)(重現(xiàn))數(shù)字內(nèi)容(例如音頻和/或視頻)的功能的主要部 分。重現(xiàn)軟件的控制是一種加強(qiáng)內(nèi)容擁有者的利益(包括所述內(nèi)容被 使用的期限和條件)的方法。過去許多CE平臺(除了 PC和PDA)被關(guān) 閉,今天越來越多的平臺至少部分地被打開。特別是對于PC平臺,一 些用戶被認(rèn)為具有對提供有對內(nèi)容和大量時間和資源的訪問的硬件和 軟件的完全控制以攻擊和繞過任何內(nèi)容保護(hù)機(jī)制。因此,內(nèi)容提供者 必須越過不友好的網(wǎng)絡(luò)到其中不是所有的用戶或設(shè)備都可信的機(jī)構(gòu)而 將內(nèi)容發(fā)送至合法用戶。
為了防止數(shù)字內(nèi)容(例如電影)盜版,通常以加密形式將其發(fā)送 至用戶。為了保持分配成本為低,所述內(nèi)容一般被加密一次,即每個 合法用戶獲得相同的密鑰,利用該密鑰他/她可以對所述內(nèi)容解密。這 隱含著的弱點(diǎn)在于攻擊者可以將密鑰分配給未授權(quán)的用戶,這破壞了 保護(hù)機(jī)制。
Stanley Chow、 Philip Eisen、 Harold Johnson和Paul C. Van Oorschot的"White-Box Cryptography and an AES Implementation", in 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 的 "White-Box DBS Implementation for DRM Applications " , in Digital Rights Management: ACM CCS-9 Workshop, ■ 2002, Washington, DC, USA,November 18, 2002,此后稱為"Chow 2",公開的方法中試圖通過將 查找表的網(wǎng)絡(luò)中的密鑰模糊化來隱藏密鑰。這使得對于攻擊者來說提 取和分配密鑰變得更加困難。

發(fā)明內(nèi)容
一種用于方便跟蹤計算方法的實(shí)現(xiàn)的拷貝的改進(jìn)系統(tǒng)將是有利 的。為了更好地詮釋該想法,在本發(fā)明的第一方面中,提出的系統(tǒng)包 括
網(wǎng)絡(luò)生成器,用于產(chǎn)生代表計算方法步驟的查找表的網(wǎng)絡(luò),所述 網(wǎng)絡(luò)通過將第一查找表的輸出值用作不同的第二查找表的輸入值而形 成;
個性化器,用于通過改變查找表網(wǎng)絡(luò)中的至少一個值來產(chǎn)生多個 不同版本的查找表網(wǎng)絡(luò),對應(yīng)于輸入值的相關(guān)域的所述版本的最終結(jié) 果對于每個版本基本上是相同的;
相關(guān)器,用于將各個版本與各個基站或基站的用戶相關(guān)聯(lián)。
所述個性化器使用查找表網(wǎng)絡(luò)中的固有冗余來創(chuàng)建不同版本的查 找表網(wǎng)絡(luò)。當(dāng)找到版本的(潛在地非法的)拷貝時,與所述版本相關(guān) 聯(lián)的基站或用戶可以被建立,因?yàn)樗霭姹静煌?,并且各個版本與各 個基站或基站的用戶相關(guān)聯(lián)。
被采用來產(chǎn)生不同版本的所述變化指的是版本的水印。網(wǎng)絡(luò)生成 器和個性化器可以是相同的,即一個單元可以產(chǎn)生所有版本。所改變 的值可以是查找表之一中的值??梢岳斫獾氖牵W(wǎng)絡(luò)的結(jié)構(gòu)(即限定 查找表的哪個輸出被提供給查找表的哪個輸入的結(jié)構(gòu))可以被參數(shù)化。 這種情況下,所述改變的值可以與限定該結(jié)構(gòu)的參數(shù)相關(guān)。
在實(shí)施例中,計算方法(602 )包括加密策略和加密密鑰,網(wǎng)絡(luò)生
成器(604 )和個性化器(606 )被設(shè)置以用于產(chǎn)生能夠利用所述加密 密鑰執(zhí)行加密策略的查找表網(wǎng)絡(luò)。在此情況下所述系統(tǒng)特別有用,因 為加密密鑰常常十分寶貴。這種密鑰的非法分配是不期望的。當(dāng)找到 查找表網(wǎng)絡(luò)的版本的(非法分配的)拷貝時,所述系統(tǒng)有助于識別相 關(guān)聯(lián)的基站或用戶。在找到明顯被重新分配的版本拷貝的情況下,可 以針對相關(guān)聯(lián)的用戶采取行動。
在實(shí)施例中,所述個性化器被設(shè)置為用于創(chuàng)建計算方法的白盒實(shí)現(xiàn)。從例如Chow等的文獻(xiàn)中已知使用查找表網(wǎng)絡(luò)的算法的白盒實(shí)現(xiàn)。 這些白盒實(shí)現(xiàn)中的冗余以及特別是模糊化使得更加易于將變化應(yīng)用于 難以由第三方(即攻擊者)隔離和/或去除的網(wǎng)絡(luò)。
在實(shí)施例中,不同版本中白盒實(shí)現(xiàn)的輸出編碼和/或輸入解碼有所 不同。 一種相對簡單的生成變化來創(chuàng)建不同版本的查找表網(wǎng)絡(luò)的方法 是以不同方式對查找表之一的輸出進(jìn)行編碼,并且在查找表網(wǎng)絡(luò)中的 下一個查找表中對其解碼。
在實(shí)施例中,所述個性化器被設(shè)置為用于利用運(yùn)算符將白盒實(shí)現(xiàn) 模糊化,針對不同版本所述運(yùn)算符被不同地選擇,其中所述運(yùn)算符被 集成在網(wǎng)絡(luò)中的第一多個查找表中,而運(yùn)算符的逆被集成在網(wǎng)絡(luò)中的 第二多個查找表中。
這使得對于攻擊者來說相對復(fù)雜的是將水印完全去除,因?yàn)樾枰?多個查找表中的協(xié)調(diào)變化或者對網(wǎng)絡(luò)結(jié)構(gòu)的協(xié)調(diào)變化。由于多個查找 表作用于運(yùn)算符的實(shí)現(xiàn),運(yùn)算符被集成在多個網(wǎng)絡(luò)中。然而,運(yùn)算符 的結(jié)果可能不能直接在白盒實(shí)現(xiàn)中可視,因?yàn)椴檎冶硖峁┲虚g和/或最 終結(jié)構(gòu)的附加編碼。
在實(shí)施例中,所述第一多個查找表中的至少一個或所述第二多個 查找表中的至少一個具有輸入和/或輸出編碼,相對于經(jīng)過網(wǎng)絡(luò)的數(shù)據(jù) 流其沒有被網(wǎng)絡(luò)中它的各個前趨和/或后繼取消。這使得對于攻擊者來 說更難以去除水印。
在實(shí)施例中,所述運(yùn)算符為線性混合雙射,并且所述輸入和/或輸 出編碼中的至少一個是非線性的。線性混合雙射與非線性輸入和/或輸 出編碼的組合對于白盒實(shí)現(xiàn)是普遍存在的。所述線性混合雙射可以有 效地被集成在多個查找表中。所述非線性輸入和輸出編碼使得白盒實(shí) 現(xiàn)更加難以破壞。
在實(shí)施例中,所述個性化器被設(shè)置為用于使用運(yùn)算符以不同的等 價類創(chuàng)建各版本,其中所述等價類包括這樣的運(yùn)算符,即它的對應(yīng)查 找表網(wǎng)絡(luò)可以通過將來自預(yù)定修改集合的修改提供給所述輸入和/或 輸出編碼而從彼此獲得。給輸入和/或輸出編碼提供修改(包括置換) 被認(rèn)為是攻擊者所能及的工作。因此,所述水印應(yīng)當(dāng)"抵抗"這樣的 修改,即在已經(jīng)進(jìn)行這種^f務(wù)改之后水印和相關(guān)用戶仍然可以;故識別。 各個等價類與各個基站或用戶相關(guān)聯(lián),因?yàn)楦鱾€版本與各個基站或用戶相關(guān)聯(lián)。
在實(shí)施例中,所述個性化器被設(shè)置為用于以不同的等價類創(chuàng)建各 版本,其中所述等價類包括可以通過將來自預(yù)定修改集合的修改提供 給版本而從彼此獲得的版本。預(yù)定修改集合代表那些被認(rèn)為是攻擊者 所能及的修改。所述水印應(yīng)當(dāng)"抵抗"這種攻擊者所能及的修改。如 果所述版本處于不同等價類,則在已經(jīng)應(yīng)用這種修改之后,所述水印 和相關(guān)用戶仍然可以被識別。優(yōu)選地,在每個等價類中最多產(chǎn)生一個 版本。所述各個等價類與各個基站或用戶相關(guān)聯(lián),因?yàn)楦鱾€版本與各 個基站或用戶相關(guān)聯(lián)。
一個實(shí)施例包括用于將查找表網(wǎng)絡(luò)的各個版本經(jīng)由單個介質(zhì)發(fā)送 給相關(guān)基站或用戶的輸出。這允許所述基站或用戶方便地經(jīng)由單個介 質(zhì)接收查找表網(wǎng)絡(luò)。所述網(wǎng)絡(luò)不需要在所述基站中預(yù)先編程。以此方 式,隨著時間被不同地改變的版本可以與各個基站/用戶相關(guān)聯(lián)并且輕 易地被發(fā)送至各個基站/用戶,而無需使用第二介質(zhì)或者對所述基站來 說無需任何硬件或固件變化。這使得系統(tǒng)更加有效,因?yàn)樗龌究?以在不受對各個版本所做變化影響的條件下被預(yù)先編程。可選地,所 述基站完全一樣。雖然所述版本可能在用戶之間被(非法)分配,但 是該被(非法)分配的版本的起源可以被跟蹤,因?yàn)樗霭姹九c使用 介質(zhì)將所述網(wǎng)絡(luò)版本首先發(fā)送到的基站或基站的用戶相關(guān)聯(lián)。通過以 加密形式發(fā)送查找表網(wǎng)絡(luò)的版本仍然可以防止過于簡單(非法)的分 配。
在實(shí)施例中,所述系統(tǒng)用于受控地將內(nèi)容分配給多個基站,并且 所述計算方法包括解密方法,所述系統(tǒng)進(jìn)一步包括
加密器,用于使用與用戶相關(guān)聯(lián)的用戶專用的加密密鑰來對與用
戶相關(guān)聯(lián)的版本加密,以獲得加密的版本;
內(nèi)容預(yù)處理器,用于根據(jù)加密策略和加密密鑰對內(nèi)容加密,以獲 得加密的內(nèi)容;
輸出,用于向用戶提供加密的版本和加密的內(nèi)容。 該實(shí)施例描述特殊應(yīng)用情況。所述版本可以使用用戶專用的密鑰 被加密并且被提供給各個用戶?;蛘?,所述版本可以在不加密的前提 下被發(fā)送,例如經(jīng)由安全通道或介質(zhì)。在另一實(shí)施例中, 一部分查找 表網(wǎng)絡(luò)被預(yù)先固定并且已經(jīng)在用戶處存在,而且只有剩余部分的查找表網(wǎng)絡(luò)被提供給用戶。
一個實(shí)施例包括用于為用戶執(zhí)行計算的系統(tǒng),包括 數(shù)據(jù)處理單元,用于將代表計算方法的步驟的查找表網(wǎng)絡(luò)應(yīng)用于
數(shù)據(jù),所述網(wǎng)絡(luò)通過將第一查找表的輸出值用作不同的笫二查找表的
輸入值而形成;
所述查找表網(wǎng)絡(luò)形成多個不同版本查找表網(wǎng)絡(luò)的一個版本,所述 多個不同版本通過改變查找表網(wǎng)絡(luò)中的至少一個值而獲得,對應(yīng)于輸 入值的相關(guān)域的計算方法的最終結(jié)果對于每個版本來說基本上相同;
各個版本,與各個用戶相關(guān)聯(lián)。
這可以在基站或用戶終端中實(shí)現(xiàn),以根據(jù)查找表網(wǎng)絡(luò)的版本處理 數(shù)據(jù)。
一個實(shí)施例包括用于識別計算方法的實(shí)現(xiàn)的拷貝的系統(tǒng),其中所 述實(shí)現(xiàn)包括代表計算方法的步驟的查找表網(wǎng)絡(luò),所述網(wǎng)絡(luò)通過將第一 查找表的輸出值用作不同的第二查找表的輸入值而形成;
所述查找表網(wǎng)絡(luò)作為通過改變查找表網(wǎng)絡(luò)中的至少一個值而獲得 的多個不同版本的查找表網(wǎng)絡(luò)的一個版本,對應(yīng)于輸入值的相關(guān)域的 計算方法的最終結(jié)果對于每個版本來說基本上相同;
所述系統(tǒng)包括
比較器,用于將所述實(shí)現(xiàn)中的至少一個查找表與至少一個版本進(jìn) 行比較。
這有助于識別與特殊版本相關(guān)聯(lián)的用戶。
一個實(shí)施例包括等價類建立器,用于建立對應(yīng)于所述實(shí)現(xiàn)中的版 本的等價類,其中等價類包括通過將來自被認(rèn)為是攻擊者所能及的修 改集合的修改應(yīng)用于開始版本來從所述開始版本獲得的版本。這有助 于即使在水印版本^皮改變之后識別所述用戶。
一個實(shí)施例包括一種便于跟蹤計算方法的實(shí)現(xiàn)的拷貝的用戶的方 法,所述系統(tǒng)包括
產(chǎn)生代表計算方法步驟的查找表網(wǎng)絡(luò),所述網(wǎng)絡(luò)通過將第一查找 表的輸出值用作不同的第二查找表的輸入值而形成;
產(chǎn)生多個不同版本的查找表網(wǎng)絡(luò),其通過改變查找表網(wǎng)絡(luò)中的至 少一個值而獲得,對應(yīng)于輸入值的相關(guān)域的版本的輸出值對于每個版 本來說基本上相同;將各個版本與各個用戶相關(guān)聯(lián)。
一個實(shí)施例包括一種識別計算方法的實(shí)現(xiàn)的拷貝的方法,其中所
述實(shí)現(xiàn)包括代表計算方法步驟的查找表網(wǎng)絡(luò),所述網(wǎng)絡(luò)(28)通過將 第一查找表(20)的輸出值用作不同的第二查找表的輸入值而形成;
查找表網(wǎng)絡(luò)作為通過改變查找表網(wǎng)絡(luò)中的至少一個值而獲得的多 個不同版本的查找表網(wǎng)絡(luò)的一個版本,對應(yīng)于輸入值的相關(guān)域的計算 方法的最終結(jié)果對于每個版本來說基本上相同;
所述方法包括
將所述實(shí)現(xiàn)中的至少一個查找表與至少一個版本進(jìn)行比較。 一個實(shí)施例包括一種計算機(jī)程序產(chǎn)品,包括用于使得處理器執(zhí)行
上述任一方法的指令。
W0 01/31419公開了一種計算機(jī)執(zhí)行的方法,其中信息被具有個
人值并且對于客戶端的用戶已知的密鑰所加密,以防止用戶和其它人
共享所述密鑰。


參考附圖,對本發(fā)明的這些和其它方面做進(jìn)一步闡述和說明,附 圖中
圖l是示出AES環(huán)路操作的示圖2是示出將表模糊化的示例的示圖3是示出白盒AES實(shí)現(xiàn)中列的環(huán)路的示圖4是示出體現(xiàn)在Ia型表中的映射的示圖5是示出體現(xiàn)在II型表中的映射的示圖6是示出體現(xiàn)在III型表中的映射的示圖7是示出體現(xiàn)在IV型表中的映射的示圖8是示出體現(xiàn)在Ib型表中的映射的示圖9是示出在查找表網(wǎng)絡(luò)中從一個查找表到下一查找表信息位流 的示圖IO是示出實(shí)施例的示圖;以及 圖ll是示出實(shí)施例的示圖。
具體實(shí)施方式
白盒密碼術(shù)是關(guān)于對固定密鑰K實(shí)現(xiàn)分組密碼,以便對于攻擊者 來說難以從所述實(shí)現(xiàn)中提取密鑰K。白盒密碼術(shù)中所認(rèn)定的攻擊模式為 白盒攻擊模式。以此攻擊模式,攻擊者被認(rèn)為可以充分訪問軟件并且 可以對實(shí)施環(huán)境進(jìn)行充分控制。
一個實(shí)施例是關(guān)于用于付費(fèi)TV的有條件訪問系統(tǒng)。內(nèi)容提供者將 被AES和內(nèi)容密鑰K加密的內(nèi)容進(jìn)行傳播。關(guān)于有條件訪問系統(tǒng)必須 解決的問題之一是如何將內(nèi)容密鑰K進(jìn)行分配,以供為訂戶而不為其 它人將所述內(nèi)容進(jìn)行解密。下面描述兩種方法。首先,簡單的方法是 保持內(nèi)容密鑰K隨著時間固定并且只向訂戶提供密鑰K。然而,這種執(zhí)
行具有下列兩個缺點(diǎn)。第一個缺點(diǎn)在于我們不能注銷用戶。只要擁有 密鑰K,用戶永遠(yuǎn)都可以對內(nèi)容解密。該筒單方法的第二個缺點(diǎn)在于由 于長時間使用固定的密鑰,攻擊者可以找到它的風(fēng)險不斷提高。
第二種方法的工作如下。內(nèi)容密鑰周期性地變化,例如每天或每 周。每個訂戶s獲得唯一的私鑰ks,并且對于每個訂戶s來說,密鑰K 由它的私鑰t加密。密鑰K的加密的集合(E"(K) Is是合法訂戶}和被 加密的內(nèi)容一起被傳播。然后,只有合法訂戶可以獲得K,并且隨后解 密所述內(nèi)容。重要的是,私鑰ks隱藏得很好。這通常在硬件中進(jìn)行。 以此方法,可以注銷用戶。為了注銷用戶s,不向其提供下次會改變的 被加密的內(nèi)容密鑰。因此,如果內(nèi)容密鑰從K變化到K,,則不向用戶s 提供Eks (K,)。
雖然所述第二種方法優(yōu)于笫一種,但是由于接下來的攻擊它仍然 產(chǎn)生了易損的有條件訪問系統(tǒng)。訂戶之一可以獲得內(nèi)容密鑰K。例如這 可以是這種情況,因?yàn)橛啈魋可以檢查解密算法并且從其提取密鑰或 者因?yàn)閟能夠確定他/她自己的私鑰ks。當(dāng)內(nèi)容密鑰K接下來被非法分 配時,內(nèi)容提供者不能識別對該分配負(fù)責(zé)的有惡意的訂戶。其結(jié)果是, 內(nèi)容提供者不得不采取嚴(yán)厲的行動,例如為所有訂戶(包括合法訂戶) 替換解密算法和/或他們的私鑰ks的實(shí)現(xiàn)。
在實(shí)施例中,用于利用密鑰K對內(nèi)容解密的解密算法的實(shí)現(xiàn)由基 本上如Chow等所述的白盒實(shí)現(xiàn)代替。在該白盒實(shí)現(xiàn)中,AES解密算法 由查找表集合執(zhí)行,所述查找表集合通過對它們的輸入和輸出進(jìn)行編 碼而被模糊化。此外,給不同訂戶的表提供不同的編碼。其結(jié)果是, 每個訂戶得到不同的白盒實(shí)現(xiàn)。然而,所有這些白盒實(shí)現(xiàn)具有相同的功能(它利用密鑰K執(zhí)行解密)。如果內(nèi)容密鑰K變化,則用戶被提 供新的白盒實(shí)現(xiàn)(即具有新的查找表集合)。
如果白盒實(shí)現(xiàn)足夠可靠,則對于攻擊者來說很難提取潛在的密鑰K 并公布之。替代地,他/她不得不公布完整的白盒實(shí)現(xiàn)(即查找表集合)。 然而,如果惡意的訂戶公布了他/她的白盒實(shí)現(xiàn),則內(nèi)容提供者可以跟 蹤他/她,因?yàn)樗形ㄒ坏陌缀袑?shí)現(xiàn)。其結(jié)果是,內(nèi)容提供者可以撤銷 所述攻擊者,即取消攻擊者的預(yù)這意味著對于由不同的密鑰K,加 密的其它內(nèi)容,攻擊者將接收不到利用密鑰K,執(zhí)行解密算法的白盒實(shí) 現(xiàn)。
通過選擇不同的編碼,多個白盒實(shí)現(xiàn)可以被創(chuàng)建為具有相同功能 (例如,它們都利用密鑰K執(zhí)行AES解密)。該區(qū)別可以用于叛逆者 跟蹤每個用戶被賦予不同的白盒實(shí)現(xiàn)變量,以便給定一白盒實(shí)現(xiàn), 則可以通過檢查編碼來識別所述白盒實(shí)現(xiàn)的起源。請注意,白盒實(shí)現(xiàn) 的編碼在這里起著取證水印的作用。
接下來,描述一些使用由Chow等提出的AES白盒實(shí)現(xiàn)的實(shí)施例。 然而,所述實(shí)施例不局限于AES。本領(lǐng)域技術(shù)人員可以做出必要的變化 以將所公開的技術(shù)同樣應(yīng)用于其它加密方案,特別是應(yīng)用于其白盒實(shí) 現(xiàn)。而且,所述技術(shù)可以在加密背景以外使用,只要算法包括應(yīng)用查 找表網(wǎng)絡(luò),正如本領(lǐng)域技術(shù)人員所明了的。
AES的白盒實(shí)現(xiàn)
AES是分組大小為128位或16字節(jié)的分組密碼。明文被劃分成16 字節(jié)的分組,其形成編碼算法的初始狀態(tài),而編碼算法的最終狀態(tài)是 密文。為了從概念上解釋AES,狀態(tài)字節(jié)被組織成4x4字節(jié)的矩陣。 AES包括多個環(huán)路。每個環(huán)路由對狀態(tài)矩陣的字節(jié)、行或列進(jìn)行操作的 相似處理步驟組成,在這些處理步驟中每個環(huán)路使用不同的環(huán)路密鑰。 圖1示出AES環(huán)路的一些主要處理步驟。所述處理步驟包括 AddRoundKey 2 -狀態(tài)的每個字節(jié),皮環(huán)路密鑰的字節(jié)"異或"。 SubBytes 4 -使用查找表進(jìn)行字節(jié)-字節(jié)置換。 ShiftRows 6 -狀態(tài)的每個行被旋轉(zhuǎn)固定數(shù)量的字節(jié)。 MixColumns 8 -使用GF (28)的模乘來處理每個列。 步驟SubBytes 4、 ShiftRows 6和MixColumns 8均與使用的特殊密鑰無關(guān)。所述密鑰在步驟AddRoundKey 2中被采用。除了步驟 ShiftRows 6,處理步驟可以在不知道其它列的前提下在4 x 4狀態(tài)矩 陣的每個列上執(zhí)行。因此,它們可以被看作32位操作,因?yàn)槊總€列包 括4個8位值。虛線IO示出所述進(jìn)程被重復(fù),直到已經(jīng)執(zhí)行了所需數(shù) 量的環(huán)路。
這些步驟中的每一個或者步驟的組合可以由查找表或查找表網(wǎng)絡(luò) (S-boxes)代表。也可以由查找表網(wǎng)絡(luò)來代替AES的全環(huán)路。例如, AddRoundKey步驟可以通過筒單地用環(huán)路密鑰進(jìn)行異或而被執(zhí)行,而 SubBytes、 ShiftRows和MixColumns步驟使用查找表來執(zhí)行。然而,
這意味著所述密鑰仍然對于白盒攻擊背景下的攻擊者是可視的。 AddRoundKey步驟也可以嵌入查找表中,這使得更難找出所述密鑰。
圖2示出一種使得提取密鑰更為困難的方法。讓X和Y作為兩個 函數(shù)??紤]操作y。Z(c)-y"(c》,其中。意指函數(shù)組合,如圖2中圖解 12所示,其中c是輸入值,例如4字節(jié)狀態(tài)列。然而,所述方法適用 于任何類型的輸入值c。對X和Y的映射可以實(shí)施為可以存儲在存儲器 中的查找表,然而,當(dāng)它們被存儲在存儲器中時,所述值可以被攻擊 者讀取。圖解14示出如何通過使用輸入編碼F和輸出編碼H來將查找 表的內(nèi)容模糊化。如所示,對應(yīng)于X。 F'和H。 Y的查找表被存儲,而 不是X和Y,這使得更加難以提取X和Y。圖解16示出如何增加附加 的,例如隨機(jī)的,雙射函數(shù)G,以便兩個表的中間結(jié)果也可以被編碼。 在此情況下,兩個表被存儲在存儲器中<formula>formula see original document page 13</formula>這在圖解18中又一次被示出
<formula>formula see original document page 13</formula>
其中X和Y是適于通過查找表實(shí)現(xiàn)的函數(shù)。在此文獻(xiàn)中,。指代常規(guī) 的函數(shù)組合(即對于任何兩個函數(shù)f (x)和g(x),定義為f 。 g(x)-f (g(x)))。同樣地,包括兩個以上函數(shù)的網(wǎng)絡(luò)也可以被編碼。 編碼X和Y的實(shí)際表通過將H。 Y。 G'組合在單個查找表中和將G。 X 。n且合在單個查找表中而被模糊化。只要F、 G和/或H保持未知, 則攻擊者不能從查找表提取有關(guān)X和/或Y的信息,并且因此攻擊者不 能提取作為X和/或Y的基礎(chǔ)的密鑰。其它密碼算法,包括DES和 Rijndael ( AES是其特殊實(shí)例)也可以被編碼為查找表(表達(dá)級聯(lián)或網(wǎng)絡(luò)),其可以上述類似方法而被模糊化。這也可用于基于例如更替-置
換網(wǎng)絡(luò)或Feistel網(wǎng)絡(luò)的密碼。本發(fā)明不局限于所提到的示例性密碼 算法。
Chowl公開了一種方法,試圖通過對其表進(jìn)行編碼來隱藏密鑰,其 具有代表組合而非單個步驟的隨機(jī)雙射。防止私鑰提取的優(yōu)點(diǎn)在于防 止攻擊者提取能夠使得軟件保護(hù)目標(biāo)在其它機(jī)器上被繞過的關(guān)鍵材 料,或者防止攻擊者公布有效地創(chuàng)建破壞整個安裝軟件的大型用戶基 礎(chǔ)的安全措施的"全局破解,,的關(guān)鍵材料。假設(shè)所述限制為單純使用 軟件的方案和敵-主事實(shí),則它提供更大程度的保護(hù)。在Chow 1的方 法中,密鑰被這樣隱藏,通過(1)使用用于組合而非單個步驟的表; (2)由隨機(jī)雙射對這些表進(jìn)行編碼和(3)將密碼邊界延伸至密碼算 法自身之外而進(jìn)入包含應(yīng)用,迫使攻擊者(與工程師相對)獲知顯然 更大的代碼部分以實(shí)現(xiàn)他們的目標(biāo)。Chow 1討論了 一種固定密鑰方法 所述密鑰通過針對所述密鑰的局部評估而被嵌入所述實(shí)現(xiàn)中,以便不 需要密鑰輸入。局部評估意味著涉及密鑰的表達(dá)被盡可能地評估,并 且結(jié)果被置于代碼而非整個表達(dá)中。攻擊者可以提取專用密鑰的實(shí)現(xiàn), 并使用它來代替密鑰,然而密碼術(shù)典型地是更大包含系統(tǒng)的組件,其 可以被操作或被編碼的形式而向密碼組件提供輸入,為此對所述組件 進(jìn)行設(shè)計,但是敵人會發(fā)現(xiàn)難以去除。參考編碼表的步驟,由于編碼 是任意的,因此結(jié)果只有在一個步驟的輸出編碼與下一步驟的輸入編 碼匹配時才是有意義的。例如,如果步驟X之后是步驟Y (產(chǎn)生Y。 X 的計算),所述計算可以被編碼為
<formula>formula see original document page 14</formula>
以此,Y。 X被適當(dāng)?shù)赜嬎?,雖然輸入需要用F編碼而輸出需要用H—1 解碼。所述步驟被分開表示為對應(yīng)于Y,和X,的表,以便F、 G和H以及 X和Y被隱藏。
除了這種混淆步驟,Chow l使用了利用線性轉(zhuǎn)換的擴(kuò)散步驟,以 進(jìn)一步偽裝潛在的操作。術(shù)語混合雙射用于描述上面提到的線性雙射。 Chowl的實(shí)現(xiàn)以可控形式進(jìn)行輸入,并且以不同的可控形式產(chǎn)生輸出, 從而使得抗白盒攻擊環(huán)境(WBAC)的AES難以從它的包含應(yīng)用中分離 出來。白盒AES執(zhí)行可以描述如下。對于AES加密和解密算法的輸入是 簡單的128位分組。該分組由包含16字節(jié)的4x4矩陣代表。AES通常 包括AES-128的IO個環(huán)路。每個環(huán)路更新十六字節(jié)集合,其形成AES 狀態(tài),因此每個AES環(huán)路處理128位。AES-128使用128位密鑰。該密 鑰充當(dāng)將所述密鑰轉(zhuǎn)換成不同的128位環(huán)路密鑰的算法的輸入?;A(chǔ) 環(huán)路包括四個部分
SubBytes
ShiftRows
MixColumns
AddRoundKey 。
該操作順序適用于AES加密。雖然AES解密中的標(biāo)準(zhǔn)操作順序有 所不同,但是可以重寫AES解密算法,以具有和AES加密相同的操作 順序。
在第一環(huán)路之前,發(fā)生額外的AddRoundKey操作,而在環(huán)路十中, 省略了 MixColu咖s操作。使用密鑰的唯一部分是AddRoundKey,其它 三個步驟不對密鑰進(jìn)行任何操作。在執(zhí)行中,環(huán)路的邊界被改變以將 AddRoundKey步驟和下一環(huán)路的SubBytes步驟集成為一個步驟。環(huán)路 從AddRoundKey和SubBytes開始,接著是ShiftRows, 最后是 MixColumns 。
首先,通過將SubBytes步驟和AddRoundKey組合成一個步驟來將 密鑰隱藏。這使得密鑰自身不再可視。因?yàn)槊荑€事先已知,因此涉及 密鑰的操作可以被預(yù)先評估。這意味著用在步驟SubBytes中的標(biāo)準(zhǔn) S-Boxes可以由專用密鑰的S-Boxes代替。為了產(chǎn)生AES-128的專用密 鑰例子,所述密鑰被并入SubBytes轉(zhuǎn)換,通過創(chuàng)建十六個8 x 8 (即8 位輸入,8位輸出)查找表T。,其定義如下 (x) = S(x十/ = 0,...,3; 7 = 0"."3; r = l,.,9
其中S是AES S-Boxes (可逆8位映射),k。是4 x 4矩陣的位置i, j 處的AES子密鑰字節(jié),其代表環(huán)路r的環(huán)路密鑰。這些T-Boxes將 SubBytes步驟和之前環(huán)路的AddRoundKey步驟組合。環(huán)路10 T-Boxes 吸收白化之后的密鑰,如下
7;:; (x) = S(x十《■) yt:,力,/ = 0,..., 3; y. = 0,..., 3其中sr(i,j)指代ShiftRows步驟之后單元i, j的新位置。所有 T-Boxes的數(shù)量是10x16=160。然而,所述密鑰可以輕易地從T-Boxes 去除,因?yàn)镾^公知。這使得有必要進(jìn)行附加編碼。線性轉(zhuǎn)換用于將輸 入擴(kuò)散至T-Boxes。這些線性轉(zhuǎn)換被稱為混合雙射,并且可以被表示為 GF(2)的8x8矩陣。所述混合雙射通過之前的計算而^皮反轉(zhuǎn),以消除 它們的效應(yīng)。
圖3示出對于狀態(tài)的一個32位列(在采用ShiftRows之后)的白 盒AES環(huán)路中涉及的表。這里引入不同類型表的名字。此后對此進(jìn)行 更為詳細(xì)的描述。在環(huán)路之前,128位狀態(tài)的每個字節(jié)被提供給各個類 型Ia表。這導(dǎo)致各個128位值,其使用類型IV表的網(wǎng)絡(luò)而被異或以 提供被劃分成四個32位值的128位輸出?,F(xiàn)在,開始第一環(huán)路。這里 概述了每個32位值的處理步驟。32位值的四個字節(jié)被輸入至四個不同 的類型II表20。四個類型II表20中的每一個產(chǎn)生32位輸出。這些 輸出使用類型IV表22而被按位異或。每個類型IV表22執(zhí)行4位按 位異或。通過合理地將類型IV表的輸入和輸出連接,四個32位輸出 的按位異或可以被實(shí)現(xiàn),如本領(lǐng)域技術(shù)人員所明了的。這個步驟的結(jié) 果是32位值。該值的四個字節(jié)中的每一個被提供給各個類型III表24。 每個類型11I表24提供32位輸出。這些輸出再次使用與類型IV表22 的網(wǎng)絡(luò)相似的類型IV表26的網(wǎng)絡(luò)而被按位異或。輸出是指示狀態(tài)列 的32位值。環(huán)路2到9與第一環(huán)路相似。128位值的每個字節(jié)被應(yīng)用 于類型Ib表;所述結(jié)果使用類型IV表的網(wǎng)絡(luò)而被異或。最后的環(huán)路 (通常是第十環(huán)路)被外部編碼所吸收。
圖4示出類型Ia表100。圖5示出類型II表200。圖6示出類型 111表300。圖7示出類型IV表400。圖8示出類型Ib表500。
混合雙射的使用如下。AES狀態(tài)由包含字節(jié)的4x4矩陣表示。 MixColumns步驟每次一列(4個8位單元)地操作??紤]32 x 32矩陣 MC。如果其由表表示,則該表會花費(fèi)232 x 32=137438953472位-16GB。
為了避免如此大的表,所述矩陣被分組為四部分。
MC被分組為四個32 x 8部分,MC。、 Md、 MC2、 MC3(分組208 )。 32位矢量x-(x。,…,xJ和MC的相乘由將x的位劃分為四個字節(jié)并且將 MC的每個部分和字節(jié)之一相乘而進(jìn)行,產(chǎn)生四個32位矢量(z。,…,z3)。 接下來的三個32位異或給出最終的32位結(jié)果z。四個表一共只花費(fèi)4x 28 x 32=32768位=楊。
三個異或?qū)⒈粍澐譃?4個4位異或,每個由可能被編碼的查找表 所表示,具有適當(dāng)?shù)逆溄咏Y(jié)合(例如((z[O,O],z[O,l], z
,z
) + (z[l, O],z[l, 1],z[l,2],z[1, 3])) II "z
, z
,z
,z
) + (z[l,4〗,z[l,5],z[l,6],z[1,7])) II…), 其中l(wèi)l表示鏈接結(jié)合,+表示異或。通過使用這些帶和細(xì)分的異或,每 個步驟由小的查找表表示。特別地,對于i=0,...,3, Zi使用8x32表 被計算,而4位異或變成24個8 x 4表。圖7示出輸入解碼402和輸 出編碼406如何被置于異或404周圍。這些編碼通常是隨機(jī)選擇的非 線性4x4雙射。異或表被稱為類型IV表400。類型IV表從之前的兩 個計算中的每一個取作輸入4位。那些計算的輸出編碼212與類型IV 表的輸入解碼402匹配,以使彼此失效。4x4非線性雙射的選擇取決 于表的大小。在此情況下,類型IV表只是2、4位-128字節(jié)。需要24 個表,總共花費(fèi)3KB。如果所述異或沒有被劃分,則會需要三個異或表, 其計算32位異或。T-boxes 206和8 x 32表208可以表示為分開的查 找表。替代地,它們可以被組合來創(chuàng)建新的8x32表200,其計算 SubBytes和AddRoundKey轉(zhuǎn)換以及部分MixColumns。這既節(jié)省了 (保 存T-boxes的)空間,又節(jié)省了 (執(zhí)行表查找的)時間。
在將MC如上劃分為MCi之前,MC被32 x 32混合雙射MB左乘,如 圖5中附圖標(biāo)記210所示,被選作整個排列中具有4x4子矩陣的非單 獨(dú)矩陣?;旌想p射的使用增加了特殊表的可能結(jié)構(gòu)的數(shù)量。
圖5示出8 x 32類型II表200,包括4x4輸入解碼202和4 x 4 輸出編碼212。這些輸出編碼和輸入解碼是非線性4x4雙射,其必須 與類型IV表400的輸入解碼和輸出編碼匹配。類型II表200之后即 類型IV表400。為了反轉(zhuǎn)MB,使用額外的表集合來計算MB—\讓 (x,o,…,x、)作為到MixColumns的輸入,讓(z。,…,zj作為MixColumns 之后的輸出。讓( Z …,Z 31 )T作為與MB相乘之后的結(jié)果。( 充當(dāng)?shù)筋愋虸II表300的輸入。請注意輸入解碼和輸出編碼在這里不 需要考慮,因?yàn)楸淼妮敵鼍幋a由下一表的輸入解碼消除。在類型III 表300中,MB—t被采用304和下一環(huán)路的四個類型II表200的四個輸 入混合雙射204 ;故反轉(zhuǎn)308。
圖6示出8 x 32類型III表300,包括4 x 4非線性輸入解碼和4x4非線性輸出編碼。這些表之后的是對應(yīng)的類型IV表400。
數(shù)據(jù)操作的一個環(huán)路包括對128位狀態(tài)矩陣的操作。在128位狀 態(tài)矩陣的四個32位帶中的每一個上執(zhí)行的數(shù)據(jù)操作如下。32位帶被劃 分為4個8位字節(jié)。四個字節(jié)中的每一個被發(fā)送至不同的類型II表 200,產(chǎn)生四個32位輸出值。這些值必須使用模糊化的類型IV表400 而被異或。為此,每個32位輸出值被劃分為8個4位元組,并且合適 的元組對被輸入至各個類型IV表,以便四個32位輸出值的異或以編 碼形式獲得。
該32位產(chǎn)生的編碼異或結(jié)果再次被劃分為字節(jié),并且每個字節(jié)被 輸入至不同的類型11I表300。類型III表300的每個元組的輸入解碼 對應(yīng)于上次使用的類型IV表的輸出編碼。所述類型III表再次產(chǎn)生四 個32位輸出值,其再次由模糊化的類型IV表400異或。
總之,所述環(huán)路由查找表執(zhí)行。單個環(huán)路的查找表被如下聯(lián)網(wǎng)。 數(shù)據(jù)被發(fā)送至類型II表。這些表的輸出被發(fā)送至表示被編碼異或的類
型IV表的網(wǎng)絡(luò)。這些網(wǎng)絡(luò)的輸出被發(fā)送至類型ni表,其取消了由類 型n表插入的混合雙射編碼。所述環(huán)路的編碼輸出最終由再次將類型 ni表的輸出發(fā)送至代表被編碼異或的類型iv表的網(wǎng)絡(luò)獲得。
此外,白盒實(shí)現(xiàn)包括開始的(類型Ia表lOO)和結(jié)束的(類型Ib 表500 )類型I表,分別用于取消和插入外部編碼。類型Ia表100可 以用于通過提供單個的表查找而采用如圖4所示的映射的鏈接結(jié)合。 在鏈接結(jié)合中,4位元組輸入解碼102最先出現(xiàn)。然后,出現(xiàn)8位到 128位雙射104;該雙射實(shí)現(xiàn)了網(wǎng)絡(luò)的輸入和輸出的編碼;該映射在程 序中的其它地方不進(jìn)行。雙射104的結(jié)果被劃分成16個8位片段,各 個8位雙射106被提供給它們。最后,采用輸出元組編碼108。如上所 述,映射102、 104、 106和108的級聯(lián)被預(yù)先評估,并且最終結(jié)果被 列表于查找表中。這導(dǎo)致表最多每128位具有256個條目。并入類型 Ib表500的映射的鏈接結(jié)合示意性地示于圖8中。第一映射是輸入元 組解碼502,接下來是8位雙射504, T-box T" 506,其中r對應(yīng)于最 后的環(huán)路,8位到128位映射用于提供輸出編碼,和輸出元組編碼510。 這種表的128位輸出被其它類型Ib表的輸出所異或,再次使用元組輸 入和輸出編碼的類型IV表400。輸出編碼508在程序的其它地方(即 在程序的密碼部分以外)不進(jìn)行。這使得攻擊者更加難以通過僅僅分析程序的密碼部分的輸入和輸出來破壞表的編碼。
白盒密碼術(shù)包括執(zhí)行軟件中的分組密碼,以便攻擊者不能提取白 盒攻擊模式中的密鑰。白盒攻擊模式屬于最強(qiáng)的可能的攻擊模式,因 為攻擊者被認(rèn)為可以充分訪問所述實(shí)現(xiàn)并且對執(zhí)行環(huán)境完全控制。白
盒實(shí)現(xiàn)存在于AES、 DES和其它加密策略。這些白盒實(shí)現(xiàn)可以基于上述 相似的想法,并且本領(lǐng)域技術(shù)人員能夠采用白盒實(shí)現(xiàn)的原理以創(chuàng)建其 它加密策略的白盒實(shí)現(xiàn)。
可以給白盒實(shí)現(xiàn)添加取證水印,以便如果惡意用戶分配了他/她的
實(shí)現(xiàn),我們可以跟蹤該用戶。也就是說,多個白盒實(shí)現(xiàn)Xi,X2,…,Xn可
以被創(chuàng)建,以便如果給定特定的白盒實(shí)現(xiàn)Y則可以確定它對應(yīng)于所述 實(shí)現(xiàn)Xt,X2,…,Xn的哪一個。執(zhí)行Y不需要和執(zhí)行Xi完全相同,因?yàn)閻?意用戶u能夠?qū)λ?她的實(shí)現(xiàn)進(jìn)行一些修改而不改變其功能。
在實(shí)施例中,給白盒AES實(shí)現(xiàn)添加取證水印。以此方法,通過選 擇不同的編碼來模糊化白盒實(shí)現(xiàn)的表,創(chuàng)建了多個白盒AES實(shí)現(xiàn)。例 如,限定X,,X2,…,Xn,以便它們只在給定類型II表U (圖5中212) 的第一輸出元組的非線性元組編碼f方面不同。請注意,這暗含著對 于隨后的類型IV異或表V,兩個輸入元組解碼g之一也在不同的執(zhí)行 中有所不同。其原因是g-f、置于U的第一輸出元組上的輸出編碼f被 異或表V中并入的元組解碼所取消。本領(lǐng)域技術(shù)人員明了的是這不局 限于類型II表的第一輸出元組。任何對應(yīng)的輸出元組編碼和輸入元組 解碼對可以用于提供水印。而且這種對的任何組合可以被用作水印。 特別強(qiáng)的水印可以通過隨機(jī)地選擇所有元組編碼/解碼而獲得,對于每 個用戶有所不同地進(jìn)行。這具有其它優(yōu)點(diǎn),如果攻擊者能夠只修改一 些元組編碼/解碼對,則用戶仍然可以通過余下的元組編碼/解碼對而 ,皮識別。
改變元組編碼不影響解密的結(jié)果。因?yàn)樵M輸出編碼在另一表的 元組輸入解碼中不進(jìn)行,因此最后結(jié)果相同。因此可以將表的多個不 同版本分配給不同用戶,其中所有這些版本代表相同的具有相同加密 密鑰的密碼方法。
攻擊者可以如下改變元組編碼。讓U、 V作為白盒AES實(shí)現(xiàn)中的連 續(xù)表,并讓f作為由表U返回的元組的輸出編碼。請注意這意味著表V 具有輸入元組解碼f1,即表V將f'應(yīng)用于來自U的元組。該輸出編碼可以被改變?yōu)槿我?非線性)編碼g。限定h以便g=h° f。然后由h 對U的輸出編碼,并將元組解碼h—并入V。在圖9中,該原理被示為 用于類型IV表的特定情況。該做法的結(jié)果在于表U的輸出編碼由g給 出。此外,因?yàn)楣粽卟恍枰嘘P(guān)U和V中所用編碼的任何信息,他/ 她能夠執(zhí)行所述做法。攻擊者可以實(shí)現(xiàn)的第二種修改包括重新設(shè)置表 的輸出和輸入位。形成表V的輸入位的表U的輸出位可以由攻擊者給 出不同的順序。該位的順序中的變化在表V中不進(jìn)行。這些攻擊者可 能采用的潛在變化增加了從查找表網(wǎng)絡(luò)中刪除水印的風(fēng)險。
上面已經(jīng)示出攻擊者可以修改包含水印的查找表網(wǎng)絡(luò)。在此背景 下,下列各項(xiàng)在提供魯棒的水印方面起作用。首先,如何制造所有功 能相同的多個白盒AES實(shí)現(xiàn)X^X^.^Xn,即所有針對給定密鑰K執(zhí)行 AES。第二,它有助于識別哪種修改被認(rèn)為攻擊者u會在實(shí)現(xiàn)Xu上實(shí)施, 他試圖去除水印并仍然具有期望的功能。第三,讓Y作為(可以)通 過采用這種修改而從白盒實(shí)現(xiàn)Xu獲得的經(jīng)修改的白盒實(shí)現(xiàn)。所期望的 是仍然能夠確定Y已經(jīng)從Xu獲得而不是從任何其它執(zhí)行Xi。這三項(xiàng)可 以作為取i正水印項(xiàng)。
在實(shí)施例中,水印以這樣的方式被添加,即使攻擊者已經(jīng)改變一 個或多個元組編碼和/或已經(jīng)改變從一個表流至下一表的位順序,所述 水印仍可以被覆蓋。更普遍的是,攻擊者可以將任何轉(zhuǎn)換應(yīng)用于形成 到相同的下一表的輸入位的表的輸出位集合。通過下面的數(shù)學(xué)原理可 以更好地理解一種實(shí)現(xiàn)方法。
等價問題
使用下面的概念。元組(nibble)是4位示例,字節(jié)(byte)是8 位示例,并且針對元組x,,...,Xn認(rèn)為每個(4n)-位矢量x被劃分成如 x-(x^…,x:)的n個元組。因此被劃分的(4n)-位矢量x可以被稱為 長度n的元組矢量。元組轉(zhuǎn)換是映射f—f,,…,f:),其中每個fi是元 組映射,即將元組映射至元組;這樣的映射實(shí)施于如上被劃分成元組 的(4n )-位矢量x= (Xl,…,xn)并且將這樣的矢量x映射至
請注意,這種元組轉(zhuǎn)換f是可逆的,當(dāng)且僅當(dāng)元組映射fi可逆。
20可逆的元組轉(zhuǎn)換可以用在查找表的輸出,其中它們充當(dāng)輸出元組編碼, 或者用在查找表的輸入,其中它們則充當(dāng)輸入元組解碼。元組置換是 置換丌-(7n,…,7Tn),其中(7H,丌2,…,7Tn} = {l,2,...,n},其被認(rèn)為
通過置換其元組而作用于(4n)-位矢量x=(Xl,...,xn);這樣的丌被認(rèn) 為將x映射至
兀0)二0^,x兀2"-.,x )
由類型II表200實(shí)現(xiàn)的操作O將包含兩個元組a,,a2的輸入字節(jié) a-(a,, &2)轉(zhuǎn)換成包含8個元組z,, ..., z8的32位輸出矢量z=(Zi, ..., z8)
并采取形式
o = /0jg。c。r"。g, (i)
其中各種操作具有下列形式。
映射g=(gi, g》表示對輸入字節(jié)a=(ai, a2)的元組解碼202,并將a映 射至(a,) , g2 (a2));這里每個gi是從元組到元組的可逆映射。 ■映射A表示從字節(jié)到字節(jié)的非單個線性映射204。
映射T表示將字節(jié)映射到字節(jié)的"T-box操作"206。
映射C表示一部分混合操作208,并包括從字節(jié)到32位矢量的線性
映射B是混合雙射210。它將32位矢量映射至32位矢量。在實(shí)施例 中,該映射B用于編碼水印。
.最后,f—f,,…,fn)表示元組編碼212,將被劃分成元組U,,…,U8的
32位矢量u=(Ul, ..., u8)映射至輸出矢量Z = (Zl"'''Zs) = (/;("'W8("8))。
如果a(",…a")是四個輸入字節(jié),其作用于輸出列b,則存在四個 涉及到的類型II表。(",...0"),形式為
= 。 ^ 。 7> 4. 。 g(0 (2)
然后輸出列b滿足
6 = 、(1)十(/(2))-'z(2) +(/(3))-、(3) +(/(4))-1z(4), (3)
其中請注意32 x 32矩陣C-[dC2C3C4]表示整個混合操作,其中Ci是(2) 中的那些。
(3)所需的操作由一些層的類型IV表來實(shí)現(xiàn)。這里,由類型IV 表400實(shí)現(xiàn)的操作A將元組輸入對(x,y)轉(zhuǎn)換成元組z并采用如下形

j = /"。g, (4) 其中各種操作具有下列形式。
映射g-(g"g2)表示對輸入元組對(x,y)的元組解碼402,將他們映 射至g=(g, (x) , g2 (y));這里每個gi是從元組到元組的可逆映射。
映射S表示404中4位異或操作 。 .最后,f表示元組編碼406,將元組u映射至元組f (u)。
因此為了實(shí)現(xiàn)(3)中輸出列b的總和,首先表W)的32位被加數(shù) zw的每一個被劃分成八個元組z , j=l,...,8。然后輸出列b的元組 bj由兩層的類型IV表計算為
~ = (嚴(yán))、 )]④[(/(3))-V3)④(/(4))、(4)]. (5)
作為最后一層中每個類型IV表中最終輸出編碼的結(jié)果,該部分查 找表網(wǎng)絡(luò)實(shí)際上為某輸出元組編碼h計算c=h (b)。
希望隱藏它的取證水印B的攻擊者具有制造輸出矢量c-h (b)的多
種可能。首先,由相同置換7T將每個矢量Z"'中的元組置換具有這樣的 效果,即輸出矢量中的元組也由7T置換。第二,改變最后一層類型IV
表中輸出元組編碼(以可逆方式)有效地將該編碼應(yīng)用于元組c。請注 意,通過首先置換c字節(jié)所發(fā)送至的后繼網(wǎng)絡(luò),攻擊者不進(jìn)行所有這
兩種操作。
田磁棍A拔烚山A、工念院i^A的輸出為
6'=兀。/。6, (6)
其中
兀-(兀p.."兀S)
是未知的可i^開,紐菱換,并且
/n…,y;)
是未知的可逆元組轉(zhuǎn)換,以便b,-(b、…,b,8)滿足
(7)給定所述系統(tǒng)的(虛構(gòu)的)非模糊化(標(biāo)準(zhǔn))AES實(shí)現(xiàn)(這里其實(shí)
現(xiàn)于本表查找網(wǎng)絡(luò)中),則計算的所有中間結(jié)果可以被檢查,甚至通 過解碼操作而被設(shè)定為某預(yù)定值。特別地,所有中間結(jié)果
x('') = C,7;。4.。g(0(a(0)
在表"')中執(zhí)行的計算中,其也發(fā)生在標(biāo)準(zhǔn)AES計算中,并且因此它們 的總?cè)?br> x = ;c(1)+x(2) + x(3) + x(4),
可以被設(shè)定為任何預(yù)定值,而與攻擊者的行動無關(guān)。由于
z") = /('V),
(3)之后為
6 = (8)
然而,作為攻擊者操控(和原始元組輸出編碼)的結(jié)果,代替b, 如(6)中從b獲得的矢量b,被監(jiān)視,由未知的但是固定的元組置換丌 和元組轉(zhuǎn)換f。
結(jié)果是,未知映射T的輸入/輸出行為可以被監(jiān)視,然而其由下列 形式可知
r=7i。/0jg, (9)
根據(jù)未知的元組置換7T、可逆元組轉(zhuǎn)換f和代表(未知)水印的可逆
線性映射B,由其獲得關(guān)于原始取證水印B的信息。
可以說如果存在元組置換7T、 a和可逆元組轉(zhuǎn)換f、 g,則兩個32 x32可逆矩陣(或取證水印)B和B,相等,由此兩個操作
相同。作為該分析的結(jié)果,以上述模式,很顯然不能在相等的取證水 印之間進(jìn)行區(qū)分。
為了之后的使用,首先獲取供矩陣相等的必要和充足的條件。為 此,獲取一些引理。第一個引理粗略地說明元組置換和元組轉(zhuǎn)換的順 序可以置換。第二個引理研究何時元組轉(zhuǎn)換之前的元組置換可以是線 性映射。
引理1。讓7T作為元組置換,并讓f-(fi,…f8)作為可逆元組轉(zhuǎn)換。然
后?!? =尸°兀,其中 /- (人(1),…,X(8))。
證明如果(x,,…Xs)t是任一 32位矢量,具有元組Xt,…X8,則所述矢
量y=丌。f (x)滿足
對于所有i適用?,F(xiàn)在,對于所有矢量x而言,""""n"…,^(s)),并
且因此尸。兀""y-兀。7^)。

引理2。讓T作為元組置換,讓h-0h,…lO作為可逆元組轉(zhuǎn)換,并讓K 作為可逆線性映射,以便t。 h=K。假設(shè)該映射的矩陣K被劃分成4 x 4 的子矩陣Ki,j,對于i, j=l,...,8。則每個hi是元組上的可逆線性映射; 此外,對于每個j,當(dāng)且僅當(dāng)t (i)=j時可獲得Ki,j參O。 證明讓K—K,,…K8)t被劃分為8個4x32矩陣K,,…,K8?,F(xiàn)在,如果 x-(x,,…X8)t是任一 32位矢量,具有元組x,,…xs,則所述矢量y-7t。 h(x)=Kx滿足
X.=夂=《,x, (10)
對于所有i?,F(xiàn)在,讓j隨機(jī),并且讓j=T (s)。假定矩陣K,(Ks,….Ks,8) 被劃分成4x4的子矩陣Ks,….Ks,8。現(xiàn)在如果對于所有j, Xi=0,并 且x產(chǎn)z為隨機(jī),則從(10)可以得出
因此
是線性映射,由于它是可逆的因此非零。此外,通過讓Xs-Z,X,U,和 Xi=0 (對于所有i*r,s),且z、 u隨機(jī),則接下來的是對于所有 T'(j)。 □
從這兩個引理,可以獲得如下。
定理3。讓N-(N….N8)t和M—M….Ms)t作為兩個矩陣,每個被劃分 成尺寸為4x 32的子矩陣N"…,N8和Mi,…,M8。則當(dāng)且僅當(dāng)存在元組置換v和可逆4x4矩陣的集合Li,…,L8時N和M相等,以便 對于i-l,…,S。
證明設(shè)想M和N相等。則存在元組置換7T、 (J和可逆元組轉(zhuǎn)換f、 g,以便
兀。/。yV = (7 。g。M 因此
膨-1 ^廣。7T'。(J。g 使用引理1,對于合適的元組置換T和可逆元組轉(zhuǎn)換h,
/—'。7T'。a。g可以被寫為t。 h。則對于線性映射K-NM1,可以保持
因此,通過引理2,映射;—一G'"'是可逆的,并且當(dāng)r(,)"時Ki,產(chǎn)O。 因此,我們有
寫出,=",、如、,=一,可以獲得
相反地,可以簡單地看出如果條件保持則兩個矩陣N和M事實(shí)上 相等?!?br> 推論4。讓可逆矩陣N被劃分成尺寸為4x4的子矩陣Ni,j,對于 i, j=l, ..., 8。則當(dāng)且僅當(dāng)在每個元組行和每個元組列中精確地一個子 矩陣Ni, j非零時N和尺寸32 x 32的單位矩陣I相等。
證明定理3的直接結(jié)果?!?br> 在所假定的攻擊模式中,攻擊者可以轉(zhuǎn)換它的水印(尺寸32x32 的矩陣)為等價矩陣,而不轉(zhuǎn)換為其它。定理3可以用于估計與任一 給定的一個相等的矩陣的最大數(shù),并且因此估計本質(zhì)上不同的取證水 印的最小數(shù)。為此,讓Ninv(n)表示可逆尺寸的nxn (二元)矩陣的數(shù)
量。正如所公知并且簡單地可以看出的,
AU") = (2"—1)(2"-2)(2"-4)…(2"-2"); (11)因此
AU4) = (16-1)(16-2)(16-4)(16-8). (12)
而且,8個元組上的置換數(shù)為8! =8. 7. 6. 5. 4. 3. 2. 1。接下來的是定理 3的結(jié)果。
定理5。等于給定尺寸的32 x 32矩陣的矩陣數(shù)Ne,(M)滿足
證明實(shí)際上,通過定理3,每個這樣的矩陣N由元組置換T確定, 其存在8!和八個可逆尺寸的4x4的矩陣L,,…,Ls,對于其中每一個 來說存在Ninv(4)個選擇?!?br> 推論6至少有
<formula>formula see original document page 26</formula>
個不等的可逆尺寸為32 x 32 ( 二元)矩陣(不等價水印)。 接下來,假設(shè)N個取證水印Mi,…,Mw已經(jīng)被分發(fā),想象攻擊者已經(jīng)將 他的水印改變成等價水印N。為了建立攻擊者的原始水印,上面已經(jīng)注 意到可以監(jiān)視映射T的輸入/輸出表現(xiàn),已知其形式
<formula>formula see original document page 26</formula>(13)
但是具有未知的元組置換7T,可逆元組轉(zhuǎn)換f和可逆矩陣N。為了識別
攻擊者,需要能夠測試(13)中的矩陣N是否與給定矩陣M相等。首 先注意不失普遍性地可以認(rèn)為M=I,所述單位矩陣。實(shí)際上,如果有必 要,取代T,操作T,釕。M—i可以被調(diào)查,其形式為
<formula>formula see original document page 26</formula>
由所述分析顯然的是當(dāng)且僅當(dāng)麗_1等于I時N等于M。
下面,概括出程序來檢測給定映射T-7T。 f。 N是否具有等于I的 N。在此方面,所述任務(wù)是產(chǎn)生多個3卩位輸入矢量Xi, ...,x ,以便對于 i-l,…,m,輸出矢量yi-T(Xi)的檢測足夠決定N是否等于I。下面,將 解釋如果使用的輸入矢量數(shù)m至少為32則如何測試等價。
讓m-33。對于j=l,…,32,取x產(chǎn)e,,其中e,表示第j個單元矢量,在第j位中具有"1",其它位中具有"0"。最后,取X3尸0,所有非 零矢量。寫出yj-T(e》以表示對于i=l,…,32的第j個輸出矢量,并且 寫作c=T(0)以表示最后的輸出矢量。想象c=(Cl,…,C8)t具有元組 d,…,cs。對于1=1,...,8,讓Ci表示尺寸為4x4矩陣,其所有列等于Ci。
現(xiàn)在考慮尺寸為32 x 32的矩陣Y,其具有矢量yj作為它的第j列, 對于j=l,…,32。將Y劃分成尺寸為4 x 4的子矩陣Yi,j。現(xiàn)在,如果(a) 每個元組行i中除了子矩陣Yi,s之外所有的都等于Ci,并且 (b)每個元組行j中除了子矩陣Y"之外所有的都等于a,則N等于I。 相反地,如果不是所述情況,則N不等于I 。(事實(shí)上,如果已知N 可逆,則僅測試(b)即足夠,因?yàn)?b)暗含(a))。
對此解釋如下。將32位的位置劃分成八個元組位置集合 J嚴(yán)(1,2,3,4),…,j8-(29,30,31,32K將N劃分成尺寸為4"的子矩 陣Ni,j,對于i,j-l,…,8。首先,假設(shè)N等于I。根據(jù)推論4,如果八 個元組行的每一行中和八個元組列的每一列中一個子矩陣Ni,j精確地 為非零,則N等于1。因此存在置換t以便Ni,j精確地為非零,當(dāng)t (i)=j 時。請注意,如果八個元組列的每一列中一個子矩陣Ni,j精確地為非零,
則或者是對于元組行保持相同的陳述,或者存在其中所有子矩陣為零 的元組行;如果N可逆,則第二種可能性不會發(fā)生。
首先,考慮c-T(O)。顯然地,N(O)-O,因此c-7T。 f(O),從而對 于所有i來說Ci-f,(j) (0)。
接下來考慮元組集合Jj中包含的某r,對于{1,...,4}中的某s,
r-4j+s。然后,^"^^'…,^)t,其中z"等于Ni,j的第s列;其結(jié) 果是,Zr,j-O,四位全零矢量,除了 t (i)=j時。則第r個輸出矢量
^ = (^,i,...,凡,s =?!?滿足
因此,力'廣乂C"e',除了可能在t (i)=j時。這對于Jj中的所有 r適用;所以由于y"是子矩陣Yi,j的笫s列,則接下來L = C,, 除了可能在T (i)=j時。
相反地,假設(shè)N不等于I。則存在元組列,叫做列j,其包含兩個 非零子矩陣,叫做元組行i,和i2 (其中L-i2)。因此在1,…,4中存 在列Sl,s2,以便Nu,j中的列s,和Ni2,j中的列S2二者非零。現(xiàn)在,讓
T廣"+ ^T,Sy + ^ (均在元組位置集合中)并考慮兩個矢量^'=^"'。現(xiàn)
在如果"。,P '、'8 ,則兩個元組、和、,非零,并且因此,對于
t=l,2, ^;^、-'W)。其結(jié)果是,對于t-l,2,輸出矢量A的元組丌
(ii)不等于c,,,并且因此矩陣Y不具有期望的形式。
下面給出上述程序的簡單公式化。首先,計算c=(Cl,...,c8),同 時c-T(O)。接下來,對于每個元組j=l,...,8,在T到c條件下比較四 個單元矢量 e8j+i, " 的圖像Ui, " u" 現(xiàn)在應(yīng)當(dāng)存在唯一的元組數(shù)
T(j),以便僅僅在元組T (j)中矢量W,…,U4與C不同。如果對于每
個j都是這種情況,則N等于I,如果不是,則N不等于I。
該處理幾乎是最理想的。實(shí)際上,下面的定理示出至少32個輸入 矢量需要被確定等價。
定理7.讓x,,.,.,X32是任意31個輸入矢量。則存在不等于I的尺 寸為32 x 32的矩陣N,以便對于所有i, NXi=Xi。
證明讓b表示與所有矢量Xi正交的非零矢量(必須存在這樣的 矢量,因?yàn)檎麄€空間的維度為32 ),并且讓H=b、讓v作為矢量,(Z), v) =1; 因此vg/Z。最后,讓v^i/作為H之外的笫二矢量,且M^v。因此(6,w)-l, 并且因此(6,v-w)-0,即v-weH??紤]線性可逆映射N,其將hGH映射 到其自身上(以便N充當(dāng)N上的單位),并將v映射到w上。其保持 〃+ (14)
其中b-d,..., P32)由位Pi組成。實(shí)際上,如果X-(Xt,…,X32),則<formula>formula see original document page 29</formula>
因此對于X6H, Nx-X,并且A^" + (v,6)(w-v) = V + (>v-v) = w。
最后的步驟是示出可以選擇H之外的w以便N (具有如(14 )中的
矩陣)不等于I。為此,對于元組V,,…,V32,讓V-(Vt,…,Vs),并且對
于元組bi,…,b8,讓b-(bi,…,bs)?,F(xiàn)在區(qū)分兩種情況。
如果對于一些j^l,bj^0,則取w—w,, ...,w8),對于i# j來說w,Vi
以及對于 一 些元組Uj # 0 ( ( Uj, bj ) =0)來說,w產(chǎn)Vj+Uj 。然后
w-v-u-((w,,…,w8)),對于i # j和0來說u,O。
如果b2=".=b8=0,則bi^(K翊.在脫w-(w,.....w,),對于i^2和
W^V2來說^Vi。再次妙V并且(w,^(w'A)^')-(^X,以便W//。
在兩種情況下,N的第一元組列在元組行1和元組行j^1 (第一 種情況下)或者元組行2 (笫二種情況下)中非零,并且因此在兩種情 況下根據(jù)推論4, N不等于I。總結(jié)可以〃=/,因此7Ve/。但是也可 以是N-T (考慮7T和f為單位的情況)。

測試等價
假設(shè)對于某未知的元組置換7T-(7^,…,718)、可逆元組轉(zhuǎn)換
f=" f8),以及可逆尺寸為32x32的線性轉(zhuǎn)換N,映射T的形式為
T=7l 。/。iV 。此外假設(shè)給定任何輸入矢量x可以計算輸出矢量y=T(X)。
則接下來的算法決定N是否等于任何給定的可逆尺寸為32 x 32的線性 轉(zhuǎn)換M。(這里0表示32位全零矢量,ei表示32位第i個單元矢量, 其在位i為"i",在所有其它位為零。)equivalent := true/
int array[l:32] c := r(O) ,
int r := 1 ,■
while ("8 and equivalent) do begin
int w := 0 ///nibble number known to differ int s := 1;//testing image of vector e4r+J
while (s S 4 and equivalent) do begin
int array[l:32] d := r(M一、 J-c ;
if (d = (^/p...,^8) has more than one nonzero
nibble)
〇r
(w#0 and 《#0 and 附^/ ) then begin equivalent := false,' break,' end,' if (《#0) then w :=附, //nibble number /
differs
s := s +1 /
end,' r := r +1
end
//here M三TV if and only if equivalent=true.
創(chuàng)建不等價水印
考慮包含所有尺寸為32 x 32的二元矩陣w的集合(w),在被劃分
為尺寸為4x4的子矩陣Wi,j (對于j=l,...,8)時,其具有下列特點(diǎn)
'每當(dāng)i〉j,分組Wi,j是全零矩陣
,所有分組Wi,j是尺寸為4 x 4的單位矩陣。 因此任何矩陣W6 (W)可逆并且具有下列形式
<formula>formula see original document page 30</formula>
(15)
任何兩個來自(W)的不同的矩陣不等價。想看出這點(diǎn),使用定理3,讓N、 M作為兩個來自(W)的等價矩陣。然后存在元組置換T和可逆尺 寸為4 x 4的矩陣L, ...,L8,以便對于i=l,…,8來說Niu)-LiMi?,F(xiàn)在 由于M和N在{W}中,因此M和N的元組行i精確地開始于分組i之前 的i-1非零分組;而且LiMi精確地開始于某非零分組Li之前的i-l全 零分組。其結(jié)果是,元組行數(shù)i可以從Ni和LiMi而唯一地被識別出來。 因此,置換T必須是恒等式,每個Li必須是單位矩陣,并且N=M。請 注意W包含(2")""…"-2"8〉10134個矩陣。通過從W選擇不同矩陣可以 創(chuàng)建不同的水印版本。
以不同的等價類創(chuàng)建水印的替代方法包括隨機(jī)地選擇線性轉(zhuǎn)換N 并使用用于等價檢測的算法以驗(yàn)證所選N是否等于任何先前所選的線 性轉(zhuǎn)換。
請注意上述內(nèi)容中,重點(diǎn)在于查找表網(wǎng)絡(luò)的一些特殊情況及其模 糊化和水印化上。可以理解的是水印化原理可以在與這些特殊情況的 特征無關(guān)的情況下而被采用。例如,AES已經(jīng)被用作主要載體來解釋使 用編碼和混合雙射的白盒實(shí)現(xiàn)。然而,本領(lǐng)域技術(shù)技術(shù)人員明了, AES、 編碼和混合雙射并不必須應(yīng)用于查找表網(wǎng)絡(luò)的水印。
圖10示出本發(fā)明的實(shí)施例。圖中示出系統(tǒng)600,用于方便跟蹤計 算方法602的實(shí)現(xiàn)的拷貝的用戶。計算方法602的用戶632可以具有 他們的執(zhí)行所處的基站,在此情況下各個用戶可以通過他們各自基站 而被統(tǒng)一。可替換地,用戶可以具有不同的IP地址或者可以使用他們 自己的登錄ID和密碼登錄至他們從其獲得執(zhí)行的系統(tǒng)。例如查找表網(wǎng) 絡(luò)的版本的對象因此可以與用戶或基站相關(guān)聯(lián),參考例如IP地址和登 錄ID。以將對象與基站或它們的用戶相關(guān)聯(lián)的其它分配系統(tǒng)和方法對 于本領(lǐng)域技術(shù)人員是顯然的。系統(tǒng)600可以實(shí)現(xiàn)于硬件和/或軟件中。 例如,它可以是運(yùn)行在內(nèi)容提供者處的服務(wù)器上的軟件模塊。系統(tǒng)600 被設(shè)置為用于準(zhǔn)備計算方法602的實(shí)現(xiàn),以供分配至至少一個用戶632 (或基站610)。為此,系統(tǒng)600包括網(wǎng)絡(luò)生成器604,用于產(chǎn)生代表 計算方法的步驟的查找表網(wǎng)絡(luò)。例如,查找表網(wǎng)絡(luò)采取上面有關(guān)圖1-9 所述的白盒實(shí)現(xiàn)的形式。然而,本領(lǐng)域技術(shù)人員可以想到和采用產(chǎn)生 這種用于給定計算方法的查找表網(wǎng)絡(luò)的其它方法。
系統(tǒng)600還包括個性化器606。所述個性化器產(chǎn)生多個不同版本的 查找表網(wǎng)絡(luò)。它通過改變查找表網(wǎng)絡(luò)中的至少一個值來產(chǎn)生。對于不同版本的查找表網(wǎng)絡(luò)來說,由不同版本的查找表網(wǎng)絡(luò)執(zhí)行的計算的最 終結(jié)果基本上相同,特別是對于相關(guān)的輸入值域。相關(guān)的輸入值域例 如對應(yīng)于這樣的值,即其根據(jù)它的性能需要在所述實(shí)現(xiàn)的日復(fù)一日的 使用中被處理。所述改變可以以不同方法進(jìn)行。例如,第一查找表可 以通過交換查找表的輸出值對來改變。為了保持網(wǎng)絡(luò)的相同輸出值, 查找表網(wǎng)絡(luò)中至少下一表的條目可以被交換,以不進(jìn)行對第一查找表 所做的改變。取決于查找表網(wǎng)絡(luò)的結(jié)構(gòu),可以對單個查找表進(jìn)行變化, 而不從整體上改變網(wǎng)絡(luò)的輸出值。所述網(wǎng)絡(luò)也可以被附加的查找表擴(kuò) 展或者重新設(shè)置,只要相關(guān)的輸入值域的結(jié)果基本上保持不變。
系統(tǒng)600還包括相關(guān)器608。所述相關(guān)器將所創(chuàng)建的不同網(wǎng)絡(luò)與數(shù) 據(jù)庫614中存儲的用戶或基站通過他們的IP地址、登錄ID或任何其 它類型的標(biāo)簽而相關(guān)聯(lián)。所產(chǎn)生的已經(jīng)與用戶相關(guān)聯(lián)的查找表網(wǎng)絡(luò)存 儲在數(shù)據(jù)庫614中。
實(shí)施例中,計算方法的特征在于加密策略,例如AES。對于本領(lǐng)域 技術(shù)人員來說,適用于數(shù)字權(quán)利管理的其它加密策略是顯然的。所述 加密策略與加密密鑰一起作用。所述個性化器被設(shè)置為產(chǎn)生多個版本 的查找表網(wǎng)絡(luò),所有使用相同密鑰執(zhí)行相同的加密策略。同時,各個 查找表版本都是唯一的,以便從查找表版本可以找出誰是與所述版本 相關(guān)聯(lián)的用戶。這對于傳播系統(tǒng)特別有意義,其中大量用戶被提供了 相同的傳播數(shù)據(jù)。所傳播的數(shù)據(jù)被加密并且所有用戶需要采用相同的 加密策略和密鑰來對所傳播的數(shù)據(jù)解密。例如個性化器產(chǎn)生加密策略 的不同白盒實(shí)現(xiàn)。
實(shí)施例中,個性化器被設(shè)置為創(chuàng)建計算方法的白盒實(shí)現(xiàn)。白盒實(shí) 現(xiàn)的示例如上給出。按照原理,它們可以為任何計算方法所創(chuàng)建。個 性化器608被設(shè)置為以最終結(jié)果不變的方式來改變查找表中的值。例 如,可以改變元組編碼或一個或多個混合雙射。替代或附加地,網(wǎng)絡(luò) 結(jié)構(gòu)可以被改變,即通過網(wǎng)絡(luò)的數(shù)據(jù)流被改變的方式。各個查找表可 以被添加至查找表網(wǎng)絡(luò)或者從其去除。
實(shí)施例中,個性化器被設(shè)置為通過線性或非線性運(yùn)算符將白盒實(shí) 現(xiàn)模糊化。該運(yùn)算符被集成在網(wǎng)絡(luò)中的第一多個查找表中,而運(yùn)算符 的逆被集成在網(wǎng)絡(luò)中的笫二多個查找表中。不同的運(yùn)算符用于不同的 版本中。這意味著,當(dāng)攻擊者想要去除所選運(yùn)算符的所有軌跡,他需要多多了解第一和第二多個查找表的相互依存性。這些表中的一個或 多個可以具有輸入和/或輸出編碼。這使得更加難以找出所使用的運(yùn)算 符,并且當(dāng)針對不同版本不同地選擇了這些輸入和輸出編碼時,給水
印增加了更多的特征特點(diǎn)。當(dāng)應(yīng)用于AES實(shí)例時,運(yùn)算符可以是混合 雙射,并且輸入和/或輸出編碼可以是元組編碼。
優(yōu)選地,所述個性化器被設(shè)置為使用不同等價類中的運(yùn)算符來創(chuàng) 建版本,其中等價類包括其對應(yīng)的查找表網(wǎng)絡(luò)可以通過對輸入和/或輸 出編碼進(jìn)行變化而從彼此獲得的運(yùn)算符。所述輸入和/或輸出編碼可以 輕易地被攻擊者改變,因此需要選擇不同的運(yùn)算符,以便在改變這些 編碼之后仍然能夠?qū)⑺鼈儽舜藚^(qū)別開。標(biāo)題為"等價問題"的部分中 所述的等價類就是它的示例。
更普遍地,個性化器606被設(shè)置為以不同等價類創(chuàng)建版本,其中 等價類包括從通過將來自被認(rèn)為是攻擊者所能及的修改集合的修改應(yīng) 用于版本而從彼此獲得的版本。這可以通過隨機(jī)地應(yīng)用修改以產(chǎn)生版 本并且驗(yàn)證它是否屬于先前產(chǎn)生的版本的等價類而實(shí)現(xiàn)。如果結(jié)果是 已經(jīng)產(chǎn)生了相同等價類的版本,則新產(chǎn)生的版本被丟棄,并產(chǎn)生另一 版本以代替被丟棄的版本??商鎿Q地,個性化器606被設(shè)置為根據(jù)等 式(15)(偽)隨機(jī)地選擇矩陣W6 (W)之一。
一個實(shí)施例包括分配服務(wù)器624。分配服務(wù)器624從數(shù)據(jù)庫614 中取與用戶632相關(guān)聯(lián)的版本并將所述版本提供給用戶632或他的基 站610。為了確保只有期望的接受者接收到所述版本,使用用戶專用密 鑰對其加密。內(nèi)容(例如音頻數(shù)據(jù)、視頻數(shù)據(jù)、軟件等等)由查找表 網(wǎng)絡(luò)的版本中所執(zhí)行的加密策略和加密密鑰所加密。被加密的版本和 內(nèi)容被傳輸至用戶632的基站610??梢岳斫獾氖沁@只是分配方法的一 個實(shí)施例。,皮個性化的版本可以任何方式分配,全部或部分加密或不 加密。它們可以經(jīng)由網(wǎng)絡(luò)(例如互聯(lián)網(wǎng))或經(jīng)由存儲介質(zhì)(例如CD) 而被分配。 一種安全地分配所述版本的方法是通過經(jīng)由分配渠道只發(fā) 送查找表網(wǎng)絡(luò)的一部分。該部分可以是類型1I表20(具有對應(yīng)的類型 IV表22)。類型III表24 (具有對應(yīng)的類型IV表26)可以不同方法 提供給基站,例如通過智能卡。這加強(qiáng)了水印和用戶之間的相關(guān)性, 因?yàn)樗】梢酝耆虿糠值赜芍悄芸ㄖ写嬖诘牟檎冶聿糠炙薅ā?br> 一個實(shí)施例包括基站610?;?10包括用于接收代表計算方法的步驟的查找表網(wǎng)絡(luò)。可以利用用戶專用密鑰對所述網(wǎng)絡(luò)加密,在此情
況下它首先被解密。從分配服務(wù)器624接收所述網(wǎng)絡(luò)?;?10包括 數(shù)據(jù)處理單元612,用于將查找表網(wǎng)絡(luò)634應(yīng)用于處理數(shù)據(jù)。所述數(shù)據(jù) 例如是音頻或視頻內(nèi)容,例如從分配服務(wù)器624或從CD-R0M提供。查 找表網(wǎng)絡(luò)具有由系統(tǒng)600向其提供的水印。雖然原理上從服務(wù)器6" 接收的查找表網(wǎng)絡(luò)因此是唯一的,但是,可以向基站610的輸入提供 另一查找表網(wǎng)絡(luò),例如通過攻擊者。所述其它查找表網(wǎng)絡(luò)可能提供比 從分配服務(wù)器624接收的查找表更多或不同的功能。雖然基站由此具 有和其它版本的查找表網(wǎng)絡(luò)不同的功能,但是可以跟蹤查找表網(wǎng)絡(luò)的 起源,因?yàn)樗哂形ㄒ坏奶匦圆⑶遗c原始用戶或基站相關(guān)聯(lián)。
一個實(shí)施例包括用于識別計算方法的實(shí)現(xiàn)的拷貝的系統(tǒng)616。系統(tǒng) 616連接至包括這些實(shí)現(xiàn)的不同版本的數(shù)據(jù)庫614。 一個或多個查找表 網(wǎng)絡(luò)(此后稱為輸入版本)被提供給系統(tǒng)616的輸入618,以供與數(shù)據(jù) 庫614中存儲的版本匹配。每個實(shí)現(xiàn)包括代表計算方法的步驟的查找 表網(wǎng)絡(luò)。系統(tǒng)616包括比較器620,用于將實(shí)現(xiàn)中的查找表與版本中的 至少一個進(jìn)行比較。比較器可以由字節(jié)-字節(jié)比較來實(shí)現(xiàn),它可以報告 所述輸入版本是否與數(shù)據(jù)庫中的版本匹配。也可以報告所述輸入版本 與數(shù)據(jù)庫中的版本之間的相似程度。也可以找出數(shù)據(jù)庫614中與輸入 版本最為相似的版本。
系統(tǒng)616包括等價類建立器622,以建立輸入版本所屬的等價類, 并識別數(shù)據(jù)庫中的一個或多個版本是否具有相同的等價類。等價類優(yōu) 選地包括可以通過將來自被認(rèn)為是攻擊者所能及的修改集合的修改應(yīng) 用于版本而彼此可以被轉(zhuǎn)換的所有版本。
圖ll示出本發(fā)明的實(shí)施例,其可以實(shí)施于例如內(nèi)容提供者的服務(wù) 器中。也可以實(shí)施于標(biāo)準(zhǔn)PC中。圖中示出通信部分95,用于提供例如 查找表網(wǎng)絡(luò)的版本和/或?qū)⒈惶幚淼膬?nèi)容的信息。通信部分95被設(shè)置 為例如連接至互聯(lián)網(wǎng)。查找表網(wǎng)絡(luò)的版本也可以存儲在例如DVD或CD 的存儲介質(zhì)96上。圖中還示出處理器92和存儲器91。所述存儲器包 括指令,用于使得處理器以上述方法產(chǎn)生多個版本的查找表網(wǎng)絡(luò)。查 找表網(wǎng)絡(luò)代表計算方法的步驟,例如具有特殊加密密鑰的加密策略。在 存儲器91中,所產(chǎn)生的各個版本與各個用戶相關(guān)聯(lián),例如通過表。圖中 還示出例如鍵盤和/或鼠標(biāo)的輸入94,和供操作者操作系統(tǒng)的顯示器93。也可以參考圖ll解釋另一實(shí)施例。該實(shí)施例包括基站,例如個人 計算機(jī)、機(jī)頂盒、數(shù)字視頻播放器、終端或智能卡。所述基站包括通
信部分95,用于連接至服務(wù)器,以獲得與用戶相關(guān)聯(lián)的查找表網(wǎng)絡(luò)的 版本。此外或替代地,基站包括用于讀取存儲介質(zhì)96(例如CD或DVD) 的裝置,存儲介質(zhì)上可以存儲查找表網(wǎng)絡(luò)的版本。所述基站包括處理 器92,用于通過采用查找表來處理數(shù)據(jù)。數(shù)據(jù)也可以經(jīng)由通信部分95 和/或存儲介質(zhì)96而獲得。例如,查找表網(wǎng)絡(luò)代表計算方法的步驟。 計算方法可以包括任何數(shù)據(jù)處理方法。例如,視頻加強(qiáng)算法的一個或 多個處理步驟(例如PixelPlus)可以通過查找表網(wǎng)絡(luò)實(shí)施。而且,查 找表網(wǎng)絡(luò)可以執(zhí)行加密策略的步驟,例如加密算法或解密算法。這種 解密算法可以用于解密內(nèi)容以呈現(xiàn)在顯示器93上。所述系統(tǒng)包括用戶 輸入94,例如鍵盤或遙控,以讓用戶控制所述系統(tǒng)。
可以理解的是本發(fā)明還擴(kuò)展至計算機(jī)程序,特別是載體上或其中 的計算機(jī)程序,適用于將本發(fā)明付諸實(shí)踐。所述程序可以是源代碼、 目標(biāo)代碼、代碼中間源和目標(biāo)代碼,例如部分符合形式或其它任何適 用于根據(jù)本發(fā)明的方法的執(zhí)行的形式。所述載體可以是任何能夠裝載 程序的實(shí)體或設(shè)備。例如,所述載體可以包括存儲介質(zhì),例如R0M,例 如CD ROM或半導(dǎo)體ROM,或磁性記錄介質(zhì),例如軟盤或硬盤。此外, 所述載體可以是可傳遞載體,例如電或光信號,其可以經(jīng)由電或光纜 或通過無線電或其它方式傳輸。當(dāng)程序包含在這種信號中時,所述載 體可以由這種線纜或其它設(shè)備或裝置構(gòu)造。替代地,所述載體可以是 集成電路,其中包含所述程序,所述集成電路適用于執(zhí)行或用于相關(guān) 方法的性能中。
應(yīng)當(dāng)注意,上述實(shí)施例說明而非限制本發(fā)明,并且本領(lǐng)域技術(shù)人 員能夠設(shè)計許多替換實(shí)施例,而不脫離權(quán)利要求的范圍。權(quán)利要求中, 括號內(nèi)的附圖標(biāo)記不構(gòu)成對權(quán)利要求的限制。詞語"包括"及其變形 的使用不排除存在權(quán)利要求所述之外的元件或步驟。元件之前的冠詞 "一,,或"一個"不安排存在多個這樣的元件。本發(fā)明可以通過包括 一些不同元件的硬件并通過被適當(dāng)編程的計算機(jī)所實(shí)現(xiàn)。在列舉出一 些裝置的設(shè)備權(quán)利要求中,這些裝置中的一些可以由一個相同的硬件 項(xiàng)實(shí)現(xiàn)。主要的事實(shí)是多個不同的從屬權(quán)利要求中所列的一些措施不 指示這些措施的組合不能被有利地利用。
權(quán)利要求
1.一種用于方便跟蹤計算方法(602)的實(shí)現(xiàn)的拷貝的系統(tǒng)(600),所述系統(tǒng)包括網(wǎng)絡(luò)生成器(604),用于產(chǎn)生代表計算方法(602)步驟的查找表的網(wǎng)絡(luò),所述網(wǎng)絡(luò)通過將第一查找表的輸出值用作不同的第二查找表的輸入值而形成;個性化器(606),用于通過改變查找表網(wǎng)絡(luò)中的至少一個值來產(chǎn)生多個不同版本的查找表網(wǎng)絡(luò),對應(yīng)于輸入值的相關(guān)域的所述版本的最終結(jié)果對于每個版本而言基本上是相同的;相關(guān)器(608),用于將各個版本與各個基站(610)或基站(610)的用戶(632)相關(guān)聯(lián)。
2. 根據(jù)權(quán)利要求1的系統(tǒng),其中所述計算方法(602 )包括加密策 略和加密密鑰,網(wǎng)絡(luò)生成器(604 )和個性化器(606 )被設(shè)置以用于 產(chǎn)生能夠利用所述加密密鑰執(zhí)行加密策略的查找表網(wǎng)絡(luò)。
3. 根據(jù)權(quán)利要求1的系統(tǒng),其中所述個性化器(606 )被設(shè)置為用 于創(chuàng)建所述計算方法(602 )的白盒實(shí)現(xiàn)。
4. 根據(jù)權(quán)利要求1的系統(tǒng),其中所述白盒執(zhí)行的輸出編碼和/或輸 入解碼在不同版本中是不同的。
5. 根據(jù)權(quán)利要求1的系統(tǒng),其中所述個性化器(606 )被設(shè)置為用 于由運(yùn)算符將白盒實(shí)現(xiàn)模糊化,針對不同版本所述運(yùn)算符被不同地選 擇,其中所述運(yùn)算符被集成在網(wǎng)絡(luò)中的第一多個查找表中,而運(yùn)算符 的逆被集成在網(wǎng)絡(luò)中的第二多個查找表中。
6. 根據(jù)權(quán)利要求1的系統(tǒng),其中所述第一多個查找表中的至少一 個或所述第二多個查找表中的至少一個具有輸入和/或輸出編碼,所述 輸入和/或輸出編碼被網(wǎng)絡(luò)中它的相對于經(jīng)過網(wǎng)絡(luò)的數(shù)據(jù)流的各個前 趨和/或后繼取消。
7. 根據(jù)權(quán)利要求1的系統(tǒng),其中所述運(yùn)算符為線性混合雙射,并 且所述輸入和/或輸出編碼中的至少一個是非線性的。
8. 根據(jù)權(quán)利要求1的系統(tǒng),其中所述個性化器(606 )被設(shè)置為用 于使用不同等價類中的運(yùn)算符來創(chuàng)建各版本,其中等價類包括這樣的 運(yùn)算符,即它的對應(yīng)查找表網(wǎng)絡(luò)可以通過將來自預(yù)定修改集合的修改 提供給所述輸入和/或輸出編碼而從彼此獲得。
9. 根據(jù)權(quán)利要求1的系統(tǒng),其中所述個性化器(606 )被設(shè)置為用 于創(chuàng)建不同等價類中的各版本,其中所述等價類包括可以通過將來自 預(yù)定修改集合的修改提供給所述版本而從彼此獲得的各版本。
10. 根據(jù)權(quán)利要求1的系統(tǒng),進(jìn)一步包括用于將查找表的各個版本 (634 )經(jīng)由單個介質(zhì)發(fā)送給相關(guān)基站(610)或用戶(632 )的輸出。
11. 根據(jù)權(quán)利要求1的系統(tǒng),其中所述系統(tǒng)(600, 624 )用于受控 地將內(nèi)容分配給多個基站,并且所述計算方法(602 )包括解密方法, 所述系統(tǒng)進(jìn)一步包括加密器(626 ),用于使用與用戶相關(guān)聯(lián)的用戶專用加密密鑰來對 與用戶相關(guān)聯(lián)的版本加密,以獲得加密的版本;內(nèi)容預(yù)處理器(628 ),用于根據(jù)加密策略和加密密鑰對內(nèi)容加密, 以獲得加密的內(nèi)容;輸出(630 ),用于向用戶提供加密的版本和加密的內(nèi)容。
12. —種用于為用戶執(zhí)行計算的系統(tǒng)(610),包括 數(shù)據(jù)處理單元(612),用于將代表計算方法(602 )的步驟的查找表網(wǎng)絡(luò)(634 )應(yīng)用于數(shù)據(jù),所述網(wǎng)絡(luò)通過將第一查找表的輸出值用 作不同的第二查找表的輸入值而形成;所述查找表網(wǎng)絡(luò)(634 )形成多個不同版本查找表網(wǎng)絡(luò)的一版本, 所述多個不同版本通過改變查找表網(wǎng)絡(luò)中的至少一個值而獲得,對應(yīng) 于輸入值的相關(guān)域的計算方法的最終結(jié)果對于每個版本來說基本上相 同;各個版本,其與各個用戶相關(guān)聯(lián)。
13. —種用于識別計算方法的實(shí)現(xiàn)的拷貝的系統(tǒng)(616),其中所 述實(shí)現(xiàn)包括代表計算方法(602 )的步驟的查找表網(wǎng)絡(luò),所述網(wǎng)絡(luò)通過 將第一查找表的輸出值用作不同的第二查找表的輸入值而形成;所述查找表網(wǎng)絡(luò)作為通過改變查找表網(wǎng)絡(luò)中的至少一個值而獲得 的多個不同版本的查找表網(wǎng)絡(luò)的一版本,對應(yīng)于輸入值的相關(guān)域的計 算方法的最終結(jié)果對于每個版本來說基本上相同;所述系統(tǒng)(610)包括比較器(620 ),用于將所述實(shí)現(xiàn)中的至少一個查找表與至少一個 版本進(jìn)行比較。
14. 根據(jù)權(quán)利要求13的系統(tǒng),進(jìn)一步包括等價類建立器(622 ),用于建立對應(yīng)于所述實(shí)現(xiàn)中的版本的等價類,其中等價類包括能夠通 過將來自被認(rèn)為是攻擊者所能及的修改集合的修改應(yīng)用于開始版本而 從所述開始版本獲得的版本。
15. —種便于跟蹤計算方法的實(shí)現(xiàn)的拷貝的用戶的方法,所述系統(tǒng)包括產(chǎn)生代表計算方法步驟的查找表網(wǎng)絡(luò)(28),所述網(wǎng)絡(luò)通過將第 一查找表(20)的輸出值用作不同的第二查找表(")的輸入值而形成;通過改變查找表網(wǎng)絡(luò)中的至少一個值而產(chǎn)生查找表網(wǎng)絡(luò)(28)的 多個不同版本,對應(yīng)于輸入值的相關(guān)域的版本的輸出值對于每個版本 來說基本上相同;將各個版本與各個用戶相關(guān)聯(lián)。
16. —種計算機(jī)程序產(chǎn)品,包括用于使處理器執(zhí)行根據(jù)權(quán)利要求15 的方法的指令。
17. —種識別計算方法的實(shí)現(xiàn)的拷貝的方法,其中所述實(shí)現(xiàn)包括代 表計算方法步驟的查找表網(wǎng)絡(luò)(28),所述網(wǎng)絡(luò)(28)通過將第一查 找表(20)的輸出值用作不同的第二查找表(22)的輸入值而形成;查找表網(wǎng)絡(luò)(28)作為通過改變查找表網(wǎng)絡(luò)中的至少一個值而獲 得的多個不同版本的查找表網(wǎng)絡(luò)的的一版本,對應(yīng)于輸入值的相關(guān)域 的計算方法的最終結(jié)果對于每個版本來說基本上相同;所述方法包括將所述實(shí)現(xiàn)中的至少一個查找表與至少一個版本進(jìn)行比較。
18. —種計算機(jī)程序產(chǎn)品,包括用于使得處理器執(zhí)行根據(jù)權(quán)利要求 17的方法的指令。
全文摘要
一種用于方便跟蹤計算方法(602)的實(shí)現(xiàn)的拷貝(634)的系統(tǒng)(600)。網(wǎng)絡(luò)生成器(604),用于產(chǎn)生代表計算方法(602)步驟的查找表的網(wǎng)絡(luò),所述網(wǎng)絡(luò)通過將第一查找表的輸出值用作不同的第二查找表的輸入值而形成。個性化器(606),用于通過改變查找表網(wǎng)絡(luò)中的至少一個值來產(chǎn)生多個不同版本的查找表網(wǎng)絡(luò),對應(yīng)于輸入值的相關(guān)域的所述版本的最終結(jié)果對于每個版本來說基本相同。相關(guān)器(608),用于將各個版本與各個基站(610)或基站(610)的用戶(632)相關(guān)聯(lián)。計算方法(602)包括10種加密策略和加密密鑰。
文檔編號H04L9/06GK101578813SQ200880002152
公開日2009年11月11日 申請日期2008年1月8日 優(yōu)先權(quán)日2007年1月11日
發(fā)明者H·D·L·霍爾曼, P·M·H·M·A·戈里森, W·P·A·J·米歇爾斯 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
民勤县| 泰和县| 丽水市| 鹿邑县| 裕民县| 肇源县| 盐亭县| 达孜县| 象州县| 陕西省| 巴里| 洪雅县| 三穗县| 北碚区| 安丘市| 新干县| 营山县| 罗山县| 喀喇沁旗| 渭南市| 九龙县| 常州市| 平武县| 永泰县| 二连浩特市| 尼玛县| 綦江县| 正宁县| 冀州市| 大丰市| 微山县| 雷波县| 沧源| 驻马店市| 嘉峪关市| 西丰县| 合江县| 江油市| 华阴市| 蕲春县| 汉中市|