余成波,,錢澤文,閆亞恒
(重慶理工大學(xué) 遠(yuǎn)程測試與控制技術(shù)研究所,,重慶 400054)
摘要:針對(duì)AES密鑰管理中存在的安全性不高和RSA不適合大數(shù)據(jù)量加/解密的缺陷,,為保障用戶的敏感信息以及BLE門禁設(shè)備的重要數(shù)據(jù),本文提出了采用AES與RSA混合的加密體制,。利用AES算法來加/解密敏感數(shù)據(jù),,RSA算法來加/解密AES算法的密鑰。然后,,采用DBMS外層加密方式和字段級(jí)的加密粒度,,在BLE門禁管理系統(tǒng)中實(shí)現(xiàn)對(duì)“敏感數(shù)據(jù)”的加/解密處理,以及混合加密體制下密鑰的管理,,保證了數(shù)據(jù)的安全性與可靠性,。
關(guān)鍵詞:AES;RSA,;BLE,;混合加密;加密粒度
中圖分類號(hào):TP391.1文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.02.006
引用格式:余成波,,錢澤文,,閆亞恒.基于AES與RSA的BLE門禁管理系統(tǒng)的數(shù)據(jù)加密[J].微型機(jī)與應(yīng)用,2017,36(2):17-19.
在信息技術(shù)和計(jì)算機(jī)技術(shù)快速發(fā)展的今天,,尤其“互聯(lián)網(wǎng)+”和“智慧城市”概念的提出,,信息化程度在各行各業(yè)都得到了顯著的提高,隨之而來的便是數(shù)據(jù)安全問題,,數(shù)據(jù)泄露不但影響人們的生活質(zhì)量,,有時(shí)候往往伴隨著巨大的經(jīng)濟(jì)損失。數(shù)據(jù)庫加密技術(shù)是解決這一問題的重要方法之一,,它是密碼學(xué)與數(shù)據(jù)庫技術(shù)結(jié)合的產(chǎn)物,。
根據(jù)加密算法與解密算法所使用的密鑰是否相同,數(shù)據(jù)加密技術(shù)可分為兩大類,一是對(duì)稱加密技術(shù),,例如DES算法和AES算法等,,其中DES算法由于自身密鑰長度較短,其安全性已經(jīng)得不到保證,,在國內(nèi)外的應(yīng)用上已經(jīng)被AES所取代,,AES運(yùn)算速度快、算法簡單可靠,,但密鑰管理上安全性不高,,為了進(jìn)一步增強(qiáng)它的安全性,國內(nèi)外很多學(xué)者對(duì)其進(jìn)行了更深入的研究與優(yōu)化,,比如對(duì)密鑰擴(kuò)展算法的改進(jìn)[1],,對(duì)S盒構(gòu)造方法進(jìn)行優(yōu)化[2]以及提出適合硬件實(shí)現(xiàn)的一種可重構(gòu)的設(shè)計(jì)方式等[3]。二是非對(duì)稱加密技術(shù),,例如RSA算法和ECC算法等,,ECC算法也叫橢圓加密算法,處理速度快,,占用空間小,,但實(shí)現(xiàn)起來比較困難。RSA算法安全性高,,易于理解,,但不適合大數(shù)據(jù)量的加/解密,為了提高運(yùn)算效率,,有人提出了融入中國剩余定理的RSA算法[4],。對(duì)稱加密算法加/解密使用的是同一密鑰,加/解密速度快,。非對(duì)稱加密算法加密和解密使用不同的密鑰,,一個(gè)是公鑰,用來加密數(shù)據(jù),,另一個(gè)是私鑰,,用來解密數(shù)據(jù)[5]。
本文采用對(duì)稱加密算法與非對(duì)稱加密算法相結(jié)合的方法,,首先用AES算法來加密數(shù)據(jù)庫中的敏感數(shù)據(jù),,然后用RSA算法來加密AES算法的密鑰,加密粒度是數(shù)據(jù)庫加密的最小單位,,本文選擇的是字段級(jí),。最后,在BLE(Bluetooth Low Energy)門禁管理系統(tǒng)中實(shí)現(xiàn)了數(shù)據(jù)庫中數(shù)據(jù)的加/解密,,保證了用戶數(shù)據(jù)與設(shè)備數(shù)據(jù)的安全性,。
1AES加密算法
高級(jí)加密標(biāo)準(zhǔn)AES,,也叫做Rijndael加密法,是目前最常用的對(duì)稱加密算法,,它以替換DES和3DES的身份出現(xiàn)。AES是一種帶有可變塊長和可變密鑰長度的迭代分組加密方法[6],,最基本的運(yùn)算單位是字節(jié),,即一個(gè)8 bit串,其數(shù)據(jù)塊(明文)的分組長度被指定為128 bit,,密鑰長度為128 bit,、192 bit或256 bit,相應(yīng)的迭代輪數(shù)分別為10,、12和14,。
在AES算法中,128 bit的明文數(shù)據(jù)可以劃分為16 B,,所以可以依據(jù)順序?qū)⑵渥止?jié)依次復(fù)制到一個(gè)4×4的矩陣中,,四個(gè)字節(jié)一組,這個(gè)矩陣叫做狀態(tài)矩陣,,AES算法的一系列變換都是在這個(gè)狀態(tài)矩陣(state)上進(jìn)行的[7],。同樣,密鑰也可以用字節(jié)的矩陣形式來表示,,矩陣的行數(shù)定為4,,不同的密鑰長度對(duì)應(yīng)的列數(shù)分別為4、6和8[8],。具體如表1所示,。
AES算法每一輪的迭代結(jié)構(gòu)都一樣,每一輪都使用了4個(gè)變換:字節(jié)替代變換,、行移位變換,、列混合變換和輪密鑰加變換。
(1)字節(jié)替代變換(S盒變換)
字節(jié)替代變換是AES算法中唯一的非線性變換,,即用S盒對(duì)狀態(tài)矩陣中的每一個(gè)字節(jié)進(jìn)行相應(yīng)的替換,。S盒是一個(gè)替換表,一個(gè)16×16的矩陣,,替換時(shí),,分別取狀態(tài)矩陣中字節(jié)的高4位和低4位作為行值和列值,在S盒中找到對(duì)應(yīng)的字節(jié)進(jìn)行替換,,相當(dāng)于一個(gè)查表的過稱[9],。S盒的構(gòu)造是AES算法是否安全的關(guān)鍵,S盒由有限域GF(28)上的元素乘法取逆(模多項(xiàng)式為m(x)=x8+x4+x3+x+1)然后做GF(2)上的仿射變換兩步組成,。仿射變換遵循如下運(yùn)算規(guī)則:
其中x0,x1,,…,,x7是有限域GF(28)上的元素乘法取逆的結(jié)果,對(duì)其做仿射變換,,則y0,y1,,…,y7為變換后的結(jié)果,。
(2)行移位變換
行移位是對(duì)S盒替換后的狀態(tài)矩陣的進(jìn)一步操作,,對(duì)每一行進(jìn)行循環(huán)左移,其中第一行保持不變,,第二行循環(huán)左移1個(gè)字節(jié),,第三行循環(huán)左移2個(gè)字節(jié),第四行循環(huán)左移3個(gè)字節(jié)[10],,如圖1所示,。
(3)列混合變換
將行移位后的狀態(tài)矩陣的每一列看做是有限域GF(28)上的一個(gè)4維向量,然后將其與一個(gè)固定的多項(xiàng)式a(x)進(jìn)行模多項(xiàng)式m(x)=x4+1的乘法運(yùn)算,。在AES算法中,,a(x)={03}x3+{01}x2+{01}x+{02},這個(gè)多項(xiàng)式與x4+1互質(zhì),,具有可逆性[9],。
(4)輪密鑰加變換
輪密鑰加變換就是將狀態(tài)矩陣與子密鑰矩陣的對(duì)應(yīng)字節(jié)進(jìn)行異或操作。其中,,每一輪的子密鑰都由初始密鑰通過固定變換得到,。
AES算法流程如圖2所示。
2RSA加密算法
RSA是非對(duì)稱加密算法,,也是目前應(yīng)用最廣泛的公鑰密碼體制,。RSA算法基于一個(gè)數(shù)論中的事實(shí)——分解大整數(shù)的困難性:計(jì)算兩個(gè)大素?cái)?shù)的乘積很容易,但要對(duì)其進(jìn)行分解卻很困難[11],。RSA算法密鑰長度可變,,目前使用的密鑰長度一般不小于1 024 bit,加密時(shí)先將明文進(jìn)行分組,,每個(gè)分組的數(shù)據(jù)長度不允許超出密鑰長度[12],。密鑰長度與安全性成正比關(guān)系,密鑰越長則安全性越高,,相應(yīng)地,,密鑰越長則其加密與解密效率就越低,處理速度越慢[13],。所以,,RSA不適合大數(shù)據(jù)量的加/解密。
RSA算法描述如下:
(1)密鑰生成
?、龠x取兩個(gè)保密的大素?cái)?shù)p和q,。
?、谟?jì)算n=pq,φ(n)=(p-1)(q-1),,其中φ(n)是n的歐拉函數(shù)值,。
③隨機(jī)選一個(gè)整數(shù)e,,1<e<φ(n),,滿足(e,φ(n))=1,即e與φ(n)互質(zhì),。
④計(jì)算e的乘法逆元d,,滿足ed≡1modφ(n),。
⑤公鑰為(e,n),,私鑰為(d,n),。
(2)加密
c=memodn,其中m是待加密明文,,c是明文,。
(3)解密
m=cdmodn,將密文轉(zhuǎn)換為明文,。
由解密可以看出,,RSA算法依賴于私鑰(d,n),只有將n正確分解,,得出p和q,,才能得出d,從而破解RSA算法,。
3混合加密體制
AES算法以及RSA算法在數(shù)據(jù)加/解密上都有各自的特點(diǎn),,AES是目前最常用的一種對(duì)稱加密算法,其密鑰長度最長只有256 bit,,相較于RSA算法更短,,所以有很強(qiáng)大的數(shù)據(jù)處理能力,加/解密效率高[14],。但AES數(shù)據(jù)加密和解密使用的是同一密鑰,,所以密鑰管理的安全性要求較高。RSA算法加密和解密使用不同的密鑰,,密鑰長度相較于AES算法提高很多,,所以加/解密效率不高,不適合大數(shù)量的操作,。但RSA算法的密鑰管理很方便,。針對(duì)這兩種算法各自的特點(diǎn),,本文采取AES與RSA相結(jié)合的混合加密體制。AES用來加/解密BLE門禁管理系統(tǒng)中敏感字段的數(shù)據(jù),,而RSA用來保護(hù)AES的密鑰,。具體結(jié)構(gòu)如圖3所示。
(1)混合加密體制的數(shù)據(jù)加密
?、偈褂妹荑€為K的AES加密算法,,假設(shè)其為E1,那么明文(data)經(jīng)加密后為E1(data,k),,即密文數(shù)據(jù),。
②假設(shè)RSA算法為E2,,使用RSA算法的公鑰PK對(duì)密鑰K進(jìn)行加密,,則加密后的K為E2(K,PK)。
(2)混合加密體制的數(shù)據(jù)解密
?、倮肦SA算法的私鑰SK對(duì)E2(K,PK)進(jìn)行解密,,得到AES算法的密鑰K。
?、谟妹荑€K進(jìn)行數(shù)據(jù)解密,,從而得到數(shù)據(jù)的明文(data)形式。
4混合加密體制在BLE門禁管理系統(tǒng)中的實(shí)現(xiàn)
BLE門禁管理系統(tǒng)是主要針對(duì)BLE設(shè)備及用戶的一個(gè)管理軟件,。該管理軟件主要由管理員信息管理模塊,、設(shè)備信息管理模塊、用戶信息管理模塊以及加密系統(tǒng)管理模塊四部分組成,。加密系統(tǒng)管理模塊主要負(fù)責(zé)AES與RSA密鑰的產(chǎn)生與更新,,是完成數(shù)據(jù)加/解密的核心。
本文在BLE門禁管理系統(tǒng)中采用AES與RSA混合加密體制完成了對(duì)數(shù)據(jù)庫中管理用戶信息的用戶信息表的加密,,加密的字段是用戶的家庭住址,。
當(dāng)管理員沒有對(duì)用戶信息表的更改權(quán)限時(shí),得到的是數(shù)據(jù)庫中被加密字段的密文形式,。
當(dāng)管理員對(duì)表有更改權(quán)限時(shí),,得到的則是家庭住址字段解密后的明文信息。
5結(jié)論
本文分別介紹了AES與RSA算法,,在進(jìn)行分析之后,,充分利用兩種算法的優(yōu)點(diǎn),提出采用AES與RSA混合加密體制,,完成了混合加密體制在BLE門禁管理系統(tǒng)中的應(yīng)用與實(shí)現(xiàn),,解決了混合加密體制中密鑰管理的問題,最終保證了后臺(tái)數(shù)據(jù)庫中敏感數(shù)據(jù)的安全,。不僅如此,,隨著互聯(lián)網(wǎng)的普及以及信息化程度的提高,,本文所做的工作也為數(shù)據(jù)加密技術(shù)將來在其他領(lǐng)域的應(yīng)用(比如“智能家居”領(lǐng)域)提供了一些新的思路。
參考文獻(xiàn)
?。?] 胡亮,袁巍,于孟濤,等.單向性策略與AES密鑰生成算法的改進(jìn)[J]. 吉林大學(xué)學(xué)報(bào)(工學(xué)版),2009,,39(1):137-142.
[2] 王興剛.基于RSA和AES混合算法的加密芯片設(shè)計(jì)[D].濟(jì)南:濟(jì)南大學(xué),,2011.
?。?] RACHH R R, MOHN P V A, ANAMI B S.Efficient implementations forbi AES encryption and decryption[J].Circuits Systems and Signal Processing,2012,31(5):1765-1785.
[4] 費(fèi)曉飛,胡捍.CRTRSA算法安全性分析[J].微計(jì)算機(jī)信息,2009,,25(3):5455,38.
?。?] 許春香,李發(fā)根,汪小芬,等.現(xiàn)代密碼學(xué)(第二版)[M].北京:清華大學(xué)出版社,2015.
?。?] 鄭東,李祥學(xué),黃征,等.密碼學(xué)——密碼算法與協(xié)議(第二版)[M].北京:電子工業(yè)出版社,2014.
?。?] 羅光明.基于AES和RSA的網(wǎng)絡(luò)數(shù)據(jù)加密方案[J].現(xiàn)代電子技術(shù),2015,38(9):87-89,95.
?。?] 王先培,張愛菊,熊平,等.新一代數(shù)據(jù)加密標(biāo)準(zhǔn)——AES[J].計(jì)算機(jī)工程,2003,,29(3):69-70,,186.
[9] MURPHY S, ROBSHAW M.New observations on Rijndael[J].Journal of Software,2013,7(13):100-105.
?。?0] 劉自偉,羅燕琪,段琦.加密算法與密鑰生成技術(shù)在數(shù)據(jù)庫加密中的應(yīng)用[J].計(jì)算機(jī)時(shí)代,2007(6):1-3.
?。?1] 劉陽.數(shù)據(jù)庫加密技術(shù)的分析[J].硅谷,2011(22):26-27.
[12] 王建.數(shù)據(jù)庫加密系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2014.
?。?3] 王哲慧.數(shù)據(jù)庫加密算法及其密鑰技術(shù)研究[D].長春:長春理工大學(xué),2011.
?。?4] 左曉靜,王榮.一種基于數(shù)據(jù)敏感度的混合型數(shù)據(jù)庫加密策略[J].河南科學(xué),2015,33(4):574-577.