国产精品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>

      用于白盒實現(xiàn)的加密方法

      文檔序號:7680067閱讀:3345來源:國知局
      專利名稱:用于白盒實現(xiàn)的加密方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及在白盒實現(xiàn)(white-box implementation)中實現(xiàn)的加密方法。
      背景技術(shù)
      因特網(wǎng)為用戶提供了方便的、無處不在的對數(shù)字內(nèi)容的接入(access )。
      利益的引人注目的難題。特別地要一求保證內(nèi)容提供者的版權(quán)和商l模式:
      逐漸地,使用裝載有合適軟件的處理器來運算消費電子(consumerelectronics, CE)平臺。這樣的軟件可包括用于再現(xiàn)(重放)諸如音頻和/或視頻這樣的電子內(nèi)容的功能的主要部分。控制重放軟件,包括內(nèi)容可被使用的限期(terms)和條件,是增強內(nèi)容所有者利益的一種方式。在傳統(tǒng)上許多CE平臺(除了 PC和PDA以外)曾不公開(closed)的場合,越來越多的平臺如今至少部分地是開放的。特別是PC平臺,可認為一些用戶具有對硬件和軟件的完全控制,這提供了對內(nèi)容的接入以及攻擊和回避任何內(nèi)容保護機制的大量時間和資源。結(jié)果,內(nèi)容提供者必須越過連接其中并非所有用戶或設(shè)備都可靠的社區(qū)的不利網(wǎng)絡(luò)向合法用戶傳送內(nèi)容。
      典型地,數(shù)字版權(quán)管理系統(tǒng)使用基于塊密碼的加密技術(shù),該技術(shù)使用被稱為輪(round)的一系列加密/解密步驟以塊的方式處理數(shù)據(jù)流。在每一輪期間,執(zhí)行輪特定函數(shù)(round-specific function )。輪特定函數(shù)可基于在特定輪的子密鑰控制下凈皮執(zhí)行的相同輪函數(shù)。對于許多加密系統(tǒng),可使用映射表或查找表來指定輪函數(shù)。即使不使用明確的表,也要頻繁地將表用于函數(shù)的不同部分,該函數(shù)用于在加密/解密函數(shù)的軟件中有效執(zhí)行。計算機代碼訪問表值或?qū)⒈碇到M合為函數(shù)的范圍值。替代發(fā)布可能是用戶特定的密鑰,發(fā)布用戶特定的算法而不發(fā)布用于加密或解密算法的密鑰變得更引人注目。為了防止重新設(shè)計或禁止類似密鑰的元素的重新計算,這些算法(最常用的是函數(shù)(映射))必須是令人迷惑的(隱藏的)。在計算機上,具有某些計算機代碼的表常常代表了這些函數(shù)。
      內(nèi)容提供者必須通過連接并非所有用戶或設(shè)備都可靠的區(qū)域的不利網(wǎng)絡(luò)向合法用戶傳送內(nèi)容。特別是PC平臺,必須認為一些用戶具有對硬件和軟件的完全控制,這提供了對內(nèi)容的接入以及攻擊和回避任何內(nèi)容保護機制無限量的時間和資源。增強內(nèi)容可被使用的期限和條件的軟件代碼必須不被篡改。在數(shù)字版權(quán)管理中用于向PC發(fā)布受保護內(nèi)容的一般方法
      是加密該數(shù)字內(nèi)容,例如DES (數(shù)據(jù)加密標準,Data Encryption Standard )、AES(高級加密標準,Advanced Encryption Standard )或使用在W09967918中公開的方法,和使用解密密鑰。
      關(guān)于密鑰處理,為了重放,^ 某體播放器必須從證書(license )數(shù)據(jù)庫獲得解密密鑰。然后它必須將該解密密鑰存儲在存儲器中用于加密內(nèi)容的解密。這給了攻擊者兩種攻擊密鑰的選擇。首先,證書數(shù)據(jù)庫訪問功能的相反設(shè)計可導(dǎo)致黑盒軟件(即攻擊者不必理解軟件功能的內(nèi)部工作方式),使得攻擊者可從所有證書數(shù)據(jù)庫獲得資產(chǎn)密鑰(assetkey)。第二,通過在內(nèi)容解密期間對存儲器訪問的觀察,獲取資產(chǎn)密鑰是可能的。在兩種情況下認為密鑰被泄漏。
      "White-Box Cryptography and AES Implementation" ("f乍者StanleyChow、 Philip Eisen、 Harold Johnson禾口 Paul C. Van Oorschot, in SelectedAreas in Cryptography: 9th Annual International Workshop, SAC 2002, St.John,s, Newfoundland, Canada, August 15-16, 2002 ),在下文中稱為"Chow1",和"A White-Box DES Implementation for DRM Applications"(作者Stanley Chow、 Phil Eisen、 Harold Johnson和Paul C. van Oorschot, DigitalRights Management: ACM CCS-9 Workshop, DRM 2002, Washington, DC,USA, November 18,2002),在下文中稱為"Chow2", 7>開了一些方法,該方法想通過編碼密鑰表和擴展加密邊界的結(jié)合來隱藏密鑰,其中,使用表示合成而不是單一步驟的隨機雙射(bijection)來編碼密鑰表,通過將密鑰邊界拉出再推入包含應(yīng)用來擴展加密邊界。
      "Cryptanalysis of a White Box AES Implementation" ( Olivier Billet,Henri Gilbert, and Charaf Ech-Chatbi, SAC 2004, LNCS 3357, pp.227-240,2005 ),以下被稱為"Billet",描述了對難于理解的AES實現(xiàn)的攻擊,該難于理解的AES實現(xiàn)在SAC 2002 ^L提議為保護在白盒背景中運行的AES軟件免于密鑰泄漏的方法。該論文解釋了如何以可以忽略的內(nèi)存和最差時間復(fù)雜度23G來提取嵌入在這樣的白盒AES實現(xiàn)中的整個AES秘密密鑰。

      發(fā)明內(nèi)容
      具有改進的加密方法將是有利的。為了更好的解決這個問題,在本發(fā)
      5明的第一個方面,展示了一種在白盒實現(xiàn)中實現(xiàn)的加密方法,其包括
      應(yīng)用多個變換,每個變換用輸出字代替輸入字;和對多個輸出字的串聯(lián)(concatenation)應(yīng)用擴散算子,以在輸出字間擴散由輸出字表示的信息;其中加密方法的密鑰包括表示擴散算子的信息。
      白盒實現(xiàn)可包括查找表的網(wǎng)絡(luò),通過編碼查找表的輸入和輸出來擾亂(obfuscate)查找表。發(fā)明者意識到擴散算子使加密方法的白盒實現(xiàn)相對地易受攻擊。減少該弱點的 一個方法是使攻擊者更難找出在白盒實現(xiàn)中使用的是哪個擴散算子。通過將擴散算子合并到加密方法的密鑰中使擴散算子成為該方法的變量確保了攻擊者不會先驗地知道使用了哪個擴散算子。這樣攻擊者需要發(fā)現(xiàn)更多的信息來實現(xiàn)成功的攻擊。特別地,由于采取了這種防范, 一些已公開的對白盒實現(xiàn)的攻擊變得復(fù)雜。
      擴散算子不遵守字邊界。這意味著它向更大部分的數(shù)據(jù)傳播誤碼。作為加密方法一部分的其他運算,例如S盒(S-boxes),將字值映射為不同的字值。在此,字具有有限數(shù)目的比特,例如字可以是4比特的半字節(jié)、8比特的字節(jié)或16比特的字。在字中的比特數(shù)可由在這樣的S盒中使用的字長來確定。擴散算子具有比一個字大的輸出,例如兩個或四個字。如果加密方法是塊密碼,通常地擴散算子的輸出字不大于塊密碼的一個數(shù)據(jù)塊。在AES的例子中,S盒在8比特的字上運算,而擴散算子在32比特值即包括了 4個8比特字的值上運算。AES的塊大小為128比特,它大于擴散算子的輸出大小。表示擴散算子的信息包括足夠的信息來唯一地識別想要的擴散算子,例如該信息可包括矩陣算子的元素,或可包括需要在白盒實現(xiàn)中使用的許多查找表,以與可應(yīng)用的輸入和輸出編碼結(jié)合來實現(xiàn)擴散算子。
      在一個實施例中,擴散算子滿足以下性質(zhì)擴散算子的輸入中一個比特的改變對應(yīng)該擴散算子的輸出中多于一個比特的改變。
      擴散算子的目的是向數(shù)據(jù)塊的其他比特傳播單個比特中解密錯誤的影響,以使整個數(shù)據(jù)塊不能使用。這也使得找到嵌入在白盒實現(xiàn)中的加密密鑰更困難。實現(xiàn)該性質(zhì)的最少(minimum)步驟是確保誤碼被傳播至不止一個比特。找到滿足該性質(zhì)的算子的方法在現(xiàn)有技術(shù)中是已知的。理想地,如果使用的是線性擴散算子,它是可分離的最大距離。通過擴散算子,在一個輸出字中至少一個比特的改變應(yīng)當導(dǎo)致至少兩個輸出字的改變(該至少兩個輸出字的每一個具有至少一個改變的比特)。在一個實施例中,擴散算子是非線性算子。 非線性擴散算子使得攻擊更困難。 在一個實施例中,
      擴散算子的輸入由S盒的A個輸出的序列給出,每個s盒的輸出是"
      比特值,其中A和"是預(yù)定的正整數(shù)值,
      每個輸出編碼的輸入為m比特值,其中/和w是預(yù)定的正整數(shù)值,以及 擴散算子是具有可劃分為/行A個mx/7元素子矩陣的可逆矩陣表現(xiàn)形
      式的線性算子,每一行滿足以下性質(zhì)由形成該行的子矩陣的第一子集的
      串聯(lián)形成的矩陣和由形成該行的子矩陣的第二子集的串聯(lián)形成的矩陣不
      都具有秩m,第一子集和第二子集是分離的。
      使用在該實施例中使用的這種類型的線性算子的加密方法相對地難
      于破壞。
      在一個實施例中,密鑰包括可逆矩陣的表現(xiàn)形式。 該表現(xiàn)形式是表示線性擴散算子的有效方式。
      在一個實施例中,加密方法包括Rijndael方法,其中混合列算子被擴 散算子代替。在另一個實施例中,加密方法基于Feistel方法。 一個實施例包括-
      用于接收密鑰的輸入端,密鑰包括表示擴散算子的信息;和
      加密方法的白盒實現(xiàn),該加密方法包括應(yīng)用多個變換,每個變換用輸 出字代替輸入字;以及對多個輸出字的串聯(lián)應(yīng)用擴散算子,以便在輸出字 間擴散由輸出字表示的信息。
      在一個實施例中,密鑰包括一個或多個表示用輸入和輸出編碼擾亂的 擴散算子的查找表。
      一個實施例包括
      包括用于接收密鑰的輸入端的客戶機,該密鑰包括表示擴散算子的信 息;該客戶機進一步包括加密方法的白盒實現(xiàn),該加密方法包括應(yīng)用多個 變換,每個變換用輸出字代替輸入字,該加密方法還包括多個輸出字的串 聯(lián)應(yīng)用由在密鑰中的信息表示的擴散算子,以便在輸出字間擴散由輸出字 表示的信息;
      服務(wù)器,用于根據(jù)密鑰應(yīng)用與客戶機中實現(xiàn)的加密方法相應(yīng)的加密方 法5和
      用于生成密鑰的裝置。


      將參考附圖進一步闡明和描述本發(fā)明的這些和其他方面,其中
      圖1是圖示AES的輪中的運算的示意圖2是圖示擾亂表的例子的示意圖3是圖示在白盒AES實現(xiàn)中的列的輪的示意圖4是圖示合并在類型Ia表中的映射的示意圖5是圖示合并在類型II表中的映射的示意圖6是圖示合并在類型III表中的映射的示意圖7是圖示合并在類型IV表中的映射的示意圖8是圖示合并在類型Ib表中的映射的示意圖9是圖示處理步驟的流程圖IO是圖示更多處理步驟的流程圖11是圖示一個實施例的示意圖;和
      圖12是圖示一個實施例的示意圖。
      具體實施例方式
      AES是塊大小為128比特或16字節(jié)的塊密碼。明文被劃分為形成編 碼算法的初始狀態(tài)的16字節(jié)的塊,該編碼算法的最終狀態(tài)是密文。為了 概念地解釋AES,狀態(tài)比特祐:組織為4x4字節(jié)的矩陣。AES由多個輪組 成。每個輪由在狀態(tài)矩陣的字節(jié)、行或列上運算的相似處理步驟組成,每 個輪在這些處理過程中使用不同的輪密鑰。
      圖1圖示了 AES輪的一些主要處理步驟。這些處理步驟包括 -加上輪密鑰(AddRoundKey) 2——該狀態(tài)的每個字節(jié)與輪密鑰的 字節(jié)異或(XOR)。
      -替換字節(jié)(SubBytes ) 4——使用查找表的逐字節(jié)置換。 -移動行(ShiftRows) 6——狀態(tài)的每一行被循環(huán)固定數(shù)目的比特。 -混合列(MixColumns) 8——使用GF(28)的才莫乘處理每一列。 步驟替換字節(jié)4、移動行6和混合列8獨立于使用的特定密鑰。在 步驟加上輪密鑰2中應(yīng)用該密鑰。除了步驟移動行6夕卜,處理步驟可以 在不知道其他列的情況下在4x4狀態(tài)矩陣的每一列上進行。因此,由于每 一列由4個8比特值組成,它們可以被認為是32比特的運算。虛線10表 示重復(fù)該過程直到執(zhí)行了需要數(shù)目的輪。這些步驟中的每一個或步驟的結(jié)合可由查找表或由查找表網(wǎng)絡(luò)(S
      盒)表示。用查找表網(wǎng)絡(luò)來代替AES的完整輪也是可能的。例如,加上 輪密鑰步驟可通過簡單地與輪密鑰異或來實現(xiàn),而替換字節(jié)、移行和混合 列步驟可使用表查找來實現(xiàn)。然而,這意味著對于白盒攻擊背景中的攻擊 者來說密鑰仍然是可見的。加上輪密鑰步驟也可以被嵌入在查找表中,這 使得找到密鑰不那么顯而易見。
      圖2圖示了使提取密鑰更困難的方法。X和Y是兩個函數(shù)??紤]運 算y。Z(c)^r(Z(c)),如圖2中的圖12所示,其中c是輸入值,例如4字節(jié) 狀態(tài)列。然而,該方法應(yīng)用于任何類型的輸入值c。映射X和Y可;f皮實現(xiàn) 為存儲在存儲器中的查找表,然而,當它們被存儲在存儲器中時這些值可 被攻擊者讀取。圖14圖示了如何通過使用輸入編碼F和輸出編碼H擾亂 查找表的內(nèi)容。對應(yīng)于JT 。 F-1和// 。 y的查找表如圖所示被存儲代替X和Y, 使得提取X和Y更困難。圖16顯示了如何增加附加的例如隨機雙射函數(shù) G,使得這兩個表的中間結(jié)果也被編碼。在這種情況下,兩個表被存儲在 存儲器中X^G。X。i^和r二i/。;r。G-\這在圖表18中再次被解釋
      r°^'=(//。y。G-1)。(G。X。JF-1) = //°(y°JO°F— 其中。通常表示函數(shù)合成(即對于任何兩個函數(shù)f(x)和g(x),定義 /。gW = /(g00) ), X和Y是適合借助于查找表實現(xiàn)的函數(shù)。同樣地由多于 兩個函數(shù)構(gòu)成的網(wǎng)絡(luò)可以一皮編碼。編碼X和Y的真實表由在單個查找表 中結(jié)合i/。;r。G-1和在單個查找表中結(jié)合( 。義。尸-'來擾亂。只要F、 G和/ 或H保持未知,攻擊者就不能從查找表中提取作為X和/或Y的基礎(chǔ)的信 息,因此攻擊者不能提取基于X和/或Y的密鑰。其他加密算法,包括 DES和Rijndael (AES是它的一個特例),也可浮皮編碼為以上述類似方法 擾亂的查找表(的級聯(lián)(cascade)或網(wǎng)絡(luò))。這也適用于基于例如代替置 換(substitution-permutation)網(wǎng)絡(luò)或Feistel網(wǎng)絡(luò)的密碼。本發(fā)明不限于所 述示例加密算法。
      Chow 1公開了一種想通過用表示合成而不是單獨的步驟的隨機雙射 編碼密鑰表來隱藏密鑰的方法。防止密鑰提取具有的優(yōu)點是,防止攻擊者 提取將允許軟件保護目標在其他機器上被回避的密碼資料(keying material),或防止攻擊者發(fā)布有效創(chuàng)建"全面破解(global crack)"的密鑰 資料,"全面破解"擊潰被安裝的軟件的大的用戶-基礎(chǔ)上的安全措施。它 通過約束純軟件解決方案和惡意主機實體(hostile-host reality)提高了保護的程度。在Chowl的方法中,通過下列手段隱藏密鑰(l)使用用于合 成而不是單獨的步驟的表;(2)用隨機雙射編碼這些表;和(3)擴展加 密邊界超出加密算法本身進一步向外到包含應(yīng)用(containing application) 中,迫使攻擊者(逆向工程人員)理解明顯更多的代碼段以達到他們的目 的。Chow 1討論了一種固定密鑰方法通過關(guān)于密鑰部分求值(partial evaluation)來將所述密鑰嵌入在實現(xiàn)(implementation)中,這樣密鑰輸 入成為不必要的。部分求值是指盡可能合理多地對涉及密鑰的表達式 (expression)求值,并將結(jié)果而不是完整的表達式放入代碼中。攻擊者 可提取密鑰特定的實現(xiàn)并用它代替密鑰,然而加密典型地是能以經(jīng)處理或 經(jīng)編碼的形式向加密成分(component)提供輸入的較大包含系統(tǒng)的成分, 為之設(shè)計所述成分,但是對手將發(fā)覺移除它4艮困難。對于編碼表的步驟, 由于編碼是隨意的(arbitrary),只有當一個步驟的輸出編碼與下一步驟的 輸入編碼匹配時,結(jié)果才是有意義的。例如,如果步驟Y跟著步驟X(產(chǎn) 生r。X的計算),該計算可編碼為
      r。x'=(//。;r。G—')。(g。z。f—'^/z。(7。x)。f-、 這樣,r。z被正確計算,雖然輸入需要用F來編碼,輸出需要用/r'來解 碼。這些步驟被單獨地表示為對應(yīng)于Y,和x,的表,從而除了X和Y被隱 藏之外F、 G和H也^:隱藏了。
      除了這樣的混淆(confusion)步驟外,Chow 1借助于線性變換使用 擴散(diffusion)步驟來進一步掩飾這些基本運算(underlying叩eration )。 使用術(shù)語混合雙射來描述上述意義的線性雙射。Chow l的實現(xiàn)采用經(jīng)處 理形式的輸入,并產(chǎn)生差別處理的形式的輸出,由此使抗白盒攻擊環(huán)境 (white-box attack context, WBAC)的AES難于從它的包含應(yīng)用中分離。
      白盒AES實現(xiàn)可如下所述。對AES加密和解密算法的輸入是單個128 比特塊。該塊由包括16字節(jié)的4x4矩陣表示。AES通常由用于AES-128 的10輪組成。每一輪更新一組形成AES狀態(tài)的十六個字節(jié),因此每一個 AES輪處理128比特。AES-128使用128比特的密鑰。該密鑰作為將該密 鑰轉(zhuǎn)換為不同的128比特的輪密鑰的算法的輸入?;据営伤膫€部分組 成
      參替換字節(jié) *移行
      *混合列
      *加上輪密鑰。該運算的順序應(yīng)用于AES加密。雖然AES解密中運算的標準順序不 同,但是重寫AES解密算法以具有與AES加密相同的運算順序是可能的。
      在第一輪之前,實現(xiàn)額外的加上輪密鑰運算,并且在輪十省略混合列 運算。使用密鑰的唯一部分是加上輪密鑰,其他三個部分與密鑰無關(guān)。 在該實現(xiàn)中改變輪的邊界以把加上輪密鑰步驟和下一輪的替換字節(jié)步驟 整合為一個步驟。輪從加上輪密鑰和替換字節(jié)開始,然后是移行,最后 是混合列。
      首先,通過把替換字節(jié)步驟和加上輪密鑰組合在一起成為一個步驟來 隱藏密鑰。這使得密鑰單獨地不再可見。因為密鑰事先是已知的,涉及密 鑰的運算可被預(yù)求值。這意味著在步驟替換字節(jié)中使用的標準S盒可被密 鑰特定的S盒代替。為了生成AES-128的密鑰特定的實例,通過創(chuàng)建十 六個8x8 (即8比特輸入,8比特輸出)查找表z;;,來將密鑰整合到替換字
      節(jié)變換中,查找表7;:,皮定義為
      7;;(jc)二SO0《;1) , / = 0,…,3; _/ = 0,…,3; r=l,…,9, 其中S是AESS盒(可逆8比特映射),(是在表示輪r的輪密鑰的4x4
      矩陣的/, y位置處的AES子密鑰字節(jié)。這些T盒將替換字節(jié)步驟與上一 輪的加上輪密鑰步驟組合。輪10 T盒如下吸收變白后的密鑰 (post-whitening key):
      ")("二S(xe《》e&V力,i = 0,…,3; j=0,…,3,
      其中sr(i,j)表示移行步驟之后的單元i, j的新位置。T盒的總數(shù)為10x16 =160。然而,密鑰可容易地從T盒重新獲得,因為W是眾所周知的。這 使得額外的編碼是必需的。線性轉(zhuǎn)換被用于擴散T盒的輸入。這些線性變 換被稱為混合雙射,并且可由GF(2)上的8x8矩陣表示。通過早前的計算 來對混合雙射求逆(invert)以消除它們的影響。
      圖3圖示了狀態(tài)(在應(yīng)用移行后)的一個32比特列的白盒AES輪中 涉及的表。在此介紹了不同種類的表的名字。將在下文更詳細的討論它們。 在該輪之前,128比特狀態(tài)的每一字節(jié)被應(yīng)用于各個類型Ia表。這導(dǎo)致了 各個128比特值,使用類型IV表的網(wǎng)絡(luò)異或這些值以提供被劃分為四個 32比特值的128比特輸出?,F(xiàn)在,開始笫一輪。在此略述每個32比特值 的處理步驟。32比特值的四個字節(jié)被輸入到四個各個類型II表20。這四 個類型II表20的每一個導(dǎo)致32比特的輸出。使用類型IV表22按位異或 這些輸出。每個類型IV表22實現(xiàn)4比特按位異或。通過合適地連接類型IV表的輸入和輸出,四個32比特輸出的按位異或可如本領(lǐng)域技術(shù)人員所 理解的那樣來實現(xiàn)。該步驟的結(jié)果是32比特值。該值的四個字節(jié)的每一 個字節(jié)^皮應(yīng)用于各個類型III表24。每個類型III表提供32比特輸出。使用 類似于類型IV表22網(wǎng)絡(luò)的類型IV表26網(wǎng)絡(luò)再次按位異或這些輸出。該輸 出是表示狀態(tài)列的32比特值。輪2至9類似于該第一輪。128比特值的 每個字節(jié)^L應(yīng)用于類型Ib表;使用類型IV表的網(wǎng)絡(luò)異或該結(jié)果。最后一 輪(通常是第十輪)可由外部編碼吸收。
      圖4圖示了類型Ia表100。圖5圖示了類型II表200。圖6圖示了類 型m表300。圖7圖示了類型IV表400。圖8圖示了類型Ib表500。
      如下使用混合雙射。AES狀態(tài)由包括多個字節(jié)的4x4矩陣表示?;?合列步驟每次在列(四個8比特單元)上運算??紤]32x32的矩陣MC。 如果用表來表示它,該表將耗費232x32 = 137438953472比特=16GB。為 了避免這么大的表,該矩陣纟皮分塊為四個部分。
      MC凈皮分塊為四個32x8的部分,MCo、 Md、 MC2、 MC3 (方框208 )。 32比特向量x氣xo,…,xm)與MC的乘法通過將x的比特劃分為四個字節(jié)并 將MC的每一部分與字節(jié)之一相乘得以完成,得到四個32比特的向量 (zo,…,Z3)。接著實現(xiàn)三個32比特異或,給出最終的32比特結(jié)果z。這四 個表一起僅耗費4x28x32 = 32768比特=4KB。
      這三個異或?qū)⒈粍澐譃榫哂羞m當串聯(lián)的24個4比特異或(例如 ((z
      ,z
      ,z
      ,z
      )+( z[l,0],z[l,l],z[l,2],z[l,3]))ll((z
      ,z
      ,z
      ,z
      )+( z[l,4],z[l,5],z[l,6],z[l,7])川…),每一個4比特異或由可能地編 碼的查找表表示,其中l(wèi)l表示串聯(lián),+表示異或。通過使用這些分解(strip) 和細分的異或,每個步驟由小的查找表表示。特別地,對于i-O, ..., 3 使用8x32的表計算Zi,而4比特異或變?yōu)?4個8x4的表。圖7圖示了輸 入編碼402和輸出編碼406如何能被放置在異或404的附近。這些編碼通 常是隨機選取的非線性4x4雙射。異或表被稱為類型IV表400。類型IV表 從兩個先前計算的每一個計算獲取4比特作為輸入。那些計算的輸出編碼 212與針對類型IV表的輸入解碼402進行匹配以互相撤銷(皿do)。 4x4 的非線性雙射的選取取決于表的大小。在這種情況下類型IV表僅是28x4 比特=128字節(jié)。需要一共耗費3KB的24個表。如果不劃分異或,那么 將需要計算32比特異或的三個異或表。T盒206和8x32的表208可被表 示為分離的查找表。替代地,它們可被組合,從而創(chuàng)建新的計算替換字節(jié) 和加上輪密鑰變換以及部分混合列的8x32的表200。這節(jié)約了 (存儲T盒的)空間和(執(zhí)行表查找的)時間。
      在如上將MC分離成MCi之前,MC將左乘以32x32混合雙射MB(圖 5在附圖標記210處圖示地指出MB ),選為具有滿秩的4x4子矩陣的非奇 異性矩陣。混合雙射的使用增加了特定表的可能編排的數(shù)量。
      圖5圖示了包括4x4輸入解碼202和4x4輸出編碼212的8><32的類 型II表200。這些輸出編碼和輸入解碼是必須與類型IV表400的輸入解碼 和輸出編碼匹配的非線性4x4雙射。類型II表200由類型IV表400跟隨。 為了對MB求逆,額外的一組表被用于計算MB"。假設(shè)(x,。,…,x,30是混 合列的輸入,并且假設(shè)(zo,…,ZM)是MixColunms之后的輸出。假設(shè) (z,o,…,z,3!)t是與MB相乘后的結(jié)果。(z,o,…,z,30T作為類型III表300的輸 入。注意在此不需要考慮輸入解碼和輸出編碼,因為一個表的輸出編碼被 下一個表的輸入解碼撤銷。在類型III表300中,應(yīng)用MB"304以及對下一 輪的四個類型II表200的四個輸入混合雙射204求逆308。
      圖6圖示了包括4x4非線性輸入解碼和4x4非線性輸出編碼的8x32 的類型III表300。這些表纟皮相應(yīng)的類型IV表400跟隨。
      數(shù)據(jù)運算的一個輪涉及在128比特的狀態(tài)矩陣上的運算。在128比特 狀態(tài)矩陣的四條32比特的每一條上的數(shù)據(jù)運算如下所述來進行。32比特 條被劃分為四個8比特字節(jié)。這四個字節(jié)的每一個被饋送入不同的類型II 表200,產(chǎn)生四個32比特輸出值。必須使用擾亂的類型IV表400來異或 這些值。為了那個目的,每個32比特輸出值被劃分為8個4比特的半字 節(jié),并且半字節(jié)的適當對被輸入到各個類型IV表,從而以編碼的方式獲得 四個32比特輸出值的異或。
      該32比特合成的經(jīng)編碼異或的結(jié)果被再次劃分為字節(jié),并且每個字 節(jié)被輸入到不同的類型III表300。類型III表的每個半字節(jié)的輸入解碼與最 后應(yīng)用的類型IV表的輸出編碼相對應(yīng)。類型m表再次產(chǎn)生四個32比特的 輸出值,再次使用擾亂的類型IV表400來異或這些輸出值。
      總之,輪由查找表實現(xiàn)。單個輪的查找表如下形成網(wǎng)絡(luò)。數(shù)據(jù)被饋送
      入類型n表。這些表的輸出被饋送至表示編碼的異或的類型iv表的網(wǎng)絡(luò)。 該網(wǎng)絡(luò)的輸出被饋送至刪除由類型n表插入的混合雙射編碼的類型m表。 通過將類型m表的輸出再次饋送入表示編碼的異或的類型iv表的網(wǎng)絡(luò),最 終導(dǎo)出該輪的編碼輸出。
      并且,為了分別刪除和插入外部編碼,白盒實現(xiàn)在開始(類型Ia表 100)和結(jié)尾(類型Ib表500)包含類型I表。通過應(yīng)用單獨表查找,類型la表100可用于應(yīng)用如圖4所示的映射串聯(lián)。在該串聯(lián)中,4比特半字 節(jié)輸入解碼102首先出現(xiàn)。然后,8比特至128比特雙射104出現(xiàn);該雙 射實現(xiàn)網(wǎng)絡(luò)輸入和輸出的編碼;該映射可在程序的其他地方凈皮撤銷。雙射 104的結(jié)果^皮分離成16個8比特片,將各個8比特雙射106應(yīng)用于這16 個8比特片。最后應(yīng)用輸出的半字節(jié)編碼108。如上所述,映射102、 104、 106和108的級聯(lián)被預(yù)求值,最終結(jié)果在查找表中^皮列成表格。這產(chǎn)生最 多256個條目、每個條目128比特的表。在圖8中示意性地顯示了合并在 類型Ib表500中的映射的串聯(lián)。第一個映射是輸入的半字節(jié)解碼502,其 后是8比特的雙射504、 T盒;506 (其中r對應(yīng)于最后一輪)、用于提供
      輸出編碼的8比特至128比特的映射以及輸出的半字節(jié)編碼510。這種類 型的表的128比特輸出被與其他類型Ib表的輸出異或,再次使用了半字 節(jié)輸入和輸出的編碼的類型IV表400。輸出編碼508可在該程序的其他地 方(即在該程序的加密部分以外)纟皮撤銷。這使得對于攻擊者來說通過僅 分析該程序的加密部分的輸入和輸出來破壞表的編碼更加困難。
      白盒加密涉及在軟件中實現(xiàn)塊密碼,使得攻擊者甚至在白盒攻擊才莫式 中也無法提取密鑰。白盒攻擊模式是最強的可想象的攻擊模式之一,因為 攻擊者被認為具有對該實現(xiàn)的完全接入和對該執(zhí)行環(huán)境的完全控制。對于 AES、 DES和其他加密方案,都存在白盒實現(xiàn)。這些白盒實現(xiàn)基于上面提 到的類似思想,本領(lǐng)域技術(shù)人員能夠應(yīng)用白盒實現(xiàn)的原理來創(chuàng)建其他加密 方案的白盒實現(xiàn)。
      最近,公開了一些揭示特定白盒實現(xiàn)的某些弱點的攻擊。例如,Billet 描述了對AES白盒實現(xiàn)的攻擊。出現(xiàn)了對一種改進的塊密碼的需求,這 種塊密碼具有使這樣的攻擊在白盒環(huán)境中更困難的特性。白盒實現(xiàn)的應(yīng)用 (例如增強了軟件的防篡改性)將得益于這樣的改進的塊密碼。即,它們 將得益于既安全又在速度和存儲方面具有上佳表現(xiàn)的塊密碼,白盒實現(xiàn)為 了這個塊密碼而存在。
      當用于白盒實現(xiàn)時,諸如AES和DES這樣的塊密碼具有一些缺點。 已公開的在它們的白盒實現(xiàn)上的攻擊也反映了這一點。盡管對于到目前為 止已公開的攻擊存在補丁,但是優(yōu)選的是,擁有不具有已知塊密碼的弱點 或至少減少其一些弱點的與目標契合的塊密碼。
      塊密碼的擴散算子通??杀恢付榇_定的矩陣乘積。例如對于AES 和DES就是這個情況。這樣的塊密碼的白盒實現(xiàn)對于如在Billet中所述的攻擊來說是易受攻擊的,其中塊密碼包括確定的線性擴散算子。這將在下 文中解釋。
      表。在Chow 1和Chow 2中建議使用非線性編碼。然而,鑒于在Billet 中所述的攻擊,有人可能會指出該編碼的非線性部分不足以擾亂密鑰,并 且出現(xiàn)在基本加密方案中的線性算子在白盒實現(xiàn)中仍然具有弱點。建議例 如通過使線性算子的定義成為密鑰的部分來使線性算子的選取可變。
      在一個實施例中,AES被修改以使擴散算子是可變的。AES的擴散 算子是混合列。該運算通過矩陣相乘將四個字節(jié)a0、 al、 a2、 a3轉(zhuǎn)換為 四個字節(jié)b0、 <formula>formula see original document page 15</formula>(1)
      其中矩陣的元素以十六進制計數(shù)法給出??赏ㄟ^在密鑰中包括矩陣的定義
      來使該矩陣成為可變的,其中矩陣元素被不同的值代替。在AES中,密 鑰由在加上輪密鑰變換中使用的128比特字符串形成。在根據(jù)本發(fā)明的修 改版本中,它是該128比特字符串和在混合列變換中使用的系數(shù)的組合。 使用一組系數(shù)來表示應(yīng)該在整個加密方案中用于代替方程式(1)的單個 混合列變換是可能的。因為攻擊者不知道使用的是哪個變換,并且因為包 括不同未知變換的不同密鑰#:發(fā)布,設(shè)計有效的攻擊更困難。使用每一組 表示不同混合列變換的更多組系數(shù)也是可能的。在該情況下,不同的混合 列變換:故用于加密方案中不同的地方,這進一步使攻擊復(fù)雜化了。例如, 不同的變換被應(yīng)用于不同的輪和/或不同的列。
      塊密碼可借助白盒實現(xiàn)來實現(xiàn)。這樣的白盒實現(xiàn)包括經(jīng)編碼的查找表 形式的(取決于密鑰的)混合列運算。當密鑰(包括修改的混合列運算的 定義)需要升級或改變時, 一組新的查找表需要代替(一些)現(xiàn)存的查找 表。出于這個目的,以可能地編碼或加密的形式向白盒實現(xiàn)提供新的系數(shù)。
      提出的方法可^皮應(yīng)用來獲得塊密碼的安全白盒實現(xiàn)。該白盒實現(xiàn)不旦 可用來保護塊密碼的密鑰(這是白盒加密的一般目的),還可用來應(yīng)用相 關(guān)軟件防篡改技術(shù)。
      應(yīng)當注意在白盒實現(xiàn)中進行的運算可劃分為兩種類型。運算的第一類 型是作為白盒實現(xiàn)基礎(chǔ)的加密方案的部分。這些運算可以通過它們確定了被加密數(shù)據(jù)中的值這一事實粗略地來加以認識。運算的笫二類型,可稱為 "編碼",被包括在白盒實現(xiàn)中以擾亂第一類型運算的中間結(jié)果。通常第一 類型運算的輸出借助于輸出編碼來編碼。該輸出編碼在應(yīng)用下一個笫一類 型的運算之前被相應(yīng)的輸入解碼運算撤銷。通常, 一個或多個輸入解碼、 一個或多個第一類型的運算和一個或多個輸出編碼:帔組合為單個運算,通 常是查找表,使得難以通過檢查代碼或通過進行其他白盒攻擊來提取關(guān)于 第一類型運算的信息。
      可以從已公開的攻擊總結(jié)出的 一 個結(jié)論是輸入和輸出編碼不足以隱 藏第一類型的運算。當笫一類型的變換的數(shù)目是眾所周知的信息時,并且 當僅僅幾個運算或甚至僅單個運算是可變的,或者是取決于密鑰時,尤其
      是上述情況。例如,AES在一個輪中包括四個運算。只有一個運算是取決
      于密鑰的(加上輪密鑰步驟用從密鑰導(dǎo)出的比特進行異或運算)。剩余的 三個運算(替換字節(jié)、移行和混合列)是在標準規(guī)范中完全固定的。這使 得破壞笫二類型的運算(即這些運算周圍的輸入和輸出編碼)相對容易。 使得白盒實現(xiàn)容易遭受攻擊的 一個步驟是混合列步驟。該步驟^皮認為是擴
      散運算,因為它確保在解碼期間引入的誤碼在32個輸出比特(即多個字 節(jié))上得以傳播(擴散),而替換字節(jié)步驟(S盒)在單個字節(jié)上運算。 因此通過替代AES而使用AES的修改,可以更好地保護白盒實現(xiàn)免受攻 擊,在AES的修改中混合列步驟由秘密矩陣控制。這個秘密矩陣可以被 硬編碼(hard-coded)進白盒實現(xiàn)中或可以通過提供關(guān)于矩陣的足夠的信 息來傳遞(communicate),以使白盒實現(xiàn)能對數(shù)據(jù)應(yīng)用混合列步驟。
      可以考慮保證現(xiàn)在可變的擴散算子滿足某些需要的性質(zhì)。這些需要的 性質(zhì)包括擴散算子是可逆的。同樣,該算子的輸入中的一個(或一些)比 特的改變應(yīng)當對該算子的多個輸出比特產(chǎn)生影響。更準確地說,給定兩個 輸入值x和y, x和y中不同的比特數(shù)與相應(yīng)于x和y的輸出值中不同的 比特數(shù)的和應(yīng)當很大。特別地,當考慮到輸入值x和y的所有結(jié)合時該和 的最小值應(yīng)當很大。例如這可以通過使用作為最大可分離距離的擴散算子 來實現(xiàn)。使用非線性擴散算子來使系統(tǒng)更難于破壞也是可能的。增強所需 性質(zhì)的一個簡單方法是在一大類(a large class of )算子中選取隨機的算子, 并且驗證選擇的算子是否屬于較小類具有所需性質(zhì)的算子。如果驗證顯示 選擇的算子不屬于所述較小類算子,則從所述大類算子中選取新的隨機算 子并驗證,直到發(fā)現(xiàn)算子的確屬于較小類算子。
      這樣的擴散算子的另一個需要性質(zhì)在下文中被概述??紤]一個塊密碼,其輪由S盒組成,跟在S盒后面的是與處理擴散的矩陣M的矩陣相 乘。另外,假設(shè)我們通過白盒實現(xiàn)來實現(xiàn)該塊密碼。假設(shè)"表示S盒的輸 入比特數(shù),m是輪的非線性輸出編碼的精細度,即輪的輸出由m比特的 非線性函數(shù)(對于上述示例性白盒實現(xiàn),r^8且n^4)來編碼。將&定義 為第z'個S盒的輸出,A:為S盒的數(shù)目,/為編碼的輸出字的數(shù)目(注意這 暗示了擴散算子的輸入大小和輸出大小纟皮給定為yb2=/m比特),則輪的輸 出由下式給出
      <formula>formula see original document page 17</formula>
      其中對于所有/=1,...乂^是一個"比特的值,對于所有tl,…,/;c,.是一個m 比特的值。將A^.定義為從行(,-l)w和列(;-l)w開始的M的子矩陣, 其中行和列從0開始計數(shù),則上述表達式可重寫為<formula>formula see original document page 17</formula>
      假設(shè)在M中 一行有A個子矩陣M7,M2,... , 假設(shè)子集K={Vl,v2,. 這些矩陣對于某些正整數(shù)r的子集。將A^"定義為通過在F中串聯(lián)矩陣 而得到的mx"r的矩陣,即對于某些正整數(shù)/ , A^T9的行;7是通過按順序 排列來自V的所有矩陣的第p行得到的。例如,對于<formula>formula see original document page 17</formula>
      矩陣M(V)由下式給出 <formula>formula see original document page 17</formula>
      擴散算子的需要性質(zhì)是對于任何z=l,...,/, M中的子矩陣A^,M2,..., 的行/,不存在(Mi,A^2,…,A《^的兩個不相交的子集R和K2,從而A/(T" 和A^y^都具有秩m。
      圖9顯示了根據(jù)本發(fā)明的一個實施例的處理步驟流程圖。在步驟602 中,隨機地選擇擴散算子作為塊密碼的密鑰的一部分。該隨機化可使用 (偽)隨機生成器來實現(xiàn)。也可以通過或多或少的隨機人為輸入來實現(xiàn)。 連續(xù)選取也是隨機選取,其中選取的算子被以基本上隨機的順序指定給不機生成器填充(fill in)的參數(shù)。在步驟606中,根據(jù)步驟602的密鑰配 置加密算法的實現(xiàn)。這包括將擴散算子設(shè)置為由該密鑰指定的值。因此, 給定了擴散算子在塊密碼中它的位置。在步驟608中,根據(jù)密鑰配置對應(yīng) 于加密算法的解密算法的實現(xiàn)。這可以以類似于配置加密算法實現(xiàn)的方式 來完成。在合適的地方,其中根據(jù)塊密碼,應(yīng)當在兩個實現(xiàn)的任何一個中 對擴散算子求逆。
      兩個實現(xiàn)中的至少一個是白盒實現(xiàn)。關(guān)于白盒實現(xiàn)的配置,出于安全 原因不能將擴散算子顯式地傳遞至白盒實現(xiàn)。而是,可通過適當選取的輸 入和/或輸出編碼來擾亂擴散算子。然后表示被擾亂的擴散算子的查找表 可被傳遞至白盒實現(xiàn),從而隱式地使它能夠使用密鑰。查找表也可以與加 密算法的一個或多個運算相結(jié)合。擴散算子也可以被劃分為幾個更小的運 算。通常,在白盒實現(xiàn)中這些擾亂的運算將借助查找表來實現(xiàn)。
      在步驟610中,這兩個實現(xiàn)被用于加密數(shù)據(jù)的交換。出于這個目的, 通過實現(xiàn)加密算法而被力。密的數(shù)據(jù)被傳送給解密算法的實現(xiàn)。通常,這兩 個實現(xiàn)將在不同的終端上使用。數(shù)據(jù)交換不僅可使用互聯(lián)網(wǎng)連接或其他類 型的網(wǎng)絡(luò)連接來實現(xiàn),還可以借助于諸如CD或DVD這樣的存儲介質(zhì)來 實現(xiàn)。
      以特定的順序在這個和其他實施例中介紹了運算。這僅被認為是例 子,本領(lǐng)域技術(shù)人員將意識到,這些步驟可以以許多不同的順序來執(zhí)行。
      圖10圖示了本發(fā)明的一個實施例。在步驟702中顯示了生成了包括 與選取的擴散算子相關(guān)的信息的加密密鑰消息。該消息應(yīng)當包含用于白盒 實現(xiàn)合適地配置它自己的有效信息。通常該消息不顯式地包含擴散算子, 而它包含提供有輸入和輸出編碼的擴散算子的版本。該加密密鑰消息可部 分地或完全地被加密。該消息還可包含密鑰信息,例如如果使用類似AES 的塊密碼,則該密鑰還可包含128比特的AES密鑰。在步驟704中使用 諸如數(shù)字網(wǎng)絡(luò)或數(shù)字存儲介質(zhì)這樣的任何已知的介質(zhì)將所述加密密鑰消 息提供給白盒實現(xiàn)。在步驟706中,根據(jù)消息中的信息配置該白盒實現(xiàn)。 例如,如果該密鑰包含查找表形式的擴散算子,那么這些查找表以預(yù)定義 的方式被包括在白盒實現(xiàn)中。該白盒實現(xiàn)處于其上的終端具有能夠接收和 處理加密密鑰消息的軟件和/或硬件以配置該白盒實現(xiàn)。
      圖11圖解了一種加密方法。該加密方法適合于在白盒實現(xiàn)上實現(xiàn)。 該方法涉及應(yīng)用多個變換(方框802),每個變換用輸出字代替輸入字。在基于AES的例子中,這樣的變換包括加上輪密鑰、替換字節(jié)和移行(它
      使用行中的鄰近輸入字代替輸入字)。這些運算具有共性,即每個字節(jié)中 的信息不被傳播到多于 一個的其他字節(jié)。
      該方法進一步涉及對多個輸出字的串聯(lián)應(yīng)用擴散算子(方框804)。 擴散算子具有在輸出字之間擴散由輸出字表示的信息的作用。在AES的
      例子中,這樣的擴散算子是混合列,因為混合列在是四個字節(jié)的串聯(lián)的 32位字符串的比特之間傳播一個字節(jié)中的信息。表示擴散算子的信息被 包括在加密方法的密鑰806中。該密鑰使該方法的擴散算子成為變量。
      圖12圖示了本發(fā)明的一個實施例。該圖顯示了諸如到互聯(lián)網(wǎng)的連接 之類的通信端口 95,以便與數(shù)字內(nèi)容提供商連接。該內(nèi)容還可以從諸如 DVD或CD這樣的介質(zhì)96獲得。通常使用由使用存儲器91的處理器92 執(zhí)行的媒體播放器來再現(xiàn)PC上的數(shù)字內(nèi)容。對于特定內(nèi)容格式,這樣的 播放器可以執(zhí)行各種插件,以便進行對應(yīng)于通過通信端口 95和/或介質(zhì)96 獲得的內(nèi)容的^^各式特定的解碼。那些內(nèi)容^^式可包括AVI、DV、運動JPEG、 MPEG-1、 MPEG-2、 MPEG-4、 WMV、音頻CD、 MP3、 WMA、 WAV、 AIFF/AIFC、 AU等。出于數(shù)字版權(quán)管理的目的,可使用不僅解碼內(nèi)容還 解密內(nèi)容的安全插件。該插件包括存儲在存儲器91中的處理器指令和參 數(shù)(例如被擾亂的查找表)。被擾亂的查找表形成具有如上所述隨機選取 的擴散算子的白盒實現(xiàn)。可選地可通過通信端口 94和/或介質(zhì)96接收加 密密鑰消息。可提供用戶輸入94以從用戶獲取命令,指示將要再現(xiàn)的內(nèi) 容,并且提供顯示器93和/或揚聲器來再現(xiàn)經(jīng)解碼和/或經(jīng)解密的內(nèi)容。
      應(yīng)當理解,本發(fā)明還擴展到適用于將本發(fā)明進行實踐的計算機程序, 特別是在載體上或載體中的計算機程序。該程序可以是源代碼、目標代碼、 代碼中間源(code intermediate source)和諸如部分編譯形式之類的目標代 碼的形式,或者是其他適用于在根據(jù)本發(fā)明方法的實現(xiàn)中使用的任何形 式。該載體可以是任何能夠執(zhí)行該程序的實體或設(shè)備。例如,該載體可包 括諸如ROM之類的存儲介質(zhì)(例如CD ROM或半導(dǎo)體ROM),或磁記 錄介質(zhì)(例如軟盤或硬盤)。進一步地,該載體可以是諸如電信號或光信 號這樣的可傳輸載體,可傳輸載體可通過電纜或光纜或通過無線電或其他 方式進行傳送。當程序被包括在這樣的信號中時,載體可由這樣的電纜或 其他設(shè)備或裝置構(gòu)成。可選地,載體可以是程序被包括在其中的集成電路, 該集成電^各適合于完成或用于完成相關(guān)的方法。
      應(yīng)當注意,上述實施例說明而非限制了本發(fā)明,那些本領(lǐng)域的技術(shù)人員將能夠設(shè)計許多可選的實施例而不脫離附加權(quán)利要求書的范圍。在該權(quán) 利要求書中,任何放置在括號間的附圖標記不應(yīng)當被解釋為限制該權(quán)利要 求。動詞"包括"和它的變形的使用不排除除那些在權(quán)利要求中陳述的那些 以外的元件或步驟的出現(xiàn)。元件前的冠詞"一個"或"一"不排除多個這樣的
      算機來實現(xiàn)。在列舉口了幾個裝置的設(shè)備權(quán):要求中:這些裝置中的 一 些可 由一個硬件和硬件的相同部分包含。某些措施被描述在互不相同的從屬權(quán) 利要求中的這個事實并不意味著這些措施的組合不能被用來產(chǎn)生良好的 效果。
      權(quán)利要求
      1. 一種用于在白盒實現(xiàn)中實現(xiàn)的加密方法,該方法包括應(yīng)用多個變換(802),每個變換用輸出字代替輸入字;和對多個所述輸出字的串聯(lián)應(yīng)用擴散算子(804)以便在所述輸出字之間擴散由所述輸出字表示的信息;其中該加密方法的密鑰(806)包括表示所述擴散算子的信息。
      2. 根據(jù)權(quán)利要求l的方法,其中所述擴散算子滿足性質(zhì)所述擴散 算子的輸入中的一個比特的改變對應(yīng)于所述擴散算子的輸出中的多于一 個比特的改變。
      3. 根據(jù)權(quán)利要求1的方法,其中所述擴散算子是非線性算子。
      4. 根據(jù)權(quán)利要求l的方法,其中所述擴散算子的輸入由S盒的A:個輸出的序列給出,每個S盒的輸出 是n比特值,其中A和"是預(yù)定義的正整數(shù)值,的序列,每個:出編碼的輸入是m比特7直,其中,/和m是預(yù)一定義的正整 數(shù)值,以及所述擴散算子是具有作為可逆矩陣的表示的線性算子,所述可逆矩陣 可劃分為A:個m^個元素的子矩陣的/行,每一行滿足性質(zhì)由形成該行 的子矩陣的第一子集的串聯(lián)所形成的矩陣和由形成該行的子矩陣的第二 子集的串聯(lián)所形成的矩陣不都具有秩m,所述第一子集和所述第二子集是 不相交的。
      5. 根據(jù)權(quán)利要求0的方法,其中所述密鑰包括所述可逆矩陣的表示。
      6. 根據(jù)權(quán)利要求1的方法,其中所述加密方法包括Rijndael方法, 其中混合列算子被所述擴散算子代替。
      7. —種系統(tǒng),包括用于接收密鑰的輸入端,所述密鑰包括表示擴散算子的信息;和 加密方法的白盒實現(xiàn),該加密方法包括應(yīng)用多個變換,每個變換用輸出字代替輸入字;并對多個所述輸出字的串聯(lián)應(yīng)用所述擴散算子以便在所述輸出字之間擴散由所述輸出字表示的信息。
      8. 根據(jù)權(quán)利要求7的系統(tǒng),其中所述密鑰包括一個或多個表示用輸 入和輸出編碼擾亂的所述擴散算子的查找表。
      9. 一種客戶機服務(wù)器系統(tǒng),包括客戶機,包括用于接收密鑰的輸入端,該密鑰包括表示擴散算子的信息;該客戶機進一步包括加密方法的白盒實現(xiàn),該加密方法包括應(yīng)用多個 變換,每個變換用輸出字代替輸入字,并對多個輸出字的串聯(lián)應(yīng)用由所述 密鑰中的信息表示的擴散算子以便在所述輸出字之間擴散由所述輸出字 表示的信息;用于依賴于所述密鑰應(yīng)用對應(yīng)于在所述客戶機中實現(xiàn)的加密方法的 加密方法的服務(wù)器;和用于生成所述密鑰的裝置。
      全文摘要
      一種在白盒實現(xiàn)中實現(xiàn)的加密方法。該方法包括應(yīng)用多個變換(802),每個變換用輸出字代替輸入字,該方法還包括對多個輸出字的串聯(lián)應(yīng)用擴散算子(804)以便在輸出字之間擴散由輸出字表示的信息。加密方法的密鑰(806)包括表示擴散算子的信息。該擴散算子滿足性質(zhì)在擴散算子的輸入中的一個比特的變化對應(yīng)于在擴散算子的輸出中的多于一個比特的變化。
      文檔編號H04L9/06GK101536398SQ200780042694
      公開日2009年9月16日 申請日期2007年11月9日 優(yōu)先權(quán)日2006年11月17日
      發(fā)明者P·M·H·M·A·格里森, W·P·A·J·米基爾斯 申請人:皇家飛利浦電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1