国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

霧計算中基于無配對CP-ABE 可驗證的訪問控制方案

2021-08-28 10:08:22董江濤閆沛文杜瑞忠
通信學報 2021年8期
關(guān)鍵詞:訪問控制密文解密

董江濤,閆沛文,杜瑞忠

(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;2.河北大學網(wǎng)絡(luò)空間安全與計算機學院,河北 保定 071002)

1 引言

云計算能夠?qū)⒕薮蟮臄?shù)據(jù)計算處理程序分解,然后通過服務(wù)器組成的系統(tǒng)進行處理并將結(jié)果返回給用戶,在較短時間內(nèi)完成對龐大數(shù)據(jù)的處理,但其提供的資源集中在用戶的核心網(wǎng)絡(luò)中,在用戶與云交互信息時會產(chǎn)生時延較高的問題。隨著用戶對低時延的需求越來越高,霧計算作為云計算的延伸被提出[1]。與云計算相比,霧計算更側(cè)重于以分布式方式部署應(yīng)用程序與服務(wù),將云服務(wù)與靠近網(wǎng)絡(luò)邊緣的分布式資源相結(jié)合,使存儲和數(shù)據(jù)處理等貼近網(wǎng)絡(luò)邊緣設(shè)備,可以提供外包計算、資源分配和緩存等多種服務(wù)[2-4],有效緩解云計算中存在的時延問題,并廣泛應(yīng)用在智能醫(yī)療、智慧城市等多個領(lǐng)域中[5-6]。

霧計算更貼近終端用戶,數(shù)據(jù)中包含大量用戶隱私信息,一旦發(fā)生數(shù)據(jù)泄露事件,將嚴重影響用戶隱私。同時,為了保證數(shù)據(jù)只允許具有訪問控制權(quán)限的用戶查看,建立一種訪問控制方案是必要的,如果采取傳統(tǒng)的基于角色的訪問控制方案[7],用戶需要通過角色去訪問數(shù)據(jù),授權(quán)形式單一。為每一個訪問用戶分配角色與之對應(yīng)的權(quán)限,對于用戶數(shù)量龐大的霧計算來說,分配角色與其對應(yīng)權(quán)限的工作量是巨大的,并且僅通過角色去授予訪問控制權(quán)限是粗粒度的,因此設(shè)計一種霧計算環(huán)境下高效、細粒度的訪問控制方案是必要的[8]。基于密文策略的屬性加密(CP-ABE,ciphertext policy attribute based encryption)技術(shù)可以實現(xiàn)對數(shù)據(jù)的細粒度訪問控制,其密文與密鑰都與用戶的屬性相關(guān),數(shù)據(jù)擁有者可以根據(jù)用戶的特征信息制定出由屬性集合構(gòu)成的加密策略,只有當用戶的屬性集合滿足加密策略中的屬性要求時才能對數(shù)據(jù)進行解密。靈活的訪問權(quán)限授予能夠適用于霧計算環(huán)境,并保護數(shù)據(jù)的安全,但效率不高的問題仍然制約了其發(fā)展與應(yīng)用。在基于配對的密碼協(xié)議中,與標量乘法相比,雙線性配對被認為是開銷最大、耗時最長的運算,實驗表明,在同一橢圓曲線下,雙線性配對操作的計算開銷比標量乘法的計算開銷大2~3 倍。因此減少雙線性配對的計算次數(shù)能夠有效地提升CP-ABE的效率。為了減小用戶的解密計算開銷,研究者提出了外包解密的概念。解密算法中先使用轉(zhuǎn)換密鑰將密文轉(zhuǎn)換為部分密文,且無法通過外包解密算法獲取明文數(shù)據(jù),再交由用戶進行解密,這樣用戶僅需要較小的計算開銷便可以獲取明文數(shù)據(jù)。然而將解密外包后不能確保轉(zhuǎn)換后密文的有效性,當外包解密機構(gòu)不可信時,可能會篡改轉(zhuǎn)換后密文,因此,對于外包解密的訪問控制方案,驗證轉(zhuǎn)換后的密文是有必要的。而現(xiàn)有方案往往需要建立可信第三方,這需要高額的信任建立成本,且存在單點故障問題。為了解決上述問題,本文提出了一種霧計算中基于無配對CP-ABE 可驗證的訪問控制方案。

結(jié)合霧計算的特點,本文建立了云-霧-用戶分層的訪問控制架構(gòu),用戶通過霧節(jié)點與云進行交互。基于密文策略的屬性加密技術(shù)來實現(xiàn)數(shù)據(jù)的機密性和細粒度訪問控制,用線性秘密共享方案(LSSS,linear secret sharing scheme)構(gòu)建訪問結(jié)構(gòu)來增強訪問策略的表達能力,使只有滿足訪問結(jié)構(gòu)的用戶才能對數(shù)據(jù)進行訪問。利用橢圓曲線加密中的簡單標量乘法代替雙線性配對計算,提升方案整體效率,并設(shè)計安全高效的外包解密方案,將解密中的部分計算外包給霧節(jié)點,減少數(shù)據(jù)用戶的計算負擔。因為區(qū)塊鏈技術(shù)是理想的防止數(shù)據(jù)篡改的方法,在霧節(jié)點部署區(qū)塊鏈,一方面利用區(qū)塊鏈技術(shù)為霧計算提供可信和安全的環(huán)境,另一方面通過霧節(jié)點為區(qū)塊鏈提供計算資源和存儲能力。通過區(qū)塊鏈記錄整個訪問授權(quán)的流程,以達到可溯源的目的,并對整個訪問事務(wù)進行正確性驗證以防被惡意篡改。對方案進行仿真實驗對比,實驗結(jié)果表明用戶解密時間消耗較小且穩(wěn)定,整體計算效率更高。

