新四季網

防止DFA攻擊的拆分和合併方法與流程

2023-08-12 23:23:56


本文所公開的各種示例性實施例大體上涉及針對差異性錯誤分析(dfa)攻擊的安全加密函數。



背景技術:

網際網路向使用者提供對數字內容的方便和廣泛的訪問。因為網際網路是強有力的分發渠道,許多用戶裝置力求直接訪問網際網路。用戶裝置可包括個人計算機、膝上型計算機、機頂盒、支持網際網路的媒體播放器、行動電話、智慧型電話、平板計算機、移動熱點或能夠訪問網際網路的任何其它裝置。使用網際網路作為用於有版權內容的分發媒體對保證內容提供商的興趣產生有力的挑戰。用戶裝置越來越多地使用加載有合適軟體的處理器來操作以呈現(重放)數字內容例如音頻和/或視頻。重放軟體的控制是一種強制執行內容所有者的利益(包括內容可依據其被使用的條款)的方式。先前,許多用戶裝置是封閉系統。當今越來越多的平臺是部分開放的。可假定一些使用者具有對於提供對內容的訪問的硬體和軟體的完全控制和訪問權,並且具有大量時間和資源來攻擊和繞過任何內容保護機制。因此,內容提供商必須跨越到其中並非所有使用者或用戶裝置可信任的團體的敵對網絡將內容遞送給合法使用者。

通常想到將加密算法設計成具有黑攻擊模型。這意味著攻擊者被假定為僅具有對算法的輸入/輸出行為的訪問權。然而,實際上,攻擊者通常可以訪問更多信息。舉例來說,攻擊者可訪問在執行算法時的側信道信息。在此情況下攻擊模型被稱作灰盒。在大多數極端的情況下,被稱作白盒攻擊模型,攻擊者甚至可完全訪問和完全控制運行算法的執行環境。

在白盒攻擊模型中,在執行各種函數,例如用於保護和鑑別數字內容的加密函數時,可調用安全軟體應用。為了對抗攻擊,這些算法必須被混淆(隱藏)以便防止算法的逆向工程和修改或禁止獲得使用者特定的安全信息。因此,安全軟體應用的功能可通過由實施該安全軟體的處理器的指令集定義的各種函數來執行。例如,模糊這些函數的一種方式是通過使用查找表。

內容提供商必須跨越到其中並非所有使用者或裝置可信任的團體的敵對網絡將內容遞送給合法使用者。在一些情況下,用戶裝置可具有有助於內容分發的硬體加密解決方案。即使此硬體解決方案僅可允許觀察輸入和輸出,它也有可能如上所述被攻擊者用來獲得對側信道信息的訪問,從而允許攻擊者擊敗加密函數。

硬體加密解決方案不可行的情況已引起白盒密碼術的演變。在白盒加密情形中,假定使用者具有對提供內容訪問權的硬體和軟體的完全控制,以及攻擊和繞過任何內容保護機制的不受限制的時間和資源量。強制執行內容可依據其來使用的條款的安全軟體代碼應是防篡改的。數字版權管理為安全軟體應用的共同應用。用於分發到用戶裝置的受保護內容的數字版權管理中的一般方法是使用例如des(數據加密標準)、aes(高級加密標準)或使用其它已知加密方案對數字內容進行加密,並使用解密密鑰來恢復數字內容。這些解密密鑰必須被保護以防止對受保護材料的未授權的訪問。

在數字版權管理的情形中,攻擊者具有對強制執行受保護內容的管理和訪問的軟體的完全控制。因此,攻擊者可以修改軟體並且也搜尋以獲得用於對受保護內容進行加密的加密密鑰。此類密鑰可通過分析軟體來發現。

加密函數的白盒和灰盒實施方案兩者經受側信道攻擊。此類攻擊在擊敗加密函數時中可能成功。



技術實現要素:

各種示例性實施例的簡要概述在下文呈現。在以下概述中可以做出一些簡化和省略,其意在突出並介紹各種示例性實施例的一些方面,而非限制本發明的範圍。足以允許本領域的普通技術人員製作並使用本發明概念的示例性實施例的詳細描述將在後續章節呈現。

各種實施例涉及用於通過帶密鑰的加密運算來執行將輸入消息映射到輸出消息的裝置,其中,該帶密鑰的加密運算包括多輪,該裝置包括:存儲器;以及與該存儲器通信的處理器,該處理器被配置成:拆分在第一輪中所處理的數據以產生第一輸出和第二輸出,其中,第一輸出等於第二輸出;通過第二輪處理第一輸入以產生第三輸出,其中,第一輸入基於第一輸出;通過第二輪處理第二輸入以產生第四輸出,其中,第二輸入基於第二輸出;通過第三輪處理第三輸入以使用第一權重產生第一共享,其中,第三輸入基於第三輸出;通過第三輪處理第四輸入以使用第二權重產生第二共享,其中,第一權重和第二權重互補,其中,第四輸入基於第四輸出;組合第一共享和第二共享以產生組合輸出;以及通過第四輪處理該組合輸出。

