陳麗莎, 李雪蓮, 高軍濤
(1. 西安電子科技大學數學與統計學院, 陜西 西安 710071; 2. 西安電子科技大學通信工程學院, 陜西 西安 710071)
當前,互聯網快速普及,全球數據呈現爆發式增長、海量集聚的特點,數據的價值愈發凸顯。據國際權威機構Statista統計,2016年至2019年的全球數據量分別為18ZB、26ZB、33ZB、41ZB(1ZB=十萬億億字節)。國際數據公司IDC預計2025年全球數據量將是2016年的9倍,達到163ZB。數據作為一種新型生產要素,與傳統生產要素并列。隨著人工智能、數據挖掘等技術的發展,數據科學決策成為政府、企業的共識,數據開放共享的迫切需要與日俱增。但數據卻以碎片割裂的方式分散在不同的地方,形成了“數據孤島”的窘境。數據交易市場應運而生,打破了存在的“數據孤島”問題,驅動數據互聯互通。然而數據與一般商品迥然有異,復制零成本使得數據在交易時不能以明文的方式進行傳遞。一旦購買者獲知該數據,就可以復制,從而不會購買,數據交易市場也因此仍停留在起步階段。Chen等描述了一種典型的數據交易模式,這種模式一般依賴于可信的數據交易平臺的中心化管理。數據銷售者將數據封裝后提交給交易平臺,由交易平臺匹配購買者的數據需求,數據銷售者與購買者交互完成交易。雖然這種交易模式讓不存在信任關系的交易用戶能夠共享數據,但該交易模式仍然存在許多問題:① 賦予交易平臺過大的權利,導致系統易受到單點故障問題的侵蝕以及密鑰泄露攻擊。② 交易系統的設計并不完善,缺乏對惡意用戶的問責機制,且這種交易模式更傾向于保護數據購買者的利益,一旦受到來自數據購買者與第三方平臺的合謀攻擊,銷售者不得不受到懲罰,被迫為購買者的惡意行為買單。
2008年,區塊鏈技術的興起,帶來了“去中心化”的福音,讓數據交易不再依賴于第三方可信平臺,讓交易系統免受來自第三方可信平臺單點失敗問題的洗禮。它通過鏈式數據存儲結構、共識機制、分布式點對點傳輸等多種技術實現了一種新型的共識網絡。其中,智能合約作為區塊鏈技術的應用快速發展起來,它以“一段能夠自動執行的代碼”聞名,為實現交易的原子性支付提供了技術支持。去中心化協議的確可以讓交易高效、平穩地運行起來,但它卻無法像中心化協議解決用戶糾紛。因此,要實現公平完善的交易系統,應該考慮如何將二者結合起來,在高效平穩實現自動交易解決用戶間不信任問題的同時削弱第三方管理平臺權力,解決單點失敗問題及合謀問題,實現良好的折中。這將面臨如下挑戰:① 數據的可靠性; ② 數據在交易過程中的隱私性; ③ 爭議出現時高效公平的問責性。
本文的主要貢獻包括3個方面:
(1) 設計了一個原子性可問責的數據交易方案。構造了適用于交易場景的特殊的數據審計協議,將其與智能合約結合,既保障了交易的原子性,又確保了數據在共享過程中的完整性;
(2) 運用自認證公鑰密碼技術為用戶完成注冊,確保除用戶自身以外,其他人包括市場管理者都無法獲得用戶私鑰。結合非交互式密鑰交換技術生成會話密鑰,解決了對稱密碼技術的密鑰分發問題,使協議能夠高效地使用對稱加密技術確保通信安全;
(3) 設計了公平的問責機制,當交易出現爭議時,市場管理者可以組織數據購買者和數據銷售者進行維權辯論。由于數據審計具備可公共審計性,所有人都可以參與驗證,從而杜絕市場管理者與參與交易的任意一方的合謀現象發生。
近年來,基于第三方是可信的假設下,針對數據交易系統的研究層出不窮。如,Juang等提出了一種可以在云計算環境中保護數據隱私性的數字商品交易方案。該方案確保云服務器可以在不知道商品內容的情況下,幫助數據購買者找到合適的關鍵字對應的商品。但是,由于在整個交易過程中未對商品進行驗證,因此無法保障交易數據的完整性。Jung等針對數據交易過程中數據購買者的惡意行為,設計了accounttrade協議來對惡意購買者進行問責。研究發現,第三方平臺作為交易系統中權威的管控中心,其帶來的資產控制權問題、資產風險問題、交易透明度問題使得交易環境復雜化。為了避免第三方平臺惡意復制并在未授權的情況下出售數據,Naor等提出將數據加密后直接發送給有意向購買的數據購買者,出售加密密鑰代替直接出售數據的方式來確保數據不會以明文形式被傳遞。但第三方平臺仍然可能在交易過程中獲得關于數據的信息,從而恢復數據。Dai等選擇將數據進行隱藏,只將數據分析后的結果進行出售,以確保數據的安全性,同時還能避免陷入數據所有權問題的糾紛中。但由于現有的數據分析技術不夠先進,僅通過一次數據分析就得出精確的結論顯然是不可行的。Zhao等將防止雙重認證的簽名(double authentication preventing signature,DAPS)技術與智能合約結合實現交易的原子性,通過對密鑰重建來避免密鑰泄露問題。Delgado-Segura等也提出了類似的交易模式,將橢圓曲線數字簽名算法(elliptic curve digital signature algorithm,ECDSA)的漏洞原理靈活用于密鑰重建,再將密鑰重建與比特幣鎖時交易結合已實現原子性的數據交易方案,但由于比特幣交易中的操作碼OP_AND被禁止使用,因此方案難以部署。這種密鑰重建與自動支付結合的系統雖然可以確保密鑰重建和付費同時完成,保證任何人(包括第三方平臺)只要未付費就無法得到數據。但密鑰重建技術的使用也使得系統無法具備完善的問責機制,面對惡意的購買者無法實現公平的問責。趙艷琦等提出了基于機器學習的公平的數據交易方案,方案結合抽樣技術與向量承諾,解決了數據來源可靠性問題以及交易原子公平性問題,但密鑰在未作任何保護措施的情況下,直接在區塊鏈環境中暴露顯然是不妥的。Hu等提出了一種差異隱私數據交易機制,通過生成一個私有的合成數據集來平衡數據的可用性和隱私性。實現保護隱私的同時,滿足數據消費者對已發布數據集的實際使用需求。黃小紅等基于多目標協作式帶精英策略的非支配排序的遺傳算法(non-dominated sorting genetic algorithm, NSGAII)提出了一種基于聯盟區塊鏈的分布式數據交易模型,該模型在用戶效用方面取得較好的性能。這類基于區塊鏈實現的去中心化協議雖然讓用戶能在不信任的情況下進行交易,但對于交易結束后的糾紛問題卻無能為力。而由第三方平臺管理的交易卻能夠高效解決用戶糾紛。因此,只有將兩種方式結合起來,揚長避短,才能夠讓用戶在公平的環境中安全地共享數據。
在本節中,首先介紹了構造方案的基礎離散對數困難問題以及雙線性映射的定義。其次介紹了數據審計技術的功能,它能夠檢測數據在共享過程中的完整性,為方案支持數據完整性驗證提供了技術支持。最后介紹自認證公鑰密碼技術的應用以及特性,該技術為方案削弱第三方權利、解決單點故障問題提供了解決方案。
離散對數(discrete logarithm, DL)問題。設是一個階為大素數的乘法循環群,(,)∈,其中是乘法循環群的生成元,對?∈,計算。
雙線性映射。假設,是兩個階為大素數的乘法循環群,,為的兩個生成元,是×→的一個映射,稱滿足下列3個性質的為雙線性映射。

