本發(fā)明涉及數(shù)據(jù)存儲、數(shù)據(jù)加密領(lǐng)域。
背景技術(shù):
隨著云計算的廣泛應(yīng)用,個人或企業(yè)都愿意將數(shù)據(jù)存儲在第三方,由此產(chǎn)生了一系列關(guān)于加密數(shù)據(jù)的檢索、計算、完整性驗證和共享的研究。
屬性基加密(ABE)實現(xiàn)了對于存儲在第三方的加密數(shù)據(jù)的細(xì)度共享,它將用戶的身份特征作為加密的公鑰,密文是根據(jù)目標(biāo)用戶的身份計算出來的,只有用戶可以解密,它創(chuàng)新地在公鑰密碼體制的思想中引入了訪問結(jié)構(gòu),使得系統(tǒng)的密鑰或者密文可以根據(jù)一個訪問結(jié)構(gòu)來產(chǎn)生,只有滿足指定條件的用戶才可以解密密文,實現(xiàn)了一對多的通信。ABE中存在一個密鑰生成中心,它負(fù)責(zé)用戶密鑰的生成,但是也就是由于這樣,產(chǎn)生了安全信任問題,一是用戶可以共享密鑰而不被數(shù)據(jù)屬主發(fā)現(xiàn),二是密鑰生成中心可以生成任意用戶的密鑰,三是密鑰生成中心可以用主密鑰解密任何密文。
現(xiàn)有的研究都是部分解決了以上的幾個信任問題,由于用戶的密鑰由密鑰生成中心生成并且密文中不能包含任何用戶特有的信息,否則將和ABE的設(shè)計意圖相違背,無法實現(xiàn)對于數(shù)據(jù)的細(xì)粒度共享,因此,本發(fā)明提出一種通過兩個相對獨立的模塊來生成密鑰,并且可以判斷解密器是否來自于合法用戶的屬性基加密方法。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的上述不足,本發(fā)明提出了云存儲中一種可信任密鑰的加密方案。
為解決上述問題,本發(fā)明提出了以下的技術(shù)方案:
本發(fā)明方法主要是用雙線性對加密算法,將密鑰生成由密鑰生成中心和屬性機構(gòu)共同完成,各自生成部分密鑰,組成完整的密鑰,然后在用加密算法進行加密,完成黑盒追蹤,在判定解密器是由合法用戶生成時候,才能對密文進行解密,方法包括6個算法,分別是密鑰中心和屬性機構(gòu)的初始化、密鑰生成、加密、解密、追蹤。
步驟1:密鑰中心初始化生成部分公共參數(shù)和主密鑰
步驟2:屬性機構(gòu)初始生成部分公共參數(shù)和主密鑰
步驟3:用戶密鑰生成算法
步驟4:對密文信息進行加密
步驟5:用戶身份確認(rèn)及密文解密
本發(fā)明的有益效果是:
1、本發(fā)明方法具有更高的安全性,可以更好的抵抗共謀攻擊;
2、極大的減少了數(shù)據(jù)中心對數(shù)據(jù)泄密或者非法用戶的訪問,同時本發(fā)明方法對系統(tǒng)存儲和運算需求不高,更具實用性。
具體實施方式
本方法由6個算法、組成,首先,密鑰中心輸入系統(tǒng)安全參數(shù),輸出部分公共參數(shù)和主密鑰,屬性機構(gòu)按照密鑰中心生成的公共參數(shù)也生成安全參數(shù)和主密鑰,組合得到完整的公共參數(shù),并通過協(xié)議,生成用戶密鑰,然后加密文件、屬性集、公共參數(shù),輸出密文,只有當(dāng)加密協(xié)議通過才能解密密文,只有當(dāng)追蹤算法判定解密器來源于合法用戶時才能解密。
針對提出的云存儲中一種可信任密鑰的加密方案,其具體步驟如下:
步驟1:密鑰中心初始化生成部分公共參數(shù)和主密鑰
G0是素數(shù)階為p>2λ的雙線性群(G0,G1,e,p),g是G0的生成元,雙線性映射e:G0×G0→G1,安全參數(shù)λ決定群的大小,Zp表示p的整數(shù)群,拉格朗日系數(shù)其中S是一個整數(shù)集合,i∈S。
設(shè):Rand(y1,y2,α),y1、y2、α∈Zp,Rand(g2),g2∈G0,然后再次從G0中選取t1,t2,...,tn+1,令:N={1,2,…,n+1}
定義函數(shù)T
由拉格朗日定理可知
其中h(X)為n階多項式,所以,在密鑰中心中產(chǎn)生的公共參數(shù)PK1為:m=gα,g2,t1,t2,...,tn+1,主密鑰MK1為y1,y2,α。
步驟2:屬性機構(gòu)初始生成部分公共參數(shù)和主密鑰
在屬性機構(gòu)中,隨機選取t∈Zp,定義公開參數(shù)PK2為:t為屬性機構(gòu)的主密鑰。因此系統(tǒng)的公共參數(shù)PK=PK1∪PK2即:m=gα,g2,t1,t2,...,tn+1,
步驟3:用戶密鑰生成算法
將用戶U的身份信息記為ID,U隨機選擇s0,θ∈Zp,然后計算
然后將R值發(fā)送給密鑰中心,同時,用戶運行零知識證明,向密鑰中心證明自己擁有(s0,θ),如果密鑰中心不認(rèn)可U的證明,則本次操作結(jié)束,如果認(rèn)可,密鑰中心則隨機選擇s1∈Zp,然后計算:
T表示訪問結(jié)構(gòu)樹,然后將d‘ID,T發(fā)送到U,U執(zhí)行計算:
同時,在訪問結(jié)構(gòu)樹T中,令qr(0)=y(tǒng)2,也節(jié)點搜構(gòu)成的集合為AS,數(shù)據(jù)中心計算:
其中i=att(x),x∈AS,然后數(shù)據(jù)中心將D‘發(fā)送到屬性機構(gòu)中去,屬性機構(gòu)執(zhí)行計算:
其中:i=att(x),x∈AS,屬性中新計算D后,將D發(fā)送給用戶U,此時用戶U得到由兩部分組成的數(shù)據(jù){(d1,d2),D},所以,將其定義用戶秘鑰,即:
SK=(d1,d2)∪D=(d1,d2,D)
步驟4:對密文信息進行加密
在步驟1、2、3中已經(jīng)生成了公共參數(shù)PK和用戶密鑰SK,此時,按照ABE算法原理對文件M進行加密,在屬性集γ下加密,選擇隨機數(shù)s∈Zp,密文為E,將密文表示為:
步驟5:用戶身份確認(rèn)及密文解密
當(dāng)有用戶想要訪問密文時候,用戶先輸入密鑰SK,然后生解密器,此時系統(tǒng)要判斷解密器是否是合法用戶生成的,當(dāng)解密器是合法用戶生成,則允許解密器計算訪問結(jié)構(gòu)樹T,對數(shù)據(jù)解密;設(shè)此時用戶輸入的SK對應(yīng)的訪問結(jié)構(gòu)為T‘。對文件F中的文件塊M進行加密算法為:
系統(tǒng)選擇隨機數(shù)s、s‘∈Zp,計算
E3=gs
E4=gαs
E5=e(g,g)
在屬性集γ中隨機選擇γ,γ滿足T(γ)=1、T‘(γ)=1
計算:E2={T(i)s}i∈r
隨機選擇密文塊,計算
輸入由以上6個參數(shù)計算出密文M′,如果M′=M,則說明解密指令來自于合法用戶,否則,視為非法用戶。
當(dāng)時合法用戶時候,對文件塊M進行解密得到明文F:
。