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