本發(fā)明屬于物理技術(shù)領(lǐng)域,更進一種涉及密碼術(shù)技術(shù)領(lǐng)域中的一種基于不可區(qū)分混淆的云服務(wù)外包訪問權(quán)限控制方法。本發(fā)明可應(yīng)用于云服務(wù)外包中對云服務(wù)使用者進行有效的訪問權(quán)限控制,授權(quán)中心和服務(wù)提供者可以共同完成對服務(wù)使用者密文的訪問。
背景技術(shù):
云服務(wù)外包是服務(wù)提供商在自身計算或存儲能力不足的情況下,借助于云服務(wù)器的強大的計算和存儲能力使服務(wù)提供商能夠進行安全的外包計算,從而能夠?qū)⒎?wù)提供商的服務(wù)程序安全的部署到云服務(wù)器上。隨著計算機的應(yīng)用越來越廣泛,軟件或者服務(wù)開發(fā)者已經(jīng)不再局限于某些專業(yè)的互聯(lián)網(wǎng)公司,比如某些金融類,設(shè)計類等計算機資源欠缺的公司,設(shè)計了具備某種計算功能的程序,但由于自身資源和計算能力的局限性,無法完成該程序的計算,這些公司就需要將這些程序交給大型外包公司進行部署,那么這就可能會泄露該程序的敏感信息,以及使用該程序的用戶的隱私信息。云服務(wù)外包技術(shù)能夠更加合理地達到資源配置,節(jié)約社會成本,創(chuàng)造更多財富。如何在進行服務(wù)外包的同時,不會影響服務(wù)程序知識產(chǎn)權(quán)保護問題,同時不會泄露使用該程序的用戶的輸入和輸出的任何信息,甚至用戶的身份信息,是目前云服務(wù)外包的一個亟需解決的問題。
同濟大學(xué)在其申請的專利“一種加密群簽名的混淆方法”(公開號:104917617A,申請?zhí)枺?01510275377.2,申請日:2015年05月26日)中公開了一種加密群簽名的混淆方法。該方法由群主構(gòu)建簽名群,獲取主私鑰和追蹤密鑰,信息接收者通過EKGen算法獲取各自的公私鑰,群主通過Enroll算法獲取群內(nèi)成員的簽名追蹤信息和與各自ID對應(yīng)的簽名密鑰并將簽名密鑰發(fā)送給對應(yīng)的群內(nèi)成員,然后利用混淆算法將群成員的初始加密群簽名算法及群成員簽名密鑰進行混淆處理,得到混淆后的加密群簽名算法,然后就可以使用該混淆后算法進行信息秘密發(fā)送。該方法存在的不足之處是,首先該專利僅由完全可信的群主對群簽名算法進行一次混淆,導(dǎo)致群主訪問權(quán)限過大。其次,該專利僅由群主對群成員進行密鑰分發(fā),無法對群成員的訪問權(quán)限進行更新,影響了群主對群成員訪問權(quán)限的控制。最后,該專利只是對群簽名算法進行了混淆,應(yīng)用范圍過于狹窄,不利于推廣和使用。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)中,僅對群簽名算法進行混淆的過程,無法保證現(xiàn)實生活中上述技術(shù)的普遍適用性,同時會導(dǎo)致現(xiàn)有技術(shù)的方法中,參與方無法進行訪問權(quán)限更新的問題,提出了一種基于不可區(qū)分混淆的云服務(wù)外包訪問權(quán)限控制方法。
本發(fā)明的思路是,首先由授權(quán)中心和服務(wù)提供商共同完成對用戶的認證過程,然后由服務(wù)提供商和授權(quán)中心先后對云服務(wù)程序進行不可區(qū)分混淆計算,最后由授權(quán)中心將混淆后的程序部署到云服務(wù)器上,實現(xiàn)用戶安全使用云服務(wù)程序的同時,保證了對用戶密文進行有效訪問權(quán)限控制,且不會導(dǎo)致訪問權(quán)限的濫用。
本發(fā)明的實現(xiàn)的具體步驟如下:
(1)初始化:
(1a)授權(quán)中心任意選取一個有限域Fq,其中,q表示隨機選取的大素數(shù),將有限域Fq輸入到偽隨機生成器PRG,生成安全主密鑰MSK,并秘密保存安全主密鑰MSK;
(1b)授權(quán)中心選取安全Hash算法MD5,并公開安全Hash算法MD5;
(1c)授權(quán)中心公開有限域Fq,偽隨機生成器RPG;
(2)身份注冊:
(2a)用戶向用戶身份信息庫申請身份注冊,獲得與用戶身份信息庫唯一對應(yīng)的用戶身份信息ID;
(2b)用戶將用戶身份信息ID提交給授權(quán)中心;
(2c)授權(quán)中心判斷獲取的用戶身份信息ID與用戶身份信息庫是否匹配,若是,則執(zhí)行步驟(3),否則,拒絕注冊;
(3)密鑰分發(fā):
(3a)授權(quán)中心按照下式,計算匹配用戶公鑰:
pk=H(ID)
其中,pk表示匹配用戶公鑰,H表示安全Hash算法MD5操作,ID表示匹配用戶身份信息;
(3b)授權(quán)中心按照下式,計算匹配用戶私鑰:
sk=MSK*H(ID)
其中,sk表示匹配用戶私鑰,MSK表示授權(quán)中心主密鑰,*表示相乘操作,H表示安全Hash算法MD5操作,ID表示匹配用戶身份信息;
(3c)授權(quán)中心將匹配用戶公鑰和匹配用戶私鑰發(fā)送給匹配用戶;
(3d)匹配用戶將匹配用戶私鑰秘密保存;
(3e)服務(wù)提供商在獲取由授權(quán)中心分發(fā)的服務(wù)提供商初始私鑰sk'和服務(wù)提供商初始公鑰pk'后,將有限域Fq輸入到偽隨機生成器PRG中,生成隨機數(shù)x1;
(3f)服務(wù)提供商計算服務(wù)提供商公鑰和服務(wù)提供商私鑰;
(3g)服務(wù)提供商將服務(wù)提供商公鑰公開,將服務(wù)提供商私鑰秘密保存;
(4)匹配用戶認證:
(4a)匹配用戶將匹配用戶身份信息和匹配用戶公鑰提交給服務(wù)提供商;
(4b)服務(wù)提供商計算匹配用戶身份標識;
(4d)服務(wù)提供商將匹配用戶身份標識發(fā)送給匹配用戶;
(4e)匹配用戶收到匹配用戶身份標識后,將匹配用戶身份標識秘密保存;
(5)服務(wù)部署:
(5a)服務(wù)提供商自定義產(chǎn)生初始云服務(wù)電路,用Prog表示初始云服務(wù)電路;
(5b)服務(wù)提供商對初始云服務(wù)電路進行混淆操作,得到初步混淆后的云服務(wù)電路;
(5c)服務(wù)提供商將經(jīng)服務(wù)提供商初步混淆后的云服務(wù)電路Prog'提交給授權(quán)中心;
(5d)授權(quán)中心對初步混淆后的云服務(wù)電路進行混淆操作,得到云服務(wù)電路;
(5e)授權(quán)中心將云服務(wù)電路Prog”部署到云服務(wù)器上;
(6)數(shù)據(jù)上傳:
(6a)授權(quán)用戶將有限域Fq輸入到偽隨機生成器PRG中生成會話密鑰,授權(quán)用戶秘密保存會話密鑰;
(6b)授權(quán)用戶計算授權(quán)用戶密文;
(6c)授權(quán)用戶將授權(quán)用戶密文發(fā)送給云服務(wù)器;
(7)計算密文:
(7a)云服務(wù)器收到授權(quán)用戶密文后,將授權(quán)用戶密文輸入到云服務(wù)電路Prog”中;
(7b)云服務(wù)電路Prog”按照下式,計算授權(quán)用戶密文驗證輸出:
v=Verify(upk,Sig1)
其中,v表示授權(quán)用戶密文驗證輸出,Verify表示基于身份簽名技術(shù)IBS的驗證操作,upk表示授權(quán)用戶公鑰,Sig1表示授權(quán)用戶簽名;
(7c)判斷授權(quán)用戶密文驗證輸出是否為1,若是,則執(zhí)行步驟(7d),否則,拒絕服務(wù)并終止計算;
(7d)云服務(wù)電路Prog”計算授權(quán)用戶密文,得到云服務(wù)輸出的密文;
(7e)云服務(wù)電路Prog”將云服務(wù)輸出的密文發(fā)送給授權(quán)用戶;
(8)獲取云服務(wù)輸出:
(8a)授權(quán)用戶按照下式,計算云服務(wù)輸出:
r=Dec(k1,C2)
其中,r表示云服務(wù)輸出,Dec表示AES安全對稱解密操作,k1表示會話密鑰,C2表示云服務(wù)輸出的密文;
(8b)授權(quán)用戶獲得云服務(wù)輸出;
(9)訪問密文:
(9a)授權(quán)中心按照下式,計算會話密鑰初始密文:
其中,C1”表示會話密鑰初始密文,Dec表示AES安全對稱解密操作,MSK表示授權(quán)中心主密鑰,表示會話密鑰密文;
(9b)授權(quán)中心將會話密鑰初始密文發(fā)送給服務(wù)提供商;
(9c)服務(wù)提供商計算會話密鑰初始密文,得到會話密鑰;
(9d)服務(wù)提供商將會話密鑰發(fā)送給授權(quán)中心;
(9e)授權(quán)中心計算云服務(wù)輸出的密文,得到云服務(wù)輸出;
(9f)授權(quán)中心計算授權(quán)用戶數(shù)據(jù)的密文,得到授權(quán)用戶明文。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
第一,由于本發(fā)明的服務(wù)部署先由服務(wù)提供商對初始云服務(wù)電路進行混淆操作,然后由授權(quán)中心對初步混淆后的云服務(wù)電路進行混淆操作,克服了現(xiàn)有技術(shù)中僅由完全可信的群主對群簽名算法進行一次混淆這一不足,使得本發(fā)明解決了可信第三方權(quán)限過大帶來的隱私保護問題,實現(xiàn)了更安全的隱私保護。
第二,由于本發(fā)明的匹配用戶認證由服務(wù)提供商計算匹配用戶身份標識,克服了現(xiàn)有技術(shù)僅由群主對群成員進行密鑰分發(fā)這一不足,使得本發(fā)明解決了無法對群成員的訪問權(quán)限進行更新這一問題,實現(xiàn)了靈活的訪問控制。
第三,由于本發(fā)明的服務(wù)部署由服務(wù)提供商自定義產(chǎn)生初始云服務(wù)電路,克服了現(xiàn)有技術(shù)只是對群簽名算法進行混淆這一不足,使得本發(fā)明解決了云服務(wù)應(yīng)用范圍過于狹窄這一問題,推廣了云服務(wù)的使用范圍。
附圖說明
圖1為本發(fā)明的流程圖;
圖2為本發(fā)明服務(wù)部署示意圖;
圖3為本發(fā)明數(shù)據(jù)上傳和計算密文示意圖;
圖4為本發(fā)明獲取云服務(wù)輸出和訪問密文示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步的描述。
參照附圖1,本發(fā)明的具體步驟如下。
步驟1,初始化。
授權(quán)中心任意選取一個有限域Fq,其中,q表示隨機選取的大素數(shù),將有限域Fq輸入到偽隨機生成器PRG,生成安全主密鑰MSK,并秘密保存安全主密鑰MSK,授權(quán)中心選取安全Hash算法MD5,并公開安全Hash算法MD5,授權(quán)中心公開有限域Fq,偽隨機生成器RPG。
步驟2,身份注冊。
用戶向用戶身份信息庫申請身份注冊,獲得與用戶身份信息庫唯一對應(yīng)的用戶身份信息ID,用戶將用戶身份信息ID提交給授權(quán)中心,授權(quán)中心判斷獲取的用戶身份信息ID與用戶身份信息庫是否匹配,若是,則執(zhí)行步驟3,否則,拒絕注冊。
步驟3,密鑰分發(fā)。
授權(quán)中心按照下式,計算匹配用戶公鑰:
pk=H(ID)
其中,pk表示匹配用戶公鑰,H表示安全Hash算法MD5操作,ID表示匹配用戶身份信息。
授權(quán)中心按照下式,計算匹配用戶私鑰:
sk=MSK*H(ID)
其中,sk表示匹配用戶私鑰,MSK表示授權(quán)中心主密鑰,*表示相乘操作,H表示安全Hash算法MD5操作,ID表示匹配用戶身份信息。
授權(quán)中心將匹配用戶公鑰和匹配用戶私鑰發(fā)送給匹配用戶,匹配用戶將匹配用戶私鑰秘密保存。
服務(wù)提供商在獲取由授權(quán)中心分發(fā)的服務(wù)提供商初始私鑰sk'和服務(wù)提供商初始公鑰pk'后,將有限域Fq輸入到偽隨機生成器PRG中,生成隨機數(shù)x1,服務(wù)提供商計算服務(wù)提供商公鑰和服務(wù)提供商私鑰,服務(wù)提供商將服務(wù)提供商公鑰公開,將服務(wù)提供商私鑰秘密保存。
步驟4,匹配用戶認證。
匹配用戶將匹配用戶身份信息和匹配用戶公鑰提交給服務(wù)提供商,服務(wù)提供商計算匹配用戶身份標識,服務(wù)提供商將匹配用戶身份標識發(fā)送給匹配用戶,匹配用戶收到匹配用戶身份標識后,將匹配用戶身份標識秘密保存。
步驟5,服務(wù)部署。
服務(wù)提供商自定義產(chǎn)生初始云服務(wù)電路,用Prog表示初始云服務(wù)電路,服務(wù)提供商對初始云服務(wù)電路進行混淆操作,得到初步混淆后的云服務(wù)電路,服務(wù)提供商將經(jīng)服務(wù)提供商初步混淆后的云服務(wù)電路Prog'提交給授權(quán)中心,授權(quán)中心對初步混淆后的云服務(wù)電路進行混淆操作,得到云服務(wù)電路,授權(quán)中心將云服務(wù)電路Prog”部署到云服務(wù)器上。
參照附圖2,圖2表示服務(wù)部署,圖2中的初始云服務(wù)電路表示服務(wù)提供商自定義產(chǎn)生的初始云服務(wù)電路,圖2中的初步混淆后云服務(wù)電路表示由服務(wù)提供商進行初步混淆后得到的初步混淆后云服務(wù)電路,將初步混淆后云服務(wù)電路提交給授權(quán)中心,圖2中的云服務(wù)電路表示授權(quán)中心對初步混淆后的云服務(wù)電路進行混淆后得到云服務(wù)電路,然后由授權(quán)中心將云服務(wù)電路部署到云服務(wù)器上。
步驟6,數(shù)據(jù)上傳。
授權(quán)用戶將有限域Fq輸入到偽隨機生成器PRG中生成會話密鑰,授權(quán)用戶秘密保存會話密鑰,授權(quán)用戶計算授權(quán)用戶密文,授權(quán)用戶將授權(quán)用戶密文發(fā)送給云服務(wù)器。
參照附圖3中的授權(quán)用戶數(shù)據(jù)上傳階段,授權(quán)用戶數(shù)據(jù)上傳階段表示數(shù)據(jù)上傳步驟,圖3中的數(shù)據(jù)明文表示授權(quán)用戶明文,圖3中的會話密鑰表示授權(quán)用戶利用偽隨機生成器PRG生成會話密鑰,圖3中的數(shù)據(jù)密文表示用會話密鑰安全對稱加密數(shù)據(jù)明文得到的數(shù)據(jù)密文,圖3中的密鑰密文表示授權(quán)用戶生成的會話密鑰密文,授權(quán)用戶用戶將數(shù)據(jù)密文和會話密鑰密文一起發(fā)送到云服務(wù)器。
步驟7,計算密文。
云服務(wù)器收到授權(quán)用戶密文后,將授權(quán)用戶密文輸入到云服務(wù)電路Prog”中,云服務(wù)電路Prog”按照下式,計算授權(quán)用戶密文驗證輸出:
v=Verify(upk,Sig1)
其中,v表示授權(quán)用戶密文驗證輸出,Verify表示基于身份簽名技術(shù)IBS的驗證操作,upk表示授權(quán)用戶公鑰,Sig1表示授權(quán)用戶簽名。
判斷授權(quán)用戶密文驗證輸出是否為1,若否,則拒絕服務(wù)并終止計算,若是,則執(zhí)行下一步驟,云服務(wù)電路Prog”計算授權(quán)用戶密文,得到云服務(wù)輸出的密文,云服務(wù)電路Prog”將云服務(wù)輸出的密文發(fā)送給授權(quán)用戶。
參照附圖3中的云服務(wù)器計算密文階段,表示計算密文步驟,圖3中的驗證輸出表示云服務(wù)器首先計算密文驗證輸出,并判斷授權(quán)用戶密文驗證輸出是否為1,若輸出不為1,終止計算,若輸出為1,進行下一步計算,圖3中的云服務(wù)輸出的密文表示由云服務(wù)電路計算得到的云服務(wù)輸出的密文。
步驟8,獲取云服務(wù)輸出。
授權(quán)用戶按照下式,計算云服務(wù)輸出:
r=Dec(k1,C2)
其中,r表示云服務(wù)輸出,Dec表示AES安全對稱解密操作,k1表示會話密鑰,C2表示云服務(wù)輸出的密文。
授權(quán)用戶獲得云服務(wù)輸出。
參照附圖4中的授權(quán)用戶獲取云服務(wù)輸出,表示獲取云服務(wù)輸出步驟,圖4中的會話密鑰表示授權(quán)用戶秘密保存的會話密鑰,授權(quán)用戶利用會話密鑰解密云服務(wù)輸出的密文得到云服務(wù)輸出,同時授權(quán)用戶可以利用會話密鑰解密授權(quán)用戶數(shù)據(jù)密文。
步驟9,訪問密文。
授權(quán)中心按照下式,計算會話密鑰初始密文:
其中,C1”表示會話密鑰初始密文,Dec表示AES安全對稱解密操作,MSK表示授權(quán)中心主密鑰,表示會話密鑰密文。
授權(quán)中心將會話密鑰初始密文發(fā)送給服務(wù)提供商,服務(wù)提供商計算會話密鑰初始密文,得到會話密鑰,服務(wù)提供商將會話密鑰發(fā)送給授權(quán)中心,授權(quán)中心計算云服務(wù)輸出的密文,得到云服務(wù)輸出,授權(quán)中心計算授權(quán)用戶數(shù)據(jù)的密文,得到授權(quán)用戶明文。
參照附圖4中的授權(quán)用戶訪問密文,表示訪問密文,圖4中的會話密鑰密文表示授權(quán)中心得到的會話密鑰密文,圖4中授權(quán)中心首先計算會話密鑰密文得到會話密鑰初始密文,并將會話密鑰初始密文發(fā)送給服務(wù)提供商,由服務(wù)提供商計算得到會話密鑰,服務(wù)提供商將會話密鑰發(fā)送給授權(quán)中心,授權(quán)中心就可以利用會話密鑰解密得到云服務(wù)輸出和授權(quán)用戶數(shù)據(jù)明文。