一種可關(guān)鍵字搜索的外包密鑰生成和解密的屬性基系統(tǒng)及解密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于信息安全領(lǐng)域,設(shè)及網(wǎng)絡(luò)安全的數(shù)據(jù)加密技術(shù),特別是指一種可關(guān)鍵 字捜索的外包密鑰生成和解密的屬性基系統(tǒng)及解密方法。
【背景技術(shù)】
[0002] 基于屬性的加密方法具可W實(shí)現(xiàn)對(duì)加密數(shù)據(jù)的細(xì)粒度訪問和控制。屬性基加密 方法主要包括兩種類型,分別是策略屬性基加密方法和密文策略屬性基加密方法。在密鑰 策略屬性基加密方法中,用戶私鑰與一個(gè)訪問結(jié)構(gòu)相關(guān)聯(lián),而密文與一個(gè)屬性集合相關(guān)聯(lián), 當(dāng)且僅當(dāng)與密文關(guān)聯(lián)的屬性集合滿足用戶私鑰的訪問結(jié)構(gòu)的時(shí)候,用戶才能夠解密獲得明 文。密文策略屬性基加密方法中訪問結(jié)構(gòu)和屬性集合的關(guān)聯(lián)關(guān)系反之。
[0003] 隨著云計(jì)算的飛速發(fā)展,云計(jì)算中W計(jì)算能力作為一種資源的運(yùn)作方式日益普遍 起來。運(yùn)種運(yùn)作方式能夠使得網(wǎng)絡(luò)上的用戶能夠快速便捷地的獲得運(yùn)種計(jì)算資源,同時(shí)也 能快速地釋放運(yùn)種資源。運(yùn)就使得我們能夠根據(jù)自身的需求來訪問服務(wù)器中提供的各種各 樣的、資源豐富的、方便快捷的服務(wù)。
[0004] 盡管云服務(wù)提供者的運(yùn)些優(yōu)勢(shì)使它成為一個(gè)云計(jì)算中操作用戶數(shù)據(jù)的強(qiáng)大工具, 然而它的一個(gè)主要缺點(diǎn)不得不被重視:密鑰生成和解密階段的計(jì)算代價(jià)隨著訪問結(jié)構(gòu)的復(fù) 雜性線性增長(zhǎng),運(yùn)對(duì)于資源受限的移動(dòng)設(shè)備(比如手機(jī)設(shè)備)來說是一個(gè)致命的應(yīng)用瓶頸。 通過使用基于屬性的外包密鑰生成、解密系統(tǒng)可W大量降低屬性授權(quán)中屯、給用戶生成私鑰 W及用戶訪問W密文形式存儲(chǔ)在云端數(shù)據(jù)的計(jì)算效率。但是隨著存儲(chǔ)在云中的數(shù)據(jù)數(shù)量級(jí) 地遞增,如何高效地從大量存儲(chǔ)在云端的數(shù)據(jù)中找到用戶指定的數(shù)據(jù)已經(jīng)成為不得不面對(duì) 的難題。用戶不僅需要從云端獲取數(shù)據(jù),還需要設(shè)置數(shù)據(jù)控制器,從而達(dá)到只獲取指定關(guān)鍵 字的數(shù)據(jù)的功能。 陽005] 基于W上分析,本發(fā)明人針對(duì)現(xiàn)有的可捜索的公鑰加密方案和外包KP-ABE方案 進(jìn)行研究改進(jìn)結(jié)合,本發(fā)明由此產(chǎn)生。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的一個(gè)目的在于提供一種可關(guān)鍵字捜索的外包密鑰生成和解密的屬性基 系統(tǒng)及解密方法,本發(fā)明將可捜索加密方案和外包加密方案體制相結(jié)合,提供了一種可關(guān) 鍵字捜索的外包密鑰生成和解密的屬性基系統(tǒng)及解密方法。受益于可捜索加密方案的減少 用戶下載量和不需要的密文的解密計(jì)算,本發(fā)明所提出的方法不僅讓CP-ABE可W在資源 受限的設(shè)備中得W使用,而且提供給用戶一個(gè)有效的在云端根據(jù)關(guān)鍵字捜索密文方法,外 包屬性基加解密方案的應(yīng)用使得整個(gè)方法適用于帶寬受限的設(shè)備。
[0007] 本發(fā)明的目的在于提供一種可關(guān)鍵字捜索的外包密鑰生成和解密的屬性基系統(tǒng) 及解密方法,減少屬性授權(quán)中屯、和用戶端的計(jì)算代價(jià),將昂貴的計(jì)算外包給云服務(wù)器提供 者(CS巧去處理,并且在CSP存儲(chǔ)的密文中,根據(jù)用戶提交的加密過的關(guān)鍵字來捜索密文對(duì) 應(yīng)的索引,從而高效的查找到用戶指定要查看的密文。
[000引為了達(dá)成上述目的,本發(fā)明的解決方案是:
[0009] 一種可關(guān)鍵字捜索的外包密鑰生成和解密的屬性基系統(tǒng),其特征在于:包括公開 參數(shù)設(shè)置服務(wù)器、用戶私鑰生成服務(wù)器、外包用戶私鑰生成服務(wù)器、陷口生成服務(wù)器、加密 服務(wù)器、外包解密服務(wù)器、解密服務(wù)器;
[0010] 公開參數(shù)設(shè)置服務(wù)器,負(fù)責(zé)生成系統(tǒng)主密鑰和公開參數(shù),公開參數(shù)發(fā)送給系統(tǒng)其 他部分;用戶私鑰生成服務(wù)器,生成一對(duì)密鑰對(duì)W及本地用戶私鑰,并將外包生成私鑰部分 發(fā)送;
[0011] 給外包用戶私鑰生成服務(wù)器最終整合為一個(gè)完整的用戶私鑰;
[0012] 外包用戶私鑰生成服務(wù)器,生成外包用戶私鑰,發(fā)送給用戶私鑰生成服務(wù)器;
[0013] 陷口生成服務(wù)器,協(xié)助用戶生成查詢私鑰W及陷口;
[0014] 加密服務(wù)器,對(duì)消息加密生成對(duì)應(yīng)的密文和關(guān)鍵字索引,并將其發(fā)送給外包解密 服務(wù)器;外包解密服務(wù)器,對(duì)符合用戶權(quán)限的密文進(jìn)行外包部分解密并使用用戶提交的陷 口捜索;
[0015] 匹配的密文,如果關(guān)鍵字匹配成功,將部分解密的密文和密文發(fā)送給解密服務(wù) 器;
[0016] 解密服務(wù)器,對(duì)部分解密的密文進(jìn)行解密隊(duì)陜復(fù)出消息。
[0017] 而基于上述可關(guān)鍵字捜索的外包密鑰生成和解密的屬性基系統(tǒng)的解密方法,包括 W下步驟:
[0018] A.設(shè)定系統(tǒng)公開參數(shù)PK和系統(tǒng)主密鑰MSK;其中步驟A進(jìn)一步包括,
[0019] Al.選取階為P的乘法循環(huán)群61,62^及雙線性映射8:〇1乂61-〇2;
[0020] A2.隨機(jī)選取生成元gGGl和元素g2,h,hl,h2,h3,h4,h5GGl,其中屬性域U中的 每個(gè)元素i對(duì)應(yīng)于hi,隨機(jī)選取元素而的,其中巧表示集合{1,2,…,P-2,P-1},選取兩 個(gè)抗碰撞的哈希函數(shù)Hi: {0,ir一Gi、H2:G2 - 1} 陽02U A3.計(jì)算邑1二邑X;
[0022] B.根據(jù)系統(tǒng)公開參數(shù)PK、系統(tǒng)主密鑰MSK和訪問結(jié)構(gòu)叛生成用戶的密鑰對(duì) (0Ki?;ap,OKta),其中OKta用于生成本地密鑰SKwOKteap用于生成外包密鑰;
[0023] C.根據(jù)系統(tǒng)公開參數(shù)PK、訪問結(jié)構(gòu)心、外包密鑰OKkgcsp生成用戶的外包私鑰 SKkgcsp;
[0024] 化根據(jù)系統(tǒng)公開參數(shù)PK、系統(tǒng)主密鑰MSK、承諾值Qw和訪問結(jié)構(gòu)A生成查詢私鑰 QK,并根據(jù)關(guān)鍵字kwW及用戶私鑰SK和盲化因子BF生成相應(yīng)的捜索私鑰和陷口Ti";其中, 承諾值Cfe是用戶生成的盲化因子結(jié)合私鑰的一部分生成的;訪問結(jié)構(gòu)盛運(yùn)里簡(jiǎn)化為屬性 域中的子集;盲化因子BF是用戶隨機(jī)生成的;訪問結(jié)構(gòu)A和屬性集合都是在步驟A中設(shè)定 的屬性域U中的子集;kw是用戶指定的字符串,WOl二進(jìn)制字節(jié)表示;SKta是用于生成SK 的TA端密鑰,SKta也稱之為本地密鑰,而OKKeap是用于生成SK的KGCSP端密鑰SKKGCSP的, SK= (SKta,SKkocsp) ;kw是解密者對(duì)海量密文數(shù)據(jù)進(jìn)行查詢時(shí)使用的關(guān)鍵字;
[00對(duì) E.根據(jù)系統(tǒng)公開參數(shù)PK、屬性集合CO對(duì)消息M進(jìn)行加密,得到密文CT,并用關(guān)鍵 字KW,生成密文的索引IX(KW);其中,屬性集合CO為屬性域U中的一個(gè)子集;消息M是群Gz中的一個(gè)元素;KW代表信息所有者對(duì)自己的消息選用的關(guān)鍵字;
[0026] F.根據(jù)系統(tǒng)公開參數(shù)PK、陷口Tk對(duì)初始密文CT進(jìn)行外包解密操作,生成部分解 密密文Qct,并對(duì)索引IX(KW)進(jìn)行關(guān)鍵字KW匹配操作,KW代表信息所有者對(duì)自己的消息選 用的關(guān)鍵字,如果成功,則將部分解密的密文發(fā)送給解密服務(wù)器;初始密文CT是步驟E生成 的對(duì)應(yīng)于消息M的密文;
[0027] G.根據(jù)系統(tǒng)公開參數(shù)PK、本地私鑰SKta對(duì)部分解密密文Q^T進(jìn)行完全解密操作,并 驗(yàn)證是否是初始密文CT所對(duì)應(yīng)的明文M,若是則輸出M,若不是則輸出錯(cuò)誤信息。
[002引進(jìn)一步的,所述步驟A中,所選的哈希函數(shù)Hi是{0,ir到Gi的密碼學(xué)哈希函數(shù), 哈希函數(shù)&是G2到{0,UIwP的密碼學(xué)哈希函數(shù),表示集合{1,2,…,P-U;
[0029] 系統(tǒng)公開參數(shù)PK為PK=咕,Gz,g,gi,拓,h,hi,hz,hs,h4,hs,Hi, &),系統(tǒng)主密鑰 MSK為MSK=X;
[0030] 其中,屬性域U為("baf", "bar", "fiml", "fim", "foo"},訪問結(jié)構(gòu)A為"bafbar fiml2of3",密文屬性CO集合為{"baf","bar"},S是滿足條件{>nA}的屬性的集合。
[0031] 進(jìn)一步的,所述步驟B包括: 陽0巧BI.對(duì)于擁有訪問結(jié)構(gòu)鼓的用戶,隨機(jī)選取為居爲(wèi),&£3; = 4,2,.'',口_矣退-巧,其 中Xi是密鑰對(duì)中的一部分用于生成OKKCCSP,re是一個(gè)隨機(jī)承諾值; 陽〇3;3] B2.計(jì)算而二X-X1模P,計(jì)算屯0 =扭(容jW€巧,計(jì)算如1 =各''PeG\,其中而是密 鑰對(duì)中的一部分用于生成SKta;
[0034] 用戶密鑰對(duì)(OKkgcsp,OKta)為(OKkgcsp,OKta) = (XI,而),用戶本地私鑰SKta為SKTA= {d0 0,d0J。
[0035] 進(jìn)一步的,所述步驟C包括:
[0036] Cl.對(duì)于擁有訪問結(jié)構(gòu)盛的用戶,為訪問結(jié)構(gòu)A中的根節(jié)點(diǎn)R隨機(jī)選擇一個(gè)d-1次 多項(xiàng)式q(x),其中,d表示根節(jié)點(diǎn)R的秘密分享口限值,并且q(0) =xi,q(x) =x+q(0);
[0037] C2:為訪問結(jié)構(gòu)A中的除根節(jié)點(diǎn)R的每個(gè)子節(jié)點(diǎn)i選擇一個(gè)di-1次多項(xiàng)式q。,其 中,d康示節(jié)點(diǎn)i的秘密分享口限值,并且Qi(O) =QpgfCMW(index(i)),函數(shù)parent(i)返 回節(jié)點(diǎn)i的父節(jié)點(diǎn)R,函數(shù)index(i)返回節(jié)點(diǎn)在其父節(jié)點(diǎn)中的次序,最終對(duì)于每個(gè)屬于訪問 結(jié)構(gòu)的屬性指金計(jì)算q(l) =l+q(〇),q似=2+q(0),q做=3+q(0);
[003引 C3:對(duì)于每個(gè)屬于訪問結(jié)構(gòu)的屬性7'eA,隨機(jī)選取riGZ/,計(jì)算 4, (知蛛,