[摘要] 本文論述了數(shù)據(jù)加密系統(tǒng)的設(shè)計和實現(xiàn)策略,說明了各個功能模塊的運行機制,就數(shù)據(jù)加密子系統(tǒng)實現(xiàn)中所遇到SQL語句應(yīng)用、數(shù)據(jù)庫訪問、數(shù)據(jù)類型變換、數(shù)據(jù)完整性和系統(tǒng)運行效率等主要難點問題進行研究,提出了具體實現(xiàn)方案。
[關(guān)鍵詞] 加/脫密引擎 加密字典管理程序 抽象語法樹
數(shù)據(jù)的安全是系統(tǒng)安全的關(guān)鍵。數(shù)據(jù)安全性是指計算機中的數(shù)據(jù)不被非法讀出、更改、刪除等。使用數(shù)據(jù)加密系統(tǒng)可以解決數(shù)據(jù)庫數(shù)據(jù)安全的問題。在實現(xiàn)數(shù)據(jù)加密系統(tǒng)中,仍存在一些有待解決的技術(shù)難點,本文對DBMS外層數(shù)據(jù)加密系統(tǒng)中此類問題進行研究。
一、實現(xiàn)數(shù)據(jù)加密系統(tǒng)的技術(shù)難點及解決方案
在DBMS外層數(shù)據(jù)加密系統(tǒng)設(shè)計過程中,碰到了一些比較難解決的問題及難點,主要為SQL語句問題,數(shù)據(jù)庫指向問題,數(shù)據(jù)類型問題,經(jīng)過研究討論,最終對這些問題提出了解決方案。
1.SQL語句應(yīng)用問題
在進行數(shù)據(jù)加脫密過程中,基于open client的客戶端在向數(shù)據(jù)庫發(fā)送SQL語句之前先調(diào)用加脫密引擎中的語法分析模塊,將SQL語句轉(zhuǎn)變成語法樹,再根據(jù)加密字典信息對相關(guān)的加密信息進行加脫密變換,舉例說明,假如SQL語句為select a,b from table where a=”123”,其中b列為加密列,則語法分析模塊產(chǎn)生的抽象語法樹如圖1所示,假設(shè)密鑰管理中此SELECT語句行標記列名稱為rt,table對應(yīng)的密表名為tab,則經(jīng)過加密轉(zhuǎn)換語法樹如圖2所示。這時SQL語句經(jīng)過加脫密轉(zhuǎn)換調(diào)用語法分析模塊將該語法樹轉(zhuǎn)換為SQL語句:select tab.rt,a,b from tab where a=”123”,然后發(fā)送到服務(wù)器處理;……