張學旺 姚亞寧 付佳麗 謝昊飛
1(重慶郵電大學軟件工程學院 重慶 400065)
2(重慶郵電大學自動化學院 重慶 400065)
物聯(lián)網(wǎng)(Internet of things,IoT)應用廣泛,包括智慧交通、智慧醫(yī)療、智慧家居等多個領域[1].隨著物聯(lián)網(wǎng)設備的不斷增加,物聯(lián)網(wǎng)數(shù)據(jù)共享的需求也日益增加.然而,物聯(lián)網(wǎng)數(shù)據(jù)共享仍存在安全和隱私保護等問題,這嚴重阻礙數(shù)據(jù)分享者的積極性[2].訪問控制是確保數(shù)據(jù)不被未授權者訪問的一種重要方法,區(qū)塊鏈與訪問控制的結合有2 個方面:一是實現(xiàn)去中心化的訪問控制模型,解決物聯(lián)網(wǎng)場景下中心化訪問控制的安全和效率問題;二是對基于屬性的訪問控制進行安全性增強,實現(xiàn)去中心化的授權中心[3].
Sahai 等人[4]提出屬性基加密(attribute-based encryption,ABE)的概念,把如何構建多授權機構ABE 方案作為急需要解決的問題.Chase[5]首次提出了多授權機構CP-ABE 方案,其授權機構由1 個權威機構(certification authority,CA)和多個屬性機構(attribute authority,AA)組成.CA 負責為用戶分發(fā)身份相關的密鑰,AA 負責為用戶分發(fā)屬性相關的密鑰,該方案中每個數(shù)據(jù)用戶通過全局唯一身份標識(global unique identifier,GID)表示其唯一性;但是該方案中仍然存在一個解密能力極強的CA,無法實現(xiàn)真正意義上的無中心化.為了解決該問題,Lin 等人[6]采用密鑰分發(fā)和聯(lián)合零秘密共享技術,提出了一種無CA 的多授權機構ABE.在CP-ABE 方案中,數(shù)據(jù)擁有者加密數(shù)據(jù)前首先根據(jù)自身需要制定相應的訪問控制策略,然后基于該策略加密明文數(shù)據(jù)(訪問控制策略以明文的形式隱含在密文數(shù)據(jù)中).但是,在物聯(lián)網(wǎng)中的許多應用中,訪問控制策略本身包含大量的隱私數(shù)據(jù).例如:某醫(yī)院將所有注冊病人的醫(yī)療信息托管給第三方存儲,為了保護病人的個人隱私,使用病人姓名、身份證號、就診醫(yī)院及科室等屬性字段為每個用戶的醫(yī)療信息進行加密.在這些屬性中身份證號、科室相對其它屬性是比較敏感的,如若得知病人所屬科室為精神科,那么由屬性可以判斷出此病人極有可能存在精神方面的問題.因此,實現(xiàn)隱藏訪問策略有助于保護物聯(lián)網(wǎng)中的隱私信息.
Zhang 等人[7]采用布隆過濾器(Bloom filter,BF)并搭配線性秘密共享方案,提出一種針對物聯(lián)網(wǎng)數(shù)據(jù)的部分策略隱藏方案.該方案將屬性值隱藏在BF 中,且能夠抵抗訪問策略猜測攻擊和字典攻擊.王悅等人[8]提出一種隱藏訪問策略的高效CP-ABE 方案.該方案利用合數(shù)階雙線性群構造了一種基于包含正負及無關值的“與門”的策略隱藏方案,使得屬性隱藏和秘密共享能夠同時應用到“與門”結構中;能有效地避免用戶的具體屬性值泄露給第三方,確保用戶隱私的安全.為了解決車聯(lián)網(wǎng)環(huán)境下跨信任域數(shù)據(jù)共享中跨域數(shù)據(jù)泄露嚴重的問題,劉雪嬌等人[9]提出了一種區(qū)塊鏈架構下高效的車聯(lián)網(wǎng)跨域數(shù)據(jù)安全共享方案.不同信任域的可信機構構成區(qū)塊鏈,采用改進的CP-ABE 加密數(shù)據(jù),結合區(qū)塊鏈和星際文件系統(tǒng)(InterPlanetary file system,IPFS)進行存儲,構建了基于區(qū)塊鏈的跨域數(shù)據(jù)細粒度、安全共享方案.Dai 等人[10]提出一種新的數(shù)據(jù)訪問控制策略.首先設計基于屬性的Merkle 樹結構保存用戶屬性,然后基于該Merkle 樹構造零知識證明,有效存儲用戶屬性進行零知識證明驗證,驗證者只知道用戶滿足策略要求,而不知道用戶擁有哪些屬性,從而達到策略隱藏的目的.訪問策略隱藏的CP-ABE 方案是研究熱點,科研人員不斷地提出實現(xiàn)方案[11-14].
現(xiàn)有的策略隱藏CP-ABE 方案分為完全隱藏[15]和部分隱藏[16].完全隱藏訪問策略意味著不暴露訪問策略中的屬性信息,而部分隱藏訪問策略意味著只隱藏敏感屬性值.對于物聯(lián)網(wǎng)環(huán)境來說,訪問策略的任何信息泄露都有可能對數(shù)據(jù)擁有者的隱私產(chǎn)生威脅.另外,提升數(shù)據(jù)共享效率的方案大都忽略了秘密分發(fā)者的負擔.因此,本文在文獻[17]的基礎上,進一步提出一種策略完全隱藏且高效的多授權機構CPABE 方案.本文的貢獻有3 個方面:
1)策略完全隱藏.基于聯(lián)盟鏈可以更好地保護隱私數(shù)據(jù)且更具有靈活性的特點,提出一種策略完全隱藏的高效多授權機構CP-ABE 物聯(lián)網(wǎng)數(shù)據(jù)共享方案.
2)多秘密共享.根據(jù)多秘密共享算法改進多授權機構CP-ABE 方案提升數(shù)據(jù)共享的效率以及增強細粒度訪問控制,即在一次數(shù)據(jù)共享過程中實現(xiàn)多份數(shù)據(jù)的共享,而且每份共享數(shù)據(jù)各有不同的門限訪問結構.
3)利用MurmurHash3 算法實現(xiàn)訪問策略的完全隱藏,由于哈希算法具有不可逆性,能有效防止從訪問策略中推斷出任何有價值的信息.
Lewko 等人[18]提出了一種新型的“去中心”的多授權機構屬性加密(decentralized multi-authority attributebased encryption)方案.該方案同樣不需要CA 的參與,任何實體不需要全局合作就能成為AA,并獨立分發(fā)密鑰,用戶可以根據(jù)自身情況選擇相信AA.該方案定義為:
1)Global Setup(λ)→GP.該算法為全局設置算法,由參與系統(tǒng)建立階段的可信第三方執(zhí)行,以安全參數(shù) λ為輸入,輸出系統(tǒng)公共參數(shù)GP.
2)Authority Setup(GP)→(SK,PK).該算法為機構設置算法,每個屬性機構以GP為輸入進行初始化,輸出該屬性機構的私鑰SK和公鑰PK.
3)Encrypt(M,(A,ρ),GP,{PK})→CT.該算法為加密算法,以明文M、訪問結構(A,ρ)、GP和相關屬性機構的公鑰PK為輸入,輸出密文CT.
4)KenGen(GID,i,S K,GP)→Ki,GID.該算法為密鑰生成算法,以用戶身份GID、GP、屬性i和相關屬性機構的私鑰SK為輸入,輸出該用戶的屬性i對應的私鑰Ki,GID.
5)Decrypt該算法為解密算法,以GP、CT和用戶GID的私鑰集合為輸入.若該用戶的屬性集合滿足訪問結構,則解密成功,輸出明文M;否則,解密失敗.
秘密共享作為保護敏感信息的重要工具,被廣泛應用于門限數(shù)字簽名[19]、多方安全計算[20]和密鑰協(xié)商[21]等.對單秘密共享方案來說,參與者1 次只能實現(xiàn)1 個秘密的共享,雖然共享多個秘密可以通過多次秘密共享實現(xiàn),但是這樣不僅加大了秘密分發(fā)者和參與者的負擔,還增加了秘密共享實現(xiàn)的代價.因此,1 次共享單個秘密已經(jīng)無法滿足人們對于秘密共享的要求.2000 年左右,多秘密共享概念被提出,即多個秘密在1 次秘密分發(fā)過程中實現(xiàn)共享,拓寬了秘密共享的應用范圍.本文采用文獻[22]基于中國剩余定理和Shamir 門限方案提出的一種門限可變的多秘密共享(changeable threshold multi-secret sharing,CTM-SS)方案.該方案共享多組秘密只需1 次秘密分發(fā)過程,且各組秘密可有不同的門限訪問結構.
MurmurHash 是一種非加密型哈希函數(shù),適用于一般的哈希檢索操作.由Austin Appleby 在2008 年發(fā)明,與其它流行的哈希函數(shù)相比,MurmurHash 的隨機分布特征表現(xiàn)更好.MurmurHash3 是MurmurHash 的第3 個版本,支持128 b,碰撞概率大大降低,在0~108范圍內(nèi)幾乎不存在碰撞[23].
策略隱藏的高效多授權機構CP-ABE 物聯(lián)網(wǎng)數(shù)據(jù)共享方案模型如圖1 所示,方案模型包含的實體主要有:可信第三方(trusted third party,TTP)、AA、數(shù)據(jù)擁有者(data owner,DO)、數(shù)據(jù)用戶(data user,DU)、IPFS 和聯(lián)盟鏈(consortium blockchain,CB).
Fig.1 IoT data sharing scheme model圖1 物聯(lián)網(wǎng)數(shù)據(jù)共享方案模型
TTP 只參與系統(tǒng)初始化階段的全局參數(shù)生成算法,為AA 生成其對應的公鑰和私鑰提供參數(shù).
AA 主要承擔屬性管理工作以及為DU 生成屬性私鑰.該模型中存在多個AA,用戶屬性被多個AA 共同管理,既可解決單AA 存在的密鑰托管問題而提高系統(tǒng)安全性,又可以提高系統(tǒng)性能.
DO 先使用高級加密標準(advanced encryption standard,AES)算法加密要共享的數(shù)據(jù),1 次共享多份數(shù)據(jù),并且每份數(shù)據(jù)的對稱密鑰和門限可以不同.然后,DO 根據(jù)自身意愿制定相應的訪問策略,實施以自己為中心的數(shù)據(jù)訪問控制.本文方案會自動將DO設置的每個屬性信息通過MurmurHash3 算法隱藏起來,即訪問策略中只存儲屬性信息對應的哈希值,不存儲明文屬性信息,保護了物聯(lián)網(wǎng)環(huán)境下訪問策略的安全性和隱私性.最后,基于隱藏屬性的訪問結構對密鑰集合進行加密,將對稱密鑰集合密文、密鑰和密文哈希值對應關系(每份數(shù)據(jù)加密的密鑰和密文存儲至IPFS 形成的哈希值一一對應)上傳至CB,方便DU 根據(jù)重構出的對稱密鑰解密對應的數(shù)據(jù)密文.
DU 根據(jù)實際情況選擇相信某些AA,并利用這些AA 頒發(fā)的密鑰解密對稱密鑰集合密文.若用戶屬性集滿足隱藏屬性的訪問結構,則可以從對稱密鑰集合密文中解密出自己所需的對稱密鑰,用來解密對應的數(shù)據(jù)密文,反之解密失敗.DU 可以根據(jù)各自的屬性集解密出DO 共享的部分或全部數(shù)據(jù).
IPFS 可能會對用戶的數(shù)據(jù)內(nèi)容感到好奇,甚至擅自將數(shù)據(jù)泄露給DO 的競爭對手以獲取不當利益.因此,本文方案只存儲數(shù)據(jù)密文至IPFS.
CB 是指由多個機構共同參與管理的區(qū)塊鏈,用戶節(jié)點只有滿足指定CB 的準入機制才能加入?yún)^(qū)塊鏈.與公有鏈相比,CB 可以更好地保護隱私數(shù)據(jù)且更具靈活性.由于區(qū)塊鏈上空間有限,CB 只存儲密鑰和密文哈希值的對應關系及對稱密鑰集合密文.密鑰和密文哈希值的對應關系是利用哈希表來存儲的,其中鍵為密文哈希值索引、值為對應的密文哈希值.本方案中密文哈希值索引是自增的,不會出現(xiàn)鍵沖突的情況,因此可以根據(jù)密文哈希值索引得到對應的密文哈希值.
現(xiàn)有的基于CP-ABE 算法的數(shù)據(jù)共享方案中,采用的都是單秘密共享算法,即1 次秘密共享過程只能共享1 個秘密.如果要共享另一個秘密,秘密分發(fā)者必須為所有的參與者重新分配新的秘密份額,而且多次秘密分發(fā)會加重秘密分發(fā)者的計算開銷.本文采用多秘密共享算法,不僅實現(xiàn)1 次數(shù)據(jù)共享過程共享多個秘密,而且秘密份額也得到了重用,數(shù)據(jù)共享效率更高.本文方案分為:系統(tǒng)初始化、數(shù)據(jù)加密和數(shù)據(jù)解密3 個階段.
2.2.1 系統(tǒng)初始化
1)全局參數(shù)生成
TTP 執(zhí)行全局設置算法Global Setup(λ)→GP,以安全參數(shù) λ為輸入,輸出系統(tǒng)全局公共參數(shù)GP.
①選擇一個階為N=p1p2p3的雙線性群G,其中p1,p2,p3為3 個素數(shù);
② 選擇一個將全局身份GID映射到群G中的哈希函數(shù)H:{0,1}*→G;
③輸出全局公共參數(shù)GP=其中g1為的生成元,為G的子群.
2)AA 參數(shù)生成
每個AA 執(zhí)行機構生成算法AuthorityS etup(GP)→(SK,PK)進行初始化,生成該AA 的公鑰PK和私鑰SK.
①對于每一個屬性i,AA 隨機選取2個指數(shù)αi,yi∈ZN;
2.2.2 數(shù)據(jù)加密
1)數(shù)據(jù)對稱加密
DO 使用AES 算法加密要共享的物聯(lián)網(wǎng)數(shù)據(jù),由于1 次共享過程可以共享多份數(shù)據(jù),因此用來加密數(shù)據(jù)的對稱密鑰也就存在多個.數(shù)據(jù)密文會被存儲到IPFS 中,DO 會接收到IPFS 返回的數(shù)據(jù)密文哈希值.
2)隱藏屬性的訪問策略構建
訪問策略是整個秘密共享算法的訪問控制中心,用于表明哪些參與者(屬性)可以合作恢復所共享的秘密.哪些參與者合作不能恢復秘密.在訪問結構中,葉子節(jié)點表示參與者,非葉子節(jié)點表示門限.例如(2,3)門限,表示任何2 個及以上參與者聯(lián)合才可以恢復所共享的秘密.使用128 b MurmurHash3 算法隱藏屬性的訪問策略如圖2 所示.
Fig.2 Access policy for hidden attributes圖2 隱藏屬性的訪問策略
在構建訪問策略過程中,需要將根節(jié)點的秘密值(對稱密鑰集合)遞歸地分發(fā)給每個節(jié)點,分發(fā)采用CTM-SS[22]方案中的秘密分發(fā)算法來實現(xiàn).該秘密分發(fā)算法如算法1 所示.設n個參與者構成的集合為},S表示秘密集合,設為m組需要共享的秘密.每組Gi包含的秘密個數(shù)可以不同,這里假設1 ≤p1≤p2≤…≤pm,并根據(jù)不同的(ti,n)(1 ≤i≤m)門限結構進行共享,其中門限值滿足1 ≤t1≤t2≤…≤tm.
算法1.秘密分發(fā)算法.
3)密鑰集合加密以及信息上鏈
DO 使用隱藏屬性的訪問策略加密對稱密鑰集合(對稱密鑰集合就是要共享的多個秘密),然后將對稱密鑰集合密文、密鑰和密文哈希值對應關系通過智能合約上傳至CB.
2.2.3 數(shù)據(jù)解密
1)根據(jù)隱藏屬性的訪問策略使用屬性集重構秘密.DU 從CB 上得到對稱密鑰集合密文,DU 使用自身的屬性集合來重構某個對稱密鑰,重構采用CTMSS[22]方案中的秘密重構算法來實現(xiàn).若DU 的屬性集合為授權集合,則解密成功;否則,解密失敗.該秘密重構算法如算法2 所示.算法2 中,以授權集合為例來說明秘密重構的過程,假設A要重構第i(1 ≤i≤m)組秘密{ki,1,ki,2,…,ki,p1},其門限值為ti.
算法2.秘密重構算法.
本文方案設計數(shù)據(jù)共享智能合約(data sharing smart contract,DSSC),采用Solidity 語言進行編寫.DO 和DU 通過調(diào)用DSSC 合約實現(xiàn)共享數(shù)據(jù)的存儲和獲取.DSSC 合約的基本業(yè)務設計如表1 所示.
Table 1 DSSC Contract Business Design表1 DSSC 合約業(yè)務設計
DSSC 合約定義了2 個引用類型的狀態(tài)變量secretKeyAndHash和secretKeySetCiphertext,分別表示映射和字符串.為了驗證合約方法的正確性,基于Remix 環(huán)境對3 種合約方法進行了編譯部署.3 種合約方法的具體代碼實現(xiàn)如圖3 所示.
Fig.3 Contract methods圖3 合約方法
定理1.隱藏屬性的訪問策略不會泄露任何有價值的信息.
證明.在隱私保護設計中,摒棄可能泄露隱私信息的明文訪問策略,以經(jīng)過MurmurHash3 128 b 哈希算法處理后的訪問策略實現(xiàn)策略的完全隱藏.因為哈希算法所計算出來的哈希值具有不可逆性,即使攻擊者得到了訪問策略,也就只能看到無數(shù)個屬性哈希值,無法逆向演算回原本的屬性信息,因此任何人都不可能知道屬性和其對應的屬性哈希值之間的對應關系.故該策略可有效地保護屬性信息. 證畢.
定理2.在多秘密共享過程中,不同的門限訪問結構不會影響系統(tǒng)的安全性.證明.由算法1 可知,當Pm>t1時,會構造一個Pm+tm-t1-1階的多項式H(x).因此,至少需要知道Pm+ti-t1(1 ≤i≤m)個滿足Hi(x)的點,才能重構Hi(x).由于公布了Pm-t1個點,至少還需要ti個參與者合作才能重構Hi(x),從而恢復秘密,而ti-1個或更少的參與者將不能合作重構Hi(x),這滿足Shamir 門限方案的安全性.當Pm≤t1時,會構造一個tm-1階的多項式H(x).因此,至少還需要ti個參與者合作才能重構Hi(x),從而恢復秘密,而ti-1個或更少的參與者將不能合作重構Hi(x),這也滿足了Shamir 門限方案的安全性.本文方案中,每組秘密可以根據(jù)不同的門限訪問結構進行共享,每次秘密重構過程都會根據(jù)上述2 種情況進行分類討論,若要重構出所共享的秘密,必須重構ti-1次Lagrange 插值多項式Hi(x).而對于ti-1個或更少的參與者來說,想要計算出所共享的秘密,等價于攻破Shamir 門限方案,這在計算上是不可行的. 證畢.
定理3.本文方案可以確保數(shù)據(jù)共享的安全性.
證明.本文方案以文獻[18]中的CP-ABE 算法為原型,使用多秘密共享算法替換傳統(tǒng)的單秘密共享算法,提出一種新型的多授權機構CP-ABE 算法,CPABE 算法的安全性并未降低.首先,DO 所共享的數(shù)據(jù)皆已加密;其次,使用改進后的多授權機構CPABE 算法加密對稱密鑰集合;最后,只有授權用戶方可解密出數(shù)據(jù).在本文方案中,即使攻擊者得到了密鑰和密文哈希值的對應關系,也不會降低本文方案的安全性,因為在密鑰和密文哈希值的對應關系中,并不存儲真正的密鑰,而是以密鑰的索引值和密文哈希值形成的鍵值對.攻擊者不能從對應關系中反推出密鑰,只能獲得密文哈希值,根據(jù)密文哈希值從IPFS 中檢索出密文,由于缺乏密鑰,也不會對方案的安全性造成威脅.證畢.
在共享多組秘密(數(shù)據(jù)加密階段描述的m組秘密G1,G2,…,Gm)的情況下,將本文方案使用到的秘密共享算法和文獻[24]中使用到的秘密共享算法進行分析.
文獻[24]中,在(ti,n)門限訪問結構上共享一組秘密Gi,秘密分發(fā)過程需要構造一個n階的Lagrange插值多項式,若共享m組秘密,就需要進行m次秘密分發(fā),重復計算量較大.而對于本文方案,在(ti,n)門限訪問結構上共享m組秘密時,秘密分發(fā)過程只需構造一個tm-1(當pm≤t1時)階或pm+tm-t1-1(當pm>t1時)階的Lagrange 插值多項式,即秘密分發(fā)僅需1 次,就可以實現(xiàn)m組秘密共享.因此,本文方案中使用到的秘密共享算法實現(xiàn)簡單、計算量小,對于共享多組秘密具有優(yōu)勢.
將本文方案與文獻[7,10-11,24]中提出的數(shù)據(jù)共享方案就各項功能特性進行對比,結果如表2 所示.由表2 可知,文獻[7,11,24]都是采用單授權機構的CP-ABE 方案,而且文獻[7,11]只實現(xiàn)了策略部分隱藏,文獻[24]不具有策略隱藏功能.文獻[10]雖然支持多授權機構和策略完全隱藏,但其使用到的秘密共享算法為單秘密共享.多秘密共享算法可以一次共享多個秘密信息,所消耗的計算量遠小于重復多次使用單秘密共享算法造成的開銷.因此,本文方案在聯(lián)盟鏈環(huán)境下實現(xiàn)了數(shù)據(jù)細粒度訪問控制,采用多授權機構和多秘密共享算法提高了系統(tǒng)運行的性能和數(shù)據(jù)共享的效率,也保證了策略的安全性.
Table 2 Function Comparison表2 功能對比
仿真實驗使用JPBC(Java pairing-based cryptography)庫和Google Guava 工具包進行代碼編寫,在8 GB 內(nèi)存、Intel?Core? i7-7700HQ CPU、Windows10操作系統(tǒng)環(huán)境下運行,結果均采用10 次實驗的平均運行時間.
為驗證本文方案中策略隱藏方法較文獻[7]所具有的優(yōu)勢,對其時間開銷進行對比實驗.實驗結果如圖4 和表3 所示:當屬性個數(shù)為1.2 萬時,文獻[7]采取的策略隱藏方法耗時幾乎是本文方案的2 倍.
Table 3 Policy Hiding Performance表3 策略隱藏性能
Fig.4 Policy hiding performance圖4 策略隱藏性能
秘密分發(fā)性能以秘密個數(shù)和屬性個數(shù)為變量,測試各個方案的運行時間.圖5(a)(b)(c)(d)分別以屬性個數(shù)為4,8,16 和32 時測試秘密分發(fā)階段的時間開銷.由于本文方案使用的秘密共享算法為多秘密共享,多個秘密共享只需要1 次秘密分發(fā)過程;而文獻[7,24]要想實現(xiàn)多個秘密共享,則需要多次秘密分發(fā)過程.從圖5 和表4 可以看出,隨著屬性個數(shù)和秘密個數(shù)的增大,本文方案秘密分發(fā)過程的計算量將遠低于文獻[7,24].
Table 4 Secret Distribution Performance表4 秘密分發(fā)性能
Fig.5 Secret distribution performance圖5 秘密分發(fā)性能
本文使用多授權機構CP-ABE 算法設計了一種支持訪問策略完全隱藏的物聯(lián)網(wǎng)數(shù)據(jù)共享方案.該方案不但解決了單屬性機構CP-ABE 方案導致的系統(tǒng)運行瓶頸的弊端,還使用MurmurHash3 算法對訪問策略進行完全隱藏,保護了訪問策略的隱私安全.不僅如此,本文引入多秘密共享算法代替?zhèn)鹘y(tǒng)的單秘密共享算法,做到一次共享過程可以共享多份數(shù)據(jù),且每份數(shù)據(jù)可以具有不同的門限訪問結構.本文方案不但提高了資源利用率,而且為物聯(lián)網(wǎng)數(shù)據(jù)共享方案提供了新思路.安全性分析驗證了本文方案的有效性,仿真實驗結果表明了本文方案的高效性.為進一步拓展策略隱藏的多授權機構CP-ABE 數(shù)據(jù)共享方案的功能,未來將考慮實現(xiàn)可搜索加密.
作者貢獻聲明:張學旺指導選題,設計研究方案、論文結構,修改完善論文;姚亞寧負責搜集、整理實驗數(shù)據(jù),調(diào)研、整理文獻,設計研究方案,實施研究過程,以及撰寫論文;付佳麗協(xié)助收集、整理實驗數(shù)據(jù),參與研究過程;謝昊飛指導選題,修改論文.