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

基于AES算法的文件加密

2017-07-12 09:39:33張文錦周榮高燕
軟件導刊 2017年6期

張文錦+周榮+高燕

摘要:介紹AES算法的基本理論,并應用到具體軟件實現中。在AES算法實現中,預先存儲正反S盒查找表,提高算法執行的運行速度;使用密文挪用技術,解決待處理數據長度不是分組長度整數倍的問題;提出優化文件讀寫方案,使用多線程和緩存技術,提高系統加密解密的吞吐量。測試加密軟件的基本功能,并對軟件性能作量級測試。

關鍵詞:AES;加密;解密;密文挪用;分組密碼

DOIDOI:10.11907/rjdk.171097

中圖分類號:TP309.7

文獻標識碼:A 文章編號:1672-7800(2017)006-0180-03

0 引言

隨著信息化的推進,“互聯網+”應用不斷深入。信息化滲透到人們學習、工作、生活等各方面,為人們提供便利服務的同時,也面臨著信息安全的巨大挑戰。個人信息安全是信息安全的重要組成部分,個人電腦或U盤中毒丟失都會造成個人信息的泄露。創建一個保護用戶個人信息的工具具有重要意義。

1 AES算法簡介

1.1 算法背景

高級加密標準(即AES[1]),又稱Rijndael加密法,是一種區塊加密標準,用來替代原先的DES,已經被多方分析且廣泛應用。經過5年的甄選流程,高級加密標準由美國國家標準與技術研究院(NIST)于2001年11月26日發布于FIPS PUB 197,并在2002年5月26日成為有效的標準。2006年,高級加密標準已成為對稱密鑰加密中最流行的算法之一。

1.2 算法流程

AES加密算法的處理單元是分組,分組的128bit數據(16字節)會按照順序賦值到4*4的狀態矩陣(state)中,所有變換都是基于狀態矩陣完成的。AES變換是多輪迭代的輪變換實現的,迭代次數與密鑰長度有關(以AES-128為說明)。輪變換包括4步變換,包括字節替換(SubBytes())、行變換(ShiftRows())、列混合(MixColumns()[2])和密鑰加(AddRoundKey())[3]。通過非線性變換、混合函數變換,將字節代換運算產生的非線性擴散,達到重復混合,使得加密完成后的分組擴散更均勻。輪密鑰擴展將原始密碼擴展成11組,每輪迭代使用不同的密鑰。加密流程如圖1所示。

2 算法實現

2.1 密鑰擴展

按照列優先的方式將種子密鑰排列成4*4矩陣,矩陣每一列就可以稱為一個32bit的字。密鑰擴展的目的就是將種子密鑰由4個字擴展成44個字,每一輪加密需要4個字,為了方便描述,第一個字為w[0],第二個字為w[1]…依次類推,最后一個字為w[43]。

前4個字可以用種子密鑰初始化,然后,對數組w擴充40個新字。遞歸方式:

(1)若i不是4的倍數,那么w[i]=w[i-4]^w[i-1]。

(2)若i是4的倍數,那么w[i]=w[i-4]^T(w[i-1]);其中,T是一個函數。

函數T由3個部分組成:字循環、字節代換與輪常量異或。

(3)字循環:將一個字中的4個字節分別向左移動一個字節。即[x0,x1,x2,x3]變換為[x1,x2,x3 ,x0]

(4)字節代換:即S盒置換。

(5)輪常量異或:將前兩步的結果與輪常量Rcon[j]進行異或。

2.2 S盒置換和逆S盒置換

S盒置換又稱字節代換。正S盒(Sbox),逆S盒(Inv Sbox)提前計算存儲在代碼中,字節代換可以簡化成一個簡單的查表操作。通過下標取出對應的值就是這個映射操作,如圖2所示。S盒置換使用正S盒,逆S盒置換使用逆S盒。

2.3 行移位變換與逆向行移位變換

行移位的功能是將字節矩陣通過簡單的左循環移位操作。當密鑰長為128bit,狀態矩陣的第i行左移i個字節,如圖3所示。逆行移位就是還原行移位,狀態矩陣向右循環移位,狀態矩陣的第i行右移i個字節。

