鄧奎彪,孔軼艷,趙娟,趙啟飛
(柳州職業(yè)技術(shù)學(xué)院電子信息工程系,柳州 545006)
基于AES物聯(lián)網(wǎng)文本數(shù)據(jù)加密算法研究
鄧奎彪,孔軼艷,趙娟,趙啟飛
(柳州職業(yè)技術(shù)學(xué)院電子信息工程系,柳州 545006)
物聯(lián)網(wǎng)是最近出現(xiàn)的動態(tài)智能網(wǎng)絡(luò),這種網(wǎng)絡(luò)能讓大量的文本數(shù)據(jù)在上面?zhèn)鬏敚@極大地方便人們的生活。然而,隨之出現(xiàn)數(shù)據(jù)安全問題。利用AES加密算法保證數(shù)據(jù)的隱私性和安全性,最后,用Java語言編程驗(yàn)證該算法的有效性和可行性。
物聯(lián)網(wǎng);加密算法;文本數(shù)據(jù)
最近幾年物聯(lián)網(wǎng)技術(shù)得到了蓬勃發(fā)展,共享文本數(shù)據(jù)正以前所未有的速度呈幾何級數(shù)在物聯(lián)網(wǎng)中增長和累積,然而這些共享的文本數(shù)據(jù)與人們的隱私生活有著千絲萬縷的關(guān)系,且這些文本數(shù)據(jù)相互之間的關(guān)聯(lián)度非常高,因此對物聯(lián)網(wǎng)中共享文本數(shù)據(jù)的傳輸安全及隱私的保護(hù)變得越來越來重要,實(shí)事上,物聯(lián)網(wǎng)文本數(shù)據(jù)傳輸安全問題隨著物聯(lián)網(wǎng)的廣泛應(yīng)用已為一個新的重要的熱點(diǎn)問題。由于物聯(lián)網(wǎng)應(yīng)用系統(tǒng)中的文本數(shù)據(jù)大多是一些應(yīng)用場景的實(shí)時數(shù)據(jù),那么就要求加密算法不僅要有很高的安全度,并且要求加密實(shí)現(xiàn)能在有效的短時間內(nèi)完成。DES算法由于分組相對不長、密鑰又短、密碼生命周期也短、運(yùn)算速度既慢且安全度又低,不難抵御差分攻擊和相關(guān)密鑰攻擊,橢圓曲線密碼學(xué)(ECC)是基于橢圓曲線數(shù)學(xué)的一種公鑰密碼的方法,橢圓密碼體制與RSA、DSA等公鑰體制相比有以下兩個優(yōu)點(diǎn):一是對帶寬要求比相對低,二是存儲空間占用比較小,但有一個不可忽視的缺點(diǎn),其加密和解密操作的實(shí)現(xiàn)明顯比其他機(jī)制花費(fèi)的時間要長很多。由于它的速度較慢,那么在物聯(lián)網(wǎng)數(shù)據(jù)傳輸?shù)倪^程中無法實(shí)現(xiàn)實(shí)時數(shù)據(jù)信息加密。差分攻擊、相關(guān)密鑰攻擊等各種針對DES算法的所有攻擊方法,對AES算法沒有實(shí)質(zhì)性威脅。到目前為止,還沒有官方報道AES算法曾被破譯過。密鑰建立時間短,靈敏性好、內(nèi)存要求低是AES算法的三大特點(diǎn),因此AES算法非常適合于文本數(shù)據(jù)傳輸在物聯(lián)網(wǎng)中的加密。
AES算法是屬于一種典型的對稱加密算法,AES算法中的所有操作以字節(jié)(Byte)作為基本單位,算法用到的變量都以字節(jié)作為基本單位。所有的加密過程都是在一個4×4的字節(jié)矩陣上實(shí)施的,這個矩陣也被稱之為“體(state)”,其初值就是一個明文區(qū)塊(矩陣中一個元素大小和明文區(qū)塊中的一個Byte相對應(yīng))。算法從輪密鑰加開始,用N表示一個數(shù)據(jù)分組加密總的輪數(shù)。AES算法前N-1輪由字節(jié)代替、行移位、列混合和輪密相加這四種不同變換構(gòu)成。但是在最后一輪只有三個變換,即第N輪沒有變換列混合。需要特別指出的是最前面的第一輪有一個輪密鑰相加起始的單變換,這個起始的單變換可以看作是0輪。AES加密算法的流程見下面的圖1。
從上面的流程圖中不難發(fā)現(xiàn)為了增加算法的安全性,首尾都使用了輪密鑰加。如果將其他不需要密鑰的階段放在了首尾的話,在不知道密鑰的情形下就能夠很容易求出他的逆,這樣就容易降低算法的安全性。
圖1 AES算法加密的框圖
下面簡要說明4個變換:
①字節(jié)代替(SubBytes):通過一個非線性的替換函數(shù)(S盒),把矩陣中的每一個字節(jié)依據(jù)下面的規(guī)則替換成為一個新的字節(jié)。具體的規(guī)則是:以該字節(jié)的高4位作為行值,低4位作為列值,在S盒中找出對應(yīng)行和列,其行和列相交處的元素就是對應(yīng)的新字節(jié)。例如,十六進(jìn)制數(shù){57}。在S盒中對應(yīng)的行和列分別是5和7,S盒中5行和7列相交對應(yīng)的元素值是{5B},也就是十六進(jìn)制數(shù){57}被{5B}代替。
②行移位變換(ShiftRows):實(shí)質(zhì)上是一個簡單的置換,就是將矩陣中除第一行外其它行進(jìn)行循環(huán)式移位。具體的算法是:矩陣的第一行字節(jié)固定不動,然后把第二行字節(jié)循環(huán)左移一個字節(jié),其次再把矩陣的第三行字節(jié)循環(huán)左移兩個字節(jié),最后是的第四行循環(huán)左移三個字節(jié),詳細(xì)的變化如圖2所示。
③列混合(MixColumns):是為了充分混合矩陣中各個直列的操作,也是AES最具技巧性的部分,該步驟使用線性轉(zhuǎn)換來混合每列內(nèi)的四個字節(jié)。
④輪密鑰加(AddRoundKey):是指當(dāng)前分組和密鑰擴(kuò)展的一部分進(jìn)行按位異或。輪密鑰加變換過程雖然相對比較簡單,卻影響了矩陣(State)中的每一位,尤其是密鑰擴(kuò)展的復(fù)雜性直接影響AES算法的安全。
圖2 行移位變換
關(guān)于AES解密算法實(shí)現(xiàn)有多種可行的方案,在這里我們采用直接解密算法。首先利用四個步驟:逆字節(jié)代替(InvSubBytes)、逆行移位(InvShiftRows)、逆列混合(InvMixCloumns)和輪密鑰加(AddRoundKey)的逆,然后將次序與加密中的完全顛倒過來,直接解密算法能夠很容易得到所要的真實(shí)的文本數(shù)據(jù)。直接解密算法步驟本身和加密法不同,并且出現(xiàn)的先后的順序也不一樣。其解密算法框圖見圖3。
圖3 AES算法解密的框圖
Java是一種非常簡潔的“面向?qū)ο蟆背绦蛟O(shè)計語言,使用Java語言編寫的程序,只需要做少量的修改,甚至有時根本不需要修改即可在Windows、MacOS、UNIX不同的平臺上運(yùn)行。正因?yàn)槿绱薐ava語言得到廣泛應(yīng)用,下面給出文本數(shù)據(jù)加密解密的AES程序中的Java語言關(guān)鍵代碼。
在Windows平臺上用記事本編寫Java程序,編譯運(yùn)行得到下面的界面,很顯然AES加密解密對文本的隱私能起到很好的保護(hù)作用。
由于信息技術(shù)的不斷發(fā)展,文本數(shù)據(jù)在物聯(lián)網(wǎng)中的運(yùn)用會越來越多。那么對這些數(shù)據(jù)的隱私保護(hù)應(yīng)該是大勢所趨,將AES算法用于物聯(lián)網(wǎng)中的數(shù)據(jù)加密和解密問題,具有很現(xiàn)實(shí)的意義。用Java語言實(shí)現(xiàn)動態(tài)演示過程有助于理解AES算法的基本思想和實(shí)現(xiàn)過程。
[1]李興華.Java開發(fā)實(shí)踐經(jīng)典[M].北京:清華大學(xué)出版社,2009.
[2]桂小玲,張學(xué)軍,趙建軍等.物聯(lián)網(wǎng)信息安全[M].北京:機(jī)械工業(yè)出版社,2007.
[3]梁棟.Java加密與解密的藝術(shù)[M].北京:機(jī)械工業(yè)出版社,2013.
Research on Text Data Encryption Algorithm in Internet of Things Based on AES
DENG Kui-biao,KONG Yi-yan,ZHAO Juan,ZHAO Qi-fei
(School of Electronics and Information,Liuzhou Vocational&Technical College,Liuzhou 545006)
Recently,the Internet of Things is a dynamic smart network which allows the communication among a great deal of the text data,and makes our life more convenient.However,the security problems of data also come up.Ensures the privacy and security of data based on AES encryption algorithm,this algorithm has been verified effective and feasible by applying the Java language programming.
Internet of Things;Encryption Algorithm;Text Data
1007-1423(2017)10-0011-04
10.3969/j.issn.1007-1423.2017.10.003
鄧奎彪(1970-),男,湖北荊門人,博士研究生,工程師,研究方向?yàn)榛煦缤?、物?lián)網(wǎng)技術(shù)
孔軼艷(1981-),女,廣西柳州人,碩士研究生,研究方向?yàn)樾畔⑴c通信工程
趙娟(1985-),女,湖南省邵陽人,碩士研究生,講師,研究方向?yàn)槲锫?lián)網(wǎng)技術(shù)、數(shù)據(jù)融合技術(shù)
趙啟飛(1982-),男,山東即墨人,博士研究生,工程師,研究方向?yàn)榫W(wǎng)絡(luò)優(yōu)化、能耗優(yōu)化
2017-03-25
2017-04-01
廣西教育廳自然科學(xué)基金項目(No.KY2015YB399)、廣西高校中青年基礎(chǔ)能力提升項目(No.KY2016YB637)