另外的各種實施例涉及經指令編碼的非暫時性機器可讀存儲媒體,該指令用於通過帶密鑰的加密運算來實施將輸入消息映射到輸出消息,其中,該帶密鑰的加密運算包括多輪,該非暫時性機器可讀存儲媒體包括:用於拆分在第一輪中所處理的數據以產生第一輸出和第二輸出的指令,其中,第一輸出等於第二輸出;用於通過第二輪處理第一輸入以產生第三輸出的指令,其中,第一輸入基於第一輸出;用於通過第二輪處理第二輸入以產生第四輸出的指令,其中,第二輸入基於第二輸出;用於通過第三輪處理第三輸入以使用第一權重產生第一共享的指令,其中,第三輸入基於第三輸出;用於通過第三輪處理第四輸入以使用第二權重產生第二共享的指令,其中,第一權重和第二權重互補,其中,第四輸入基於第四輸出;用於組合第一共享和第二共享以產生組合輸出的指令;以及用於通過第四輪處理該組合輸出的指令。

另外的各種實施例涉及通過帶密鑰的加密運算將輸入消息映射到輸出消息的方法,其中,該帶密鑰的加密運算包括多輪,該方法包括:拆分在第一輪中所處理的數據以產生第一輸出和第二輸出,其中,第一輸出等於第二輸出;通過第二輪處理第一輸入以產生第三輸出,其中,第一輸入基於第一輸出;通過第二輪處理第二輸入以產生第四輸出,其中,第二輸入基於第二輸出;通過第三輪處理第三輸入以使用第一權重產生第一共享,其中,第三輸入基於第三輸出;通過第三輪處理第四輸入以使用第二權重產生第二共享,其中,第一權重和第二權重互補,其中,第四輸入基於第四輸出;組合第一共享和第二共享以產生組合輸出;以及通過第四輪處理該組合輸出。

描述了各種實施例,其中,多輪包括替換函數和仿射變換。

描述了各種實施例,其中:該加密運算為高級加密標準(aes)運算;一輪包括中間狀態乘以矩陣mr的矩陣乘法,其中,r指定該輪;通過第三輪處理第三輸入以使用第一權重產生第一共享包括將m3乘以

以及

通過第三輪處理第四輸入以使用第二權重產生第二共享包括將m3乘以

描述了各種實施例,其中,組合第一共享和第二共享以產生組合輸出包括對該第一共享和第二共享進行異或運算。

描述了各種實施例,其中,加密運算為數據加密標準(des)運算。

描述了各種實施例,其中,第一權重通過隨機生成器隨機生成以用於第三輪的每次執行。

描述了各種實施例,其中,第一權重通過硬體隨機生成器隨機生成以用於第三輪的每次執行。

描述了各種實施例,其中,第一權重基於第一輪的輸出來選擇。

附圖說明

為了更好地理解各種示例性實施例,參考附圖,其中:

圖1示出aes的一輪的主要步驟;

圖2示出具有對一輪的輸入的固定編碼的白盒aes實施方案;

圖3示出藉助於查找表網絡的一個輸出半字節的計算;

圖4示出通過編碼輸入和輸出來混淆的圖3的網絡表格的一部分;以及

圖5示出用於提供用戶裝置安全內容以及處理該安全內容的軟體應用的系統。

為了便於理解,相同的附圖標號已用於指代具有大體上相同或類似結構和/或大體上相同或類似功能的要素。

具體實施方式

描述和附圖示出了本發明的原理。因此應理解,本領域的技術人員應能夠設計出各種布置,儘管本文中未明確地描述或示出該布置,但其體現了本發明的原理且包括在其範圍內。此外,本文中所述的所有例子主要明確地意在用於教學目的以輔助讀者理解本發明的原理及由本發明人所提供的概念,從而深化所屬領域,且所有例子應解釋為不限於此類特定所述例子及條件。另外,除非以其它方式指明(例如,「否則」或「或在可替換方案中」),否則本文所使用的術語「或」指代非排他性的「或」(即,「和/或」)。並且,本文所描述的各種實施例不一定相互排斥,因為一些實施例可以與一個或多個其它實施例組合以形成新的實施例。

下面用於對抗差異性錯誤分析(dfa)攻擊的方法和技術將在白盒攻擊模型的情形下描述,但是所述方法和技術也可應用於適用灰盒模型的硬體加密解決方案,因為dfa可對硬體加密解決方案執行。

相對於硬體實施方案優選加密算法的軟體實施方案存在若干原因。舉例來說,這可能是因為軟體解決方案在密鑰洩露的情況下可更新,因為其具有較低成本,或因為應用開發者對在其中實施白盒系統的硬體沒有影響。雖然下面的實施例的描述涉及在處理器上運行的軟體實施方案,但應指出這些實施例也可同樣部分或完全地在硬體中實施。所述的查找表和有限狀態機可在硬體中實施以執行所述的各種函數。

下文所述的在白盒實施方案中使用拆分和合併方法的實施例也可應用於攻擊者可能應用差異性錯誤分析(dfa)攻擊的灰盒加密實施方案。

