一種適用於無線傳感器網絡aes加密的低開銷快速輪加密裝置及方法
2024-01-25 08:54:15 1
一種適用於無線傳感器網絡aes加密的低開銷快速輪加密裝置及方法
【專利摘要】本發明公開了一種適用於無線傳感器網絡AES加密的低開銷快速輪加密裝置和方法。在無線傳感器網絡中,由於信道暴露,必須對傳輸的數據進行加密等安全操作保證傳輸數據的安全。AES安全性高,被很多無線傳感器網絡協議指定為其MAC層或DLSL層安全傳輸加密算法。但與此同時,AES加密的計算量也很大,對資源受限的無線傳感器網絡節點造成不小壓力。本發明基於查表法,對表結構進行優化,同時對每輪輪加密的輸入進行預處理,從而提高了輪加密的速度,並降低了傳統查表法AES實現中的龐大存儲開銷。
【專利說明】—種適用於無線傳感器網絡AES加密的低開銷快速輪加密裝置及方法
【技術領域】
[0001]本發明涉及無線傳感器網絡安全設計領域,主要是針對在資源受限的無線傳感器網絡實施AES加密產生龐大的存儲開銷和時間開銷問題,通過改進查找表結構和輪加密運算方法,降低輪加密開銷的同時提高輪加密的速度。
【背景技術】
[0002]無線網絡由於其信道暴露在空氣中,其傳輸的數據很容易受到來自外界的破壞和竊取,因此必須對其傳輸數據實施安全措施。AES加密憑藉其高安全性,被越來越多的無線網絡協議採用,如 IEEE802.11、IEEE802.15.4、ISA100、WirelessHART 等都規定 AES 作為它們媒介訪問控制層(MAC)或數據鏈路子層(DLSL)安全通信的加密機制。但由於AES加密計算量較大,並且無線網絡節點通常採用電池供電,其處理器計算能力、存儲大小都受到限制,從而在確保網絡正常穩定的數據傳輸條件下在這些節點上實施AES加密變得十分困難。特別對於無線傳感器網絡,其節點對於電池續航、功耗控制的要求更高,因此低開銷的快速AES實現成為在無線傳感器網絡中部署AES加密的關鍵。
[0003]由於AES在網絡中實施時通常採用CCM模式,而CCM模式只包含AES加密而不包含AES解密,且規定AES密鑰長度為128位,因此本專利只涉及128位的AES加密。輪加密是AES加密的核心環節,AES加密時需要進行10/12/14 (分別對應128/196/256位AES)輪加密。輪加密的操作主要包含:密鑰相加、字節替換、行位移和列混淆。其中列混淆需要進行多次GF (28)乘法,而每次GF (28)乘法需要耗費多個時鐘周期完成,這些GF (28)乘法也成為AES加密計算中最耗費時鐘周期的操作。對此,通過查表法替代直接計算GF(28)乘法是降低GF(28)乘法時鐘周期開銷的有效方法。但是傳統的查表法產生巨大存儲開銷,對資源受限的無線傳感器網絡節點而言過於龐大。本專利正是為解決提高AES加密速度的同時降低AES開銷這一問題而產生的。
[0004]專利200610037539公開了一種基於AES算法的加解密方法和加解密器,其採用一個加解密迭代復用模塊來完成加密迭代或解密迭代操作,簡化AES算法設計的電路規模,減小電路設計的面積開銷,降低功耗和成本。
[0005]專利CN102411683公開的AES加速器是一種基於對高速緩存並行查找的方式實現,通過這種方式,不僅有效地減小了晶片的面積,而且加快了加解密運算的速度,在將查找表的數據以及最原始的輸入斷乳cache的情況下,一次AES加/解密預算的時間約為50周期,吞吐率達到384Mbps。
[0006]專利CN102664730公開了一種基於高級加密標準的AES的128比特位密鑰擴展系統及方法,主要解決現有AES加密算法中的128比特密鑰擴展過程的低效率和高功耗問題。
[0007]專利CN102185692公開了一種基於AES加密算法的多模式可重構加密方法,提供五種工作模式以及全隨即S盒和偏隨機S盒供用戶選擇,有效避免了加密採用硬體實現可能面臨的側信道攻擊,優化了可重構密碼方法的操作方式。
【發明內容】
[0008]本發明的目的是為資源受限的無線傳感器網絡節點設計一種低開銷快速AES輪加密裝置和方法,通過優化替換-乘法查找表和輪加密運算,降低存儲開銷,同時提高輪加密速度,從而低開銷的快速AES加密。[0009]一種適用於無線傳感器網絡AES加密的低開銷快速輪加密裝置,其特徵在於,所述裝置包括替換-乘法器、字節提取器、字生成器和輪加密運算器;
[0010]所述的替換-乘法器對輸入狀態矩陣State」(j為加密輪次,j=0, 1,…,11)中的每個元素Bi (i為矩陣中元素序號,i=0,l,...,15),生成半字結果集合{SH21(ai)};
[0011]所述的半字結果集合{SH21(ai)}包含16個半字結果SH21(ai)(下標H表示為半字(兩個字節)結果),Sh21 (a,)表示%的S盒查找結果SJai)分別與2和I進行伽羅華域GF (28)乘法所得結果SB2(ai)和SbI (?)排列成的半字結果(下標表B示為字節結果),21表示SB2(ai)在半字結果的高字節,SbI (Bi)在半字結果的低字節;
[0012]所述的字節提取器對替換-乘法器的半字結果集合中的每個元素提取字節結果集合{SB (aj)};
[0013]所述的字節結果集合{SB(ai)}包含16個字節結果SB2(ai)和16個字節結果SbI (Bi);
[0014]所述的字生成器用替換-乘法器的半字結果和字節提取器的字節結果按要求生成相應的字結果集合{Sw(ai)};
[0015]所述的字結果集合{Sw(ai)}包含4個字結果5?3112匕)(1=0,4,8,12)、4個字結果SffI 123 (Bi) (1=1,5,9, 13)、4 個字結果 sw1231(ai) (i=2,6, 10,14)和 4 個字結果 Sw2311 (&i)(i=3,7,11,15)(下標表W示為字結果),它們都是由IfSJai)與3進行GF(28)乘法所得結果Sb3 (Bi)U ^ Sb2 (Bi)和2個SbI⑷排列構成的字結果,3112、1123、1231和2311表示字內各個字節的排列順序,如3112表示字內字節排列從高字節到低字節依次為SB3(ai)SbI (Bi) SbI (Bi) SB2 (Bi);
[0016]所述的輪加密運算器根據不同輪的要求用Statec1、字節結果和字結果與密鑰Keyj進行相應運算後生成新狀態Statej+1。
[0017]一種適用於無線傳感器網絡AES加密的低開銷快速輪加密方法,其特徵在於:對狀態中每個元素進行替換-乘法運算,產生結果通過字節提取、字生成後,直接與密鑰進行相加生成新狀態,其步驟包括:
[0018](I)若j為0,則進行(4),否則對狀態Statej中的每個元素依次進行替換-乘法運算,生成半字結果集合{SH21(ai)};
[0019](2)對{SH21(ai)}中的每個元素提取單獨字節數據生成字節結果集合{SB(ai)};
[0020](3)若j為10,則進行(5),否則按輪加密要求用{SH21(ai)}和(Sjai)}中的元素生成相應的字數據,生成字結果集合{Sw(ai)};
[0021](4)用State。、{Sb(B1)I和(SjaiM中的元素按輪加密要求與密鑰Keyj進行相應運算生成新狀態Statej+1 ;
[0022](5) j=j+l,若 j 為 11,則輸出 State11,否則進行(I)。
[0023]本發明通過優化替換-查找器中查找表的結構,降低存儲開銷的同時減少因查表產生的訪存時鐘開銷;同時利用半字結果和字節結果生成字結果,降低輪加密運算的複雜度,從而降低輪加密存儲開銷的同時提高了輪加密的速度。
【專利附圖】
【附圖說明】
[0024]圖1是輪加密裝置結構圖。
[0025]圖2是替換-乘法器結構圖。
[0026]圖3是字生成器結構圖。
[0027]圖4是輪加密運算器結構圖。
[0028]圖5是輪加密方法的步驟。
【具體實施方式】
[0029]下面結合附圖,對本發明的實現進行詳細描述。
[0030]輪加密是AES加密計算的核心步驟,它將經過密鑰擴展的密鑰(Key)和輸入的明文塊(State。)經過10輪(以128位AES為例,不包括第零輪密鑰相加)循環加密,最後輸出密文塊(State11)。每一輪加密包含密鑰相加、字節替換、列混淆以及行位移四種操作中的一種或多種。其中第零輪(j=0)加密只包含密鑰相加;第一至第九輪(j=l,2,..,9)加密包含所有四種操作;最後一輪(j=10)加密包含除列混淆之外的三種操作。
[0031]圖1是本發明所提出的輪加密裝置101,其包含替換-乘法器102、字節提取器103、字生成器104和輪加密運算器105。輪加密裝置101輸入為經過密鑰擴展的密鑰Key和明文塊State。,輸出為密文塊State11。State。和Key直接送往輪加密運算器105進行第一輪輪加密,計算出的新狀態依次送往替換-乘法器102、字節提取器103和字生成器104獲取相應的結果集合後再送回輪加密運算器105進行新一輪的輪加密。經過10次輪加密後,直接將State11作為加密結果輸出。
[0032]圖2是替換-乘法器102,其核心是一張2*256位元組的查找表201。替換-乘法器102的輸入為計算出的新狀態State」(j=l,2,…,10),輸出為包含16個半字(兩個字節)結果的集合{SH21(ai) |i=0,1,...,15}。替換-乘法器102對State」(j=l,2,…,10)中的16個字節元素ai (i=0, I,…,15)在查找表201上依次查找它們對應的半字結果SH21(ai)(i=0,1,…,15),查找完畢後作為集合{SH21 (Bi) |i=0, I,..., 15}輸出。
[0033]查找表201的每一項為一個半字(兩個字節)SH21(ai),由兩個單字節S2(ai)和SUai)合併組成,其中S2(ai)在半字的高8位,SKai)在半字的低8位。S2 (a)和SI (aj表示%的S盒查找結果S(ai)分別與常量I和2進行GF(28)相乘的乘積。
[0034]由於替換-乘法器102輸出的結果Sh21 (a,)為半字,而在後續計算中需要使用獨立單字節S2 (Bi)和SI (Bi),所以{Sh21 (Bi) I i=0, I,..., 15}需要送往字節提取器103提取字節S2(ai)和SUai),得到字節結果集合{SB(ai)}。{SB(ai)}包含32個元素,分別為%所對應的 S2(ai)和 SKai) (i=0, I,…,15)。
[0035]圖3是字生成器104,用於將半字結果集合{SH21(ai)}和單字節結果集合(Se(Bi)I生成第一至第九輪(j=l,2,..,9)加密所需的字結果集合(Sff(Bi) |i=0, 1,...,15},其包含四個子集:{Sw3112(ai) |i=0,4,8,12},{Sw1123(ai) |i = l,5,9,13},{Sw1231(ai) i=2, 6, 10,14}和{Sw2311(ai) i=3, 7, 11,15}。其中 3112、1123、1231 和 2311表示字結果中字節的排列順序,高字節在前,低字節在後。如3?3112(&1)表示由單字節結果S3 (Bi),SI (Bi),SI (Bi)和S2(ai)依次排列組合成的字(S3 (ai)在高字節,S2(ai)在低字節);同理,5?1123(&?)、5?1231(&?)和5?2311匕)也類似組成。Sw3112 ⑷、SW1123 ⑷、SW1231 ⑷S^SlKai)的生成分別如301、302、303和304所示,用公式表示如下:
[0036]Sff3112(ai) = (Sl (Bi) <<24) ? (SH21 (Bi) ?16) | (Sl(ai)<>8),i=0, 4,8,12
[0037]SwI 123 (Bi) = (SUai)〈〈24) I (SI (a)〈〈16) I SH21 (a) ? S2 (a),i=l, 5,9,13
[0038]Sw1231 (Bi) = (SI (a) ?24) | (SH21 (a) ?8) ? SH21 (a),i=2, 6,10,14
[0039]Sff2311(ai) = (SH21(ai)?16) ? (SH21 (a15) ?8) IsKai), i=3, 7, 11, 15
[0040]其中,由於在GF(28)乘法中有=,所以在以上對於字結果中的S3 (Bi)均由 S2(ai) ? SKai)生成。
[0041]圖4是輪加密運算器105,用於計算生成新狀態Statej+1。在第零輪(j=0)加密中,輪加密計算如401所示,直接將Stateci與Keytl進行異或;在第一輪至第九輪(j=l,2,..,9)加密中,輪加密計算如402所示,將相應的字結果進行異或後,再與密鑰Ke&進行異或;在最後一輪(j=10)加密中,輪加密計算如403所示,先將相應的單字節結果SI (a,)組合成字,再與Keyltl進行異或。其計算公式如下所示:
【權利要求】
1.一種適用於無線傳感器網絡AES加密的低開銷快速輪加密裝置,其特徵在於,所述裝置包括替換-乘法器、字節提取器、字生成器和輪加密運算器; 所述的替換-乘法器對輸入狀態矩陣State^中的每個元素%,生成半字結果集合{SH21(ai)},其中,j為加密輪次,j=0, 1,…,11,i為矩陣中元素序號,i=0, 1,…,15 ; 所述的半字結果集合{Sh21 (Bi)}包含16個半字結果Sh21 (Bi),Sh21 (&i)表示的S盒查找結果SJai)分別與2和I進行伽羅華域GF (28)乘法所得結果SB2 (?)和SeKai)排列成的半字結果,其中,標記「21」表示SB2(ai)在半字結果的高字節,SbI (?)在半字結果的低字節,下標H表示為半字,即兩個字節的結果,下標表B示為字節結果; 所述的字節提取器對替換-乘法器的半字結果集合中的每個元素提取字節結果集合(Se(Bi)I ; 所述的字節結果集合{SB(ai)}包含16個字節結果SB2(ai)和16個字節結果SBl(ai);所述的字生成器用替換-乘法器的半字結果和字節提取器的字節結果按要求生成相應的字結果集合{Sw(ai)}; 所述的字結果集合{Sw(ai)}包含4個字結果5?3112匕)(i=0,4,8, 12)、4個字結果SffI 123 (Bi) (1=1,5,9, 13)、4 個字結果 Sw1231(ai) (i=2,6, 10,14)和 4 個字結果 Sw2311 (&i)(i=3, 7,11,15),它們都是由IfSJai)與3進行GF(28)乘法所得結果SB3 (a)、I個SB2 (aj和2fSBl(ai)排列構成的字結果,3112、1123、1231和2311表示字內各個字節的排列順序,如3112表示字內字節排列從高字節到低字節依次為Sb3 (Bi) SbI (Bi) SbI (&i) SB2 (&i),其中,下標表W不為子結果; 所述的輪加密運算器根據不同輪的要求用Statec1、字節結果和字結果與密鑰Ke&進行相應運算後生成新狀態Statej+1。
2.一種適用於無線傳感器網絡AES加密的低開銷快速輪加密方法,其特徵在於:對狀態中每個元素進行替換-乘法運算,產生結果通過字節提取、字生成後,直接與密鑰進行相加生成新狀態,其步驟包括: 2.1若j為0,則進行步驟2.4,否則對狀態Statej中的每個元素依次進行替換-乘法運算,生成半字結果集合{SH21(ai)}; 2.2對{SH21(ai)}中的每個元素提取單獨字節數據生成字節結果集合{SB(ai)}; 2.3若j為10,則進行步驟2.4,否則按輪加密要求用{SH21(ai)}和(Sjai)}中的元素生成相應的字數據,生成字結果集合{Sw(ai)}; 2.4用State。、{SB(ai)}和(SjaiM中的元素按輪加密要求與密鑰Keyj進行相應運算生成新狀態StateJ+1 ; 2.5j=j+l,若j為11,則輸出State11,否則進行步驟2.1。
【文檔編號】H04L9/06GK103888937SQ201410126050
【公開日】2014年6月25日 申請日期:2014年3月31日 優先權日:2014年3月31日
【發明者】齊悅, 羅新強, 萬亞東, 王沁 申請人:北京科技大學