(2) 非退化性:(,)≠1。
(3) 可計算性:對?,∈,存在一個有效算法計算(,)。
2007年,Ateniese首次提出可證明數據擁有的PDP方案,將同態可驗證標簽(homomorphic verifiable tags,HVTs)技術與隨機抽樣技術結合,為被挑戰的數據塊生成聚合簽名作為數據完整性的證明,由審計者驗證該證明的正確性來概率性評估存儲在云上數據的完整性。這項技術對于失去數據物理控制權的用戶來說,是限制云存儲服務提供商惡意刪除數據、破壞數據的必要技術。本文基于HVTs的可聚合性也為數據生成完整性證明標簽,通過驗證聚合標簽的正確性來檢測交易數據的完整性。
自認證公鑰密碼(self-certified public keys,SCPK)技術是基于身份的密碼系統,能有效減輕傳統證書管理的負擔。該技術生成的私鑰由用戶自己選擇,除用戶外,其他人甚至注冊中心均無法計算用戶的私鑰,而其他用戶可以通過該用戶提供的簽名來計算用戶的公鑰,這樣一來即使注冊中心泄露了用戶的信息,用戶的私鑰依舊是安全的。
本節介紹支持數據完整性驗證的可問責數據交易方案的系統模型、系統安全目標以及支持數據完整性驗證的可問責數據交易方案的具體構造。
如圖1所示,數據交易方案系統中包含3個實體,包括市場管理者(manager,M)、數據銷售者(data seller,DS)、數據購買者(data buyer,DB)。
M:M的主要職責是維護整個系統的正常運行。采用SCPK為用戶注冊,維護用戶密鑰信息列表(identity key list,IKL),并在問責階段處理用戶爭議,通過查詢IKL揭露惡意用戶身份。
DS:DS擁有數據,通過出售數據獲利,使用數據購買者選定的密鑰加密數據,為數據生成數據完整性證明,觸發智能合約獲取付費。