下面的論文中提出了針對高級加密標準(aes)和數據加密標準(des)的白盒實施方案的基於表格的方法:由stanleychow、philipeisen、haroldjohnson和paulc.vanoorschot在2002年8月15-16日在加拿大紐芬蘭島聖約翰的sac2002第9屆「選定區域的加密術」國際研討會的「white-boxcrytographyandanaesimplementation(白盒加密術和aes實施方案)」,該論文在下文中被稱為「chow1」;以及由stanleychow、phileisen、haroldjohnson和paulc.vanoorschot在2002年11月18日在美國華盛頓特區的數字版權管理:drm2002acmccs-9研討會的「awhite-boxdesimplementationfordrmapplications(用於drm應用的白盒des實施方案)」,該論文在下文中被稱為「chow2」。chow1和chow2公開了使用基於表格的方法,通過用隨機雙映射來編碼加密密鑰的表格和通過將加密邊界遠推到包含的應用中以延伸該加密邊界的組合來隱藏加密密鑰的方法。

如所提到,對於許多加密運算而言,期望具有白盒實施方案。本發明可應用於例如對稱和不對稱加密運算。並且,本發明可應用於塊加密、流加密、消息驗證方案、籤名方案等。應指出,本發明也可應用於散列函數。後者在以下情況下尤其有用:如果散列函數被用作處理機密信息,例如秘密密鑰、秘密數據等的構建塊。例如,本發明可應用於用在帶密鑰的散列消息認證碼(hmac或khmac)中的散列函數。熟知的塊加密包括:高級加密標準(aes)、安全並快速的加密例程(safer及其變體safer+和safer++)、blowfish加密法、數據加密標準(des)等。熟知的流加密為rc4。此外,任何塊加密可以用作使用適當的運算模式,例如加密反饋(cfb)、計數器模式(ctr)等的流加密。

輸入消息可以表示例如已加密的內容數據,例如包括音頻和/或視頻數據的多媒體數據。已加密的內容數據也可包括加密軟體,例如表示一些計算機應用,例如計算機遊戲或辦公室應用的加密計算機代碼。輸入消息也可表示供在另外加密運算中使用的密鑰。後者可被用在例如密鑰交換協議中,其中,根據本發明的白盒實施方案加密和/或解密表示新密鑰的數據。輸入數據也可為純數據,例如純用戶數據。後者在消息驗證方案中尤其有利。根據本發明的白盒實施方案可具有該實施方案僅可用於加密、僅可用於解密而非用於兩者的特性。例如,如果實施方案使用不是雙映射的查找表,例如具有比輸出位更多的輸入位的查找表,則可以實現此特性。因此,如果使用者僅具有白盒解密器,則他可能驗證mac代碼而非產生新的mac。這強化了此消息認證方案的抗抵賴特性。

白盒實施方案可使用多個基本塊來實施。多個基本塊為互連的,在這個意義上,塊中的一些塊針對先前塊中的一個或多個塊的輸出來構建。基本塊可例如作為計算機晶片在硬體中實施。基本塊可使用開關板、狀態機或用於在計算機硬體中實施功能的任何其它合適的構造。基本塊也可在運行於通用計算機晶片,例如微處理器上的軟體中實施。例如,基本塊可使用包括算術指令的多個計算機指令,它們一起實施基本塊的功能。可在軟體和硬體兩者中使用的基本塊的廣泛使用的實施方案為查找表。例如,chow1和chow2採用此方法來實施aes和des塊加密。查找表實施方案包括列出可能的輸入值、輸出值的列表。在查找表中的輸入值可為明確的。在此情況下,通過在列表中搜索特定輸入的輸入值,查找表實施方案可以將特定輸入映射到特定輸出。在發現特定輸入時,則也發現特定輸出。例如,特定輸出可與特定輸入在一起存儲。優選地,輸入值未明確存儲,而僅是暗含存儲。例如,如果可能的輸入為例如數值或位串的連續範圍,則查找表可被限制於存儲輸出值的列表。例如,特定輸入數值可被映射到存儲在由該數值所指示的位置的特定輸出。另外,有限狀態機或代碼混淆可被用於實施白盒實施方案。

例如,通過計算函數的可能輸入的函數輸出值並在列表中存儲該輸出,可產生用於函數的查找表。如果函數取決於多個輸入,則可計算並存儲用於該多個輸入的所有可能組合的輸出。查找表特別適合於實施非線性函數,其以不規律的方式將輸入映射到輸出。通過向白盒實施方案的查找表中的一個或多個查找表應用固定混淆輸入編碼和固定輸出編碼,該白盒實施方案可以另外被混淆,如下面所解釋。接著,應用固定混淆輸入編碼和輸出編碼的結果被徹底預評估。通過使用此技術,查找表將被具有相同維度的混淆查找表代替,其採用相同數量的輸入位並產生相同數量的輸出位。用在此類混淆中的輸入編碼和輸出編碼在最終的白盒實施方案中是不明確的。

