国产精品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ù)交錯查找表的制作方法

      文檔序號:11959463閱讀:763來源:國知局
      白盒密碼技術(shù)交錯查找表的制作方法與工藝

      本文中所公開的各種示例性實施例大體上涉及白盒密碼技術(shù)中使用的交錯查找表,其中所述交錯查找表提高了執(zhí)行速度。



      背景技術(shù):

      因特網(wǎng)向用戶提供對數(shù)字內(nèi)容的方便且廣泛的訪問。因為因特網(wǎng)是強大的分布通道,所以許多用戶裝置力求直接訪問因特網(wǎng)。用戶裝置可包括個人計算機、膝上型計算機、機頂盒、啟用因特網(wǎng)的媒體播放器、移動電話、智能電話、平板計算機、移動無線熱點,或能夠訪問因特網(wǎng)的任何其它裝置。使用因特網(wǎng)作為用于有版權(quán)內(nèi)容的分布媒體對保護內(nèi)容提供者的利益產(chǎn)生有力的挑戰(zhàn)。用戶裝置越來越多地使用加載有合適的軟件的處理器來渲染(重放)例如音頻和/或視頻等數(shù)字內(nèi)容。重放軟件的控制是一種強制執(zhí)行內(nèi)容所有者的利益(包括可使用所述內(nèi)容所依據(jù)的條款)的方式。先前許多用戶裝置是封閉系統(tǒng)。如今越來越多的平臺部分開放??杉俣ㄒ恍┯脩艟哂袑τ谔峁?nèi)容的訪問的硬件和軟件的完全控制及訪問權(quán),以及大量時間和資源來攻擊和繞過任何內(nèi)容保護機構(gòu)。其結(jié)果是,內(nèi)容提供者必須跨越對于其中并非所有用戶或用戶裝置可信任的團體敵對的網(wǎng)絡將內(nèi)容遞送到合法用戶。

      可調(diào)用安全軟件應用來實行例如用于保護和驗證數(shù)字內(nèi)容的密碼函數(shù)等各種函數(shù)。為了對抗攻擊,這些算法必須模糊(隱藏)以便防止算法的逆向工程和修改或禁止獲得用戶特定安全信息。因此,可由如實施安全軟件的處理器的指令集限定的各種函數(shù)實行安全軟件應用的函數(shù)。舉例來說,一種使這些函數(shù)模糊的方式是通過使用查找表。

      內(nèi)容提供者必須跨越對其中并非所有用戶或裝置可信任的團體敵對的網(wǎng)絡將內(nèi)容遞送到合法用戶。這已促使白盒密碼技術(shù)的開發(fā)。在白 盒密碼情境中,假定用戶具有對于提供對內(nèi)容的訪問的硬件和軟件的完全控制,以及無限量的時間和資源來攻擊和繞過任何內(nèi)容保護機構(gòu)。強制執(zhí)行可使用內(nèi)容所依據(jù)的條款的安全軟件代碼應該是防篡改的。數(shù)字版權(quán)管理是安全軟件應用的常見應用。用于分布到用戶裝置的受保護內(nèi)容的數(shù)字版權(quán)管理中的一般方法是使用例如DES(數(shù)據(jù)加密標準)、AES(高級加密標準)或使用其它已知加密方案對數(shù)字內(nèi)容進行加密,且使用解密密鑰恢復數(shù)字內(nèi)容。這些解密密鑰必須受到保護以防止對受保護材料的未授權(quán)的訪問。

      在數(shù)字版權(quán)管理情境中,攻擊者具有對于強制執(zhí)行對受保護內(nèi)容的管理和訪問的軟件的完全控制。因此,攻擊者可修改軟件并且還搜尋以獲得用于對受保護內(nèi)容進行加密的密碼密鑰。這些密鑰可通過分析軟件來發(fā)現(xiàn)。

      關(guān)于密鑰分布,媒體播放器必須從許可證數(shù)據(jù)庫檢索解密密鑰以便重放媒體。媒體播放器隨后必須將此解密密鑰存儲在存儲器中某處以用于經(jīng)加密內(nèi)容的解密。這為攻擊者留下用于對密鑰進行攻擊的兩種選擇。首先,攻擊者可逆向工程化許可證數(shù)據(jù)庫存取函數(shù),從而允許攻擊者從所有許可證數(shù)據(jù)庫檢索資產(chǎn)密鑰。在此情況下,攻擊者并不需要理解密碼函數(shù)的內(nèi)部工作。第二,攻擊者可觀察內(nèi)容解密期間存儲器的存取,因此攻擊者可檢索解密密鑰。在這兩種情況中,密鑰均被視為受到威脅。

      數(shù)字版權(quán)管理(DRM)和其它安全軟件的廣泛使用已導致需要力圖使對軟件的竄改變得復雜的安全的防篡改軟件。存在用于增加軟件應用的防篡改能力的各種技術(shù)。這些技術(shù)中的大多數(shù)技術(shù)是基于通過在軟件應用的控制和數(shù)據(jù)路徑兩者中添加隨機性和復雜性的掩飾來隱藏應用的嵌入知識。其背后的想法是,僅通過代碼檢查來提取信息變得更加困難。因此,較難以尋找(例如)處置安全應用的存取和準許控制的代碼且隨后對其進行改變。

      如本文所使用,白盒密碼技術(shù)包括在其中攻擊者具有對于運行白盒密碼軟件的系統(tǒng)的完全控制的環(huán)境中執(zhí)行密碼函數(shù)的安全軟件應用。因此,攻擊者可修改輸入和輸出,跟蹤軟件的操作,對任何時間軟件所使 用的存儲器進行取樣和監(jiān)視,乃至修改所述軟件。因此,需要以防止揭露安全功能性中使用的機密信息的方式實行安全功能??梢圆煌绞綄嵤┌缀忻艽a功能。這些方法包括:混淆軟件代碼;使用混淆機密信息的使用的復雜數(shù)學函數(shù);使用查找表;使用有限狀態(tài)機;或?qū)嵭忻艽a函數(shù)但隱藏那些安全功能所需的機密信息的任何其它方法。白盒實施方案還可包含包括反調(diào)試和防篡改特性的組件。

      相對于硬件實施方案優(yōu)選密碼算法的軟件實施方案,存在若干原因。如此(例如)可能是因為軟件解決方案在密鑰泄露的情況下是可更新的,因為其具有較低成本,或因為應用開發(fā)者對其中實施白盒系統(tǒng)的硬件沒有影響。



      技術(shù)實現(xiàn)要素:

      各種示例性實施例的簡要概述在下文呈現(xiàn)。在以下概述中可以做出一些簡化和省略,所述概述意圖突出且引入各種示例性實施例的一些方面,但不限制本發(fā)明的范圍。足以允許本領(lǐng)域的一般技術(shù)人員產(chǎn)生且使用發(fā)明性概念的示例性實施例的詳細描述將跟隨在稍后的章節(jié)中。

      各種實施例涉及一種產(chǎn)生密碼函數(shù)的白盒實施方案的方法,包括:由處理器使用二維查找表的網(wǎng)絡創(chuàng)建密碼函數(shù)的白盒實施方案;識別使用共同索引的二維查找表;以及將所識別的二維查找表重寫為三維表。

      描述各種實施例,其中密碼函數(shù)為高級加密標準函數(shù)。

      描述各種實施例,其中密碼函數(shù)為數(shù)據(jù)加密標準函數(shù)。

      描述各種實施例,其中將所識別的二維查找表重寫為三維表包括使所識別的二維查找表中的數(shù)據(jù)交錯。

      描述各種實施例,其中所述方法為編譯程序。

      描述各種實施例,其另外包括重復以下步驟:由處理器使用二維查找表的網(wǎng)絡創(chuàng)建密碼函數(shù)的白盒實施方案;識別使用共同索引的二維查找表;以及將所識別的二維查找表重寫為三維表直至已經(jīng)識別使用共同索引的所有二維查找表為止。

      其它實施例涉及一種非暫時性機器可讀存儲媒體,其以用于產(chǎn)生密 碼函數(shù)的白盒實施方案的指令編碼,所述非暫時性機器可讀存儲媒體包括:用于使用二維查找表的網(wǎng)絡創(chuàng)建密碼函數(shù)的白盒實施方案的指令;用于識別使用共同索引的二維查找表的指令;以及用于將所識別的二維查找表重寫為三維表的指令。

      描述各種實施例,其中密碼函數(shù)為高級加密標準函數(shù)。

      描述各種實施例,其中密碼函數(shù)為數(shù)據(jù)加密標準函數(shù)。

      描述各種實施例,其中將所識別的二維查找表重寫為三維表包括使所識別的二維查找表中的數(shù)據(jù)交錯。

      描述各種實施例,其中用于產(chǎn)生密碼函數(shù)的白盒實施方案的指令為編譯程序。

      描述各種實施例,其另外包括重復用于重復以下步驟的指令:使用二維查找表的網(wǎng)絡創(chuàng)建密碼函數(shù)的白盒實施方案;用于識別使用共同索引的二維查找表的指令;以及用于將所識別的二維查找表重寫為三維表直至已經(jīng)識別使用共同索引的所有二維查找表為止的指令。

      其它實施例涉及一種用于產(chǎn)生密碼函數(shù)的白盒實施方案的裝置,包括:存儲器;以及與存儲器通信的處理器,所述處理器被配置成:使用二維查找表的網(wǎng)絡創(chuàng)建密碼函數(shù)的白盒實施方案;識別使用共同索引的二維查找表;以及將所識別的二維查找表重寫為三維表。

      描述各種實施例,其中密碼函數(shù)為高級加密標準函數(shù)。

      描述各種實施例,其中密碼函數(shù)為數(shù)據(jù)加密標準函數(shù)。

      描述各種實施例,其中將所識別的二維查找表重寫為三維表包括使所識別的二維查找表中的數(shù)據(jù)交錯。

      描述各種實施例,其中所述處理器另外被配置成重復以下步驟:使用二維查找表的網(wǎng)絡創(chuàng)建密碼函數(shù)的白盒實施方案;識別使用共同索引的二維查找表;以及將所識別的二維查找表重寫為三維表直至已經(jīng)識別使用共同索引的所有二維查找表為止。

      其它實施例涉及一種控制提供實施密碼函數(shù)的白盒實施方案的應用的服務器的方法,包括:接收來自用戶的對于實施密碼函數(shù)的白盒實施方案的應用的請求;以及向用戶提供實施密碼函數(shù)的白盒實施方案的 應用,其中所述應用是通過以下操作創(chuàng)建:使用二維查找表的網(wǎng)絡創(chuàng)建密碼函數(shù)的白盒實施方案;識別使用共同索引的二維查找表;以及將所識別的二維查找表重寫為三維表。

      附圖說明

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

      圖1示出用于改進查找表軟件實施方案的執(zhí)行速度的方法;以及

      圖2示出用于提供用戶裝置安全內(nèi)容以及處理所述安全內(nèi)容的軟件應用的系統(tǒng)。

      為了便于理解,相同參考標號用于表示具有基本上相同或類似結(jié)構(gòu)和/或基本上相同或類似功能的元件。

      具體實施方式

      描述和圖式示出本發(fā)明的原理。因此將了解,本領(lǐng)域的技術(shù)人員將能夠設計各種布置,盡管本文中未明確地描述或示出所述布置,但其體現(xiàn)本發(fā)明的原理且包括于其范圍內(nèi)。此外,本文中所引述的所有例子主要明確地意圖用于教學目的以輔助讀者理解本發(fā)明的原理,以及由發(fā)明人所提供的概念以深化本領(lǐng)域,且其不應解釋為限于此類特定所引述例子及條件。另外,除非另外指明(例如,“或另外”或“或在替代方案中”),否則如本文所使用的術(shù)語“或”指代非排斥性或(即,和/或)。并且,本文所描述的各種實施例不一定相互排斥,因為一些實施例可與一個或多個其它實施例組合從而形成新的實施例。

      相對于硬件實施方案優(yōu)選密碼算法的軟件實施方案存在若干原因。如此(例如)可能是因為軟件解決方案在密鑰泄露的情況下是可更新的,因為其具有較低成本,或因為應用開發(fā)者對其中實施白盒系統(tǒng)的硬件沒有影響。

      以下論文中提出針對高級加密標準(AES)和數(shù)據(jù)加密標準(DES)的白盒實施方案的基于表的方法:Stanley Chow、Philip Eisen、Harold Johnson和Paul C.Van Oorschot的“白盒密碼技術(shù)和AES實施方案 (White-Box Cryptography and an AES Implementation)”,密碼術(shù)的選定領(lǐng)域(Selected Areas in Cryptography):第9屆年度國際研討會(9th Annual International Workshop),SAC 2002,St.John’s,Newfoundland,加拿大,2002年8月15-16日,下文稱為“Chow 1”;以及Stanley Chow、Phil Eisen、Harold Johnson和Paul C.van Oorschot的“用于DRM應用的白盒DES實施方案(A White-Box DES Implementation for DRM Applications)”,數(shù)字版權(quán)管理(Digital Rights Management):ACM CCS-9研討會,DRM 2002,Washington,D.C.,美國,2002年11月18日,下文稱為“Chow 2”。Chow 1和Chow 2公開使用基于表的方法來隱藏密碼密鑰的方法,其是通過以隨機雙映射對其表進行編碼與借助將其另外推出到所含應用中來延伸密碼邊界結(jié)合而實現(xiàn)。

      如所提到,對于許多密碼操作,希望具有白盒實施方案。本發(fā)明可應用(例如)于對稱和不對稱密碼操作。并且,本發(fā)明可應用于塊密碼、流密碼、消息驗證方案、簽名方案等。應注意,本發(fā)明還可應用于散列函數(shù)。后者在散列函數(shù)用作構(gòu)建塊的情況下尤其有用,所述構(gòu)建塊處理例如機密密鑰、機密數(shù)據(jù)等機密信息。舉例來說,本發(fā)明可應用于鍵合散列消息驗證碼(HMAC或KHMAC)中使用的散列函數(shù)。眾所周知的塊密碼包括:高級加密標準(AES)、安全且快速的加密例程、(SAFER,以及變體SAFER+和SAFER++)、Blowfish、數(shù)據(jù)加密標準(DES)等。眾所周知的流密碼為RC4。此外,任何塊密碼可使用例如密碼反饋(CFB)、計數(shù)器模式(CTR)等適當操作模式而用作流密碼。

      輸入消息可表示例如經(jīng)加密內(nèi)容數(shù)據(jù),例如多媒體數(shù)據(jù),包括音頻和/或視頻數(shù)據(jù)。經(jīng)加密內(nèi)容數(shù)據(jù)還可包括經(jīng)加密軟件,例如表示例如計算機游戲或辦公室應用等某一計算機應用的經(jīng)加密計算機代碼。輸入消息還可表示用于在另一密碼操作中使用的密鑰。后者可(例如)在密鑰交換協(xié)議中使用,其中根據(jù)本發(fā)明的白盒實施方案加密和/或解密表示新密鑰的數(shù)據(jù)。輸入數(shù)據(jù)還可為(例如)純用戶數(shù)據(jù)等純數(shù)據(jù)。后者在消息驗證方案中尤其有利。根據(jù)本發(fā)明的白盒實施方案可具有所述實施方案可僅用于加密、僅用于解密,但非用于兩者的特性。舉例來說,此特 性可在實施方案使用非雙射查找表的情況下實現(xiàn),所述非雙射查找表例如是具有比輸出位多的輸入位的查找表。因此,如果用戶僅具有白盒解密子,那么他可驗證MAC代碼但不創(chuàng)建新MAC。這加強了此消息驗證方案的抗抵賴特性。

      可使用多個基本塊實施白盒實施方案。所述多個基本塊在一些塊建立于先前塊中的一個或多個的輸出的意義上是互連的?;緣K可在例如微處理器等通用計算機芯片上運行的軟件中實施。舉例來說,基本塊可使用多個計算機指令,包括算術(shù)指令,其一起實施基本塊的功能性??墒褂玫乃龌緣K的廣泛使用的實施方案是查找表。舉例來說,Chow 1和Chow 2采用此方法來實施AES和DES塊密碼。查找表實施方案包括針對可能的輸入值列舉輸出值的列表。所述輸入值可在查找表中為顯式的。在所述情形中,查找表實施方案可通過在輸入值的列表中搜索特定輸入而將特定輸入映射到特定輸出。當發(fā)現(xiàn)特定輸入時,隨后還發(fā)現(xiàn)特定輸出。舉例來說,特定輸出可存儲在特定輸入旁。優(yōu)選地,輸入值不顯式地存儲,而是僅隱式地存儲。舉例來說,如果可能輸入為例如數(shù)字或位串的連續(xù)范圍,那么查找表可限于存儲輸出值的列表。特定輸入數(shù)字可例如映射到存儲在所述數(shù)字所指示的位置處的特定輸出。

      舉例來說,可通過針對函數(shù)的可能輸入計算其輸出值且將輸出存儲在列表中來創(chuàng)建函數(shù)的查找表。如果所述函數(shù)取決于多個輸入,那么可針對所述多個輸入的所有可能組合計算和存儲輸出。查找表尤其適合于實施非線性函數(shù),其以不規(guī)則方式將輸入映射到輸出??闪硗馐拱缀袑嵤┓桨改:缦挛年U釋,方式是通過將固定模糊輸入編碼和固定輸出編碼應用到其查找表中的一個或多個。隨后完全預先評估應用固定模糊輸入編碼和輸出編碼的結(jié)果。使用此技術(shù),查找表將被具有相同尺寸的模糊查找表代替,所述模糊查找表采用相同數(shù)目的輸入位且產(chǎn)生相同數(shù)目的輸出位。此模糊過程中使用的輸入編碼和輸出編碼在最終白盒實施方案中不是顯式的。

      查找表的網(wǎng)絡被布置成當其呈現(xiàn)有輸入消息時計算輸出消息。通常,輸入消息由若干輸入查找表操作。若干另外的查找表可采用來自輸 入查找表中的一個或多個和/或來自所述輸入的輸入。其它另外的查找表可采用輸入消息、輸入查找表的輸出和所述另外的查找表的輸出的任何組合中的輸入。最后,退出查找表的某一集合(即,至少一個)產(chǎn)生輸出消息的全部或部分作為輸出。以此方式,出現(xiàn)查找表的網(wǎng)絡,所述查找表的網(wǎng)絡統(tǒng)一計算從輸入消息到輸出消息的映射。

      所使用的密鑰可為密碼密鑰,且可包含足夠的熵來承受預見的強行攻擊。應注意,在白盒實施方案中,密鑰通常非顯式地存在于實施方案中。這將導致密鑰通過實施方案的檢查而被發(fā)現(xiàn)的風險。通常,密鑰僅隱式地存在。已知各種方式來在密碼系統(tǒng)中隱藏密鑰。通常,至少使用部分評估的方法,其中在某一程度上評估需要密鑰輸入的基本塊使得其并不取決于輸入的消息。舉例來說,其中輸入值、掩碼值(其并不取決于輸入的消息,例如來自替換盒(S盒)的值)和密鑰值需要進行異或運算的基本操作可通過對密鑰值和所述掩碼值一起預先進行異或運算來部分評估。以此方式,所述操作仍取決于密鑰值,但密鑰值并不顯式地存在于實施方案中。實際上,僅密鑰值與掩碼值之間的異或存在于實施方案中。應注意,隱藏密鑰的較復雜的方式和/或另外的方式與本發(fā)明的實施例兼容。

      如上文所描述,白盒實施方案可借助于表查找的網(wǎng)絡實施密碼函數(shù)。舉例來說,這些查找表可為半字節(jié)(4位值)的16乘16條目的二維表。所述表接收字節(jié)作為輸入。所述字節(jié)的第一半字節(jié)為二維表的一個方向中的索引,且第二半字節(jié)為另一方向中的索引。密碼函數(shù)可包括數(shù)千的在上面執(zhí)行查找的表使得一個查找的結(jié)果用作相繼查找的索引。查找表的網(wǎng)絡的組織和表的內(nèi)容確定密碼函數(shù)和所述密碼函數(shù)使用的機密密鑰。

      使用表查找的白盒密碼技術(shù)的問題是與其中未嘗試隱藏密鑰的無保護實施方案相比執(zhí)行速度較慢。這是歸因于在無對數(shù)據(jù)的任何空間定位的情況下存取的大量表查找的緣故。這導致許多數(shù)據(jù)高速緩沖存儲器未中,且因此減慢執(zhí)行速度??臻g定位是計算機系統(tǒng)中發(fā)生的一種類型的可預測行為。展現(xiàn)強空間定位的系統(tǒng)是用于通過使用例如使用高速緩 沖存儲器的技術(shù)進行性能優(yōu)化的候選者。

      為了改進白盒實施方案的執(zhí)行速度,白盒實施方案可被重寫使得具有共同索引運算元的一組二維表合并為三維表且接著使所述數(shù)據(jù)交錯使得很可能來自所述組二維表的必需的數(shù)據(jù)將位于所得三維表的一個高速緩沖存儲線中。這改進了空間定位且因此改進了性能。

      現(xiàn)將描述實施三維表的實施例。將借助于C代碼描述實施例。這可為例如密碼函數(shù)的所需白盒實施方案的片段:

      char T1[16][16]={t1_1,t1_2,t1_3,....,t1_256};

      char T2[16][16]={t2_1,t2_2,t2_3,....,t2_256};

      char T3[16][16]={t3_1,t3_2,t3_3,....,t3_256};

      V1=T1[V4][V5];

      V2=T2[V4][V6];

      V3=T3[V4][V7];

      在此代碼中,T1、T2和T3是三個16乘16表。常數(shù)t1_1......t1_256是存儲在表T1中的值。同樣,常數(shù)t2_1..t2_256是存儲在表T2中的值,且常數(shù)t3_1......t3_256是存儲在表T3中的值。值V1、V2和V3分別是來自表T1、T2和T3的輸出值,其基于索引值V4、V5、V6和V7。值V4、V5、V6和V7可從先前表輸出。

      本文中所描述的實施例利用白盒實施方案中存在許多組具有共同索引的表查找的事實。在上文描述的例子代碼中,具有值V4的第一索引為共同索引。因此,代碼可重寫為:

      char T1_3[16][16][3]={{t1_1,t2_1,t3_1},{t1_2,t2_2,t3_2},...};

      V1=T1_3[V4][V5][0];

      V2=T1_3[V4][V6][1];

      V3=T1_3[V4][V7][2];

      所述重寫保持功能性但改變了數(shù)據(jù)存儲在存儲器中的方式。變換之后,來自三個表T1、T2和T3的數(shù)據(jù)可在如所示的新陣列T1_3中交錯。輸出值V1、V2和V3中的每一個現(xiàn)從單一表T1_3確定。這可改進特殊定位且因此改進執(zhí)行性能。

      為了理解為何空間定位得以改進,評估如何針對三個查找在存儲器中存取地址。與評估V1、V2和V3相關(guān)聯(lián)的表查找的地址為:

      地址(T1_3)+48*V4+3*V5+0;

      地址(T1_3)+48*V4+3*V6+1;以及

      地址(T1_3)+48*V4+3*V7+2。

      這些地址值采用如C編程語言所使用的行主要次序。三維表還可在使用列主要排序時寫入。

      因為V5、V6和V7在范圍0到15中且表元素為字節(jié),所以三個地址位置除彼此之外至多為47字節(jié)。因為許多數(shù)據(jù)高速緩沖存儲器具有32或64字節(jié)的高速緩沖存儲線,所以很可能所述三個地址中的2或3個正存取相同高速緩沖存儲線。較多查找存取相同高速緩沖存儲線意味著需要從存儲器提取較少高速緩沖存儲線。這改進執(zhí)行速度。

      如早先所提到,所述表通常存儲半字節(jié)值。這使得有可能將兩個表條目填充在一個字節(jié)中。這有效地將半字節(jié)的16x 16陣列轉(zhuǎn)變?yōu)樽止?jié)的16x 8陣列。這增大了在使表交錯之后將存取相同高速緩沖存儲線的概率。

      當共同索引為一組表查找中的第二索引時,這些表可經(jīng)轉(zhuǎn)置使得在轉(zhuǎn)置之后第一索引變?yōu)楣餐饕?。在此之后,可應用表的重寫?/p>

      上文描述的實施例已使用移動電話的應用處理器在白盒實施方案中實施,導致執(zhí)行時間減少約30%。

      圖1示出用于改進查找表軟件實施方案的執(zhí)行速度的方法。方法100開始于105處。接下來,密碼函數(shù)的開發(fā)者可使用二維查找表創(chuàng)建白盒實施方案110。所述查找表可用如上文所描述的輸入和輸出編碼而變模糊以使得攻擊者更難獲得白盒實施方案使用的密碼密鑰或其它機密信息。接下來,密碼函數(shù)的開發(fā)者分析對查找表的調(diào)用以識別使用共同索引在時間上彼此接近而執(zhí)行的查找表115。當這些查找表在時間上彼此接近時,更可能所需要的值在重寫所述表之后同時存儲在高速緩沖存儲器中,因此增大執(zhí)行速度。如以上實施例中所示出,三個不同查找表T1、T2和T3各自以V4為第一索引而被調(diào)用??勺R別使用共同索引的 更多或更少的查找表。接下來,密碼函數(shù)的開發(fā)者可將所識別的二維表重寫為單一三維表120。以上實施例示出三個表T1、T2和T3重寫為三維表T1_3。第三索引的范圍將基于所組合的表的數(shù)目。所述方法接著可結(jié)束125。

      密碼函數(shù)的白盒實施方案可包括數(shù)百或數(shù)千的查找表和相關(guān)聯(lián)查找表調(diào)用。因此,方法100可重復多次以按需要將盡可能多的二維表重寫為三維表。此外,密碼函數(shù)的白盒實施方案的開發(fā)者可使用用于產(chǎn)生白盒實施方案的基于計算機的工具。這些基于計算機的工具可擴展以包括上文針對將二維查找表重寫為三維查找表描述的方法。這些基于計算機的工具可如下文所描述在計算機上實施為軟件。

      上述實施例是針對密碼函數(shù)的白盒實施方案。這些實施例可擴展以包括使用查找表的網(wǎng)絡實施的其它類型的函數(shù)。這些函數(shù)可為軟件中實施的函數(shù)。

      本文中所描述的實施例可在編譯程序中實施,所述編譯程序?qū)⒏唠A語言編譯為機器代碼以用于在處理器上執(zhí)行。在此情況下,編譯程序?qū)⒏唠A語言代碼轉(zhuǎn)換為查找表的網(wǎng)絡,所述查找表的網(wǎng)絡隨后可另外編譯為機器代碼。

      圖2示出用于向用戶裝置提供安全內(nèi)容和處理所述安全內(nèi)容的軟件應用的系統(tǒng)。所述系統(tǒng)包括內(nèi)容服務器200、應用服務器220、用戶裝置250、252,和數(shù)據(jù)網(wǎng)絡240。用戶裝置250、252可請求經(jīng)由數(shù)據(jù)網(wǎng)絡240訪問內(nèi)容服務器200提供的安全內(nèi)容。數(shù)據(jù)網(wǎng)絡可以為提供用戶裝置250、252與內(nèi)容服務器200和應用服務器220之間的連接性的任何數(shù)據(jù)網(wǎng)絡。用戶裝置250、252可以是多個裝置中的一個,例如,機頂盒、媒體拖纜、數(shù)字視頻記錄器、平板計算機、移動電話、膝上型計算機、便攜式媒體裝置、智能手表、臺式計算機、媒體服務器等。

      用戶的訪問請求可首先需要下載可用于處理內(nèi)容服務器200提供的安全內(nèi)容的軟件應用。所述軟件應用可從應用服務器220下載。軟件應用可使用上文描述的技術(shù)修改以將若干二維表重寫為三維表以及如上文描述而操作。一旦用戶裝置250、252安裝了軟件應用,用戶裝置接著就 可從內(nèi)容服務器200下載安全內(nèi)容,且使用所下載的軟件應用訪問所述安全內(nèi)容。舉例來說,所下載的軟件應用可執(zhí)行從內(nèi)容服務器接收的經(jīng)加密內(nèi)容的解密。在其它實施例中,軟件應用可執(zhí)行其它安全操作,例如,加密、數(shù)字簽名產(chǎn)生和檢驗等。

      內(nèi)容服務器200可控制對提供給用戶裝置250、252的安全內(nèi)容的訪問。因此,當內(nèi)容服務器200接收針對安全內(nèi)容的請求時,內(nèi)容服務器200可將安全內(nèi)容發(fā)射到發(fā)出請求的用戶裝置。同樣,應用服務器220可控制對提供給用戶裝置250、252的軟件應用的訪問。因此當內(nèi)容服務器200接收對于軟件應用的請求時,應用服務器220可將軟件應用發(fā)射到發(fā)出請求的用戶裝置。在將軟件應用或安全內(nèi)容提供給用戶裝置之前,請求軟件應用或安全內(nèi)容的用戶裝置也可以通過相應的服務器來驗證??商鎿Q的是,用戶可將對于安全內(nèi)容的請求直接發(fā)送到應用服務器,應用服務器隨后將軟件應用發(fā)射到用戶裝置。

      內(nèi)容服務器200可以包括經(jīng)由一個或多個系統(tǒng)總線208互連的處理器202、存儲器204、用戶接口206、網(wǎng)絡接口210以及內(nèi)容存儲裝置212。應理解,在一些方面中,圖2構(gòu)成抽象圖并且裝置200的組件的實際組織可能比所示更加復雜。

      處理器202可以是能夠執(zhí)行存儲在存儲器204或存儲裝置212中的指令的任何硬件裝置。因此,處理器可以包括微處理器、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)或其它類似裝置。

      存儲器204可以包括各種存儲器,例如,L1、L2或L3高速緩沖存儲器或系統(tǒng)存儲器。因此,存儲器202可以包括靜態(tài)隨機存取存儲器(SRAM)、動態(tài)RAM(DRAM)、快閃存儲器、只讀存儲器(ROM),或其它類似存儲器裝置。

      用戶接口206可以包括一個或多個裝置以使得能夠與例如管理員等用戶通信。舉例來說,用戶接口206可以包括顯示器、鼠標和鍵盤以用于接收用戶命令。

      網(wǎng)絡接口210可以包括用于使得能夠與其它硬件裝置通信的一個或多個裝置。舉例來說,網(wǎng)絡接口210可以包括網(wǎng)絡接口卡(NIC),其被 配置成根據(jù)以太網(wǎng)協(xié)議通信。另外,網(wǎng)絡接口210可實施TCP/IP堆棧以用于根據(jù)TCP/IP協(xié)議通信。用于網(wǎng)絡接口210的各種替代的或另外的硬件或配置將是顯而易見的。

      內(nèi)容存儲裝置212可以包括一個或多個機器可讀內(nèi)容存儲媒體,例如只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁盤存儲媒體、光學存儲媒體、快閃存儲器裝置或類似存儲媒體。在各種實施例中,內(nèi)容存儲裝置212可存儲將提供給用戶的內(nèi)容。

      應用服務器220包括如同在內(nèi)容服務器200中的那些的元件,并且內(nèi)容服務器200中的相同的元件的描述適用于應用服務器220。并且,內(nèi)容存儲裝置212被應用存儲裝置232代替。另外,應注意,內(nèi)容服務器和應用服務器可以在單個服務器上實施。并且,此類服務器可以在分布式計算機系統(tǒng)上實施以及在上云計算機系統(tǒng)上實施。

      根據(jù)本發(fā)明的實施例的方法可在計算機系統(tǒng)上實施為計算機實施的方法。用于根據(jù)本發(fā)明的方法的可執(zhí)行碼可存儲在計算機程序媒體上。計算機程序媒體的例子包括存儲器裝置、光學存儲裝置、集成電路、服務器、在線軟件等。此計算機系統(tǒng)還可包括其它硬件元件,包括存儲裝置、用于利用外部系統(tǒng)以及在計算機系統(tǒng)的元件之間發(fā)射數(shù)據(jù)的網(wǎng)絡接口。

      在本發(fā)明的一個實施例中,計算機程序可包括適于當計算機程序在計算機上運行時執(zhí)行根據(jù)本發(fā)明的方法的所有步驟的計算機程序代碼。優(yōu)選地,計算機程序體現(xiàn)在非暫時性計算機可讀媒體上。

      根據(jù)本發(fā)明的創(chuàng)建白盒實施方案的遮蔽碼的方法可在計算機上實施為計算機實施的方法。用于根據(jù)所述實施例的方法的可執(zhí)行碼可存儲在計算機程序媒體上。在此方法中,計算機程序可包括適于當計算機程序在計算機上運行時執(zhí)行所述方法的所有步驟的計算機程序代碼。計算機程序體現(xiàn)在非暫時性計算機可讀媒體上。舉例來說,圖1的方法可在類似于圖2的內(nèi)容服務器200或應用服務器220的計算機系統(tǒng)的計算機系統(tǒng)上實施。舉例來說,圖1的方法可在類似于圖2的內(nèi)容服務器200或應用服務器220的計算機系統(tǒng)的計算機系統(tǒng)上實施。

      在處理器上運行以實施本發(fā)明的實施例的特定軟件的任何組合構(gòu)成特定專門機器。

      如本文所使用,術(shù)語“非暫時性機器可讀存儲媒體”將理解為排除暫時傳播信號但包括所有形式的易失性和非易失性存儲器。此外,如本文所使用,術(shù)語“處理器”將理解為包括多種裝置,例如微處理器、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC),和其它類似處理裝置。當軟件在處理器上實施時,所述組合變?yōu)閱我惶囟C器。

      盡管已經(jīng)特定參考各種示例性實施例的特定示例性方面詳細地描述所述各種示例性實施例,但應理解,本發(fā)明能夠容許其它實施例且其細節(jié)能夠容許各種顯而易見的方面的修改。如本領(lǐng)域的技術(shù)人員顯而易見的,可以實現(xiàn)變化和修改同時保持在本發(fā)明的精神和范圍內(nèi)。因此,上述公開內(nèi)容、描述和圖式僅出于示意性目的并且并不以任何方式限制本發(fā)明,本發(fā)明僅由權(quán)利要求書限定。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1