999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CAN總線通信中的改進AES加密算法設計

2018-07-11 07:51:32,,
單片機與嵌入式系統應用 2018年7期
關鍵詞:定義

,,

(火箭軍工程大學 基礎部,西安 710025)

引 言

某控制系統各節點間通過CAN總線互連通信,而在CAN的協議規范中只對物理層和數據鏈路層做了明確的規定,其應用層協議用戶可自行根據具體的應用系統自主定義[1]。為了保證總線在通信過程中的安全性,在應用層協議里進行了數據加密,并采用了改進的AES加密算法。AES加密算法是1998年由Rijndael提出,其安全性目前仍在深入研究與討論中,但普遍認為其具有良好的安全性。本文對AES加密算法進行了改進,且只改進了其非線性部分S-Box的構造,其余線性變換的結構并未改變。S-Box是一個預先計算好的字節替換表,因此算法的執行時間不會有所改變,不存在參考文獻[2]提出的由于改進算法而導致影響通信效率的問題。本文通過對比改進前后的AES加密算法的仿射變換對周期、代數表達式項數、嚴格雪崩距離等各項指標來說明算法的安全性,并通過實驗驗證了可行性。

1 AES加密算法原理

1.1 算法基本結構

AES加密算法為分組密碼,分組長度為128位即16個字節,密匙長度有128、192或256位,根據密匙長度的不同,加密的輪數也不同,本文采用長度為128位的密匙,加密輪數為10輪。AES加密算法不僅編碼緊湊、設計簡單而且可抵抗多種類型的攻擊,其基本結構包括4個部分。

(1)字節替換(SubBytes)

字節替換也就是通過S-Box對字節元素進行非線性的變換,S-Box由有限域GF(28)上的乘法求逆運算和仿射變換運算而來,通過查表的方式即可直接得到變換前后的字節元素,替換后字節元素至少有兩位發生變換,能充分打亂原來的字節元素,本文所介紹的AES加密算法就是對S-Box進行改進而來。具體替換規則為假設一字節為xy,則S-Box中第x行第y列所對應的元素就是替換后的元素。

(2)行位移(ShiftRows)

行位移是AES加密算法中的一個簡單線性運算,即在4×4的狀態矩陣中,把第i行循環左移i個字節(i=0,1,2,3)。

(3)列混合(MixColumns)

列混合是將狀態矩陣中的每一列看成一個多項式,讓其與一個固定的多項式a(x)相乘,再做模多項式m(x)=x4+1的運算,其中a(x)=03x3+01x2+01x+02。

(4)輪密匙加(AddRoundKey)

輪密匙加變換就是讓狀態矩陣與經過密匙擴展得到的子密匙做異或運算,因此輪密匙加變換的逆變換就是其本身,其中子密匙是原始密匙通過密匙擴展算法得到的。

1.2 算法的流程

AES加密算法先將128位的明文進行分組,得到一個4×4的明文狀態矩陣作為算法的輸入,然后選取密匙矩陣先對明文狀態矩陣做一次輪密匙加變換,再經過10輪的輪函數加密,輪函數操作依次為字節替換、行位移、列混合和輪密匙加,其中由于最后一輪的列混合不僅不會提高安全性,反而會拉低算法運算速度,故該輪丟棄列混合變換。解密算法仍為10輪,由于算法的4個輪操作均為可逆變換,因此解密過程就是用與加密過程同樣的密匙對每一輪的加密操作進行逆運算。算法的流程圖如圖1所示,其代碼實現如下:

void aes(char *p, int plen, char *key){

int keylen = strlen(key);

int pArray[4][4];

int k,i;

… …

extendKey(key);//擴展密鑰

for(k = 0; k < plen; k += 16) {

convertToIntArray(p + k, pArray);

addRoundKey(pArray, 0);

//第一次輪密鑰加

for(i = 1; i < 10; i++){

subBytes(pArray);//字節代換

shiftRows(pArray);//行移位

mixColumns(pArray);//列混合

addRoundKey(pArray, i);//輪密匙加

}

subBytes(pArray);//字節代換

shiftRows(pArray);//行移位

addRoundKey(pArray, 10);//輪密匙加

convertArrayToStr(pArray, p + k);

}

}

圖1 AES加密算法流程圖

2 S-Box構造原理及性質