基本塊的網絡被布置成在向它們呈現輸入消息時計算輸出消息。通常,輸入消息通過多個基本輸入塊來運算。多個另外基本塊可從基本輸入塊中的一個或多個基本輸入塊和/或從該輸入取得輸入。另外基本塊可以在輸入消息、基本輸入塊的輸出和另外基本塊的輸出的任何組合中取得輸入。最後,基本出口塊的一些集合,即至少一個基本出口塊產生輸出消息的全部或部分作為輸出。以此方式顯現基本塊的網絡,其共同計算從輸入消息到輸出消息的映射。

所使用的密鑰可為加密密鑰,且可包含足夠的熵以承受所預見的暴力攻擊。應指出,在白盒實施方案中,密鑰通常未明確存在於該實施方案中。這將降低通過檢測該實施方案發現密鑰的風險。通常,該密鑰僅隱含存在。在加密系統中隱藏密鑰的各種方式是已知的。通常,至少使用部分評估的方法,其中,需要密鑰輸入的基本塊在其並不取決於輸入消息的情況下被評估。例如,其中並不取決於輸入消息的輸入值、掩蔽值,例如來自替換盒(s盒)的值和密鑰值需要進行異或運算的基本運算可以通過將該密鑰值和該掩蔽值在一起預先進行異或運算來部分評估。運算以此方式仍然取決於密鑰值,儘管該密鑰值不明確存在於實施方案中。實際上,僅在密鑰值和掩蔽值之間的異或運算存在於實施方案中。應注意,隱藏密鑰的更複雜的方式和/或另外的方式與本發明的實施例兼容。

現在,相關的問題是如何實施加密算法,使得其提供阻止灰盒或甚至白盒攻擊。在灰盒和白盒兩者環境中的強有力技術為差異性錯誤分析(dfa)。在這裡,錯誤被注入一個或多個執行中並且接下來密鑰從輸出的觀察到的變化導出。例子在d.mukhopadhyay在2009年的第2屆非洲密碼學國際會議:密碼學進展(非洲密碼學會議′09)的會議記錄第421-434頁的「animprovedfaultbasedattackoftheadvancedencryptionstandard(高級加密標準的改進的基於錯誤的攻擊)」中提出。mukhopadhyay描述如何通過比較多個執行的輸出來導出aes密鑰,其中,不同的執行不同之處在於在輪8或9的開始處的s盒的單個輸入/輸出值被改變。此變化可為任意的和未知的。可僅對1對結果(良好的結果和改變的結果)執行攻擊以獲得關於密鑰的信息。

阻止dfa攻擊的已知技術為兩次執行該算法並且檢查結果是否相同。為禁用此對策,攻擊者可禁用該檢查。具體地,在白盒環境中,這並不難以執行。在下面的實施例中描述可替換方法。該可替換方法也基於添加冗餘計算,但是並不使用顯式檢查。

該可替換方法的第一方面在於秘密共享方法被應用以阻止aes的輪10的輸出字節和/或這些輸出字節由此導出並且在輪9的s盒運算之後被定位的中間值。

假設vi為此輸出字節或中間值。指數i指示該值所涉及的輸出字節的數值,其中,i=0,1,...,15。接著,對此值應用秘密共享意味著不是vi,而是共享的數值,比方說s,寫為vi,0,vi,1,...,vi,s-1,使得對於一些函數f而言,vi=f(vi,0,vi,1,...,vi,s-1)被計算。優選地,函數f使得vi與該共享的任何適當子集無關。

該可替換方法的第二方面是計算vi的共享。vi的計算在輪8之前被拆分使得不同部分計算該共享的不同子集。為了將此形式化,引入了一些術語和註解。

假設ih為函數h的實施方案。接著,如果實施方案可被拆分成兩個部分,則一組σ值為ih的中間狀態,其中,第一部分計算來自該輸入的σ,以及第二部分計算僅來自中間狀態σ的輸出。舉例來說,考慮定義具有密鑰k的aes加密的函數ek的簡單實施方案。接著,任何aes運算的結果為ek的中間狀態。如果或則狀態子集被稱為不完全中間狀態,以及兩個(不完全)狀態σ0和σ1被稱為疊加。

現在,如果兩個實施方案i0和i1並不具有相等的中間狀態,則該兩個實施方案i0和i1被稱為交叉。

該可替換方法的第二部分現在可如下形式化。存在從(不完全)中間狀態和計算的以及(有可能相同)來自輪7或在其之前的至少兩個共享它們分別經由函數和來計算,並且和的實施方案未交叉。

現在將示出此可替換方法如何對例如mukhopadhyay的錯誤注入攻擊起作用。此攻擊使用如果我們在輪8或9中改變單個s盒輸入或輸出,則此可替換方法具有輪9的輸出列的4個字節通過添加的術語來改變的效果的這一事實。此外,4個字節的添加的術語通過標量乘而不同。此特性在完成算法,即,輪10的輸出中採用。此標量的值遵循列混合運算。

現在,假設該可替換方法被應用,使得和的實施方案的中間狀態不相交(該假設為該實施方案為非交叉的更強假設)。接著,改變在輪8或9中的中間值,僅改變與輪9的輸出相關的共享的子集的計算。此可替換方法對算法的輸出的效果現將也取決於該可替換方法所應用的值vi如何被拆分成共享。如果此可替換方法例如偽隨機地完成,則mukhopadhyay所採用的關係將不再保持。

