[發(fā)明專利]一種基于多級視圖和觸發(fā)器的數(shù)據(jù)庫透明加解密方法無效
| 申請?zhí)枺?/td> | 201010169778.7 | 申請日: | 2010-05-12 |
| 公開(公告)號: | CN102243629A | 公開(公告)日: | 2011-11-16 |
| 發(fā)明(設(shè)計)人: | 趙飛 | 申請(專利權(quán))人: | 北京安華金和科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F21/00 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100081 北京市海*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 多級 視圖 觸發(fā)器 數(shù)據(jù)庫 透明 解密 方法 | ||
1.一種基于多級視圖和觸發(fā)器的數(shù)據(jù)庫透明加解密方法,采用在密文表上建立三級視圖的方法,包括如下步驟:
(1)在密文表上直接構(gòu)建第一級視圖,除了對表上的所有字段進(jìn)行檢索外,增加了一個偽列CALLTIMES,偽列CALLTIMES中保存一個偽列值A(chǔ)I,所述偽列值A(chǔ)I為每個數(shù)據(jù)庫操作會話,在每次執(zhí)行本視圖的時候,自動生成的一個唯一的值,用于表示一次新的查詢操作的開始;
(2)在第一級視圖上構(gòu)建第二級視圖,除了對一級視圖的所有字段進(jìn)行檢索外,增加一個偽列TROWID,用于獲取記錄的行標(biāo)識;在二級視圖上構(gòu)建INSTEADOF類型的觸發(fā)器,其觸發(fā)條件為INSERT和UPDATE,在觸發(fā)器中調(diào)用加密函數(shù)來完成對敏感數(shù)據(jù)的加密并保存到密文表相應(yīng)的加密字段中,在執(zhí)行UPDATE操作時,觸發(fā)器通過行標(biāo)識來對密文表數(shù)據(jù)進(jìn)行更新;對于被加密的字段,在第二級視圖中調(diào)用解密函數(shù)來完成解密,調(diào)用解密函數(shù)時將第一級視圖中偽列CALLTIMES的值和密文字段的唯一標(biāo)識FIELDID(FIELDID的具體值是在對明文數(shù)據(jù)進(jìn)行預(yù)處理的過程中生成的),作為參數(shù)傳遞給解密函數(shù);
(3)在第二級視圖上構(gòu)建第三級視圖,這個視圖中包含密文表的所有字段,并且和密文表字段的順序是一致的,由于在二級視圖中完成了對加密字段數(shù)據(jù)的解密,因此這里將返回二級視圖解密后的明文數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫透明加解密方法,其特征在于:還包括步驟4,將第三級視圖的名稱定義為用戶操作的明文表的名稱。
3.一種對明文數(shù)據(jù)進(jìn)行預(yù)處理的方法,包括:
(1)改變敏感字段數(shù)據(jù)類型:其過程是先創(chuàng)建一個敏感字段數(shù)據(jù)的備份表,其結(jié)構(gòu)是{TROWID,F(xiàn)O1,F(xiàn)N1,F(xiàn)O2,F(xiàn)N2,……FOn,F(xiàn)Nn},其中TROWID是原表每行數(shù)據(jù)的行標(biāo)識,F(xiàn)Oi是用于保存敏感字段明文數(shù)據(jù),F(xiàn)Ni用于保存對明文數(shù)據(jù)加密后生成的密文數(shù)據(jù)。原表敏感字段的原始數(shù)據(jù)先備份到該表中FOi字段上。然后將原表敏感字段的數(shù)據(jù)全部UPDATE為NULL,然后將該字段的類型修改為VARCHAR2類型,字段長度根據(jù)加密算法來確定加密后的數(shù)據(jù)最大長度來定義;
(2)數(shù)據(jù)加密:對備份表中的全部明文數(shù)據(jù)進(jìn)行加密,加密后的結(jié)果保存在對應(yīng)的FNi字段上。全部成功后,將備份表中的密文數(shù)據(jù)按照ROWID更新原表敏感字段的全部記錄,完成對敏感字段的數(shù)據(jù)加密,在數(shù)據(jù)加密期間對敏感字段上的CHECK約束禁用;
(3)將原表改名,為表中的每個敏感字段分配一個唯一的值,這個值稱為FIELDID,并且將該FIELDID值保存在表中供使用。
4.一種對建立三級視圖和觸發(fā)器的密文表的查詢優(yōu)化方法,包括判定執(zhí)行計劃、執(zhí)行全表掃描優(yōu)化處理、執(zhí)行跳躍查詢優(yōu)化處理,其特征在于:所述判定執(zhí)行計劃為判定執(zhí)行計劃為全表掃描或?yàn)樘S查詢,包括如下步驟:
(1)根據(jù)第二級視圖中調(diào)用解密函數(shù)傳入的CALLTIMES參數(shù)的值,確定是否是一次新查詢的開始;如果不是,則進(jìn)入步驟2;如果是,按照數(shù)據(jù)庫全表掃描方式讀取數(shù)據(jù)的順序,從表中密文字段讀取前N條密文數(shù)據(jù),N<=200,并一次性批量的對密文數(shù)據(jù)進(jìn)行解密處理,將明文和對應(yīng)的密文數(shù)據(jù)保存在數(shù)組中;
(2)對于每一條解密函數(shù)傳入的待解密的密文數(shù)據(jù),與步驟1中生成的數(shù)組中的密文進(jìn)行比對,如果找到,則將命中統(tǒng)計值加1,并將數(shù)組中對應(yīng)的明文數(shù)據(jù)返回;如果沒有找到,則對密文數(shù)據(jù)解密;如果前M次操作累計的命中率超過K%(其中M<=N,K>=80),則判定為全表掃描并開始執(zhí)行全表掃描優(yōu)化處理;否則判定為跳躍查詢并執(zhí)行跳躍查詢優(yōu)化處理。
5.根據(jù)權(quán)利要求4所述的查詢優(yōu)化方法,其特征在于:所述全表掃描優(yōu)化處理包括:繼續(xù)按照數(shù)據(jù)庫全表掃描查詢方式讀取數(shù)據(jù)的順序,從表中密文字段批量的讀取前N1條密文數(shù)據(jù),N1<=2000,并批量的進(jìn)行解密處理,將明文和對應(yīng)的密文數(shù)據(jù)保存在數(shù)組中,供比對;對于每一次解密函數(shù)傳入的待解密的密文數(shù)據(jù),直接對數(shù)組中的密文進(jìn)行比對,并返回對應(yīng)的明文數(shù)據(jù);當(dāng)在數(shù)組中沒有找到符合的條目時,則繼續(xù)順序的批量讀取和解密下一批的密文數(shù)據(jù),依次重復(fù)執(zhí)行,直到查詢執(zhí)行完畢。
6.根據(jù)權(quán)利要求4所述的查詢優(yōu)化方法,其特征在于:所述跳躍查詢優(yōu)化處理包括:
(1)判斷是否已建立熱數(shù)據(jù)緩存,如果沒有建立熱數(shù)據(jù)緩存,則建立熱數(shù)據(jù)緩存;
(2)在熱數(shù)據(jù)緩存中查詢是否存在對應(yīng)的密文數(shù)據(jù),如果沒有找到,進(jìn)入步驟3;如果有則直接返回對應(yīng)的明文結(jié)果,并對該記錄的“熱度值”加1;
(3)對密文數(shù)據(jù)解密后,將明文和密文成對加入到熱數(shù)據(jù)緩存中,并按照LRU換入換出算法對緩存中的數(shù)據(jù)進(jìn)行換入換出的處理。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京安華金和科技有限公司,未經(jīng)北京安華金和科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010169778.7/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





