景 旭 ,譚 菡 ,蔣 炎 ,阮俊虎
(1. 西北農(nóng)林科技大學(xué)信息工程學(xué)院,楊凌 712100;2. 西北農(nóng)林科技大學(xué)經(jīng)濟(jì)管理學(xué)院,楊凌 712100)
中國農(nóng)業(yè)生產(chǎn)呈現(xiàn)出“大國小農(nóng)”、農(nóng)田碎片化和勞動力缺失等特征,農(nóng)機社會化服務(wù)[1-2]能夠解決農(nóng)戶難以承擔(dān)農(nóng)機高昂的購買和維護(hù)費用的難題,促進(jìn)小農(nóng)戶和現(xiàn)代農(nóng)業(yè)的有效銜接,有利于實現(xiàn)農(nóng)業(yè)增效、農(nóng)民增收?;诨ヂ?lián)網(wǎng)的農(nóng)機社會化服務(wù)平臺[3-4](以下簡稱農(nóng)服平臺),如中國農(nóng)業(yè)社會化服務(wù)平臺、嘀地農(nóng)機、全國農(nóng)機化信息服務(wù)平臺等,匯集了農(nóng)田作業(yè)服務(wù)需求和服務(wù)資源,打破農(nóng)戶與農(nóng)機手之間的信息壁壘,提供農(nóng)事生產(chǎn)服務(wù)對接途徑。鑒于農(nóng)業(yè)生產(chǎn)的地域性和季節(jié)性等特征,部分地區(qū)的農(nóng)機資源會出現(xiàn)冗余或稀缺現(xiàn)象,僅靠本區(qū)域內(nèi)農(nóng)機調(diào)度難以平衡供需關(guān)系[5]。多個農(nóng)服平臺聯(lián)合共享任務(wù)和農(nóng)機手資源,實現(xiàn)農(nóng)機資源的協(xié)調(diào)調(diào)度[6-7],能夠提高農(nóng)機作業(yè)效率,提升農(nóng)業(yè)全產(chǎn)業(yè)鏈服務(wù)能力,增加集約化服務(wù)規(guī)模效益。但在多平臺聯(lián)合場景中,如果用戶的地理位置[8]、任務(wù)偏好[9]、農(nóng)田作業(yè)需求等敏感信息以明文形式共享,可能會導(dǎo)致隱私泄露問題,影響農(nóng)服平臺之間合作的積極性。因此,研究農(nóng)機社會化服務(wù)聯(lián)合平臺的隱私匹配具有重要意義。
關(guān)于多方聯(lián)合場景中的隱私匹配,國內(nèi)外學(xué)者開展了廣泛的研究。QI 等[10]通過改進(jìn)局部敏感哈希技術(shù),在保證用戶敏感數(shù)據(jù)隱私的前提下,整合多平臺數(shù)據(jù),實現(xiàn)了分布式的推薦服務(wù);SOBITHA 等[11]將同態(tài)加密技術(shù)應(yīng)用于數(shù)據(jù)挖掘中,提出了一種個性化推薦方案,但上述兩種方案都僅關(guān)注用戶敏感數(shù)據(jù)的保護(hù)。SHU 等[12-13]使用可搜索加密技術(shù)實現(xiàn)任務(wù)和工人之間的匹配,保護(hù)了被推薦內(nèi)容和用戶雙方敏感數(shù)據(jù)的隱私,但依靠集中式服務(wù)器提供數(shù)據(jù)共享和計算,存在單點故障[14]、易遭受內(nèi)外部惡意攻擊和服務(wù)器不可信等問題[15]。牛淑芬等[16-17]將可搜索加密與代理重加密技術(shù)應(yīng)用于多家醫(yī)院聯(lián)合場景中,在區(qū)塊鏈上實現(xiàn)了電子病歷關(guān)鍵字的可靠搜索。GUO 等[18]設(shè)計了一個基于智能合約的匹配協(xié)議,使用區(qū)塊鏈技術(shù)在去中心化的聯(lián)合眾包系統(tǒng)中實現(xiàn)了安全任務(wù)推薦方案。綜上可以看出,現(xiàn)有研究多集中在共享敏感數(shù)據(jù)前通過加密保證隱私,然而,以密文形式共享數(shù)據(jù)會削弱數(shù)據(jù)的可用性[19],且難以同時保證數(shù)據(jù)和用戶雙方的隱私;通過集中式服務(wù)器共享數(shù)據(jù)、提供匹配服務(wù),很難被聯(lián)盟的各方信任。
區(qū)塊鏈[20]作為一個多方共識、不可篡改的分布式賬本,由區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點共同維護(hù)數(shù)據(jù),能夠在多方聯(lián)合場景中實現(xiàn)去中心化可信架構(gòu);鏈上智能合約的執(zhí)行過程對所有節(jié)點透明,在給定的輸入下,輸出結(jié)果穩(wěn)定;但通過區(qū)塊鏈共享密文數(shù)據(jù)難以實現(xiàn)鏈上數(shù)據(jù)的可用性與數(shù)據(jù)訪問權(quán)限的設(shè)置。密文策略的屬性基可搜索加密技術(shù)(ciphertext-policy attribute-based searchable encryption,CP-ABSE)[21]能夠保證數(shù)據(jù)加密條件下的可檢索性,實現(xiàn)一對多的細(xì)粒度數(shù)據(jù)共享。
基于聯(lián)盟鏈和CP-ABSE,本文提出一種農(nóng)機社會化服務(wù)聯(lián)合平臺隱私匹配方案。多個農(nóng)服平臺基于聯(lián)盟鏈組成去中心化的信息共享平臺,各平臺將農(nóng)田作業(yè)任務(wù)密文和資源調(diào)用等信息發(fā)布至聯(lián)盟鏈中,保證數(shù)據(jù)的真實性和完整性;通過CP-ABSE 加密任務(wù)數(shù)據(jù),保護(hù)農(nóng)戶和農(nóng)機手雙方敏感數(shù)據(jù)的隱私,在各農(nóng)服平臺對合作平臺共享的任務(wù)數(shù)據(jù)和農(nóng)機手的搜索關(guān)鍵字一無所知的情況下,實現(xiàn)任務(wù)密文數(shù)據(jù)檢索和細(xì)粒度的訪問控制;隱私匹配服務(wù)轉(zhuǎn)移到智能合約,竊聽者無法猜出關(guān)鍵字,可保證搜索返回結(jié)果可信。本研究破解了農(nóng)服平臺間的“數(shù)據(jù)孤島”問題,能夠推動農(nóng)服平臺之間的合作,對于推動農(nóng)機社會化服務(wù)的推廣具有重要的意義。
CP-ABSE 是由密文策略的屬性基加密[22]與可搜索加密技術(shù)[23-24]相結(jié)合的密碼學(xué)技術(shù),能夠同時實現(xiàn)一對多的細(xì)粒度訪問控制和密文數(shù)據(jù)檢索功能,平衡了數(shù)據(jù)的隱私性和可用性。CP-ABSE 方案[25-26]中數(shù)據(jù)所有者可以通過定義密文的訪問策略賦予訪問者搜索權(quán)限,廣泛應(yīng)用于多數(shù)據(jù)所有者和訪問者模型。
區(qū)塊鏈中集成了分布式數(shù)據(jù)庫、共識機制[27]、P2P網(wǎng)絡(luò)、智能合約[28]和密碼學(xué)等技術(shù),廣泛應(yīng)用于提供可信服務(wù)場景。按照開放程度,區(qū)塊鏈可分為公有鏈、聯(lián)盟鏈和私有鏈。聯(lián)盟鏈[29]網(wǎng)絡(luò)由成員共同維護(hù),適用于多組織間的數(shù)據(jù)共享。智能合約本質(zhì)上是一段運行在區(qū)塊鏈上的計算機程序,可以處理較為復(fù)雜的業(yè)務(wù)邏輯。
農(nóng)機社會化服務(wù)聯(lián)合平臺使用聯(lián)盟鏈作為連接各農(nóng)服平臺的樞紐,將相互獨立的多個系統(tǒng)組成一個去中心化的聯(lián)盟。各方能夠?qū)⑥r(nóng)田作業(yè)任務(wù)共享給合作平臺,實現(xiàn)跨平臺的農(nóng)機手資源調(diào)用。聯(lián)合平臺主要包括證書授權(quán)(certificate authority,CA)中心、農(nóng)戶、農(nóng)機手、農(nóng)服平臺和聯(lián)盟鏈5 個實體,如圖1 所示。
圖1 基于聯(lián)盟鏈的農(nóng)機社會化服務(wù)聯(lián)合平臺架構(gòu)Fig.1 Agricultural machinery socialization service federated platform architecture based on blockchain
1)CA 中心:全局證書機構(gòu),負(fù)責(zé)生成系統(tǒng)主密鑰、系統(tǒng)公鑰和農(nóng)機手私鑰。
2)農(nóng)戶:有農(nóng)田作業(yè)需求的用戶,通過農(nóng)服平臺在聯(lián)盟鏈上發(fā)布農(nóng)田作業(yè)任務(wù)。
3)農(nóng)機手:具有閑置農(nóng)機資源,提供農(nóng)機服務(wù)的農(nóng)機專業(yè)戶。農(nóng)機手使用私鑰生成搜索令牌,通過農(nóng)服平臺調(diào)用智能合約匹配鏈上任務(wù)。
4)農(nóng)服平臺:農(nóng)戶和農(nóng)機手對接的平臺,是獨立的企業(yè)或組織,在本地數(shù)據(jù)庫中維護(hù)用戶和任務(wù)的明文數(shù)據(jù)。主要負(fù)責(zé)3 種業(yè)務(wù),一是當(dāng)平臺內(nèi)的農(nóng)服資源無法滿足農(nóng)田作業(yè)任務(wù)時,加密任務(wù)數(shù)據(jù),調(diào)用上鏈智能合約發(fā)布至聯(lián)盟鏈中;二是接收本平臺內(nèi)農(nóng)機手提交的搜索令牌,作為參數(shù)調(diào)用匹配智能合約;三是負(fù)責(zé)跨平臺農(nóng)田作業(yè)合同的簽訂。
5)聯(lián)盟鏈:由農(nóng)服平臺構(gòu)成聯(lián)盟鏈網(wǎng)絡(luò),鏈上智能合約提供任務(wù)匹配服務(wù),聯(lián)盟鏈賬本記錄任務(wù)信息和平臺之間的資源調(diào)用數(shù)據(jù)。
在多方聯(lián)合場景中,集中式服務(wù)器難以被各參與方同時信任,因此本方案基于聯(lián)盟鏈構(gòu)建去中心化的聯(lián)合平臺。由智能合約執(zhí)行任務(wù)匹配,可信CA 中心負(fù)責(zé)密鑰服務(wù)。
針對多平臺聯(lián)合場景中敏感共享數(shù)據(jù)的隱私性和可用性需求,本文基于CP-ABSE 技術(shù)構(gòu)建匹配方案。將農(nóng)田作業(yè)任務(wù)類型和農(nóng)機手的任務(wù)偏好之間的匹配轉(zhuǎn)化為加密關(guān)鍵字和密文索引之間的匹配問題;通過數(shù)據(jù)所有者和訪問者之間細(xì)粒度訪問控制,實現(xiàn)密文條件下農(nóng)田作業(yè)需求與服務(wù)資源之間的匹配。
在農(nóng)業(yè)生產(chǎn)中,農(nóng)田作業(yè)任務(wù)具有地域性和大量突發(fā)性的特征,而農(nóng)機手作為農(nóng)機專業(yè)合作社或農(nóng)機租賃企業(yè),能夠為同區(qū)域內(nèi)多個農(nóng)田作業(yè)任務(wù)提供所需的服務(wù)資源。本文方案將多個農(nóng)田作業(yè)任務(wù)編號以任務(wù)集合的形式與任務(wù)密文共同存儲在聯(lián)盟鏈賬本中,成功匹配一條任務(wù)密文后返回多個任務(wù)編號,減少搜索令牌與任務(wù)密文的匹配次數(shù),提高匹配智能合約的效率。
綜上,農(nóng)機社會化服務(wù)聯(lián)合平臺隱私匹配方案主要由系統(tǒng)建立、農(nóng)機手注冊、任務(wù)發(fā)布、任務(wù)匹配和跨平臺農(nóng)田作業(yè)等五個階段構(gòu)成,如圖2 所示。
圖2 匹配方案流程Fig.2 Task matching process
農(nóng)機社會化服務(wù)聯(lián)合平臺隱私匹配方案詳細(xì)流程如下。
2.3.1 系統(tǒng)建立
本階段分為全局屬性設(shè)置和系統(tǒng)初始化2 個步驟。
1)設(shè)置全局屬性集U
聯(lián)合平臺各方共同設(shè)置一個全局屬性集U={attr1,attr2,···,attrn},用來規(guī)范多平臺聯(lián)合時農(nóng)機手屬性和任務(wù)訪問權(quán)限的設(shè)置,n為全局屬性集合大小,attri為U中的一個屬性,每個attri都有兩個值vi和?vi,vi和?vi為系統(tǒng)建立階段生成的隨機數(shù), 1≤i≤n。屬性或訪問策略中包含屬性attri時,attri=vi;否則attri=?vi。
2)系統(tǒng)初始化
CA中心選取一個安全參數(shù) λ,輸出系統(tǒng)公鑰Kpub和系統(tǒng)主密鑰Kpri。
CA中心首先生成兩個階數(shù)為p的乘法循環(huán)群G和GT,g為G的生成元,e:G×G→GT是一個雙線性映射,Zp是p階循環(huán)群。其次,定義單向哈希函數(shù)H:{0,1}*→Zp,選取隨機數(shù)a,b,c∈Zp和隨機數(shù)集合{r1,r2,···,r2n}∈Zp、{x1,x2,···,x2n}∈G。最后,計算ui=,yi=e(xi,g),Kpub=和Kpri=(a,b,c,ri,xi),其中1≤i≤2n。系統(tǒng)主密鑰Kpri由CA 中心保管,系統(tǒng)公鑰Kpub公開。
2.3.2 農(nóng)機手注冊
本階段分為屬性和訪問策略設(shè)置、農(nóng)機手私鑰申請2 個步驟。
1)農(nóng)機手屬性和任務(wù)訪問策略設(shè)置
設(shè)Sur為農(nóng)機手ur的屬性集,為農(nóng)田作業(yè)任務(wù)的訪問策略。由于農(nóng)機手屬性和任務(wù)訪問策略采用與門訪問結(jié)構(gòu),和均可表示為n比特位的字符串,即分別表示ur和tk中的一個屬性,與attri相同,和值為vi或?vi。
若?i∈[1,n] ,∈Ptk,即=,則農(nóng)機手屬性Sur滿足任務(wù)訪問策略Ptk。
2)農(nóng)機手私鑰申請
農(nóng)服平臺IDm中的農(nóng)機手ur根據(jù)屬性集Sur向 CA中心申請私鑰。C A中心根據(jù)Sur、系統(tǒng)公鑰Kpub和系統(tǒng)主密鑰Kpri生成農(nóng)機手的私鑰。
2.3.3 任務(wù)發(fā)布
農(nóng)服平臺負(fù)責(zé)生成任務(wù)密文,調(diào)用上鏈智能合約將加密任務(wù)發(fā)布至聯(lián)盟鏈中。
農(nóng)服平臺使用系統(tǒng)公鑰Kpub加密農(nóng)田作業(yè)任務(wù),設(shè)任務(wù)編號為tk,任務(wù)訪問策略為Ptk,任務(wù)類型為關(guān)鍵字w。農(nóng)服平臺選取隨機數(shù)t1,t2∈Zp,計算C1tk=gct1,C2tk=ga(t1+t2)gbH(w)t1和對于Ptk中的每個屬性,當(dāng)=vi時,=ui=g-ri;當(dāng)=?vi時,=ui+n=g-ri+n。加密后的任務(wù)密文為
農(nóng)服平臺調(diào)用上鏈智能合約將任務(wù)密文與對應(yīng)任務(wù)集合T發(fā)布至聯(lián)盟鏈中,T中包含一個或多個農(nóng)田作業(yè)任務(wù)編號,即T=
2.3.4 任務(wù)匹配
本階段分為搜索令牌生成、智能合約執(zhí)行任務(wù)匹配2 個步驟。
1)搜索令牌生成
農(nóng)機手ur使用系統(tǒng)公鑰Kpub和私鑰將任務(wù)偏好w′生成搜索令牌。農(nóng)機手選取隨機數(shù)s∈Zp,計算通過私鑰計算最終搜索令牌
2)智能合約執(zhí)行任務(wù)匹配
token
農(nóng)服平臺收到農(nóng)機手提交的搜索令牌后,調(diào)用匹配智能合約,判斷搜索令牌與任務(wù)密文是否匹配。
2.3.5 跨平臺農(nóng)田作業(yè)
由于跨平臺的農(nóng)機手資源調(diào)用涉及平臺間資源整合和收益分配,因此,首先由任務(wù)發(fā)布平臺和接收平臺達(dá)成一致后簽訂跨平臺農(nóng)田作業(yè)合同。然后,任務(wù)發(fā)布平臺向聯(lián)盟鏈提交合同單,任務(wù)接收平臺驗證通過后上鏈。農(nóng)機手完成農(nóng)田作業(yè)任務(wù)后,通過所在平臺將任務(wù)完成證明交付給任務(wù)發(fā)布平臺。任務(wù)發(fā)布平臺審核后,將鏈上合同單中的任務(wù)狀態(tài)變更為已完成。
在匹配方案實際應(yīng)用中,農(nóng)機類型和農(nóng)機手的屬性不是固定的,聯(lián)合平臺可周期性的更新。更新流程如下:1)CA 中心更新系統(tǒng)公鑰和系統(tǒng)主密鑰;2)農(nóng)機手將更新后的屬性集合提交給CA 中心以更新私鑰;3)各農(nóng)服平臺更新鏈上任務(wù)密文。
聯(lián)盟鏈賬本中鏈上數(shù)據(jù)以Key-Value 的方式存儲。Value 值由任務(wù)密文C=
鏈上存儲的跨平臺農(nóng)田作業(yè)合同單中,任務(wù)內(nèi)容的哈希值Fhash和任務(wù)狀態(tài)Fstate作為Value 值,即Value=
農(nóng)機社會化服務(wù)聯(lián)合平臺隱私匹配方案中,設(shè)置任務(wù)上鏈、匹配等智能合約。智能合約與聯(lián)盟鏈賬本的交互通過應(yīng)用程序接口(application programming interface,API)的調(diào)用實現(xiàn),查詢操作調(diào)用GetState API,上鏈和更新操作調(diào)用PutState API。
2.5.1 任務(wù)上鏈智能合約
農(nóng)田作業(yè)任務(wù)具有時效性,若平臺內(nèi)農(nóng)服資源短缺,將任務(wù)加密后調(diào)用上鏈智能合約發(fā)布至聯(lián)盟鏈,并更新與鏈上加密任務(wù)對應(yīng)的本地數(shù)據(jù)庫。任務(wù)上鏈流程如圖3 所示。
圖3 任務(wù)上鏈流程Fig.3 Task data upload process
在圖3 中,農(nóng)服平臺在將任務(wù)發(fā)布至聯(lián)盟鏈前,首先檢索本地數(shù)據(jù)庫,判斷鏈上是否存在同類型任務(wù)密文,即是否存在與待發(fā)布任務(wù)具有相同關(guān)鍵字和訪問策略的鏈上加密任務(wù),若存在,則更新鏈上任務(wù)集合 ;若不存在,則將任務(wù)加密后發(fā)布至聯(lián)盟鏈中。最后,更新本地數(shù)據(jù)庫。
T
2.5.2 匹配智能合約
農(nóng)服平臺以農(nóng)機手搜索令牌為參數(shù)調(diào)用匹配智能合約。匹配智能合約負(fù)責(zé)搜索令牌與任務(wù)密文間的匹配,運行流程如圖4 所示。
圖4 匹配智能合約運行流程Fig.4 The process of match smart contract
在圖4 中,智能合約從聯(lián)盟鏈賬本中獲取任務(wù)密文后,首先將任務(wù)密文從String 類型轉(zhuǎn)換為密文數(shù)據(jù)結(jié)構(gòu),然后計算搜索令牌與任務(wù)密文是否正確匹配;若匹配,智能合約將任務(wù)集合T和任務(wù)Key 值返回給平臺,否則返回null。
農(nóng)機社會化服務(wù)聯(lián)合平臺隱私匹配方案中,農(nóng)機手任務(wù)偏好與任務(wù)類型相匹配,且屬性滿足任務(wù)訪問策略時,搜索令牌token與密文C在匹配階段的計算如下:
在許多基于區(qū)塊鏈的研究[30-31]中,CA 中心均被假設(shè)為可信的,用來保證密鑰的安全生成與分發(fā),因此,本文假設(shè)CA 中心是誠實的,會按照協(xié)議分發(fā)密鑰和系統(tǒng)參數(shù),通過安全信道傳輸數(shù)據(jù)。
參與構(gòu)成聯(lián)盟鏈的各農(nóng)服平臺通常為較大的企業(yè)或組織,理解信譽的重要性,因此假設(shè)農(nóng)服平臺是半誠實的,會按照協(xié)議的執(zhí)行,但可能會試圖從鏈上共享密文中推斷額外信息。
農(nóng)機手不會主動泄露自己的私鑰。
1)數(shù)據(jù)的完整性
農(nóng)田作業(yè)任務(wù)密文、跨平臺農(nóng)田作業(yè)合同單等存儲在聯(lián)盟鏈賬本中,聯(lián)盟鏈分布式數(shù)據(jù)存儲、多方維護(hù)、共識確認(rèn)等特性保證了鏈上賬本中數(shù)據(jù)不可被篡改,從而保證了數(shù)據(jù)的完整性。
2)數(shù)據(jù)的機密性
文獻(xiàn)[21] 中選擇關(guān)鍵字攻擊游戲證明,如果敵手能夠在多項式時間內(nèi)以不可忽略的優(yōu)勢ε贏得游戲,則挑戰(zhàn)者可以在一個多項式時間內(nèi)以不可忽略的優(yōu)勢解決離散對數(shù)(discretelogarithm,DL)問題,因此本文使用CP-ABSE算法[21]保證了鏈上密文在選擇關(guān)鍵字攻擊下具有不可區(qū)分性。在3.2 節(jié)的安全假設(shè)下,各平臺無法從鏈上共享的密文中獲知更多的額外信息,保證了數(shù)據(jù)的機密性。
3)匹配結(jié)果的可信性
本文方案中,搜索令牌由農(nóng)機手生成,能夠與任意平臺發(fā)布的任務(wù)密文匹配;任務(wù)匹配通過智能合約以公開透明的方式進(jìn)行;匹配結(jié)果不會存儲在聯(lián)盟鏈帳本中,避免了被動攻擊,因此,匹配結(jié)果具有可信性。
1)本文在CPU 型號為i7-7700HQ 且搭載Windows10的設(shè)備中進(jìn)行測試,使用VMware Workstation 構(gòu)建2 核2 處理器的虛擬機,虛擬機運行內(nèi)存為6 GB,硬盤大小為80 GB。
2)聯(lián)盟鏈網(wǎng)絡(luò)使用Hyperledger Fabric 2.2 搭建,部署3 個orderer 節(jié)點為排序節(jié)點;部署peer0.org1.federate.cn、peer1.org1.federate.cn、peer0.org2.federate.cn、peer1.org2.federate.cn 等4 個peer 節(jié)點充當(dāng)記賬節(jié)點,分別屬于兩個組織org1 和org2,每個組織中的peer0 節(jié)點作為錨節(jié)點,負(fù)責(zé)與其他組織共享信息;共識算法選用raft;狀態(tài)數(shù)據(jù)庫采用levelDB;單個區(qū)塊的最大交易數(shù)為10 筆,最大打包時間間隔為2 s,最大字節(jié)數(shù)為10 MB。
3)CP-ABSE 算法基于密碼庫jpbc v2.0.0 (http://gas.dia.unisa.it/projects/jpbc)實現(xiàn),使用Type A 型素數(shù)階橢圓曲線y2=x3+x。系統(tǒng)公鑰、系統(tǒng)主密鑰、密文、私鑰和搜索令牌的數(shù)據(jù)結(jié)構(gòu)主要通過Zr、G1、G2和GT群構(gòu)造,算法執(zhí)行過程調(diào)用密碼庫中powZn 和mul 等API。
4)通過區(qū)塊鏈基準(zhǔn)測試工具Hyperledger Caplier 測試性能。
1)功能測試
本文基于CP-ABSE 構(gòu)造的農(nóng)機社會化服務(wù)聯(lián)合平臺隱私匹配方案功能測試如圖5 所示。
圖5 功能測試Fig.5 Function test
由CA 中心負(fù)責(zé)生成的系統(tǒng)主密鑰和系統(tǒng)公鑰如圖5a 所示。假設(shè)農(nóng)機手屬性集S={“甘肅省”, “插秧機”},農(nóng)機手向CA 中心申請屬性私鑰如圖5b 所示。
以平臺A 在聯(lián)盟鏈中發(fā)布加密任務(wù)為例,設(shè)農(nóng)田作業(yè)任務(wù)類型w={“小麥除草”},訪問策略P={“陜西省”,“大型割草機”},任務(wù)編號tk為277,平臺A 在聯(lián)盟鏈中已發(fā)布的任務(wù)數(shù)量為37 且未上鏈同類型農(nóng)田作業(yè)任務(wù)。平臺A 調(diào)用函數(shù)compareToList 檢索本地數(shù)據(jù)庫DB_Task,由于聯(lián)盟鏈中賬本數(shù)據(jù)以Key-Value 的形式存儲,此時任務(wù)Key 值為“A38”,Value 值包括農(nóng)田作業(yè)任務(wù)密文C和任務(wù)集合T,Value={C,“277”},如圖5c 所示。
以平臺B 中農(nóng)機手匹配鏈上任務(wù)為例,假設(shè)該農(nóng)機手任務(wù)偏好w′={“小麥除草”}。農(nóng)機手使用私鑰生成搜索令牌token,并發(fā)送給所在平臺B,如圖5d 所示。平臺B 將搜索令牌token作為參數(shù),調(diào)用智能合約searchcc匹配鏈上密文,返回密文Key 值和任務(wù)集合T,如圖5e所示。
平臺B 中農(nóng)機手接取平臺A 發(fā)布的農(nóng)田作業(yè)任務(wù),通過Hyperledger explorer 顯示的跨平臺農(nóng)田作業(yè)合同單如圖5f 所示。
2)功能對比
本文方案與文獻(xiàn)[10,14-15,18] 的功能性對比如表1 所示。
表1 功能性對比Table 1 The comparison of performance
由表1 可以看出,方案1[10]和方案2[14]無法實現(xiàn)密文數(shù)據(jù)搜索功能,方案2[14]、方案3[15]和方案4[18]均不能實現(xiàn)細(xì)粒度的訪問控制,且方案4[18]需要依靠代理進(jìn)行密文的安全轉(zhuǎn)換。表1 中文獻(xiàn)所提方案均滿足多方數(shù)據(jù)共享場景中對敏感數(shù)據(jù)的隱私保護(hù)需求,通過與以上方案對比,表明本文方案在功能性上具有一定的優(yōu)勢。
本節(jié)對算法各階段進(jìn)行數(shù)值模擬實驗,通過改變?nèi)謱傩缘臄?shù)量來分析算法的效率,全局屬性數(shù)量分別取值50、100、150、200,測試包括本地性能測試和鏈上性能測試兩個部分。
1)本地性能測試
本地性能測試的實驗結(jié)果取算法運行50 次的平均值,如圖6 所示。
圖6 本地性能測試Fig.6 Local performance test
由圖6a 可以看出,系統(tǒng)構(gòu)建算法和私鑰生成算法的運行時間與全局屬性數(shù)量線性相關(guān)。當(dāng)全局屬性數(shù)量為50 時,系統(tǒng)構(gòu)建算法和私鑰生成算法運行時間分別約1.2 和0.6 s,滿足業(yè)務(wù)簡單的聯(lián)合平臺的應(yīng)用需求;當(dāng)全局屬性數(shù)量為200 時,系統(tǒng)構(gòu)建算法和私鑰生成算法運行時間分別約8 和2.5 s,基本滿足業(yè)務(wù)相對復(fù)雜的聯(lián)合平臺的應(yīng)用需求。
由圖6b 可以看出,當(dāng)全局屬性數(shù)量發(fā)生變化時,搜索令牌生成算法的計算開銷基本穩(wěn)定在60 ms 左右,數(shù)據(jù)加密算法的計算時間分布在60~80 ms 區(qū)間內(nèi),兩種算法運行時間較低,滿足聯(lián)合平臺中任務(wù)發(fā)布和農(nóng)機手生成搜索令牌兩種運行次數(shù)較多的業(yè)務(wù)需求。
2)鏈上性能測試
鏈上性能測試中將交易總量設(shè)置為5 000,以平均時延作為性能評估指標(biāo),取5 次測試的平均值。實驗結(jié)果表明匹配智能合約的平均時延約為250 ms,不會隨著全局屬性個數(shù)的增加而改變。因為CP-ABSE 算法生成的密文長度恒定,匹配智能合約的計算過程與全局屬性數(shù)量無關(guān)。
本文基于聯(lián)盟鏈構(gòu)造了農(nóng)機社會化服務(wù)聯(lián)合平臺,使用CP-ABSE 技術(shù)設(shè)計并實現(xiàn)了聯(lián)合平臺中保護(hù)隱私的匹配方案。本方案使用智能合約提供任務(wù)匹配服務(wù),保證匹配結(jié)果的可信性;基于CP-ABSE 實現(xiàn)任務(wù)發(fā)布方和農(nóng)機手雙方敏感數(shù)據(jù)加密條件下的可搜索性,農(nóng)戶可以自主設(shè)置訪問策略,達(dá)到細(xì)粒度的訪問控制。
安全性分析表明,本方案可以保證區(qū)塊鏈賬本中敏感共享數(shù)據(jù)在選擇關(guān)鍵字攻擊下的不可區(qū)分性,保證了數(shù)據(jù)完整性和機密性?;贖yperledger Fabric 構(gòu)建了農(nóng)機社會化服務(wù)聯(lián)合平臺原型系統(tǒng),功能測試結(jié)果表明,該方案能夠?qū)崿F(xiàn)數(shù)據(jù)加密情況下,區(qū)塊鏈中安全、準(zhǔn)確和細(xì)粒度的跨平臺匹配;性能測試結(jié)果表明,算法的運行效率基本滿足聯(lián)合平臺的應(yīng)用需求。
本文基于CP-ABSE 技術(shù)提出的隱私匹配方案在農(nóng)機社會化服務(wù)聯(lián)合平臺中具有可行性和有效性,滿足數(shù)據(jù)隱私性、完整性和可信性的需求以及平臺的性能要求,但在改進(jìn)和優(yōu)化方面仍然存在一些可行的技術(shù)點,如多關(guān)鍵字搜索、可追責(zé)性等。多關(guān)鍵字搜索可提高搜索的準(zhǔn)確性和效率,提升用戶的搜索體驗,具有更高的實用性;可追責(zé)CP-ABSE 能夠增強聯(lián)合平臺對私鑰泄露問題的監(jiān)測和追蹤能力。