上面,該可替換方法就aes而言進行制訂。響應於mukhopadhyay的攻擊,該可替換方法也可被應用於包括多輪的其它加密(例如des),其中,該輪包括替換函數和仿射變換函數。在此情況下,在計算拆分的時刻和該計算再次合併的時刻之間(即,函數和的時間間隔)存在至少一個替換運算和至少一個仿射變換運算。

也應注意到,通過在輪9或後續輪中進行改變,des可被攻擊(參見rivain的「differentialfaultanalysisondesmiddlerounds(對des中間輪的差異性錯誤分析)」(在《計算機科學》的系列演講筆記第457-469頁的加密硬體和嵌入式系統-ches2009卷5747))。下文所述的實施例也可用於對抗此攻擊。

下面的白盒實施例使用aes(高級加密標準)塊加密來描述,因為aes已成為塊加密的廣泛使用的標準。aes為具有128位或16位元組的塊大小的塊加密。純文本被劃分為16位元組的塊,該塊形成加密算法的初始狀態,並且加密算法的最終狀態為加密文本。在該加密算法中的任何給定點,這些16位元組為該加密算法的狀態。為了從概念上解釋aes,狀態的字節被組織為4×4位元組的矩陣。aes包括輪的次數,其取決於密鑰大小。每輪包括對狀態矩陣的字節、行或列運算的類似處理步驟,在這些處理步驟中,每次輪使用不同的輪密鑰。應指出,在使用aes作為例子的論述中,aes以特定方式定義輪。在下面的實施例中,輪為步驟的任何分組,其包括至少一個非線性映射函數,例如在aes中的s盒。因此,如下所述的輪包括一個非線性映射函數和加密函數的其它步驟的任何組合。另外,輪的邊界可以以非線性映射函數例如s盒,或可與非線性映射函數例如密鑰添加合併的任何其它運算開始。

圖1示出aes的一輪的一些主要處理步驟。所述處理步驟包括:

添加輪密鑰110-狀態的每個字節與輪密鑰的字節進行異或運算;

字節替換120-使用查找表的字節到字節排列;

行移位130-狀態的每行被旋轉固定字節數;以及

列混合140-使用在gf(28)中的模乘來處理每列。

步驟字節替換120、行移位130和列混合140與所使用的特定密鑰無關。密鑰被應用在步驟添加輪密鑰110中。除步驟行移位130以外,可以對4×4狀態矩陣的每列執行所述處理步驟而無需了解其它列。因此,它們可以被看作是32位運算,因為每列由四個8位值構成。虛線150指示該過程被重複直到已執行所需的輪次數。

這些步驟中的每者或步驟的組合可由查找表或由查找表的網絡表示。如果添加輪密鑰110步驟通過與輪密鑰進行異或運算來實施,則在白盒攻擊情形下,密鑰是攻擊者可見的。添加輪密鑰110步驟也可以被嵌入在查找表中,這使得不太容易找出密鑰。實際上,通過查找表的網絡,有可能置換aes的完整輪。例如,字節替換120、行移位130和列混合140步驟可使用表查找來實施。足夠詳細的aes的可能白盒實施方案在下面論述以描述下面的本發明的實施例,但是此實施方案的另外詳細描述見於chow1。而且,可使用該查找表實施方案的其它變體,這在本發明的範圍內。

基於表格的白盒實施方案和有限狀態機實施方案兩者均具有在實施方案中的所有中間值被編碼的特性(相比於標準實施方案)。使用有限狀態機的白盒實施方案的例子在題為「dataprocessingmethod(數據處理方法)」的美國專利公布2007/0014394以及由wulfharder和atisstraujums在2008年3月11日在信任第六季會議的題為「synchrosoftmcfacttmsecuredataprocessingtechnology(同步mcfacttm安全數據處理技術)」的演示中公開,上述每個文獻通過引用併入本文以用於所有目的,如同在本文中完全闡述。圖2示出對一輪的輸入,即對s盒的輸入固定編碼的白盒aes實施方案。如圖所示,16個輸入字節中的每個輸入字節由fi編碼以及輸出字節中的每個輸出字節由gi編碼。

為了描述本發明的實施例,將描述基於表格的白盒aes實施方案的基本描述。用於實施基於表格的白盒aes的方法的更詳細描述參看chow1。chow1說明使用指定大小的表格突破某些函數的具體實施方案。很好理解,可對表格進行各種其它劃分,從而產生查找表的不同函數和不同大小。另外,雖然下文所述的本發明的實施例使用aes的基於表格的白盒實施方案,但是根據所述實施例,可實施其它加密和加密函數。而且,可使用不是基於表格的實施方案的其它類型的白盒實施方案,例如有限狀態實施方案。

基於表格的白盒aes的描述被拆分成兩個步驟。在第一步驟中,aes的輪被描述為查找表的網絡。在第二步驟中,該表格通過對它們的輸入和輸出編碼被混淆。

步驟1:實施aes作為查找表的網絡。

