[發明專利]一種基于泄序算法的數據庫密文比較檢索方法有效
| 申請號: | 201811237729.5 | 申請日: | 2018-10-23 |
| 公開(公告)號: | CN109117676B | 公開(公告)日: | 2022-02-25 |
| 發明(設計)人: | 楊萬年;牛自賓;滕海明;李衛明 | 申請(專利權)人: | 杭州弗蘭科信息安全科技有限公司 |
| 主分類號: | G06F21/62 | 分類號: | G06F21/62 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王學強 |
| 地址: | 310051 浙江省杭州市濱江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 算法 數據庫 比較 檢索 方法 | ||
1.一種基于泄序算法的數據庫密文比較檢索方法,其特征在于,所述方法包括以下步驟:
步驟一:數據庫客戶端輸入sql語句,發送sql語句到數據庫代理;
步驟二:數據庫代理接收到客戶端發送的sql語句,對sql語句進行解析,并對sql語句中敏感數據進行改寫;所述對sql語句中敏感數據進行改寫,包括:若sql語句為數據存儲語句,則對sql語句中敏感數據使用泄序加密算法加密;若sql語句為數據檢索語句,則對sql語句中敏感數據使用泄序加密算法加密,并對sql語句中敏感數據的比較部分調用UDF函數進行比較;所述敏感數據為字段數據;
步驟三:數據庫代理發送改寫后的sql語句到數據庫服務器,數據庫服務器執行sql語句;所述數據庫服務器執行sql語句,包括:若sql語句為數據存儲語句,則數據庫服務器執行sql語句,完成數據存儲;若sql語句為數據檢索語句,則數據庫服務器執行sql語句,使用基于ORE密文比較算法的UDF函數,在數據庫中完成密文比較檢索操作;
步驟四:數據庫服務器發送sql語句執行結果到數據庫代理;
步驟五:數據庫代理檢查sql語句執行結果中是否包含敏感字段結果,若包含敏感字段結果,使用泄序加密算法對應的解密算法對密文數據進行解密,發送最終的sql語句執行結果到數據庫客戶端;
步驟六:數據庫客戶端接收最終的sql語句執行結果;
其中,ORE密文比較的步驟如下:
步驟1:輸入需要比較的兩個ORE算法加密的密文數據記為ctxt1,ctxt2;
步驟2:檢查兩個密文數據ctxt1和ctxt2的參數是否匹配,如果不匹配,直接退出;
步驟3:依據密文數據的參數計算出明文數據有n比特位,每個比特位在密文中擴展out_blk_len位,計數i=0;
步驟4:判斷in,如果不符合條件,返回輸出ctxt1的密文對應的明文數值等于ctxt2的密文對應的明文數值,如果符合條件,執行步驟5;
步驟5:計算明文數據第i位的加密后密文數據的掩碼,設掩碼為:block_mask=(2^out_blk_len-1)<<(n-i-1)*out_blk_len;
步驟6:密文數據ctxt1與block_mask做邏輯與操作,然后右移(n-1-i)*out_blk_len位,計算得到的值記為T1;密文數據ctxt2與block_mask做邏輯與操作,右移(n-1-i)*out_blk_len位,計算得到的值記為T2;
步驟7:比較T1和T2大小,如果T1大于T2,返回ctxt1的明文值大于ctxt2的明文值,如果T1小于T2,返回ctxt1的明文值小于ctxt2的明文值,否則,執行步驟8;
步驟8:計數器i加1,執行步驟4。
2.依據權利要求1所述的一種基于泄序算法的數據庫密文比較檢索方法,其特征在于,步驟二中采用泄序加密算法ORE對sql語句進行改寫。
3.依據權利要求1所述的一種基于泄序算法的數據庫密文比較檢索方法,其特征在于,步驟二中采用基于ORE密文比較算法的UDF函數對sql語句進行改寫。
4.根據權利要求1所述的一種基于泄序算法的數據庫密文比較檢索方法,其特征在于,步驟五中采用ORE解密算法對數據庫服務器中返回的密文結果進行解密。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州弗蘭科信息安全科技有限公司,未經杭州弗蘭科信息安全科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811237729.5/1.html,轉載請聲明來源鉆瓜專利網。





