999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TrustZone的區塊鏈智能合約隱私授權方法

2023-07-03 14:12:34陳璐瑀馬小峰龔生智
計算機應用 2023年6期
關鍵詞:環境

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

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

0 引言

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

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

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

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

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

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

1 背景與相關研究

近年來,數字化轉型和數據共享是各行各業共同的發展趨勢,打破數據孤島、有效共享互用數據,海量數據才能發揮最大的效用。通過協同分析多方數據,能夠創造更大的價值。

在數據共享背景下,數據已然成為一種具有一定價值的生產要素,也與數據所有者的隱私信息息息相關。本文所提出的利用區塊鏈與TEE 相結合的系統架構,希望能夠用技術手段保護用戶數據免受未經授權的數據分析。

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

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

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

TEE 是一種基于硬件和操作系統的安全架構,通過時分復用的CPU 或者直接劃分出部分內存空間作為安全環境,以構建出與外部隔離的安全計算環境,用于部署關鍵的計算邏輯,處理隱私數據。

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

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

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

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

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

在上述的研究與應用嘗試中,區塊鏈與TEE 是割裂的兩個環境,在TEE 中執行隱私計算功能,區塊鏈僅承擔了為隱私計算的結果進行存證的任務,沒有發揮區塊鏈智能合約能夠自動化執行的優勢,而且存證內容的可信是基于上傳TEE計算結果的節點本身具備的公信力,沒有從根本上解決多方信任問題。本文將區塊鏈與TEE 進行了更深層次的結合,TEE 中的隱私計算將成為智能合約執行步驟中的一部分,節點對于上鏈數據的信任基于對自身TEE 計算結果的信任,較之現有的研究具備更高的可信性。

2 系統與方法設計

2.1 系統架構

根據前文所闡述的各個關鍵技術的特點與亟須解決的痛點問題,本文提出的系統將解決以下需求。

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

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

3)監管需求。針對實際應用的需求,系統中的監管節點擁有最高的權限,并且具備較高的可信度,因此對于未加密且不可公開的原始數據,由監管節點進行首次加密,并推進后續的上鏈存證流程;同時系統需要能夠支持實現區塊鏈應用的各類功能開發,如交易、存證等。

根據上述需求,本文設計如圖2、3 所示的系統模型。

圖2 系統模型Fig.2 System model

圖3 節點模型Fig.3 Node model

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

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

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

2.2 隱私授權方法

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

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

2.2.1 監管密鑰分發

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

表1 節點持有密鑰Tab.1 Keys saved in nodes

對表格中的參數解釋如下:

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

2)SK_P為監管私鑰,所有節點均持有,在區塊鏈系統進行共識時,需要利用監管私鑰解密后的隱私數據驗證結果的一致性。

3)PK_A、PK_B為業務節點的公鑰,用于對需要傳輸給對應業務節點的隱私計算結果加密。

4)SK_A、SK_B為業務節點的私鑰,解密獲得的隱私計算結果。

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

2.2.2 數字身份信息生成

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

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

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

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

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

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

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

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

4)存證階段。當區塊鏈系統中各個節點達成共識后,將用戶身份以鍵值對形式在鏈上數據庫存證,同時根據區塊鏈的數據結構,每一條存證信息均會對應一個唯一的hash,以便后續的查詢或調用。

2.2.3 隱私授權

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

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

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

此時經過下列步驟完成隱私授權。

1)用戶1 通過由監管節點控制的身份管理應用,授權企業A、B之間可以互相驗證該用戶在對方企業的會員身份,向監管節點提交式(5)所述數據:

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

3)進一步地,TrustZone 建傳輸通道,非安全環境通過TrustZone 安全監視器將式(6)的數據發送給安全環境。

4)在TEE 內,調用系統初始化時存入的監管私鑰對式(6)的數據解密,在BC_db中遍歷,查詢orgA與orgB的交集,獲得表3 的數據。

表3 查詢結果Tab.3 Results of query

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

表4 篩選結果Tab.4 Results of filtering

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

7)非安全環境將得到的數據通過TCP 服務返回智能合約,智能合約恢復之前的中斷。各個節點根據區塊鏈系統的共識規則,對返回的結果進行共識,若一致,則將PK_A(pick_data)、PK_B(pick_data)上鏈存證。

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

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

3 小內存條件下的隱私求交算法

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

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

3.1 基準集合分組邊界劃定

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

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

輸入參數:{Set_A{},M,Nmin,Nmax,C},詳見下文S1。

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

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

算法過程如下。

S1:

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

每次遞歸的輸入參數為{Set_A{},M,Nmin,Nmax,C}。

S2.1:

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

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

S2.2:

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

S2.3:

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

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

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

S2.4:

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

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

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

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

