專利名稱:密碼系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及密碼系統(tǒng),并涉及密碼處理的方法。
背景技術:
現今,內容越來越采用數字格式向用戶提供,例如,通過因特網、廣播介質, 或通過諸如CD或DVD之類的數字數據載體。諸如電視機、機頂盒、以及音頻設備之類 的消費電子產品(CE)配備有數字數據處理能力,以呈現這些數字內容。已經引入了數字權限管理系統(tǒng),以控制數字內容向合法用戶的分發(fā)。通常,數 字權限管理系統(tǒng)使用只允許合法用戶對內容進行解密的加密技術??梢允惯@樣的加密技 術在消費電子產品中的實現模糊,以使得攻擊者更難以查找密鑰的值。通常用于許多不 同種類的應用中的密碼的示例有DES、AES> RSA、以及W09967918中所公開的方法。就密鑰處理而言,為進行回放,媒體播放器必須從許可證(license)數據庫取得 解密密鑰。然后,它必須將此解密密鑰存儲在存儲器中某處,以用于解密被加密的內 容。這給攻擊者留下攻擊密鑰的兩個選擇。首先,對許可證數據庫訪問功能的反向工程 可能允許攻擊者從所有許可證數據庫取得資產密鑰(asset key)。其次,通過觀察在內容 解密過程中對存儲器的訪問,可以取得該資產密鑰。在兩種情況下,密鑰都被視為被泄 密。在軟件實現的密碼系統(tǒng)領域,對防篡改的軟件產品的需要導致產生模糊技術,其防 止攻擊者獲取加密密鑰以及防止非授權復制。這些模糊技術中的一個涉及提供密碼算法 的白盒實現。密碼算法的白盒實現是將密碼算法的一些或全部內部工作隱藏起來以防止 白盒攻擊(即,其中攻擊者可以觀察到由處理器執(zhí)行的一些或全部指令的攻擊)。在某 些情況下,攻擊者對操作環(huán)境擁有某種形式的控制,這允許他觀察加密操作的至少一部 分,并識別在執(zhí)行過程中算法中所使用的密碼密鑰的至少一部分。例如,他可以在調試 環(huán)境或虛擬機內執(zhí)行所述實現,并由此觀察所有操作,操縱數據緩存區(qū),并監(jiān)視執(zhí)行流 程。在其他情況下,在密碼算法的執(zhí)行過程中,攻擊者可以使操作環(huán)境“泄漏”或 泄露部分實現或部分數據緩存區(qū)內容。例如,他可能能夠使用緩存區(qū)溢出攻擊來提取部 分密碼實現。如果提取了正確部分,那么從而他可以得知該實現中的密碼密鑰或允許他 撤消一些或全部密碼保護的特定設置。白盒實現隱藏密碼算法的一些或全部內部工作,尤其是密鑰數據。這可以以各 種方式來進行。用于創(chuàng)建白盒實現的流行的技術是使用利用表示構成(compositions)而 并非單個步驟的隨機雙射對密碼算法中的表編碼的組合。解密密鑰和解密算法有效地被 變?yōu)橐粋€單塊。該塊的沒有一個部分透露任何有關算法或密鑰的內部工作的信息。事實 上,甚至在給定整個白盒實現的情況下,也極其難以對所使用的原始算法或解密密鑰進 行反向工程。例如,歐洲專利申請序列號08155798.5 (代理人檔案PH010099)中公開了 諸如RSA之類的密碼算法中的指數的模糊。當前,白盒實現只對于數量有限的密碼是已知的。Stanley Chow、PhilipEisen> Harold Johnson 以及 Paul C.Van Oorschot 所著的"White-Box Cryptography and an AES Implementation” (Selected Areas in Cryptography 9th AnnualInternational Workshop, SAC 2002,St.John' s, Newfoundland, Canada, August 15-16,2002)(下 面簡稱為 ‘‘Chowl”),以及 Stanley Chow、Phil Eisen、Harold Johnson 以及 Paul C.van Oorschot 所述"A White-Box DES Implementation for DRM Applications” (Digital Rights Management ACM CCS-9Workshop, DRM 2002,Washington, DC, USA, November 18,2002)(下面簡稱為“Chow 2”),公開了創(chuàng)建密碼算法(尤其是,對于被稱為AES 和DES的密碼算法)的白盒實現的方法。
發(fā)明內容
具有更靈活的創(chuàng)建密碼算法的白盒實現的方式是有利的。為更好地解決此問 題,在本發(fā)明的第一方面,呈現了一種密碼系統(tǒng),該密碼系統(tǒng)包括函數的白盒實現;密碼算法的實現;以及用于根據函數的結果并根據密碼算法的結果建立密碼處理的數據的組合操作的 實現。由于白盒實現,函數所定義的映射不能容易地被攻擊者發(fā)現。因此,通過將適 當的值饋送到函數的白盒實現,可以生成攻擊者難以預測的值的序列。通過將密碼算法 的結果與白盒實現的結果組合,攻擊者更加難以攻壞密碼系統(tǒng)。實際上,利用該白盒實 現的安全性質增強密碼算法的強度。并不需要提供密碼算法本身的白盒實現。密碼算法可以基于例如RSA。函數優(yōu)選是其行為很難通過監(jiān)視函數的白盒實現的輸入和輸出來預測的函數。 所述函數可以包括,例如,諸如DES或AES之類的進一步的密碼算法。在這樣的情況 下,函數的白盒實現包括進一步的密碼算法的白盒實現。替代地,函數可以是散列函數 或隨機發(fā)生器。在這樣的情況下,函數的白盒實現包括散列函數或隨機發(fā)生器的白盒實 現,視情況而定。組合操作器可以包括,例如,XOR操作,或模2k加(addition modulo2k),對于
某正整數k。組合操作可以實現為或者不實現為白盒實現??梢允褂蒙衔乃峒暗挠糜趧?chuàng)建白盒實現的技術,但是也可以使用現在已知的 或下面設計的其他白盒技術。優(yōu)選地,白盒實現不是太小,并具有這樣的性質即使攻 擊者具有該實現的任何一部分(包括算法所使用的密鑰),他也難以由此導出作為白盒 實現的主體的函數的功能上正確的版本。此設定比在白盒實現中常常假設的(即,攻擊 者具有對環(huán)境的完全控制)弱。優(yōu)選地,攻擊者不能從白盒實現的一部分導出基礎密鑰 (underlyingkey),或者,在隨機發(fā)生器的情況下,所使用的種子。某些白盒技術(例如, 上文所提及的對表編碼的組合的使用)被設計成承受其中攻擊者具有對環(huán)境的完全控制 的白盒攻擊。盡管這樣的技術也適合于本發(fā)明的目的,但是,存在其他的更加容易的也 適用于本發(fā)明的白盒技術。作為示例,在創(chuàng)建時,AES的白盒實現可能足以通過非線性 編碼來編碼每一查詢表的輸入和輸出。通過利用線性編碼來編碼在XOR操作之前的查詢 表的輸出(并且,相應地,也編碼XOR操作之后的查詢表的輸入),出于本發(fā)明的目的不需要通過查詢表來實現XOR操作。獨立權利要求定義了本發(fā)明的更多的方面。從屬權利要求定義了有利的實施 例。
下面將參考附圖進一步闡明和描述本發(fā)明的這些及其他方面,在附圖中圖1示出了密碼系統(tǒng)的實施例的圖;圖2示出了密碼系統(tǒng)的另一實施例的圖;圖3示出了包括加密器和解密器的系統(tǒng)的圖;以及圖4示出了密碼處理過程。
具體實施例方式當前,白盒實現僅對于有限數量的密碼(例如,AES、DES> Lombok)是已知
的。下面提供了對用于在(密碼或另一函數)的已知的白盒實現上構建任意密碼(或者, 更一般而言,函數)的白盒實現的一般方法的描述。該白盒實現可以以不花費許多另外 的處理時間的方式構建??梢詣?chuàng)建這樣的密碼系統(tǒng),其包括函數的白盒實現,密碼算法的實現,以及 用于根據函數的結果并根據密碼算法的結果建立密碼處理了的數據的組合操作的實現。 由于所述組合操作以及函數的白盒實現,整個密碼系統(tǒng)變?yōu)榘缀袑崿F??上胂蠖鄠€組合 操作,下面將利用圖1-4更詳細地描述其中的一些。作為附圖中未示出的示例,可以通 過如下的構成(composition)來組合函數和密碼算法首先應用函數,然后再應用密碼算 法;或者,首先應用密碼算法,然后再應用函數。圖1示出了密碼系統(tǒng)100的框圖。該密碼系統(tǒng)具有輸入端112,其中,它接收要 被密碼處理的數據。例如,要被處理的數據是必須要加密的明文,或者,它是必須解密 的密文。替代地,要被處理的數據是要為其生成數字簽名的數據。密碼系統(tǒng)100可以與 互補密碼系統(tǒng)(未示出)結合使用。如果系統(tǒng)100包括加密系統(tǒng),則互補密碼系統(tǒng)可以 包括解密器。另一方面,如果系統(tǒng)100包括對應的解密系統(tǒng),則互補密碼系統(tǒng)可以包括 對應的加密系統(tǒng)。因此,當一個系統(tǒng)能夠處理由另一個系統(tǒng)所產生的消息時,這兩個密 碼系統(tǒng)在本文中被稱作互補系統(tǒng)。密碼系統(tǒng)100還包括密碼算法的實現104。此實現不必是白盒實現,但是可以至 少部分地使用白盒實現領域中本身已知的技術來實現該密碼算法。密碼系統(tǒng)104可以包 括解密器或加密器。通常,如果系統(tǒng)100用于解密,則密碼系統(tǒng)104包括解密器。替代 地,如果系統(tǒng)100用于加密,則密碼系統(tǒng)104包括加密器。由于密碼算法的實現104并 不必需是白盒實現,因此,在選擇所使用的密碼算法方面有很大自由。尤其是,可以應 用未知用于其的白盒實現的密碼算法或其白盒實現不便于使用的密碼算法。此外,密碼系統(tǒng)100還包括用于生成值χ的裝置110。該值χ可以從與例如通過 輸入端112接收到的數據相對應的密文導出?;蛘撸梢园ㄔ陬A定情形下增加的計 數器。裝置110優(yōu)選被布置用于生成互補密碼系統(tǒng)能夠再現的值χ。這可以通過與互補 系統(tǒng)同步值χ來安排,這可以通過交換包括χ的當前值的表示的消息來實現。
可以將值χ提供給函數的白盒實現102。該函數優(yōu)選不是非常容易通過分析其輸 入和輸出來理解的。例如,它包括諸如AES之類的密碼算法。替代地,它可以包括散 列函數或隨機發(fā)生器函數。不言而喻,創(chuàng)建這樣的白盒實現的方式從Chow等人的著述 已知。通過組合操作的實現106將由函數的白盒實現102和密碼算法的實現104所產生 的輸出組合。組合操作的實現106所產生的結果取決于由函數的實現102所產生的結果 以及由密碼算法的實現104所產生的結果。圖1示出了其中函數的實現102和密碼算法 的實現104并行操作并產生彼此獨立的結果的情況。組合操作的實現106將這些輸出組 合為單一結果。因此,組合操作包括將密碼算法的結果與函數的結果組合。組合操作優(yōu) 選為使得不能從所述單一結果中提取函數和密碼算法的獨立結果。例如,使用XOR操作 來組合這些結果,或者對于某個k,模某個值2k加。將組合操作的實現106的結果提供到輸出端114。輸出端114可以包括分組器, 用于例如將從向它提供的結果中取得(retrieve)的數據創(chuàng)建輸出數據分組。輸出端114可 以包括傳輸器,用于將數據經由網絡(例如,廣播網絡或因特網)傳輸到接收器。替代 地,輸出端114可以被布置用于將從實現106中獲取的結果提供到顯示器或放大器,以創(chuàng) 建該數據的表示。圖2示出了密碼系統(tǒng)200,這是所闡述的密碼系統(tǒng)的另一實施例。在密碼系統(tǒng) 200中,組合操作包括將函數的結果與接收到的數據元組合,以獲取組合結果,并將密碼 算法應用到該組合結果。類似于系統(tǒng)100,系統(tǒng)200包括輸入端212、用于生成值χ的裝置210、函數的白 盒實現202、密碼算法的實現204、組合操作的實現206,以及輸出端214。然而,在系統(tǒng) 200中,執(zhí)行順序不同于系統(tǒng)100中的執(zhí)行順序。系統(tǒng)200有效地計算F (C (y,G (χ))), 其中,G表示函數,F表示密碼算法,C表示組合操作,而y表示在輸入端212獲取的 值。組合操作的實現206將在輸入端212獲取的數據與由函數的白盒實現202所產生的 結果組合,從而生成組合結果,并使密碼算法的實現204處理所述組合結果。其結果被 提供到輸出端214。在一個實施例中,給定函數的結果的特定值,組合操作定義密碼算法的結果和 組合操作的結果之間的一一對應關系。如果,例如,系統(tǒng)100或200用于對數據進行加 密,則這是有用的,因為它允許在解密器處唯一地對數據進行解密。在一個實施例中,輸出端214包括信號發(fā)生器,其用于生成包括組合操作的結 果的表示的信號。此信號可以例如存儲在存儲裝置上,或傳輸到接收器。信號發(fā)生器可 以被布置用于在信號中包括到第一函數的輸入的表示。如果接收方能夠以不同的方式獲 取該值,那么這可以省略。組合操作的實現可以被布置用于將函數的單一結果與密碼算 法的多個結果組合。這通過多次重新使用函數的同一個結果來提高效率。因此,對函數 的對應的輸入只需被包括在信號中一次。白盒實現可以包括查詢表和XOR操作。根據Chow等人所述,將顯式的XOR 操作替換為查詢表,所述查詢表被利用輸入和輸出編碼來使其模糊。為提高效率,可以 將這些查詢表替換為顯式的XOR操作。已經發(fā)現,這仍為某些應用提供了足夠的白盒安 全性,因為它仍防止了攻擊者從部分白盒實現推導基礎密鑰。
為將白盒實現綁定到硬件設備,或綁定到特定用戶,白盒實現可以包括用于訪 問標識設備和/或用戶的數據以獲取標識數據的裝置,以及用于根據標識數據建立函數 的輸出的裝置。例如,選擇查詢表中的一個或多個,以使得它包括標識數據??梢孕薷?其他的查詢表,以使得白盒實現的整個最終結果不會因此改變。此特征允許防止對密碼 系統(tǒng)的非授權使用。在WO 2007/105126中公開了此技術的示例。圖3示出了加密器301和解密器350的實施例。加密器301基于密碼系統(tǒng)100, 解密器基于密碼系統(tǒng)200。然而,這并不是限制。例如,還可以使加密器基于密碼系統(tǒng) 200,并使解密器基于密碼系統(tǒng)100。例如,可以將加密器301包括在內容服務器中,并 用于對音頻或視頻內容進行加密,并且可以將解密器350包括在消費電子設備中,用于 對加密的內容解密并允許該內容的回放。加密器301和解密器350之間的通信可以經由因 特網、諸如有線電視網之類的數字廣播介質、或經由諸如DVD或藍光(Blue-ray)盤之類 的可移動存儲介質來進行。使用類似的參考數字來標識與圖1和圖2中的類似的元件。 加密器301包括_輸入端112,用于獲取要通過第一密碼算法(其可以是諸如公鑰加密算法之類 的加密算法,例如,RSA)加密的數據。-第一密碼算法的實現104,被布置用于對在輸入端112獲取的數據進行加密。-用于生成值χ的裝置110。為此可以使用計數器或隨機發(fā)生器。也可以從外 部源獲取值X或從密碼算法的實現104的輸出生成它。-應用于值χ的第一函數的實現102。_第一組合操作的實現106,用于根據第一函數的結果并根據第一密碼算法的結 果建立加密的數據。-輸出端114,用于將表示第一組合操作的結果的信息提供到解密器350。該輸 出端還可以將表示到第一函數的輸入的信息提供到解密器350。解密器350包括-輸入端210,用于獲取表示到第一函數的輸入的信息。可以從加密器301的輸 出端114接收此信息。也可以在解密器350中再現值χ。在該情況下,可以將輸入端210 替換為用于生成值χ的裝置110的復制件。-輸入端212,用于從加密器301的輸出端114獲取表示第一組合操作的結果的
fn息ο-第二函數的實現202,被布置用于將第二函數應用到基于所述表示到第一函數 的輸入的信息的至少一部分的值。第二函數可以與第一函數相同。然而,如果以編碼了 的形式將值X傳輸到解密器350,則通過第二函數撤消此編碼。_第二組合操作的實現206,用于根據第二函數的結果并根據第二密碼算法的結 果建立解密的數據。第二組合操作的實現206首先撤消第一組合操作106的影響。例 如,如果第一組合操作涉及將實現102的輸出與實現104的輸出相乘,那么,第二組合操 作可以包括將在輸入端212獲取的值與第二函數的實現202的輸出的逆相乘,以獲取中間 組合值。然后,第二組合函數的實現206使第二密碼函數的實現204將其第二密碼函數 應用到所述中間組合值,從而生成解密的數據。為此,實現206可以包括用于調用第二 密碼算法的實現204的控制裝置(未示出)。
-第二密碼算法的實現204,被布置用于將密碼算法應用到從表示第一組合操作 的結果的信息的至少一部分導出的數據。第二密碼算法是例如與用于第一密碼算法的加 密算法相對應的解密算法。第一函數的實現102,或第二函數的實現202,或兩者,是白盒實現,用于分別 保護加密器301或解密器350或者兩者,以防止非授權的篡改。圖4示出了密碼處理的方法,包括通過函數的白盒實現將函數應用402到第一 值;將密碼算法應用404到第二值;以及,應用406組合操作,所述組合操作用于根據 所述函數的結果并根據所述密碼算法的結果建立密碼處理了的數據。圖4所示出的處理 步驟的順序只是示例,而不是限制。設函數F表示密碼算法。下面將描述函數F的白盒實現。例如,如果目標是導 出RSA的加密算法的白盒實現,那么,F (m)表示與消息m相關聯(lián)的密文,而如果目標 是導出散列函數MD4的白盒實現,那么,F(m)表示與消息m相關聯(lián)的散列值。設G表示其白盒實現可用的任意函數。函數G不必是雙射的。例如,它可以 是散列函數或隨機發(fā)生器函數。分別用dom(F)和dom(G)來表示F和G的域,并分別 用im(F)和im(G)來表示F和G的范圍(range)。此外,還設η是im(F)中的值的比特 長度,并設m是dom(G)中的值的比特長度。定義函數C,C im(G) Xim(F) — im(F),該函數優(yōu)選在其第二自變量是雙射 的。優(yōu)選C是可有效率地計算的。例如,C(x,力=乂*丫或(&,y)=x+y。接下來,引入函數H,H dom (G) Xdom(F) — dom (G) Xim (F),函數 H 通過 H(x, y) = (χ, C(G(x), F(y)))來定義。函數H定義密碼算法。鑒于H由F和G組成的方式,H的實現可以被構成為 使得它“繼承” F的加密性質和G的白盒性質。因此,將F的密碼強度與G的白盒實現 的抗篡改性質結合。因此,就其黑盒安全性,可以至少使H與F—樣安全。此外,就其 白盒安全性,可以通過至少部分地以白盒實現的形式來實現G,H可以是白盒安全的,即 使F和C可以以不是白盒的實現的形式來實現。如果F表示具有輸出塊大小nF的塊密碼 的加密或解密算法,G表示具有大小ne的輸入數據的函數,那么,要傳輸的數據可以具 有大小nF+ne,這是因為G的輸入數據和G的輸出被包括在H中。假設χ由恒定值a給 出,或假設χ在解密器處已知。那么,不需要運行白盒實現來導出H的輸出。于是運行 C和F的實現就足夠,這在與G的白盒實現相比時,在計算方面是有效率的。此外,在 這樣的情況下,還可以從密文中省略值X,這減小了密文的大小。這使得下面的方法成為 可能。也可以偶爾地改變X,而并非對于每個數據塊地改變X。以此方式,可以使白盒 安全性與性能進行折衷。注意,如果H指定加密算法,那么,如果χ已經改變,則密文 可以由H(x,y) = (χ, C(G(x), F(y)))給出,而如果χ沒有改變,則它可以僅由Hx(y) = C(G(x), F(y))給出。如果H指定解密算法,那么,如果χ已經改變,則密文可以由 (X,y)給出,而如果χ沒有改變,則它可以僅由y給出。還設想了使用χ的值的預定序 列,或使χ取決于密文。這也將減小要從加密器傳輸到解密器的數據的量。注意,對于某函數D,還可以利用例如H(x,y) = (D (χ), C(G(x), F(y)))來 應用上文所描述的技術和處理過程。D被選擇為具有可以從D(X)導出G(X)的性質。于是,接收端因而優(yōu)選實現由E(D(x)) =G(X)所定義的函數E。在一個實施例中,基于AES的白盒實現來構建RSA的白盒實現。Chow等人所 描述的AES的白盒實現將適于此用途,但是也可以使用另一類型的白盒實現。這里使用 RSA和AES作為示例。也可以使用其他函數(無論是否是密碼函數)作為代替RSA和 AES的替代方案。設函數F表示RSA加密算法。因此,根據RSA,對于數據塊m,F(m)表示與 數據塊m相關聯(lián)的密文??梢栽O想與其結合地使用一些特定的密鑰或密鑰集合,然而, 在本文中不詳細描述密鑰處理的細節(jié)。諸如RSA之類的密碼算法中的加密密鑰的使用在 本領域中是已知的。在本實施例中,m的塊大小小于128比特。然而,這不是限制。 128比特與AES的塊大小相對應,考慮到AES也用于本實施例中的事實,這是方便的。 在本實施例中,函數G表示AES的加密算法,C表示GF(2128)中的乘法,S卩,C (x, y) =χ · y,χ, ye GF (2128)。利用計數器T來提供χ的值。利用下面的處理步驟來根據 H對消息進行加密。如果滿足一些預先指定的條件,則使計數器T增加。例如,可以在每K個數據 塊之后使計數器增加。接下來,計算值Y =C(G(X),F(y)) =G(X) · F(y),其中,χ由計數器T的
值給出,y由要被加密的數據塊給出。接下來,構造密文塊。如果自從最后的加密以來計數器已經改變,或者如果這 是第一次加密,或者如果可能是解密器不知道該計數器的值,那么,密文由H(x,y)= (x, Y)給出。否則,它由Y給出。對于要被加密的后續(xù)數據塊,重復這些步驟。如將理解的,密文通常包括Y的 值,并且可以包括或者可以不包括x(或D(X),視情況而定)的一個、一些或全部的值, 只要有使解密器使用與在加密器中所使用的G(X)的相同的或在功能上等效的值的機制即 可。還將理解,代替計數器T,值χ可以是隨機值發(fā)生器的結果,或者可以例如通過某 散列函數從明文或密文計算出。G可以被實現為白盒實現。這樣,可以通過將G實現為白盒實現,來使H的實 現成為白盒實現。能夠解密以所述的方式加密的數據的解密過程如下。如果密文塊包含值X,那么,使用密文塊的值X來計算G(X)。否則,使用早先 計算出的GOO的值。接下來,確定GF(2128)中的(G(x) Γ1。注意,(G(x) Γ1 表示 GF (2128)中的 G(X) 的逆(而不是函數G的逆)。然后,計算F(y) = (GOO)—1 · Y。接下來,使用RSA的解密算法來基于F (y)計算明文塊y。RSA這樣的解密算 法在本領域中是已知的。在該步驟中,F(y)被視為密文塊。注意,為創(chuàng)建該解密過程的白盒實現,提供函數G的白盒實現足以,這是因為 如果攻擊者不能破壞函數G的話,那么他很難破壞該實現。如果解密過程保留計數器T的其自己的副本,并且如果它知道它增加的條件, 那么,不必將值X加到密文中。因此,在這種情況下,不增加塊大小。代替計數器,我們也可以從先前的密文塊導出值X。在此情況下,也不必將值X加到密文中。此處所描述的技術可以被用來隱藏密碼密鑰而使其不為可以訪問使用該密鑰的 軟件實現的攻擊者所知??梢岳斫?,本發(fā)明還擴展到適于實施本發(fā)明的計算機程序,尤其是,載體中或 載體上的計算機程序。該程序可以是源代碼、目標代碼、諸如部分地編譯了形式之類的 代碼中間源和目標代碼的形式,或者是任何適用于根據本發(fā)明的方法的實現中的其他形 式。還將理解,這樣的程序可以具有許多不同的體系結構設計。例如,實現根據本發(fā)明 的方法或系統(tǒng)的功能的程序代碼可以細分為一個或多個子例程。在這些子例程之間分配 功能的許多不同的方式對本領域技術人員將是顯而易見的。子例程可以一起存儲在一個 可執(zhí)行文件中,以形成自含式程序。這樣的可執(zhí)行文件可以包括計算機可執(zhí)行指令,例 如,處理器指令和/或解釋器指令(例如,Java解釋器指令)。替代地,子例程中的一 個或多個或全部可以存儲在至少一個外部庫文件中,并且靜態(tài)地或者動態(tài)地(例如,在 運行時)與主程序鏈接。主程序包含對至少一個子例程的至少一個調用。此外,子例程 可以包括對彼此的函數調用。涉及計算機程序產品的實施例包括與所闡述的方法中的至 少一個方法的每一個處理步驟相對應的計算機可執(zhí)行指令??梢詫⑦@些指令細分為子例 程,和/或可以將這些指令存儲在可以靜態(tài)地或動態(tài)地鏈接的一個或多個文件中。涉及 計算機程序產品的另一實施例包括與所闡述的系統(tǒng)和/或產品中的至少一個系統(tǒng)和/或產 品的每一個裝置相對應的計算機可執(zhí)行指令??梢詫⑦@些指令細分為子例程,和/或可 以將這些指令存儲在可以靜態(tài)地或動態(tài)地鏈接的一個或多個文件中。計算機程序的載體可以是能夠攜帶程序的任何實體或設備。例如,載體可以包 括諸如ROM之類的存儲介質,例如,CD ROM或半導體ROM ;或磁記錄介質,例 如,軟盤或硬盤。進一步地,載體可以是可以通過電纜或光纜或通過無線電或其他裝置 傳輸的諸如電信號或光信號之類的可傳輸載體。當程序以這樣的信號實現時,載體可以 通過這樣的電纜或其他設備或裝置來構成。替代地,載體也可以是其中嵌入了程序的集 成電路,該集成電路適用于執(zhí)行或用于執(zhí)行相關方法。應該注意,上文所提及的實施例示出了本發(fā)明,并非限制本發(fā)明,本領域技術 人員將能夠在不偏離所附權利要求的范圍的情況下設計許多替換實施例。在權利要求 中,放在括號之間的任何引用符號不應該被解釋為對權利要求的限制。動詞“包括”以 及其變形的使用不排除權利要求中所陳述的那些要素或步驟之外的要素或步驟的存在。 要素之前的冠詞“a”或“an”(一)不排除多個這樣的要素的存在。本發(fā)明可以通過包 括若干不同的元件的硬件,以及通過被適當編程的計算機來實現。在枚舉若干個裝置的 設備權利要求中,這些裝置中的多個可以通過一個或同一個硬件來實施。在相互不同的 從屬權利要求中列舉某些方案的這一事實并不表示這些方案的組合不能被有利地使用。
權利要求
1.一種密碼系統(tǒng)(100),包括 函數的白盒實現(102);密碼算法的實現(104);以及用于根據所述函數的結果并根據所述密碼算法的結果建立密碼處理了的數據的組合 操作的實現(106)。
2.根據權利要求1所述的密碼系統(tǒng),其中,所述組合操作包括將所述密碼算法的結果 與所述函數的結果組合。
3.根據權利要求1所述的密碼系統(tǒng),其中,所述組合操作包括將所述函數的結果與接收到的數據元組合,以獲取組合結果;以及 將所述密碼算法應用到所述組合結果。
4.根據權利要求1所述的密碼系統(tǒng),其中,給定所述函數的結果的特定值,所述組合 操作定義所述密碼算法的結果和所述組合操作的結果之間的一一對應的關系。
5.根據權利要求1所述的密碼系統(tǒng),還包括信號發(fā)生器,用于生成包括所述組合操作的結果的表示的信號。
6.根據權利要求5所述的密碼系統(tǒng),其中,所述信號發(fā)生器被布置用于將到所述第一 函數的輸入的表示包括在所述信號中。
7.根據權利要求6所述的密碼系統(tǒng),其中,所述組合操作的實現被布置用于將所述函 數的單一結果與所述密碼算法的多個結果組合。
8.根據權利要求7所述的密碼系統(tǒng),還包括信號發(fā)生器,用于生成如下的信號,所述 信號包括表示到所述第一函數的輸入的值和所述第二函數的所述多個結果。
9.根據權利要求1所述的密碼系統(tǒng),其中,所述白盒實現包括查詢表和XOR操作。
10.根據權利要求1所述的密碼系統(tǒng),其中,所述白盒實現包括 用于訪問標識設備和/或用戶的數據以獲取標識數據的裝置,以及 用于根據所述標識數據確立所述函數的輸出的裝置。
11.一種密碼系統(tǒng)(300),所述密碼系統(tǒng)包括加密器(301),所述加密器包括 -第一函數的實現(102);-第一密碼算法的實現(104);以及_第一組合操作的實現(106),用于根據所述第一函數的結果并根據所述第一密碼算 法的結果建立加密的數據;_輸出端(114),用于將表示所述第一組合操作的結果的信息提供到解密器; 所述密碼系統(tǒng)還包括所述解密器(350),所述解密器包括 -輸入端(212),用于獲取所述表示所述第一組合操作的結果的信息; -第二函數的實現(202),被布置用于將所述第二函數應用到與到所述第一函數的輸 入相對應的值;-第二密碼算法的實現(204),被布置用于將所述密碼算法應用到基于所述表示所述 第一組合操作的結果的信息的至少一部分的數據;以及_第二組合操作的實現(206),用于根據所述第二函數的結果并根據所述第二密碼算 法的結果建立解密的數據;其中,下述的實現中的至少一個包括白盒實現所述第一函數的實現和所述第二函數的實現。
12.—種密碼處理的方法,包括通過函數的白盒實現將該函數應用(402)到第一值; 將密碼算法應用(404)到第二值;以及應用(406)組合操作,所述組合操作用于根據所述函數的結果并根據所述密碼算法 的結果確定密碼處理了的數據。
13.包括用于使處理器執(zhí)行根據權利要求12所述的方法的指令的計算機程序產品。
全文摘要
一種密碼系統(tǒng)(100),其包括函數的白盒實現(102);密碼算法的實現(104);以及用于根據函數的結果并根據密碼算法的結果建立密碼處理了的數據的組合操作的實現(106)。所述組合操作包括將密碼算法的結果與函數的結果組合。替代地,所述組合操作包括將函數的結果與接收到的數據元組合,以獲取組合結果,并將密碼算法應用到所述組合結果。
文檔編號G06F21/14GK102016871SQ200980115038
公開日2011年4月13日 申請日期2009年3月2日 優(yōu)先權日2008年3月5日
發(fā)明者P·M·H·M·A·戈里森, W·P·A·J·米希爾斯 申請人:耶德托公司