配置有表格網絡的計算設備的制造方法
【技術領域】
[0001] 本發明設及被配置成計算關于函數-輸入值的數據函數的計算設備,該設備包括 存儲被配置用于數據函數的第一表格網絡的電子存儲裝置,該計算設備包括禪合至所述存 儲裝置并且被配置成獲取用于第一表格網絡的多個第一表格輸入的電子處理器,多個第一 表格輸入包括函數-輸入值,并且該計算設備被配置成通過向多個第一表格輸入應用第 一表格網絡W產生多個第一表格輸出來計算數據函數,多個第一表格輸出包括函數-輸出 值,函數-輸出值對應于向函數-輸入值應用數據函數的結果。
【背景技術】
[0002] 在傳統的密碼學中,通常假定攻擊者僅能訪問安全系統的輸入和輸出值。例如,攻 擊者將能夠觀察進入系統中的普通文本W及從系統出來的加密文本。盡管攻擊者可能通過 分析該樣的輸入/輸出對、甚至可能使用在計算上強烈的方法來嘗試得到優勢,但是沒有 想到他直接訪問實施輸入/輸出行為的系統。
[0003] 最近,將其中假定攻擊者對實施有一些了解的威脅模型考慮進去已經成為必要。 例如,人們可考慮邊-信道分析W及逆向工程的威脅。此外,之前大多與安全性問題關聯的 關注已經延伸至其它的領域,諸如私密(privacy)。盡管處理諸如密鑰的安全性信息的密碼 系統仍然是主要的關注點,但是其它程序(例如,處理私密相關的信息的那些程序)的保護 也已經變得重要。
[0004] 很久已經知道計算機系統通過所謂的邊-信道泄露一些信息。觀察計算機系統的 輸入-輸出行為可能不會提供關于敏感信息(例如由計算機系統使用的密鑰)的任何有用的 信息。但是,計算機系統具有可W被觀察的其它的信道,例如,其功耗或者電磁福射,該些信 道被稱為邊-信道。例如,可W測量由不同的指令所消耗的功率方面的變化W及在執行指 令時所消耗的功率方面的變化。所測量到的變化可與敏感信息(例如密鑰)有關。該種超越 可觀察和意圖的輸入-輸出行為的關于秘密信息的附加信息被叫做邊-信道。通過邊-信 道,計算機系統在其使用期間可能"泄露"秘密信息。觀察和分析邊-信道可能讓攻擊者訪 問比僅從輸入-輸出行為的密碼分析獲取的信息更佳的信息。一種已知的類型的邊-信道 攻擊是所謂的差分功率分析(DPA)。
[0005] 當前針對邊-信道問題的方法在計算中引入了隨機性。例如,在執行程序的真正 的操作之間,虛擬指令可能被插入W模糊功耗和程序正在對其起作用的數據之間的關系。
[0006] 計算機上的甚至更強的攻擊是所謂的逆向工程。在許多安全性情境中,攻擊者可 完全地訪問計算機。該給予它們分解程序并且獲取關于計算機和程序的任何信息的機會。 給予足夠的努力,攻擊者可能發現比如隱藏在程序中的任何鑰匙。
[0007] 保護對抗該攻擊情境已經證明是非常困難的。一種類型的對策是所謂的白盒 密碼學。在白盒密碼學中,鑰匙和算法被組合。所得到的算法只針對一個特定的鑰匙起 作用。接下來,算法可W被實施為所謂的查找表網絡。計算被變換成依賴于鑰匙的表 格中的一系列查找。例如,對于該方法的示例,參見S.化OW,P.Eisen,H.化hnson, P.C.vanOorschot的"白盒密碼學和AES實施(White-BoxCryptographyandanAES Implementation)"。
【發明內容】
[0008] 對抗針對計算機系統的邊-信道攻擊的已知的對策不是完全地令人滿意的。例 如,通過統計分析可反擊隨機性的引入。通過對程序的操作的更加高級的分析,可W反擊軟 件的混淆。因而,存在針對更多且更佳的對策的需要。
[0009] 例如,一種混淆計算機程序的方式是對輸入值進行編碼并且在被編碼的值上盡可 能多地進行操作。人們甚至可使用所謂的表格網絡來實行計算。該樣的表格網絡可W手工 制作或者通過專口的程序制作(例如,在白盒密碼學的情形中),或者通過通用的編譯器來 制作。一般而言,相信表格會混淆被實行的操作的類型。然而,發明人已經發現后者一般不 是真實的。
[0010] 即使函數的(多個)輸入和(多個)輸出被編碼,輸入/輸出關系的統計屬性可揭示 哪個函數正在被編碼。該現象的示例如下。
[0011] 考慮W= {0, 1,. . .,N-U,編碼E,和其對應的解碼D=E-1。讓和 G分別表示被編碼的模數N加法W及被編碼的模數N乘法。也就是說,將 WXWW定義為FC;c,3,)二£(0(x) 0(>?)),其中感;V-表示模數N加法,W及將 G;抹'XW一IV定義為G(x,>')二£(0(x) *扣£}(>')),其中表示模數N乘法。
[0012] 對于每個固定的X,我們具有{巧x,_r)|yGW} =w.而且,對于每個非零的 X巨WW及N素數,我們具有{G托_、,)lye睞-}=眠W及{G化y)Iye協'} =E(巧. 對于非素數的N,發生類似的模式。
[0013] 結果,人們可W獨立于編碼E確定F不可能是被編碼的模數N乘法,W及G不可能 是被編碼的模數N加法。攻擊者至少具有兩種方式來該樣做。他可固定W中的兩個不同的 元素和毛,并且對于HeCF,邱針對所有的y將好Csv.v)和聽卸內進行比較。如果對 于所有的_7,該些量是不同的,則H不可能代表模數N乘法;如果對于一些_7,該些量一致, 則H不可能代表模數N加法。不能選取哪個表格入口要讀取、但是可W觀察運行軟件程序 的表格訪問的結果的攻擊者可W使用W下事實;W中的每個元素經常同等地作為具有G的 期間(while)的輸出而發生,元素E(0)更加頻繁地作為輸出發生。因此,如果W中的元素 比W中的其它元素更加經常地作為H的輸出而發生,則H更加可能是被混淆的模數N乘法, 而不是被混淆的模數N加法。
[0014] 換言之,即使人們使用可用的最佳的軟件混淆方法中的一種方法,即,如果人們使 用針對計算的輸入和輸出值W及表格網絡的全編碼,則通過程序的檢驗仍可獲取一些信 息。該情況是非常不期望的。
[0015] 已經發現該問題通過同時在多個輸入值上操作的表格網絡的引入而被解決。表 格網絡可向不同的輸入或者輸入組應用不同的函數。使用向單個值加密的編碼,多個輸 入中的兩個或者更多個一起被加密到單個的值中,攻擊者確定表格網絡意圖針對什么函 數變為不可能,因為,實際上其實行兩個函數。參見于2012年12月21日提交的、具有號 碼US61/740691、W及標題"包括表格網絡的計算設備(Computingdevicecomprisinga t油lenetwork)"的美國臨時申請和/或同一標題"包括表格網絡的計算設備(Computing devicecomprisingat油lenetwork)"的歐洲專利申請,歐洲專利申請具有申請日2012 年12月27日W及申請號EP12199387。
[0016] 盡管該系統相當地增加了安全性,但是仍有攻擊向量,尤其是如果攻擊模型被進 一步拓寬。我們假定攻擊者不僅具有全訪問使得他可觀察在系統中發生的每件事,我們還 準備了能夠修改程序的攻擊者。我們考慮兩種該樣的修改,對表格入口的修改W及對變量 的修改。第一種類型的修改在攻擊者上較少地假定,因為可W在程序執行已經開始之前就 做出修改,后一類型的修改是在程序正在運行是完成,并且因此被考慮為更難。例如,攻擊 者可能嘗試下面的攻擊(主要可能W自動的方式)。他修改表格中的入口,并且針對各種輸 入運行修改的程序。如果該些運行中沒有運行示出原始的程序和經修改的程序的輸出中 的任何差異,則他斷定經修改的表格入口和未經修改的表格入口就相關的數據而言是同等 的,并且只是在混淆計算方面(即,所謂的狀態變量和狀態函數)不同。給予足夠的時間,可 W構建就正確的計算而言是同等的值的類別的圖。因而,狀態變量被有效地消除。要清楚, 由于編碼的原因,攻擊者將不能夠直接觀察數據值是否是相同的,而狀態值是不同的,但是 他可能能夠從分析表格修改的效果來推斷該一點。
[0017] 將有利的是,具有被配置成計算關于函數-輸入值的數據函數的計算設備,該計 算設備具有對抗程序修改的增強的恢復力。
[0018] 提供了被配置成計算關于函數-輸入值的數據函數的計算設備,該計算設備至少 處理該關注。
[0019] 計算設備包括電子存儲裝置W及禪合至存儲裝置的電子處理器。電子存儲裝置被 配置成存儲被配置用于數據函數f的第一表格網絡W及第二表格網絡,第二表格網絡被配 置成與第一表格網絡合作W反擊對第一表格網絡做出的修改。
[0020] 處理器(例如,通過合適的計算機處理器代碼)被配置成獲取用于第一表格網絡的 多個第一表格輸入,多個第一表格輸入包括函數-輸入值,并且處理器被配置成通過向多 個第一表格輸入應用第一表格網絡W產生多個第一表格輸出來計算數據函數,多個第一表 格輸出包括函數-輸出值,函數-輸出值對應于向函數-輸入值應用數據函數的結果。
[0021] 處理器還被配置成獲取用于第二表格網絡的多個第二表格輸入,第二表格輸入包 括多個第一表格輸出并且第二表格輸入與多個第一表格輸入共享至少一個輸入,并且處理 器被配置成向多個第二表格輸入應用第二表格網絡,第二表格網絡被配置成針對多個第一 表格輸出中的至少具體的一個驗證未修改的第一表格網絡是否能夠從給定的多個第一表 格輸入中的至少一個獲取多個第一表格輸出中的該具體的一個。
[0022] 第二表格網絡產生包括被保護的函數輸出的第二表格輸出,在驗證是成功的情形 中,被保護的函數輸出等于函數輸出,W及在驗證是不成功的情形中,被保護的函數輸出不 等于函數輸出。例如,人們可W配置第二表格網絡,使得在驗證是不成功的情形中,被保護 的函數輸出總是不相等的。然而,在有利的實施方式中,輸出被隨機化,例如,在不成功的驗 證的情形中,在構造表格時隨機地選擇輸出。在后一情形中,人們可能偶爾具有相等的輸 出。采取狀態變量和隨機輸出作為參考,人們可能要求在不成功的驗證的情形中,輸出在至 少90%的情形(即,所有的表格入口,即所有的可能的第一表格輸入)中應當是不相等的。
[0023] 因而,該計算設備W深奧的方式被混淆并且保護對抗早前概述的修改攻擊。實際 上,第一表格網絡在多個輸入上操作并產生多個輸出。多個輸入當中是到數據函數的輸入 中的至少一個輸入,W及多個輸出當中是至少函數輸出。在W上提到的專利申請中,已經描 述了可各種方式來構造該樣的表格網絡。作為該樣的構造的一部分,數據函數可能已 經針對所有可能的輸入值被評估。
[0024] 第二表格網絡驗證第一表格網絡的計算的一部分。為此,第二表格網絡接收第一 表格網絡的輸出并且共享到第一表格網絡的多個輸入中的至少部分。由于第二表格網絡不 一定具有所有的多個輸入值,所W第二表格網絡完成全計算也許是不可能的。然而,選取第 二表格網絡使得其能夠針對多個第一表格輸出中的至少一個驗證未修改的第一表格網絡 是否將具有給定的不同值。換言之,第二表格網絡驗證包括輸入的多個第一表格輸入中的 至少一個的多個第一表格輸入的存在,未修改的第一表格網絡從其中獲取多個第一表格輸 出中的具體的一個。實現該一點的一種實際的方式是實行第一表格網絡完成的相同的計算 中的部分或全部,但是該不是嚴格地必要的,例如,給定函數輸入的部分,也許可能的是,斷 定一些函數輸出已經成為不可能。而且,在后一示例中,通過在編譯期間枚舉,該兼容性將 被建立并且在執行期間被查找。
[00巧]第二表格網絡可與多個第一表格輸入分享輸入至少存在兩種方式,第一選項是第 一表格網絡的輸入中的一個被拷貝到第二表格網絡。該方法的結果是如果輸入與其它的輸 入一起被編碼,則它們也將是到第二表格網絡的輸入。該可能導致比期望的更大的表格。在 某種程度上,使用提取表格(例如,狀態提取表格)W從被一起編碼的輸入中獲取一個或多 個輸入(例如,狀態),該一點可被補救。第二選項是使用影子變量,也就是說,第一網絡的多 個輸入中的一個或多個可能在不同的編碼中至少被維持至少兩次。例如,第一表格網絡可 具有函數和狀態輸入,而第二表格網絡僅共享狀態輸入。在該情形中,不需要直接地從第一 表格網絡的輸入拷貝第二表格網絡的輸入。該兩個網絡具有一個或多個共用的輸入,但是 共用的輸入不需要必然直接地來自于同一源。該可導致第二表格網絡中的較小的表格。另 一方面,其要求至少在程序的一部分中變量中的一些被維持兩次,即所謂的影子變量。
[0026] 在第二表格網絡檢測到對第一表格網絡的修改的情形中,其修改函數輸出,即,輸 出不等于函數輸出的被保護的函數輸出。該具有W下效果:攻擊者將看見由于攻擊者的并 非偶然的修改導致的改變。例如,即使攻擊者已經修改了不相關的數據(例如,狀態),該也 可能由第二表格網絡檢測到,而第二表格網絡又引起改變擴散至數據變量。總而言之,如果 可能話的,W上概述的攻擊變得更難。
[0027] 在實施例中,多個第一表格輸入進一步包括狀態-輸入值,并且多個第一表格輸 出進一步包括狀態-輸出值,其中狀態-輸出值等于向狀態-輸入值應用狀態函數的結果, 并且第二表格網絡被配置成采取狀態-輸入值作為輸入,第二表格網絡被配置成使得在向 狀態-輸入值應用狀態函數的結果等于包括在被輸入至第二表格網絡的多個第一表格輸 出中的狀態值的情形中,被保護的函數輸出等于函數輸出。
[0028] 通過計算彼此獨立的兩個函數(同一表格網絡中的數據函數和狀態函數),驗證它 們中的一個成為可能。因而,需要在第二表格網絡中完成的工作量被減少。結果,人們可W 設計具有較少的輸入的第二表格網絡,該具有顯著地更小的表格的結果。
[0029] 在實施例中,第一表格網絡被配置成采取被編碼的輸入值作為輸入,被編碼的輸 入值將函數-輸入值與被一起編碼的狀態-輸入值一起組合成單個的值,并且第一表格網 絡被配置成產生第一被編碼的輸出值作為輸出,第一被編碼的輸出值將函數-輸出值與被 一起編碼的狀態-輸出值一起組合成單個的值,其中狀態-輸出值等于向狀態-輸入值應 用狀態函數的結果,第二表格網絡被配置成采取第一表格網絡的第一被編碼的輸出值W及 狀態-輸入值和函數-輸入值中的至少一個作為輸入,第二表格網絡被配置成產生第二被 編碼的輸出值、包含被保護的函數輸出的被編碼的輸出值作為輸出。
[0030] 對多個輸入中的一些或全部和/或多個輸出中的一些或全部進行一起編碼使得 對設備的逆向工程更難。攻擊者不直接地知曉值代表什么或者該值實際上是什么。
[0031] 編碼(經常被稱為"E")至少部分是可逆的,也就是說,對于一些被編碼的函數輸入 值和