2.4 列混合變換和逆列混合變換

列混合算法:使用GF()域[4]算術特性替代

根據矩陣的乘法可知,在列混淆過程中,每個字節對應的值只與該列的4個值有關系。此處的乘法和加法都定義在GF(28)有限域上。

需要注意如下幾點:

(1)將某個字節的值乘2,即該值的二進制位左移一位,如果該值的最高位為1(即該數值不小于128),則還需要將移位后的結果異或00011011。

(2)乘法對加法滿足分配率,例如:07·S0,0=(01⊕02⊕04)·S0,0= S0,0⊕(02·S0,0)(04·S0,0)。

(3)此處矩陣乘法與矩陣的乘法不同,各個值在相加時使用的是模2加法(相當于是異或運算)。

逆列混合操作同樣使用GF()域上算術特性替代,只是多項式c(x)不同。

2.5 輪密鑰加

將128位輪密鑰與狀態矩陣中的數據進行按位異或操作。因為異或操作的逆操作即是本身,所以解密輪密鑰加也是本身。

3 軟件優化

3.1 密文挪用

AES算法是分組加密算法,所以不可避免地要處理待處理數據不是分組數據的整數倍的問題。如果不處理這部分不夠的數據,那么加密解密以后得到的原始信息將在最后一個分組多出一部分錯誤信息,而沒有被賦值的數據往往就是內存中的垃圾值,從而影響正確信息的可讀性。本軟件在實現過程中采取的方法是“密文挪用”。

為了便于解釋,設分組長度為blen;待處理(加密/解密)的數據為d,長度為dlen;待處理剩余的數據為rd,長度為rdlen。已經處理數據s。加密實現過程如圖4所示。

(1)當rdlen>=blen,即剩余數據大于分組長度,轉2;否則,轉3。

(2)從rd的頭部取大小為blen的數據作加密操作,所得數據拼接到s尾部,轉1。

(3)若rdlen>0,即剩余數據不夠一個分組。在已經加密的數據s末尾取出大小為blen-rdlen的數據與rd拼接構成一個長度為blen的分組數據塊,對其加密并將結果拼接到已經加密數據(除被取出的blen-rdlen的數據)后,轉4。

(4)若relen==0,所有數據加密完成,結束加密。S為密文。

原文被分成n個組,第n個分組不足一個分組長度。前面n-2個分組直接加密即可,第n-1分組加密后要借給n分組然后對n分組加密。解密實現過程如圖5所示。

setp1:當rdlen>2*blen,轉2;否則,轉3。

setp2:rd的頭部取出blen長的數據做解密操作,結果拼接到s尾部,轉1。

setp3:當rdlen=2*blen,轉4;否則,轉5。

setp4:取出rdlen數據解密。直到rdlen==0;結果拼接到s尾部,轉6。

setp5:取出剩余數據rd末尾blen大小的數據塊(剩余的rd-blen大小數據塊記作rd)并作解密操作,得到數據塊data2;對剩余的待解密數據rd與data2的頭部b1en-rdlen的數據進行拼接、解密,得到data3。順序拼接s,data3,data2的末尾rdlen個位數據,得到完整解密數據、轉6。

setp6:所有密文均被解密成原文。結束解密。

說明:密文被分成n個分組,前n-2分組直接解密。結尾部分,先取出后面一個分組,然后n-1分組和解密完的前面部分組成一個分組解密,然后拼接起來。

3.2 多線程I/0優化

文件讀取和加解密處理的速度是不匹配的。如每次處理一個分組就讀寫文件一次顯然會處于空等狀態,而且多次打開關閉文件相當費時間,而待加密的文件也是可大可小的,可能是幾K的文本,也有可能遇到幾個G的圖像視頻等,全部讀取到內存中也是不可能的。考慮到以上問題,設置緩沖區。

文件處理過程如圖6所示,系統主進程實現加密解密操作,讀文件操作由文件讀進程實現,寫文件操作由文件寫進程實現。待處理數據和待寫入文件數據緩沖區使用循環隊列實現,主進程直接在緩存區讀取數據,并將數據存入寫緩沖區。