本文主要的研究工作如下。

1) 建立云-霧-用戶分層的訪問控制架構(gòu),并將區(qū)塊鏈節(jié)點部署在霧層的霧節(jié)點設(shè)備中,一方面利用區(qū)塊鏈技術(shù)為霧計算提供可信和安全的環(huán)境,另一方面通過霧節(jié)點為區(qū)塊鏈提供計算資源和存儲能力。利用區(qū)塊鏈來記錄整個訪問控制的流程,使其不會被惡意篡改,保護數(shù)據(jù)安全。

2) 利用橢圓曲線加密中的簡單標量乘法代替雙線性配對計算,提高了CP-ABE 算法效率,并結(jié)合外包解密思想,將解密操作外包給霧節(jié)點運行,充分利用了霧節(jié)點的計算能力,使用戶解密操作的計算開銷較小且恒定。本文方案的效率更高,且更適用于設(shè)備計算能力受限的霧計算環(huán)境。

3) 對本文方案進行安全性分析,建立敵手游戲模型,結(jié)果表明該方案滿足明文攻擊安全。通過性能分析與仿真實驗分析,驗證了本文方案在滿足安全性前提下效率更高。

2 相關(guān)工作

2007 年,Bethencourt 等[9]首次提出CP-ABE 方案,基于雙線性對使數(shù)據(jù)加密與訪問控制結(jié)合,并支持正負屬性與門限訪問結(jié)構(gòu),之后被廣泛應(yīng)用于云存儲環(huán)境中數(shù)據(jù)的細粒度訪問控制[10-11]。以上方案都采用單一授權(quán)中心為系統(tǒng)生成密鑰并且管理屬性,存在單點故障問題。因此Lewko 等[12]提出了多權(quán)威機構(gòu)的CP-ABE 方案,且不需要屬性權(quán)威機構(gòu)進行協(xié)作。Horvath[13]為了增加系統(tǒng)靈活性,在多權(quán)威機構(gòu)的CP-ABE 方案的基礎(chǔ)上,實現(xiàn)了基于身份的撤銷。Hur[14]改進了撤銷方案,支持對每個用戶的屬性集進行直接撤銷,并在文獻[15]的方案中進行了使用。Wang 等[16]解決了CP-ABE 方案中的密鑰托管問題,增強了屬性表達能力。Li 等[17]提出的方案對外包密文正確性進行了驗證,將驗證過程在解密前執(zhí)行,并且為授權(quán)用戶與未授權(quán)用戶檢查外包密文的正確性,但方案中需要指定2種訪問控制策略。Zhang 等[18]提出一種可追溯的多權(quán)威機構(gòu)CP-ABE方案,該方案可以根據(jù)跟蹤算法識別出泄露解密密鑰的惡意用戶,并降低跟蹤的存儲成本?,F(xiàn)有CP-ABE 方案中包含了線性對配對計算與求冪計算,極大地限制了在計算能力受限的邊緣設(shè)備中的使用。

基于配對的密碼協(xié)議的效率取決于配對計算的速度,因此,為了提高效率,學者做了大量的研究工作。對于如何優(yōu)化ECC 協(xié)議,F(xiàn)reeman 等[19]對橢圓曲線進行了分類,并介紹了其構(gòu)造和一些優(yōu)化技術(shù)。Scott[20]分析了如何改進配對操作來提升屬性加密的效率。Simon 等[21]對橢圓曲線密碼中的標量乘法進行了研究,為了進一步減少用戶計算將復雜操作進行外包計算。Chevallier-mames 等[22]提出了一種外包計算的訪問控制方案,將雙線性配對計算操作進行外包,但該方案的服務(wù)器并不是完全可信的。Chen 等[23]的方案在此基礎(chǔ)上進行改進,使系統(tǒng)的計算開銷進一步降低,但方案中所提安全模型并不具備現(xiàn)實基礎(chǔ)。為了從本質(zhì)上優(yōu)化CP-ABE算法,Odelu 等[24]提出了一種具有恒定密鑰大小的CP-ABE 方案,使用橢圓曲線密碼學技術(shù)避免了雙線性配對的計算開銷,但該方案用門限方法構(gòu)建訪問結(jié)構(gòu),制約了其可拓展性。

區(qū)塊鏈是一種具有去中心化,并保護數(shù)據(jù)完整性、有效性和真實性的技術(shù),眾多學者將CP-ABE與區(qū)塊鏈技術(shù)相結(jié)合來開展一系列工作。Maesa 等[25]的方案將區(qū)塊鏈技術(shù)與基于屬性的訪問控制模型相結(jié)合,使用區(qū)塊鏈代替?zhèn)鹘y(tǒng)的數(shù)據(jù)庫來存儲策略,并以事務(wù)的形式對訪問策略進行管理,能夠防止任何一方否認策略的真實性。Dagher 等[26]基于區(qū)塊鏈的框架提出了針對電子病歷的訪問控制方案,使病歷在被有效訪問的同時保護了患者的敏感信息,并使用加密的方法實現(xiàn)區(qū)塊鏈中數(shù)據(jù)的隱私性。但該方案中采用了PoW 共識機制,在保持區(qū)塊鏈一致性時計算開銷過于龐大。Dorri 等[27]提出了一種用于智能家居設(shè)備間訪問控制的私有區(qū)塊鏈方案。具體來說,訪問策略存儲在塊頭部,而訪問操作、設(shè)備添加和刪除記錄存儲在塊體中。謝絨娜等[28]提出了一種基于區(qū)塊鏈的可溯源訪問控制機制,將客體存儲在鏈下數(shù)據(jù)服務(wù)器,通過鏈上與鏈下相結(jié)合的方式,實現(xiàn)了對客體訪問授權(quán)與訪問過程的記錄。應(yīng)作斌等[29]針對電子健康檔案中密鑰管理及用戶身份追溯問題,結(jié)合變色龍哈希與零知識證明技術(shù)完成區(qū)塊鏈節(jié)點的注冊與身份認證,并結(jié)合屬性加密技術(shù)實現(xiàn)了完全細粒度的訪問控制。

