欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法

文檔序號:6339554閱讀:453來源:國知局
專利名稱:一種安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法
技術(shù)領(lǐng)域
本發(fā)明主要涉及到芯片的安全領(lǐng)域,特指一種適用于安全芯片的抗功耗攻擊防護(hù) 能力的量化評估加速方法。
背景技術(shù)
隨著社會信息化程度的提高,以智能卡為代表的安全芯片在各領(lǐng)域得到了越來越 廣泛的應(yīng)用。在各應(yīng)用系統(tǒng)中,安全芯片往往起著安全控制核心的作用,因此安全芯片自身 的安全性對于整個應(yīng)用系統(tǒng)具有關(guān)鍵作用。另一方面,由于安全芯片涉及用戶敏感信息和 身份鑒別,受利益驅(qū)動,惡意實體或個人總是企圖破解安全芯片以獲取私密信息,或偽造身 份以謀利,不僅造成巨額經(jīng)濟(jì)損失,也帶來嚴(yán)重的負(fù)面社會影響。國防和軍事領(lǐng)域中安全芯 片的破解還可能造成危害軍事信息安全的竊密和泄密事故,給國家安全帶來威脅。當(dāng)前,安全芯片面臨的安全風(fēng)險主要體現(xiàn)在程序和數(shù)據(jù)的機(jī)密性與完整性、以及 芯片的可用性被破壞。攻擊者所采用的破解手段主要包括軟件攻擊、旁路攻擊、以及物理攻 擊。在各種不同的旁路攻擊技術(shù)中,功耗攻擊以其簡單易行、普遍適用和行之有效得到了廣 泛關(guān)注,是一種對安全芯片構(gòu)成最嚴(yán)重威脅的旁路攻擊手段。功耗攻擊之所以可行的根本原因在于當(dāng)前集成電路大都采用靜態(tài)單軌的標(biāo)準(zhǔn)單 元實現(xiàn),其功耗與輸入和輸出翻轉(zhuǎn)狀態(tài)存在統(tǒng)計意義上的相關(guān)性,攻擊者通過統(tǒng)計大量功 耗樣本即可分析出密鑰的值。以最簡單的反相器為例,在不同的翻轉(zhuǎn)模式下消耗的功耗存 在明顯差別,輸出端在發(fā)生“0-1”和“1-0”翻轉(zhuǎn)時,存在充放電過程,消耗較多能量;而輸出 端不發(fā)生翻轉(zhuǎn)時,反相器中僅存在漏電流,幾乎為0。其它更復(fù)雜的標(biāo)準(zhǔn)單元工作時功耗同 樣與輸入和輸出翻轉(zhuǎn)狀態(tài)存在相關(guān)性。攻擊者在大量功耗樣本的基礎(chǔ)上,運(yùn)用數(shù)理統(tǒng)計技 術(shù)即可分析出密鑰的值。功耗攻擊的主要步驟包括樣本采集與樣本處理。在樣本采集過程中,隨機(jī)產(chǎn)生大 量明文,分別使用未知密鑰進(jìn)行加密,記錄加密過程中的功耗曲線即功耗樣本,并保存對應(yīng) 的密文。在功耗攻擊中,功耗樣本一般為按固定時間間隔采樣的功耗瞬態(tài)值序列,可用一維 數(shù)組的方式在計算機(jī)中存儲和處理。樣本處理的基本原理為選取密碼算法運(yùn)算過程中某 一位中間變量T,且T為明文M、密文C、以及子密鑰K的函數(shù),記為T = F(M,C,K),其中子密 鑰K為密鑰或輪密鑰的一部分,一般而言K只有少數(shù)幾個比特,記K的比特數(shù)為k,且k 一般 不超過8 ;由于M和C都是攻擊者已知的量,攻擊者給定一個密鑰K的猜測值,則可計算出 T的值,根據(jù)T的值即可將所有的功耗樣本劃分兩個子集,即當(dāng)T為1時將對應(yīng)的功耗樣本 納入樣本子集Si,當(dāng)T為0時將對應(yīng)的功耗樣本納入樣本子集SO ;枚舉K中與T相關(guān)的2k 種所有可能的值,并根據(jù)各個猜測值將功耗樣本劃分兩個子集,并計算Sl和SO的功耗樣本 均值之差;在所有2k種可能的猜測中,如果均值之差中具有最大峰值,則對應(yīng)的猜測為正確 密鑰,其它2k-l種猜測均為錯誤猜測。為破解密鑰的其它部分,需要反復(fù)實施上述樣本處理 過程,即確定實施攻擊的目標(biāo)中間變量、遍歷與目標(biāo)中間變量相關(guān)的子密鑰的所有猜測值、 劃分功耗樣本子集、計算功耗樣本均值之差等,直到密鑰被完整的破解出來。
為了抗功耗攻擊,設(shè)計者在實現(xiàn)密碼算法時往往從不同角度采取一定的防護(hù)技 術(shù),在眾多防護(hù)技術(shù)當(dāng)中,采取運(yùn)算流程隨機(jī)化和增加隨機(jī)功耗噪聲的方法以增加功耗攻 擊的難度是一種典型的技術(shù)手段。這必然大大增加了功耗攻擊的難度,使得攻擊者必須要 采集更多的功耗樣本來消除噪聲。安全芯片抗功耗攻擊防護(hù)能力一般以成功破解密鑰所需 的功耗樣本數(shù)來衡量,這是因為破解所需的功耗樣本數(shù)越大,功耗攻擊所需的樣本采集時 間、功耗樣本的存儲空間、以及功耗樣本的處理時間都越大。從設(shè)計者的角度來看,設(shè)計者 需要在設(shè)計過程中量化評估安全芯片抗功耗攻擊的防護(hù)能力,量化評估過程實際上也是通 過實施功耗攻擊來完成的。與攻擊者對安全芯片實施真實功耗攻擊不同的是,安全芯片設(shè) 計者在設(shè)計過程中對其進(jìn)行防護(hù)能力量化評估的功耗樣本來源于安全芯片的功耗估算模 型,而不是采集自真實安全芯片在工作時的真實功耗,即兩者的功耗樣本采集方式不同,但 是對于功耗樣本進(jìn)行處理和分析以破解密鑰的方法完全相同。對于未加任何防護(hù)的安全芯片來說,可能只需200組功耗樣本即可成功破解密 鑰,而對于采取了防護(hù)技術(shù)的安全芯片有可能需要采集并處理上萬組甚至上百萬組以上的 功耗樣本。假設(shè)為破解安全芯片中密鑰,實施功耗攻擊所需的樣本數(shù)為百萬量級,且單個功 耗樣本包括1000個離散時刻的瞬態(tài)值,每次均值之差的計算需要處理10億個以上的浮點 數(shù),一個8比特密鑰的破解過程需要進(jìn)行256次功耗樣本均值之差的計算,破解8比特密鑰 需要2560億次以上的浮點計算,破解1 位的輪密鑰則需要執(zhí)行4. 096萬億以上的浮點計 算,功耗樣本處理的運(yùn)算量巨大,嚴(yán)重制約了功耗攻擊的效率。而在安全芯片設(shè)計過程中, 需要在不同設(shè)計階段進(jìn)行防護(hù)能力量化評估,在防護(hù)能力不滿足設(shè)計規(guī)范時還需要改進(jìn)防 護(hù)技術(shù)并重新進(jìn)行量化評估,防護(hù)能力量化評估在設(shè)計過程中需要反復(fù)迭代進(jìn)行,防護(hù)能 力量化評估的效率也成為影響安全芯片設(shè)計進(jìn)度的一個制約因素。在設(shè)計過程中對安全芯 片進(jìn)行抗功耗攻擊防護(hù)能力的量化評估時,面對數(shù)量巨大的功耗樣本,迫切需要對功耗樣 本的處理過程進(jìn)行加速,以提高安全芯片抗功耗攻擊防護(hù)能力量化評估的效率,縮短安全 芯片的設(shè)計周期。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題就在于針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一 種原理簡單、操作簡便、能夠大大提高功耗樣本的處理效率、從而加快整個評估速度的安全 芯片抗功耗攻擊防護(hù)能力量化評估的加速方法。為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案一種安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法,其特征在于在對安全芯 片進(jìn)行抗功耗攻擊防護(hù)能力量化評估時,對功耗樣本進(jìn)行以下處理①功耗樣本存儲將功耗樣本以二維數(shù)組的方式存儲;其中,不同功耗樣本中同 一個時間點的瞬態(tài)功耗值按“行”存儲,不同時間點的功耗值按“列”存儲;②準(zhǔn)備輸入流根據(jù)流處理器的設(shè)備內(nèi)存容量,將能夠完全容納在流處理器的設(shè) 備內(nèi)存中的部分功耗樣本復(fù)制到流處理器設(shè)備內(nèi)存中;③流處理器對輸入流進(jìn)行加工處理并產(chǎn)生輸出流按照不同時間點功耗均值并行 計算以及同一時間點大量功耗值并行累加這兩級并行的方式進(jìn)行加速處理,計算出每個時 間點的功耗均值;
④讀出輸出將步驟③中流處理器計算得到的功耗均值結(jié)果讀出并存儲在系統(tǒng)主 存中;⑤循環(huán)處理反復(fù)進(jìn)行上述步驟② ④,以數(shù)據(jù)流的方式完成所有功耗樣本的處理。作為本發(fā)明的進(jìn)一步改進(jìn)所述步驟①中,功耗樣本包括功耗樣本集Sl和功耗樣本集S0,設(shè)功耗樣本數(shù)為n, η為大于等于1的整數(shù),功耗樣本集Sl包含的功耗樣本記為XI,Χ2,. . .,Xi,. . .,&,其中 l^i^n ;單個功耗樣本包含m個時刻的功耗樣本值,m為大于1的整數(shù),功耗樣本Xi記 為xil,xi2, . . .,xij,. . .,xim,其中KjSm ;功耗樣本集SO包含的功耗樣本記為Yl, Y2,…,Yi,…,Yn,功耗樣本 Yi 記為 yil, yi2,…,yi j,…,yim。所述功耗樣本集在系統(tǒng)內(nèi)存中按照二維數(shù)組方式存儲,單個功耗樣本在不同時刻 的值按“列”存儲,不同功耗樣本在同一時刻的值按“行”存儲,即功耗樣本集Si的第一行為 xll, x21, x31,…,xil,…,xnl,第二行為 xl2, x22, x32,…,xi2,…,xn2,依此類推, 第 i 行為 xli,x2i, x3i,. . . , xii, . . . , xni,第 m 行為 xlm, x2m, x3m, . . . , xim,. . . , xnm ;功 耗樣本集 SO 的第一行為 yll,y21, y31, ...,yil, ...,ynl,第二行為 yl2,y22, y32,..., yi2, . . . , yn2,依此類推,第 i 行為 yli, y2i, y3i, . . . , yii, . . . , yni,第 m 行為 ylm, y2m, y3m, . . . , yim, . . . , ynm。所述步驟①中,除功耗樣本外,在系統(tǒng)內(nèi)存中開辟一個長度為m的一維數(shù)組dm,用 于存儲功耗樣本集Sl和SO的均值之差。所述步驟②中,先在流處理器的設(shè)備內(nèi)存中開辟用于存儲功耗樣本和均值結(jié)果的 存儲空間,即根據(jù)流處理器設(shè)備內(nèi)存的容量,分別開辟2個r行η列的二維數(shù)組,以及1個 長度為r的一維數(shù)組,其中r ^ m,2個二維數(shù)組分別記為gx和gy,長度為r的一維數(shù)組記 為dg ;2個r行η列的二維數(shù)組用于暫存功耗樣本,長度為r的數(shù)組用于存儲功耗樣本的均 值計算結(jié)果。所述步驟②和步驟③的詳細(xì)步驟為1. 1復(fù)制輸入流當(dāng)執(zhí)行第s次迭代時,將功耗樣本集Sl和SO的第s個子塊分別 復(fù)制到流處理器設(shè)備內(nèi)存的gx和gy中,其中1彡S彡m/r ;1. 2在流處理器中創(chuàng)建大量獨立的并發(fā)線程按照兩級結(jié)構(gòu)組織所有的線程,第 一級為線程塊,第二級為單個獨立的線程,所有線程共分為r個線程塊,r個線程塊組成完 整的線程網(wǎng)格,每個線程塊負(fù)責(zé)計算兩個功耗樣本集在一個時刻的功耗均值之差;每個線 程塊共包括B個獨立并發(fā)線程,其中B為流處理器中線程塊所能支持的最大線程數(shù);按照這 種線程組織方式,每個線程塊被賦予一個索引號bx,且1 < bx < r ;線程塊中每個線程也被 賦予一個線程索引號tx,且1 < tx < B ;1. 3定義共享變量在流處理器的片內(nèi)共享內(nèi)存區(qū)域為每個線程塊開辟兩個長度 為B的一維數(shù)組,分別記為sx和sy,sx和sy可以被同一線程塊內(nèi)的任意線程訪問;1. 4共享變量初始化將每個線程塊中sx與sy的所有元素初始化為0 ;1. 5面向設(shè)備內(nèi)存的并行累加在所有的線程塊中,每個線程做如下的累加操作
SX [tx]=
= gx[bx][tx] + gx[bx][tx+B] + gx[bx][tx+2B] + ... + gx[bx][tx+n-B];sy[tx] = Σ :3 3- οχ]Ι 3£+(1-1)Β1 = gy[bx][tx] + gy[bx][tx+B] + gy[bx][tx+2B] + ... +
gy[bx][tx+n-B],其中 sx [tx]和 sy [tx]分別表示 sx 和 sy 的第 tx 個元素,gx [bx] [tx+ (i_l) B] 和gy [bx] [tx+ (i-1) B]分別表示gx和gy中第bx行第tx+ (i_l) B列的元素,且1彡i彡n/ B ;每個線程在累加操作完成之后進(jìn)行柵欄同步,確保B個線程的累加操作都已完成,方可 進(jìn)行后續(xù)操作;1.6面向共享內(nèi)存的并行累加在所有的線程塊中,共執(zhí)行Iog2B次累加操作,每 步累加的具體方法為在第i步累加中,只有線程索引號小于等于B/21的線程執(zhí)行有效操 作,其余的B-BAi個線程空轉(zhuǎn),其中1彡i彡Iog2B -,B/21個線程分別執(zhí)行如下累加操作, SX [tx] = sxttxl+sxttx+B^l^yttx] = sy [tx]+sy [tx+B/21];每個線程在累加操作完成 之后進(jìn)行柵欄同步,確保線程的累加操作都已完成,方可進(jìn)行下一步的累加操作;在 第Iog2B步累加操作完成之后,sx[l]和sy [1]分別為gx和gy第bx行的累加和;1. 7產(chǎn)生輸出流在每個線程塊中,線程索引號為1的線程執(zhí)行如下操作dg[bx] =(sX[l]-sy[l])/n,即計算第bx行的均值之差,并將結(jié)果寫入到位于流處理器設(shè)備內(nèi)存 的數(shù)組dg中;同一線程塊中其余B-I個線程空轉(zhuǎn);1. 8讀出輸出流將數(shù)組dg中r個元素從流處理器設(shè)備內(nèi)存中復(fù)制到位于系統(tǒng)內(nèi) 存的dm中,且dm的起始位置為l+(s-l)r,即得到了第s次迭代的均值之差計算結(jié)果。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于本發(fā)明安全芯片抗功耗攻擊防護(hù)能力量化 評估的加速方法,原理簡單、操作簡便、能夠大大提高功耗樣本的處理效率,從而加快整個 評估速度,進(jìn)而縮短安全芯片的設(shè)計周期。


