宋賢睿,張淑娟,顧廣宇,蔡 翔
(國網安徽省電力公司電力科學研究院 安徽 安慶230601)
一種面向數據庫的分類數據加密研究
宋賢睿,張淑娟,顧廣宇,蔡 翔
(國網安徽省電力公司電力科學研究院 安徽 安慶230601)
針對數據庫中分類數據在分發過程中信息安全問題日漸突出問題,文中以分類數據加密作為切入點,介紹了公有、敏感和隱私3類數據的密鑰管理。通過設計面向數據庫傳輸接口,實現對非法數據過濾處理。借助對稱加密算法分析了3類數據的加密分類。此外,給出了數據庫3類數據在加密實驗,結果顯示:在處理40條數據加密時,公有、敏感和隱私數據加密用時分類為0.178 s、0.201 s和0.390 s,隨著數據量的增加,總體加密用時不會增加過多,系統效率在可控范圍內。
分類數據;數據加密;對稱加密;數據過濾
近年來隨著互聯網的快速發展,眾多資源的數據化、智能化與信息化成為資源信息綜合利用的關鍵[1]。在面對爆炸式增長的數據量時,終端數據庫的存儲容量[2]與信息安全性[3]日漸成為數據資源存儲的瓶頸,尤為突出的分類數據信息針對性的保護機制對數據庫安全考核提出了更大的挑戰[4]。傳統的數據加密算法可分為對稱加密與非對稱加密[5],它們僅僅依靠添加字符串編碼的形式對數據庫中所有數據進行加密,進而加大了數據重疊處的加密云端并且加密的方式缺乏針對性[6]。在加密的過程中使用數據密鑰獨立的完成明文與算法的融合,導致了眾多數據信息的輸出密文不盡相同,即加大了解碼的難度。因此,本研究在傳統數據加密算法的基礎上,首先將數據庫中的數據信息劃分為公有數據、敏感數據和隱私數據3類數據,依據每類數據信息的特點,針對性的設計了數據密鑰的編碼保護,以此達到保護數據庫分類數據信息的安全。
1.1 分類管理
數據庫中的數據信息大體上可以分為3類:公有數據、敏感數據和隱私數據。其中,敏感數據和隱私數據需要通過密鑰的加密確保數據庫的安全性。本研究在管控每個加密數據時所采用的加密密鑰依據用戶登錄權限與數字字典表來確定[7],再采用二級密鑰的方式管理每個加密密鑰數據[8]。由于加密密鑰從初始化的生成到數據庫中更新存儲以至最后的密鑰失效完成了整個生命周期性的轉化,這為數據庫中的及時性提供了安全保證。敏感數據依據用戶登錄權限與數字字典表來查詢對應的數據密鑰進行加密,而數據密鑰則利用根密鑰的方式在數據路中進行加密存儲;隱私密鑰則由兩個部分組成:用戶存儲和根密鑰加密存儲,兩種方式的數據加密為達到數據庫中的隱私數據安全性目的。
本研究面向數據庫的安全加密構造了分類數據加密算法,該算法在訪問數據時通過串聯用戶數據傳輸接口模塊并設置用戶使用權限,利用數據字典查詢的方式分別使用加密引擎模塊和密鑰管理模塊組成[9]。用戶訪問數據庫中的公有數據、敏感數據和隱私數據,根據用戶權限表與數據字典來構建分類數據與對應數據密鑰的關系。具體的數據庫分類數據加密模型如圖1所示。

圖1 數據庫分類數據加密模型
1.2 數據接口設計
本研究為了統一用戶將數據信息傳輸到數據庫的接口,設計了用戶登錄權限的查驗并將輸入的數據進行篩選過濾,最后統一返回錯誤提示信息。根據用戶登錄權限對用戶的真實身份與權限進行驗證[10],在驗證用戶信息合法后再依據業務邏輯流程對輸入的數據信息進行統一驗證,查看數據信息是否符合數據庫系統的要求,最后對符合要求的數據信息進行關鍵字比對以達到數據分類的效果。當用戶身份不滿足正常的輸入數據或者數據信息不合法,則對客戶端的用戶提示錯誤信息反饋提示,以防止數據庫分類數據的信息外泄,進而達到保護數據庫中數據信息的安全。具體的用戶輸入數據過濾的流程如圖2所示。