對16位元組的數據塊執行aes運算。這些數據塊通常被描述為4×4位元組矩陣,其被稱為包括字節x1,1,x1,2,x1,3...x4,4的狀態。如上關於圖1所述的aes的輪包括以下運算:添加輪密鑰110、字節替換120、行移位130和列混合140。首先的兩個運算,即添加輪密鑰和字節替換可以被合併到單個t盒運算中。也就是說,我們可以將輸入字節xi,j的字節到字節函數ti,j定義為其中,ki,j為基於aes密鑰的16位元組輪密鑰的單字節。假設yi,j為ti,j的輸出。行移位運算僅為輸出字節yi,j的下標重新編號。為了易於陳述,此運算在本說明書中被省略,但是可被併入到實施ti,j的查找表中或被實施為狀態矩陣的單獨運算。在列混合步驟中,該輪的輸出字節zi,j在gf(28)中經由代數表達式針對一些常數mcl,r從4個輸出字節y1,j、y2,j、y3,j和y4,j計算。

現在定義每個字節到字節函數qi,j,l(xi,j)=mcl,i·ti,j(xi,j)的查找表,其中,i,j,l=1,2,...,16。接著通過對這些查找表的結果進行異或運算,可計算任何輸出字節zl,j,即應注意,q盒的下標i、j、1可以被解釋為「一輪的輸入字節i、j對該輪的輸出字節l、j的貢獻」。異或運算可被實施以對作為查找表的兩個半字節(即,4-位值)中的每個半字節進行運算以減小異或表格的大小。因此,q盒可被實施以產生輸出半字節,以便減小該表格的大小。因此,aes一輪的每個輸出字節zl,j的計算已被描述為查找表的網絡。計算字節z2,3的單個輸出半字節的查找表的網絡在圖3中示出。

圖3示出藉助於查找表的網絡的一個輸出半字節的計算。在q盒中的下標(1)指示所述表格僅提供該q盒的輸出的第一半字節。在輸入狀態310中的一組輸入字節x1,3、x2,3、x3,3、x4,3被輸入到q盒320、322、324、326中。查找表320和322的輸出u1、u2被饋送到異或330中,以及查找表324和異或330的輸出u3、u5被饋送到異或332中。表格326和異或332的輸出u4、u6被饋送到異或334中。異或334的輸出為輸出狀態340的輸出z2,3的第一半字節。輸出狀態340的輸出z2,3的第二半字節可以以相同方式使用另外的q盒連同類似的異或網絡來計算。另外,另外的表格組可被實施,以通過從輸入狀態310接收字節列並將它們轉換到輸出狀態的對應列的輸出中,將該輸入狀態310完全轉換到輸出狀態340。

步驟2:混淆表格和中間值

在圖3中所示的實施方案中,密鑰可易於從q盒提取。僅對該輸出應用逆列混合乘法和逆s盒揭示純添加輪密鑰運算。為了防止此狀況,所有查找表的輸入和輸出用任意雙映射函數編碼。這在chow1中描述。這意味著查找表與編碼輸出的編碼函數並與解碼輸入的解碼函數合併。編碼被選擇使得一個表格的輸出編碼匹配在接下來的表格中假定的輸入編碼。圖3的實施方案的一部分在圖4中針對第一輪示出。在此例子中,到一輪的輸入未被編碼,以便符合aes,但是該輪輸出被編碼。輸出編碼在下一個輪中被處理。也就是說,不同於第一輪,第二輪(以及後續輪)假定其輸入被編碼。可替換的是,第一輪可接收編碼輸入。接著此輸入編碼必須被應用在包含白盒實施方案的軟體程序中的別處。類似地,最後輪可根據輸出是否符合aes而包括或不包括輸出編碼。應注意,在所獲得的白盒實施方案中,查找表和中間值兩者被混淆。

圖4示出通過編碼輸入和輸出來混淆的圖3的表格網絡的一部分。查找表420、422、424、426對應於圖3的查找表320、322、324、326。查找表420、422、424、426的輸入分別被函數e9、e10、e11、e12編碼。查找表420、422、424、426的輸出分別被函數f1、f2、f3、f4編碼。異或430對應於異或330。異或430的輸入使用f1-1和f2-1解碼輸入。接著異或430的輸出由函數f5編碼。異或432、434以類似方式具有如圖所示的輸入解碼和輸出編碼。輸出z2,3使用f7來編碼。

下面描述aes實施方案的使用秘密拆分共享的實施例。此描述針對使用秘密拆分共享的aes實施方案,其可在白盒環境(例如,使用表格查找或有限狀態機)中使用軟體來實施,或在灰盒環境中在硬體aes實施方案中實施。

如上所述,aes一輪的首先兩個運算被實施以對狀態的個別字節進行運算。另外,最後兩個運算可被合併到單個16×16位元組矩陣乘法中。也就是說,對於16位元組矩形矩陣mr,輪r的輸出可以作為mr(x)獲得,其中,x為在字節替換運算之後的中間狀態。

現在將示出秘密拆分共享如何可被應用於aes白盒實施方案。關於上述的秘密共享方法的第一方面,秘密共享可被應用於輪9的輸出狀態,即,應用於m9的輸出。

