国产精品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í)現(xiàn)保護(hù)方法

      文檔序號:7841120閱讀:197來源:國知局
      專利名稱:一種用于防御能量分析攻擊的密碼算法實(shí)現(xiàn)保護(hù)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種密碼算法實(shí)現(xiàn)的保護(hù)方法,尤其涉及一種用于防御能量分析攻擊的密碼算法實(shí)現(xiàn)保護(hù)方法,屬于信息技術(shù)安全領(lǐng)域。
      背景技術(shù)
      能量分析攻擊是一種新興的密碼分析方法。能量分析攻擊利用密碼設(shè)備執(zhí)行密碼運(yùn)算時(shí)的能量消耗與設(shè)備所執(zhí)行的操作或者所處理的數(shù)據(jù)之間的相關(guān)性實(shí)施密碼破解,具有攻擊成本低,破解效率高的特點(diǎn),已經(jīng)對智能卡、RFID等嵌入式密碼設(shè)備的安全性造成了嚴(yán)重的現(xiàn)實(shí)威脅。輕量級分組密碼是一類在資源受限的工作環(huán)境下應(yīng)用非常廣泛的分組密碼算法。輕量級分組密碼最大的特點(diǎn)在于分組長度以及密鑰長度相對較短,該特點(diǎn)使其更容易受到能量分析攻擊的威脅。分組密碼是將明文消息序列,劃分成長度為η的組,每組分別在密鑰的控制下變換成等長的輸出序列。分組密碼廣泛地應(yīng)用于電子支付、付費(fèi)電視以及電子護(hù)照等領(lǐng)域。在這些領(lǐng)域中,分組密碼大多基于智能卡、RFID等嵌入式的密碼設(shè)備實(shí)現(xiàn),而嵌入式的密碼設(shè)備在計(jì)算能力與存儲空間方面存在著嚴(yán)格的限制,一般稱其為資源受限的工作環(huán)境。輕量級分組密碼與其他非輕量級的分組密碼算法的區(qū)別在于其分組長度相對較小、密鑰長度相對較短,因此其加/解密過程對存儲空間、計(jì)算能力的要求較低。可見,輕量級分組密碼是特別適合資源受限的工作環(huán)境的一類分組密碼算法。近年來,側(cè)信道攻擊作為一種新型的密碼分析方法受到了產(chǎn)業(yè)界和學(xué)術(shù)界的廣泛關(guān)注,得到迅速發(fā)展。傳統(tǒng)的密碼分析將密碼實(shí)現(xiàn)視作黑盒子,只利用其輸入與輸出實(shí)施密碼破解;而側(cè)信道攻擊區(qū)別于傳統(tǒng)的密碼分析方法的顯著特征在于其不僅僅考慮密碼實(shí)現(xiàn)的輸入輸出,而是同時(shí)利用密碼實(shí)現(xiàn)在進(jìn)行密碼計(jì)算時(shí)泄露的時(shí)間信息、能量消耗信息或者電磁輻射信息等物理信息,輔助實(shí)施密碼破解。能量分析攻擊是一種利用密碼設(shè)備運(yùn)行時(shí)的能量消耗信息實(shí)施密鑰恢復(fù)的側(cè)信道攻擊方法。自從Kocher等人于1998年提出差分能量分析(Differential Power Analysis)以來,大量行之有效的能量分析攻擊方法被相繼提出,包括模板攻擊(Template Attack)、相關(guān)系數(shù)分析(CPA,Correlation Power Analysis)、基于隨機(jī)模型的攻擊 (Stochastic Model)、互信息分析(Mutual Information Analysis)、方差能量分析 (Variance Power Analysis)等。這些攻擊方法對嵌入式的密碼設(shè)備的實(shí)際安全性構(gòu)成了嚴(yán)重的威脅。鑒于能量分析攻擊對智能卡、RFID等嵌入式密碼設(shè)備造成的巨大威脅,學(xué)術(shù)界與產(chǎn)業(yè)界提出了大量針對能量分析攻擊的防御對策?;谲浖椒ǖ姆烙鶎Σ哂捎跓o需對嵌入式設(shè)備本身進(jìn)行重新設(shè)計(jì),所以具有設(shè)計(jì)周期短、部署成本低等優(yōu)點(diǎn)。軟件防御對策一般利用編碼技術(shù)(或者信息共享技術(shù))將易遭受能量分析攻擊的中間值表示為與之沒有統(tǒng)計(jì)相關(guān)性的值(即掩碼技術(shù)),或者在保證計(jì)算正確的前提下,隨機(jī)擾亂密碼算法的執(zhí)行流程,這些方法都能有效的降低能量消耗與目標(biāo)中間值的相關(guān)性,從而起到防御能量分析攻擊的作用。輕量級分組密碼的密鑰長度較短且其宿主嵌入式設(shè)備(如智能卡、RFID標(biāo)簽等) 往往沒有高安全等級的訪問控制機(jī)制,因此,很容易受到能量分析攻擊,必須被給予特別的保護(hù)。現(xiàn)有的防御對策在輕量級分組密碼中適用性較低。例如,掩碼技術(shù)的實(shí)現(xiàn)需要較大的時(shí)間和空間開銷,這種開銷對于資源受限的應(yīng)用環(huán)境而言是不現(xiàn)實(shí)的。而一些較高效的硬件對策,如雙柵預(yù)充電邏輯(Dual-rail Precharge Logic)等,其設(shè)計(jì)和部署成本較高, 應(yīng)用存在困難。

      發(fā)明內(nèi)容
      基于上述技術(shù)需求和困境,本發(fā)明目的在于提供一種用于防御能量分析攻擊的密碼算法實(shí)現(xiàn)保護(hù)方法,本發(fā)明是一種低成本、高性能、高安全性的適用于輕量級分組密碼的安全解決方案,提高輕量級分組密碼算法在能量分析攻擊下的物理安全性。需要指出的是, 該方法不僅僅適用于輕量級分組密碼,該方法對于其他的非輕量級分組密碼同樣有效,只是該方法對于輕量級分組密碼具有更好的適用性。能量分析攻擊利用算法中間值與其相應(yīng)能耗之間的相關(guān)性實(shí)施密鑰恢復(fù)。攻擊者猜測設(shè)備的密鑰,根據(jù)已知的明文或密文計(jì)算猜測中間值。之后對猜測中間值與攻擊者觀察記錄的能量消耗使用統(tǒng)計(jì)方法進(jìn)行分析,以驗(yàn)證密鑰猜測的正確性。一旦中間值與設(shè)備能耗的相關(guān)性被打破,攻擊者就無法利用這種相關(guān)性進(jìn)行恢復(fù)密鑰。本方法的主要思路就是打破算法中間值與設(shè)備能耗之間的統(tǒng)計(jì)相關(guān)性,使得不同中間值對應(yīng)的設(shè)備能耗基本相等,從而使攻擊者無法利用這種相關(guān)性恢復(fù)設(shè)備的密鑰。本發(fā)明的技術(shù)方案為一種用于防御能量分析攻擊的密碼算法實(shí)現(xiàn)保護(hù)方法,其步驟為1)對需要保護(hù)的密碼算法的輸入值進(jìn)行比特平衡編碼將輸入數(shù)據(jù)流中比特值為0的數(shù)據(jù)比特編碼為比特01,將比特值為1的數(shù)據(jù)比特編碼為比特10 ;2)利用比特平衡編碼后的數(shù)據(jù)進(jìn)行密碼運(yùn)算,設(shè)密碼算法為η比特分組密碼算法;其中a)對于密碼運(yùn)算中的比特異或操作,首先將Encode(An)與一比特串(01)廣· (01) n進(jìn)行異或操作,然后將得到的異或值與Encode (Bn)進(jìn)行異或操作;Encode (An)為η比特?cái)?shù)據(jù)A經(jīng)比特平衡編碼后的值,Encode (Bn)為η比特?cái)?shù)據(jù)B經(jīng)比特平衡編碼后的值;b)對于密碼運(yùn)算中的比特置換操作,將比特平衡編碼后的第2i,2i+l兩個(gè)比特與第2j,2j+l兩個(gè)比特進(jìn)行置換;其中,i、j分別為編碼前需要置換的第i、j比特;C)對于密碼運(yùn)算中的比特循環(huán)移位操作,將比特平衡編碼后的數(shù)據(jù)進(jìn)行ail比特循環(huán)移位,其中,m為編碼前要進(jìn)行的比特循環(huán)移位數(shù);3)對步驟2)運(yùn)算的輸出值進(jìn)行解碼,即以順序輸出的兩比特為一組,取每組前一比特的值作為輸出值。如權(quán)利要求1所述的方法,其特征在于設(shè)需保護(hù)的密碼運(yùn)算輪序列為M,所述輸入值為密碼算法中第N輪的密碼運(yùn)算中間值。一種用于防御能量分析攻擊的密碼算法實(shí)現(xiàn)保護(hù)方法,其步驟為1)對需要保護(hù)的密碼算法的輸入值進(jìn)行比特平衡編碼,將輸入數(shù)據(jù)流中比特值為0的數(shù)據(jù)編碼為比特10,將比特征值為1的數(shù)據(jù)編碼為比特01 ;2)利用比特平衡編碼后的數(shù)據(jù)進(jìn)行密碼運(yùn)算,設(shè)密碼算法為η比特分組密碼算法;其中a)對于密碼運(yùn)算中的比特異或操作,首先將Encode(An)與一比特串(10)廣· (10)n進(jìn)行異或操作,然后將得到的異或值與Encode (Bn)進(jìn)行異或操作;Encode (An)為η比特?cái)?shù)據(jù)A經(jīng)比特平衡編碼后的值,Encode (Bn)為η比特?cái)?shù)據(jù)B經(jīng)比特平衡編碼后的值;b)對于密碼運(yùn)算中的比特置換操作,將編碼后的第2i,2i+l兩個(gè)比特與第2j,2j+l兩個(gè)比特進(jìn)行置換;其中,i、j分別為編碼前需要置換的第i、j比特;c)對于密碼運(yùn)算中的比特循環(huán)移位操作,將比特平衡編碼后的數(shù)據(jù)進(jìn)行an比特循環(huán)移位,其中,m為編碼前要進(jìn)行的比特循環(huán)移位數(shù);3)對步驟2~)運(yùn)算的輸出值進(jìn)行解碼,即以順序輸出的兩比特為一組,取每組后一比特的值作為輸出值。進(jìn)一步的,設(shè)需保護(hù)的密碼運(yùn)算輪序列為M,所述輸入值為密碼算法中第N輪的密碼運(yùn)算中間值。進(jìn)一步的,對于密碼運(yùn)算中的S盒代換操作,如果輸入S盒的數(shù)據(jù)是比特平衡編碼,則首先對S盒查找表進(jìn)行變換,生成新的S盒查找表S',使得S' [Encode(An)]=Encode (S[An]);然后根據(jù)輸入數(shù)據(jù)查找表S',得到S盒代換操作輸出數(shù)據(jù);其中,Encode表示對數(shù)據(jù)進(jìn)行比特平衡編碼的操作,S[An]表示以AJt為輸入得到的S盒代換操作的輸出,An表示η比特未經(jīng)編碼的數(shù)據(jù)。進(jìn)一步的,如果輸入S盒的數(shù)據(jù)是未經(jīng)過編碼的數(shù)據(jù),則首先計(jì)算新的S盒查找表S “,使得S “ [An] = Encode (S [An]),之后根據(jù)S “進(jìn)行S盒查表操作。進(jìn)一步的,所述數(shù)據(jù)A、B可以為任意比特長度。本方法通過對密碼算法的執(zhí)行過程添加適當(dāng)?shù)木幋a和解碼步驟完成對密碼算法中間值的保護(hù)。首先,在算法開始之前,對所有參加運(yùn)算的數(shù)據(jù),包括明文、密鑰以及可能的初始向量做編碼操作。之后在算法運(yùn)行過程中使用編碼后的數(shù)據(jù)與對應(yīng)的操作,按照密碼算法的步驟進(jìn)行密碼計(jì)算,完成加解密過程。在算法結(jié)束時(shí),對編碼后的結(jié)果數(shù)據(jù)進(jìn)行解碼操作,得到算法正常的輸出。本方法只是對密碼算法的中間值進(jìn)行了編碼以保證其不泄露信息,并不改變算法的輸入與輸出,保證算法運(yùn)行結(jié)果正確。在本方法中使用的編碼解碼方法是比特平衡編碼。比特平衡編碼比特平衡編碼,即通過對算法中間值進(jìn)行編碼,使不同的中間值具有相同的漢明重量。具體方法是對算法中間值的每一個(gè)比特使用兩個(gè)互補(bǔ)比特進(jìn)行編碼,即使用10兩個(gè)比特對比特1進(jìn)行編碼,使用01兩個(gè)比特對比特0進(jìn)行編碼。對一個(gè)比特?cái)?shù)據(jù)的編碼表見表1。用V表示η比特的算法中間值,V[i]表示中間值V的第i個(gè)比特,V'表示經(jīng)過編碼的中間值,V' [j]表示編碼之后的中間值的第j個(gè)比特。編碼規(guī)則以及漢明重量變化表示如下V = V
      I V[l] I V[2] | |· · · I ν[η-2] | |V[n_l]F' = F
      ||F
      ||F[1]||F[1]||F[2]||F[2]||... 11 V[n-2] 11 V[n-2] 11 V[n-l] 11 V[n-l]HW(V) = V
      +V[l]+V[2]+. . . | V[n-2]+V[n_l]
      權(quán)利要求
      1.一種用于防御能量分析攻擊的密碼算法實(shí)現(xiàn)保護(hù)方法,其步驟為1)對需要保護(hù)的密碼算法的輸入值進(jìn)行比特平衡編碼將輸入數(shù)據(jù)流中比特值為0的數(shù)據(jù)比特編碼為比特01,將比特值為1的數(shù)據(jù)比特編碼為比特10 ;2)利用比特平衡編碼后的數(shù)據(jù)進(jìn)行密碼運(yùn)算,設(shè)密碼算法為η比特分組密碼算法;其中a)對于密碼運(yùn)算中的比特異或操作,首先將Encode(An)與一比特串(01)Γ..(01)η 行異或操作,然后將得到的異或值與Encode(Bn)進(jìn)行異或操作;Encode (An)為η比特?cái)?shù)據(jù) A經(jīng)比特平衡編碼后的值,Encode (Bn)為η比特?cái)?shù)據(jù)B經(jīng)比特平衡編碼后的值;b)對于密碼運(yùn)算中的比特置換操作,將比特平衡編碼后的第2i,2 +1兩個(gè)比特與第 2j,2j+l兩個(gè)比特進(jìn)行置換;其中,i、j分別為編碼前需要置換的第i、j比特;c)對于密碼運(yùn)算中的比特循環(huán)移位操作,將比特平衡編碼后的數(shù)據(jù)進(jìn)行an比特循環(huán)移位,其中,m為編碼前要進(jìn)行的比特循環(huán)移位數(shù);3)對步驟幻運(yùn)算的輸出值進(jìn)行解碼,即以順序輸出的兩比特為一組,取每組前一比特的值作為輸出值。
      2.如權(quán)利要求1所述的方法,其特征在于設(shè)需保護(hù)的密碼運(yùn)算輪序列為M,所述輸入值為密碼算法中第N輪的密碼運(yùn)算中間值。
      3.如權(quán)利要求1或2所述的方法,其特征在于對于密碼運(yùn)算中的S盒代換操作,如果輸入S盒的數(shù)據(jù)是比特平衡編碼,則首先對S盒查找表進(jìn)行變換,生成新的S盒查找表S',使得S' [Encode(An)] =Encode (S [An]);然后根據(jù)輸入數(shù)據(jù)查找表S',得到S盒代換操作輸出數(shù)據(jù);其中,Encode表示對數(shù)據(jù)進(jìn)行比特平衡編碼的操作,S[An]表示以An作為輸入得到的S盒代換操作的輸出,An表示η比特未經(jīng)編碼的數(shù)據(jù)。
      4.如權(quán)利要求1或2所述的方法,其特征在于如果輸入S盒的數(shù)據(jù)是未經(jīng)過編碼的數(shù)據(jù),則首先計(jì)算新的S盒查找表S",使得S" [AJ = Encode (S [An]),之后根據(jù)S"進(jìn)行S 盒查表操作。
      5.如權(quán)利要求1所述的方法,其特征在于所述數(shù)據(jù)A、B可以為任意比特長度。
      6.一種用于防御能量分析攻擊的密碼算法實(shí)現(xiàn)保護(hù)方法,其步驟為1)對需要保護(hù)的密碼算法的輸入值進(jìn)行比特平衡編碼,將輸入數(shù)據(jù)流中比特值為O的數(shù)據(jù)編碼為比特10,將比特征值為1的數(shù)據(jù)編碼為比特01 ;2)利用比特平衡編碼后的數(shù)據(jù)進(jìn)行密碼運(yùn)算,設(shè)密碼算法為η比特分組密碼算法;其中a)對于密碼運(yùn)算中的比特異或操作,首先將Encode(An)與一比特串(10)?!ぁ?10)η 行異或操作,然后將得到的異或值與Encode(Bn)進(jìn)行異或操作;Encode (An)為η比特?cái)?shù)據(jù) A經(jīng)比特平衡編碼后的值,Encode (Bn)為η比特?cái)?shù)據(jù)B經(jīng)比特平衡編碼后的值;b)對于密碼運(yùn)算中的比特置換操作,將編碼后的第2i,2i+l兩個(gè)比特與第2j,2j+l兩個(gè)比特進(jìn)行置換;其中,i、j分別為編碼前需要置換的第i、j比特;c)對于密碼運(yùn)算中的比特循環(huán)移位操作,將比特平衡編碼后的數(shù)據(jù)進(jìn)行an比特循環(huán)移位,其中,m為編碼前要進(jìn)行的比特循環(huán)移位數(shù);3)對步驟幻運(yùn)算的輸出值進(jìn)行解碼,即以順序輸出的兩比特為一組,取每組后一比特的值作為輸出值。
      7.如權(quán)利要求6所述的方法,其特征在于設(shè)需保護(hù)的密碼運(yùn)算輪序列為M,所述輸入值為密碼算法中第N輪的密碼運(yùn)算中間值。
      8.如權(quán)利要求6或7所述的方法,其特征在于對于密碼運(yùn)算中的S盒代換操作,如果輸入S盒的數(shù)據(jù)是比特平衡編碼,則首先對S盒查找表進(jìn)行變換,生成新的S盒查找表S',使得S' [Encode(An)] =Encode (S [An]);然后根據(jù)輸入數(shù)據(jù)查找表S',得到S盒代換操作輸出數(shù)據(jù);其中,Encode表示對數(shù)據(jù)進(jìn)行比特平衡編碼的操作,S[An]表示以An作為輸入得到的S盒代換操作的輸出,An表示η比特未經(jīng)編碼的數(shù)據(jù)。
      9.如權(quán)利要求6或7所述的方法,其特征在于如果輸入S盒的數(shù)據(jù)是未經(jīng)過編碼的數(shù)據(jù),則首先計(jì)算新的S盒查找表S",使得S" [An] =Encode (S [An]),之后根據(jù)S"進(jìn)行S 盒查表操作。
      10.如權(quán)利要求6所述的方法,其特征在于所述數(shù)據(jù)A、B可以為任意比特長度。
      全文摘要
      本發(fā)明公開了一種用于防御能量分析攻擊的密碼算法實(shí)現(xiàn)保護(hù)方法,屬于信息技術(shù)安全領(lǐng)域。本方法通過對密碼算法的執(zhí)行過程添加適當(dāng)?shù)木幋a和解碼步驟完成對密碼算法中間值的保護(hù),首先,在算法開始之前,對所有參加運(yùn)算的數(shù)據(jù),包括明文、密鑰以及可能的初始向量做編碼操作;之后在算法運(yùn)行過程中使用編碼后的數(shù)據(jù)與對應(yīng)的操作,按照密碼算法的步驟進(jìn)行密碼計(jì)算,完成加解密過程;在算法結(jié)束時(shí),對編碼后的結(jié)果數(shù)據(jù)進(jìn)行解碼操作,得到算法正常的輸出。本方法只是對密碼算法的中間值進(jìn)行了編碼以保證其不泄露信息,并不改變算法的輸入與輸出,保證算法運(yùn)行結(jié)果正確;同時(shí)可以獲得比掩碼防御措施更高的安全性,性能開銷也更小。
      文檔編號H04L9/08GK102571331SQ20121002685
      公開日2012年7月11日 申請日期2012年2月7日 優(yōu)先權(quán)日2012年2月7日
      發(fā)明者劉繼業(yè), 周永彬, 韓陽 申請人:中國科學(xué)院軟件研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1