圖2 用戶輸入數據過濾流程
2.1 對稱加密
對稱加密算法依據不同明文加密方式可將數據編碼劃分為:流型密碼和分層密碼[11],其中,分層密碼按照128 bit輸入到輸出操作完成進行編碼分層,通過利用循環迭代加密的方式將字符串中的字節進行替換、編碼位置進行移位和輪流編碼密鑰來達到數據信息加密的效果[12]。在數據密鑰經過加密輸入后得到的擴展模塊可將每個數據節點容量擴充為256 bit或者512 bit進行加密運算。
假設A和B分別表示加密前輸入的明文和加密后輸出的密文,則數據加密操作可表示為:

其中,X和k分別表示輪流加密運算與子密碼,可見總共輪流加密了r+2次,對應的子密碼為k1,k2,…,k(r+2);而 M、N 和 L分別代表字符串中的字節進行替換、編碼位置進行移位和輪流編碼密鑰。因此,在r-1次加密運算后,將字符串中的字節進行替換、編碼位置進行移位與第r個密鑰輪流加密運算產生密文。
2.2 加密流程
本研究中將數據庫中的數據分為公有、敏感和隱私3類數據,當用戶將數據信息通過數據接口過濾后傳輸到對應的加密引擎進行不同的加密操作。其中,公有數據屬于共享模式數據信息,使用的數據密鑰為 K={k1,k2,…,kn},而敏感和隱私數據是每個用戶私有的,則利用私人密鑰分別完成數據密鑰集合{U1,U2}={u1,u2,…,un}。 其中,對于隱私數據加密流程如圖3所示。

圖3 隱私數據加密流程
2.3 分類加密
1)共有數據:由于共有數據被共享給所有用戶進而不需要加密操作,在加密過程中可被數據庫篩選后直接進行存儲。
2)敏感數據:在對系統內部共享的數據信息不需要進行加密操作,方便本系統內部直接訪問數據庫,以達到數據資源共享的目的;而對于跨系統操作的用戶需要進行加密操作,這種操作不僅對不同用戶存儲的數據信息分別進行加密,而且在外部客戶端訪問數據庫時仍然進行訪問檢驗,使用數據密鑰完成數據的加密。加密算法依據數據粒度篩選數據庫中密鑰的字符串編碼位數[13],即加密粒度愈小安全度愈高。然而單一依靠細化粒度又加大了解碼過程中管理的難度[14],因此,本研究通過設置動態加密的數據字典完成不同使用頻率與危險等級綜合衡量下的加密粒度,盡可能的減少數據密鑰的數量且加快了數據訪問的速度。
在訪問數據庫中的敏感數據信息時,根據加密的字符串名稱和數據密鑰管理模塊共同查詢敏感數據所對應的數據密鑰,明文A使用加密算法后產生密文B的表達式如下:

3)隱私數據:供每個用戶查尋自己的私人數據信息,而對系統內的其他用戶采取保密性的隔離。在數據加密操作處理過程匯總,產生的密文B僅存儲在個人用戶數據庫中。根據用戶訪問權限與數字字典表綜合查詢用戶的隱私數據密鑰,通過隨機生成由用戶密碼與系統編碼的字符串完成數據編碼的拼接[15-17]。其中,由根密鑰加密隨機生成的字符串添加到隱私數據后存儲到數據庫中。在用戶訪問自己的隱私數據時,隨機字符串通過拼接隱私密鑰解密得到,操作表達式為:

3.1 實驗配置
本研究主要在數據加密算法的基礎上細化了對數據庫中的分類數據加密處理,同時,使用二級密鑰的方式管理每個加密密鑰數據,在確保敏感數據和隱私數據安全性的同時也兼顧了加密系統的粒度加解密的開銷。由于用戶在向數據庫發起訪問請求時會一次提取幾條數據分別進行處理。在面對包含多個字符串字段的數據時,采用針對性的數據加密算法對數據庫中的數據進行加密,使得數據內容安全性更高且不會輕易泄露。本研究依據現有數據庫的特點,為了比較分類數據加密與傳統數據加密的特點,使用javaEE語言及對應加密算法模擬數據庫中數據加密所用時間開銷。具體環境參數如下:

表1 分類數據加密實驗配置
分別抽取數據庫中6張表格40條、80條和120條數據信息,每條數據包含3個字符串字段,即分別共有120個、240個和360個數據項。假設有3個用戶在存取每個數據項過程中都需要進行加密保護。具體的數據字典設置信息如表2所示。

表2 數據字典設置
3.2 實驗分析
對所有需要加密的數據項采用數據加密算法,再與本研究提出的分類數據針對性的數據字典方式加密算法進行加密用時對比,3個用戶進行10次數據存取運行結果如表3所示。