綜上所述,傳統(tǒng)的訪問控制方案效率較低,雙線性配對計算開銷大。為此本文提出了霧計算中基于無配對CP-ABE 可驗證的訪問控制方案,在保障安全的前提下,提升了加解密效率。

3 預(yù)備知識

3.1 區(qū)塊鏈

區(qū)塊鏈是分布式共享賬本,具有抗偽造、可溯源、去中心化等特征,能夠在不信任的實體之間建立信任關(guān)系。聯(lián)盟區(qū)塊鏈由預(yù)選的節(jié)點組成,且每個塊的生成由所有的預(yù)選節(jié)點共同決定。

1) 數(shù)據(jù)結(jié)構(gòu)。每個數(shù)據(jù)塊都由一個塊頭和一個塊體組成,其中塊頭包含前一個區(qū)塊的哈希值、一組元數(shù)據(jù)、Merkle 根。通過哈希值鏈接前一區(qū)塊;一組元數(shù)據(jù)表示難度、時間戳與隨機數(shù),包含區(qū)塊生成過程的信息;Merkle 根總結(jié)區(qū)塊鏈中所有交易的數(shù)據(jù)結(jié)構(gòu)。塊體則包含交易的詳細信息。為了保證聯(lián)盟區(qū)塊鏈具有防篡改、完整性,主要使用的密碼學算法有哈希算法與數(shù)字簽名算法。

2) 共識協(xié)議。共識協(xié)議在區(qū)塊鏈的節(jié)點之間定義一個公共規(guī)則來生成新的區(qū)塊。目前,較主流的算法有PoS、PoWer、DPoS、PBFT 等,每種算法都有各自的優(yōu)缺點并適用于不同場景。聯(lián)盟區(qū)塊鏈相較于公有區(qū)塊鏈弱化了中心化,根據(jù)節(jié)點的準入機制,賦予節(jié)點信任值,所以更傾向于使用PBFT、DPoS 共識機制。

3) 智能合約。智能合約是以信息化方式傳播執(zhí)行合約的一種計算機協(xié)議,區(qū)塊鏈的出現(xiàn)為智能合約提供了安全的運行環(huán)境,被集成到以太坊中,所有節(jié)點協(xié)商的智能合約通過交易廣播到區(qū)塊鏈中達成共識,當一個或多個預(yù)定義條件被觸發(fā)時,智能合約可以自動驗證與執(zhí)行。

3.2 橢圓曲線密碼

橢圓曲線密碼屬于公鑰密碼體制,基于橢圓曲線離散對數(shù)問題的困難性,保證了其安全性。ECC與其他的公鑰密碼體制相比,系統(tǒng)參數(shù)與密鑰長度較小,安全性較高。

橢圓曲線是一個系數(shù)和變元都在有限域Zp(p為有限域的階數(shù))的二元三次方程y2=x3+ax+b,記為Ep(a,b)。Ep(a,b)是由方程的全體解(x,y)與無窮遠點O構(gòu)成的集合,x,y∈Zp是未知數(shù),a,b是系數(shù),并滿足4a3+27b2≠0。

橢圓曲線計算規(guī)則如下。

3.3 LSSS

定義在一個多方集合的線性秘密分享方案∏在域Zp上是線性的。

1) 每一個參與共享的秘密數(shù)據(jù)可以在域Zp上形成向量。

2) 存在一個大小為l×n的矩陣M被命名為∏的共享生成矩陣,即存在一個l行n列的矩陣M為秘密共享方案∏的共享生成矩陣。對于所有i=1,…,l,存在函數(shù)ρ將矩陣M的第i行記作ρ(i)。選取隨機值構(gòu)成向量v=(s,r2,…,rn),其中s∈Zp是將要共享的秘密值,則Mv是根據(jù)∏得到的關(guān)于s的l個共享份額的向量形式,Mvi屬于實體參與方ρ(i)。

4 系統(tǒng)模型

4.1 整體框架

本文提出了一種霧計算中基于無配對CP-ABE可驗證的訪問控制方案,系統(tǒng)模型如圖1 所示,該模型主要由屬性授權(quán)機構(gòu)(AA,attribute authority)、云服務(wù)提供商(CSP,cloud service provider)、霧節(jié)點(FN,fog node)、數(shù)據(jù)擁有者(DO,data owner)、數(shù)據(jù)用戶(DU,data user)5 類實體組成。

圖1 系統(tǒng)模型

AA 是完全受信任的一方,遵循協(xié)議規(guī)范來執(zhí)行任務(wù),對系統(tǒng)中的屬性進行管理,且每個AA 所管理的屬性都不相同,主要負責用戶注冊,為用戶綁定唯一的用戶標識符UID,同時負責密鑰的生成與分發(fā),并維護所管理屬性的屬性列表。

CSP 提供數(shù)據(jù)存儲等方面的服務(wù),在本文方案中假設(shè)CSP 可信。

FN 提供計算、存儲等服務(wù),每個FN 都與CSP連接,負責將用戶提交的密文上傳到CSP,并負責密文的部分解密。在FN 建立區(qū)塊鏈,對訪問事務(wù)的正確性驗證并記錄訪問授權(quán)過程。