圖1 系統模型Fig.1 System model
DB:DB通過機器學習來決定是否購買數據。它與DS交互,并部署智能合約,對滿足需求的數據進行付費。
可靠的數據交易方案應具備以下安全要求:
(1) 完備性:如果方案正確運行且交易雙方誠實執行,那么DS能獲得酬金,DB能得到正確的數據。
(2) 機密性:未進行付費的DB無法獲得有效數據。
(3) 公平性:交易結束之后,要么DB獲得有效數據,DS獲得酬金;要么任何一方都得不到任何有利的東西。
(4) 可問責性:對于不誠實的用戶,M可以揭露其身份并沒收其押金。
在系統初始化階段,初始化系統參數PP。在用戶注冊階段,DS與DB在M處進行注冊,獲得假名以及相應的公私鑰對{ID,,PK}, {ID,,PK},M維護用戶身份信息登記表IKL列表。DS與DB分別使用對方的公鑰以及自己的私鑰生成會話密鑰用于加密消息。DS將數據分塊并加密,并將加密文件發送給DB,將簽名信息{,,}發送到區塊鏈。在查詢階段,DB對加密文件進行抽樣,DS生成相關證明{,}∈發送給DB。DB得到相應數據塊后采用相似性學習來決定是否購買數據。在支付階段,DB將生成的密鑰發送給DS并發表智能合約到區塊鏈。DS用{}∈加密數據后,上傳數據完整性證明{{}∈,} 以調用智能合約獲得付費,DB解密{}∈得到數據。在問責階段,未獲得正確數據的DB可上傳{}∈向M上訴。由M組織維權辯論,對于惡意的用戶,M可通過查詢IKL揭露其身份并將其押金的一部分作為補償交給交易另一方(見圖2),具體方案如下。

圖2 交易流程Fig.2 Transaction process
331 系統初始化階段


332 用戶注冊階段

=·H(ID||)+
(1)

(2) DS和DB分別采用上述SCPK進行身份注冊,其中DS擁有假名ID和公私鑰對(,PK=),相應地,DB擁有假名ID和公私鑰對(,PK=)。DS用DB的公鑰和自己的私鑰計算會話密鑰=(PK),DB用DS的公鑰和自己的私鑰計算會話密鑰=(PK)。則
=(PK)=()=()=(PK)=
DB與DS的交互均通過該會話密鑰對稱加密后進行傳輸以確保通信安全,而其他人沒有會話密鑰無法解密獲得消息,后續描述交互消息均為用會話密鑰加密后再進行傳輸,收到信息后采用會話密鑰解密即可獲得。