S-Box作為AES加密算法中唯一的非線性部分,是一個作用于狀態字節的非線性變換,對于128位的明文加密,一次加密過程就要用到S-Box 160次[3],因此其構造對算法的安全性起關鍵性作用。S-Box的構造由兩個可逆的復合變換而成,即先在有限域GF(28)上求乘法逆元變換,其中00沒有乘法逆元,規定其變換后依然是00,再在GF(2)上做仿射變換運算。參考文獻[4]給出了S-Box的代數表達式只有9項:S(x)=05x254+09x253+f9x251+25x247+f4x239+01x223+b5x191+8fx127+63。

(1)定義1

(2)定義2

(3)定義3

迭代輸出周期[6]:從其中一元素開始對S-Box做連續替換直到回到該元素所經過的元素數。S-Box具有5個迭代輸出周期且均小于88,分別是87、81、59、27、2,其短周期現象給密碼分析提供了可能性,增大迭代輸出周期有利于提高算法的安全性。

(4)定義4

(5)定義5

(6)定義6

非線性度[6]:設F(x)=(f1(x),…,fn(x))是GF(2)n到GF(2)n的多輸出布爾置換,則稱

(7)定義7

抗代數攻擊阻力[7]:在有限域GF(28)上有t項的r個方程,定義Γ為S-Box的抗代數攻擊阻力,有Γ=((t-r)/n)[(t-r)/n],對于AES加密算法中的S-Box,參考文獻[6]給出t=81,r=23,n=8,帶入上式可得?!?22.9。該指標主要與求乘法逆元運算有關,因此對于改進后的S-Box抗代數攻擊阻力仍為Γ≈222.9。

(8)定義8

雪崩效應[8]:設F(x)=(f1(x),…,fn(x))是GF(2)n到GF(2)n的多輸出布爾置換,若對任意的α∈GF(2)n且W(α)=1,即α的漢明重量為1時,有w(fi(x+a)+fi(x))=2n-1(1≤i≤n),則稱F(x)滿足嚴格的雪崩準則SAC,稱

3 改進的AES加密算法及性能分析

3.1 改進方法

改進的AES加密算法主要是對S-Box進行重構,通過上述對S-Box的代數性質分析,增大仿射變換周期和迭代輸出周期有利于提高算法的安全性,且S-Box的代數表達式項數較少只有9項,代數復雜度低則算法抵御代數攻擊性能弱。筆者通過大量的對比試驗發現,S-Box的代數表達式項數與構造S-Box的求乘法逆元素運算和仿射變換運算的順序有關,且為滿足S-Box和逆S-Box均具有較復雜的代數多項式,可多做一次仿射變換運算,因此重構的S-Box可先對字節元素做仿射變換運算,再求乘法逆元素運算,最后再做一次仿射變換運算。而仿射變換周期和迭代輸出周期與仿射變換對的選取有關,根據定義2得到仿射變換周期為16的仿射變換對共有8 192對,按照新S-Box的構造原理選出其中91對,使得Lu,v具有唯一一個周期256的置換表,根據定義8分別計算所有仿射變換對的嚴格雪崩準則距離,得到仿射變換對(79,51)的DSAC(F)最小為372。因此,重構的S-Box具體步驟如下:

① 首先選取仿射變換對(79,51)做仿射變換,運算過程如下

x=L79,51(x)=Lb×x+51=

② 求乘法逆元運算

③ 最后依然用仿射變換對(79,51)再做一次仿射變換L79,51

