鄧奎彪,孔軼艷,趙娟,趙啟飛
(柳州職業(yè)技術(shù)學(xué)院電子信息工程系,柳州 545006)
基于AES物聯(lián)網(wǎng)文本數(shù)據(jù)加密算法研究
鄧奎彪,孔軼艷,趙娟,趙啟飛
(柳州職業(yè)技術(shù)學(xué)院電子信息工程系,柳州 545006)
物聯(lián)網(wǎng)是最近出現(xiàn)的動(dòng)態(tài)智能網(wǎng)絡(luò),這種網(wǎng)絡(luò)能讓大量的文本數(shù)據(jù)在上面?zhèn)鬏敚@極大地方便人們的生活。然而,隨之出現(xiàn)數(shù)據(jù)安全問(wèn)題。利用AES加密算法保證數(shù)據(jù)的隱私性和安全性,最后,用Java語(yǔ)言編程驗(yàn)證該算法的有效性和可行性。
物聯(lián)網(wǎng);加密算法;文本數(shù)據(jù)
最近幾年物聯(lián)網(wǎng)技術(shù)得到了蓬勃發(fā)展,共享文本數(shù)據(jù)正以前所未有的速度呈幾何級(jí)數(shù)在物聯(lián)網(wǎng)中增長(zhǎng)和累積,然而這些共享的文本數(shù)據(jù)與人們的隱私生活有著千絲萬(wàn)縷的關(guān)系,且這些文本數(shù)據(jù)相互之間的關(guān)聯(lián)度非常高,因此對(duì)物聯(lián)網(wǎng)中共享文本數(shù)據(jù)的傳輸安全及隱私的保護(hù)變得越來(lái)越來(lái)重要,實(shí)事上,物聯(lián)網(wǎng)文本數(shù)據(jù)傳輸安全問(wèn)題隨著物聯(lián)網(wǎng)的廣泛應(yīng)用已為一個(gè)新的重要的熱點(diǎn)問(wèn)題。由于物聯(lián)網(wǎng)應(yīng)用系統(tǒng)中的文本數(shù)據(jù)大多是一些應(yīng)用場(chǎng)景的實(shí)時(shí)數(shù)據(jù),那么就要求加密算法不僅要有很高的安全度,并且要求加密實(shí)現(xiàn)能在有效的短時(shí)間內(nèi)完成。DES算法由于分組相對(duì)不長(zhǎng)、密鑰又短、密碼生命周期也短、運(yùn)算速度既慢且安全度又低,不難抵御差分攻擊和相關(guān)密鑰攻擊,橢圓曲線密碼學(xué)(ECC)是基于橢圓曲線數(shù)學(xué)的一種公鑰密碼的方法,橢圓密碼體制與RSA、DSA等公鑰體制相比有以下兩個(gè)優(yōu)點(diǎn):一是對(duì)帶寬要求比相對(duì)低,二是存儲(chǔ)空間占用比較小,但有一個(gè)不可忽視的缺點(diǎn),其加密和解密操作的實(shí)現(xiàn)明顯比其他機(jī)制花費(fèi)的時(shí)間要長(zhǎng)很多。由于它的速度較慢,那么在物聯(lián)網(wǎng)數(shù)據(jù)傳輸?shù)倪^(guò)程中無(wú)法實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)信息加密。差分攻擊、相關(guān)密鑰攻擊等各種針對(duì)DES算法的所有攻擊方法,對(duì)AES算法沒(méi)有實(shí)質(zhì)性威脅。到目前為止,還沒(méi)有官方報(bào)道AES算法曾被破譯過(guò)。密鑰建立時(shí)間短,靈敏性好、內(nèi)存要求低是AES算法的三大特點(diǎn),因此AES算法非常適合于文本數(shù)據(jù)傳輸在物聯(lián)網(wǎng)中的加密。
AES算法是屬于一種典型的對(duì)稱加密算法,AES算法中的所有操作以字節(jié)(Byte)作為基本單位,算法用到的變量都以字節(jié)作為基本單位。所有的加密過(guò)程都是在一個(gè)4×4的字節(jié)矩陣上實(shí)施的,這個(gè)矩陣也被稱之為“體(state)”,其初值就是一個(gè)明文區(qū)塊(矩陣中一個(gè)元素大小和明文區(qū)塊中的一個(gè)Byte相對(duì)應(yīng))。算法從輪密鑰加開(kāi)始,用N表示一個(gè)數(shù)據(jù)分組加密總的輪數(shù)。AES算法前N-1輪由字節(jié)代替、行移位、列混合和輪密相加這四種不同變換構(gòu)成。但是在最后一輪只有三個(gè)變換,即第N輪沒(méi)有變換列混合。需要特別指出的是最前面的第一輪有一個(gè)輪密鑰相加起始的單變換,這個(gè)起始的單變換可以看作是0輪。AES加密算法的流程見(jiàn)下面的圖1。
從上面的流程圖中不難發(fā)現(xiàn)為了增加算法的安全性,首尾都使用了輪密鑰加。如果將其他不需要密鑰的階段放在了首尾的話,在不知道密鑰的情形下就能夠很容易求出他的逆,這樣就容易降低算法的安全性。
圖1 AES算法加密的框圖
下面簡(jiǎn)要說(shuō)明4個(gè)變換:
①字節(jié)代替(SubBytes):通過(guò)一個(gè)非線性的替換函數(shù)(S盒),把矩陣中的每一個(gè)字節(jié)依據(jù)下面的規(guī)則替換成為一個(gè)新的字節(jié)。具體的規(guī)則是:以該字節(jié)的高4位作為行值,低4位作為列值,在S盒中找出對(duì)應(yīng)行和列,其行和列相交處的元素就是對(duì)應(yīng)的新字節(jié)。例如,十六進(jìn)制數(shù){57}。在S盒中對(duì)應(yīng)的行和列分別是5和7,S盒中5行和7列相交對(duì)應(yīng)的元素值是{5B},也就是十六進(jìn)制數(shù){57}被{5B}代替。
②行移位變換(ShiftRows):實(shí)質(zhì)上是一個(gè)簡(jiǎn)單的置換,就是將矩陣中除第一行外其它行進(jìn)行循環(huán)式移位。具體的算法是:矩陣的第一行字節(jié)固定不動(dòng),然后把第二行字節(jié)循環(huán)左移一個(gè)字節(jié),其次再把矩陣的第三行字節(jié)循環(huán)左移兩個(gè)字節(jié),最后是的第四行循環(huán)左移三個(gè)字節(jié),詳細(xì)的變化如圖2所示。
③列混合(MixColumns):是為了充分混合矩陣中各個(gè)直列的操作,也是AES最具技巧性的部分,該步驟使用線性轉(zhuǎn)換來(lái)混合每列內(nèi)的四個(gè)字節(jié)。
④輪密鑰加(AddRoundKey):是指當(dāng)前分組和密鑰擴(kuò)展的一部分進(jìn)行按位異或。輪密鑰加變換過(guò)程雖然相對(duì)比較簡(jiǎn)單,卻影響了矩陣(State)中的每一位,尤其是密鑰擴(kuò)展的復(fù)雜性直接影響AES算法的安全。
圖2 行移位變換
關(guān)于AES解密算法實(shí)現(xiàn)有多種可行的方案,在這里我們采用直接解密算法。首先利用四個(gè)步驟:逆字節(jié)代替(InvSubBytes)、逆行移位(InvShiftRows)、逆列混合(InvMixCloumns)和輪密鑰加(AddRoundKey)的逆,然后將次序與加密中的完全顛倒過(guò)來(lái),直接解密算法能夠很容易得到所要的真實(shí)的文本數(shù)據(jù)。直接解密算法步驟本身和加密法不同,并且出現(xiàn)的先后的順序也不一樣。其解密算法框圖見(jiàn)圖3。
圖3 AES算法解密的框圖
Java是一種非常簡(jiǎn)潔的“面向?qū)ο蟆背绦蛟O(shè)計(jì)語(yǔ)言,使用Java語(yǔ)言編寫的程序,只需要做少量的修改,甚至有時(shí)根本不需要修改即可在Windows、MacOS、UNIX不同的平臺(tái)上運(yùn)行。正因?yàn)槿绱薐ava語(yǔ)言得到廣泛應(yīng)用,下面給出文本數(shù)據(jù)加密解密的AES程序中的Java語(yǔ)言關(guān)鍵代碼。
在Windows平臺(tái)上用記事本編寫Java程序,編譯運(yùn)行得到下面的界面,很顯然AES加密解密對(duì)文本的隱私能起到很好的保護(hù)作用。
由于信息技術(shù)的不斷發(fā)展,文本數(shù)據(jù)在物聯(lián)網(wǎng)中的運(yùn)用會(huì)越來(lái)越多。那么對(duì)這些數(shù)據(jù)的隱私保護(hù)應(yīng)該是大勢(shì)所趨,將AES算法用于物聯(lián)網(wǎng)中的數(shù)據(jù)加密和解密問(wèn)題,具有很現(xiàn)實(shí)的意義。用Java語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)演示過(guò)程有助于理解AES算法的基本思想和實(shí)現(xiàn)過(guò)程。
[1]李興華.Java開(kāi)發(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áng)人,碩士研究生,講師,研究方向?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é)基金項(xiàng)目(No.KY2015YB399)、廣西高校中青年基礎(chǔ)能力提升項(xiàng)目(No.KY2016YB637)