宋賢睿,張淑娟,顧廣宇,蔡 翔
(國網(wǎng)安徽省電力公司電力科學研究院 安徽 安慶230601)
一種面向數(shù)據(jù)庫的分類數(shù)據(jù)加密研究
宋賢睿,張淑娟,顧廣宇,蔡 翔
(國網(wǎng)安徽省電力公司電力科學研究院 安徽 安慶230601)
針對數(shù)據(jù)庫中分類數(shù)據(jù)在分發(fā)過程中信息安全問題日漸突出問題,文中以分類數(shù)據(jù)加密作為切入點,介紹了公有、敏感和隱私3類數(shù)據(jù)的密鑰管理。通過設計面向數(shù)據(jù)庫傳輸接口,實現(xiàn)對非法數(shù)據(jù)過濾處理。借助對稱加密算法分析了3類數(shù)據(jù)的加密分類。此外,給出了數(shù)據(jù)庫3類數(shù)據(jù)在加密實驗,結果顯示:在處理40條數(shù)據(jù)加密時,公有、敏感和隱私數(shù)據(jù)加密用時分類為0.178 s、0.201 s和0.390 s,隨著數(shù)據(jù)量的增加,總體加密用時不會增加過多,系統(tǒng)效率在可控范圍內(nèi)。
分類數(shù)據(jù);數(shù)據(jù)加密;對稱加密;數(shù)據(jù)過濾
近年來隨著互聯(lián)網(wǎng)的快速發(fā)展,眾多資源的數(shù)據(jù)化、智能化與信息化成為資源信息綜合利用的關鍵[1]。在面對爆炸式增長的數(shù)據(jù)量時,終端數(shù)據(jù)庫的存儲容量[2]與信息安全性[3]日漸成為數(shù)據(jù)資源存儲的瓶頸,尤為突出的分類數(shù)據(jù)信息針對性的保護機制對數(shù)據(jù)庫安全考核提出了更大的挑戰(zhàn)[4]。傳統(tǒng)的數(shù)據(jù)加密算法可分為對稱加密與非對稱加密[5],它們僅僅依靠添加字符串編碼的形式對數(shù)據(jù)庫中所有數(shù)據(jù)進行加密,進而加大了數(shù)據(jù)重疊處的加密云端并且加密的方式缺乏針對性[6]。在加密的過程中使用數(shù)據(jù)密鑰獨立的完成明文與算法的融合,導致了眾多數(shù)據(jù)信息的輸出密文不盡相同,即加大了解碼的難度。因此,本研究在傳統(tǒng)數(shù)據(jù)加密算法的基礎上,首先將數(shù)據(jù)庫中的數(shù)據(jù)信息劃分為公有數(shù)據(jù)、敏感數(shù)據(jù)和隱私數(shù)據(jù)3類數(shù)據(jù),依據(jù)每類數(shù)據(jù)信息的特點,針對性的設計了數(shù)據(jù)密鑰的編碼保護,以此達到保護數(shù)據(jù)庫分類數(shù)據(jù)信息的安全。
1.1 分類管理
數(shù)據(jù)庫中的數(shù)據(jù)信息大體上可以分為3類:公有數(shù)據(jù)、敏感數(shù)據(jù)和隱私數(shù)據(jù)。其中,敏感數(shù)據(jù)和隱私數(shù)據(jù)需要通過密鑰的加密確保數(shù)據(jù)庫的安全性。本研究在管控每個加密數(shù)據(jù)時所采用的加密密鑰依據(jù)用戶登錄權限與數(shù)字字典表來確定[7],再采用二級密鑰的方式管理每個加密密鑰數(shù)據(jù)[8]。由于加密密鑰從初始化的生成到數(shù)據(jù)庫中更新存儲以至最后的密鑰失效完成了整個生命周期性的轉化,這為數(shù)據(jù)庫中的及時性提供了安全保證。敏感數(shù)據(jù)依據(jù)用戶登錄權限與數(shù)字字典表來查詢對應的數(shù)據(jù)密鑰進行加密,而數(shù)據(jù)密鑰則利用根密鑰的方式在數(shù)據(jù)路中進行加密存儲;隱私密鑰則由兩個部分組成:用戶存儲和根密鑰加密存儲,兩種方式的數(shù)據(jù)加密為達到數(shù)據(jù)庫中的隱私數(shù)據(jù)安全性目的。
本研究面向數(shù)據(jù)庫的安全加密構造了分類數(shù)據(jù)加密算法,該算法在訪問數(shù)據(jù)時通過串聯(lián)用戶數(shù)據(jù)傳輸接口模塊并設置用戶使用權限,利用數(shù)據(jù)字典查詢的方式分別使用加密引擎模塊和密鑰管理模塊組成[9]。用戶訪問數(shù)據(jù)庫中的公有數(shù)據(jù)、敏感數(shù)據(jù)和隱私數(shù)據(jù),根據(jù)用戶權限表與數(shù)據(jù)字典來構建分類數(shù)據(jù)與對應數(shù)據(jù)密鑰的關系。具體的數(shù)據(jù)庫分類數(shù)據(jù)加密模型如圖1所示。
圖1 數(shù)據(jù)庫分類數(shù)據(jù)加密模型
1.2 數(shù)據(jù)接口設計
本研究為了統(tǒng)一用戶將數(shù)據(jù)信息傳輸?shù)綌?shù)據(jù)庫的接口,設計了用戶登錄權限的查驗并將輸入的數(shù)據(jù)進行篩選過濾,最后統(tǒng)一返回錯誤提示信息。根據(jù)用戶登錄權限對用戶的真實身份與權限進行驗證[10],在驗證用戶信息合法后再依據(jù)業(yè)務邏輯流程對輸入的數(shù)據(jù)信息進行統(tǒng)一驗證,查看數(shù)據(jù)信息是否符合數(shù)據(jù)庫系統(tǒng)的要求,最后對符合要求的數(shù)據(jù)信息進行關鍵字比對以達到數(shù)據(jù)分類的效果。當用戶身份不滿足正常的輸入數(shù)據(jù)或者數(shù)據(jù)信息不合法,則對客戶端的用戶提示錯誤信息反饋提示,以防止數(shù)據(jù)庫分類數(shù)據(jù)的信息外泄,進而達到保護數(shù)據(jù)庫中數(shù)據(jù)信息的安全。具體的用戶輸入數(shù)據(jù)過濾的流程如圖2所示。
圖2 用戶輸入數(shù)據(jù)過濾流程
2.1 對稱加密
對稱加密算法依據(jù)不同明文加密方式可將數(shù)據(jù)編碼劃分為:流型密碼和分層密碼[11],其中,分層密碼按照128 bit輸入到輸出操作完成進行編碼分層,通過利用循環(huán)迭代加密的方式將字符串中的字節(jié)進行替換、編碼位置進行移位和輪流編碼密鑰來達到數(shù)據(jù)信息加密的效果[12]。在數(shù)據(jù)密鑰經(jīng)過加密輸入后得到的擴展模塊可將每個數(shù)據(jù)節(jié)點容量擴充為256 bit或者512 bit進行加密運算。
假設A和B分別表示加密前輸入的明文和加密后輸出的密文,則數(shù)據(jù)加密操作可表示為:
其中,X和k分別表示輪流加密運算與子密碼,可見總共輪流加密了r+2次,對應的子密碼為k1,k2,…,k(r+2);而 M、N 和 L分別代表字符串中的字節(jié)進行替換、編碼位置進行移位和輪流編碼密鑰。因此,在r-1次加密運算后,將字符串中的字節(jié)進行替換、編碼位置進行移位與第r個密鑰輪流加密運算產(chǎn)生密文。
2.2 加密流程
本研究中將數(shù)據(jù)庫中的數(shù)據(jù)分為公有、敏感和隱私3類數(shù)據(jù),當用戶將數(shù)據(jù)信息通過數(shù)據(jù)接口過濾后傳輸?shù)綄募用芤孢M行不同的加密操作。其中,公有數(shù)據(jù)屬于共享模式數(shù)據(jù)信息,使用的數(shù)據(jù)密鑰為 K={k1,k2,…,kn},而敏感和隱私數(shù)據(jù)是每個用戶私有的,則利用私人密鑰分別完成數(shù)據(jù)密鑰集合{U1,U2}={u1,u2,…,un}。 其中,對于隱私數(shù)據(jù)加密流程如圖3所示。
圖3 隱私數(shù)據(jù)加密流程
2.3 分類加密
1)共有數(shù)據(jù):由于共有數(shù)據(jù)被共享給所有用戶進而不需要加密操作,在加密過程中可被數(shù)據(jù)庫篩選后直接進行存儲。
2)敏感數(shù)據(jù):在對系統(tǒng)內(nèi)部共享的數(shù)據(jù)信息不需要進行加密操作,方便本系統(tǒng)內(nèi)部直接訪問數(shù)據(jù)庫,以達到數(shù)據(jù)資源共享的目的;而對于跨系統(tǒng)操作的用戶需要進行加密操作,這種操作不僅對不同用戶存儲的數(shù)據(jù)信息分別進行加密,而且在外部客戶端訪問數(shù)據(jù)庫時仍然進行訪問檢驗,使用數(shù)據(jù)密鑰完成數(shù)據(jù)的加密。加密算法依據(jù)數(shù)據(jù)粒度篩選數(shù)據(jù)庫中密鑰的字符串編碼位數(shù)[13],即加密粒度愈小安全度愈高。然而單一依靠細化粒度又加大了解碼過程中管理的難度[14],因此,本研究通過設置動態(tài)加密的數(shù)據(jù)字典完成不同使用頻率與危險等級綜合衡量下的加密粒度,盡可能的減少數(shù)據(jù)密鑰的數(shù)量且加快了數(shù)據(jù)訪問的速度。
在訪問數(shù)據(jù)庫中的敏感數(shù)據(jù)信息時,根據(jù)加密的字符串名稱和數(shù)據(jù)密鑰管理模塊共同查詢敏感數(shù)據(jù)所對應的數(shù)據(jù)密鑰,明文A使用加密算法后產(chǎn)生密文B的表達式如下:
3)隱私數(shù)據(jù):供每個用戶查尋自己的私人數(shù)據(jù)信息,而對系統(tǒng)內(nèi)的其他用戶采取保密性的隔離。在數(shù)據(jù)加密操作處理過程匯總,產(chǎn)生的密文B僅存儲在個人用戶數(shù)據(jù)庫中。根據(jù)用戶訪問權限與數(shù)字字典表綜合查詢用戶的隱私數(shù)據(jù)密鑰,通過隨機生成由用戶密碼與系統(tǒng)編碼的字符串完成數(shù)據(jù)編碼的拼接[15-17]。其中,由根密鑰加密隨機生成的字符串添加到隱私數(shù)據(jù)后存儲到數(shù)據(jù)庫中。在用戶訪問自己的隱私數(shù)據(jù)時,隨機字符串通過拼接隱私密鑰解密得到,操作表達式為:
3.1 實驗配置
本研究主要在數(shù)據(jù)加密算法的基礎上細化了對數(shù)據(jù)庫中的分類數(shù)據(jù)加密處理,同時,使用二級密鑰的方式管理每個加密密鑰數(shù)據(jù),在確保敏感數(shù)據(jù)和隱私數(shù)據(jù)安全性的同時也兼顧了加密系統(tǒng)的粒度加解密的開銷。由于用戶在向數(shù)據(jù)庫發(fā)起訪問請求時會一次提取幾條數(shù)據(jù)分別進行處理。在面對包含多個字符串字段的數(shù)據(jù)時,采用針對性的數(shù)據(jù)加密算法對數(shù)據(jù)庫中的數(shù)據(jù)進行加密,使得數(shù)據(jù)內(nèi)容安全性更高且不會輕易泄露。本研究依據(jù)現(xiàn)有數(shù)據(jù)庫的特點,為了比較分類數(shù)據(jù)加密與傳統(tǒng)數(shù)據(jù)加密的特點,使用javaEE語言及對應加密算法模擬數(shù)據(jù)庫中數(shù)據(jù)加密所用時間開銷。具體環(huán)境參數(shù)如下:
表1 分類數(shù)據(jù)加密實驗配置
分別抽取數(shù)據(jù)庫中6張表格40條、80條和120條數(shù)據(jù)信息,每條數(shù)據(jù)包含3個字符串字段,即分別共有120個、240個和360個數(shù)據(jù)項。假設有3個用戶在存取每個數(shù)據(jù)項過程中都需要進行加密保護。具體的數(shù)據(jù)字典設置信息如表2所示。
表2 數(shù)據(jù)字典設置
3.2 實驗分析
對所有需要加密的數(shù)據(jù)項采用數(shù)據(jù)加密算法,再與本研究提出的分類數(shù)據(jù)針對性的數(shù)據(jù)字典方式加密算法進行加密用時對比,3個用戶進行10次數(shù)據(jù)存取運行結果如表3所示。
表3 加密用時對比
由表3可見,傳統(tǒng)的數(shù)據(jù)加密算法用時明顯高于本研究的分類數(shù)據(jù)加密用時,這是由于傳統(tǒng)的數(shù)據(jù)加密算法對存儲在數(shù)據(jù)庫中的所有數(shù)據(jù)都實行每條數(shù)據(jù)項的加密操作,并且加密每個數(shù)據(jù)項時都會產(chǎn)生新的密鑰并進行存儲。而本研究提出的分類數(shù)據(jù)加密首先篩選出了信息類型并通過評估數(shù)據(jù)危險等級再進行數(shù)據(jù)加密操作,同時,通過查找相應密鑰并返回加快了數(shù)據(jù)加密的時間開銷。其中,敏感數(shù)據(jù)只需要通過查詢數(shù)據(jù)字典表來確定密鑰,所以用戶存取數(shù)據(jù)過程中所需時間相對較長;而隱私數(shù)據(jù)則需要在驗證用戶登錄權限并兼顧查詢數(shù)據(jù)字典表,兩者同時對隱私數(shù)據(jù)進行雙重驗證與加密,因此加密用時相對更高。通觀共有、敏感和隱私3類數(shù)據(jù)的總體加密時間隨著數(shù)據(jù)項的增大,系統(tǒng)處理的運行時間增加不會太多且系統(tǒng)效率均在可控范圍內(nèi)。
3.3 性能評價
傳統(tǒng)的數(shù)據(jù)加密算法對存儲在數(shù)據(jù)庫中的所有數(shù)據(jù)采取一項一密的加密方式,共產(chǎn)生了120個、240個和360個數(shù)據(jù)密鑰,而本研究僅考慮數(shù)據(jù)信息類型且不受數(shù)據(jù)密鑰數(shù)量影響,分類對數(shù)據(jù)進行一類一密的數(shù)據(jù)密鑰操作,在密鑰管理方面節(jié)省了數(shù)據(jù)庫系統(tǒng)運行的大量內(nèi)存運行與時間開始。在處理棉稈數(shù)據(jù)加密時,依據(jù)動態(tài)選取數(shù)據(jù)字典細化數(shù)據(jù)加密粒度,不僅可以減少密鑰管理的負擔且密鑰的讀取更加便利,而且隨著數(shù)據(jù)量的增加系統(tǒng)運行時間增加平穩(wěn)。隱私數(shù)據(jù)在加密的同時加入了用戶登錄權限的驗證,極大的減少了密鑰泄露的可能性,從而確保了隱私數(shù)據(jù)被其他用戶竊取的可能性。將數(shù)據(jù)庫中的數(shù)據(jù)劃分3類結合二級密鑰管理方式綜合提高了數(shù)據(jù)庫對數(shù)據(jù)存儲的安全性,并且節(jié)省了數(shù)據(jù)存儲時間與空間。
本研究在傳統(tǒng)數(shù)據(jù)加密的基礎上,依據(jù)數(shù)據(jù)存取特點和受危等級劃分了公有、敏感和隱私3類數(shù)據(jù)類型。相對于傳統(tǒng)數(shù)據(jù)加密對數(shù)據(jù)項進行的一項一密的加密方式,用戶在發(fā)起數(shù)據(jù)存取過程匯總,數(shù)據(jù)庫的時間開銷增加較小,密鑰管理方式更加便利。極大的提高了公有數(shù)據(jù)的共享途徑,更好的保護了數(shù)據(jù)庫中的敏感數(shù)據(jù),利用用戶登錄權限驗證和數(shù)據(jù)字典表雙重保障了隱私數(shù)據(jù)的安全。通過設計用戶數(shù)據(jù)接口降低了數(shù)據(jù)存取過程中數(shù)據(jù)庫所承載的壓力,將數(shù)據(jù)過濾操作交由后臺執(zhí)行,減少了系統(tǒng)處理數(shù)據(jù)信息的時間開銷。根據(jù)動態(tài)選取數(shù)據(jù)字典加密粒度的方式增加了數(shù)據(jù)的安全性,同時也減輕了對密鑰管理的復雜度,保護了數(shù)據(jù)庫中眾多數(shù)據(jù)的安全。
[1]肖會敏,侯宇.互聯(lián)網(wǎng)+環(huán)境下科技信息資源共享面臨的問題及其對策 [J].情報工程,2015,1(6):91-97.
[2]劉偉.大容量NAND閃存數(shù)據(jù)庫存儲管理技術應用分析[J].數(shù)字技術與應用,2013(4):237.
[3]曾建國.大數(shù)據(jù)時代數(shù)據(jù)庫信息系統(tǒng)安全風險評估技術分析 [J].信息安全與技術,2015,6(9):27-28.
[4]李超零,陳越,譚鵬.基于分解與加密的云數(shù)據(jù)庫隱私保護機制研究[J].信息工程大學學報,2012,13(3):376-384.
[5]朱曉露,楊清,劉格非.一種基于身份認證數(shù)據(jù)加密算法的研究與設計[J].計算機工程與科學,2012,34(12):60-65.
[6]覃遵躍,黃云,蔡國民,等.支持XML插入更新的編碼方法[J].計算機應用,2012,32(12):3540-3543.
[7]李湘鋒,趙有健,全成斌.對稱密鑰加密算法在IPsec協(xié)議中的應用[J].電子測量與儀器學報,2014,28(1):75-83.
[8]苗杰,錢強,高尚.基于AES加密算法的數(shù)據(jù)庫二級密鑰技術 [J].計算機系統(tǒng)應用,2013,22(4):79-82.
[9]胡汝榮,雒江濤,向程超.CDMA2000 1x EV-DO網(wǎng)絡RADIUS協(xié)議解碼方法的研究與實現(xiàn) [J].南京郵電大學學報:自然科學版,2014,34(3):80-84.
[10]陳超,張瑞霞.基于VB程序數(shù)據(jù)庫登錄權限問題的研究[J].現(xiàn)代電子技術,2012,35(6):28-32.
[11]俞斌.對“一種超混沌圖像加密算法的安全性分析及其改進”的選擇明文攻擊[J].計算機應用研究,2013,30(2):510-512.
[12]張雪鋒,范九倫.一種自適應的循環(huán)迭代數(shù)字圖像加密算法[J].西安郵電學院學報,2012,17(3):1-9.
[13]張雪芹,徐金瑜,顧春華.基于本體的信息安全漏洞關聯(lián)分析 [J].華東理工大學學報:自然科學版,2014,40(1):125-131.
[14]陳銳,楊海鋼,王飛,等.基于粗粒度可重構陣列結構的多標準離散余弦變換設計[J].電子與信息學報,2015,37(1):206-213.
[15]李紅凱,裘國永,王濤.基于DNA隨機編碼的真彩圖加密算法 [J].計算機應用研究,2016,33(4):1132-1136.
[16]謝春思,李軍玲.基于動態(tài)加密算法的數(shù)據(jù)處理技術開發(fā)[J].工業(yè)儀表與自動化裝置,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—),男,安徽安慶人,碩士,工程師。研究方向:信息安全、信息化架構、電子數(shù)據(jù)取證。