4 軟件運行測試

4.1 基本功能測試

測試文件test.txt。內容 “這是基于AES加密算法的測試用例,張文錦zhangwenjin”。加密結果如圖7。

進行解密操作能夠還原文件原來的內容。

4.2 性能測試

軟件處理大小不同文件的性能如表1。

5 結語

本文介紹了AES加密算法的實現原理和過程,并給出了算法密鑰加、行移位、S盒置換、列混合等關鍵操作的實現方法。在實際應用過程中應用密文挪用技術,巧妙處理分組問題,為了提高文件處理效率使用了緩沖區技術 。通過測試,加密軟件不但在功能上滿足要求,性能方面也令人滿意。

參考文獻:

[1]何明星,范平志.新一代私鑰加密標準AES進展與評述[J].計算機應用研究,2001,18(10):4-6.

[2]曾祥勇,張煥國.高級加密標準Mixcolumn變換設計分析[J].武漢大學學報:理學版,2003,49(5):597-600.

[3]何明星,林昊.AES算法原理及其實現[J].計算機應用研究,2001,18(10):4-6.

[4]Announcing the Advanced Encryption Standard(AES) [p].NIST,2001:1-53.

(責任編輯:陳福時)

主站蜘蛛池模板: 亚洲高清免费在线观看| 国产成人狂喷潮在线观看2345| 久久久久中文字幕精品视频| av在线人妻熟妇| 九月婷婷亚洲综合在线| 国内毛片视频| 亚洲天堂.com| 欧美日韩一区二区三区四区在线观看| 国产综合在线观看视频| 青草视频网站在线观看| 91久久偷偷做嫩草影院精品| 操国产美女| 美女潮喷出白浆在线观看视频| …亚洲 欧洲 另类 春色| h网站在线播放| 欧美日韩国产在线播放| 亚洲无码精彩视频在线观看| 午夜欧美理论2019理论| 中文字幕在线观看日本| 欧美精品成人一区二区在线观看| 小说区 亚洲 自拍 另类| 国产福利一区视频| 天天综合天天综合| 国产成人精品无码一区二| 好吊色妇女免费视频免费| 91久久精品国产| 国产另类视频| 国产精品一区二区在线播放| 小说 亚洲 无码 精品| 国产麻豆另类AV| 一本一本大道香蕉久在线播放| 国产永久免费视频m3u8| 日韩黄色大片免费看| 免费久久一级欧美特大黄| 成年免费在线观看| 国产美女91视频| 亚洲精品国产自在现线最新| av一区二区三区高清久久| 一本大道香蕉久中文在线播放| 国产人碰人摸人爱免费视频| 丁香婷婷激情网| 欧美另类图片视频无弹跳第一页| 国内视频精品| 国产成人久久综合777777麻豆| 久久永久视频| 国产精品自在线天天看片| 精品综合久久久久久97超人该| 青青青伊人色综合久久| 亚洲精品天堂在线观看| 99无码熟妇丰满人妻啪啪| 青青草国产精品久久久久| 亚洲高清中文字幕在线看不卡| 天堂成人在线视频| 手机精品视频在线观看免费| 男女男精品视频| 国产精品第5页| 国产精品理论片| 国产精品自在在线午夜| 欧美午夜理伦三级在线观看| 国产玖玖视频| 啪啪免费视频一区二区| 在线日韩日本国产亚洲| www精品久久| 国产乱肥老妇精品视频| 久久青青草原亚洲av无码| 91福利在线观看视频| 国产十八禁在线观看免费| 日本免费一级视频| 亚洲动漫h| 精品视频在线一区| 九九视频免费在线观看| 午夜国产大片免费观看| a毛片在线| 五月激情综合网| 国产精品久久久久婷婷五月| 中文字幕调教一区二区视频| 就去吻亚洲精品国产欧美| 久久美女精品| 国产亚洲美日韩AV中文字幕无码成人| 精品一区二区三区四区五区| 亚洲精品无码日韩国产不卡| a级毛片免费播放|