国产精品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>

      一種實現(xiàn)軟件條件分支功耗均衡的方法

      文檔序號:6624883閱讀:233來源:國知局
      一種實現(xiàn)軟件條件分支功耗均衡的方法
      【專利摘要】本發(fā)明實現(xiàn)了一種實現(xiàn)軟件條件分支功耗均衡的方法,并將其應(yīng)用于智能卡芯片的安全防護領(lǐng)域,消除了條件分支語句程序運行期間時間和功耗上的差異,隱藏和破壞了分支跳轉(zhuǎn)操作在功耗上的相關(guān)性,從而達到軟件防護簡單功耗分析攻擊的目的。本發(fā)明能夠有效地防御針對芯片的功耗攻擊,可應(yīng)用于高安全芯片的軟件安全性設(shè)計中。
      【專利說明】一種實現(xiàn)軟件條件分支功耗均衡的方法

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明主要應(yīng)用于智能卡安全領(lǐng)域,也可以適用于各種需要防御計時攻擊和簡單功耗攻擊的安全芯片中。

      【背景技術(shù)】
      [0002]智能卡(SmartCard),也叫IC卡,是一個使用集成電路工藝制造的帶有微處理芯片的、具有標(biāo)準(zhǔn)規(guī)格的卡片。
      [0003]隨著社會和科技的發(fā)展,智能卡的應(yīng)用越來與普及,給人們生活帶來巨大的方便。但是,自從1996年Kocher提出了差分功耗攻擊方法以來,業(yè)界對功耗攻擊方法進行了深入研宄。功耗(能量)分析攻擊的研宄,同時也給智能卡帶來了安全方面的威脅。惡意使用者可能通過對智能卡工作功耗的分析得到工作狀態(tài)信息,進而獲取智能卡的敏感信息。
      [0004]功耗(能量)分析攻擊已被公認為一種獲得智能卡芯片秘密信息的強有力工具,其基本原理是芯片設(shè)備的瞬時能量消耗與其所執(zhí)行的操作及操作的數(shù)據(jù)之間具有相關(guān)性。功耗分析攻擊,按照對側(cè)信息分析的原理,可以將其分為簡單能量分析(SPA)、差分能量分析(DPA)以及相關(guān)能量分析(CPA)等。
      [0005]舉例來說,通常高級語言的條件分支語句,如if-else,switch_case等,經(jīng)過編譯器編譯后,對應(yīng)的匯編代碼通常是條件跳轉(zhuǎn)指令。而對于絕大部分微處理器,條件跳轉(zhuǎn)指令在判斷條件成立和不成立時,對應(yīng)的指令周期數(shù)是不同的。指令中判斷條件不成立時,指令僅執(zhí)行判斷操作,判斷條件成立時,指令處理執(zhí)行判斷操作外,還要執(zhí)行跳轉(zhuǎn)操作。因此會造成同一條分支語句,由于分支條件的不同,導(dǎo)致指令運行時間和功耗上產(chǎn)生差異。通過這種差異,使用簡單功耗分析,就有可能分析出智能卡芯片的工作狀態(tài)、程序處理流程信息,帶來安全隱患。
      [0006]比如在增強型8051單片機中,條件跳轉(zhuǎn)指令JB和JNB,在判斷條件不成立時,該指令的執(zhí)行周期數(shù)為3,但判斷條件成立時,該指令的執(zhí)行周期為4。同樣,條件跳轉(zhuǎn)指令JC和JNC,在兩種不同條件下的執(zhí)行周期分別為2和3。ARM Cotex-MO處理器中,條件跳轉(zhuǎn)指令,如BNE、BEQ等,判斷條件不成立時,指令的執(zhí)行周期數(shù)為1,而判斷條件成立時,指令的執(zhí)行周期數(shù)為3。
      [0007]這些條件跳轉(zhuǎn)指令由于判斷條件不同引起的執(zhí)行時間上的差異,會體現(xiàn)在功耗曲線上,通過這種差異,使用簡單功耗分析可以分析出條件分支語句實際執(zhí)行的分支,從而獲取智能卡芯片的工作狀態(tài),或程序處理流程信息,帶來安全隱患。
      [0008]從上述信息可以看出,對于智能卡等產(chǎn)品,如何保護好卡片工作時的功耗信息非常重要。功耗信息通常與智能卡正在進行的操作有關(guān),比如智能卡芯片處理不同的指令會引起功耗的差異,這種差異規(guī)律性可以很容易地從功耗軌跡上看到。簡單功耗分析即根據(jù)功耗軌跡直接得到智能卡操作相關(guān)的信息,這些信息有可能泄露智能卡的關(guān)鍵技術(shù)。
      [0009]因此,必須實施相應(yīng)的防護技術(shù)來保護智能卡安全。由于功耗分析的基本原理是芯片設(shè)備的瞬時能量消耗與其所執(zhí)行的操作及操作的數(shù)據(jù)之間具有相關(guān)性,所以如果能夠隱藏或者破壞這種相關(guān)性,就會大大增強芯片防御功耗分析攻擊的能力。


      【發(fā)明內(nèi)容】

      [0010]本發(fā)明中,采用一種軟件分支均衡方法,將程序中分支判斷和跳轉(zhuǎn)操作的流程差異消除,隱藏了分支跳轉(zhuǎn)操作在時間上的相關(guān)性,對于針對分支跳轉(zhuǎn)語句功耗分析的攻擊,有一定的防御能力。
      [0011]本發(fā)明的內(nèi)容在于,實現(xiàn)了一種將條件判斷的分支語句轉(zhuǎn)換為分支處理程序地址的索引和調(diào)用,并將其應(yīng)用于智能卡芯片的安全防護領(lǐng)域,消除了分支差異產(chǎn)生的程序運行期間時間和功耗上的差異,隱藏和破壞了分支跳轉(zhuǎn)操作在功耗上的相關(guān)性,從而達到軟件防護簡單功耗分析攻擊和計時攻擊的目的。
      [0012]一種實現(xiàn)軟件分支功耗均衡的方法,通過建立分支處理程序地址和分支判斷條件的索引表,將條件判斷的跳轉(zhuǎn)操作,轉(zhuǎn)換為轉(zhuǎn)根據(jù)索引值查找并加載跳轉(zhuǎn)分支處理程序,對于所有的分支,以分支判斷條件作為索引值,先找到索引值的偏移,檢索到分支處理程序地址,讀出處理程序地址并通過分支處理程序的地址對其進行調(diào)用,加載程序并執(zhí)行將條件判斷的分支跳轉(zhuǎn)操作從而消除分支差異產(chǎn)生的運行時間和功耗上的差異。
      [0013]其中對條件分支語句進行轉(zhuǎn)換,具體實施步驟如下:
      [0014]I)將分支處理程序整理為函數(shù)或模塊,保證各個分支處理函數(shù)或模塊的操作流程的指令執(zhí)行周期和功耗外部特征曲線一致;
      [0015]2)建立索引表存儲分支處理程序地址,將各分支處理程序的地址提取出來,按照一定形式順序存儲到一塊內(nèi)存地址中;
      [0016]3)建立分支條件與索引號的對應(yīng)關(guān)系,將分支條件作為處理程序偏移地址的索引號,可以通過分支條件直接對應(yīng)到索引表的位置,該對應(yīng)關(guān)系應(yīng)該在操作上具有一致性;
      [0017]4)改寫分支處理程序,將分支語句和分支語句中的函數(shù)調(diào)用,換為通過索引號訪問函數(shù)地址,并通過函數(shù)地址調(diào)用函數(shù)。
      [0018]本發(fā)明中將條件判斷的分支跳轉(zhuǎn)操作,轉(zhuǎn)換為根據(jù)索引值查找并加載分支處理程序。對于所有的分支,都是分兩步:找到索引值的偏移,讀出處理程序地址,加載程序并執(zhí)行。以上步驟中,對應(yīng)的匯編指令包括帶偏移的數(shù)據(jù)傳輸指令和含目標(biāo)地址的直接跳轉(zhuǎn)指令,比如8051單片機中,對應(yīng)MOV指令和JMPOA+DPTR指令;ARM Cotex-MO中,對應(yīng)MOV指令和BX Rm指令,這類指令的執(zhí)行周期都是固定的。所以,通過這種轉(zhuǎn)換,可以消除條件分支間的差異。根據(jù)功耗攻擊的特點,如果各個分支跳轉(zhuǎn)和執(zhí)行時序和功耗統(tǒng)一的情況下,分支跳轉(zhuǎn)指令就不會產(chǎn)生的時序和功耗方面的差異。使用該發(fā)明的方法,可以破壞程序操作和芯片功耗之間的相關(guān)性,因此起到了對簡單功耗分析攻擊的防御效果。

      【專利附圖】

      【附圖說明】
      [0019]圖1常規(guī)的分支跳轉(zhuǎn)執(zhí)行流程
      [0020]圖2本發(fā)明中的分支跳轉(zhuǎn)執(zhí)行流程
      [0021]圖3本發(fā)明中分支跳轉(zhuǎn)索引表與分支處理程序映射關(guān)系圖

      【具體實施方式】
      [0022]下面結(jié)合附圖和【具體實施方式】對本發(fā)明技術(shù)方案做進一步詳細說明。
      [0023]圖1是常規(guī)的分支跳轉(zhuǎn)程序執(zhí)行流程,常規(guī)的分支跳轉(zhuǎn)程序執(zhí)行流程包括如下步驟:步驟101,設(shè)置條件判斷的變量值。步驟102,通過分支條件語句(如if-else)進行條件判斷,并轉(zhuǎn)向?qū)?yīng)的分支語句進行執(zhí)行,在此步驟中,由于判斷條件不同,條件判斷語句,有可能產(chǎn)生跳轉(zhuǎn)操作,也有可能不產(chǎn)生跳轉(zhuǎn)操作,所以會引起程序執(zhí)行時間和功耗上的差異。步驟103和104是不同的分支處理程序。
      [0024]本發(fā)明提出的新方法,將條件判斷的分支語句轉(zhuǎn)換為分支處理程序地址的索引和調(diào)用,消除了分支差異產(chǎn)生的程序運行期間時間和功耗上的差異。采用該方法后,分支跳轉(zhuǎn)程序執(zhí)行流程轉(zhuǎn)換為以下幾個步驟,如圖2所示:步驟201,設(shè)置條件判斷的變量值,這一步與常規(guī)的分支跳轉(zhuǎn)程序執(zhí)行流程一樣。步驟202,根據(jù)分支跳轉(zhuǎn)條件與分支處理程序地址的索引關(guān)系,通過分支跳轉(zhuǎn)條件查找到分支處理程序的地址。步驟203,通過分支處理程序地址,調(diào)用執(zhí)行分支處理程序。
      [0025]實現(xiàn)本發(fā)明中的分支跳轉(zhuǎn)執(zhí)行流程,需要按照以下步驟對條件分支語句進行轉(zhuǎn)換,具體實施步驟如下:
      [0026]I)編寫分支處理程序,將分支處理程序整理為函數(shù)或模塊。各個分支處理函數(shù)的操作流程,要保證指令執(zhí)行周期和功耗外部特征曲線一致;
      [0027]2)建立索引表存儲分支處理程序地址,將各分支處理程序的地址提取出來,按照一定形式(如數(shù)組)順序存儲到一塊內(nèi)存地址中,如圖3中步驟302所示;
      [0028]3)建立分支條件與索引號的對應(yīng)關(guān)系,將分支條件作為處理程序偏移地址的索引號,可以通過分支條件直接對應(yīng)到索引表的位置,該對應(yīng)關(guān)系應(yīng)該在操作上具有一致性(如數(shù)組下標(biāo)進行檢索),如圖3中步驟303所示;
      [0029]4)改寫分支處理程序,將分支語句和分支語句中的函數(shù)調(diào)用,換為通過索引號訪問函數(shù)地址,并通過函數(shù)地址調(diào)用函數(shù)。
      [0030]通過這種方式的轉(zhuǎn)換,所有的分支跳轉(zhuǎn)語句都對應(yīng)同樣的操作步驟,且執(zhí)行時序和功耗達成統(tǒng)一。
      [0031]以上所述,僅為本發(fā)明的較佳實例,用于幫助理解本發(fā)明的方法及其核心思想,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
      【權(quán)利要求】
      1.一種實現(xiàn)條件分支功耗均衡的方法,其特征在于: 建立條件分支處理程序地址和條件分支判斷條件的索引表,將條件判斷的跳轉(zhuǎn)操作,轉(zhuǎn)換為根據(jù)索引值查找并加載跳轉(zhuǎn)條件分支處理程序,對于所有的條件分支,以分支判斷條件作為索引值,先找到索引值的偏移,檢索到條件分支處理程序地址,讀出處理程序地址并通過條件分支處理程序的地址對其進行調(diào)用,加載程序并執(zhí)行,將條件判斷的分支跳轉(zhuǎn)操作從而消除條件分支差異產(chǎn)生的運行時間和功耗上的差異。
      2.如權(quán)利要求1所述的方法,其特征在于對條件分支語句進行轉(zhuǎn)換,具體實施步驟如下: 1)將條件分支處理程序整理為函數(shù)或模塊,保證各個條件分支處理函數(shù)或模塊的操作流程的指令執(zhí)行周期和功耗外部特征曲線一致; 2)建立索引表存儲條件分支處理程序地址,將各條件分支處理程序的地址提取出來,按照一定形式順序存儲到一塊內(nèi)存地址中; 3)建立分支條件與索引號的對應(yīng)關(guān)系,將分支條件作為處理程序偏移地址的索引號,可以通過分支條件直接對應(yīng)到索引表的位置; 4)改寫條件分支處理程序,將條件分支語句和條件分支語句中的函數(shù)調(diào)用,換為通過索引號訪問函數(shù)地址,并通過函數(shù)地址調(diào)用函數(shù)。
      3.如權(quán)利要求1或2所述的方法,其特征在于:可以使條件分支語句編譯后對應(yīng)的執(zhí)行周期數(shù)不定的匯編指令轉(zhuǎn)換為執(zhí)行周期數(shù)固定的匯編指令。
      【文檔編號】G06F21/77GK104463027SQ201410427294
      【公開日】2015年3月25日 申請日期:2014年8月27日 優(yōu)先權(quán)日:2014年8月27日
      【發(fā)明者】王赟, 于忠華, 楊念東, 陳波濤 申請人:北京中電華大電子設(shè)計有限責(zé)任公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1