• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于TrustZone的區(qū)塊鏈智能合約隱私授權(quán)方法

      2023-07-03 14:12:34陳璐瑀馬小峰龔生智
      計算機應(yīng)用 2023年6期
      關(guān)鍵詞:加密分組區(qū)塊

      陳璐瑀,馬小峰*,何 敬,龔生智,高 建

      (1.同濟大學(xué) 電子與信息工程學(xué)院,上海 201804;2.梧桐鏈數(shù)字科技研究院(蘇州)有限公司,江蘇 蘇州 215100;3.云南省科學(xué)技術(shù)院 科技管理辦公室,昆明 650100)

      0 引言

      當前,數(shù)據(jù)已經(jīng)成為了現(xiàn)代企業(yè)和個人的重要資產(chǎn)之一,數(shù)據(jù)共享與融合能夠創(chuàng)造巨大的經(jīng)濟和社會價值。從陸續(xù)頒布的文件和通過的與法律可見,數(shù)據(jù)的價值已經(jīng)受到了廣泛的認可,對于數(shù)據(jù)安全的保護也引起了極大的重視。

      在計算機技術(shù)迅速普及與發(fā)展的情況下,一個大規(guī)模生產(chǎn)、分享和應(yīng)用數(shù)據(jù)的時代正在開始,給國家治理、產(chǎn)業(yè)發(fā)展、個人生活帶來了新的變化與機遇[1]。在數(shù)據(jù)開放、數(shù)據(jù)共享帶來巨大紅利的同時,數(shù)據(jù)安全和隱私成為了關(guān)鍵問題。用戶在互聯(lián)網(wǎng)上的各類行為(如購物喜好、社交范圍、檢索習(xí)慣等)都掌握在對應(yīng)的互聯(lián)網(wǎng)商家手中,極易暴露個人隱私[2]。當數(shù)據(jù)被定義為生產(chǎn)要素后,未經(jīng)本人授權(quán)而利用個人隱私數(shù)據(jù)進行大數(shù)據(jù)分析的行為,也嚴重損害了數(shù)據(jù)所有人的經(jīng)濟利益;但是互聯(lián)網(wǎng)應(yīng)用的監(jiān)管尚未形成一個完整的體系,難以有效管控此類行為。

      區(qū)塊鏈技術(shù)具有分布式存儲、保證鏈上數(shù)據(jù)可信不被篡改的特點,在數(shù)據(jù)共享的場景中有著極高的適用性,同時真實可信的交易記錄也能夠為監(jiān)管提供便利;但是區(qū)塊鏈技術(shù)本身公開透明的特點使人們對于它在隱私保護方面的表現(xiàn)有所擔(dān)憂。

      現(xiàn)階段解決數(shù)據(jù)安全問題的隱私計算方法主要有三個研究方向:一是基于密碼學(xué)技術(shù)的多方安全計算;二是新興的聯(lián)邦學(xué)習(xí)技術(shù);三是基于可信硬件的可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)。其中TEE 成熟度較高,已具備工程落地的可能性;可信硬件也是近年來大力推動的信創(chuàng)產(chǎn)業(yè)重要的組成部分,飛騰、華為等國產(chǎn)芯片廠商也相繼推出了自主研發(fā)的TEE 技術(shù),對ARM TrustZone 架構(gòu)有著良好的適配性。本文針對數(shù)據(jù)共享與隱私保護的矛盾,結(jié)合區(qū)塊鏈與TrustZone 的TEE 技術(shù),設(shè)計了一個通用的隱私數(shù)據(jù)保護方法,在滿足數(shù)據(jù)共享需求的同時保護用戶隱私。本文的主要工作如下:

      1)提出了一種基于TrustZone 的區(qū)塊鏈智能合約隱私保護方法,將隱私計算部分移至TrustZone 的安全環(huán)境內(nèi)執(zhí)行,解決區(qū)塊鏈公開透明的特性與隱私保護之間的矛盾。

      2)提出了基于字典樹(Trie Tree)的小內(nèi)存條件下的隱私求交算法,通過分組計算的方式,解決TrustZone 內(nèi)存空間有所限制,難以滿足全量數(shù)據(jù)同時進行隱私求交的問題。

      1 背景與相關(guān)研究

      近年來,數(shù)字化轉(zhuǎn)型和數(shù)據(jù)共享是各行各業(yè)共同的發(fā)展趨勢,打破數(shù)據(jù)孤島、有效共享互用數(shù)據(jù),海量數(shù)據(jù)才能發(fā)揮最大的效用。通過協(xié)同分析多方數(shù)據(jù),能夠創(chuàng)造更大的價值。

      在數(shù)據(jù)共享背景下,數(shù)據(jù)已然成為一種具有一定價值的生產(chǎn)要素,也與數(shù)據(jù)所有者的隱私信息息息相關(guān)。本文所提出的利用區(qū)塊鏈與TEE 相結(jié)合的系統(tǒng)架構(gòu),希望能夠用技術(shù)手段保護用戶數(shù)據(jù)免受未經(jīng)授權(quán)的數(shù)據(jù)分析。

      在數(shù)據(jù)共享方面,區(qū)塊鏈利用加密鏈式區(qū)塊結(jié)構(gòu)驗證與存儲數(shù)據(jù),利用分布式節(jié)點共識算法生成和更新數(shù)據(jù),利用智能合約編程和操作數(shù)據(jù),是一種去中心化基礎(chǔ)架構(gòu)與分布式計算范式[3],是一種不依賴第三方、通過自身分布式節(jié)點存儲、驗證、傳遞、交流數(shù)據(jù)的技術(shù)方案。

      智能合約使區(qū)塊鏈不再局限于虛擬貨幣場景,在區(qū)塊鏈技術(shù)逐步普及到各行各業(yè)應(yīng)用的過程中起到了關(guān)鍵作用。智能合約最早由Szabo[4]于1997 年提出,被定義為一段由事件驅(qū)動的、具有狀態(tài)的、運行在一個復(fù)制的且分享的賬本之上的、能夠保管賬本上資產(chǎn)的程序[5]。區(qū)塊鏈的應(yīng)用場景往往與數(shù)據(jù)、資金等重要資產(chǎn)的交易相關(guān),而智能合約執(zhí)行的全過程在區(qū)塊鏈上完成,使用與產(chǎn)生的數(shù)據(jù)均存儲于鏈上,能夠被公開獲取,因此需要特別關(guān)注智能合約的安全性和隱私保護性,并設(shè)計隱私數(shù)據(jù)的保護方法。

      在區(qū)塊鏈應(yīng)用中,在兼顧數(shù)據(jù)可用性的基礎(chǔ)上,提高隱私保護性能的方法主要分為兩類。一是利用密碼學(xué)技術(shù)應(yīng)用加密后的數(shù)據(jù),例如同態(tài)加密技術(shù)能夠在不訪問數(shù)據(jù)明文信息的情況下完成對數(shù)據(jù)的使用,即使用密文進行計算獲得的結(jié)果與使用明文計算后再加密所獲得的結(jié)果相同[6];零知識證明技術(shù)能夠在不透露具體隱私信息的前提下向其他方證明某一事件的真實性,能夠有效地解決區(qū)塊鏈應(yīng)用中過度分享與公開信息的問題[7];屬性基加密技術(shù)針對隱私信息的訪問控制問題,要求密文屬性與私鑰屬性存在關(guān)聯(lián)匹配性,才可以成功利用該私鑰獲取明文,從而將數(shù)據(jù)隱私的保護問題轉(zhuǎn)歸為屬性與密鑰的管理分發(fā)問題[8]。第二是將一些計算需求轉(zhuǎn)至鏈外的安全環(huán)境,其中的典型代表是TEE。與純粹的密碼學(xué)方法不同,鏈外執(zhí)行計算的方案能夠緩解鏈上計算效率不足的性能問題,但是將區(qū)塊鏈的所有模塊加載到TEE 中目前難以實現(xiàn)[9],因此考慮將其中的一部分,如本文所提出的將智能合約執(zhí)行過程中的隱私計算環(huán)節(jié)轉(zhuǎn)移到TEE 中,是在當前的技術(shù)成熟度下較為合理的選擇,從而將鏈上數(shù)據(jù)的隱私保護問題轉(zhuǎn)變?yōu)槭褂玫目尚怒h(huán)境的安全性問題。

      TEE 是一種基于硬件和操作系統(tǒng)的安全架構(gòu),通過時分復(fù)用的CPU 或者直接劃分出部分內(nèi)存空間作為安全環(huán)境,以構(gòu)建出與外部隔離的安全計算環(huán)境,用于部署關(guān)鍵的計算邏輯,處理隱私數(shù)據(jù)。

      TEE 的安全特性包括代碼執(zhí)行環(huán)境的隔離和保證執(zhí)行文件、控制流的完整性,即便設(shè)備在受到物理控制攻擊時,也能夠保證隔離環(huán)境內(nèi)數(shù)據(jù)和代碼的完整性[10]。ARM TrustZone 是一種具有代表性的較為成熟的TEE 技術(shù),且考慮到國產(chǎn)信創(chuàng)芯片廠商對于TrustZone 系統(tǒng)架構(gòu)的支持,本文選用TrustZone 架構(gòu)提供TEE 的技術(shù)支持。

      TrustZone 在處理器層面劃分了安全環(huán)境(Secure World)和非安全環(huán)境(Non-Secure World)兩個部分,各自擁有獨立的計算機架構(gòu),包含獨立的操作系統(tǒng)、內(nèi)存空間和寄存器等,在任意時刻處理器僅會在其中一個環(huán)境內(nèi)運行。安全環(huán)境內(nèi)進行與敏感數(shù)據(jù)相關(guān)的讀寫操作,非安全環(huán)境內(nèi)運行正常的操作系統(tǒng)。兩個環(huán)境的應(yīng)用程序與操作系統(tǒng)擁有不同等級的權(quán)限,通過虛擬地址空間與物理地址空間映射關(guān)系的設(shè)計,安全環(huán)境可以正常訪問非安全環(huán)境的資源,反之則會受到嚴格的限制,該功能通過額外的尋址線實現(xiàn),即安全位,由TrustZone 地址空間控制器(TrustZone Address Space Controller,TZASC)執(zhí)行的硬件檢查確定資源訪問行為是否有安全位的授權(quán)[11],因此即便惡意進程攻破或入侵了非安全環(huán)境,存儲于安全環(huán)境內(nèi)的隱私數(shù)據(jù)仍具備安全性。ARM 定義的TrustZone 架構(gòu)如圖1 所示。

      目前ARM TrustZone 已廣泛應(yīng)用在生物識別、物聯(lián)網(wǎng)、智能設(shè)備等多個領(lǐng)域。OP-TEE(Open Portable Trusted Execution Environment)是一個包含構(gòu)建工具、測試工具等多個組件的安全框架,借助該工具可以方便地開發(fā)TrustZone應(yīng)用[12]。OP-TEE 框架對Hikey、Juno、樹莓派等硬件平臺提供了適配,同時也支持如QEMU 等虛擬硬件平臺,能夠方便地研發(fā)與移植TrustZone 應(yīng)用。

      區(qū)塊鏈技術(shù)本身具有公開、透明的特性,與隱私數(shù)據(jù)的保護存在一定的矛盾,將TEE 與區(qū)塊鏈結(jié)合,利用技術(shù)互補性能夠解決許多場景內(nèi)的痛點問題。Enkhtaivan 等[13]提出了一個拍賣方案,利用可信硬件和區(qū)塊鏈增強投標人的隱私和拍賣的正確性,在區(qū)塊鏈中加入群簽名算法以提供匿名性,利用基于硬件的可信計算環(huán)境的遠程認證功確保投標獲勝者的正確識別;Ayoade 等[14]基于區(qū)塊鏈技術(shù),設(shè)計了一種物聯(lián)網(wǎng)設(shè)備的分布式數(shù)據(jù)管理系統(tǒng),并提出使用TEE 存儲原始數(shù)據(jù),將哈?;臄?shù)據(jù)散列存儲在區(qū)塊鏈中;Liang 等[15]將區(qū)塊鏈技術(shù)與TEE 相結(jié)合,實現(xiàn)群智感知(Crowdsensing)應(yīng)用中數(shù)據(jù)提供者的獎勵機制,并解決惡意請求者匿名難追蹤的問題;Cheng 等[16]提出將輕量級移動客戶端的關(guān)鍵數(shù)據(jù)存儲在Intel SGX 環(huán)境下,提高客戶端數(shù)據(jù)的安全性與隱私性;Enkhtaivan 等[17]提出利用TEE 技術(shù)在物聯(lián)網(wǎng)系統(tǒng)與區(qū)塊鏈系統(tǒng)之間調(diào)度數(shù)據(jù),確保上鏈前物聯(lián)網(wǎng)設(shè)備生成數(shù)據(jù)的完整性和機密性;Zhang 等[18]設(shè)計了一種基于以太坊的電子投票系統(tǒng),并利用TEE 實現(xiàn)加密算法以減少智能合約中的復(fù)雜操作,節(jié)約系統(tǒng)的計算成本。

      也有學(xué)者基于TEE 技術(shù)改進了區(qū)塊鏈的系統(tǒng)架構(gòu),提升了區(qū)塊鏈的性能,擴展了區(qū)塊鏈的應(yīng)用范圍。Wang等[19]提出的Hybridchain 架構(gòu)通過TEE 環(huán)境在鏈外擴展承擔(dān)大量計算,解耦共識過程與智能合約,盡可能減小區(qū)塊鏈上的計算負擔(dān);Fu 等[20]提出了Teegraph 算法,同時利用TEE 和有向無環(huán)圖(Directed Acyclic Graph,DAG)技術(shù),有效針對物聯(lián)網(wǎng)區(qū)塊鏈這一特定場景提高共識效率;Brandenburger 等[21]針對TEE 與區(qū)塊鏈結(jié)合產(chǎn)生的回滾攻擊問題提出了解決方案;Lind 等[22]設(shè)計了二層支付網(wǎng)絡(luò)Teechain,通過可信硬件保護下的錢包在交易各方之間建立鏈外支付通道,大幅提高了區(qū)塊鏈交易系統(tǒng)的吞吐量;Maddali 等[23]提出的VeriBlock 框架,利用TEE和可驗證計算(Verifiable Computing,VC)方法減少智能合約的冗余執(zhí)行,同時不損害區(qū)塊鏈系統(tǒng)的安全性。

      在上述的研究與應(yīng)用嘗試中,區(qū)塊鏈與TEE 是割裂的兩個環(huán)境,在TEE 中執(zhí)行隱私計算功能,區(qū)塊鏈僅承擔(dān)了為隱私計算的結(jié)果進行存證的任務(wù),沒有發(fā)揮區(qū)塊鏈智能合約能夠自動化執(zhí)行的優(yōu)勢,而且存證內(nèi)容的可信是基于上傳TEE計算結(jié)果的節(jié)點本身具備的公信力,沒有從根本上解決多方信任問題。本文將區(qū)塊鏈與TEE 進行了更深層次的結(jié)合,TEE 中的隱私計算將成為智能合約執(zhí)行步驟中的一部分,節(jié)點對于上鏈數(shù)據(jù)的信任基于對自身TEE 計算結(jié)果的信任,較之現(xiàn)有的研究具備更高的可信性。

      2 系統(tǒng)與方法設(shè)計

      2.1 系統(tǒng)架構(gòu)

      根據(jù)前文所闡述的各個關(guān)鍵技術(shù)的特點與亟須解決的痛點問題,本文提出的系統(tǒng)將解決以下需求。

      1)隱私保護需求。由于區(qū)塊鏈公開透明的特性,鏈上數(shù)據(jù)能夠被系統(tǒng)中的所有用戶獲得,使用復(fù)雜的密碼學(xué)手段進行保護雖然能夠得到一定的安全性,但將增加計算成本,而且密鑰的托管仍需要一定的保密手段。因此,要求隱私數(shù)據(jù)在鏈上始終處于加密狀態(tài),需要其明文信息的計算和明文信息的加密過程均在安全的鏈下TEE 中執(zhí)行。

      2)共識數(shù)據(jù)一致性需求。區(qū)塊鏈的共識機制要求各分布式節(jié)點對同一問題的計算獲得相同的結(jié)果,因此在設(shè)計智能合約時,所有數(shù)據(jù)輸入應(yīng)均來自公開的鏈上信息,或在各個節(jié)點的TEE 中內(nèi)存放的共有信息;同時為了滿足隱私數(shù)據(jù)的安全性需求,鏈上數(shù)據(jù)需要通過所有節(jié)點的TEE 中共同持有的私鑰解密方可獲得明文信息,以滿足計算后的共識。

      3)監(jiān)管需求。針對實際應(yīng)用的需求,系統(tǒng)中的監(jiān)管節(jié)點擁有最高的權(quán)限,并且具備較高的可信度,因此對于未加密且不可公開的原始數(shù)據(jù),由監(jiān)管節(jié)點進行首次加密,并推進后續(xù)的上鏈存證流程;同時系統(tǒng)需要能夠支持實現(xiàn)區(qū)塊鏈應(yīng)用的各類功能開發(fā),如交易、存證等。

      根據(jù)上述需求,本文設(shè)計如圖2、3 所示的系統(tǒng)模型。

      圖2 系統(tǒng)模型Fig.2 System model

      圖3 節(jié)點模型Fig.3 Node model

      本文系統(tǒng)包含兩類節(jié)點:監(jiān)管節(jié)點與普通業(yè)務(wù)節(jié)點。監(jiān)管節(jié)點部署在具有公信力的機構(gòu)或監(jiān)管部門,負責(zé)個人用戶身份信息的加密與上傳,同時個人用戶可以通過監(jiān)管節(jié)點開放的接口進行隱私數(shù)據(jù)授權(quán)的操作;業(yè)務(wù)節(jié)點部署在參與實際應(yīng)用的相關(guān)企業(yè),與個人用戶之間產(chǎn)生實際的交易活動。每個節(jié)點包含區(qū)塊鏈與TEE 兩個部分,區(qū)塊鏈部分提供了加密數(shù)據(jù)存儲、交易存證等功能;TEE 部分的非安全環(huán)境中部署與區(qū)塊鏈之間交換數(shù)據(jù)的功能模塊,以及進行對鏈上數(shù)據(jù)的初步處理,通過TrustZone 安全監(jiān)視器將隱私計算需求與加密數(shù)據(jù)傳入安全環(huán)境,在安全環(huán)境中利用密鑰存儲模塊中的隱私信息,完成相應(yīng)的計算需求并將結(jié)果加密后,再經(jīng)原通道返回。

      在本文方法中,數(shù)據(jù)需要在區(qū)塊鏈、TrustZone 非安全環(huán)境和TrustZone 安全環(huán)境這3 個不同的運行環(huán)境中傳輸。一次完整的隱私計算過程如圖4 所示。當各個區(qū)塊鏈節(jié)點執(zhí)行智能合約時,判斷是否需要使用隱私數(shù)據(jù),若需要,則令智能合約產(chǎn)生一個中斷,將加密的數(shù)據(jù)與計算需求發(fā)送至對應(yīng)的TrustZone 環(huán)境中,調(diào)用存儲于安全環(huán)境的密鑰依次完成解密、計算、再加密的過程,再將結(jié)果返回至智能合約。各個區(qū)塊鏈節(jié)點在得到返回值后,對結(jié)果進行共識,若共識一致則繼續(xù)執(zhí)行智能合約,將結(jié)果上鏈存證。如此,共識的依據(jù)來自各個節(jié)點的TEE 自身計算的結(jié)果,使得共識對于各個節(jié)點都具有較強的可信性。

      圖4 隱私計算過程Fig.4 Privacy computing process

      2.2 隱私授權(quán)方法

      在本文方法中,隱私數(shù)據(jù)將以加密的形式記錄在區(qū)塊鏈上,并與用戶的真實身份綁定,以唯一的數(shù)字身份碼進行標識(如身份證號)。在業(yè)務(wù)節(jié)點需要使用隱私數(shù)據(jù)時,用戶可以通過監(jiān)管節(jié)點向業(yè)務(wù)節(jié)點授權(quán),在此基礎(chǔ)上,業(yè)務(wù)節(jié)點才能夠獲取明文信息。

      以企業(yè)會員名單共享為例,詳細介紹本文所述隱私授權(quán)方法。用戶在各個企業(yè)注冊時,將獲得一個對應(yīng)該企業(yè)的賬號,與個人數(shù)字身份碼綁定,企業(yè)間進行合作時,常需要共享會員名單,共享名單內(nèi)的用戶可以在兩個企業(yè)享有優(yōu)惠政策,但名單共享的前提應(yīng)當是獲得用戶的授權(quán),則該過程分為3 個步驟。

      2.2.1 監(jiān)管密鑰分發(fā)

      在本文方法中,保障隱私數(shù)據(jù)安全性的關(guān)鍵技術(shù)為基于TrustZone的隱私數(shù)據(jù)隔離運行環(huán)境和基于密碼學(xué)算法的隱私信息非對稱加密。其中,后者需要針對監(jiān)管所需要密鑰的分發(fā)作特殊設(shè)計,私鑰提供給相關(guān)業(yè)務(wù)方,公鑰由監(jiān)管節(jié)點留存。根據(jù)2.1節(jié)所述的系統(tǒng)架構(gòu),構(gòu)成系統(tǒng)的節(jié)點數(shù)最少為3個,在3個節(jié)點中配發(fā)相應(yīng)的密鑰,均存放于節(jié)點中TEE 部分的安全環(huán)境內(nèi),以保證密鑰不被泄露。以圖2所示的系統(tǒng)模型為例,在系統(tǒng)初始化階段,為各個節(jié)點分發(fā)的密鑰如表1所示。

      表1 節(jié)點持有密鑰Tab.1 Keys saved in nodes

      對表格中的參數(shù)解釋如下:

      1)PK_P為監(jiān)管公鑰,僅監(jiān)管節(jié)點持有,用于對用戶隱私信息的加密。

      2)SK_P為監(jiān)管私鑰,所有節(jié)點均持有,在區(qū)塊鏈系統(tǒng)進行共識時,需要利用監(jiān)管私鑰解密后的隱私數(shù)據(jù)驗證結(jié)果的一致性。

      3)PK_A、PK_B為業(yè)務(wù)節(jié)點的公鑰,用于對需要傳輸給對應(yīng)業(yè)務(wù)節(jié)點的隱私計算結(jié)果加密。

      4)SK_A、SK_B為業(yè)務(wù)節(jié)點的私鑰,解密獲得的隱私計算結(jié)果。

      需要特別說明的是,在本文方法中,為使各個節(jié)點能夠共識監(jiān)管節(jié)點加密后的信息,需要在各個節(jié)點對應(yīng)的TEE 中解密密文,因此將監(jiān)管私鑰SK_P分發(fā)至各個節(jié)點,而監(jiān)管公鑰PK_P僅由監(jiān)管節(jié)點持有,以達成加密的數(shù)字身份信息僅有監(jiān)管節(jié)點能夠生成,而所有節(jié)點都能夠在安全的TEE 中解密使用。由于TrustZone 技術(shù)的特性,存放于安全環(huán)境內(nèi)的數(shù)據(jù)僅有預(yù)設(shè)的進程能夠調(diào)用,在本文方法中,監(jiān)管私鑰僅有由智能合約發(fā)起的隱私授權(quán)進程使用,其他進程包括非法利用私鑰解密、利用私鑰生成公鑰等,則無法調(diào)用私鑰。

      2.2.2 數(shù)字身份信息生成

      本文方法中,隱私數(shù)據(jù)的使用需要用戶進行授權(quán),在數(shù)字化世界,與物理世界的真實用戶綁定的是其數(shù)字身份。為防止不同企業(yè)通過匹配身份信息直接獲得對應(yīng)數(shù)據(jù),用戶在不同企業(yè)注冊獲得的數(shù)字身份信息應(yīng)當不同,且通過加密后再上鏈存儲。

      以用戶1 在企業(yè)A(即業(yè)務(wù)節(jié)點A)注冊賬號為例,數(shù)字身份生成分為4 個階段。

      1)申請階段。根據(jù)企業(yè)A的業(yè)務(wù)需求,提供個人的真實身份信息(如身份證等),記為user1。企業(yè)A為用戶1 生成賬號userA1,并將自身的企業(yè)代碼orgA與user1、userA1 打包,生成申請消息(式(1)),通過身份管理應(yīng)用發(fā)送至監(jiān)管節(jié)點,申請上鏈存證。

      2)生成階段。監(jiān)管節(jié)點獲得申請消息(式(1)),將它發(fā)送至監(jiān)管節(jié)點的安全環(huán)境內(nèi),根據(jù)安全環(huán)境開始處理該申請的時間timeA1,為消息添加時間戳,生成消息(式(2)):

      用戶的數(shù)字身份信息將以加密字符串的形式,在區(qū)塊鏈上以鍵值對的數(shù)據(jù)格式存儲。本文方法采用國密算法,根據(jù)SM2 橢圓曲線公鑰密碼算法中公鑰加密算法的原理,由監(jiān)管節(jié)點使用監(jiān)管公鑰對標識用戶身份的鍵值對數(shù)據(jù)加密,加密后的鍵值對如式(3):

      其中:SM2_enc(data,PK)代表利用公鑰PK對數(shù)據(jù)data使用SM2 國密算法加密;雙豎線代表將兩個字符串直接相連。

      同時使用監(jiān)管公鑰對生成的鍵值對進一步加密生成如式(4)所示的驗證信息veri,供各個節(jié)點進行共識時,驗證數(shù)據(jù)有效性使用。

      3)共識階段。各個節(jié)點調(diào)用數(shù)字身份上傳智能合約,獲取階段2 中生成的鍵值對(式(3))與驗證信息(式(4))后,轉(zhuǎn)入節(jié)點對應(yīng)的TrustZone 安全環(huán)境,使用監(jiān)管私鑰解密式(4)的驗證信息,與式(3)的加密鍵值對進行比對,返回是否一致的信息。若區(qū)塊鏈節(jié)點均獲得“是”的信息,則證明信息有效,進入下一步驟;否則說明本次智能合約被非法調(diào)用,終止進程并報錯。

      4)存證階段。當區(qū)塊鏈系統(tǒng)中各個節(jié)點達成共識后,將用戶身份以鍵值對形式在鏈上數(shù)據(jù)庫存證,同時根據(jù)區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu),每一條存證信息均會對應(yīng)一個唯一的hash,以便后續(xù)的查詢或調(diào)用。

      2.2.3 隱私授權(quán)

      經(jīng)過2.2.2 節(jié)所述的數(shù)字身份信息生成過程,由監(jiān)管節(jié)點上傳大量用戶數(shù)字身份后,區(qū)塊鏈上將建立一個數(shù)字身份數(shù)據(jù)庫,進一步結(jié)合應(yīng)用場景,利用數(shù)字身份實現(xiàn)各類隱私授權(quán)解決方案,如黑白名單求交、交易流水查詢等。

      以用戶1 授權(quán)企業(yè)A、B(即業(yè)務(wù)節(jié)點A、B)共享該用戶在兩個企業(yè)的會員信息為例。假設(shè)在鏈上數(shù)據(jù)庫記錄了如表2 所示的數(shù)字身份信息(鍵值對中存儲的數(shù)據(jù)均使用監(jiān)管公鑰PK_P經(jīng)過SM2 算法加密)。

      表2 鏈上數(shù)字身份信息Tab.2 Digital identity information recorded on blockchain

      此時經(jīng)過下列步驟完成隱私授權(quán)。

      1)用戶1 通過由監(jiān)管節(jié)點控制的身份管理應(yīng)用,授權(quán)企業(yè)A、B之間可以互相驗證該用戶在對方企業(yè)的會員身份,向監(jiān)管節(jié)點提交式(5)所述數(shù)據(jù):

      2)監(jiān)管節(jié)點在安全環(huán)境內(nèi),使用監(jiān)管公鑰PK_P對式(5)中的數(shù)據(jù)加密,調(diào)用智能合約。當合約運行到需要解密隱私數(shù)據(jù)時產(chǎn)生一個中斷,各個節(jié)點將加密后的數(shù)據(jù)與鏈上數(shù)據(jù)庫中所有數(shù)字身份信息(記為BC_db)打包,生成式(6),通過傳輸控制協(xié)議(Transmission Control Protocol,TCP)服務(wù)發(fā)送至各節(jié)點對應(yīng)的TrustZone 服務(wù)器的非安全環(huán)境部分。為方便敘述,下文中將使用SM2算法加密公鑰、解密私鑰分別記為PK()、SK()。

      3)進一步地,TrustZone 建傳輸通道,非安全環(huán)境通過TrustZone 安全監(jiān)視器將式(6)的數(shù)據(jù)發(fā)送給安全環(huán)境。

      4)在TEE 內(nèi),調(diào)用系統(tǒng)初始化時存入的監(jiān)管私鑰對式(6)的數(shù)據(jù)解密,在BC_db中遍歷,查詢orgA與orgB的交集,獲得表3 的數(shù)據(jù)。

      表3 查詢結(jié)果Tab.3 Results of query

      5)在步驟4)的基礎(chǔ)上,進一步篩選如表4 所示的獲得用戶授權(quán)的數(shù)據(jù),即包含user1 的條目,記為pick_data。

      表4 篩選結(jié)果Tab.4 Results of filtering

      6)分別使用兩個業(yè)務(wù)節(jié)點的公鑰對篩選結(jié)果加密,得到PK_A(pick_data)、PK_B(pick_data),將結(jié)果返回給非安全環(huán)境。

      7)非安全環(huán)境將得到的數(shù)據(jù)通過TCP 服務(wù)返回智能合約,智能合約恢復(fù)之前的中斷。各個節(jié)點根據(jù)區(qū)塊鏈系統(tǒng)的共識規(guī)則,對返回的結(jié)果進行共識,若一致,則將PK_A(pick_data)、PK_B(pick_data)上鏈存證。

      8)兩個企業(yè)分別通過持有的SK_A與SK_B對上鏈數(shù)據(jù)進行解密,即可得到用戶1是否同時為企業(yè)A與企業(yè)B的結(jié)果。

      本文方法能夠達成企業(yè)A與企業(yè)B獲取授權(quán)用戶信息的目的,同時保護了未授權(quán)用戶的隱私(例如示例中的用戶2 的信息不會被獲悉)。同時,因為區(qū)塊鏈的特性,每次調(diào)用智能合約會留下一條不可篡改的記錄,監(jiān)管部門能夠獲得真實可信的查詢記錄,解決了互聯(lián)網(wǎng)應(yīng)用難以監(jiān)控的問題。通過修改非安全環(huán)境中的執(zhí)行程序,能夠?qū)崿F(xiàn)各類其他場景下的隱私計算需求。

      3 小內(nèi)存條件下的隱私求交算法

      本文方法需要從區(qū)塊鏈通過智能合約向TrustZone 發(fā)送大量數(shù)據(jù),進行加解密和匹配求交運算。如上文所述,本文使用鍵值對的格式存儲數(shù)字身份信息,例如個人身份證號碼,存在較多前綴相同的數(shù)據(jù),使用字典樹(Trie Tree)的數(shù)據(jù)結(jié)構(gòu)能夠更加高效地完成運算。字典樹的優(yōu)勢是在存儲字符串數(shù)據(jù)時,能夠最大限度地減少一些無謂、重復(fù)的比較,以此提高查詢效率,代價是需要消耗更多的存儲空間,通過“以空間換時間”的方式提高效率。但TEE 的內(nèi)存空間有限,且每一條密文數(shù)據(jù)需要在TEE 中經(jīng)歷解密、運算和再加密的過程,需要使用大量的內(nèi)存空間,因此不支持將大量數(shù)據(jù)同時傳入TEE 內(nèi)處理。

      基于上述情況,為應(yīng)對使用TrustZone 時內(nèi)存大小不充足的情況,本文設(shè)計了小內(nèi)存條件下的隱私求交算法。算法的基本思想是通過數(shù)據(jù)分組的方法,依次處理各個分組的數(shù)據(jù)。進行隱私求交運算的兩個數(shù)據(jù)集合分別作為基準集合、匹配集合,算法將對基準集合分組傳入TEE 構(gòu)建字典樹,匹配集合分組在字典樹中查詢,以獲得兩個數(shù)據(jù)集合的交集。出于隱私保護的需求,本文方法中TEE 外的數(shù)據(jù)均以密文形式存在,因此數(shù)據(jù)傳入TEE 后首先需要進行SM2 國密算法解密,數(shù)據(jù)傳出TEE 前需要進行SM2 加密,在下文的算法描述中將省略加解密步驟的敘述。

      3.1 基準集合分組邊界劃定

      本文算法中,當傳入基準集合數(shù)據(jù)構(gòu)建字典樹用于匹配集合的查詢求交運算時,由于TEE 的內(nèi)存容量限制,無法將全量數(shù)據(jù)同時傳入TEE,需要分組構(gòu)建多個字典樹。為了減少數(shù)據(jù)匹配時的運算次數(shù),在進行基準集合的分組時,要求分組之間具有順序關(guān)系,靠后的分組中存放的數(shù)據(jù)在比較時均大于分組靠前的數(shù)據(jù)。

      對于分組邊界的劃定,本質(zhì)上是一個遞歸求解的過程,遞歸求解的關(guān)鍵要素如下。

      輸入?yún)?shù):{Set_A{},M,Nmin,Nmax,C},詳見下文S1。

      返回值:Boun[b0,b1,…,bC-2],詳見下文S2.3。

      終止條件:Rmax-Rmin≤Vmax,詳見下文S2.4。

      算法過程如下。

      S1:

      記基準集合Set_A{}中所包含的數(shù)據(jù)總量為M,數(shù)據(jù)取值范圍為[Nmin,Nmax],TEE 能夠支持同時處理的數(shù)據(jù)量為V。由于本算法不需要嚴格要求每個分組的數(shù)量相同,相較于嚴格尋找到使每個分組數(shù)據(jù)數(shù)量均為V的分組邊界,適當增加少量分組使各個分組的數(shù)據(jù)量在小于等于V的一個數(shù)量范圍內(nèi),能夠大幅提高計算效率,因此設(shè)各個分組的容量范圍為[Vmin,Vmax],且Vmin<Vmax≤V,則最小分組數(shù)量為C=

      每次遞歸的輸入?yún)?shù)為{Set_A{},M,Nmin,Nmax,C}。

      S2.1:

      根據(jù)數(shù)據(jù)的取值范圍[Nmin,Nmax]與最小分組數(shù)量C,將基準集合預(yù)劃分為C個分組,存在C-1 個分組邊界,記錄在數(shù)組x=[x0,x1,…,xC-2]中,取值如式(7),劃分的結(jié)果如圖5 所示。

      圖5 基準集合分組預(yù)劃分示意圖Fig.5 Schematic diagram of benchmark set grouping pre-division

      S2.2:

      生成一個記錄各個分組數(shù)據(jù)數(shù)量的數(shù)組count=[count0,count1,…,countC-1],將基準集合中的數(shù)據(jù)按每組數(shù)量V分組傳入TEE,依次對所有數(shù)據(jù)判斷它屬于哪一個分組,并累計求出每個分組中包含的數(shù)據(jù)數(shù)量。當進行判斷的數(shù)據(jù)k滿足不同的條件時,將該數(shù)據(jù)標記所屬的分組號在數(shù)組group_A[]中記錄,并將對應(yīng)的count數(shù)組中項的值加1,如式(8)所示:

      S2.3:

      基準集合中所有數(shù)據(jù)完成S2.2 后,將得到一個標記了所有數(shù)據(jù)分組情況的數(shù)組group_A[];同時,將劃分后的每個分組中的數(shù)據(jù)數(shù)量記錄在數(shù)組count[],進一步判斷序號最小與最大的分組是否滿足容量范圍[Vmin,Vmax]。若滿足則說明該分組滿足要求,記錄對應(yīng)的分組邊界,將數(shù)據(jù)庫剩余部分的數(shù)據(jù)取值范圍更新為[Rmin,Rmax],并繼續(xù)判斷新的序號最小與最大的分組是否滿足容量范圍[Vmin,Vmax]。如圖6 所示,count1、count2、countC滿足分組容量范圍,則x1、x2、xC-1將被記錄,且Rmin=x2、Rmax=xC-1,group_A[]中對應(yīng)分組序號為0、1、C-1 的數(shù)據(jù)即確定了所在的分組,無需參與后續(xù)的步驟。標記此時排序最小與最大分組的序號分別為L與R(如圖6的示例中,L=2,R=C-2)。

      圖6 取值范圍更新示例Fig.6 Example of value range update

      確定的分組邊界將記錄在數(shù)組Boun[b0,b1,…,bC-2]中,經(jīng)過遞歸后,數(shù)組中的C-1 個邊界值均能夠確定,作為遞歸的返回值。如在圖6 的示例中,Boun[]數(shù)組中的3 個值已經(jīng)確定,即Boun[0]=x1,Boun[1]=x2,Boun[C-2]=xC-1,而數(shù)組中其余值則需要進入遞歸進一步求解。

      S2.4:

      在S2.3 的基礎(chǔ)上,判斷更新的數(shù)據(jù)取值范圍[Rmin,Rmax]是否滿足式(9),若滿足,代表剩余未分組的數(shù)據(jù)已經(jīng)可以存入同一個分組時,則遞歸結(jié)束。

      若不滿足式(9),將剩余的取值范圍分割為兩個部分,分別進入遞歸。分割的規(guī)則如下。

      計算剩余部分前i組中包含的所有數(shù)據(jù)量,與分組平均容量的理論值(Vmax+Vmin)/2 相除,得到前i組能夠劃分出組數(shù)的理論值,記為pi;同理,計算后j組能夠劃分出組數(shù)的理論值,記為qj。如式(10)(11):

      取p_si與q_sj中的最大值,即其中數(shù)值大小最接近整數(shù)的一項,在對應(yīng)的邊界xi/xj處進行劃分,所獲得的其中一個部分所包含的數(shù)據(jù)量將最大概率能夠恰好劃分為滿足容量范圍[Vmin,Vmax]的多個分組。

      如圖7 所示,兩塊灰色部分為需要進一步處理的數(shù)據(jù)。設(shè)劃分邊界為xi,則兩個部分進行遞歸的輸入?yún)?shù)分別為:

      圖7 遞歸初始數(shù)據(jù)更新示意圖Fig.7 Schematic diagram of recursive initial data update

      根據(jù)更新的輸入?yún)?shù),將進入S2.1~S2.4 的遞歸過程。

      經(jīng)過基準集合的分組邊界劃定,能夠獲得基準集合各個分組的邊界值Boun[b0,b1,…,bC-2],同時在執(zhí)行遞歸的過程中,將在數(shù)組group_A[]中記錄每條數(shù)據(jù)所屬的分組。

      3.2 匹配集合分組標定與查詢

      在完成對基準集合的分組后,同樣需要對匹配集合分組,再將相同分組的兩個庫同時傳入TEE 進行求交運算。

      1)根據(jù)TEE 環(huán)境的內(nèi)存限制條件,將同時能夠處理的數(shù)據(jù)數(shù)量上限記為V。將匹配集合的數(shù)據(jù)每V項一組傳入TEE,并依次對每項數(shù)據(jù)進行分組標定記錄在數(shù)組group_B[]中。

      2)在基準集合中,取出group_A[] 分組標記為i(0 ≤i<C)的所有數(shù)據(jù),傳入TEE 內(nèi)構(gòu)建字典樹。

      以身份證號碼為例,構(gòu)建的字典樹除葉子節(jié)點外,每個節(jié)點都有10 個子節(jié)點(最后一層有11 個子節(jié)點),除根節(jié)點外,共有18 層,每層記錄身份證的一位數(shù)據(jù),如圖8 所示。

      圖8 字典樹示意圖Fig.8 Schematic diagram of trie tree

      3)在匹配集合中,取出group_B[]分組標記為i(0 ≤i<C)的所有數(shù)據(jù),按照每V項一組傳入TEE 內(nèi),依次在S2.2 中構(gòu)建的字典樹中進行查詢,將其中能夠查詢到匹配項的數(shù)據(jù)輸出。在C個分組均完成查詢后,即可獲得兩個數(shù)據(jù)庫的全部交集。

      4 實驗與結(jié)果分析

      實驗環(huán)境如下:使用CPU 為11thGen Intel Core i7-11700,GPU 為NVIDIA GeForce GTX 1660 Ti,在Ubuntu18.04 系統(tǒng)中完成實驗。區(qū)塊鏈系統(tǒng)使用梧桐鏈基礎(chǔ)版,ARM 硬件由QEMU 虛擬機進行模擬,TrustZone 環(huán)境的搭建使用OP-TEE工具。

      梧桐鏈是國產(chǎn)自主可控的、主要針對企業(yè)和機構(gòu)的區(qū)塊鏈應(yīng)用場景開發(fā)的聯(lián)盟鏈區(qū)塊鏈系統(tǒng)平臺,具有完備的聯(lián)盟鏈功能和便捷的智能合約開發(fā)工具。

      OP-TEE 是非營利性質(zhì)的開源代碼軟件工程公司Linaro發(fā)布的,根據(jù)GlobalPlatform(GP)提出的TEE 標準、基于TrustZone 技術(shù)的TEE 開發(fā)工具,能夠?qū)崿F(xiàn)可信任應(yīng)用程序的隔離,便于移植到多類硬件環(huán)境與操作系統(tǒng),占用空間較小。

      OP-TEE 工具支持多種不同的平臺,在測試系統(tǒng)中,為了方便調(diào)試與觀察測試結(jié)果,采用了QEMU 平臺,能夠通過虛擬機的形式在Linux 系統(tǒng)中模擬ARM 硬件運行OP-TEE。

      在測試用例中,進行{10 萬}:{10 萬}的身份證信息的隱私求交即占用了超過100 MB 的內(nèi)存,在實際的應(yīng)用場景中,可能包含更大的數(shù)據(jù)量,且通常待處理數(shù)據(jù)除了身份信息還包括其他業(yè)務(wù)數(shù)據(jù)。而TrustZone 架構(gòu)將硬件空間劃分為安全環(huán)境與非安全環(huán)境兩個部分,還需滿足硬件正常運行的其他功能,因此可用內(nèi)存十分有限。在實驗中,當設(shè)定每個身份信息攜帶8 KB 的數(shù)據(jù)包時,進行{10 萬}:{10 萬}的隱私求交任務(wù),即無法一次性傳入TEE 中計算,進一步說明了分組計算的必要性。

      4.1 隱私求交算法性能測試與分析

      4.1.1 測試數(shù)據(jù)生成

      為驗證算法可行性與執(zhí)行效率,每次測試需要兩個存放大量字符串的數(shù)據(jù)集,且兩個數(shù)據(jù)集存在部分交集。根據(jù)本文方法的應(yīng)用背景,測試使用身份證號碼作為隱私求交運算的數(shù)據(jù),采用生成18 位隨機數(shù)的方式構(gòu)建數(shù)據(jù)集(不驗證身份證合法性,且假設(shè)最后一位均不為X)。數(shù)據(jù)集的生成過程如下:

      在[0,1019)范圍內(nèi),隨機抽取180 萬個不同的值,并轉(zhuǎn)化為字符串,打亂順序存入數(shù)據(jù)集N;

      在數(shù)據(jù)集N中隨機抽取20 萬條數(shù)據(jù),存入數(shù)據(jù)集X,剩余160 萬條數(shù)據(jù),平均分為80 萬條一組,分別存入數(shù)據(jù)集Y0、Y1;

      將數(shù)據(jù)集Y0、Y1分別以隨機抽取數(shù)據(jù)的方式,平均分為10 組,并存入{A0,A1,…,A9}、{B0,B1,…,B9},則得到的20 組數(shù)據(jù)各存有8 萬條;

      將數(shù)據(jù)集X平均分為10 組,分別存入{X0,X1,…,X9},每組2 萬條。將對應(yīng)編號的Xi數(shù)據(jù)集中存放的數(shù)據(jù),分別加入Ai、Bi,則得到的20 組數(shù)據(jù){A0,A1,…,A9}、{B0,B1,…,B9},將各存有10 萬條數(shù)據(jù),且任意相同序號的Ai、Bi數(shù)據(jù)集都有2 萬條交集數(shù)據(jù)。

      4.1.2 算法性能測試與分析

      對所有數(shù)據(jù)分別使用SM2 國密算法加密,得到20 組未排序的加密數(shù)據(jù){A0,A1,…,A9}、{B0,B1,…,B9}。在此數(shù)據(jù)集基礎(chǔ)上,能夠進行最小{10 萬}:{10 萬}、最大{100 萬}:{100 萬}的隱私求交測試。通過改變初始抽取數(shù)據(jù)數(shù)量的大小,還能夠獲得不同量級的數(shù)據(jù)集。

      首先將數(shù)據(jù)集寫入?yún)^(qū)塊鏈中進行存證;其次,調(diào)用智能合約,設(shè)定隱私計算方法為求兩個數(shù)據(jù)集合的交集,將數(shù)據(jù)集發(fā)送至TrustZone 環(huán)境,調(diào)用隱私求交算法,記錄算法的時間消耗,以及單組數(shù)據(jù)進入TEE進行求交運算時的內(nèi)存消耗。

      1)算法穩(wěn)定性測試。

      取20 組基準庫與匹配庫數(shù)據(jù)量大小均為10 萬的未排序數(shù)據(jù)集進行隱私求交運算,測試結(jié)果如表5 所示,在數(shù)據(jù)集已排序的情況下,對隱私求交算法的測試結(jié)果如表6 所示,兩種情況下算法時空消耗的平均數(shù)與方差計算如表7。

      表5 算法穩(wěn)定性測試結(jié)果Tab.5 Results of algorithm stability test

      表6 算法穩(wěn)定性測試結(jié)果(數(shù)據(jù)集已排序)Tab.6 Results of algorithm stability test(datasets are sorted)

      表7 算法測試結(jié)果對比Tab.7 Algorithm test results comparison

      從測試結(jié)果可以看出,整個運算過程消耗的時間較長,主要原因是在確定基準庫分組時,由于收到的是亂序的數(shù)據(jù)集合,在劃定分組邊界時,需要在遞歸中多次在TrustZone 環(huán)境內(nèi)進行安全環(huán)境與非安全環(huán)境之間的數(shù)據(jù)傳輸、數(shù)據(jù)解密;若TrustZone 獲得的數(shù)據(jù)集是已排序的,則在分組過程中,能夠直接按照分組容量依次在數(shù)據(jù)集中取相應(yīng)數(shù)量的數(shù)據(jù)進入TEE,并確定分組的上下邊界。

      從表7 中可以看出,算法對空間的消耗較為穩(wěn)定,且數(shù)據(jù)集是否排序基本不影響運算過程中占用TEE的最大容量。進一步地,改變測試數(shù)據(jù)集的大小進行測試,由于TEE內(nèi)的運算是分組進行的,占用內(nèi)存取決于設(shè)定的分組大小,與數(shù)據(jù)總量無關(guān);在時間維度上,算法的消耗同樣較為穩(wěn)定,而排序數(shù)據(jù)集相較于未排序而言,在運行速度上有顯著提升,如表8所示。

      表8 不同數(shù)量級大小情況下的算法時間消耗對比 單位:sTab.8 Comparison of algorithm time consumption under different dataset magnitudes unit:s

      表8 中分別展示了當數(shù)據(jù)集大小分別在105、5 × 105、106、2 × 106、5 × 106、107、2 × 107時,在數(shù)據(jù)集未排序與已排序情況下算法的時間消耗對比,經(jīng)過排序后耗時分別縮短了18.43%、30.69%、40.61%、44.80%、48.38%、52.09%、56.32%。可以看出,數(shù)據(jù)集在經(jīng)過排序后,能夠大幅縮減算法的運行時間,且隨著數(shù)據(jù)集數(shù)量級的增大,時間縮減的效果越好?;诖藴y試結(jié)果,能夠得出改進本算法的一個方向是要求智能合約在將數(shù)據(jù)集發(fā)送至TEE 前,事先將數(shù)據(jù)集進行排序;或是在使用區(qū)塊鏈對隱私數(shù)據(jù)進行存儲時,提供一種能夠便于排序的編碼方式。

      2)不同數(shù)量級條件下的算法性能測試。

      在部分應(yīng)用場景中,用戶數(shù)量能夠達到百萬級、千萬級,如銀行等大型金融機構(gòu)能夠達到上億的用戶體量。因此設(shè)計在不同數(shù)量級條件下對本文算法的性能測試。

      取不同數(shù)量大小的亂序數(shù)據(jù)集各15 組,分別對算法進行測試,取各組的平均值,結(jié)果記錄如表9 所示。

      表9 不同數(shù)量條件下的算法測試結(jié)果Tab.9 Algorithm test results under different quantitative conditions

      根據(jù)對算法的時間復(fù)雜度分析,基準集合分組邊界劃定的時間復(fù)雜度為O(nlogn),字典樹的建立與查詢求交的時間復(fù)雜度為O(n),基于時間復(fù)雜度的分析,將測試結(jié)果擬合成曲線,如圖9 所示。

      圖9 不同數(shù)量條件下本文算法的時間消耗對比Fig.9 Comparison of time consumption for the proposed algorithm under different quantitative conditions

      由測試結(jié)果可以看出,在數(shù)據(jù)集的數(shù)量級逐漸增大時,時間消耗是可預(yù)期的,說明本文算法能夠適用于監(jiān)管場景下處理海量用戶數(shù)據(jù)的情況。若需要進一步提高效率,則需要信創(chuàng)硬件廠商提升硬件性能,尤其TEE 容量的擴充。此外,測試使用的是表示用戶身份證號碼的18 位字符串,若能夠提出一種新的編碼方式,縮短標識用戶身份的字符串長度,則運行效率也能夠得到大幅提升。

      4.2 隱私安全分析

      在區(qū)塊鏈的應(yīng)用中,針對隱私安全的一個關(guān)鍵問題是去匿名化攻擊,即通過分析交易數(shù)據(jù)挖掘用戶隱藏在虛擬賬號后的真實身份。在最早使用的公有鏈系統(tǒng)中,由于交易方式是點對點交易,往往一個節(jié)點參與的交易只與同一個用戶相關(guān),雖然用戶可以在區(qū)塊鏈系統(tǒng)中使用假名和隨機地址進行交易,但通過監(jiān)控未加密的網(wǎng)絡(luò),基于一些行為分析策略如反洗錢(Anti-Money Laundering,AML)、了解你的客戶(Know Your Customer,KYC),將可能分析使用區(qū)塊鏈進行交易的用戶身份和交易的具體行為[24]。區(qū)塊鏈的事務(wù)記錄了參與者的地址、時間戳、簽名等信息,基于區(qū)塊鏈網(wǎng)絡(luò)的公共性質(zhì),可以通過跟蹤交易流,分析節(jié)點的交易偏好,進而有可能挖掘節(jié)點對應(yīng)的真實物理身份。在本文方法所提出的聯(lián)盟鏈架構(gòu)中,所有交易的發(fā)起均來自監(jiān)管節(jié)點,因此個人用戶的真實身份與節(jié)點并無綁定關(guān)系,通過交易流的分析無法確定實際的交易參與方的身份。

      由于使用了區(qū)塊鏈技術(shù)作為數(shù)據(jù)存儲的載體,所記錄的數(shù)據(jù)可以被公開獲取。本文方法采用了聯(lián)盟鏈的底層架構(gòu),擁有準入機制的控制權(quán)限,即節(jié)點加入與退出需要系統(tǒng)的準許,與公有鏈架構(gòu)的自由進出不同。能夠獲取鏈上數(shù)據(jù)的,只有系統(tǒng)認可的節(jié)點,首先避免了惡意節(jié)點的干擾;其次記錄在區(qū)塊鏈上的所有數(shù)據(jù)均經(jīng)過了SM2 加密算法處理,具備指數(shù)級的破譯難度,已獲得國家與國際機構(gòu)的應(yīng)用認可,任一節(jié)點只能夠獲取使用對應(yīng)公鑰加密后的數(shù)據(jù)。

      在TEE 的安全性方面,面臨的主要問題是側(cè)信道攻擊[25],即在TEE 的運行過程中,通過一定的信道獲取運行產(chǎn)生的一些副作用信息,如功耗情況、運行時間和電磁輻射量等,進而推測硬件環(huán)境內(nèi)存儲的機密信息和進程執(zhí)行情況[26]。側(cè)信道攻擊主要包含的3 種類型是軟件攻擊、電路板級物理攻擊和芯片級物理攻擊。目前的TEE 技術(shù)尚未對芯片進行特殊設(shè)計的物理防護,因此對于芯片級物理攻擊的抵抗能力有限;電路板級物理攻擊指的是通過在硬件設(shè)備上掛載竊聽或攻擊設(shè)備,以非法獲取計算機的信息;軟件攻擊則最為常見,即通過各類純軟件的攻擊程序嘗試攻破硬件設(shè)備的安全防護,在本文方法中,隱私數(shù)據(jù)的明文僅出現(xiàn)在TrustZone 技術(shù)架構(gòu)中的TEE 部分,而由于技術(shù)本身的架構(gòu)設(shè)計,每次隱私計算的執(zhí)行只會響應(yīng)特定的非安全環(huán)境中的進程,且由于安全環(huán)境與非安全環(huán)境同時只能有其中之一處在運行狀態(tài),在TEE 中執(zhí)行隱私計算功能時,非安全環(huán)境中的進程會自動進入中斷狀態(tài)。且本文方法中,TEE 內(nèi)的隱私計算完成后即釋放中間數(shù)據(jù)的物理空間,因此能夠抵抗非芯片級的攻擊。

      5 結(jié)語

      區(qū)塊鏈由于天然具備去中心化、數(shù)據(jù)真實可信、防篡改等技術(shù)特性,為許多應(yīng)用場景提供了新的解決思路,尤其在數(shù)字化時代,能夠為數(shù)據(jù)共享提供便利,但同時可能產(chǎn)生的隱私數(shù)據(jù)泄露使得在應(yīng)用區(qū)塊鏈時有所顧忌。本文在此背景下,探索性地研究了區(qū)塊鏈智能合約的隱私保護問題,提出使用TEE 技術(shù)補充區(qū)塊鏈架構(gòu),以實現(xiàn)區(qū)塊鏈技術(shù)在功能性與隱私保護性上的共存。由于在設(shè)計TEE 時,通常只能夠分配較小的內(nèi)存空間,而數(shù)字化應(yīng)用常面對海量數(shù)據(jù)的處理,且在隱私保護的要求下,數(shù)據(jù)還需要加解密處理,對內(nèi)存空間有更大的需求;因此,本文設(shè)計了基于分組與遞歸思想的隱私求交算法,能夠解決海量數(shù)據(jù)集合之間的隱私求交問題。本文方法仍有進一步研究的空間:一是可以結(jié)合密碼學(xué)技術(shù),如同態(tài)加密、零知識證明和屬性基加密等,進一步提升隱私保護性能,完善方案;二是可以研究加密數(shù)據(jù)的排序方式,在使用本文算法前對數(shù)據(jù)集排序,以提升算法的效率。

      猜你喜歡
      加密分組區(qū)塊
      區(qū)塊鏈:一個改變未來的幽靈
      科學(xué)(2020年5期)2020-11-26 08:19:12
      區(qū)塊鏈:主要角色和衍生應(yīng)用
      科學(xué)(2020年6期)2020-02-06 08:59:56
      一種基于熵的混沌加密小波變換水印算法
      分組搭配
      怎么分組
      區(qū)塊鏈+媒體業(yè)的N種可能
      傳媒評論(2018年4期)2018-06-27 08:20:12
      讀懂區(qū)塊鏈
      分組
      認證加密的研究進展
      基于ECC加密的電子商務(wù)系統(tǒng)
      松溪县| 屏东县| 美姑县| 拉萨市| 蕉岭县| 班戈县| 新河县| 孟津县| 咸阳市| 那坡县| 阆中市| 鹿泉市| 庆元县| 永康市| 乃东县| 东莞市| 阿勒泰市| 沅江市| 徐州市| 正安县| 横山县| 北安市| 汨罗市| 塘沽区| 丰都县| 仁寿县| 资源县| 嘉兴市| 荃湾区| 大竹县| 清涧县| 安西县| 孝昌县| 永春县| 盐津县| 宝兴县| 云和县| 天门市| 东海县| 高州市| 峡江县|