圖1是安全芯片抗功耗攻擊防護(hù)能力量化評估方法的總體流程示意圖;圖2是本發(fā)明加速方法的流程示意圖;圖3是流處理器加速計算的數(shù)據(jù)存儲結(jié)構(gòu)和線程組織結(jié)構(gòu)示意圖;圖4是流處理器加速計算中單個線程塊的具體流程圖。
具體實施例方式以下將結(jié)合說明書附圖和具體實施例對本發(fā)明做進(jìn)一步詳細(xì)說明。如圖1所示,為在安全芯片設(shè)計過程中對其進(jìn)行抗功耗攻擊防護(hù)能力量化評估的 總體流程,包括如下步驟第一步,功耗樣本采集設(shè)計者對安全芯片抗功耗攻擊防護(hù)能力做出一個預(yù)估,也 就是如果設(shè)計者假定成功破解安全芯片所需的功耗樣本數(shù)為n,那么設(shè)計者需要隨機(jī)產(chǎn)生 η組明文,使用需要破解的目標(biāo)密鑰對這η個明文進(jìn)行加密并通過功耗模擬方法獲得安全 芯片在加密過程中的瞬態(tài)功耗,并記錄所有的密文和功耗樣本。第二步,確定實施攻擊的目標(biāo)中間變量設(shè)計者選取密碼算法運(yùn)算過程中某一位 中間變量Τ,且T為明文Μ、密文C、以及子密鑰K的函數(shù),記為T = F(Μ,C,K),其中子密鑰K 為密鑰或輪密鑰的一部分,一般而言K只有少數(shù)幾個比特,記K的比特數(shù)為k,且k 一般不超 過8。第三步,猜測子密鑰K = 0,開始功耗樣本處理過程,即轉(zhuǎn)第四步。
第四步,根據(jù)子密鑰的猜測值將功耗樣本分為兩個子集Sl和SO 由于M和C都是 攻擊者已知的量,攻擊者給定一個密鑰K的猜測值,則可計算出T的值,根據(jù)T的值即可將 所有的功耗樣本劃分兩個子集,即當(dāng)T為1時將對應(yīng)的功耗樣本納入樣本子集Si,當(dāng)T為0 時將對應(yīng)的功耗樣本納入樣本子集so。 第五步,計算并保存功耗樣本子集Sl和SO的均值之差在功耗樣本子集劃分基礎(chǔ) 上,分別計算Si和SO中不同時刻的瞬態(tài)功耗均值,然后計算兩個功耗樣本子集Sl和SO在 各個時刻的功耗均值之差。功耗樣本子集Sl和SO均值之差的計算是功耗樣本處理過程的 核心步驟,也是運(yùn)算量巨大的步驟,該步驟的效率嚴(yán)重影響著安全芯片抗功耗攻擊防護(hù)能 力量化評估的效率,本發(fā)明即著眼于使用流處理器對該步驟進(jìn)行并行加速,以有效提高安 全芯片抗功耗攻擊防護(hù)能力量化評估的效率。第六步,遍歷子密鑰的下一個猜測值即猜測K = K+1。第七步,功耗樣本處理過程結(jié)束判斷邏輯如果K小于2k,則轉(zhuǎn)第四步;否則表明 已遍歷了子密鑰的所有猜測值,轉(zhuǎn)第八步。第八步,確定功耗攻擊是否成功在得到了所有2k種不同的功耗樣本均值之差之 后,可從中選取具有最大功耗均值之差,如果與之對應(yīng)的密鑰猜測值為正確密鑰,則安全芯 片抗功耗攻擊防護(hù)能力小于預(yù)期,即成功破解安全芯片所需的樣本數(shù)不超過η ;否則安全 芯片抗功耗攻擊防護(hù)能力大于預(yù)期,即成功破解安全芯片所需的樣本數(shù)超過η。在安全芯片的設(shè)計過程中,需要在不同設(shè)計階段反復(fù)進(jìn)行抗功耗攻擊防護(hù)能力的 量化評估,以確定安全芯片的抗功耗攻擊防護(hù)能力是否滿足設(shè)計規(guī)范。因此功耗樣本均值 之差的處理嚴(yán)重影響對于安全芯片抗功耗攻擊防護(hù)能力的量化評估的效率,進(jìn)而影響安全 芯片的設(shè)計進(jìn)度。近年來隨著流計算概念的產(chǎn)生和流處理器芯片的出現(xiàn),流處理技術(shù)在 許多應(yīng)用領(lǐng)域得到了大量的應(yīng)用;由于流處理器主要是靠集成大量廉價的計算單元而實 現(xiàn)功能的,因而具有計算速度快、成本低廉的優(yōu)點。典型的流處理器有美國斯坦福大學(xué)的 Imagine處理器、國防科學(xué)技術(shù)大學(xué)自主研制的FT-64、以及圖形處理器GPGPU等。我國首 臺千萬億次超級計算機(jī)系統(tǒng)天河一號就是利用流處理器進(jìn)行加速計算的典型代表。安全芯 片抗功耗攻擊防護(hù)能力量化評估過程中涉及的大量功耗樣本的處理是一個典型的計算密 集和數(shù)據(jù)密集型問題,存在大量的并行性,適合于采用流處理器進(jìn)行加速處理。如圖2所示,本發(fā)明安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法就是基于 流處理器的原理設(shè)計,主要特點就在于對安全芯片進(jìn)行功耗攻擊時,對功耗樣本進(jìn)行以下 處理,以使其加速,提高效率。該加速方法的步驟為①功耗樣本存儲將功耗樣本以二維數(shù)組的方式存儲;其中,不同功耗樣本中同 一個時間點的瞬態(tài)功耗值按“行”存儲,不同時間點的功耗值按“列”存儲;②準(zhǔn)備輸入流根據(jù)流處理器的設(shè)備內(nèi)存容量,將能夠完全容納在流處理器的設(shè) 備內(nèi)存中的部分功耗樣本復(fù)制到流處理器設(shè)備內(nèi)存中;③流處理器對輸入流進(jìn)行加工處理并產(chǎn)生輸出流按照不同時間點功耗均值并行 計算以及同一時間點大量功耗值并行累加這兩級并行的方式進(jìn)行加速處理,計算出每個時 間點的功耗均值;④讀出輸出將步驟③中流處理器計算得到的功耗均值結(jié)果讀出并存儲在系統(tǒng)主 存中;
⑤循環(huán)處理反復(fù)進(jìn)行上述步驟② ④,以數(shù)據(jù)流的方式完成所有功耗樣本的處理。上述加速方法的詳細(xì)流程為第一步,在系統(tǒng)內(nèi)存中準(zhǔn)備功耗樣本集數(shù)據(jù)設(shè)功耗樣本數(shù)為η,η為大于1的整 數(shù),功耗樣本集Sl包含的功耗樣本記為XI,Χ2,...,Xi,...,&!,其中1彡i彡η;單個功 耗樣本包含m個時刻的功耗樣本值,m為大于1的整數(shù),功耗樣本Xi記為xil,xi2,..., xij,. . ·,xim,其中1 ( j彡m;功耗樣本集SO包含的功耗樣本記為Yl,Y2,. . . ,Yi,. . . ,Yn, 功耗樣本Yi記為yil,yi2,. . .,yi j,. . .,yim。功耗樣本集在系統(tǒng)內(nèi)存中按照二維數(shù)組方 式存儲,單個功耗樣本在不同時刻的值按列存儲,不同功耗樣本在同一時刻的值按行存儲, 即 Sl 的第一行為111,121,131,... ,xil,. . .,xnl,第二行為 xl2,x22,x32,. . .,xi2,..., xn2,依此類推,第 i 行為 xli, x2i, x3i,…,xii,…,xni,第 m 行為 xlm, x2m, x3m,…, xim,. . .,xnm ;同樣的,SO 的第一行為 yll, y21, y31,. . . ,yil,. . .,ynl,第二行為 yl2,y22, y32,…,yi2,…,yn2,依此類推,第i行為yli, y2i, y3i,…,yii,…,yni,第m行為 ylm, y2m, y3m, ... , yim, ... , ynm。除功耗樣本外,在系統(tǒng)內(nèi)存中開辟一個長度為m的一維 數(shù)組dm,用于存儲功耗樣本集Sl和SO的均值之差。第二步,開辟輸入流和輸出流存儲空間,即在流處理器的設(shè)備內(nèi)存中開辟存儲功 耗樣本和均值結(jié)果的存儲空間,根據(jù)流處理器設(shè)備內(nèi)存的容量,分別開辟2個r行η列的二 維數(shù)組,以及1個長度為r的一維數(shù)組,其中r < m,2個二維數(shù)組分別記為gx和gy,長度為 r的一維數(shù)組記為dg。2個r行η列的二維數(shù)組用于暫存功耗樣本,長度為r的數(shù)組用于存 儲功耗樣本的均值計算結(jié)果,這三個數(shù)據(jù)結(jié)構(gòu)所占的存儲空間必須小于流處理器的設(shè)備內(nèi) 存容量。根據(jù)r的值,存儲于系統(tǒng)內(nèi)存空間中的功耗樣本集即m行η列的數(shù)組被劃分成m/r 個子塊,每個子塊為r行η列的二維數(shù)組,功耗樣本集Sl的第一個子塊為Sl的第一行至第 r行,第二個子塊為Sl的第r+Ι行至第2r行,依此類推,Sl的第m/r個子塊為Sl的第m-r 行至第m行;同樣的,功耗樣本集SO的第一個子塊為SO的第一行至第r行,第二個子塊為 SO的第r+Ι行至第2r行,依此類推,SO的第m/r個子塊為SO的第m_r行至第m行。第三步,進(jìn)入初始迭代令s = 1且轉(zhuǎn)第四步。第四步,單次流處理過程按如下步驟計算功耗樣本集Sl和SO中第s個子塊的均 值之差,即η個功耗樣本中連續(xù)r個時刻的均值之差;第五步,結(jié)束處理判斷邏輯令s = s+1 ;如果s小于等于m/r則轉(zhuǎn)第四步,否則整 個計算過程結(jié)束,功耗樣本集Sl和SO的均值之差計算完畢。如圖3所示,為流處理器加速計算的數(shù)據(jù)存儲結(jié)構(gòu)和線程組織結(jié)構(gòu)示意圖。流處理器加速計算過程中需要在設(shè)備內(nèi)存中開辟三個存儲區(qū)域,包括2個r行η 列的二維數(shù)組和1個長度為r的一維數(shù)組。二維數(shù)組gx和gy分別用于暫存功耗樣本集Sl 和SO的子塊,一維數(shù)組dg用于暫存兩個子塊的均值之差計算結(jié)果。在令流處理器進(jìn)行加 速計算之前,需要從系統(tǒng)內(nèi)存中將Sl和SO的子塊復(fù)制到gx和gy中,在流處理器加速計算 完成之后,從dg中將計算結(jié)果復(fù)制至系統(tǒng)內(nèi)存中。使用流處理器進(jìn)行功耗樣本均值之差的加速計算時,共需創(chuàng)建r個線程塊,在每 個線程塊中創(chuàng)建B個線程,其中B為流處理器能夠支持的單個線程塊中最大并發(fā)線程數(shù)量。 所有的r個線程塊組成流處理器加速計算的線程網(wǎng)格,每個線程塊具有一個索引號,記為bx,且1 < bx < r。在每個線程塊內(nèi)部,每個獨立的線程同樣具有一個索引號,記為tx,且 I^tx ^ B0從邏輯上來看,每個線程塊都是并行執(zhí)行的,單個線程塊內(nèi)部的所有線程也是 并行執(zhí)行的。每個線程塊負(fù)責(zé)計算一個時刻的功耗樣本均值之差,并將計算結(jié)果寫入dg中,第 i個線程塊的運(yùn)算過程可以表示為巧乂 = Σ·=. ·--· ~1·=. .·■·,其中1彡i彡r。單 個線程塊中B個線程對單個時刻的功耗樣本均值之差的計算進(jìn)行并行加速。如圖4所示,為流處理器加速計算中單個線程塊的具體流程示意圖,其具體步驟 為第一步,定義共享變量為提高流處理器加速計算的性能,在流處理器的片內(nèi)共享 內(nèi)存區(qū)域為每個線程塊開辟兩個長度為B的一維數(shù)組,分別記為sx和sy,sx和sy可以被 同一線程塊內(nèi)的任意線程訪問。第二步,共享變量初始化將sx與sy的所有元素初始化為0,即sx[tx] = 0, sy[tx] = 0 ;其中sx [tx]和sy[tx]分別表示sx和sy的第tx個元素。第三步,面向設(shè)備內(nèi)存的并行累加線程塊中每個獨立線程做如下的累加操作
SX [tx]=
Irs32-; >1- -: B: = gx[bx][tx] + gx[bx][tx+B] + gx[bx][tx+2B] + ... + gx[bx][tx+n-B];
sy[tx] =+ (1-1) = gy[bx][tx] + gy[bx][tx+B] + gy[bx][tx+2B] + …+
gy[bx][tx+n-B],其中 gx[bx] [tx+(i-l)B]和 gy[bx] [tx+(i-l)B]分別表示 gx 和 gy 中第 bx 行第tx+(i-l)B列的元素,且1 < i < η/Β ;每個線程在累加操作完成之后進(jìn)行柵欄同步, 確保B個線程的累加操作都已完成,方可進(jìn)行后續(xù)操作。第四步,面向共享內(nèi)存的并行累加每個線程塊共執(zhí)行Iog2B次累加操作,每步累 加的具體方法為在第i步累加中,只有線程索引號小于等于B/21的線程執(zhí)行有效操作,其 余的B-BAi個線程空轉(zhuǎn),其中1彡i彡Iog2B ;B/21個線程分別執(zhí)行如下累加操作,sx[tx]= sxttxl+sxttx+B^], sy[tx] = sy [tx]+sy [tx+B^1];每個線程在累加操作完成之后進(jìn)行 柵欄同步,確保B/21個線程的累加操作都已完成,方可進(jìn)行下一步的累加操作。在第Iog2B 步累加操作完成之后,sx[l]和sy[l]分別為gx和gy第bx行的累加和。第五步,產(chǎn)生輸出流線程塊中線程索引號為1的線程執(zhí)行如下操作dg[bx]= (sx[l]-Sy[l])/n,即計算第bx行的均值之差,并將結(jié)果寫入到位于流處理器設(shè)備內(nèi)存的 數(shù)組dg中;同一線程塊中其余B-I個線程空轉(zhuǎn)。以上僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實施例, 凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的 普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤飾,應(yīng)視為本發(fā)明的保護(hù) 范圍。
權(quán)利要求
1.一種安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法,其特征在于在對安全芯片 進(jìn)行抗功耗攻擊防護(hù)能力量化評估時,對功耗樣本進(jìn)行以下處理①功耗樣本存儲將功耗樣本以二維數(shù)組的方式存儲;其中,不同功耗樣本中同一個 時間點的瞬態(tài)功耗值按“行”存儲,不同時間點的功耗值按“列”存儲;②準(zhǔn)備輸入流根據(jù)流處理器的設(shè)備內(nèi)存容量,將能夠完全容納在流處理器的設(shè)備內(nèi) 存中的部分功耗樣本復(fù)制到流處理器設(shè)備內(nèi)存中;③流處理器對輸入流進(jìn)行加工處理并產(chǎn)生輸出流按照不同時間點功耗均值并行計算 以及同一時間點大量功耗值并行累加這兩級并行的方式進(jìn)行加速處理,計算出每個時間點 的功耗均值;④讀出輸出將步驟③中流處理器計算得到的功耗均值結(jié)果讀出并存儲在系統(tǒng)主存中;⑤循環(huán)處理反復(fù)進(jìn)行上述步驟② ④,以數(shù)據(jù)流的方式完成所有功耗樣本的處理。2.根據(jù)權(quán)利要求1所述的安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法,其特征 在于所述步驟①中,功耗樣本包括功耗樣本集Sl和功耗樣本集S0,設(shè)功耗樣本數(shù)為η,η 為大于等于1的整數(shù),功耗樣本集Sl包含的功耗樣本記為XI,Χ2, Xi, &,其中 l^i^n ;單個功耗樣本包含m個時刻的功耗樣本值,m為大于1的整數(shù),功耗樣本Xi記 為xil,xi2, . . .,xij, . . .,xim,其中1 ( j < m;功耗樣本集SO包含的功耗樣本記為Y1, Y2,…,Yi,…,Yn,功耗樣本 Yi 記為 yil, yi2,…,yi j,…,yim。3.根據(jù)權(quán)利要求2所述的安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法,其特征 在于所述功耗樣本集在系統(tǒng)內(nèi)存中按照二維數(shù)組方式存儲,單個功耗樣本在不同時刻的 值按“列”存儲,不同功耗樣本在同一時刻的值按“行”存儲,即功耗樣本集Sl的第一行為 xll, x21, x31,…,xil,…,xnl,第二行為 xl2, x22, x32,…,xi2,…,xn2,依此類推, 第 i 行為 xli,x2i, x3i,. . . , xii, . . . , xni,第 m 行為 xlm, x2m, x3m, . . . , xim,. . . , xnm ;功 耗樣本集 SO 的第一行為 yll,y21, y31, ...,yil, ...,ynl,第二行為 yl2,y22, y32,..., yi2, . . . , yn2,依此類推,第 i 行為 yli, y2i, y3i, . . . , yii, . . . , yni,第 m 行為 ylm, y2m, y3m, . . . , yim, . . . , ynm。4.根據(jù)權(quán)利要求3所述的安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法,其特征 在于所述步驟①中,除功耗樣本外,在系統(tǒng)內(nèi)存中開辟一個長度為m的一維數(shù)組dm,用于 存儲功耗樣本集Sl和SO的均值之差。5.根據(jù)權(quán)利要求2或3或4所述的安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方 法,其特征在于所述步驟②中,先在流處理器的設(shè)備內(nèi)存中開辟用于存儲功耗樣本和均值 結(jié)果的存儲空間,即根據(jù)流處理器設(shè)備內(nèi)存的容量,分別開辟2個r行η列的二維數(shù)組,以 及1個長度為r的一維數(shù)組,其中r < m,2個二維數(shù)組分別記為gx和gy,長度為r的一維 數(shù)組記為dg ;2個r行η列的二維數(shù)組用于暫存功耗樣本,長度為r的數(shù)組用于存儲功耗樣 本的均值計算結(jié)果。6.根據(jù)權(quán)利要求5所述的安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法,其特征 在于所述步驟②和步驟③的詳細(xì)步驟為(1. 1復(fù)制輸入流當(dāng)執(zhí)行第s次迭代時,將功耗樣本集Sl和SO的第s個子塊分別復(fù)制 到流處理器設(shè)備內(nèi)存的gx和gy中,其中1彡s彡m/r ;1. 2在流處理器中創(chuàng)建大量獨立的并發(fā)線程按照兩級結(jié)構(gòu)組織所有的線程,第一級 為線程塊,第二級為單個獨立的線程,所有線程共分為r個線程塊,r個線程塊組成完整的 線程網(wǎng)格,每個線程塊負(fù)責(zé)計算兩個功耗樣本集在一個時刻的功耗均值之差;每個線程塊 共包括B個獨立并發(fā)線程,其中B為流處理器中線程塊所能支持的最大線程數(shù);按照這種線 程組織方式,每個線程塊被賦予一個索引號bx,且1 < bx < r ;線程塊中每個線程也被賦予 一個線程索引號tx,且1 < tx < B ;1. 3定義共享變量在流處理器的片內(nèi)共享內(nèi)存區(qū)域為每個線程塊開辟兩個長度為B 的一維數(shù)組,分別記為sx和sy,sx和sy可以被同一線程塊內(nèi)的任意線程訪問; 1. 4共享變量初始化將每個線程塊中sx與sy的所有元素初始化為0 ; 1.5面向設(shè)備內(nèi)存的并行累加在所有的線程塊中,每個線程做如下的累加操作SX [tx]=Iflfgxlb-.^-= gx[bx][tx] + gx[bx][tx+B] + gx[bx][tx+2B] + …+ gx[bx][tx+n-B];sy[tx] = 二V :-:'::::::··‘_ :-1) = gy[bx][tx] + gy[bx][tx+B] + gy[bx][tx+2B] + …+ gy[bx][tx+n-B],其中 sx [tx]和 sy [tx]分別表示 sx 和 sy 的第 tx 個元素,gx [bx] [tx+(i-l)B]和 gy[bx] [tx+(i-l)B]分別表示 gx 和 gy 中第 bx 行第 tx+(i_l)B 列的元素, 且1 < i < η/Β ;每個線程在累加操作完成之后進(jìn)行柵欄同步,確保B個線程的累加操作都 已完成,方可進(jìn)行后續(xù)操作;1.6面向共享內(nèi)存的并行累加在所有的線程塊中,共執(zhí)行Iog2B次累加操作,每步累 加的具體方法為在第i步累加中,只有線程索引號小于等于B/21的線程執(zhí)行有效操作,其 余的B-BAi個線程空轉(zhuǎn),其中1彡i彡Iog2B ;B/21個線程分別執(zhí)行如下累加操作,sx[tx]= sxttxl+sxttx+B^], sy[tx] = sy [tx]+sy [tx+B^1];每個線程在累加操作完成之后進(jìn)行 柵欄同步,確保B/21個線程的累加操作都已完成,方可進(jìn)行下一步的累加操作;在第Iog2B 步累加操作完成之后,sx[l]和sy[l]分別為gx和gy第bx行的累加和;1.7產(chǎn)生輸出流在每個線程塊中,線程索引號為1的線程執(zhí)行如下操作dg[bx]= (sx[l]-Sy[l])/n,即計算第bx行的均值之差,并將結(jié)果寫入到位于流處理器設(shè)備內(nèi)存的 數(shù)組dg中;同一線程塊中其余B-I個線程空轉(zhuǎn);1. 8讀出輸出流將數(shù)組dg中r個元素從流處理器設(shè)備內(nèi)存中復(fù)制到位于系統(tǒng)內(nèi)存的 dm中,且dm的起始位置為l+(s-l)r,即得到了第s次迭代的均值之差計算結(jié)果。
全文摘要
一種安全芯片抗功耗攻擊防護(hù)能力量化評估的加速方法,在對安全芯片進(jìn)行抗功耗攻擊防護(hù)能力量化評估時,對功耗樣本進(jìn)行以下處理①將功耗樣本以二維數(shù)組的方式存儲;②根據(jù)流處理器的設(shè)備內(nèi)存容量,將能夠完全容納在流處理器的設(shè)備內(nèi)存中的部分功耗樣本復(fù)制到流處理器設(shè)備內(nèi)存中;③按照不同時間點功耗均值并行計算以及同一時間點大量功耗值并行累加這兩級并行的方式進(jìn)行加速處理,計算出每個時間點的功耗均值;④將步驟③中流處理器計算得到的功耗均值結(jié)果讀出并存儲在系統(tǒng)主存中;⑤反復(fù)進(jìn)行上述步驟②~④,以數(shù)據(jù)流的方式完成所有功耗樣本的處理。本發(fā)明具有原理簡單、操作簡便、能夠大大提高功耗樣本的處理效率、從而加快整個評估速度。
文檔編號G06F21/00GK102073811SQ201010600460
公開日2011年5月25日 申請日期2010年12月22日 優(yōu)先權(quán)日2010年12月22日
發(fā)明者孫迎紅, 王志英, 童元滿, 陸洪毅 申請人:孫迎紅
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
会理县| 龙岩市| 临潭县| 柘荣县| 建昌县| 习水县| 平顺县| 南阳市| 陆河县| 巍山| 蓝田县| 鄄城县| 宜都市| 监利县| 清苑县| 宜兰市| 罗甸县| 自贡市| 嘉义市| 周口市| 夏津县| 石家庄市| 安平县| 宜章县| 额济纳旗| 随州市| 南宫市| 花莲市| 龙里县| 淄博市| 密山市| 承德市| 绥宁县| 石阡县| 新竹县| 彰武县| 循化| 吴忠市| 丰原市| 仲巴县| 合水县|