假設bi為m9的輸出字節。接著,秘密共享可通過計算共享和而不是bi來實施。這可通過向bi應用互補權重αi和來完成。值bi可通過對兩個共享進行異或運算從該兩個共享獲得。計算這兩個共享而不是bi可通過矩陣l9·m9置換矩陣m9來實施,其中,矩陣l9為由下式給出的32x16位元組矩陣:

在l·m9乘法之後,輪9的輸出字節bi從其兩個共享通過對其進行異或運算來計算。結果被輸入到輪10的添加輪密鑰運算。這結束秘密共享方法的第一方面的實施方案。

該秘密共享方法的第二方面被制訂以在輪8之前計算共享,使得不同部分計算該共享的不同子集。這意味著該計算在輪8之前被拆分並且不同拆分分別計算bi,0和bi,1。現將更詳細解釋此拆分如何可被實施。

與輪9類似,在輪7中的矩陣乘法被l7·m7替換,其中

後乘以l7的結果為m7的每個輸出字節被加倍。因此,結果通過(x0,y0,x1,y1,...,x15,y15)給出,其中,(x0,x1,...,x15)=(y0,y1,...,y15)為m7的輸出。現在輪8的實施方案被應用於(x0,x1,...,x15)和(y0,y1,...,y15)兩者。觀察到此實施方案對應於在該秘密共享方法的第二方面中提到的拆分。

現在,對(x0,x1,...,x15)的計算是計算輪9的輸出字節的第一組共享b0,0,b1,0,...,b15,0,並且對(y0,y1,...,y15)的計算是計算輪9的輸出字節的第二組共享b0,1,b1,1,...,b15,1。第一組共享和第二組共享通過應用互補權重來計算,以便在該共享被組合時獲得正確結果。這可針對(x0,x1,...,x15)經由矩陣l9,0·m9而不是l9·m9通過實施輪9來實現,其中,矩陣l9,0為由下式給出的16x16位元組矩陣:

以及針對(y0,y1,...,y15)經由矩陣l9,1·m9通過實施輪9來實現,其中,矩陣l9,1為由下式給出的16x16位元組矩陣:

現在輪9的輸出字節的第一組共享b0,0,b1,0,...,b15,0和第二組共享b0,1,b1,1,...,b15,1可被組合併被輸入到輪10中。

上面提到變量以(偽)隨機方式被拆分成共享。儘管在上述實施例中,值αi可以被(偽)隨機選擇,但是它們在實施方案內被固定。可替換的是,拆分可針對不同執行被偽隨機進行。這可以例如在每次執行之前或之後通過改變l9,0和lq,1來實施。例如,αi的值可基於對一輪的輸入的特定值來選擇。因此,αi的值將針對基於輸入的aes算法的每次執行而改變。在硬體實施方案中,αi的值可基於硬體隨機數生成器來選擇。

上面的描述將拆分共享示出為連續輪中處理。另外,該輪可能不是連續的。例如,拆分共享可如上所述在輪7之前進行,其中,中間輪在兩個拆分計算之前被再次合併。

上述的實施例可被應用於白盒aes實施方案或硬體灰盒aes實施方案。另外,上述的實施例也可被應用於具有包括替換函數(其跟隨有仿射變換)的一輪的其它加密方案。根據本發明的實施例的方法可在計算機上實施為計算機實施的方法。用於根據本發明的方法的可執行碼可被存儲在電腦程式媒體上。電腦程式媒體的例子包括存儲器裝置、光學儲存裝置、集成電路、伺服器、在線軟體等。因此,白盒系統可包括實施白盒電腦程式的計算機。此系統也可包括其它硬體元件,其包括存儲裝置、用於與外部系統以及在白盒系統的元件之間傳輸數據的網絡接口。

在本發明的實施例中,電腦程式可包括適於當電腦程式在計算機上運行時執行根據本發明的方法的所有步驟的電腦程式代碼。優選地,電腦程式被實施在非暫時性計算機可讀媒體上。

另外,因為白盒加密術往往冗長難以被人書寫,所以是非常複雜和/或混淆的。因此,具有以自動化的方式產生根據本發明的實施例的加密系統的方法是有利的。

產生根據本發明的加密系統的方法可在計算機上實施為計算機實施的方法,或在專用硬體中或兩者的組合中實施。用於根據本發明的方法的可執行碼可被存儲在電腦程式媒體上。在此方法中,電腦程式可包括適於當電腦程式在計算機上運行時執行該方法的所有步驟的電腦程式代碼。電腦程式被實施在非暫時性計算機可讀媒體上。

本文所述的加密系統可在用戶裝置,例如行動電話、平板計算機、計算機、機頂盒、智能電視等上實施。內容提供商,例如電視網絡、視頻流服務、金融機構、音樂流服務等可向用戶裝置提供軟體以用於從該內容提供商接收已加密內容。該軟體可具有如上所述被嵌入在其中的加密密鑰並且也可包括如上所述的綁定串。接著內容提供商可向用戶裝置發送已加密內容,該用戶裝置接著可使用所供應的軟體解密並使用該內容。

