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

      KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法

      文檔序號:7798860閱讀:384來源:國知局
      KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法
      【專利摘要】本發(fā)明公開了一種KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,包括下述步驟:S1、通過代數(shù)標(biāo)準(zhǔn)型轉(zhuǎn)換,將輸入4比特轉(zhuǎn)換為輸出4比特的布爾運算方程組;S2、將S1步驟輸出的比特值再按照字節(jié)分組,合計8個字節(jié),循環(huán)左移兩個字節(jié),再輸出到下一步;S3、將S2步驟的輸出進(jìn)行bitslicing化的線性擴散操作,輸出為KLEIN輪函數(shù)最終輸出,將作為下一輪S1的輸入值;S4、針對KLEIN不同密鑰長度,重復(fù)步驟S1、S2、S3,直至獲取相應(yīng)完整加密輸出值。本發(fā)明使得KLEIN算法能通過Bitslicing方式對Timing和Cache等邊界信道攻擊方式進(jìn)行防御。同時分別基于讀取和存儲操作進(jìn)行相應(yīng)的優(yōu)化,從而降低了算法在MixNibbles步驟上的計算復(fù)雜度。
      【專利說明】KLE IN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及密碼算法的【技術(shù)領(lǐng)域】,特別涉及一種KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法。
      【背景技術(shù)】
      [0002]隨著物聯(lián)網(wǎng)(Internet of Things)應(yīng)用的不斷發(fā)展,相關(guān)信息安全問題也得到了越來越多的重視。輕量級密碼學(xué)算法,特別是輕量級分組密碼算法,由于可以在低功耗環(huán)境下保證數(shù)據(jù)的機密性和完整性,在物聯(lián)網(wǎng)安全中起著非常重要的作用。由于密碼學(xué)算法分析與設(shè)計技術(shù)的成熟,采用傳統(tǒng)密碼學(xué)分析方法對于相關(guān)應(yīng)用的實際威脅往往較小,但攻擊者可以通過能量、時間或存儲上所產(chǎn)生的邊界信道信息進(jìn)行攻擊,在實際中往往更加具有威脅性。
      [0003]愛特梅爾(ATMEL)公司設(shè)計并制造的AVR系列微處理器具有低功耗、成本低、開發(fā)環(huán)境友善等優(yōu)點,在物聯(lián)網(wǎng)領(lǐng)域得到了廣泛的應(yīng)用。在RFIDSec2011會議上,Gong等人提出了一種新的面向軟件實現(xiàn)的輕量級分組密碼算法KLEIN (在荷蘭語中表示“mini”的意思)。如圖1所不,KLEIN算法基于Substitution-Permutation Network結(jié)構(gòu)加以設(shè)計,分組長度固定為64比特。算法密鑰長度可選擇64、80和96比特,但需要不同迭代輪數(shù)為12、16和20輪,對應(yīng)名稱為KLEIN-64/80/96。為了達(dá)到受限環(huán)境下軟件實現(xiàn)的高效性,KLEIN算法盡可能的采用了面向字節(jié)的處理模式。在算法的非線性模塊上,KLEIN采用了具有自反性質(zhì)的4比特S盒,使得算法僅需要付出一個S盒的代價來實現(xiàn)加解密運算。在擴散模塊上,KLEIN將AES的MixColumns函數(shù)變形為算法中的MixNibbles函數(shù),同時與面向字節(jié)的循環(huán)左移函數(shù)RotateNibbles相結(jié)合。這種設(shè)計思路既保證了 KLEIN算法的軟硬件效率,又繼承了 MixColumns函數(shù)最大距離碼(MDS)特性。在密鑰調(diào)度模塊上,KLEIN選擇了比較復(fù)雜的處理方法,從而保證基于KLEIN的哈希函數(shù)也具有較高的安全性。通過典型傳感器硬件平臺TelosB和IRIS上大量的實驗數(shù)據(jù)分析,KLEIN算法在軟件實現(xiàn)上比現(xiàn)有輕量級分組密碼算法具有一定的優(yōu)勢。在硬件開銷上,
      [0004]Synopsis軟件綜合輸出結(jié)果表明三種密鑰長度的KLEIN算法的硬件實現(xiàn)開銷都低于1530個門電路。上述結(jié)果表明KLEIN算法在軟硬件實現(xiàn)上均適用于WSN或RFID。在嵌入式密碼算法實現(xiàn)上,攻擊者往往采用邊界信道的方式對密碼算法所使用的密鑰進(jìn)行恢復(fù)攻擊。算法在不同密鑰下的時間、cache存儲特征等邊界信道都已在實際中證明能夠被攻擊者所利用。對于KLEIN分組密碼算法而言,如果要在實際環(huán)境中加以使用,那么抵抗Timing和Cache邊界信道攻擊是必須考慮的安全因素。
      [0005]Bitslicing實現(xiàn)技術(shù)最初用于DES分組加密算法的抗邊界信道保護。在bitslicing實現(xiàn)中,每一個輸入分組都將基于比特的方式來進(jìn)行計算操作。由于每一個比特的處理均由相同的處理步驟得到最終輸出,算法實現(xiàn)在抵抗Timing和Cache邊界信道攻擊上具有非常好的安全性。雖然在安全性上得到提高,但由于bitslicing技術(shù)將以往基于分組的計算操作轉(zhuǎn)變?yōu)榛诒忍?,在軟件實現(xiàn)上將會大大增加計算復(fù)雜度。因此往往只用于高性能并行化設(shè)備上的分組密碼算法抗邊界信道攻擊實現(xiàn)。由于物聯(lián)網(wǎng)設(shè)備價格低廉,設(shè)備的計算與存儲開銷均受限制,如何在相應(yīng)的低功耗設(shè)備上給出分組密碼算法的抗Timing或Cache邊界信道攻擊實現(xiàn),在當(dāng)前學(xué)術(shù)界與工業(yè)界仍是熱點研究問題。在已公開發(fā)表文獻(xiàn)和專利中,尚未有針對KLEIN的抗Timing或Cache邊界信道攻擊實現(xiàn)。

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

      [0006]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種針對KLEIN加密算法的AVR環(huán)境下高速抗timing和cache的保護方法。
      [0007]本發(fā)明的目的通過下述技術(shù)方案實現(xiàn):
      [0008]KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,包括下述步驟:
      [0009]Sl、4比特S盒Bitslicing方法=KLEIN的4比特置換盒是算法唯一的非線性處理步驟,用于將待加密數(shù)據(jù)轉(zhuǎn)換為比特格式,與輪密鑰逐比特異或后按照每4比特作為一個分組輸入KLEIN所選用的4比特S盒,該S盒的Bitslicing操作首先通過代數(shù)標(biāo)準(zhǔn)型轉(zhuǎn)換,將輸入4比特轉(zhuǎn)換為輸出4比特的布爾運算方程組,故轉(zhuǎn)換為4個布爾函數(shù)的形式;
      [0010]S2,RotateNibbles步驟法:將SI步驟輸出的比特值再按照字節(jié)分組,合計8個字節(jié),循環(huán)左移兩個字節(jié),再輸出到下一步;由于該步驟基于字節(jié)進(jìn)行運算,并且與數(shù)據(jù)比特值完全無關(guān),因此不需要進(jìn)行Bitslicing操作;
      [0011]S3、MixNibbles 步驟 Bitslicing 方法:MixNibbles 步驟將 S2 步驟的輸出進(jìn)行線性擴散操作,輸出為KLEIN輪函數(shù)最終輸出,將作為下一輪SI的輸入值,即首先將MixNibbles當(dāng)中所用到的GF上的乘法運算均轉(zhuǎn)換為若干次查表運算與異或運算相結(jié)合的結(jié)果,基于該矩陣運算的特點,給出了每一個字節(jié)運算的布爾函數(shù)表達(dá)式;
      [0012]S4、針對KLEIN不同密鑰長度,重復(fù)步驟S1、S2、S3,直至獲取相應(yīng)完整加密輸出值。
      [0013]優(yōu)選的,步驟SI中采用了基于讀取特性的操作優(yōu)化,在原始操作中,每次產(chǎn)生一個比特的輸出后,再對下一個比特進(jìn)行操作,需要重新讀取整個字節(jié)。
      [0014]優(yōu)選的,采用讀取優(yōu)化方法是在讀取一個比特的數(shù)據(jù)后,進(jìn)行相應(yīng)的Bitslicing計算,然后在該比特數(shù)據(jù)寫回存儲器之前將所有與該字節(jié)變化相關(guān)的比特進(jìn)行更新,減少數(shù)據(jù)字節(jié)重復(fù)讀取的次數(shù)。
      [0015]優(yōu)選的,針對S3步驟當(dāng)中數(shù)據(jù)存儲操作頻繁,采用了基于存儲特性的操作優(yōu)化,由于KLEIN加密分組為8字節(jié),因此可以通過將加密輸入輸出數(shù)據(jù)在存儲器中集中排列的方式,由于AVR匯編中低位地址已經(jīng)足夠訪問全部8字節(jié)空間,使得存儲的高位地址在存儲過程中不需要改變,減少Bitslicing操作中對數(shù)據(jù)進(jìn)行存儲時對地址進(jìn)行訪問的次數(shù)。
      [0016]優(yōu)選的,步驟SI中,KLEIN的S盒的bitslicing實現(xiàn)如下:
      [0017]y0=l+x0+xl+x0x2+xlx2+x0xlx2+x3+xlx3+x0xlx3
      [0018]yl=l+x0+x2+xlx2+x3+xlx3+x0xlx3+x2x3
      [0019]y2=l+xl+x2+x0x2+xlx2+x0xlx2+x0x3+x0x2x3+x1x2x3
      [0020]y3=xl+x0x2+x3+x0x3+x0xlx3+x1x2x3[0021]其中(xO,xl, x2, x3)和(yO,yl, y2, y3)分別為輸入值X和Y的從低到高4個比特。
      [0022]優(yōu)選的,步驟S3中,MixNibbles步驟的Bitslicing方法,將GF上的乘2轉(zhuǎn)換為字節(jié)布爾運算操作,再通過乘2運算構(gòu)造其他元素的乘法運算。
      [0023]優(yōu)選的,MixNibbles步驟每個輸入輸出字節(jié)的對應(yīng)計算可轉(zhuǎn)換為如下布爾運算表達(dá)式:
      [0024]bij I 0=a (i) 4j | 7 ? a (i+1) 4j | 0 ? a (i+1) 4j | 7 ? a (i+2) 4j | 0 ? a (i+3) 4 j | 0 ;
      [0025]bij I l=a (i) 4j | 0 ? a (i) 4j | 7 ? a (i+1) 4j | 0 ? a (i+1) 4j | I ? a (i+1) 4j | 7 ?
      [0026]a (i+2) 4 j I ? a (i+3) 4 j | I ;
      [0027]bij |2=a(i)4j 11 ? a (i+1) 4 j 11 ? a(i+l)4j |2 ? a(i+2)4j |2 ? a(i+3)4j |2 ;
      [0028]bij I 3=a (i) 4j | 2 ? a (i) 4j | 7 ? a (i+1) 4j | 2 ? a (i+1) 4j | 3 ? a (i+1) 4j | 7 ?
      [0029]a (i+2) 4 j 3 ? a (i+3) 4 j | 3 ;
      [0030]bij I 4=a (i) 4j | 3 ? a (i) 4j | 7 ? a (i+1) 4j | 3 ? a (i+1) 4j | 4 ? a (i+1) 4j | 7 ?[0031 ] a (i+2) 4 j 4 ? a (i+3) 4 j | 4 ;
      [0032]bij I 5=a (i) 4j | 4 ? a (i+1) 4j | 4 ? a (i+1) 4j | 5 ? a (i+2) 4j | 5 ? a (i+3) 4 j | 5 ;
      [0033]bij |6=a(i)4j |5 ? a(i+l)4j |5 ? a(i+l)4j |6 ? a(i+2)4j |6 ? a(i+3)4j |6 ;
      [0034]bij |7=a(i)4j |6 ? a(i+l)4j |6 ? a(i+l)4j |7 ? a(i+2)4j |7 ? a(i+3)4j |7 ;
      [0035]其中1、j代表所在字節(jié)的矩陣行、列值,0-7表示字節(jié)內(nèi)比特位置,O為
      [0036]最低位,7為最高位。
      [0037]優(yōu)選的,步驟S4中,針對KLEIN-64/80/96不同密鑰長度,分別重復(fù)SI至S3的輪數(shù)為12/14/16輪,獲得相應(yīng)完整加密輸出值。
      [0038]本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點及效果:
      [0039]本發(fā)明從AVR微處理器的特點出發(fā),基于AVR ASM語言給出了面向物聯(lián)網(wǎng)
      [0040]應(yīng)用的輕量級分組加密算法KLEIN的bitslicing實現(xiàn)級及相關(guān)優(yōu)化方法。在實現(xiàn)過程中,本發(fā)明首先針對Sbox的ANF表達(dá)式,給出了 bitslicing下的優(yōu)化處理方法。其次本發(fā)明分別基于讀取和存儲操作進(jìn)行相應(yīng)的優(yōu)化,降低了算法在MixNibbles步驟上的計算復(fù)雜度,從而使得KLEIN算法能通過Bitslicing方式對Timing和Cache等邊界信道攻擊方式進(jìn)行防御。從AVR平臺實際試驗結(jié)果來看,優(yōu)化后的KLEIN算法bitslicing實現(xiàn)在AVR微處理器平臺下具備可實用性。
      【專利附圖】

      【附圖說明】
      [0041]圖1是KLEIN算法描述不意圖;
      [0042]圖2是本發(fā)明的流程圖。
      【具體實施方式】
      [0043]下面結(jié)合實施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實施方式不限于此。
      [0044]實施例
      [0045]本實施例從AVR微處理器的特點出發(fā),基于AVR ASM語言給出了面向物聯(lián)網(wǎng)應(yīng)用的輕量級分組加密算法KLEIN的bitslicing實現(xiàn)級及相關(guān)優(yōu)化方法。在實現(xiàn)過程中,首先針對Sbox的ANF表達(dá)式,給出了 bitslicing下的優(yōu)化處理方法。其次分別基于讀取和存儲操作進(jìn)行相應(yīng)的優(yōu)化,降低了算法在MixNibbles步驟上的計算復(fù)雜度,從而使得KLEIN算法能通過Bitslicing方式對Timing和Cache等邊界信道攻擊方式進(jìn)行防御。從AVR平臺實際試驗結(jié)果來看,優(yōu)化后的KLEIN算法bitslicing實現(xiàn)在AVR微處理器平臺下具備可實用性。如圖2所示,本實施例針對KLEIN加密算法的avr環(huán)境下高速抗timing和cache的保護方法具體為:
      [0046]1、4 比特 S 盒 Bitslicing 方法
      [0047]在分組密碼算法中,S盒往往作為唯一的非線性構(gòu)件,實現(xiàn)算法在迭代若干輪數(shù)之后的抗密碼學(xué)分析能力。在軟件或硬件實現(xiàn)上,S盒運算往往采用查表法(Look-UPTable,LUT)的形式,從而加快加解密運算的速度。但在邊界信道攻擊中,由于不同的S盒輸入會對查表時間造成影響(例如排在LUT表前面的查詢速度快一點,排在后面的速度相對會慢一點)。攻擊者可以通過timing或cache所泄漏的邊界信道信息進(jìn)行密鑰的恢復(fù)。因而在S盒的實現(xiàn)上,我們可以通過Bitslicing的方式來避免查表所造成的時間或存儲差異。常用的S盒bitslicing方法就是將其轉(zhuǎn)換為布爾運算表達(dá)式的方式(AlgebraicNormalForm, ANF)。由于KLEIN所用的S盒為4比特輸入輸出(如表1所示),因此可以轉(zhuǎn)換為4個布爾函數(shù)的形式。根據(jù)ANF轉(zhuǎn)換,可以得到KLEIN的S盒的bitslicing實現(xiàn)如下:
      [0048]y0=l+x0+xl+x0x2+xlx2+x0xlx2+x3+xlx3+x0xlx3
      [0049]yl=l+x0+x2+xlx2+x3+xlx3+x0xlx3+x2x3
      [0050]y2=l+xl+x2+x0x2+xlx2+x0xlx2+x0x3+x0x2x3+x1x2x3
      [0051]y3=xl+x0x2+x3+x0x3+x0xlx3+x1x2x3
      [0052]其中(xO, xl, x2, x3)和(yO, yl, y2, y3)分別為輸入值X和Y的從低到高4個比特。ANF表達(dá)式中的加法與乘法運 算均為二進(jìn)制上的AND和XOR運算。
      [0053]表1KLEIN4 比特 S 盒
      [0054]
      【權(quán)利要求】
      1.KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,其特征在于,包括下述步驟: 51、4比特S盒Bitslicing方法=KLEIN的4比特置換盒是算法唯一的非線性處理步驟,用于將待加密數(shù)據(jù)轉(zhuǎn)換為比特格式,與輪密鑰逐比特異或后按照每4比特作為一個分組輸入KLEIN所選用的4比特S盒,該S盒的Bitslicing操作首先通過代數(shù)標(biāo)準(zhǔn)型轉(zhuǎn)換,將輸入4比特轉(zhuǎn)換為輸出4比特的布爾運算方程組,故轉(zhuǎn)換為4個布爾函數(shù)的形式; 52、RotateNibbles步驟法:將SI步驟輸出的比特值再按照字節(jié)分組,合計8個字節(jié),循環(huán)左移兩個字節(jié),再輸出到下一步;由于該步驟基于字節(jié)進(jìn)行運算,并且與數(shù)據(jù)比特值完全無關(guān),因此不需要進(jìn)行Bitslicing操作; 53、MixNibbles步驟Bitslicing方法:MixNibbles步驟將S2步驟的輸出進(jìn)行線性擴散操作,輸出為KLEIN輪函數(shù)最終輸出,將作為下一輪SI的輸入值,即首先將MixNibbles當(dāng)中所用到的GF上的乘法運算均轉(zhuǎn)換為若干次查表運算與異或運算相結(jié)合的結(jié)果,基于該矩陣運算的特點,給出了每一個字節(jié)中逐比特運算的布爾函數(shù)表達(dá)式; 54、針對KLEIN不同密鑰長度,重復(fù)步驟S1、S2、S3,直至獲取相應(yīng)完整加密輸出值。
      2.根據(jù)權(quán)利要求1所述的KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,其特征在于,步驟SI中采用了基于讀取特性的操作優(yōu)化,在原始操作中,每次產(chǎn)生一個比特的輸出后,再對下一個比特進(jìn)行操作,需要重新讀取整個字節(jié)。
      3.根據(jù)權(quán)利要求2所述的KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,其特征在于,采用讀取優(yōu)化方法是在讀取一個比特的數(shù)據(jù)后,進(jìn)行相應(yīng)的Bitslicing計算,然后在該比特數(shù)據(jù)寫回存儲器之前將所有與該字節(jié)變化相關(guān)的比特進(jìn)行更新,減少數(shù)據(jù)字節(jié)重復(fù)讀取的次數(shù)。`
      4.根據(jù)權(quán)利要求1所述的KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,其特征在于,針對S3步驟當(dāng)中數(shù)據(jù)存儲操作頻繁,采用了基于存儲特性的操作優(yōu)化,由于KLEIN加密分組為8字節(jié),因此可以通過將加密輸入輸出數(shù)據(jù)在存儲器中集中排列的方式,由于AVR匯編中低位地址已經(jīng)足夠訪問全部8字節(jié)空間,使得存儲的高位地址在存儲過程中不需要改變,減少Bitslicing操作中對數(shù)據(jù)進(jìn)行存儲時對地址進(jìn)行訪問的次數(shù)。
      5.根據(jù)權(quán)利要求1所述的KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,其特征在于步驟SI中,KLEIN的S盒的bitslicing實現(xiàn)如下:
      y0=l+x0+xl+x0x2+xlx2+x0xlx2+x3+xlx3+x0xlx3
      yl=l+x0+x2+xlx2+x3+xlx3+x0xlx3+x2x3
      y2=l+xl+x2+x0x2+xlx2+x0xlx2+x0x3+x0x2x3+x1x2x3
      y3=xl+x0x2+x3+x0x3+x0xlx3+x1x2x3 其中(xO,xl, x2, x3)和(yO,yl, y2, y3)分別為輸入值X和Y的從低到高4個比特。
      6.根據(jù)權(quán)利要求1所述的KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,其特征在于,步驟S3中,MixNibbles步驟的Bitslicing方法,將GF上的乘2轉(zhuǎn)換為字節(jié)布爾運算操作,再通過乘2運算構(gòu)造其他元素的乘法運算。
      7.根據(jù)權(quán)利要求6所述的KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,其特征在于,MixNibbles步驟每個輸入輸出字節(jié)的對應(yīng)計算可轉(zhuǎn)換為如下布爾運算表達(dá)式:
      8.根據(jù)權(quán)利要求1所述的KLEIN加密AVR環(huán)境下抗timing和cache邊信道攻擊的快速保護方法,其特征在于,步驟S4中,針對KLEIN-64/80/96不同密鑰長度,分別重復(fù)SI至S3的輪數(shù)為12/14/16輪,獲得相應(yīng)完整加密輸出值。`
      【文檔編號】H04L9/06GK103873229SQ201410093165
      【公開日】2014年6月18日 申請日期:2014年3月13日 優(yōu)先權(quán)日:2014年3月13日
      【發(fā)明者】龔征, 溫雅敏, 周志榮 申請人:華南師范大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1