DO 是有文件要上傳到云端存儲的用戶,為文件定義訪問結(jié)構(gòu),對文件進行加密后上傳到FN,再由FN 上傳到CSP。

DU 是訪問存儲在CSP 中的文件的用戶,并不完全受到信任。只有數(shù)據(jù)用戶的屬性集滿足嵌入在給定密文中的訪問結(jié)構(gòu)時,才可以使用私鑰從密文中解密文件。

4.2 算法定義

本文模型由系統(tǒng)初始化(Setup)、屬性授權(quán)機構(gòu)初始化(AASetup)、私鑰生成(KeyGen)、數(shù)據(jù)加密(Encypt)、數(shù)據(jù)解密(Decrypt)5 個算法構(gòu)成。

1) 系統(tǒng)初始化Setup(k1)→(PP,UID)。初始化階段輸入安全參數(shù)k進行運算獲得系統(tǒng)的全局參數(shù)PP 與用戶標識符UID。

2) 屬性授權(quán)機構(gòu)初始化AASetup(PP)→(PK,MSK)。多個屬性授權(quán)機構(gòu)獨立運行對屬性進行管理,且每個機構(gòu)中的屬性不重復。同時負責系統(tǒng)內(nèi)密鑰的生成與分發(fā)。

3) 私鑰生成KeyGen(PP,MSK,S,UID)→(SKi,UID,TK,USK)。由屬性授權(quán)機構(gòu)運行私鑰生成算法通過輸入全局參數(shù)PP、主密鑰MSK,以及屬性集合S,計算得到用戶的屬性私鑰SKi,UID,然后將其發(fā)送給用戶。用戶收到后根據(jù)屬性私鑰SKi,UID得到解密密鑰USK,并生成要交由霧節(jié)點外包計算的密鑰TK。在區(qū)塊鏈中為用戶與霧節(jié)點注冊數(shù)字簽名的公鑰與私鑰。

4) 數(shù)據(jù)加密Encrypt(PP,PK,(A,ρi),M)→(CT)。DO 先使用對稱加密算法對數(shù)據(jù)M進行加密,然后定義LSSS 訪問結(jié)構(gòu)(A,ρi),其中A表示根據(jù)訪問策略生成的訪問控制矩陣,ρi表示矩陣A中屬性所對應(yīng)的行數(shù),然后計算生成密文CT發(fā)送給霧節(jié)點。

5) 數(shù)據(jù)解密 Decrypt(PP,PK,TK,USK,CT)→(M)。該算法包括2 個子算法:霧節(jié)點運行外包解密算法FN.Decrypt 和用戶執(zhí)行本地子算法DU.Decrypt。