圖5示出用於提供用戶裝置安全內容以及處理該安全內容的軟體應用的系統。該系統包括內容伺服器500、應用伺服器580、用戶裝置550、552以及數據網絡540。用戶裝置550、552可請求經由數據網絡540訪問由內容伺服器500所提供的安全內容。數據網絡可以為在用戶裝置550、552和內容伺服器500以及應用伺服器580之間提供連通性的任何數據網絡。用戶裝置550、552可為多個裝置中的一個裝置,例如機頂盒、流媒體播放器、數字視頻記錄器、平板計算機、行動電話、膝上型計算機、可攜式媒體裝置、智能手錶、臺式計算機、媒體伺服器等。

使用者訪問請求可首先需要下載可用於處理由內容伺服器500所提供的安全內容的軟體應用。該軟體應用可從應用伺服器580下載。軟體應用可使用上述的技術來遮蔽以及如上所述來操作。一旦用戶裝置550、552安裝軟體應用,用戶裝置隨後就可從內容伺服器500下載安全內容並且使用所下載的軟體應用來訪問該安全內容。例如,所下載的軟體應用可對從內容伺服器接收的已加密內容執行解密。在其它實施例中,軟體應用可執行其它安全運算,例如加密、數字籤名生成和驗證等。

內容伺服器500可控制對提供給用戶裝置550、552的安全內容的訪問。因此,在內容伺服器500接收安全內容的請求時,內容伺服器500可向正在請求的用戶裝置傳輸該安全內容。同樣,應用伺服器520可控制對提供給用戶裝置550、552的軟體應用的訪問。因此,在內容伺服器520接收軟體應用的請求時,應用伺服器520可向正在請求的用戶裝置傳輸該軟體應用。在將軟體應用或安全內容提供給正在請求軟體應用或安全內容的用戶裝置之前,該用戶裝置也可通過相應的伺服器來驗證。

內容伺服器500可包括經由一個或多個系統總線508互連的處理器502、存儲器504、用戶接口506、網絡接口510和內容存儲裝置512。應理解,圖5在一些方面構成抽象圖,且裝置500的部件的實際組織可比所示出的更複雜。

處理器502可為能夠執行存儲在存儲器504或存儲裝置512中的指令的任何硬體裝置。因此,該處理器可包括微處理器、現場可編程門陣列(fpga)、專用集成電路(asic)或其它類似裝置。

存儲器504可包括各種存儲器,例如l1、l2或l3高速緩衝存儲器或系統存儲器。因此,存儲器502可包括靜態隨機存取存儲器(sram)、動態ram(dram)、快閃記憶體、只讀存儲器(rom)或其它類似存儲器裝置。

用戶接口506可包括用於使得能夠與使用者例如管理員交流的一個或多個裝置。例如,用戶接口506可包括用於接收用戶命令的顯示器、滑鼠和鍵盤。

網絡接口510可包括用於使得能夠與其它硬體裝置通信的一個或多個裝置。例如,網絡接口510可包括網絡接口卡(nic),該網絡接口卡被配置成根據乙太網協議通信。另外,網絡接口510可根據tcp/ip協議實施tcp/ip棧以用於通信。用於網絡接口510的各種可替換的或另外的硬體或配置將是顯而易見的。

內容存儲裝置512可包括一個或多個機器可讀內容存儲媒體,例如只讀存儲器(rom)、隨機存取存儲器(ram)、磁碟存儲媒體、光學存儲媒體、快閃記憶體裝置或類似存儲媒體。在各種實施例中,內容存儲裝置512可存儲待提供給使用者的內容。

應用伺服器520包括與內容伺服器500中相似的那些元件,並且在內容伺服器500中的相似元件的描述應用於應用伺服器520。而且,內容存儲裝置512被應用存儲裝置532代替。另外,應指出,內容伺服器和應用伺服器可在單個伺服器上實施。並且,此類伺服器可以在分布式計算機系統上實施以及在雲計算機系統上實施。

在處理器上運行以實施本發明的實施例的特定軟體的任何組合構成特定專用機器。

如本文所使用,術語「非暫時性機器可讀存儲媒體」應理解為排除暫時傳播的信號但包括所有形式的易失性和非易失性存儲器。此外,如本文所使用,術語「處理器」應理解為包括多種裝置,例如微處理器、現場可編程門陣列(fpga)、專用集成電路(asic)和其它類似處理裝置。當軟體在處理器上實施時,該組合變為單一特定機器。

本領域的技術人員應了解,本文中的任何框圖表示體現本發明的原理的例示性電路系統的概念視圖。

儘管已經具體參考各種示例性實施例的特定示例性方面來詳細地描述各種示例性實施例,但應理解,本發明能夠具有其它實施例且其細節能夠在各種顯而易見的方面進行修改。如對本領域的技術人員顯而易見的,可以實現變化和修改,同時保持在本發明的精神和範圍內。因此,上述的公開內容、描述和附圖僅出於說明性目的並且並不以任何方式限制本發明,本發明僅由權利要求書限定。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