(2)

(3)
DS將簽名文件{,,}發送到區塊鏈。
333 查詢階段

334 支付階段


(3) 當DS收到{}∈后,首先使用驗證{}∈的正確性,即驗證等式:

(4)

(4) DS通過上傳數據完整性證明運行智能合約。如果數據完整性證明驗證通過,則DS能得到酬金,而DB能使用{}∈解密{}∈得到原始數據。否則,他們兩者都得不到任何有利的東西。

Transfer算法

輸入:數據完整性證明{{}∈,},簽名文件{,,}, 轉化值, DS公鑰PK,公鑰PK, 當前時間;
輸出:result。
① if<

③ transfer $ to PK;
④ end if
⑤ else
⑥ withdraw $ to PK;
⑦ end if

3.3.5 問責階段
如果DB解密的數據中包含無效數據塊,它將向M申述,并揭露{}∈。所有人使用和DB的公鑰PK驗證DB提供的{}∈的正確性,即驗證

(5)
驗證過程如下:

驗證通過后,M和DS使用{}∈解密DS提供的加密數據{}∈得到數據,確認數據中是否含有無效數據。如果包含無效數據,M將從IKL中找到DS的身份信息,揭露DS的身份并將其押金交給DB。
3.3.6 正確性分析


完備性。支持數據完整性驗證的可問責數據交易方案滿足完備性。
DS與DB誠實地執行本文所提數據交易方案,初始化系統參數,DB部署智能合約,DS上傳用DB選擇的私鑰加密的數據密文,智能合約驗證數據的完整性后轉賬至DS持有的公鑰地址,同時DB獲得使用自己選擇的密鑰加密的數據密文,對密文進行解密,獲得數據。
證畢
公平性。支持數據完整性驗證的可問責數據交易方案滿足公平性。
下面分兩種情況進行討論:
(1) DS是惡意的,DB是誠實的。假設存在惡意的DS,它能夠為錯誤的數據塊偽造數據完整性證明以通過智能合約的驗證獲得報酬,則一定能夠以不可忽略的優勢解決DL問題。
通過構造一個挑戰者與敵手之間的游戲來證明。


(6)


Δ =()Δ =Δ ·Δ =1
(7)
根據=,則

(8)
因為Δ≠0,故Pr[Δ=0]=1。因此該方案能以1-1的概率解決離散對數問題。由于是非常大的,所以解決離散對數問題的概率不可忽略。故基于離散對數問題的困難性,任何惡意的DS都無法偽造數據完整性證明來通過智能合約的驗證。
(2) DB是惡意的,DS是誠實的。DB想在不付費的情況下獲得全部數據。在查詢階段,DB通過部分數據來決策是否購買數據,但這部分數據是通過數據進行隨機抽樣獲得的,僅代表數據的局部特征,對DB來說是無價值的。如果DB不部署智能合約,則DB只能得到DS加密的數據密文,無法解密得到數據,因此DB不進行支付是無法得到數據的。
(3) DS與DB均為惡意的。雙方根據方案執行,DB部署錯誤的智能合約,讓DS無法通過智能合約的驗證,它也無法獲得正確的數據。而DS不發送或發送錯誤的數據完整性證明都無法通過智能合約的驗證獲得轉賬。因此,惡意的雙方均無法獲得更多有益的信息。且理性的交易用戶會誠實有效地執行方案,避免浪費自身資源,因此本文所提方案滿足公平性。
證畢
機密性。任何DB都不能在未進行支付的情況下得到數據。
DS需要上傳數據完整性證明運行智能合約,所以DB的惡意行為主要有兩種:
(1) DB在智能合約運行前就得到了數據。如果DB想在支付階段之前獲得數據,就只能通過計算出{}∈解密數據,但基于離散對數問題的困難性,這是非常困難的。