FN.Decrypt(PP,PK,TK,CT)→(CT')。霧節(jié)點收到用戶訪問請求后,先從CSP 獲取密文CT,然后使用轉(zhuǎn)換密鑰TK 對其進行解密操作,最后將結(jié)果發(fā)送到區(qū)塊鏈中進行正確性驗證。

DU.Decrypt(PP,PK,USK,CT')→(M)。當區(qū)塊鏈對霧節(jié)點生成的訪問事務(wù)進行驗證后,用戶將獲取轉(zhuǎn)換密文CT',然后使用其自定義的解密密鑰USK對密文進行解密,獲取數(shù)據(jù)M。

5 具體方案

本節(jié)描述了霧計算中基于區(qū)塊鏈的無配對CP-ABE 訪問控制方案的具體結(jié)構(gòu),系統(tǒng)流程如圖2 所示。為了提高整個算法的性能,將復雜的雙線性配對操作替換為橢圓曲線上的簡單標量乘法,從而簡化了計算。具體來說,數(shù)據(jù)擁有者首先用對稱加密技術(shù)對密文進行加密,然后使用盲因子sG加密對稱密鑰ck,其中G為階是r的橢圓曲線循環(huán)群的生成器,s為Zp中的隨機數(shù),數(shù)據(jù)用戶需要將屬性密鑰與密文進行計算才能夠消除盲因子sG。用戶的每個屬性都與身份標識UID 綁定,如果用戶在解密時互相勾結(jié),則不能成功解密密文。在用戶上傳文件與訪問階段,通過區(qū)塊鏈對訪問事務(wù)中數(shù)據(jù)進行正確性驗證,并記錄訪問事務(wù)Txupload與Txaccess,使數(shù)據(jù)上傳與訪問數(shù)據(jù)的整個過程可溯源。

圖2 系統(tǒng)流程

階段1系統(tǒng)初始化Setup(k1)→(PP,UID)

輸入安全參數(shù)k,得到全局參數(shù)PP 與用戶標識UID。同時構(gòu)建階為q的有限域GF(q),在有限域GF(q)中選取橢圓曲線E。選取哈希函數(shù)H:{0,1}→Zp,使用戶身份標識UID 映射到Z中元素,并定義屬性集L={a1,a2,…,am},生成全局參數(shù)PP={GF(q),G,L,E,H}。

階段2屬性授權(quán)機構(gòu)初始化AASetup(PP,L)→(PK,MSK)

輸入全局參數(shù)PP,由系統(tǒng)中的多個屬性授權(quán)機構(gòu)共同運行該初始化算法,每個授權(quán)機構(gòu)對屬性進行管理,且每個授權(quán)中心所管理屬性都不相同,對屬性ai選取隨機數(shù)ki∈Zp,并維護與用戶標識UID 對應(yīng)的屬性列表。生成系統(tǒng)公鑰PK 與主密鑰MSK。

階段3私鑰生成KeyGen(PP,MSK,S,UID)→(SKi,UID,TK,USK)

該算法由屬性授權(quán)機構(gòu)運行,為用戶生成私鑰SKi,UID,表示身份標識為UID 的用戶所包含屬性ai的屬性密鑰。屬性授權(quán)中心生成SKi,UID發(fā)送給對應(yīng)用戶,之后用戶選取隨機數(shù)z,n∈Zp,得到用戶解密密鑰USK=syggg00,最后由用戶生成霧節(jié)點轉(zhuǎn)換密鑰TK。在用戶向霧節(jié)點提交訪問申請時,將TK 交由霧節(jié)點進行外包解密計算,而用戶解密密鑰USK 由用戶自己保管,用來解密霧節(jié)點轉(zhuǎn)換后的密文。

階段4數(shù)據(jù)加密Encrypt (PP,PK,(A,ρi),M)→(CT)

數(shù)據(jù)擁有者在上傳文件前執(zhí)行該算法對數(shù)據(jù)文件進行加密,輸入全局參數(shù)PP、系統(tǒng)公鑰PK,計算Cn=H(CT),當用戶解密后用來驗證解密的正確性;并根據(jù)訪問控制策略定義LSSS 訪問結(jié)構(gòu)(A,iρ),來限制用戶對文件的訪問。其中,A表示l×m的訪問矩陣,ρ(x)表示訪問矩陣A中每一行所對應(yīng)的屬性。具體步驟如下:DO 定義一個LSSS 訪問結(jié)構(gòu)(A,ρi),并隨機選取密鑰ck,利用對稱加密算法對文件M進行處理表示為Eck(M),并計算Cn=H(Eck(M))。然后用戶選取隨機值s∈Zp,計算得到C0=ck+sG。選取隨機向量,其中,v以選取的隨機值s為第一個元素,u以0 為第一個元素,計算得到λx=Axv與ωx=Axu,其中x∈[0,l],Ax表示訪問矩陣的x行。對選取隨機數(shù)rx∈Zr,并計算得到{C1,x=λxG+rxkρ(x)G,C2,x=rxG,C3,x=ωxG},最后得到密文CT={(A,ρ),C0,Cn,Eck(M),{C1,x,C2,x,C3,x|?x∈[1,l]}},由用戶將CT 發(fā)送到霧節(jié)點由霧節(jié)點進行上傳。

階段5區(qū)塊鏈上傳驗證階段

因為用戶并不直接與CSP 交互,在上傳文件時需要提交到霧節(jié)點進行處理,為了使數(shù)據(jù)文件的整個上傳過程可溯源、抗偽造,用戶生成上傳事務(wù)Txupload={U,checkCode,sign},發(fā)送給CB 進行驗證,其中U表示上傳事務(wù)的標識符,checkCode 表示密文的完整性校驗碼,sign 表示用戶DO 在CB 上注冊的私鑰生成的數(shù)字簽名。checkCode 是通過哈希散列值算法生成的,任意節(jié)點都可以通過checkCode 驗證密文的完整性。Sign 用來證明該上傳請求確實是由DO 發(fā)送的。

算法1生成上傳事務(wù)

輸入上傳事務(wù)的標識符U,加密算法生成的密文CT,聯(lián)盟鏈CB 中記錄的用戶DO 的簽名私鑰BSKDO

輸出上傳事務(wù)Txupload

在生成Txupload后,將其廣播到CB 中的其他節(jié)點進行驗證,通過簽名來驗證事務(wù)的有效性,計算校驗碼驗證密文有效性,確定其沒有被惡意節(jié)點篡改。通過比較接收到的Txupload生成的信息摘要MD'與使用DO 的公鑰BSKDO解密簽名生成的信息摘要MD,來驗證Txupload的有效性。如果相等,則認為Txupload是有效的。同時為了保證上傳密文的完整性,進一步檢查信息摘要checkCode'與Txupload 中checkCode 是否相等,一旦通過驗證并由共識機制達成共識后,就會被打包成一個區(qū)塊,再由霧節(jié)點將密文成功上傳。

算法2驗證上傳事務(wù)

輸入Txupload={U,checkCode,sign},聯(lián)盟鏈CB 中記錄的用戶DO 的簽名公鑰BPKDO

輸出上傳事務(wù)Txstorage 與密文CT 的驗證結(jié)果

階段6霧節(jié)點解密算法FN.Decrypt

當數(shù)據(jù)用戶向霧節(jié)點申請訪問數(shù)據(jù)時,將轉(zhuǎn)換密鑰TK 發(fā)送給霧節(jié)點,之后霧節(jié)點從云服務(wù)商獲取密文CT,運行FN.Decrypt 算法,對密文CT 進行轉(zhuǎn)換。FN.Decrypt(PP,PK,TK,CT)→(CT')。當申請訪問的用戶屬性能夠滿足訪問結(jié)構(gòu)時,則存在一個常數(shù)集{,。可以先通過以下計算得到參數(shù)Ax。

然后霧節(jié)點生成轉(zhuǎn)換密文 CT'={C0,Eck(M),D,D′},發(fā)送到CB 生成訪問事務(wù)并進行驗證。

階段7區(qū)塊鏈訪問驗證階段

在區(qū)塊鏈收到轉(zhuǎn)換密文后,生成訪問事務(wù)并進行驗證。霧節(jié)點從屬性授權(quán)機構(gòu)獲取到用戶當前屬性,當用戶的屬性滿足訪問結(jié)構(gòu)時,便會存在一個常數(shù)集,所以用戶權(quán)限驗證算法中,當存在時,表示用戶擁有該文件的訪問權(quán)限。使用數(shù)據(jù)用戶轉(zhuǎn)換密鑰TK、轉(zhuǎn)換密文C′′與密文CT,以及用戶的簽名公鑰計算得到信息摘要,在驗證過程中信息摘要能夠匹配時,證明霧節(jié)點并沒有對訪問事務(wù)中數(shù)據(jù)進行篡改。因為這種模式,轉(zhuǎn)換密鑰以及密文的任何變化都會改變區(qū)塊鏈中相應(yīng)的哈希值,并且該系統(tǒng)中的所有實體都會感知到這些變化,因此可以達到防篡改的目的。

算法3生成訪問事務(wù)

輸入訪問事務(wù)標識符Ac,聯(lián)盟鏈CB 中記錄的霧節(jié)點的簽名私鑰BSKFn,轉(zhuǎn)換密鑰TK 與密文CT

輸出訪問事務(wù)Txaccess

驗證數(shù)據(jù)用戶訪問權(quán)限后,為數(shù)據(jù)用戶生成一個有效的訪問事務(wù) Txaccess={Ac,checkCode,time,sign},其中Ac 表示識別訪問事務(wù),checkCode 表示訪問事務(wù)的信息摘要,time 表示Txaccess生成時的時間,sign 表示證明了該訪問事務(wù)由哪個霧節(jié)點進行解密計算。在訪問事務(wù)有效生成后被打包成塊存儲在區(qū)塊鏈內(nèi),整個數(shù)據(jù)訪問的參與者與數(shù)據(jù)將被記錄在內(nèi)且不可偽造,以達到可溯源的目的,之后霧節(jié)點將生成的外包解密密文發(fā)送給用戶。

算法4驗證訪問事務(wù)

輸入Txaccess={Ac,checkCode,time,sign},聯(lián)盟鏈CB 中記錄的用戶DU 的簽名公鑰BPKDU

輸出訪問事務(wù)Txaccess驗證結(jié)果

階段8用戶解密階段

DU.Decrypt(PP,PK,USK,CT')→(M)。用戶收到霧節(jié)點發(fā)送的轉(zhuǎn)換密文 CT'后,運行算法DU.Decrypt 得到對稱密鑰ck。

得到對稱密鑰ck 后,通過對稱解密算法將得到文件M。驗證Cn=H(Eck(M))是否成立,成立則表示用戶解密得到的數(shù)據(jù)沒有被篡改。

6 安全性分析

本節(jié)主要分析所提方案在橢圓曲線的決策DBDH 假設(shè)下的安全性。

定理1如果概率多項式時間算法1 以不可忽略的優(yōu)勢ε>0破解本文提出的方案,那么算法2能夠區(qū)分一個DBDH 元組和一個隨機元組,并且優(yōu)勢為ε/2。

設(shè)G為以大素數(shù)r為階、P為生成元的群,首先由挑戰(zhàn)者C 首先隨機選擇,β∈{0,1}與R∈P,當β=1 時Z=abcG,否則Z=R。挑戰(zhàn)者C 發(fā)送一個元組(G,aG,bG,cGZ)給B,在下面的安全模型中由B 將扮演挑戰(zhàn)者。

A 和B 執(zhí)行如下操作。

初始化敵手A 先定義一個訪問結(jié)構(gòu)(A*,iρ),將其交給挑戰(zhàn)者B。

系統(tǒng)設(shè)置為系統(tǒng)中的每個屬性ai創(chuàng)造公鑰來對抗A,挑戰(zhàn)者B 對系統(tǒng)進行初始化,選擇隨機數(shù)ki∈Zr,生成PK={kiaG}。對每一個屬性ai,B 選擇隨機數(shù)n,v∈Zr,將nG、vG當作系統(tǒng)的公鑰發(fā)布,并將公鑰發(fā)送給敵手A,其中公共參數(shù)時隨機分布的。

階段1A 向B 提交用戶標識所對應(yīng)的屬性(ai,UID),用來請求用戶屬性所對應(yīng)的私鑰。對用戶的身份標識UID,用TUID來標識敵手A 要查詢的屬性ai在訪問矩陣A*中的行子集,所請求的行子集TUID中不能包含(1,…,0),保證了攻擊者不能夠請求一組能夠解密的密鑰。B 隨機選擇t∈Zr,并計算tkia作為私鑰發(fā)送給敵手A。

挑戰(zhàn)階段A 向B 發(fā)送等長的兩段信息m0和1m,B 選擇一個值S'∈Zr,選取參數(shù)β∈{0}1,,通過執(zhí)行加密算法算法對mβ進行計算。B 構(gòu)造密文CTb,將產(chǎn)生C0=mβ+sG,選取隨機向量,其中v以選取的隨機值s為第一個元素,u以0 為第一個元素,得到λx=Axv與ωx=Axv,其中x∈[0,l],Ax表示訪問矩陣的x行。最后由挑戰(zhàn)者B生成,將密文發(fā)送給敵手A。

階段2同階段1,敵手A 可以繼續(xù)向挑戰(zhàn)者B 發(fā)送(ai,UID)密鑰查詢,并不違反規(guī)定。

猜測游戲中如果β'=β,挑戰(zhàn)者B 輸出0,表明Z=abcG;否則,B 輸出1,表明Z=R。

當Z=abcG時,A 獲得有效的密文,則A 的優(yōu)勢為

當Z=R時,A 無法獲得任何數(shù)據(jù)信息,則A 的優(yōu)勢為

因此,B 破解該敵手游戲的優(yōu)勢為

在以上挑戰(zhàn)過程中,假設(shè)DBDH 成立,如果沒有敵手在多項式時間內(nèi)完成,那么本文方案是滿足橢圓曲線的決策DBDH 假設(shè)下的安全性的。

本文方案具有區(qū)塊鏈安全性、前向安全性和抗共謀安全性。

1) 在本文方案中,為了保證外包計算的正確性,需要對外包解密密文進行正確性驗證,在大部分已有的可驗證方案中都需要建立一個完全可信的中間實體,這會造成很高的信任構(gòu)建成本,同時會存在單點故障問題。利用區(qū)塊鏈抗篡改與可溯源特性來解決該問題,霧節(jié)點生成外包解密校驗碼發(fā)送到區(qū)塊鏈,可以在不涉及任何中間實體的情況下對外包解密結(jié)果進行驗證。同時對用戶權(quán)限進行了驗證,使屬性不滿足訪問結(jié)構(gòu)的用戶不能從霧節(jié)點獲取到轉(zhuǎn)換密文,也就無法進行解密,轉(zhuǎn)換密文與用戶權(quán)限的驗證都是通過區(qū)塊鏈進行驗證的,可以較小的人工干預(yù)實現(xiàn)可信計算,因此本文方案是可信的且具有驗證性。為了保證數(shù)據(jù)用戶能夠獲取完整數(shù)據(jù),在數(shù)據(jù)上傳驗證過程中加入了密文的完整性校驗碼,能夠隨時對密文進行校驗,確保了數(shù)據(jù)的完整性。并且在本文方案中可以跟蹤與驗證區(qū)塊鏈中訪問控制信息,任何數(shù)據(jù)的上傳與用戶的訪問都將被記錄為一個不可篡改的訪問事務(wù),可以確認哪個數(shù)據(jù)擁有者將何文件提交到CSP,哪個數(shù)據(jù)用戶與霧節(jié)點進行交互對數(shù)據(jù)進行了訪問,任何數(shù)據(jù)的上傳與用戶的訪問都將被記錄為一個不可篡改的訪問事務(wù),因此整個訪問方案滿足可溯源性。

2) 在本文方案中,由多屬性權(quán)威機構(gòu)運行密鑰生成算法生成屬性密鑰并發(fā)送給用戶,但用戶并無法從該屬性密鑰中獲取與該屬性相關(guān)的其他任何信息。同時,在屬性授權(quán)機構(gòu)中建立用戶屬性列表,當用戶的屬性被整體撤銷時,需要在屬性列表中刪除與用戶標識UID 相關(guān)的所有屬性信息,該用戶在申請訪問時,霧節(jié)點并不能從屬性授權(quán)機構(gòu)中獲取到用戶的相關(guān)屬性信息,所以會拒絕該用戶的訪問。當用戶所擁有的某個屬性被撤銷時,只需要在屬性列表中修改撤銷屬性信息即可,這樣霧節(jié)點獲取的用戶屬性集合將不包含已撤銷屬性,當文件的訪問結(jié)構(gòu)中包含已撤銷屬性的數(shù)據(jù)時,將無法通過用戶權(quán)限驗證階段,因此本文方案滿足前向安全性。

3) 本文方案使用對稱加密密鑰ck 對文件進行加密,然后設(shè)置訪問結(jié)構(gòu)A*對ck 加密,只有DU的屬性滿足訪問結(jié)構(gòu)時才能解密ck+sG。假設(shè)多個未滿足訪問結(jié)構(gòu)的用戶相互勾結(jié)交換密鑰,組成了滿足訪問結(jié)構(gòu)中的屬性集。根據(jù)密鑰生成KeyGen算法,用戶私鑰中屬性將與用戶標識UID 進行綁定,則產(chǎn)生不同的私鑰SKi,UID=ki+H(UID)n,假設(shè)互相勾結(jié)的用戶身份分別為r1,2r,因為不同用戶之間的用戶標識 UID 不同,通過解密計算得到drxG。其中便無法推出sG,所以仍然無法對密文進行解密。因此,本文方案具有抗共謀攻擊性。

7 性能分析

本節(jié)對本文方案在理論上和實驗上進行分析,證明其可行性。本文方案與文獻[17]、文獻[18]、文獻[24]方案的功能比較如表1 所示。

表1 功能比較

7.1 理論分析

通過功能比較可以發(fā)現(xiàn),在訪問結(jié)構(gòu)的比較中,文獻[24]方案使用了與門的訪問結(jié)構(gòu),其結(jié)構(gòu)單一不夠靈活,并且文獻[17,24]方案中采用單一授權(quán)機構(gòu)進行授權(quán),存在單點故障問題。而本文方案與文獻[24]方案均避免了雙線性配對帶來的計算開銷,能夠提升整體效率。采用外包計算的本文方案與文獻[17]方案能夠降低用戶在解密時的計算開銷。

本文方案與文獻[17]、文獻[18]、文獻[24]方案中用戶加密、用戶解密、外包解密中的計算開銷比較如表2 所示,其中,L表示訪問矩陣中包含屬性個數(shù),Ls表示滿足訪問矩陣的最少屬性數(shù)量,N表示系統(tǒng)內(nèi)屬性數(shù)量,ω表示與門結(jié)構(gòu)中屬性數(shù),P表示雙線性配對操作,E表示群內(nèi)的乘法,Eg、ET分別表示群G內(nèi)的指數(shù)操作與群GT內(nèi)的指數(shù)操作。

從表2 可以看出,文獻[18,24]方案并沒有使用外包計算技術(shù),用戶的計算開銷隨著訪問控制策略的復雜化而呈線性增加趨勢。但在使用了外包計算的本文方案與文獻[17]方案中,用戶解密時的計算開銷是穩(wěn)定的。文獻[17]方案中授權(quán)用戶與未授權(quán)用戶檢查外包密文的正確性,雖然實現(xiàn)外包計算的正確性驗證,但需要指定2 種訪問控制策略,用戶加密時的開銷要大于本文方案。文獻[18]方案為了使整個CP-ABE 方案做到可溯源,設(shè)計了可溯源算法,能夠識別系統(tǒng)中泄露信息的惡意用戶,但會導致用戶的計算開銷過大,用戶加密與解密開銷要遠大于其他方案。本文方案與文獻[24]方案中均使用橢圓曲線加密中標量乘法取代了雙線性配對操作,在加解密時的計算開銷均小于其他方案。綜上所述,本文方案的計算開銷要小于其他方案。

表2 計算開銷比較

7.2 實驗分析

本文方案的效率主要受區(qū)塊鏈與CP-ABE 加解密算法的影響,而區(qū)塊鏈上的性能主要取決于共識算法如PBFT,因此本文更側(cè)重于運用橢圓曲線加密中的簡單標量乘法代替雙線性配對計算后CP-ABE 的效率。通過仿真實驗,將本文方案與文獻[17-18,24]方案在用戶加密、用戶解密與外包解密等方面進行比較分析。本文基于charm-crypto 框架使用Python2.7 進行仿真實驗,并選擇基于512 B 有限域上階為160 的橢圓曲線;使用Intel Xeon E5-2690 處理器,16 GB 內(nèi)存,搭建環(huán)境為Ubuntu16.04 系統(tǒng)的服務(wù)器作為霧節(jié)點和AA;使用Intel i5-4200U 1.6 GHz 處理器,4 GB 內(nèi)存,搭建環(huán)境為Ubuntu16.04 64 位系統(tǒng)的筆記本電腦充當用戶。實驗中所有結(jié)果均為 10 次結(jié)果的平均值。

數(shù)據(jù)擁有者加密計算時間比較如圖3 所示。從圖3 中可以看出,本文方案與文獻[17-18,24]方案的數(shù)據(jù)擁有者在加密計算時的消耗時間隨屬性數(shù)量的增加而越來越多。其中,文獻[18]方案的增長率最高,隨著屬性數(shù)量的增加其消耗時間遠超其他方案,而本文方案的增長率最小。使用橢圓曲線中簡單標量乘法的本文方案與文獻[24]方案在數(shù)據(jù)擁有者加密時的消耗時間遠少于其他方案,且本文方案效率更高。

圖3 數(shù)據(jù)擁有者加密計算時間比較

數(shù)據(jù)用戶解密計算時間比較如圖4 所示。從圖4 中可以看出,沒有將解密計算外包的文獻[18,24]方案中數(shù)據(jù)用戶在執(zhí)行解密計算時,其消耗時間會隨屬性數(shù)量的增加而越來越多;而在設(shè)計了外包計算的本文方案與文獻[17]方案中,用戶在解密計算時的開銷不會因為訪問策略的復雜化而增加用戶計算負擔,并且本文方案解密消耗時間更少。

圖4 數(shù)據(jù)用戶解密計算時間比較

外包解密時間比較如圖5 所示。從圖5 可以明顯看出,避免了雙線性對配對操作的本文方案在外包解密操作時所消耗時間要遠少于文獻[17]方案,并且隨著訪問結(jié)構(gòu)中屬性數(shù)量的增加,這種差距將越來越明顯,所以本文方案在外包解密算法中效率更高。

圖5 外包解密計算時間比較

8 結(jié)束語

本文提出了一種霧計算中基于無配對CP-ABE可驗證的訪問控制方案,利用橢圓曲線加密中的簡單標量乘法替代雙線性配對計算,并設(shè)計安全高效的外包計算,減少了用戶解密時計算開銷。在霧節(jié)點中部署區(qū)塊鏈不僅可以為霧計算提供可信和安全的環(huán)境,還可以根據(jù)區(qū)塊鏈防篡改可溯源的特性實現(xiàn)對訪問事務(wù)的正確性驗證并記錄訪問授權(quán)過程。對本文方案的安全性進行了分析,仿真實驗結(jié)果表明,本文方案的用戶解密時間消耗較小且穩(wěn)定,整體計算效率更高。但本文方案仍存在一些不足之處?,F(xiàn)有訪問策略會顯式地附加在密文上,或者僅實現(xiàn)了部分隱藏以防止公開可見,會出現(xiàn)接收者的持有屬性被窺探的情況,導致用戶的隱私泄露。因此需要一種完全隱藏屬性的訪問策略,能夠?qū)傩孕畔⑼耆[藏在訪問策略中,使任何有價值的屬性信息都不透露給未授權(quán)的接收者。

猜你喜歡
訪問控制密文解密
解密“熱脹冷縮”
一種針對格基后量子密碼的能量側(cè)信道分析框架
一種支持動態(tài)更新的可排名密文搜索方案
基于模糊數(shù)學的通信網(wǎng)絡(luò)密文信息差錯恢復
解密“一包三改”
少先隊活動(2020年9期)2020-12-17 06:17:31
炫詞解密
ONVIF的全新主張:一致性及最訪問控制的Profile A
動態(tài)自適應(yīng)訪問控制模型
通信學報(2016年11期)2016-08-16 03:20:32
淺析云計算環(huán)境下等級保護訪問控制測評技術(shù)
大數(shù)據(jù)平臺訪問控制方法的設(shè)計與實現(xiàn)
安吉县| 福鼎市| 贵港市| 广元市| 武汉市| 湾仔区| 龙山县| 综艺| 澳门| 廉江市| 灵璧县| 达州市| 洮南市| 惠安县| 顺昌县| 南城县| 平舆县| 民权县| 南康市| 宿迁市| 彭水| 西华县| 山东省| 砀山县| 西乌| 安义县| 马关县| 闸北区| 山西省| 南丰县| 麻江县| 闽清县| 临漳县| 蓬莱市| 托里县| 乐安县| 博罗县| 宣恩县| 沂南县| 新干县| 涟水县|