如圖7 所示,兩塊灰色部分為需要進一步處理的數據。設劃分邊界為xi,則兩個部分進行遞歸的輸入參數分別為:

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

根據更新的輸入參數,將進入S2.1~S2.4 的遞歸過程。

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

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

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

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

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

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

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

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

4 實驗與結果分析

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

梧桐鏈是國產自主可控的、主要針對企業和機構的區塊鏈應用場景開發的聯盟鏈區塊鏈系統平臺,具有完備的聯盟鏈功能和便捷的智能合約開發工具。

OP-TEE 是非營利性質的開源代碼軟件工程公司Linaro發布的,根據GlobalPlatform(GP)提出的TEE 標準、基于TrustZone 技術的TEE 開發工具,能夠實現可信任應用程序的隔離,便于移植到多類硬件環境與操作系統,占用空間較小。

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

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

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

4.1.1 測試數據生成

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

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

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

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

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

4.1.2 算法性能測試與分析

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

首先將數據集寫入區塊鏈中進行存證;其次,調用智能合約,設定隱私計算方法為求兩個數據集合的交集,將數據集發送至TrustZone 環境,調用隱私求交算法,記錄算法的時間消耗,以及單組數據進入TEE進行求交運算時的內存消耗。

1)算法穩定性測試。

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

表5 算法穩定性測試結果Tab.5 Results of algorithm stability test

表6 算法穩定性測試結果(數據集已排序)Tab.6 Results of algorithm stability test(datasets are sorted)

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

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

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

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

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

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

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

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

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

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

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

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

4.2 隱私安全分析

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

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

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

5 結語

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

猜你喜歡
環境
長期鍛煉創造體內抑癌環境
一種用于自主學習的虛擬仿真環境
孕期遠離容易致畸的環境
不能改變環境,那就改變心境
環境與保護
環境
孕期遠離容易致畸的環境
高等院校環境類公選課的實踐和探討
掌握“三個三” 兜底環境信訪百分百
我國環境會計初探
中國商論(2016年33期)2016-03-01 01:59:38
主站蜘蛛池模板: 日韩亚洲综合在线| 538国产视频| 国产a v无码专区亚洲av| 午夜不卡视频| 日本午夜精品一本在线观看| 免费aa毛片| 久久人与动人物A级毛片| 国产亚洲精品yxsp| 日韩人妻无码制服丝袜视频| A级毛片高清免费视频就| 免费久久一级欧美特大黄| 日本一本在线视频| 国内嫩模私拍精品视频| 日韩精品无码免费一区二区三区 | 五月天婷婷网亚洲综合在线| 亚洲第一区在线| 19国产精品麻豆免费观看| 亚洲一区免费看| 真人免费一级毛片一区二区| 九九视频免费在线观看| 中国国产高清免费AV片| 污污网站在线观看| 久久国产精品影院| 亚洲Av激情网五月天| 福利在线一区| 亚洲成综合人影院在院播放| 亚洲一区精品视频在线| 国产导航在线| 国产精品女人呻吟在线观看| 日韩黄色在线| www.91中文字幕| 尤物亚洲最大AV无码网站| 国产精品一区二区在线播放| 就去吻亚洲精品国产欧美| 中文字幕不卡免费高清视频| 日本午夜三级| 波多野结衣中文字幕一区二区 | 无码专区第一页| 久久毛片网| 美女无遮挡被啪啪到高潮免费| 亚洲国产成人精品青青草原| 亚洲色无码专线精品观看| 亚洲va在线∨a天堂va欧美va| 国产精品第一区| 一级看片免费视频| 毛片卡一卡二| 台湾AV国片精品女同性| 五月六月伊人狠狠丁香网| 亚洲av中文无码乱人伦在线r| 国产免费福利网站| 亚洲动漫h| 日韩经典精品无码一区二区| 国产在线观看高清不卡| 91www在线观看| 人妻精品久久久无码区色视| 亚洲美女高潮久久久久久久| 欧美色伊人| 91丨九色丨首页在线播放| 久久综合一个色综合网| 露脸国产精品自产在线播| www.亚洲一区| 一级香蕉人体视频| 国产永久在线观看| 国产成人夜色91| 亚洲精品免费网站| 51国产偷自视频区视频手机观看| 亚洲国产日韩在线观看| 亚洲有无码中文网| 欧美19综合中文字幕| 日韩黄色在线| 91麻豆国产在线| 国产va在线观看| 伊人久久大线影院首页| 国产成人免费高清AⅤ| 亚洲欧美日韩成人在线| 亚洲国产精品不卡在线 | 免费播放毛片| 亚洲第一区精品日韩在线播放| 特级精品毛片免费观看| 精品伊人久久大香线蕉网站| 人妻中文久热无码丝袜| 色视频国产|