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