因此,方案能確保對任何DB,如果不進行支付就無法得到數據。
證畢
本節對方案的功能和效率進行評估,實驗對比表明,本文方案能夠以理想的效率實現安全高效的數據交易。
表1顯示了本文方案與其他相關文獻之間的功能比較。觀察比較發現,本文設計的數據交易方案能實現交易的原子性、隱私保護、可問責性,這比其他方案在功能上更健全,并且能抵抗合謀攻擊。表中“√”代表滿足;“×”代表不滿足;“—”代表不涉及。

表1 功能性對比Table 1 Functional comparison
在CPU為Intel core i5處理器,四核控制系統主頻為1.8 GHz(最小)至3.39 GHz(最大),8 GB運行內存,64 位Windows10操作系統下,對幾種公鑰加密算法RSA、2-key pair、切片遞歸神經網絡(sliced recurrent neural network, SRNN)(見圖3)以及對稱加密算法Blowfish、高級加密標準(advanced encryption standard, AES)、DES3(見圖4),各加解密用時進行對比。實驗表明,公鑰加密算法的解密時間是其加密時間的兩倍以上,而對稱加密和其解密時間基本相同。其中,使用公鑰加密算法加密50 KB文件至少需要300 ms,解密至少需要2 500 ms。而使用對稱加密算法加密1 MB文件最多需要 100 ms,且解密最多需要100 ms。顯然,相比于公鑰加密算法,對稱加密算法更加高效。但對稱加密算法卻一直被其密鑰分發問題所困擾,一旦對稱密鑰在分發給用戶的過程中泄露,則整個系統的安全將隨之崩潰瓦解。而公鑰加密技術卻不存在密鑰分發的問題,因此,數據交易方案多采用公鑰加密技術,通過犧牲方案的效率維護系統安全。而本文所提方案采用SCPK為用戶生成密鑰從產生密鑰的源頭解決了密鑰泄露問題,并借助于非交互式密鑰交換技術,為系統生成會話密鑰來加密通信消息,解決了對稱密鑰的分發問題。因此,本文所提方案使用對稱加密算法以理想的效率維護通信安全。

圖3 公鑰加密算法用時Fig.3 Time cost of public key encryption algorithm

圖4 對稱加密算法用時Fig.4 Time cost of symmetric encryption algorithm
在CPU為高通驍龍801(主頻2.5 GHz),運行內存為2 GB,使用密碼學庫 Miracl,選取Tate雙線性對,其嵌入參數為=2。對本文所提方案和文獻[20]的各階段用時進行對比測試。由圖5可知,本文所提方案在用戶注冊階段和查詢階段比文獻[20]所提方案更加高效。實際上,文獻[20]中的方案在注冊階段使用環簽名來保護用戶隱私,而購買者需要在查詢階段驗證環簽名的有效性,這會花費大量時間。在支付階段,本文所提方案需要驗證數據的完整性證明,而文獻[20]僅需驗證DAPS簽名的有效性,本文所提方案犧牲少量時間換取對數據完整性的保障,這是文獻[20]無法實現的。

圖5 各階段用時Fig.5 Time cost in each stage
圖6描述了本文所提方案中M維護IKL需要的存儲開銷。假設IKL列表中的每條記錄占內存20字節,當記錄從1條增加到10條時,內存僅從幾個字節增加到2 MB。而文獻[20]采用環簽名技術來實現隱私保護和追責,不僅要消耗大量時間為環中成員生成簽名,且一旦環中某個成員撤銷或更新都將對整個系統的正常運行造成影響。而在本文中,M僅需占用少量內存維護IKL,就能實現對用戶身份的隱私保護和對惡意用戶的高效問責。

圖6 IKL存儲開銷Fig.6 Storage overhead of IKL
本文提出了一種基于完整性驗證的數據交易方案。該方案將數據審計與智能合約結合解決了線上交易固有的不信任問題,不僅可以抵抗合謀攻擊還能保證數據的完整性。并設計了問責機制,對不誠實的用戶進行問責,同時該方案還保護了身份隱私、數據隱私。實驗結果表明文中提出的數據交易方案更加安全高效。