y=L79,51(x")=Lb×x"+51

表1 改進后的S-Box替換表

表2 改進后的逆S-Box替換表

3.2 性能分析

根據定義4~7,改進后的AES加密算法S-Box在平衡性、差分均勻度、非線性結構和抗代數攻擊阻力上均不變。由于重構S-Box時改變了求乘法逆元和仿射變換運算的順序,并增加了一次仿射變換運算,S-Box的代數復雜度有所提高,S-Box的代數項數由原來的9項增加到255項,而逆S-Box的代數項數也只由原來的255項降到253項。選取仿射變換周期為16的仿射變換對(79,51),使得S-Box的嚴格雪崩準則距離由432下降到372,具有更好的雪崩效應。改進前后S-Box性能對比如表3所列。

表3 改進前后S-Box性能對比表

4 實驗驗證

圖2 加密算法驗證界面

實驗首先對改進后的加密算法進行驗證,選取明文為{01,02,03,04,…,0f,00},密匙為{2b,7e,15,16;28,ae,d2,a6;ab,f7,15,88;09,cf,4f,3c},用C語言編寫程序,并在VC6.0編譯環境下運行后得到如圖2所示的界面,加密后的密文為{de,0f,43,e7,…,a6,57}。

其次在CAN開發板的通信中進行驗證,開發板主控芯片采用穩定性較好的STC89C52RC單片機,CAN控制器和收發器分別為SJA1000和TJA1050,且開發板上有一個4位的數碼管可用于顯示加密后的數據。將3塊CAN開發板以總線型的拓撲結構連成網絡,并把CAN_H、CAN_L、VCC、GND端對應相連,其中的一塊開發板設為主節點,用于發送數據,其余兩塊設為從節點,用于接收數據,主節點與USB-CAN轉換模塊相連,USB-CAN分析儀可以通過USB接口把CAN網絡與電腦的上位機軟件EmbededDebug v2.0相連,便于數據的采集、處理以及對數據的收發進行實時監控。本實驗輸入的明文為{01,02,03,04,…,0f,00},得到的密文為{de,0f,43,e7,…,a6,57},在CAN通信實驗的程序中只寫入加密函數而不進行解密,并讓加密后的密文通過數碼管顯示,由于數碼管只有4位,只能顯示密文的前4位即{de,0f,43,e7},實驗現場圖如圖3所示。

圖3 CAN總線通信實驗現場圖

由圖可以直觀看出,數碼管在第二位正常顯示了數字0f,其余三位是由于在數碼管函數中未作定義而隨機生成的段選。再把解密函數寫入實驗程序中,數碼管正常顯示了發送的數據01,02,03,04,并打開上位機軟件EmbededDebug v2.0,可以實時看到數據{01,02,03,04,…,0f,00}進行正常的收發,如圖4所示。

圖4 上位機軟件監控數據圖

結 語

猜你喜歡
定義
以愛之名,定義成長
活用定義巧解統計概率解答題
例談橢圓的定義及其應用
題在書外 根在書中——圓錐曲線第三定義在教材和高考中的滲透
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
嚴昊:不定義終點 一直在路上
華人時刊(2020年13期)2020-09-25 08:21:32
定義“風格”
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
有壹手——重新定義快修連鎖
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 欧美精品一区在线看| 亚洲资源在线视频| 天天操精品| 亚洲成人www| 91丝袜乱伦| 国产在线自乱拍播放| 在线欧美日韩| 欧美激情视频一区| 亚洲成A人V欧美综合| 国产精品亚洲五月天高清| 好吊妞欧美视频免费| 国产精品99r8在线观看| 蜜芽一区二区国产精品| 色综合久久综合网| 99国产在线视频| 国产在线观看人成激情视频| 99国产在线视频| 激情午夜婷婷| 久久综合九色综合97婷婷| 国产91透明丝袜美腿在线| 五月婷婷综合网| 国产69精品久久| 四虎精品国产AV二区| 国产传媒一区二区三区四区五区| 精品一区国产精品| 欧美成人综合视频| 99久视频| 99热国产在线精品99| 国产本道久久一区二区三区| 看你懂的巨臀中文字幕一区二区 | 亚洲欧美激情小说另类| 成人亚洲天堂| 影音先锋丝袜制服| 欧美激情视频一区| 欧美国产日韩一区二区三区精品影视| 亚洲二三区| 日韩在线中文| 高清不卡一区二区三区香蕉| 第九色区aⅴ天堂久久香| 无码久看视频| 91精品国产情侣高潮露脸| 亚洲国产欧美目韩成人综合| 天天操天天噜| 一区二区三区毛片无码| 国产大全韩国亚洲一区二区三区| 久久一级电影| 国产精品无码在线看| 免费看a级毛片| 国产激情无码一区二区APP| 日本尹人综合香蕉在线观看| 亚洲欧美一区在线| 在线毛片免费| 美女无遮挡被啪啪到高潮免费| 亚洲精品视频网| 2020极品精品国产 | 亚洲一区毛片| 欧美成人精品欧美一级乱黄| 中文字幕啪啪| 国产精品任我爽爆在线播放6080| 亚洲自拍另类| 午夜性爽视频男人的天堂| 国产精品xxx| 欧美激情二区三区| 69av免费视频| 国产精品成人AⅤ在线一二三四| 成人小视频在线观看免费| 久久久久久尹人网香蕉| 在线中文字幕网| 免费又爽又刺激高潮网址 | 亚洲精品波多野结衣| 国产精品无码作爱| 国产性生交xxxxx免费| 国产成人精品日本亚洲77美色| 亚洲欧美日韩动漫| 亚洲欧美激情另类| 国产精品女人呻吟在线观看| 国产丝袜无码精品| 又爽又大又黄a级毛片在线视频| 国产丝袜91| 日韩精品久久久久久久电影蜜臀| 99这里只有精品6| jizz亚洲高清在线观看|