[發(fā)明專利]一種面向數(shù)據(jù)庫(kù)加密的密文索引方法和庫(kù)內(nèi)加密系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201710149817.9 | 申請(qǐng)日: | 2017-03-14 |
| 公開(公告)號(hào): | CN106934030B | 公開(公告)日: | 2019-12-31 |
| 發(fā)明(設(shè)計(jì))人: | 戴林 | 申請(qǐng)(專利權(quán))人: | 戴林 |
| 主分類號(hào): | G06F16/22 | 分類號(hào): | G06F16/22;G06F16/2455;G06F21/60;G06F21/62 |
| 代理公司: | 11639 北京理工正陽(yáng)知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) | 代理人: | 鮑文娟 |
| 地址: | 100081 *** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 數(shù)據(jù)庫(kù) 加密 索引 方法 庫(kù)內(nèi) 系統(tǒng) | ||
1.一種面向數(shù)據(jù)庫(kù)加密字段的密文索引方法,其特征在于:
首先,基于加密字段P1建立密文索引表T2,記加密字段P1所在表為T1,T2表中包括但不限于密文索引字段P2以及密文索引表T2中記錄與T1中記錄一一對(duì)應(yīng)關(guān)系的字段ID2;
然后,基于保序哈希函數(shù)將待加密字段內(nèi)容映射到哈希值,基于加密函數(shù)將待加密字段內(nèi)容所在記錄的標(biāo)識(shí)ID內(nèi)容映射到加密ID,并將二元組(加密ID,哈希值)存入T2(ID2,P2),所述標(biāo)識(shí)ID為所述T1中的字段;
最后,基于映射后的哈希值,實(shí)現(xiàn)對(duì)加密字段的等值查詢和范圍查詢,并根據(jù)查詢結(jié)果所在記錄的ID2解密獲得T1表中滿足查詢條件的記錄集合并返回。
2.一種庫(kù)內(nèi)透明數(shù)據(jù)庫(kù)加密系統(tǒng),其特征在于:基于被加密原表生成加密表ET1,并且包含密文索引表INDEX_T1、與被加密原表同名同字段的視圖T1、索引維護(hù)觸發(fā)器、索引調(diào)用接口、保密索引函數(shù)包以及加解密函數(shù)包;
加密表ET1用于保存被加密字段C的內(nèi)容;其中包含被加密原表中除C以外的所有字段以及加密字段EC,其中除C以外的所有字段用于存儲(chǔ)被加密原表中除字段C以外的所有字段內(nèi)容,EC用于存儲(chǔ)字段C的密文;
與被加密原表同名同字段的視圖T1用于代替被加密原表,接管所有的對(duì)被加密原表的訪問(wèn),使得外部用戶和應(yīng)用感覺不到數(shù)據(jù)被加密和解密的變化,從而實(shí)現(xiàn)透明加密;
密文索引表INDEX_T1用于保存被加密字段C的索引,以保證透明加密的同時(shí)不影響檢索效率;其中包含字段EROWID和密文索引INDEX_C,EROWID字段用于存儲(chǔ)被加密記錄的ROWID被加密后的內(nèi)容,以防止泄漏密文索引值和原記錄的對(duì)應(yīng)關(guān)系,INDEX_C字段用于存儲(chǔ)被加密字段C的索引值,此處的ROWID為被加密原表中記錄的唯一性標(biāo)識(shí);
保密索引函數(shù)包包括1個(gè)以上的保密索引函數(shù),用于使用保序哈希算法,將被加密字段內(nèi)容映射到索引值,此時(shí)索引值的偏序關(guān)系能夠反映被加密字段真實(shí)內(nèi)容的偏序關(guān)系,從而可以基于密文索引實(shí)現(xiàn)等值和范圍查詢;
加解密函數(shù)包包括1個(gè)以上的加解密函數(shù),用于使用加密函數(shù),將被加密字段內(nèi)容映射到加密值,此時(shí)如果不知道解密算法和密鑰,從加密值不能夠反推出被加密字段的真實(shí)內(nèi)容,當(dāng)需要解密時(shí),對(duì)加密值使用對(duì)應(yīng)的解密函數(shù)和密鑰解密出被加密內(nèi)容;
索引調(diào)用接口用于將對(duì)T1的SELECT、UPDATE、DELETE請(qǐng)求中的WHERE條件中的與被加密字段C相關(guān)的查詢條件使用所述保密索引函數(shù)做同樣的保序哈希計(jì)算,得到哈希值,然后在密文索引表INDEX_T1中使用該哈希值執(zhí)行與查詢條件對(duì)應(yīng)的查找操作,得到命中的記錄集,再使用加解密函數(shù)包中對(duì)應(yīng)于加密函數(shù)的解密函數(shù)解密這些命中記錄集中的EROWID字段,得到ET1中的ROWID集合,此時(shí)該ROWID集合就是所述被加密原表中滿足查詢條件的ROWID集合,即記錄集;視圖T1的填充函數(shù)對(duì)這些記錄集中有關(guān)字段C的內(nèi)容使用所述加解密函數(shù)包中的解密函數(shù)進(jìn)行對(duì)應(yīng)的解密計(jì)算得到所需字段C的明文,從而滿足SELECT請(qǐng)求;或者通過(guò)T1上的安全觸發(fā)器對(duì)這些記錄集執(zhí)行對(duì)應(yīng)的UPDATE、DELETE請(qǐng)求;
索引維護(hù)觸發(fā)器用于將對(duì)T1增加、修改、刪除等請(qǐng)求進(jìn)行不同的索引維護(hù)操作,具體為:
其中,當(dāng)增加INSERT請(qǐng)求、修改UPDATE請(qǐng)求、刪除DELETE請(qǐng)求中包括被加密字段C內(nèi)容時(shí),分別進(jìn)行下述處理:
(1)對(duì)于INSERT請(qǐng)求,索引維護(hù)觸發(fā)器調(diào)用所述加密函數(shù),計(jì)算插入記錄中的被加密字段C的密文值,將其連同其它所有字段的值一同插入密文表ET1中,并對(duì)該新記錄的ROWID調(diào)用所述加密函數(shù)做加密計(jì)算,得到加密后的EROWID,調(diào)用所述保密索引函數(shù),計(jì)算插入記錄中的被加密字段C的哈希值,得到密文索引值;從而得到新增的密文索引記錄,進(jìn)而將該密文索引記錄插入到密文索引表INDEX_T1中;
(2)對(duì)于UPDATAE請(qǐng)求,索引維護(hù)觸發(fā)器調(diào)用所述加密函數(shù),計(jì)算更新記錄中的被加密字段C的新值的密文值,以該密文值更新ET1中對(duì)應(yīng)記錄的加密字段EC;調(diào)用所述保密索引函數(shù),計(jì)算被更新記錄中的被加密字段C的新值的哈希值,得到新的密文索引值,并對(duì)更新記錄的ROWID做加密計(jì)算,得到加密后的EROWID,然后根據(jù)該EROWID在密文索引表中更新對(duì)應(yīng)記錄的密文索引值;
(3)對(duì)于DELETE請(qǐng)求,索引維護(hù)觸發(fā)器刪除ET1中對(duì)應(yīng)記錄,并對(duì)被刪除記錄的ROWID做加密計(jì)算,得到加密后的EROWID,然后根據(jù)該EROWID在密文索引表INDEX_T1中刪除對(duì)應(yīng)的密文索引記錄;
連接關(guān)系:
與被加密原表同名同字段的視圖T1分別與加密表ET1、索引調(diào)用接口和索引維護(hù)觸發(fā)器相連;索引維護(hù)觸發(fā)器分別與密文索引表INDEX_T1、保密索引函數(shù)包、加解密函數(shù)包相連;索引調(diào)用接口分別與保密索引函數(shù)包、密文索引表、加解密函數(shù)包相連。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于戴林,未經(jīng)戴林許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710149817.9/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)構(gòu)筑裝置、數(shù)據(jù)庫(kù)檢索裝置、數(shù)據(jù)庫(kù)裝置、數(shù)據(jù)庫(kù)構(gòu)筑方法、以及數(shù)據(jù)庫(kù)檢索方法
- 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)處理方法
- 數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)更新方法、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新程序
- 容器數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)同步方法及數(shù)據(jù)庫(kù)
- 一種MongoDB數(shù)據(jù)庫(kù)對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法及裝置
- 加密裝置、加密系統(tǒng)、加密方法以及加密程序
- 移動(dòng)終端和方法
- 再加密方法、再加密系統(tǒng)以及再加密裝置
- 加密終端遠(yuǎn)程管理的方法、加密終端及管理器
- 數(shù)據(jù)加密的方法及裝置
- 流媒體數(shù)據(jù)加密、解密方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 加密裝置、加密系統(tǒng)和數(shù)據(jù)的加密方法
- 文件加密、解密方法、裝置、設(shè)備和存儲(chǔ)介質(zhì)
- 一種車聯(lián)網(wǎng)數(shù)據(jù)加密方法及系統(tǒng)
- 一種服務(wù)數(shù)據(jù)共享云平臺(tái)的數(shù)據(jù)加密方法及系統(tǒng)