表3 加密用時對比
由表3可見,傳統的數據加密算法用時明顯高于本研究的分類數據加密用時,這是由于傳統的數據加密算法對存儲在數據庫中的所有數據都實行每條數據項的加密操作,并且加密每個數據項時都會產生新的密鑰并進行存儲。而本研究提出的分類數據加密首先篩選出了信息類型并通過評估數據危險等級再進行數據加密操作,同時,通過查找相應密鑰并返回加快了數據加密的時間開銷。其中,敏感數據只需要通過查詢數據字典表來確定密鑰,所以用戶存取數據過程中所需時間相對較長;而隱私數據則需要在驗證用戶登錄權限并兼顧查詢數據字典表,兩者同時對隱私數據進行雙重驗證與加密,因此加密用時相對更高。通觀共有、敏感和隱私3類數據的總體加密時間隨著數據項的增大,系統處理的運行時間增加不會太多且系統效率均在可控范圍內。
3.3 性能評價
傳統的數據加密算法對存儲在數據庫中的所有數據采取一項一密的加密方式,共產生了120個、240個和360個數據密鑰,而本研究僅考慮數據信息類型且不受數據密鑰數量影響,分類對數據進行一類一密的數據密鑰操作,在密鑰管理方面節省了數據庫系統運行的大量內存運行與時間開始。在處理棉稈數據加密時,依據動態選取數據字典細化數據加密粒度,不僅可以減少密鑰管理的負擔且密鑰的讀取更加便利,而且隨著數據量的增加系統運行時間增加平穩。隱私數據在加密的同時加入了用戶登錄權限的驗證,極大的減少了密鑰泄露的可能性,從而確保了隱私數據被其他用戶竊取的可能性。將數據庫中的數據劃分3類結合二級密鑰管理方式綜合提高了數據庫對數據存儲的安全性,并且節省了數據存儲時間與空間。
本研究在傳統數據加密的基礎上,依據數據存取特點和受危等級劃分了公有、敏感和隱私3類數據類型。相對于傳統數據加密對數據項進行的一項一密的加密方式,用戶在發起數據存取過程匯總,數據庫的時間開銷增加較小,密鑰管理方式更加便利。極大的提高了公有數據的共享途徑,更好的保護了數據庫中的敏感數據,利用用戶登錄權限驗證和數據字典表雙重保障了隱私數據的安全。通過設計用戶數據接口降低了數據存取過程中數據庫所承載的壓力,將數據過濾操作交由后臺執行,減少了系統處理數據信息的時間開銷。根據動態選取數據字典加密粒度的方式增加了數據的安全性,同時也減輕了對密鑰管理的復雜度,保護了數據庫中眾多數據的安全。
[1]肖會敏,侯宇.互聯網+環境下科技信息資源共享面臨的問題及其對策 [J].情報工程,2015,1(6):91-97.
[2]劉偉.大容量NAND閃存數據庫存儲管理技術應用分析[J].數字技術與應用,2013(4):237.
[3]曾建國.大數據時代數據庫信息系統安全風險評估技術分析 [J].信息安全與技術,2015,6(9):27-28.
[4]李超零,陳越,譚鵬.基于分解與加密的云數據庫隱私保護機制研究[J].信息工程大學學報,2012,13(3):376-384.
[5]朱曉露,楊清,劉格非.一種基于身份認證數據加密算法的研究與設計[J].計算機工程與科學,2012,34(12):60-65.
[6]覃遵躍,黃云,蔡國民,等.支持XML插入更新的編碼方法[J].計算機應用,2012,32(12):3540-3543.
[7]李湘鋒,趙有健,全成斌.對稱密鑰加密算法在IPsec協議中的應用[J].電子測量與儀器學報,2014,28(1):75-83.
[8]苗杰,錢強,高尚.基于AES加密算法的數據庫二級密鑰技術 [J].計算機系統應用,2013,22(4):79-82.
[9]胡汝榮,雒江濤,向程超.CDMA2000 1x EV-DO網絡RADIUS協議解碼方法的研究與實現 [J].南京郵電大學學報:自然科學版,2014,34(3):80-84.
[10]陳超,張瑞霞.基于VB程序數據庫登錄權限問題的研究[J].現代電子技術,2012,35(6):28-32.
[11]俞斌.對“一種超混沌圖像加密算法的安全性分析及其改進”的選擇明文攻擊[J].計算機應用研究,2013,30(2):510-512.
[12]張雪鋒,范九倫.一種自適應的循環迭代數字圖像加密算法[J].西安郵電學院學報,2012,17(3):1-9.
[13]張雪芹,徐金瑜,顧春華.基于本體的信息安全漏洞關聯分析 [J].華東理工大學學報:自然科學版,2014,40(1):125-131.
[14]陳銳,楊海鋼,王飛,等.基于粗粒度可重構陣列結構的多標準離散余弦變換設計[J].電子與信息學報,2015,37(1):206-213.
[15]李紅凱,裘國永,王濤.基于DNA隨機編碼的真彩圖加密算法 [J].計算機應用研究,2016,33(4):1132-1136.
[16]謝春思,李軍玲.基于動態加密算法的數據處理技術開發[J].工業儀表與自動化裝置,2013(1):105-107.
[17]龍強,劉小華.基于非對稱密碼體制的二維碼加密算法[J].重慶師范大學學報:自然科學版,2017(3):91-95.
Research on classified of data encryption for database
SONG Xian-rui,ZHANG Shu-juan,GU Guang-yu,CAI Xiang
(State Grid Anhui Electric Power Company Electric Power Research Institute,Anqing 230601,China)
In this paper,we use classified data encryption as the entry point to introduce the key management of the whole,sensitive and private three kinds of data in order to solve the problem of information security in the process of distributing data in the database.Through the design of databaseoriented transmission interface,to achieve the illegal data filtering.The encryption classification of three kinds of data is analyzed by symmetric encryption algorithm.In addition,three types of data in the database are given in the encryption experiment.The results show that the encryption of public,sensitive and private data is classified as 0.178 s,0.201 s and 0.390 s when dealing with 30 data encryption.With the increase of data volume,The overall encryption will not increase with too much time,the system efficiency in the controllable range.
classification data; data encryption; symmetric encryption; data filtering
TN918.3
:A
:1674-6236(2017)14-0005-04
2016-10-04稿件編號:201610005
國家自然科學基金資助項目(51307130;51477130)
宋賢睿(1986—),男,安徽安慶人,碩士,工程師。研究方向:信息安全、信息化架構、電子數據取證。