【技術實現步驟摘要】
一種數據庫加密方法及該加密數據庫查詢方法
本專利技術涉及一種數據庫加密方法及該加密數據庫查詢方法,屬于數據隱私保護
技術介紹
隱私保護是數據庫安全的重要內容,其安全威脅來自于兩方面,一方面是數據庫系統外部,攻擊者利用系統的漏洞或者非法獲取訪問權限,從而竊取隱私數據;另一方面是數據庫系統內部,具有合法訪問權限的數據庫管理員,存在探查、泄露隱私數據的可能性。對此,現有技術中的解決方案是對隱私數據進行加密后存儲在數據庫中,在查詢時,對密文數據進行解密。這種方法的缺陷是,明文數據經過加密后,失去了明文的一些屬性,如數據之間的順序關系,原有對明文的運算也無法在密文上執行,需要將所有密文解密為明文才能完成操作,這種方案在面對大規模的數據庫存儲需求時,在執行效率上遠低于明文數據庫。
技術實現思路
本專利技術所要解決的技術問題是提供一種基于高效、安全加密模型為基礎,在保證安全性與隱私性的同時,能夠直接進行密文數據操作的數據庫加密方法。本專利技術為了解決上述技術問題采用以下技術方案:本專利技術設計了一種數據庫加密方法,包括如下步驟:步驟001.分別針對數據庫里各張表中各數據列的數據類型進行判斷,若數據列的數據類型是數值型,則進入步驟002;若數據列的數據類型是字符型,則進入步驟003;步驟002.分別針對該數值型數據列中的各個數據,分別采用等值加密算法、保存加密算法和同態加密算法分別進行加密,并將該數值型數據列擴展為三列,然后按該三列與等值加密算法、保存加密算法、同態加密算法彼此一一對應的關系,分別定義該三列的列名,同時將經過等值加密算法、保存加密算法、同態加密算法分 ...
【技術保護點】
一種數據庫加密方法,其特征在于,包括如下步驟:步驟001.?分別針對數據庫里各張表中各數據列的數據類型進行判斷,若數據列的數據類型是數值型,則進入步驟002;若數據列的數據類型是字符型,則進入步驟003;步驟002.?分別針對該數值型數據列中的各個數據,分別采用等值加密算法、保存加密算法和同態加密算法分別進行加密,并將該數值型數據列擴展為三列,然后按該三列與等值加密算法、保存加密算法、同態加密算法彼此一一對應的關系,分別定義該三列的列名,同時將經過等值加密算法、保存加密算法、同態加密算法分別加密的加密結果數據填入對應列中,其中,該數值型數據列所對應擴展三列中各個加密結果數據所對應的密鑰存儲于數據庫中;步驟003.?分別針對該字符型數據列中的各個數據,采用等值加密算法進行加密,然后根據等值加密算法,定義該字符型數據列的列名,同時將經過等值加密算法加密的加密結果數據填入該字符型數據列中,其中,該字符型數據列所對應各個加密結果數據的密鑰存儲于數據庫中。
【技術特征摘要】
1.一種數據庫加密方法,其特征在于,包括如下步驟:步驟001.分別針對數據庫里各張表中各數據列的數據類型進行判斷,若數據列的數據類型是數值型,則進入步驟002;若數據列的數據類型是字符型,則進入步驟003;步驟002.分別針對該數值型數據列中的各個數據,分別采用等值加密算法、保存加密算法和同態加密算法分別進行加密,并將該數值型數據列擴展為三列,然后按該三列與等值加密算法、保存加密算法、同態加密算法彼此一一對應的關系,分別定義該三列的列名,同時將經過等值加密算法、保存加密算法、同態加密算法分別加密的加密結果數據填入對應列中,其中,該數值型數據列所對應擴展三列中各個加密結果數據所對應的密鑰存儲于數據庫中;步驟003.分別針對該字符型數據列中的各個數據,采用等值加密算法進行加密,然后根據等值加密算法,定義該字符型數據列的列名,同時將經過等值加密算法加密的加密結果數據填入該字符型數據列中,其中,該字符型數據列所對應各個加密結果數據的密鑰存儲于數據庫中。2.根據權利要求1所述一種數據庫加密方法,其特征在于,所述步驟002中分別針對各個數值型數據列中各個數據進行等值加密算法,以及所述步驟003中分別針對各個字符型數據列中各個數據進行等值加密算法,均采用如下步驟實現:步驟A01.針對數據采用預設指定加密算法進行加密,構成該數據的內層加密,同時根據系統主密鑰,以及該數據所在數據列的列名獲得該數據內層加密的密鑰,并存儲于數據庫中,然后進入步驟A02;步驟A02.針對該數據內層加密,進一步采用隨機加密算法進行加密,構成該數據內層加密的外層加密,同時根據系統主密鑰、該數據所在數據列的列名,以及該數據所在行的唯一行標識獲得該數據內層加密進一步外層密鑰的密鑰,并存儲于數據庫中,由此,針對該數據實現等值加密算法的加密。3.一種基于權利要求2所述一種數據庫加密方法的該加密數據庫查詢方法,包括創建表操作、插入操作、選擇查詢操作、更新操作和刪除操作,其特征在于,創建表操作包括如下步驟:步驟C01.針對創建表操作語句進行解析,獲得所創建表的表名、所創建表中各數據列的列名,以及各數據列所對應的數據類型,然后進入步驟C02;步驟C02.分別針對所創建表中的各個數據列進行判斷,并分別針對所創建表中各個數據列做出相應處理,然后根據針對所創建表中各個數據列的相應操作,改寫創建表操作語句,再發送至數據庫進行執行,實現創建表操作,其中,分別針對所創建表中的各個數據列進行判斷,并分別做出相應處理中,若數據列的數據類型是數值型,則進入步驟C03;若數據列的數據類型是字符型,則進入步驟C05;步驟C03.將該數值型數據列擴展為三列,分別存儲該數值型數據列中數據分別對應等值加密算法、保存加密算法和同態加密算法的加密結果數據,并相應定義該數值型數據列所擴展三列的數據類型,然后進入步驟C04;步驟C04.根據按該數值型數據列所擴展三列與等值加密算法、保存加密算法、同態加密算法彼此一一對應的關系,分別定義該數值型數據列所擴展三列的列名,并用該數值型數據列所擴展三列的列名替換創建表操作語句中該數值型數據列的列名;步驟C05.將該字符型數據列用于存儲該字符型數據列中數據對應于等值加密算法的加密結果數據,然后進入步驟C06;步驟C06.根據等值加密算法,定義該字符型數據列的列名,并用該字符型數據列的列名替換創建表操作語句中該數值型數據列的列名。4.根據權利要求3所述一種基于數據庫加密方法的該加密數據庫查詢方法,其特征在于,所述插入操作包括如下步驟:步驟I01.針對插入操作語句進行解析,獲得各個所插入的數據,以及各個所插入數據分別所對應表的表名、所對應數據列的列名,然后進入步驟I02;步驟I02.分別針對各個所插入數據,根據所插入數據所對應表的表名,獲得所插入數據對應數據列的數據類型,并進入步驟I03;步驟I03.分別針對各個所插入數據,針對所插入數據對應數據列的數據類型進行判斷,并針對所插入數據所對應數據列的列名和所插入數據做出相應處理,然后根據針對所插入數據所對應數據列的列名,以及針對所插入數據的相應操作,改寫插入操作語句,再發送至數據庫進行執行,實現插入操作,其中,針對所插入數據對應數據列的數據類型進行判斷,并針對所插入數據所對應數據列的列名和所插入數據做出相應處理中,若數據列的數據類型是數值型,則進入步驟I04;若數據列的數據類型是字符型,則進入步驟I06;步驟I04.根據所插入數據對應表的表名、所插入數據對應的數據列,獲得所插入數據對應數據庫該表中對應三列的列名,并用該三列的列名替換插入操作語句中所插入數據所對應數據列的列名,然后進入步驟I05;步驟I05.針對所插入數據分別采用等值加密算法、保存加密算法、同態加密算法進行加密,分別獲得所插入數據所對應三種加密方法的加密結果數據,并用該三種加密結果數據替換插入操作語句中的所插入數據,并與插入操作語句中所替換三列的列名分別對應;其中,所插入數據分別所對應三種加密結果數據的密鑰存儲于數據庫中;步驟I06.根據所插入數據對應表的表名、所插入數據對應的數據列,獲得所插入數據對應數據庫該表中對應列的列名,并用該列的列名替換插入操作語句中所插入數據所對應數據列的列名,然后進入步驟I07;步驟I07.針對所插入數據分別采用等值加密算法進行加密,獲得所插入數據對應等值加密算法的加密結果數據,并用該加密結果數據替換插入操作語句中的所插入數據,并與插入操作語句中所替換列的列名相對應;其中,所插入數據分別所對應加密結果數據的密鑰存儲于數據庫中。5.根據權利要求3所述一種基于數據庫加密方法的該加密數據庫查詢方法,其特征在于,所述選擇查詢操作包括如下步驟:步驟S01.針對選擇查詢語句進行解析,獲得表名、查詢內容和謂詞,然后進入步驟S02;步驟S02.針對表名所對應表中采用等值加密算法進行加密的加密結果數據的外層加密進行解密,并進入步驟S03;步驟S03.針對謂詞所...
【專利技術屬性】
技術研發人員:楊庚,汪海偉,劉國秀,曾橙焜,閔兆娥,
申請(專利權)人:南京郵電大學,
類型:發明
國別省市:江蘇;32
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。